n8n-editor-ui 1.43.0 → 1.43.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 (147) hide show
  1. package/.turbo/turbo-build.log +72 -72
  2. package/dist/assets/{AuthView-wAV15F8m.js → AuthView-k9-4l8d2.js} +2 -2
  3. package/dist/assets/{AuthView-wAV15F8m.js.map → AuthView-k9-4l8d2.js.map} +1 -1
  4. package/dist/assets/{CanvasControls-gKuuF9YF.js → CanvasControls-4_78UsoA.js} +2 -2
  5. package/dist/assets/{CanvasControls-gKuuF9YF.js.map → CanvasControls-4_78UsoA.js.map} +1 -1
  6. package/dist/assets/{ChangePasswordView-lW3AftTZ.js → ChangePasswordView-WZx2sxAq.js} +2 -2
  7. package/dist/assets/{ChangePasswordView-lW3AftTZ.js.map → ChangePasswordView-WZx2sxAq.js.map} +1 -1
  8. package/dist/assets/{CollectionParameter-DTYD_Lcf.js → CollectionParameter-DDWzNH-Y.js} +2 -2
  9. package/dist/assets/CollectionParameter-DDWzNH-Y.js.map +1 -0
  10. package/dist/assets/{CredentialsView-R7OKepMF.js → CredentialsView-pP5cOmCw.js} +2 -2
  11. package/dist/assets/{CredentialsView-R7OKepMF.js.map → CredentialsView-pP5cOmCw.js.map} +1 -1
  12. package/dist/assets/{ExecutionsFilter-NfToJM9y.js → ExecutionsFilter-Zq0mjSZf.js} +2 -2
  13. package/dist/assets/{ExecutionsFilter-NfToJM9y.js.map → ExecutionsFilter-Zq0mjSZf.js.map} +1 -1
  14. package/dist/assets/{ExecutionsView-i3z4OWwK.js → ExecutionsView-2RUbEKrf.js} +2 -2
  15. package/dist/assets/{ExecutionsView-i3z4OWwK.js.map → ExecutionsView-2RUbEKrf.js.map} +1 -1
  16. package/dist/assets/{ForgotMyPasswordView-OicEjBTM.js → ForgotMyPasswordView-ZBwhNj_M.js} +2 -2
  17. package/dist/assets/{ForgotMyPasswordView-OicEjBTM.js.map → ForgotMyPasswordView-ZBwhNj_M.js.map} +1 -1
  18. package/dist/assets/{MainHeader-VEoGw9mF.js → MainHeader-__zJO-m7.js} +2 -2
  19. package/dist/assets/{MainHeader-VEoGw9mF.js.map → MainHeader-__zJO-m7.js.map} +1 -1
  20. package/dist/assets/{MainSidebar-9VtAlHw5.js → MainSidebar-7XGRE24x.js} +2 -2
  21. package/dist/assets/{MainSidebar-9VtAlHw5.js.map → MainSidebar-7XGRE24x.js.map} +1 -1
  22. package/dist/assets/{NodeCreation-yGH6whwu.js → NodeCreation-BmkaaGqL.js} +3 -3
  23. package/dist/assets/{NodeCreation-yGH6whwu.js.map → NodeCreation-BmkaaGqL.js.map} +1 -1
  24. package/dist/assets/{NodeCreator-uo45xC8F.js → NodeCreator-iBjoivu6.js} +2 -2
  25. package/dist/assets/{NodeCreator-uo45xC8F.js.map → NodeCreator-iBjoivu6.js.map} +1 -1
  26. package/dist/assets/{NodeList-mBvddp-7.js → NodeList-qt_5gC5-.js} +2 -2
  27. package/dist/assets/{NodeList-mBvddp-7.js.map → NodeList-qt_5gC5-.js.map} +1 -1
  28. package/dist/assets/NodeView-qN4Zuw87.js +9 -0
  29. package/dist/assets/NodeView-qN4Zuw87.js.map +1 -0
  30. package/dist/assets/{NodeView-XB-d5jgs.css → NodeView-sEzPscdT.css} +1 -1
  31. package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-YOVpN0pD.js → ProjectCardBadge.vue_vue_type_script_setup_true_lang-tfIcNjaC.js} +2 -2
  32. package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-YOVpN0pD.js.map → ProjectCardBadge.vue_vue_type_script_setup_true_lang-tfIcNjaC.js.map} +1 -1
  33. package/dist/assets/{ProjectSettings-ZDAhIwhQ.js → ProjectSettings-B-H5G2EN.js} +2 -2
  34. package/dist/assets/{ProjectSettings-ZDAhIwhQ.js.map → ProjectSettings-B-H5G2EN.js.map} +1 -1
  35. package/dist/assets/{ProjectTabs-L2yrOMy6.js → ProjectTabs-A5hdgqW2.js} +2 -2
  36. package/dist/assets/{ProjectTabs-L2yrOMy6.js.map → ProjectTabs-A5hdgqW2.js.map} +1 -1
  37. package/dist/assets/{PushConnectionTracker-GgAPUiGC.js → PushConnectionTracker-1875-61J.js} +2 -2
  38. package/dist/assets/{PushConnectionTracker-GgAPUiGC.js.map → PushConnectionTracker-1875-61J.js.map} +1 -1
  39. package/dist/assets/{ResourcesListLayout-S53Q3neu.js → ResourcesListLayout-zQLxB7dP.js} +2 -2
  40. package/dist/assets/{ResourcesListLayout-S53Q3neu.js.map → ResourcesListLayout-zQLxB7dP.js.map} +1 -1
  41. package/dist/assets/{RunDataAi-jJ9KfOCF.js → RunDataAi-sZalPI5G.js} +2 -2
  42. package/dist/assets/{RunDataAi-jJ9KfOCF.js.map → RunDataAi-sZalPI5G.js.map} +1 -1
  43. package/dist/assets/{RunDataJson-52-sD-ud.js → RunDataJson-Wjq8QCxZ.js} +3 -3
  44. package/dist/assets/{RunDataJson-52-sD-ud.js.map → RunDataJson-Wjq8QCxZ.js.map} +1 -1
  45. package/dist/assets/{RunDataJsonActions-Zjaa2Qdn.js → RunDataJsonActions-s5miC4iz.js} +2 -2
  46. package/dist/assets/{RunDataJsonActions-Zjaa2Qdn.js.map → RunDataJsonActions-s5miC4iz.js.map} +1 -1
  47. package/dist/assets/{RunDataSchema-iNj_tX9n.js → RunDataSchema-s4wg-kE7.js} +2 -2
  48. package/dist/assets/{RunDataSchema-iNj_tX9n.js.map → RunDataSchema-s4wg-kE7.js.map} +1 -1
  49. package/dist/assets/{RunDataSearch-6GGyQrwT.js → RunDataSearch-jtcvkqv3.js} +2 -2
  50. package/dist/assets/{RunDataSearch-6GGyQrwT.js.map → RunDataSearch-jtcvkqv3.js.map} +1 -1
  51. package/dist/assets/{RunDataTable-f5gLoK65.js → RunDataTable-ViMJNYSP.js} +2 -2
  52. package/dist/assets/{RunDataTable-f5gLoK65.js.map → RunDataTable-ViMJNYSP.js.map} +1 -1
  53. package/dist/assets/{SamlOnboarding--QQ0CjBZ.js → SamlOnboarding-ImP6fnp5.js} +2 -2
  54. package/dist/assets/{SamlOnboarding--QQ0CjBZ.js.map → SamlOnboarding-ImP6fnp5.js.map} +1 -1
  55. package/dist/assets/{SettingsApiView-XqezQtu_.js → SettingsApiView-mtjfmBn2.js} +2 -2
  56. package/dist/assets/{SettingsApiView-XqezQtu_.js.map → SettingsApiView-mtjfmBn2.js.map} +1 -1
  57. package/dist/assets/{SettingsCommunityNodesView-qmLS2FT2.js → SettingsCommunityNodesView-3ZbERy3i.js} +2 -2
  58. package/dist/assets/{SettingsCommunityNodesView-qmLS2FT2.js.map → SettingsCommunityNodesView-3ZbERy3i.js.map} +1 -1
  59. package/dist/assets/{SettingsExternalSecrets--1U82XVJ.js → SettingsExternalSecrets-RZSTXpBn.js} +2 -2
  60. package/dist/assets/{SettingsExternalSecrets--1U82XVJ.js.map → SettingsExternalSecrets-RZSTXpBn.js.map} +1 -1
  61. package/dist/assets/{SettingsFakeDoorView-7i_qMtlE.js → SettingsFakeDoorView-woDCBRrk.js} +2 -2
  62. package/dist/assets/{SettingsFakeDoorView-7i_qMtlE.js.map → SettingsFakeDoorView-woDCBRrk.js.map} +1 -1
  63. package/dist/assets/{SettingsLdapView-uwXk-BOB.js → SettingsLdapView-VGtviAVN.js} +2 -2
  64. package/dist/assets/{SettingsLdapView-uwXk-BOB.js.map → SettingsLdapView-VGtviAVN.js.map} +1 -1
  65. package/dist/assets/{SettingsLogStreamingView-9iFeBG5H.js → SettingsLogStreamingView--Mm-atCG.js} +2 -2
  66. package/dist/assets/{SettingsLogStreamingView-9iFeBG5H.js.map → SettingsLogStreamingView--Mm-atCG.js.map} +1 -1
  67. package/dist/assets/{SettingsPersonalView-wv1eEj4o.js → SettingsPersonalView-5sWpXI6Q.js} +2 -2
  68. package/dist/assets/{SettingsPersonalView-wv1eEj4o.js.map → SettingsPersonalView-5sWpXI6Q.js.map} +1 -1
  69. package/dist/assets/{SettingsSourceControl-Q_7vZyBx.js → SettingsSourceControl-XlFUiK_r.js} +2 -2
  70. package/dist/assets/{SettingsSourceControl-Q_7vZyBx.js.map → SettingsSourceControl-XlFUiK_r.js.map} +1 -1
  71. package/dist/assets/{SettingsSso-9-1iByXJ.js → SettingsSso-RaxUMYEI.js} +2 -2
  72. package/dist/assets/{SettingsSso-9-1iByXJ.js.map → SettingsSso-RaxUMYEI.js.map} +1 -1
  73. package/dist/assets/{SettingsUsageAndPlan-Es866y16.js → SettingsUsageAndPlan-hZIuBr2_.js} +2 -2
  74. package/dist/assets/{SettingsUsageAndPlan-Es866y16.js.map → SettingsUsageAndPlan-hZIuBr2_.js.map} +1 -1
  75. package/dist/assets/{SettingsUsersView-wmmQr7i0.js → SettingsUsersView-Y7yTA_F4.js} +2 -2
  76. package/dist/assets/{SettingsUsersView-wmmQr7i0.js.map → SettingsUsersView-Y7yTA_F4.js.map} +1 -1
  77. package/dist/assets/{SettingsView-oYe3uTRj.js → SettingsView-rKKZ6L11.js} +2 -2
  78. package/dist/assets/{SettingsView-oYe3uTRj.js.map → SettingsView-rKKZ6L11.js.map} +1 -1
  79. package/dist/assets/{SetupView-KGS1CEsN.js → SetupView-vgQT3oJU.js} +2 -2
  80. package/dist/assets/{SetupView-KGS1CEsN.js.map → SetupView-vgQT3oJU.js.map} +1 -1
  81. package/dist/assets/{SetupWorkflowCredentialsButton-Ccl5HCte.js → SetupWorkflowCredentialsButton-QGvaG01Z.js} +2 -2
  82. package/dist/assets/{SetupWorkflowCredentialsButton-Ccl5HCte.js.map → SetupWorkflowCredentialsButton-QGvaG01Z.js.map} +1 -1
  83. package/dist/assets/{SetupWorkflowFromTemplateView-_ayHH-IZ.js → SetupWorkflowFromTemplateView-8kV0zT9M.js} +2 -2
  84. package/dist/assets/{SetupWorkflowFromTemplateView-_ayHH-IZ.js.map → SetupWorkflowFromTemplateView-8kV0zT9M.js.map} +1 -1
  85. package/dist/assets/{SigninView-Gc6N_vLo.js → SigninView-9HcFtYYH.js} +2 -2
  86. package/dist/assets/{SigninView-Gc6N_vLo.js.map → SigninView-9HcFtYYH.js.map} +1 -1
  87. package/dist/assets/SignoutView-aFW_4GHN.js +2 -0
  88. package/dist/assets/SignoutView-aFW_4GHN.js.map +1 -0
  89. package/dist/assets/{SignupView-TUYaR1Nz.js → SignupView-pWu_Kk45.js} +2 -2
  90. package/dist/assets/{SignupView-TUYaR1Nz.js.map → SignupView-pWu_Kk45.js.map} +1 -1
  91. package/dist/assets/{TemplateDetails-s0HGsSP9.js → TemplateDetails-PaDbF87J.js} +2 -2
  92. package/dist/assets/{TemplateDetails-s0HGsSP9.js.map → TemplateDetails-PaDbF87J.js.map} +1 -1
  93. package/dist/assets/{TemplateList--L3zJ5wK.js → TemplateList-M4LBpjOe.js} +2 -2
  94. package/dist/assets/{TemplateList--L3zJ5wK.js.map → TemplateList-M4LBpjOe.js.map} +1 -1
  95. package/dist/assets/{TemplatesCollectionView-d1seBq10.js → TemplatesCollectionView-RBv7X4Gh.js} +2 -2
  96. package/dist/assets/{TemplatesCollectionView-d1seBq10.js.map → TemplatesCollectionView-RBv7X4Gh.js.map} +1 -1
  97. package/dist/assets/{TemplatesInfoCarousel-XG1W0SLa.js → TemplatesInfoCarousel-e2wgfGBn.js} +2 -2
  98. package/dist/assets/{TemplatesInfoCarousel-XG1W0SLa.js.map → TemplatesInfoCarousel-e2wgfGBn.js.map} +1 -1
  99. package/dist/assets/{TemplatesSearchView-OYEX_uZ1.js → TemplatesSearchView-FkqpvNK2.js} +2 -2
  100. package/dist/assets/{TemplatesSearchView-OYEX_uZ1.js.map → TemplatesSearchView-FkqpvNK2.js.map} +1 -1
  101. package/dist/assets/{TemplatesView-RFX1Nriq.js → TemplatesView-bbDzQ95P.js} +2 -2
  102. package/dist/assets/{TemplatesView-RFX1Nriq.js.map → TemplatesView-bbDzQ95P.js.map} +1 -1
  103. package/dist/assets/{TemplatesWorkflowView-t6Xqg5xY.js → TemplatesWorkflowView-7-rFNLp9.js} +2 -2
  104. package/dist/assets/{TemplatesWorkflowView-t6Xqg5xY.js.map → TemplatesWorkflowView-7-rFNLp9.js.map} +1 -1
  105. package/dist/assets/{VariablesView-ZV3cuGWP.js → VariablesView-qHyda1UV.js} +2 -2
  106. package/dist/assets/{VariablesView-ZV3cuGWP.js.map → VariablesView-qHyda1UV.js.map} +1 -1
  107. package/dist/assets/{WorkerView-PvV1tbob.js → WorkerView-B0yhM0J1.js} +2 -2
  108. package/dist/assets/{WorkerView-PvV1tbob.js.map → WorkerView-B0yhM0J1.js.map} +1 -1
  109. package/dist/assets/{WorkflowActivator-TncK9t4c.js → WorkflowActivator-VjkeCh0z.js} +2 -2
  110. package/dist/assets/{WorkflowActivator-TncK9t4c.js.map → WorkflowActivator-VjkeCh0z.js.map} +1 -1
  111. package/dist/assets/{WorkflowExecutionsInfoAccordion-AnHjUFE3.js → WorkflowExecutionsInfoAccordion-3GkCvE9Q.js} +2 -2
  112. package/dist/assets/{WorkflowExecutionsInfoAccordion-AnHjUFE3.js.map → WorkflowExecutionsInfoAccordion-3GkCvE9Q.js.map} +1 -1
  113. package/dist/assets/{WorkflowExecutionsLandingPage-oxT4cL0I.js → WorkflowExecutionsLandingPage-O_YbgvYB.js} +2 -2
  114. package/dist/assets/{WorkflowExecutionsLandingPage-oxT4cL0I.js.map → WorkflowExecutionsLandingPage-O_YbgvYB.js.map} +1 -1
  115. package/dist/assets/{WorkflowExecutionsPreview-S4t3V3mn.js → WorkflowExecutionsPreview-6bNa2avB.js} +2 -2
  116. package/dist/assets/{WorkflowExecutionsPreview-S4t3V3mn.js.map → WorkflowExecutionsPreview-6bNa2avB.js.map} +1 -1
  117. package/dist/assets/{WorkflowExecutionsView-2SiI_dZv.js → WorkflowExecutionsView-e12KrPNp.js} +2 -2
  118. package/dist/assets/{WorkflowExecutionsView-2SiI_dZv.js.map → WorkflowExecutionsView-e12KrPNp.js.map} +1 -1
  119. package/dist/assets/{WorkflowHistory-tlNmMBC4.js → WorkflowHistory-XyI7xi5R.js} +2 -2
  120. package/dist/assets/{WorkflowHistory-tlNmMBC4.js.map → WorkflowHistory-XyI7xi5R.js.map} +1 -1
  121. package/dist/assets/{WorkflowOnboardingView-sQP7Ib3w.js → WorkflowOnboardingView-wfo0sagy.js} +2 -2
  122. package/dist/assets/{WorkflowOnboardingView-sQP7Ib3w.js.map → WorkflowOnboardingView-wfo0sagy.js.map} +1 -1
  123. package/dist/assets/{WorkflowsView-77fg2wMF.js → WorkflowsView-zWdxjaUV.js} +2 -2
  124. package/dist/assets/{WorkflowsView-77fg2wMF.js.map → WorkflowsView-zWdxjaUV.js.map} +1 -1
  125. package/dist/assets/{cloud-k5hx0-AG.js → cloud-FHxD5S8r.js} +2 -2
  126. package/dist/assets/{cloud-k5hx0-AG.js.map → cloud-FHxD5S8r.js.map} +1 -1
  127. package/dist/assets/{collaboration.store-nJkMa2Yk.js → collaboration.store-aa4nebcL.js} +2 -2
  128. package/dist/assets/{collaboration.store-nJkMa2Yk.js.map → collaboration.store-aa4nebcL.js.map} +1 -1
  129. package/dist/assets/{index-OLvpAx8p.js → index-6ulnOLCO.js} +4 -4
  130. package/dist/assets/{index-OLvpAx8p.js.map → index-6ulnOLCO.js.map} +1 -1
  131. package/dist/assets/{templateActions-4mG5U0Gi.js → templateActions-9fUm8Xpc.js} +2 -2
  132. package/dist/assets/{templateActions-4mG5U0Gi.js.map → templateActions-9fUm8Xpc.js.map} +1 -1
  133. package/dist/assets/{useExecutionDebugging-PDsNeD99.js → useExecutionDebugging-QUE85fFt.js} +2 -2
  134. package/dist/assets/{useExecutionDebugging-PDsNeD99.js.map → useExecutionDebugging-QUE85fFt.js.map} +1 -1
  135. package/dist/assets/{useExecutionHelpers-z0jWdDj0.js → useExecutionHelpers-5nDBsYfy.js} +2 -2
  136. package/dist/assets/{useExecutionHelpers-z0jWdDj0.js.map → useExecutionHelpers-5nDBsYfy.js.map} +1 -1
  137. package/dist/assets/{usePushConnection-5HhKaz1I.js → usePushConnection-FzHJLOiR.js} +2 -2
  138. package/dist/assets/{usePushConnection-5HhKaz1I.js.map → usePushConnection-FzHJLOiR.js.map} +1 -1
  139. package/dist/assets/{useWorkflowActivate--rX-aMfx.js → useWorkflowActivate-rx_C76SX.js} +2 -2
  140. package/dist/assets/{useWorkflowActivate--rX-aMfx.js.map → useWorkflowActivate-rx_C76SX.js.map} +1 -1
  141. package/dist/index.html +1 -1
  142. package/package.json +1 -1
  143. package/dist/assets/CollectionParameter-DTYD_Lcf.js.map +0 -1
  144. package/dist/assets/NodeView-vh3Qdfdh.js +0 -9
  145. package/dist/assets/NodeView-vh3Qdfdh.js.map +0 -1
  146. package/dist/assets/SignoutView-zep-aWVN.js +0 -2
  147. package/dist/assets/SignoutView-zep-aWVN.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TemplatesCollectionView-d1seBq10.js","sources":["../../src/views/TemplatesCollectionView.vue"],"sourcesContent":["<template>\n\t<TemplatesView :go-back-enabled=\"true\">\n\t\t<template #header>\n\t\t\t<div v-if=\"!notFoundError\" :class=\"$style.wrapper\">\n\t\t\t\t<div :class=\"$style.title\">\n\t\t\t\t\t<n8n-heading v-if=\"collection && collection.name\" tag=\"h1\" size=\"2xlarge\">\n\t\t\t\t\t\t{{ collection.name }}\n\t\t\t\t\t</n8n-heading>\n\t\t\t\t\t<n8n-text v-if=\"collection && collection.name\" color=\"text-base\" size=\"small\">\n\t\t\t\t\t\t{{ $locale.baseText('templates.collection') }}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t\t<n8n-loading :loading=\"!collection || !collection.name\" :rows=\"2\" variant=\"h1\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else :class=\"$style.notFound\">\n\t\t\t\t<n8n-text color=\"text-base\">{{\n\t\t\t\t\t$locale.baseText('templates.collectionsNotFound')\n\t\t\t\t}}</n8n-text>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-if=\"!notFoundError\" #content>\n\t\t\t<div :class=\"$style.wrapper\">\n\t\t\t\t<div :class=\"$style.mainContent\">\n\t\t\t\t\t<div v-if=\"loading || (collection && collection.description)\" :class=\"$style.markdown\">\n\t\t\t\t\t\t<n8n-markdown\n\t\t\t\t\t\t\t:content=\"collection && collection.description\"\n\t\t\t\t\t\t\t:images=\"collection && collection.image\"\n\t\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<TemplateList\n\t\t\t\t\t\t:infinite-scroll-enabled=\"false\"\n\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t\t:use-workflow-button=\"true\"\n\t\t\t\t\t\t:workflows=\"loading ? [] : collectionWorkflows\"\n\t\t\t\t\t\t@use-workflow=\"onUseWorkflow\"\n\t\t\t\t\t\t@open-template=\"onOpenTemplate\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.details\">\n\t\t\t\t\t<TemplateDetails\n\t\t\t\t\t\t:block-title=\"$locale.baseText('template.details.appsInTheCollection')\"\n\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t\t:template=\"collection\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</TemplatesView>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\n\nimport TemplateDetails from '@/components/TemplateDetails.vue';\nimport TemplateList from '@/components/TemplateList.vue';\nimport TemplatesView from './TemplatesView.vue';\n\nimport type {\n\tITemplatesCollection,\n\tITemplatesCollectionFull,\n\tITemplatesWorkflow,\n\tITemplatesWorkflowFull,\n} from '@/Interface';\n\nimport { setPageTitle } from '@/utils/htmlUtils';\nimport { VIEWS } from '@/constants';\nimport { useTemplatesStore } from '@/stores/templates.store';\nimport { usePostHog } from '@/stores/posthog.store';\nimport { useTemplateWorkflow } from '@/utils/templates/templateActions';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\n\nexport default defineComponent({\n\tname: 'TemplatesCollectionView',\n\tcomponents: {\n\t\tTemplateDetails,\n\t\tTemplateList,\n\t\tTemplatesView,\n\t},\n\tsetup() {\n\t\tconst externalHooks = useExternalHooks();\n\n\t\treturn {\n\t\t\texternalHooks,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useTemplatesStore, usePostHog),\n\t\tcollection(): ITemplatesCollectionFull | null {\n\t\t\treturn this.templatesStore.getCollectionById(this.collectionId);\n\t\t},\n\t\tcollectionId(): string {\n\t\t\treturn Array.isArray(this.$route.params.id)\n\t\t\t\t? this.$route.params.id[0]\n\t\t\t\t: this.$route.params.id;\n\t\t},\n\t\tcollectionWorkflows(): Array<ITemplatesWorkflow | ITemplatesWorkflowFull | null> | null {\n\t\t\tif (!this.collection) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn this.collection.workflows.map(({ id }) => {\n\t\t\t\treturn this.templatesStore.getTemplateById(id.toString());\n\t\t\t});\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: true,\n\t\t\tnotFoundError: false,\n\t\t};\n\t},\n\twatch: {\n\t\tcollection(collection: ITemplatesCollection) {\n\t\t\tif (collection) {\n\t\t\t\tsetPageTitle(`n8n - Template collection: ${collection.name}`);\n\t\t\t} else {\n\t\t\t\tsetPageTitle('n8n - Templates');\n\t\t\t}\n\t\t},\n\t},\n\tasync mounted() {\n\t\tthis.scrollToTop();\n\n\t\tif (this.collection && this.collection.full) {\n\t\t\tthis.loading = false;\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.templatesStore.fetchCollectionById(this.collectionId);\n\t\t} catch (e) {\n\t\t\tthis.notFoundError = true;\n\t\t}\n\t\tthis.loading = false;\n\t},\n\tmethods: {\n\t\tscrollToTop() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst contentArea = document.getElementById('content');\n\t\t\t\tif (contentArea) {\n\t\t\t\t\tcontentArea.scrollTo({\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 50);\n\t\t},\n\t\tonOpenTemplate({ event, id }: { event: MouseEvent; id: string }) {\n\t\t\tthis.navigateTo(event, VIEWS.TEMPLATE, id);\n\t\t},\n\t\tasync onUseWorkflow({ event, id }: { event: MouseEvent; id: string }) {\n\t\t\tawait useTemplateWorkflow({\n\t\t\t\tposthogStore: this.posthogStore,\n\t\t\t\trouter: this.$router,\n\t\t\t\ttemplateId: id,\n\t\t\t\tinNewBrowserTab: event.metaKey || event.ctrlKey,\n\t\t\t\ttemplatesStore: useTemplatesStore(),\n\t\t\t\texternalHooks: this.externalHooks,\n\t\t\t\tnodeTypesStore: useNodeTypesStore(),\n\t\t\t\ttelemetry: this.$telemetry,\n\t\t\t\tsource: 'template_list',\n\t\t\t});\n\t\t},\n\t\tnavigateTo(e: MouseEvent, page: string, id: string) {\n\t\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\t\tconst route = this.$router.resolve({ name: page, params: { id } });\n\t\t\t\twindow.open(route.href, '_blank');\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tvoid this.$router.push({ name: page, params: { id } });\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.wrapper {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tdisplay: block;\n\t}\n}\n\n.notFound {\n\tpadding-top: var(--spacing-xl);\n}\n\n.title {\n\twidth: 100%;\n}\n\n.button {\n\tdisplay: block;\n}\n\n.mainContent {\n\tpadding-right: var(--spacing-2xl);\n\tmargin-bottom: var(--spacing-l);\n\twidth: 100%;\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tpadding-right: 0;\n\t}\n}\n\n.markdown {\n\tmargin-bottom: var(--spacing-l);\n}\n\n.details {\n\twidth: 180px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","TemplateDetails","TemplateList","TemplatesView","useExternalHooks","mapStores","useTemplatesStore","usePostHog","id","collection","setPageTitle","contentArea","event","VIEWS","useTemplateWorkflow","useNodeTypesStore","page","route","_component_TemplatesView","_resolveComponent","notFoundError","_createBlock","_createSlots","_withCtx","_ctx","_openBlock","_createElementBlock","$style","_normalizeClass","_createVNode","_component_n8n_text","$locale","_createTextVNode","_toDisplayString","_component_n8n_heading","_createCommentVNode","_component_n8n_loading","_createElementVNode","loading","onUseWorkflow","onOpenTemplate"],"mappings":"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"}
1
+ {"version":3,"file":"TemplatesCollectionView-RBv7X4Gh.js","sources":["../../src/views/TemplatesCollectionView.vue"],"sourcesContent":["<template>\n\t<TemplatesView :go-back-enabled=\"true\">\n\t\t<template #header>\n\t\t\t<div v-if=\"!notFoundError\" :class=\"$style.wrapper\">\n\t\t\t\t<div :class=\"$style.title\">\n\t\t\t\t\t<n8n-heading v-if=\"collection && collection.name\" tag=\"h1\" size=\"2xlarge\">\n\t\t\t\t\t\t{{ collection.name }}\n\t\t\t\t\t</n8n-heading>\n\t\t\t\t\t<n8n-text v-if=\"collection && collection.name\" color=\"text-base\" size=\"small\">\n\t\t\t\t\t\t{{ $locale.baseText('templates.collection') }}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t\t<n8n-loading :loading=\"!collection || !collection.name\" :rows=\"2\" variant=\"h1\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else :class=\"$style.notFound\">\n\t\t\t\t<n8n-text color=\"text-base\">{{\n\t\t\t\t\t$locale.baseText('templates.collectionsNotFound')\n\t\t\t\t}}</n8n-text>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-if=\"!notFoundError\" #content>\n\t\t\t<div :class=\"$style.wrapper\">\n\t\t\t\t<div :class=\"$style.mainContent\">\n\t\t\t\t\t<div v-if=\"loading || (collection && collection.description)\" :class=\"$style.markdown\">\n\t\t\t\t\t\t<n8n-markdown\n\t\t\t\t\t\t\t:content=\"collection && collection.description\"\n\t\t\t\t\t\t\t:images=\"collection && collection.image\"\n\t\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<TemplateList\n\t\t\t\t\t\t:infinite-scroll-enabled=\"false\"\n\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t\t:use-workflow-button=\"true\"\n\t\t\t\t\t\t:workflows=\"loading ? [] : collectionWorkflows\"\n\t\t\t\t\t\t@use-workflow=\"onUseWorkflow\"\n\t\t\t\t\t\t@open-template=\"onOpenTemplate\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.details\">\n\t\t\t\t\t<TemplateDetails\n\t\t\t\t\t\t:block-title=\"$locale.baseText('template.details.appsInTheCollection')\"\n\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t\t:template=\"collection\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</TemplatesView>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\n\nimport TemplateDetails from '@/components/TemplateDetails.vue';\nimport TemplateList from '@/components/TemplateList.vue';\nimport TemplatesView from './TemplatesView.vue';\n\nimport type {\n\tITemplatesCollection,\n\tITemplatesCollectionFull,\n\tITemplatesWorkflow,\n\tITemplatesWorkflowFull,\n} from '@/Interface';\n\nimport { setPageTitle } from '@/utils/htmlUtils';\nimport { VIEWS } from '@/constants';\nimport { useTemplatesStore } from '@/stores/templates.store';\nimport { usePostHog } from '@/stores/posthog.store';\nimport { useTemplateWorkflow } from '@/utils/templates/templateActions';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\n\nexport default defineComponent({\n\tname: 'TemplatesCollectionView',\n\tcomponents: {\n\t\tTemplateDetails,\n\t\tTemplateList,\n\t\tTemplatesView,\n\t},\n\tsetup() {\n\t\tconst externalHooks = useExternalHooks();\n\n\t\treturn {\n\t\t\texternalHooks,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useTemplatesStore, usePostHog),\n\t\tcollection(): ITemplatesCollectionFull | null {\n\t\t\treturn this.templatesStore.getCollectionById(this.collectionId);\n\t\t},\n\t\tcollectionId(): string {\n\t\t\treturn Array.isArray(this.$route.params.id)\n\t\t\t\t? this.$route.params.id[0]\n\t\t\t\t: this.$route.params.id;\n\t\t},\n\t\tcollectionWorkflows(): Array<ITemplatesWorkflow | ITemplatesWorkflowFull | null> | null {\n\t\t\tif (!this.collection) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn this.collection.workflows.map(({ id }) => {\n\t\t\t\treturn this.templatesStore.getTemplateById(id.toString());\n\t\t\t});\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: true,\n\t\t\tnotFoundError: false,\n\t\t};\n\t},\n\twatch: {\n\t\tcollection(collection: ITemplatesCollection) {\n\t\t\tif (collection) {\n\t\t\t\tsetPageTitle(`n8n - Template collection: ${collection.name}`);\n\t\t\t} else {\n\t\t\t\tsetPageTitle('n8n - Templates');\n\t\t\t}\n\t\t},\n\t},\n\tasync mounted() {\n\t\tthis.scrollToTop();\n\n\t\tif (this.collection && this.collection.full) {\n\t\t\tthis.loading = false;\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.templatesStore.fetchCollectionById(this.collectionId);\n\t\t} catch (e) {\n\t\t\tthis.notFoundError = true;\n\t\t}\n\t\tthis.loading = false;\n\t},\n\tmethods: {\n\t\tscrollToTop() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst contentArea = document.getElementById('content');\n\t\t\t\tif (contentArea) {\n\t\t\t\t\tcontentArea.scrollTo({\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 50);\n\t\t},\n\t\tonOpenTemplate({ event, id }: { event: MouseEvent; id: string }) {\n\t\t\tthis.navigateTo(event, VIEWS.TEMPLATE, id);\n\t\t},\n\t\tasync onUseWorkflow({ event, id }: { event: MouseEvent; id: string }) {\n\t\t\tawait useTemplateWorkflow({\n\t\t\t\tposthogStore: this.posthogStore,\n\t\t\t\trouter: this.$router,\n\t\t\t\ttemplateId: id,\n\t\t\t\tinNewBrowserTab: event.metaKey || event.ctrlKey,\n\t\t\t\ttemplatesStore: useTemplatesStore(),\n\t\t\t\texternalHooks: this.externalHooks,\n\t\t\t\tnodeTypesStore: useNodeTypesStore(),\n\t\t\t\ttelemetry: this.$telemetry,\n\t\t\t\tsource: 'template_list',\n\t\t\t});\n\t\t},\n\t\tnavigateTo(e: MouseEvent, page: string, id: string) {\n\t\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\t\tconst route = this.$router.resolve({ name: page, params: { id } });\n\t\t\t\twindow.open(route.href, '_blank');\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tvoid this.$router.push({ name: page, params: { id } });\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.wrapper {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tdisplay: block;\n\t}\n}\n\n.notFound {\n\tpadding-top: var(--spacing-xl);\n}\n\n.title {\n\twidth: 100%;\n}\n\n.button {\n\tdisplay: block;\n}\n\n.mainContent {\n\tpadding-right: var(--spacing-2xl);\n\tmargin-bottom: var(--spacing-l);\n\twidth: 100%;\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tpadding-right: 0;\n\t}\n}\n\n.markdown {\n\tmargin-bottom: var(--spacing-l);\n}\n\n.details {\n\twidth: 180px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","TemplateDetails","TemplateList","TemplatesView","useExternalHooks","mapStores","useTemplatesStore","usePostHog","id","collection","setPageTitle","contentArea","event","VIEWS","useTemplateWorkflow","useNodeTypesStore","page","route","_component_TemplatesView","_resolveComponent","notFoundError","_createBlock","_createSlots","_withCtx","_ctx","_openBlock","_createElementBlock","$style","_normalizeClass","_createVNode","_component_n8n_text","$locale","_createTextVNode","_toDisplayString","_component_n8n_heading","_createCommentVNode","_component_n8n_loading","_createElementVNode","loading","onUseWorkflow","onOpenTemplate"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{G as C,l as n,M as m,a9 as T,O as l,p,I as c,R as _,H as I,T as i,K as L,ag as s,V as u,U as h,S as N,J as W,m as g,F as B,a7 as S}from"./vendor-qzAIxxHa.js";import{_ as y}from"./n8n-roXSR3ff.js";import{N as R}from"./NodeList-mBvddp-7.js";import{V}from"./vue-agile-MeFFkdnU.js";const M=C({name:"Card",props:{loading:{type:Boolean},title:{type:String}}}),P="_card_17xq8_1",q="_title_17xq8_17",A={card:P,title:q},z=["textContent"];function F(t,e,d,$,w,v){const a=s("n8n-loading"),r=s("n8n-card");return n(),m(r,L({class:t.$style.card},t.$attrs),T({default:l(()=>[i(a,{loading:t.loading,rows:3,variant:"p"},null,8,["loading"])]),_:2},[t.loading?void 0:{name:"header",fn:l(()=>[p("span",{class:c(t.$style.title),textContent:_(t.title)},null,10,z)]),key:"0"},t.loading?void 0:{name:"footer",fn:l(()=>[I(t.$slots,"footer")]),key:"1"}]),1040,["class"])}const D={$style:A},E=y(M,[["render",F],["__cssModules",D]]),O=C({name:"TemplatesInfoCard",components:{Card:E,NodeList:R},props:{loading:{type:Boolean},collection:{type:Object},showItemCount:{type:Boolean,default:!0},width:{type:String,required:!0}}});function U(t,e,d,$,w,v){const a=s("n8n-text"),r=s("NodeList"),f=s("Card");return n(),m(f,{loading:t.loading,title:t.collection.name,style:W({width:t.width})},{footer:l(()=>[p("span",null,[u(i(a,{size:"small",color:"text-light"},{default:l(()=>[N(_(t.collection.workflows.length)+" "+_(t.$locale.baseText("templates.workflows")),1)]),_:1},512),[[h,t.showItemCount]])]),i(r,{nodes:t.collection.nodes,"show-more":!1},null,8,["nodes"])]),_:1},8,["loading","title","style"])}const j=y(O,[["render",U]]),G=C({name:"TemplatesInfoCarousel",components:{Card:E,TemplatesInfoCard:j,agile:V},props:{collections:{type:Array},loading:{type:Boolean},showItemCount:{type:Boolean,default:!0},showNavigation:{type:Boolean,default:!0},cardsWidth:{type:String,default:"240px"}},data(){return{carouselScrollPosition:0,cardWidth:parseInt(this.cardsWidth,10),sliderWidth:0,scrollEnd:!1,listElement:null}},watch:{collections(){setTimeout(()=>{this.updateCarouselScroll()},0)},loading(){setTimeout(()=>{this.updateCarouselScroll()},0)}},async mounted(){await this.$nextTick();const t=this.$refs.slider;t&&(this.listElement=t.$el.querySelector(".agile__list"),this.listElement&&this.listElement.addEventListener("scroll",this.updateCarouselScroll))},beforeUnmount(){const t=this.$refs.slider;t&&t.destroy(),window.removeEventListener("scroll",this.updateCarouselScroll)},methods:{updateCarouselScroll(){if(this.listElement){this.carouselScrollPosition=Number(this.listElement.scrollLeft.toFixed());const t=this.listElement.clientWidth,e=this.listElement.scrollWidth,d=this.carouselScrollPosition;this.scrollEnd=e-t<=d+7}},onCardClick(t,e){this.$emit("openCollection",{event:t,id:e})},scrollLeft(){this.listElement&&this.listElement.scrollBy({left:-(this.cardWidth*2),top:0,behavior:"smooth"})},scrollRight(){this.listElement&&this.listElement.scrollBy({left:this.cardWidth*2,top:0,behavior:"smooth"})}}}),H="_container_1lokv_1",J="_button_1lokv_5",K="_leftButton_1lokv_26 _button_1lokv_5",Q="_rightButton_1lokv_35 _button_1lokv_5",X={container:H,button:J,leftButton:K,rightButton:Q};function Y(t,e,d,$,w,v){const a=s("Card"),r=s("TemplatesInfoCard"),f=s("agile"),k=s("font-awesome-icon");return u((n(),g("div",{class:c(t.$style.container)},[i(f,{ref:"slider",dots:!1,"nav-buttons":!1,infinite:!1,"slides-to-show":4,onAfterChange:t.updateCarouselScroll},{default:l(()=>[(n(!0),g(B,null,S(t.loading?4:0,o=>(n(),m(a,{key:`loading-${o}`,loading:t.loading},null,8,["loading"]))),128)),(n(!0),g(B,null,S(t.loading?[]:t.collections,o=>(n(),m(r,{key:o.id,"data-test-id":"templates-info-card",collection:o,"show-item-count":t.showItemCount,width:t.cardsWidth,onClick:b=>t.onCardClick(b,o.id)},null,8,["collection","show-item-count","width","onClick"]))),128))]),_:1},8,["onAfterChange"]),u(p("button",{class:c({[t.$style.leftButton]:!0}),onClick:e[0]||(e[0]=(...o)=>t.scrollLeft&&t.scrollLeft(...o))},[i(k,{icon:"chevron-left"})],2),[[h,t.showNavigation&&t.carouselScrollPosition>0]]),u(p("button",{class:c({[t.$style.rightButton]:!0}),onClick:e[1]||(e[1]=(...o)=>t.scrollRight&&t.scrollRight(...o))},[i(k,{icon:"chevron-right"})],2),[[h,t.showNavigation&&!t.scrollEnd]])],2)),[[h,t.loading||t.collections.length]])}const Z={$style:X},st=y(G,[["render",Y],["__cssModules",Z]]);export{st as T};
2
- //# sourceMappingURL=TemplatesInfoCarousel-XG1W0SLa.js.map
1
+ import{G as C,l as n,M as m,a9 as T,O as l,p,I as c,R as _,H as I,T as i,K as L,ag as s,V as u,U as h,S as N,J as W,m as g,F as B,a7 as S}from"./vendor-qzAIxxHa.js";import{_ as y}from"./n8n-roXSR3ff.js";import{N as R}from"./NodeList-qt_5gC5-.js";import{V}from"./vue-agile-MeFFkdnU.js";const M=C({name:"Card",props:{loading:{type:Boolean},title:{type:String}}}),P="_card_17xq8_1",q="_title_17xq8_17",A={card:P,title:q},z=["textContent"];function F(t,e,d,$,w,v){const a=s("n8n-loading"),r=s("n8n-card");return n(),m(r,L({class:t.$style.card},t.$attrs),T({default:l(()=>[i(a,{loading:t.loading,rows:3,variant:"p"},null,8,["loading"])]),_:2},[t.loading?void 0:{name:"header",fn:l(()=>[p("span",{class:c(t.$style.title),textContent:_(t.title)},null,10,z)]),key:"0"},t.loading?void 0:{name:"footer",fn:l(()=>[I(t.$slots,"footer")]),key:"1"}]),1040,["class"])}const D={$style:A},E=y(M,[["render",F],["__cssModules",D]]),O=C({name:"TemplatesInfoCard",components:{Card:E,NodeList:R},props:{loading:{type:Boolean},collection:{type:Object},showItemCount:{type:Boolean,default:!0},width:{type:String,required:!0}}});function U(t,e,d,$,w,v){const a=s("n8n-text"),r=s("NodeList"),f=s("Card");return n(),m(f,{loading:t.loading,title:t.collection.name,style:W({width:t.width})},{footer:l(()=>[p("span",null,[u(i(a,{size:"small",color:"text-light"},{default:l(()=>[N(_(t.collection.workflows.length)+" "+_(t.$locale.baseText("templates.workflows")),1)]),_:1},512),[[h,t.showItemCount]])]),i(r,{nodes:t.collection.nodes,"show-more":!1},null,8,["nodes"])]),_:1},8,["loading","title","style"])}const j=y(O,[["render",U]]),G=C({name:"TemplatesInfoCarousel",components:{Card:E,TemplatesInfoCard:j,agile:V},props:{collections:{type:Array},loading:{type:Boolean},showItemCount:{type:Boolean,default:!0},showNavigation:{type:Boolean,default:!0},cardsWidth:{type:String,default:"240px"}},data(){return{carouselScrollPosition:0,cardWidth:parseInt(this.cardsWidth,10),sliderWidth:0,scrollEnd:!1,listElement:null}},watch:{collections(){setTimeout(()=>{this.updateCarouselScroll()},0)},loading(){setTimeout(()=>{this.updateCarouselScroll()},0)}},async mounted(){await this.$nextTick();const t=this.$refs.slider;t&&(this.listElement=t.$el.querySelector(".agile__list"),this.listElement&&this.listElement.addEventListener("scroll",this.updateCarouselScroll))},beforeUnmount(){const t=this.$refs.slider;t&&t.destroy(),window.removeEventListener("scroll",this.updateCarouselScroll)},methods:{updateCarouselScroll(){if(this.listElement){this.carouselScrollPosition=Number(this.listElement.scrollLeft.toFixed());const t=this.listElement.clientWidth,e=this.listElement.scrollWidth,d=this.carouselScrollPosition;this.scrollEnd=e-t<=d+7}},onCardClick(t,e){this.$emit("openCollection",{event:t,id:e})},scrollLeft(){this.listElement&&this.listElement.scrollBy({left:-(this.cardWidth*2),top:0,behavior:"smooth"})},scrollRight(){this.listElement&&this.listElement.scrollBy({left:this.cardWidth*2,top:0,behavior:"smooth"})}}}),H="_container_1lokv_1",J="_button_1lokv_5",K="_leftButton_1lokv_26 _button_1lokv_5",Q="_rightButton_1lokv_35 _button_1lokv_5",X={container:H,button:J,leftButton:K,rightButton:Q};function Y(t,e,d,$,w,v){const a=s("Card"),r=s("TemplatesInfoCard"),f=s("agile"),k=s("font-awesome-icon");return u((n(),g("div",{class:c(t.$style.container)},[i(f,{ref:"slider",dots:!1,"nav-buttons":!1,infinite:!1,"slides-to-show":4,onAfterChange:t.updateCarouselScroll},{default:l(()=>[(n(!0),g(B,null,S(t.loading?4:0,o=>(n(),m(a,{key:`loading-${o}`,loading:t.loading},null,8,["loading"]))),128)),(n(!0),g(B,null,S(t.loading?[]:t.collections,o=>(n(),m(r,{key:o.id,"data-test-id":"templates-info-card",collection:o,"show-item-count":t.showItemCount,width:t.cardsWidth,onClick:b=>t.onCardClick(b,o.id)},null,8,["collection","show-item-count","width","onClick"]))),128))]),_:1},8,["onAfterChange"]),u(p("button",{class:c({[t.$style.leftButton]:!0}),onClick:e[0]||(e[0]=(...o)=>t.scrollLeft&&t.scrollLeft(...o))},[i(k,{icon:"chevron-left"})],2),[[h,t.showNavigation&&t.carouselScrollPosition>0]]),u(p("button",{class:c({[t.$style.rightButton]:!0}),onClick:e[1]||(e[1]=(...o)=>t.scrollRight&&t.scrollRight(...o))},[i(k,{icon:"chevron-right"})],2),[[h,t.showNavigation&&!t.scrollEnd]])],2)),[[h,t.loading||t.collections.length]])}const Z={$style:X},st=y(G,[["render",Y],["__cssModules",Z]]);export{st as T};
2
+ //# sourceMappingURL=TemplatesInfoCarousel-e2wgfGBn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplatesInfoCarousel-XG1W0SLa.js","sources":["../../src/components/CollectionWorkflowCard.vue","../../src/components/TemplatesInfoCard.vue","../../src/components/TemplatesInfoCarousel.vue"],"sourcesContent":["<template>\n\t<n8n-card :class=\"$style.card\" v-bind=\"$attrs\">\n\t\t<template v-if=\"!loading\" #header>\n\t\t\t<span :class=\"$style.title\" v-text=\"title\" />\n\t\t</template>\n\t\t<n8n-loading :loading=\"loading\" :rows=\"3\" variant=\"p\" />\n\t\t<template v-if=\"!loading\" #footer>\n\t\t\t<slot name=\"footer\" />\n\t\t</template>\n\t</n8n-card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n\tname: 'Card',\n\tprops: {\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.card {\n\tmin-width: 235px;\n\theight: 140px;\n\tmargin-right: var(--spacing-2xs);\n\tcursor: pointer;\n\n\t&:last-child {\n\t\tmargin-right: var(--spacing-5xs);\n\t}\n\n\t&:hover {\n\t\tbox-shadow: 0 2px 4px rgba(68, 28, 23, 0.07);\n\t}\n\n\t> div {\n\t\theight: 100%;\n\t}\n}\n\n.title {\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: 4;\n\t-webkit-box-orient: vertical;\n\tfont-size: var(--font-size-s);\n\tline-height: var(--font-line-height-regular);\n\tfont-weight: var(--font-weight-bold);\n\toverflow: hidden;\n\twhite-space: normal;\n}\n</style>\n","<template>\n\t<Card :loading=\"loading\" :title=\"collection.name\" :style=\"{ width }\">\n\t\t<template #footer>\n\t\t\t<span>\n\t\t\t\t<n8n-text v-show=\"showItemCount\" size=\"small\" color=\"text-light\">\n\t\t\t\t\t{{ collection.workflows.length }}\n\t\t\t\t\t{{ $locale.baseText('templates.workflows') }}\n\t\t\t\t</n8n-text>\n\t\t\t</span>\n\t\t\t<NodeList :nodes=\"collection.nodes\" :show-more=\"false\" />\n\t\t</template>\n\t</Card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport Card from '@/components/CollectionWorkflowCard.vue';\nimport NodeList from '@/components/NodeList.vue';\n\nexport default defineComponent({\n\tname: 'TemplatesInfoCard',\n\tcomponents: {\n\t\tCard,\n\t\tNodeList,\n\t},\n\tprops: {\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tcollection: {\n\t\t\ttype: Object,\n\t\t},\n\t\tshowItemCount: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\twidth: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module></style>\n","<template>\n\t<div v-show=\"loading || collections.length\" :class=\"$style.container\">\n\t\t<agile\n\t\t\tref=\"slider\"\n\t\t\t:dots=\"false\"\n\t\t\t:nav-buttons=\"false\"\n\t\t\t:infinite=\"false\"\n\t\t\t:slides-to-show=\"4\"\n\t\t\t@after-change=\"updateCarouselScroll\"\n\t\t>\n\t\t\t<Card v-for=\"n in loading ? 4 : 0\" :key=\"`loading-${n}`\" :loading=\"loading\" />\n\t\t\t<TemplatesInfoCard\n\t\t\t\tv-for=\"collection in loading ? [] : collections\"\n\t\t\t\t:key=\"collection.id\"\n\t\t\t\tdata-test-id=\"templates-info-card\"\n\t\t\t\t:collection=\"collection\"\n\t\t\t\t:show-item-count=\"showItemCount\"\n\t\t\t\t:width=\"cardsWidth\"\n\t\t\t\t@click=\"(e) => onCardClick(e, collection.id)\"\n\t\t\t/>\n\t\t</agile>\n\t\t<button\n\t\t\tv-show=\"showNavigation && carouselScrollPosition > 0\"\n\t\t\t:class=\"{ [$style.leftButton]: true }\"\n\t\t\t@click=\"scrollLeft\"\n\t\t>\n\t\t\t<font-awesome-icon icon=\"chevron-left\" />\n\t\t</button>\n\t\t<button\n\t\t\tv-show=\"showNavigation && !scrollEnd\"\n\t\t\t:class=\"{ [$style.rightButton]: true }\"\n\t\t\t@click=\"scrollRight\"\n\t\t>\n\t\t\t<font-awesome-icon icon=\"chevron-right\" />\n\t\t</button>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport type { ITemplatesCollection } from '@/Interface';\nimport Card from '@/components/CollectionWorkflowCard.vue';\nimport TemplatesInfoCard from '@/components/TemplatesInfoCard.vue';\nimport { VueAgile } from 'vue-agile';\n\ntype SliderRef = InstanceType<typeof VueAgile>;\n\nexport default defineComponent({\n\tname: 'TemplatesInfoCarousel',\n\tcomponents: {\n\t\tCard,\n\t\tTemplatesInfoCard,\n\t\tagile: VueAgile,\n\t},\n\tprops: {\n\t\tcollections: {\n\t\t\ttype: Array as PropType<ITemplatesCollection[]>,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tshowItemCount: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tcardsWidth: {\n\t\t\ttype: String,\n\t\t\tdefault: '240px',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcarouselScrollPosition: 0,\n\t\t\tcardWidth: parseInt(this.cardsWidth, 10),\n\t\t\tsliderWidth: 0,\n\t\t\tscrollEnd: false,\n\t\t\tlistElement: null as null | Element,\n\t\t};\n\t},\n\twatch: {\n\t\tcollections() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.updateCarouselScroll();\n\t\t\t}, 0);\n\t\t},\n\t\tloading() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.updateCarouselScroll();\n\t\t\t}, 0);\n\t\t},\n\t},\n\tasync mounted() {\n\t\tawait this.$nextTick();\n\t\tconst sliderRef = this.$refs.slider as SliderRef | undefined;\n\t\tif (!sliderRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.listElement = sliderRef.$el.querySelector('.agile__list');\n\t\tif (this.listElement) {\n\t\t\tthis.listElement.addEventListener('scroll', this.updateCarouselScroll);\n\t\t}\n\t},\n\tbeforeUnmount() {\n\t\tconst sliderRef = this.$refs.slider as SliderRef | undefined;\n\t\tif (sliderRef) {\n\t\t\tsliderRef.destroy();\n\t\t}\n\n\t\twindow.removeEventListener('scroll', this.updateCarouselScroll);\n\t},\n\tmethods: {\n\t\tupdateCarouselScroll() {\n\t\t\tif (this.listElement) {\n\t\t\t\tthis.carouselScrollPosition = Number(this.listElement.scrollLeft.toFixed());\n\n\t\t\t\tconst width = this.listElement.clientWidth;\n\t\t\t\tconst scrollWidth = this.listElement.scrollWidth;\n\t\t\t\tconst scrollLeft = this.carouselScrollPosition;\n\t\t\t\tthis.scrollEnd = scrollWidth - width <= scrollLeft + 7;\n\t\t\t}\n\t\t},\n\t\tonCardClick(event: MouseEvent, id: string) {\n\t\t\tthis.$emit('openCollection', { event, id });\n\t\t},\n\t\tscrollLeft() {\n\t\t\tif (this.listElement) {\n\t\t\t\tthis.listElement.scrollBy({ left: -(this.cardWidth * 2), top: 0, behavior: 'smooth' });\n\t\t\t}\n\t\t},\n\t\tscrollRight() {\n\t\t\tif (this.listElement) {\n\t\t\t\tthis.listElement.scrollBy({ left: this.cardWidth * 2, top: 0, behavior: 'smooth' });\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.container {\n\tposition: relative;\n}\n\n.button {\n\twidth: 28px;\n\theight: 37px;\n\tposition: absolute;\n\ttop: 35%;\n\tborder-radius: var(--border-radius-large);\n\tborder: var(--border-base);\n\tbackground-color: #fbfcfe;\n\tcursor: pointer;\n\n\t&:after {\n\t\tcontent: '';\n\t\twidth: 40px;\n\t\theight: 140px;\n\t\ttop: -55px;\n\t\tposition: absolute;\n\t}\n\tsvg {\n\t\tcolor: var(--color-foreground-xdark);\n\t}\n}\n\n.leftButton {\n\tcomposes: button;\n\tleft: -30px;\n\n\t&:after {\n\t\tleft: 27px;\n\t\tbackground: linear-gradient(\n\t\t\t270deg,\n\t\t\thsla(\n\t\t\t\tvar(--color-background-light-h),\n\t\t\t\tvar(--color-background-light-s),\n\t\t\t\tvar(--color-background-light-l),\n\t\t\t\t50%\n\t\t\t),\n\t\t\thsla(\n\t\t\t\tvar(--color-background-light-h),\n\t\t\t\tvar(--color-background-light-s),\n\t\t\t\tvar(--color-background-light-l),\n\t\t\t\t100%\n\t\t\t)\n\t\t);\n\t}\n}\n\n.rightButton {\n\tcomposes: button;\n\tright: -30px;\n\n\t&:after {\n\t\tright: 27px;\n\t\tbackground: linear-gradient(\n\t\t\t90deg,\n\t\t\thsla(\n\t\t\t\tvar(--color-background-light-h),\n\t\t\t\tvar(--color-background-light-s),\n\t\t\t\tvar(--color-background-light-l),\n\t\t\t\t50%\n\t\t\t),\n\t\t\thsla(\n\t\t\t\tvar(--color-background-light-h),\n\t\t\t\tvar(--color-background-light-s),\n\t\t\t\tvar(--color-background-light-l),\n\t\t\t\t100%\n\t\t\t)\n\t\t);\n\t}\n}\n</style>\n\n<style lang=\"scss\">\n.agile {\n\t&__list {\n\t\twidth: 100%;\n\t\tpadding-bottom: var(--spacing-2xs);\n\t\toverflow-x: auto;\n\t\ttransition: all 1s ease-in-out;\n\t}\n\n\t&__track {\n\t\twidth: 50px;\n\t}\n}\n</style>\n"],"names":["_sfc_main$2","defineComponent","_component_n8n_card","_resolveComponent","$attrs","_createBlock","_mergeProps","_ctx","_createSlots","_withCtx","loading","_createVNode","_component_n8n_loading","_createElementVNode","_normalizeClass","_toDisplayString","_hoisted_1","_renderSlot","_sfc_main$1","Card","NodeList","_openBlock","_component_Card","_normalizeStyle","_withDirectives","_component_n8n_text","_createTextVNode","_component_NodeList","_sfc_main","TemplatesInfoCard","VueAgile","sliderRef","width","scrollWidth","scrollLeft","event","id","_component_agile","_createElementBlock","_Fragment","_renderList","n","collection","_component_TemplatesInfoCard","onCardClick","_cache","args","showNavigation","carouselScrollPosition","scrollEnd"],"mappings":"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"}
1
+ {"version":3,"file":"TemplatesInfoCarousel-e2wgfGBn.js","sources":["../../src/components/CollectionWorkflowCard.vue","../../src/components/TemplatesInfoCard.vue","../../src/components/TemplatesInfoCarousel.vue"],"sourcesContent":["<template>\n\t<n8n-card :class=\"$style.card\" v-bind=\"$attrs\">\n\t\t<template v-if=\"!loading\" #header>\n\t\t\t<span :class=\"$style.title\" v-text=\"title\" />\n\t\t</template>\n\t\t<n8n-loading :loading=\"loading\" :rows=\"3\" variant=\"p\" />\n\t\t<template v-if=\"!loading\" #footer>\n\t\t\t<slot name=\"footer\" />\n\t\t</template>\n\t</n8n-card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n\tname: 'Card',\n\tprops: {\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.card {\n\tmin-width: 235px;\n\theight: 140px;\n\tmargin-right: var(--spacing-2xs);\n\tcursor: pointer;\n\n\t&:last-child {\n\t\tmargin-right: var(--spacing-5xs);\n\t}\n\n\t&:hover {\n\t\tbox-shadow: 0 2px 4px rgba(68, 28, 23, 0.07);\n\t}\n\n\t> div {\n\t\theight: 100%;\n\t}\n}\n\n.title {\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: 4;\n\t-webkit-box-orient: vertical;\n\tfont-size: var(--font-size-s);\n\tline-height: var(--font-line-height-regular);\n\tfont-weight: var(--font-weight-bold);\n\toverflow: hidden;\n\twhite-space: normal;\n}\n</style>\n","<template>\n\t<Card :loading=\"loading\" :title=\"collection.name\" :style=\"{ width }\">\n\t\t<template #footer>\n\t\t\t<span>\n\t\t\t\t<n8n-text v-show=\"showItemCount\" size=\"small\" color=\"text-light\">\n\t\t\t\t\t{{ collection.workflows.length }}\n\t\t\t\t\t{{ $locale.baseText('templates.workflows') }}\n\t\t\t\t</n8n-text>\n\t\t\t</span>\n\t\t\t<NodeList :nodes=\"collection.nodes\" :show-more=\"false\" />\n\t\t</template>\n\t</Card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport Card from '@/components/CollectionWorkflowCard.vue';\nimport NodeList from '@/components/NodeList.vue';\n\nexport default defineComponent({\n\tname: 'TemplatesInfoCard',\n\tcomponents: {\n\t\tCard,\n\t\tNodeList,\n\t},\n\tprops: {\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tcollection: {\n\t\t\ttype: Object,\n\t\t},\n\t\tshowItemCount: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\twidth: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module></style>\n","<template>\n\t<div v-show=\"loading || collections.length\" :class=\"$style.container\">\n\t\t<agile\n\t\t\tref=\"slider\"\n\t\t\t:dots=\"false\"\n\t\t\t:nav-buttons=\"false\"\n\t\t\t:infinite=\"false\"\n\t\t\t:slides-to-show=\"4\"\n\t\t\t@after-change=\"updateCarouselScroll\"\n\t\t>\n\t\t\t<Card v-for=\"n in loading ? 4 : 0\" :key=\"`loading-${n}`\" :loading=\"loading\" />\n\t\t\t<TemplatesInfoCard\n\t\t\t\tv-for=\"collection in loading ? [] : collections\"\n\t\t\t\t:key=\"collection.id\"\n\t\t\t\tdata-test-id=\"templates-info-card\"\n\t\t\t\t:collection=\"collection\"\n\t\t\t\t:show-item-count=\"showItemCount\"\n\t\t\t\t:width=\"cardsWidth\"\n\t\t\t\t@click=\"(e) => onCardClick(e, collection.id)\"\n\t\t\t/>\n\t\t</agile>\n\t\t<button\n\t\t\tv-show=\"showNavigation && carouselScrollPosition > 0\"\n\t\t\t:class=\"{ [$style.leftButton]: true }\"\n\t\t\t@click=\"scrollLeft\"\n\t\t>\n\t\t\t<font-awesome-icon icon=\"chevron-left\" />\n\t\t</button>\n\t\t<button\n\t\t\tv-show=\"showNavigation && !scrollEnd\"\n\t\t\t:class=\"{ [$style.rightButton]: true }\"\n\t\t\t@click=\"scrollRight\"\n\t\t>\n\t\t\t<font-awesome-icon icon=\"chevron-right\" />\n\t\t</button>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport type { ITemplatesCollection } from '@/Interface';\nimport Card from '@/components/CollectionWorkflowCard.vue';\nimport TemplatesInfoCard from '@/components/TemplatesInfoCard.vue';\nimport { VueAgile } from 'vue-agile';\n\ntype SliderRef = InstanceType<typeof VueAgile>;\n\nexport default defineComponent({\n\tname: 'TemplatesInfoCarousel',\n\tcomponents: {\n\t\tCard,\n\t\tTemplatesInfoCard,\n\t\tagile: VueAgile,\n\t},\n\tprops: {\n\t\tcollections: {\n\t\t\ttype: Array as PropType<ITemplatesCollection[]>,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tshowItemCount: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tcardsWidth: {\n\t\t\ttype: String,\n\t\t\tdefault: '240px',\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcarouselScrollPosition: 0,\n\t\t\tcardWidth: parseInt(this.cardsWidth, 10),\n\t\t\tsliderWidth: 0,\n\t\t\tscrollEnd: false,\n\t\t\tlistElement: null as null | Element,\n\t\t};\n\t},\n\twatch: {\n\t\tcollections() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.updateCarouselScroll();\n\t\t\t}, 0);\n\t\t},\n\t\tloading() {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.updateCarouselScroll();\n\t\t\t}, 0);\n\t\t},\n\t},\n\tasync mounted() {\n\t\tawait this.$nextTick();\n\t\tconst sliderRef = this.$refs.slider as SliderRef | undefined;\n\t\tif (!sliderRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.listElement = sliderRef.$el.querySelector('.agile__list');\n\t\tif (this.listElement) {\n\t\t\tthis.listElement.addEventListener('scroll', this.updateCarouselScroll);\n\t\t}\n\t},\n\tbeforeUnmount() {\n\t\tconst sliderRef = this.$refs.slider as SliderRef | undefined;\n\t\tif (sliderRef) {\n\t\t\tsliderRef.destroy();\n\t\t}\n\n\t\twindow.removeEventListener('scroll', this.updateCarouselScroll);\n\t},\n\tmethods: {\n\t\tupdateCarouselScroll() {\n\t\t\tif (this.listElement) {\n\t\t\t\tthis.carouselScrollPosition = Number(this.listElement.scrollLeft.toFixed());\n\n\t\t\t\tconst width = this.listElement.clientWidth;\n\t\t\t\tconst scrollWidth = this.listElement.scrollWidth;\n\t\t\t\tconst scrollLeft = this.carouselScrollPosition;\n\t\t\t\tthis.scrollEnd = scrollWidth - width <= scrollLeft + 7;\n\t\t\t}\n\t\t},\n\t\tonCardClick(event: MouseEvent, id: string) {\n\t\t\tthis.$emit('openCollection', { event, id });\n\t\t},\n\t\tscrollLeft() {\n\t\t\tif (this.listElement) {\n\t\t\t\tthis.listElement.scrollBy({ left: -(this.cardWidth * 2), top: 0, behavior: 'smooth' });\n\t\t\t}\n\t\t},\n\t\tscrollRight() {\n\t\t\tif (this.listElement) {\n\t\t\t\tthis.listElement.scrollBy({ left: this.cardWidth * 2, top: 0, behavior: 'smooth' });\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.container {\n\tposition: relative;\n}\n\n.button {\n\twidth: 28px;\n\theight: 37px;\n\tposition: absolute;\n\ttop: 35%;\n\tborder-radius: var(--border-radius-large);\n\tborder: var(--border-base);\n\tbackground-color: #fbfcfe;\n\tcursor: pointer;\n\n\t&:after {\n\t\tcontent: '';\n\t\twidth: 40px;\n\t\theight: 140px;\n\t\ttop: -55px;\n\t\tposition: absolute;\n\t}\n\tsvg {\n\t\tcolor: var(--color-foreground-xdark);\n\t}\n}\n\n.leftButton {\n\tcomposes: button;\n\tleft: -30px;\n\n\t&:after {\n\t\tleft: 27px;\n\t\tbackground: linear-gradient(\n\t\t\t270deg,\n\t\t\thsla(\n\t\t\t\tvar(--color-background-light-h),\n\t\t\t\tvar(--color-background-light-s),\n\t\t\t\tvar(--color-background-light-l),\n\t\t\t\t50%\n\t\t\t),\n\t\t\thsla(\n\t\t\t\tvar(--color-background-light-h),\n\t\t\t\tvar(--color-background-light-s),\n\t\t\t\tvar(--color-background-light-l),\n\t\t\t\t100%\n\t\t\t)\n\t\t);\n\t}\n}\n\n.rightButton {\n\tcomposes: button;\n\tright: -30px;\n\n\t&:after {\n\t\tright: 27px;\n\t\tbackground: linear-gradient(\n\t\t\t90deg,\n\t\t\thsla(\n\t\t\t\tvar(--color-background-light-h),\n\t\t\t\tvar(--color-background-light-s),\n\t\t\t\tvar(--color-background-light-l),\n\t\t\t\t50%\n\t\t\t),\n\t\t\thsla(\n\t\t\t\tvar(--color-background-light-h),\n\t\t\t\tvar(--color-background-light-s),\n\t\t\t\tvar(--color-background-light-l),\n\t\t\t\t100%\n\t\t\t)\n\t\t);\n\t}\n}\n</style>\n\n<style lang=\"scss\">\n.agile {\n\t&__list {\n\t\twidth: 100%;\n\t\tpadding-bottom: var(--spacing-2xs);\n\t\toverflow-x: auto;\n\t\ttransition: all 1s ease-in-out;\n\t}\n\n\t&__track {\n\t\twidth: 50px;\n\t}\n}\n</style>\n"],"names":["_sfc_main$2","defineComponent","_component_n8n_card","_resolveComponent","$attrs","_createBlock","_mergeProps","_ctx","_createSlots","_withCtx","loading","_createVNode","_component_n8n_loading","_createElementVNode","_normalizeClass","_toDisplayString","_hoisted_1","_renderSlot","_sfc_main$1","Card","NodeList","_openBlock","_component_Card","_normalizeStyle","_withDirectives","_component_n8n_text","_createTextVNode","_component_NodeList","_sfc_main","TemplatesInfoCard","VueAgile","sliderRef","width","scrollWidth","scrollLeft","event","id","_component_agile","_createElementBlock","_Fragment","_renderList","n","collection","_component_TemplatesInfoCard","onCardClick","_cache","args","showNavigation","carouselScrollPosition","scrollEnd"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{m as S}from"./pinia-hqNpa1CE.js";import{T as A}from"./TemplatesInfoCarousel-XG1W0SLa.js";import{$,d as E,u as M,dI as P,dv as U,a as V,i as I,b as B,dw as F,V as T}from"./index-OLvpAx8p.js";import{G as b,l as n,m as h,p as i,I as s,R as p,T as a,Q as u,O as c,S as m,F as R,a7 as q,ag as l,M as z,V as H,U as Q}from"./vendor-qzAIxxHa.js";import{_}from"./n8n-roXSR3ff.js";import{T as j}from"./TemplateList--L3zJ5wK.js";import{T as N}from"./TemplatesView-RFX1Nriq.js";import"./NodeList-mBvddp-7.js";import"./vue-agile-MeFFkdnU.js";import"./lodash-es-SWsik9tP.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.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-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const D=b({name:"TemplateFilters",props:{categories:{type:Array,default:()=>[]},sortOnPopulate:{type:Boolean,default:!1},expandLimit:{type:Number,default:12},loading:{type:Boolean},selected:{type:Array,default:()=>[]}},emits:["clearAll","select","clear"],data(){return{collapsed:!0,sortedCategories:[]}},computed:{...S($),allSelected(){return this.selected.length===0}},watch:{sortOnPopulate:{handler(e){e&&this.sortCategories()},immediate:!0},categories:{handler(e){e.length>0&&this.sortCategories()},immediate:!0}},methods:{sortCategories(){if(!this.sortOnPopulate)this.sortedCategories=this.categories;else{const e=this.selected||[],t=this.categories.filter(r=>e.includes(r)),o=this.categories.filter(r=>!e.includes(r));this.sortedCategories=t.concat(o)}},collapseAction(){this.collapsed=!1},handleCheckboxChanged(e,t){this.$emit(e?"select":"clear",t)},isSelected(e){return this.selected.includes(e)},resetCategories(){this.$emit("clearAll")}}}),K="_title_1sb10_1",G="_categories_1sb10_6",J="_item_1sb10_11",X="_button_1sb10_18",Y={title:K,categories:G,item:J,button:X},Z=["textContent"],x=["data-test-id"];function ee(e,t,o,r,g,v){const f=l("n8n-loading"),C=l("el-checkbox"),w=l("n8n-text");return n(),h("div",{class:s([e.$style.filters,"template-filters"]),"data-test-id":"templates-filter-container"},[i("div",{class:s(e.$style.title),textContent:p(e.$locale.baseText("templates.categoriesHeading"))},null,10,Z),e.loading?(n(),h("div",{key:0,class:s(e.$style.list)},[a(f,{loading:e.loading,rows:e.expandLimit},null,8,["loading","rows"])],2)):u("",!0),e.loading?u("",!0):(n(),h("ul",{key:1,class:s(e.$style.categories)},[i("li",{class:s(e.$style.item),"data-test-id":"template-filter-all-categories"},[a(C,{"model-value":e.allSelected,"onUpdate:modelValue":t[0]||(t[0]=()=>e.resetCategories())},{default:c(()=>[m(p(e.$locale.baseText("templates.allCategories")),1)]),_:1},8,["model-value"])],2),(n(!0),h(R,null,q(e.collapsed?e.sortedCategories.slice(0,e.expandLimit):e.sortedCategories,(d,y)=>(n(),h("li",{key:y,class:s(e.$style.item),"data-test-id":`template-filter-${d.name.toLowerCase().replaceAll(" ","-")}`},[a(C,{"model-value":e.isSelected(d),"onUpdate:modelValue":k=>e.handleCheckboxChanged(k,d)},{default:c(()=>[m(p(d.name),1)]),_:2},1032,["model-value","onUpdate:modelValue"])],10,x))),128))],2)),e.sortedCategories.length>e.expandLimit&&e.collapsed&&!e.loading?(n(),h("div",{key:2,class:s(e.$style.button),"data-test-id":"expand-categories-button",onClick:t[1]||(t[1]=(...d)=>e.collapseAction&&e.collapseAction(...d))},[a(w,{size:"small",color:"primary"},{default:c(()=>[m(" + "+p(`${e.sortedCategories.length-e.expandLimit} more`),1)]),_:1})],2)):u("",!0)],2)}const te={$style:Y},oe=_(D,[["render",ee],["__cssModules",te]]),se=b({name:"TemplatesSearchView",components:{TemplatesInfoCarousel:A,TemplateFilters:oe,TemplateList:j,TemplatesView:N},setup(){const{callDebounced:e}=E();return{callDebounced:e,...M()}},data(){return{areCategoriesPrepopulated:!1,categories:[],loading:!0,loadingCategories:!0,loadingCollections:!0,loadingWorkflows:!0,search:"",searchEventToTrack:null,errorLoadingWorkflows:!1,creatorHubUrl:P}},computed:{...S(B,$,I,V,U),totalWorkflows(){return this.templatesStore.getSearchedWorkflowsTotal(this.createQueryObject("name"))},workflows(){return this.templatesStore.getSearchedWorkflows(this.createQueryObject("name"))??[]},collections(){return this.templatesStore.getSearchedCollections(this.createQueryObject("id"))??[]},endOfSearchMessage(){return this.loadingWorkflows?null:!this.loadingCollections&&this.workflows.length===0&&this.collections.length===0?!this.settingsStore.isTemplatesEndpointReachable&&this.errorLoadingWorkflows?this.$locale.baseText("templates.connectionWarning"):this.$locale.baseText("templates.noSearchResults"):null},nothingFound(){return!this.loadingWorkflows&&!this.loadingCollections&&this.workflows.length===0&&this.collections.length===0}},watch:{workflows(e){e.length===0&&this.scrollTo(0)}},async mounted(){F("n8n - Templates"),await this.loadCategories(),this.loadWorkflowsAndCollections(!0),this.usersStore.showPersonalizationSurvey(),this.restoreSearchFromRoute(),setTimeout(()=>{this.$route.meta&&this.$route.meta.scrollOffset>0&&this.scrollTo(this.$route.meta.scrollOffset,"auto")},100)},methods:{createQueryObject(e){return{categories:this.categories.map(t=>e==="name"?t.name:String(t.id)),search:this.search}},restoreSearchFromRoute(){let e=!1;if(this.$route.query.search&&typeof this.$route.query.search=="string"&&(this.search=this.$route.query.search,e=!0),typeof this.$route.query.categories=="string"&&this.$route.query.categories.length){const t=this.$route.query.categories.split(",");this.categories=this.templatesStore.allCategories.filter(o=>t.includes(o.id.toString())),e=!0}e&&(this.updateSearch(),this.trackCategories(),this.areCategoriesPrepopulated=!0)},onOpenCollection({event:e,id:t}){this.navigateTo(e,T.COLLECTION,t)},onOpenTemplate({event:e,id:t}){this.navigateTo(e,T.TEMPLATE,t)},navigateTo(e,t,o){if(e.metaKey||e.ctrlKey){const r=this.$router.resolve({name:t,params:{id:o}});window.open(r.href,"_blank");return}else this.$router.push({name:t,params:{id:o}})},updateSearch(){this.updateQueryParam(this.search,this.categories.map(e=>e.id).join(",")),this.loadWorkflowsAndCollections(!1)},updateSearchTracking(e,t){e&&(this.searchEventToTrack&&this.searchEventToTrack.search_string.length>e.length||(this.searchEventToTrack={search_string:e,workflow_results_count:this.workflows.length,collection_results_count:this.collections.length,categories_applied:t.map(o=>this.templatesStore.getCategoryById(o.toString())),wf_template_repo_session_id:this.templatesStore.currentSessionId}))},trackSearch(){this.searchEventToTrack&&(this.$telemetry.track("User searched workflow templates",this.searchEventToTrack),this.searchEventToTrack=null)},onSearchInput(e){this.loadingWorkflows=!0,this.loadingCollections=!0,this.search=e,this.callDebounced(this.updateSearch,{debounceTime:500,trailing:!0}),e.length===0&&this.trackSearch()},onCategorySelected(e){this.categories=this.categories.concat(e),this.updateSearch(),this.trackCategories()},onCategoryUnselected(e){this.categories=this.categories.filter(t=>t.id!==e.id),this.updateSearch(),this.trackCategories()},onCategoriesCleared(){this.categories=[],this.updateSearch()},trackCategories(){this.categories.length&&this.$telemetry.track("User changed template filters",{search_string:this.search,categories_applied:this.categories,wf_template_repo_session_id:this.templatesStore.currentSessionId})},updateQueryParam(e,t){const o=Object.assign({},this.$route.query);t.length?o.categories=t:delete o.categories,e.length?o.search=e:delete o.search,this.$router.replace({query:o})},async onLoadMore(){if(!(this.workflows.length>=this.totalWorkflows))try{this.loadingWorkflows=!0,await this.templatesStore.getMoreWorkflows({categories:this.categories.map(e=>e.name),search:this.search})}catch{this.showMessage({title:"Error",message:"Could not load more workflows",type:"error"})}finally{this.loadingWorkflows=!1}},async loadCategories(){try{await this.templatesStore.getCategories()}catch{}this.loadingCategories=!1},async loadCollections(){try{this.loadingCollections=!0,await this.templatesStore.getCollections({categories:this.categories.map(e=>String(e.id)),search:this.search})}catch{}this.loadingCollections=!1},async loadWorkflows(){try{this.loadingWorkflows=!0,await this.templatesStore.getWorkflows({search:this.search,categories:this.categories.map(e=>e.name)}),this.errorLoadingWorkflows=!1}catch{this.errorLoadingWorkflows=!0}this.loadingWorkflows=!1},async loadWorkflowsAndCollections(e){const t=this.search,o=[...this.categories];await Promise.all([this.loadWorkflows(),this.loadCollections()]),e||this.updateSearchTracking(t,o.map(r=>r.id))},scrollTo(e,t="smooth"){setTimeout(()=>{const o=document.getElementById("content");o&&o.scrollTo({top:e,behavior:t})},0)}},beforeRouteLeave(e,t,o){var g;const r=document.getElementById("content");r&&(g=this.$route.meta)!=null&&g.setScrollPosition&&typeof this.$route.meta.setScrollPosition=="function"&&this.$route.meta.setScrollPosition(r.scrollTop),this.trackSearch(),o()}}),ae="_wrapper_1el39_1",re="_contentWrapper_1el39_6",le="_filters_1el39_16",ie="_search_1el39_22",ne="_header_1el39_34",ce={wrapper:ae,contentWrapper:re,filters:le,search:ie,header:ne},de=["textContent"],he=["innerHTML"];function pe(e,t,o,r,g,v){const f=l("n8n-heading"),C=l("n8n-button"),w=l("TemplateFilters"),d=l("font-awesome-icon"),y=l("n8n-input"),k=l("TemplatesInfoCarousel"),W=l("TemplateList"),L=l("n8n-text"),O=l("TemplatesView");return n(),z(O,null,{header:c(()=>[i("div",{class:s(e.$style.wrapper)},[i("div",{class:s(e.$style.title)},[a(f,{tag:"h1",size:"2xlarge"},{default:c(()=>[m(p(e.$locale.baseText("templates.heading")),1)]),_:1})],2),i("div",{class:s(e.$style.button)},[a(C,{size:"large",type:"secondary",element:"a",href:e.creatorHubUrl,label:e.$locale.baseText("templates.shareWorkflow"),target:"_blank"},null,8,["href","label"])],2)],2)]),content:c(()=>[i("div",{class:s(e.$style.contentWrapper)},[i("div",{class:s(e.$style.filters)},[a(w,{categories:e.templatesStore.allCategories,"sort-on-populate":e.areCategoriesPrepopulated,selected:e.categories,loading:e.loadingCategories,onClear:e.onCategoryUnselected,onClearAll:e.onCategoriesCleared,onSelect:e.onCategorySelected},null,8,["categories","sort-on-populate","selected","loading","onClear","onClearAll","onSelect"])],2),i("div",{class:s(e.$style.search)},[a(y,{"model-value":e.search,placeholder:e.$locale.baseText("templates.searchPlaceholder"),clearable:"","data-test-id":"template-search-input","onUpdate:modelValue":e.onSearchInput,onBlur:e.trackSearch},{prefix:c(()=>[a(d,{icon:"search"})]),_:1},8,["model-value","placeholder","onUpdate:modelValue","onBlur"]),H(i("div",{class:s(e.$style.carouselContainer)},[i("div",{class:s(e.$style.header)},[a(f,{bold:!0,size:"medium",color:"text-light"},{default:c(()=>[m(p(e.$locale.baseText("templates.collections"))+" ",1),e.loadingCollections?u("",!0):(n(),h("span",{key:0,"data-test-id":"collection-count-label",textContent:p(`(${e.collections.length})`)},null,8,de))]),_:1})],2),a(k,{collections:e.collections,loading:e.loadingCollections,onOpenCollection:e.onOpenCollection},null,8,["collections","loading","onOpenCollection"])],2),[[Q,e.collections.length||e.loadingCollections]]),a(W,{"infinite-scroll-enabled":!0,loading:e.loadingWorkflows,workflows:e.workflows,"total-count":e.totalWorkflows,onLoadMore:e.onLoadMore,onOpenTemplate:e.onOpenTemplate},null,8,["loading","workflows","total-count","onLoadMore","onOpenTemplate"]),e.endOfSearchMessage?(n(),h("div",{key:0,class:s(e.$style.endText)},[a(L,{size:"medium",color:"text-base"},{default:c(()=>[i("span",{innerHTML:e.endOfSearchMessage},null,8,he)]),_:1})],2)):u("",!0)],2)],2)]),_:1})}const ue={$style:ce},Ge=_(se,[["render",pe],["__cssModules",ue]]);export{Ge as default};
2
- //# sourceMappingURL=TemplatesSearchView-OYEX_uZ1.js.map
1
+ import{m as S}from"./pinia-hqNpa1CE.js";import{T as A}from"./TemplatesInfoCarousel-e2wgfGBn.js";import{$,d as E,u as M,dI as P,dv as U,a as V,i as I,b as B,dw as F,V as T}from"./index-6ulnOLCO.js";import{G as b,l as n,m as h,p as i,I as s,R as p,T as a,Q as u,O as c,S as m,F as R,a7 as q,ag as l,M as z,V as H,U as Q}from"./vendor-qzAIxxHa.js";import{_}from"./n8n-roXSR3ff.js";import{T as j}from"./TemplateList-M4LBpjOe.js";import{T as N}from"./TemplatesView-bbDzQ95P.js";import"./NodeList-qt_5gC5-.js";import"./vue-agile-MeFFkdnU.js";import"./lodash-es-SWsik9tP.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.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-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const D=b({name:"TemplateFilters",props:{categories:{type:Array,default:()=>[]},sortOnPopulate:{type:Boolean,default:!1},expandLimit:{type:Number,default:12},loading:{type:Boolean},selected:{type:Array,default:()=>[]}},emits:["clearAll","select","clear"],data(){return{collapsed:!0,sortedCategories:[]}},computed:{...S($),allSelected(){return this.selected.length===0}},watch:{sortOnPopulate:{handler(e){e&&this.sortCategories()},immediate:!0},categories:{handler(e){e.length>0&&this.sortCategories()},immediate:!0}},methods:{sortCategories(){if(!this.sortOnPopulate)this.sortedCategories=this.categories;else{const e=this.selected||[],t=this.categories.filter(r=>e.includes(r)),o=this.categories.filter(r=>!e.includes(r));this.sortedCategories=t.concat(o)}},collapseAction(){this.collapsed=!1},handleCheckboxChanged(e,t){this.$emit(e?"select":"clear",t)},isSelected(e){return this.selected.includes(e)},resetCategories(){this.$emit("clearAll")}}}),K="_title_1sb10_1",G="_categories_1sb10_6",J="_item_1sb10_11",X="_button_1sb10_18",Y={title:K,categories:G,item:J,button:X},Z=["textContent"],x=["data-test-id"];function ee(e,t,o,r,g,v){const f=l("n8n-loading"),C=l("el-checkbox"),w=l("n8n-text");return n(),h("div",{class:s([e.$style.filters,"template-filters"]),"data-test-id":"templates-filter-container"},[i("div",{class:s(e.$style.title),textContent:p(e.$locale.baseText("templates.categoriesHeading"))},null,10,Z),e.loading?(n(),h("div",{key:0,class:s(e.$style.list)},[a(f,{loading:e.loading,rows:e.expandLimit},null,8,["loading","rows"])],2)):u("",!0),e.loading?u("",!0):(n(),h("ul",{key:1,class:s(e.$style.categories)},[i("li",{class:s(e.$style.item),"data-test-id":"template-filter-all-categories"},[a(C,{"model-value":e.allSelected,"onUpdate:modelValue":t[0]||(t[0]=()=>e.resetCategories())},{default:c(()=>[m(p(e.$locale.baseText("templates.allCategories")),1)]),_:1},8,["model-value"])],2),(n(!0),h(R,null,q(e.collapsed?e.sortedCategories.slice(0,e.expandLimit):e.sortedCategories,(d,y)=>(n(),h("li",{key:y,class:s(e.$style.item),"data-test-id":`template-filter-${d.name.toLowerCase().replaceAll(" ","-")}`},[a(C,{"model-value":e.isSelected(d),"onUpdate:modelValue":k=>e.handleCheckboxChanged(k,d)},{default:c(()=>[m(p(d.name),1)]),_:2},1032,["model-value","onUpdate:modelValue"])],10,x))),128))],2)),e.sortedCategories.length>e.expandLimit&&e.collapsed&&!e.loading?(n(),h("div",{key:2,class:s(e.$style.button),"data-test-id":"expand-categories-button",onClick:t[1]||(t[1]=(...d)=>e.collapseAction&&e.collapseAction(...d))},[a(w,{size:"small",color:"primary"},{default:c(()=>[m(" + "+p(`${e.sortedCategories.length-e.expandLimit} more`),1)]),_:1})],2)):u("",!0)],2)}const te={$style:Y},oe=_(D,[["render",ee],["__cssModules",te]]),se=b({name:"TemplatesSearchView",components:{TemplatesInfoCarousel:A,TemplateFilters:oe,TemplateList:j,TemplatesView:N},setup(){const{callDebounced:e}=E();return{callDebounced:e,...M()}},data(){return{areCategoriesPrepopulated:!1,categories:[],loading:!0,loadingCategories:!0,loadingCollections:!0,loadingWorkflows:!0,search:"",searchEventToTrack:null,errorLoadingWorkflows:!1,creatorHubUrl:P}},computed:{...S(B,$,I,V,U),totalWorkflows(){return this.templatesStore.getSearchedWorkflowsTotal(this.createQueryObject("name"))},workflows(){return this.templatesStore.getSearchedWorkflows(this.createQueryObject("name"))??[]},collections(){return this.templatesStore.getSearchedCollections(this.createQueryObject("id"))??[]},endOfSearchMessage(){return this.loadingWorkflows?null:!this.loadingCollections&&this.workflows.length===0&&this.collections.length===0?!this.settingsStore.isTemplatesEndpointReachable&&this.errorLoadingWorkflows?this.$locale.baseText("templates.connectionWarning"):this.$locale.baseText("templates.noSearchResults"):null},nothingFound(){return!this.loadingWorkflows&&!this.loadingCollections&&this.workflows.length===0&&this.collections.length===0}},watch:{workflows(e){e.length===0&&this.scrollTo(0)}},async mounted(){F("n8n - Templates"),await this.loadCategories(),this.loadWorkflowsAndCollections(!0),this.usersStore.showPersonalizationSurvey(),this.restoreSearchFromRoute(),setTimeout(()=>{this.$route.meta&&this.$route.meta.scrollOffset>0&&this.scrollTo(this.$route.meta.scrollOffset,"auto")},100)},methods:{createQueryObject(e){return{categories:this.categories.map(t=>e==="name"?t.name:String(t.id)),search:this.search}},restoreSearchFromRoute(){let e=!1;if(this.$route.query.search&&typeof this.$route.query.search=="string"&&(this.search=this.$route.query.search,e=!0),typeof this.$route.query.categories=="string"&&this.$route.query.categories.length){const t=this.$route.query.categories.split(",");this.categories=this.templatesStore.allCategories.filter(o=>t.includes(o.id.toString())),e=!0}e&&(this.updateSearch(),this.trackCategories(),this.areCategoriesPrepopulated=!0)},onOpenCollection({event:e,id:t}){this.navigateTo(e,T.COLLECTION,t)},onOpenTemplate({event:e,id:t}){this.navigateTo(e,T.TEMPLATE,t)},navigateTo(e,t,o){if(e.metaKey||e.ctrlKey){const r=this.$router.resolve({name:t,params:{id:o}});window.open(r.href,"_blank");return}else this.$router.push({name:t,params:{id:o}})},updateSearch(){this.updateQueryParam(this.search,this.categories.map(e=>e.id).join(",")),this.loadWorkflowsAndCollections(!1)},updateSearchTracking(e,t){e&&(this.searchEventToTrack&&this.searchEventToTrack.search_string.length>e.length||(this.searchEventToTrack={search_string:e,workflow_results_count:this.workflows.length,collection_results_count:this.collections.length,categories_applied:t.map(o=>this.templatesStore.getCategoryById(o.toString())),wf_template_repo_session_id:this.templatesStore.currentSessionId}))},trackSearch(){this.searchEventToTrack&&(this.$telemetry.track("User searched workflow templates",this.searchEventToTrack),this.searchEventToTrack=null)},onSearchInput(e){this.loadingWorkflows=!0,this.loadingCollections=!0,this.search=e,this.callDebounced(this.updateSearch,{debounceTime:500,trailing:!0}),e.length===0&&this.trackSearch()},onCategorySelected(e){this.categories=this.categories.concat(e),this.updateSearch(),this.trackCategories()},onCategoryUnselected(e){this.categories=this.categories.filter(t=>t.id!==e.id),this.updateSearch(),this.trackCategories()},onCategoriesCleared(){this.categories=[],this.updateSearch()},trackCategories(){this.categories.length&&this.$telemetry.track("User changed template filters",{search_string:this.search,categories_applied:this.categories,wf_template_repo_session_id:this.templatesStore.currentSessionId})},updateQueryParam(e,t){const o=Object.assign({},this.$route.query);t.length?o.categories=t:delete o.categories,e.length?o.search=e:delete o.search,this.$router.replace({query:o})},async onLoadMore(){if(!(this.workflows.length>=this.totalWorkflows))try{this.loadingWorkflows=!0,await this.templatesStore.getMoreWorkflows({categories:this.categories.map(e=>e.name),search:this.search})}catch{this.showMessage({title:"Error",message:"Could not load more workflows",type:"error"})}finally{this.loadingWorkflows=!1}},async loadCategories(){try{await this.templatesStore.getCategories()}catch{}this.loadingCategories=!1},async loadCollections(){try{this.loadingCollections=!0,await this.templatesStore.getCollections({categories:this.categories.map(e=>String(e.id)),search:this.search})}catch{}this.loadingCollections=!1},async loadWorkflows(){try{this.loadingWorkflows=!0,await this.templatesStore.getWorkflows({search:this.search,categories:this.categories.map(e=>e.name)}),this.errorLoadingWorkflows=!1}catch{this.errorLoadingWorkflows=!0}this.loadingWorkflows=!1},async loadWorkflowsAndCollections(e){const t=this.search,o=[...this.categories];await Promise.all([this.loadWorkflows(),this.loadCollections()]),e||this.updateSearchTracking(t,o.map(r=>r.id))},scrollTo(e,t="smooth"){setTimeout(()=>{const o=document.getElementById("content");o&&o.scrollTo({top:e,behavior:t})},0)}},beforeRouteLeave(e,t,o){var g;const r=document.getElementById("content");r&&(g=this.$route.meta)!=null&&g.setScrollPosition&&typeof this.$route.meta.setScrollPosition=="function"&&this.$route.meta.setScrollPosition(r.scrollTop),this.trackSearch(),o()}}),ae="_wrapper_1el39_1",re="_contentWrapper_1el39_6",le="_filters_1el39_16",ie="_search_1el39_22",ne="_header_1el39_34",ce={wrapper:ae,contentWrapper:re,filters:le,search:ie,header:ne},de=["textContent"],he=["innerHTML"];function pe(e,t,o,r,g,v){const f=l("n8n-heading"),C=l("n8n-button"),w=l("TemplateFilters"),d=l("font-awesome-icon"),y=l("n8n-input"),k=l("TemplatesInfoCarousel"),W=l("TemplateList"),L=l("n8n-text"),O=l("TemplatesView");return n(),z(O,null,{header:c(()=>[i("div",{class:s(e.$style.wrapper)},[i("div",{class:s(e.$style.title)},[a(f,{tag:"h1",size:"2xlarge"},{default:c(()=>[m(p(e.$locale.baseText("templates.heading")),1)]),_:1})],2),i("div",{class:s(e.$style.button)},[a(C,{size:"large",type:"secondary",element:"a",href:e.creatorHubUrl,label:e.$locale.baseText("templates.shareWorkflow"),target:"_blank"},null,8,["href","label"])],2)],2)]),content:c(()=>[i("div",{class:s(e.$style.contentWrapper)},[i("div",{class:s(e.$style.filters)},[a(w,{categories:e.templatesStore.allCategories,"sort-on-populate":e.areCategoriesPrepopulated,selected:e.categories,loading:e.loadingCategories,onClear:e.onCategoryUnselected,onClearAll:e.onCategoriesCleared,onSelect:e.onCategorySelected},null,8,["categories","sort-on-populate","selected","loading","onClear","onClearAll","onSelect"])],2),i("div",{class:s(e.$style.search)},[a(y,{"model-value":e.search,placeholder:e.$locale.baseText("templates.searchPlaceholder"),clearable:"","data-test-id":"template-search-input","onUpdate:modelValue":e.onSearchInput,onBlur:e.trackSearch},{prefix:c(()=>[a(d,{icon:"search"})]),_:1},8,["model-value","placeholder","onUpdate:modelValue","onBlur"]),H(i("div",{class:s(e.$style.carouselContainer)},[i("div",{class:s(e.$style.header)},[a(f,{bold:!0,size:"medium",color:"text-light"},{default:c(()=>[m(p(e.$locale.baseText("templates.collections"))+" ",1),e.loadingCollections?u("",!0):(n(),h("span",{key:0,"data-test-id":"collection-count-label",textContent:p(`(${e.collections.length})`)},null,8,de))]),_:1})],2),a(k,{collections:e.collections,loading:e.loadingCollections,onOpenCollection:e.onOpenCollection},null,8,["collections","loading","onOpenCollection"])],2),[[Q,e.collections.length||e.loadingCollections]]),a(W,{"infinite-scroll-enabled":!0,loading:e.loadingWorkflows,workflows:e.workflows,"total-count":e.totalWorkflows,onLoadMore:e.onLoadMore,onOpenTemplate:e.onOpenTemplate},null,8,["loading","workflows","total-count","onLoadMore","onOpenTemplate"]),e.endOfSearchMessage?(n(),h("div",{key:0,class:s(e.$style.endText)},[a(L,{size:"medium",color:"text-base"},{default:c(()=>[i("span",{innerHTML:e.endOfSearchMessage},null,8,he)]),_:1})],2)):u("",!0)],2)],2)]),_:1})}const ue={$style:ce},Ge=_(se,[["render",pe],["__cssModules",ue]]);export{Ge as default};
2
+ //# sourceMappingURL=TemplatesSearchView-FkqpvNK2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplatesSearchView-OYEX_uZ1.js","sources":["../../src/components/TemplateFilters.vue","../../src/views/TemplatesSearchView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.filters\" class=\"template-filters\" data-test-id=\"templates-filter-container\">\n\t\t<div :class=\"$style.title\" v-text=\"$locale.baseText('templates.categoriesHeading')\" />\n\t\t<div v-if=\"loading\" :class=\"$style.list\">\n\t\t\t<n8n-loading :loading=\"loading\" :rows=\"expandLimit\" />\n\t\t</div>\n\t\t<ul v-if=\"!loading\" :class=\"$style.categories\">\n\t\t\t<li :class=\"$style.item\" data-test-id=\"template-filter-all-categories\">\n\t\t\t\t<el-checkbox :model-value=\"allSelected\" @update:model-value=\"() => resetCategories()\">\n\t\t\t\t\t{{ $locale.baseText('templates.allCategories') }}\n\t\t\t\t</el-checkbox>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tv-for=\"(category, index) in collapsed\n\t\t\t\t\t? sortedCategories.slice(0, expandLimit)\n\t\t\t\t\t: sortedCategories\"\n\t\t\t\t:key=\"index\"\n\t\t\t\t:class=\"$style.item\"\n\t\t\t\t:data-test-id=\"`template-filter-${category.name.toLowerCase().replaceAll(' ', '-')}`\"\n\t\t\t>\n\t\t\t\t<el-checkbox\n\t\t\t\t\t:model-value=\"isSelected(category)\"\n\t\t\t\t\t@update:model-value=\"(value: boolean) => handleCheckboxChanged(value, category)\"\n\t\t\t\t>\n\t\t\t\t\t{{ category.name }}\n\t\t\t\t</el-checkbox>\n\t\t\t</li>\n\t\t</ul>\n\t\t<div\n\t\t\tv-if=\"sortedCategories.length > expandLimit && collapsed && !loading\"\n\t\t\t:class=\"$style.button\"\n\t\t\tdata-test-id=\"expand-categories-button\"\n\t\t\t@click=\"collapseAction\"\n\t\t>\n\t\t\t<n8n-text size=\"small\" color=\"primary\">\n\t\t\t\t+ {{ `${sortedCategories.length - expandLimit} more` }}\n\t\t\t</n8n-text>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { ITemplatesCategory } from '@/Interface';\nimport type { PropType } from 'vue';\nimport { useTemplatesStore } from '@/stores/templates.store';\nimport { mapStores } from 'pinia';\n\nexport default defineComponent({\n\tname: 'TemplateFilters',\n\tprops: {\n\t\tcategories: {\n\t\t\ttype: Array as PropType<ITemplatesCategory[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tsortOnPopulate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\texpandLimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 12,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tselected: {\n\t\t\ttype: Array as PropType<ITemplatesCategory[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\temits: ['clearAll', 'select', 'clear'],\n\tdata() {\n\t\treturn {\n\t\t\tcollapsed: true,\n\t\t\tsortedCategories: [] as ITemplatesCategory[],\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useTemplatesStore),\n\t\tallSelected(): boolean {\n\t\t\treturn this.selected.length === 0;\n\t\t},\n\t},\n\twatch: {\n\t\tsortOnPopulate: {\n\t\t\thandler(value: boolean) {\n\t\t\t\tif (value) {\n\t\t\t\t\tthis.sortCategories();\n\t\t\t\t}\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t\tcategories: {\n\t\t\thandler(categories: ITemplatesCategory[]) {\n\t\t\t\tif (categories.length > 0) {\n\t\t\t\t\tthis.sortCategories();\n\t\t\t\t}\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t},\n\tmethods: {\n\t\tsortCategories() {\n\t\t\tif (!this.sortOnPopulate) {\n\t\t\t\tthis.sortedCategories = this.categories;\n\t\t\t} else {\n\t\t\t\tconst selected = this.selected || [];\n\t\t\t\tconst selectedCategories = this.categories.filter((cat) => selected.includes(cat));\n\t\t\t\tconst notSelectedCategories = this.categories.filter((cat) => !selected.includes(cat));\n\t\t\t\tthis.sortedCategories = selectedCategories.concat(notSelectedCategories);\n\t\t\t}\n\t\t},\n\t\tcollapseAction() {\n\t\t\tthis.collapsed = false;\n\t\t},\n\t\thandleCheckboxChanged(value: boolean, selectedCategory: ITemplatesCategory) {\n\t\t\tthis.$emit(value ? 'select' : 'clear', selectedCategory);\n\t\t},\n\t\tisSelected(category: ITemplatesCategory) {\n\t\t\treturn this.selected.includes(category);\n\t\t},\n\t\tresetCategories() {\n\t\t\tthis.$emit('clearAll');\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.title {\n\tfont-size: var(--font-size-2xs);\n\tcolor: var(--color-text-base);\n}\n\n.categories {\n\tpadding-top: var(--spacing-xs);\n\tlist-style-type: none;\n}\n\n.item {\n\tmargin-top: var(--spacing-xs);\n\n\t&:nth-child(1) {\n\t\tmargin-top: 0;\n\t}\n}\n\n.button {\n\tpadding-top: var(--spacing-2xs);\n\tcursor: pointer;\n}\n</style>\n\n<style lang=\"scss\">\n.template-filters {\n\t.el-checkbox {\n\t\tdisplay: flex;\n\t\twhite-space: unset;\n\t}\n\n\t.el-checkbox__label {\n\t\ttop: -2px;\n\t\tposition: relative;\n\t\tfont-size: var(--font-size-xs);\n\t\tline-height: var(--font-line-height-loose);\n\t\tcolor: var(--color-text-dark);\n\t\tpadding-left: var(--spacing-2xs);\n\t}\n}\n</style>\n","<template>\n\t<TemplatesView>\n\t\t<template #header>\n\t\t\t<div :class=\"$style.wrapper\">\n\t\t\t\t<div :class=\"$style.title\">\n\t\t\t\t\t<n8n-heading tag=\"h1\" size=\"2xlarge\">\n\t\t\t\t\t\t{{ $locale.baseText('templates.heading') }}\n\t\t\t\t\t</n8n-heading>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.button\">\n\t\t\t\t\t<n8n-button\n\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\telement=\"a\"\n\t\t\t\t\t\t:href=\"creatorHubUrl\"\n\t\t\t\t\t\t:label=\"$locale.baseText('templates.shareWorkflow')\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t<template #content>\n\t\t\t<div :class=\"$style.contentWrapper\">\n\t\t\t\t<div :class=\"$style.filters\">\n\t\t\t\t\t<TemplateFilters\n\t\t\t\t\t\t:categories=\"templatesStore.allCategories\"\n\t\t\t\t\t\t:sort-on-populate=\"areCategoriesPrepopulated\"\n\t\t\t\t\t\t:selected=\"categories\"\n\t\t\t\t\t\t:loading=\"loadingCategories\"\n\t\t\t\t\t\t@clear=\"onCategoryUnselected\"\n\t\t\t\t\t\t@clear-all=\"onCategoriesCleared\"\n\t\t\t\t\t\t@select=\"onCategorySelected\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.search\">\n\t\t\t\t\t<n8n-input\n\t\t\t\t\t\t:model-value=\"search\"\n\t\t\t\t\t\t:placeholder=\"$locale.baseText('templates.searchPlaceholder')\"\n\t\t\t\t\t\tclearable\n\t\t\t\t\t\tdata-test-id=\"template-search-input\"\n\t\t\t\t\t\t@update:model-value=\"onSearchInput\"\n\t\t\t\t\t\t@blur=\"trackSearch\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t\t<font-awesome-icon icon=\"search\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</n8n-input>\n\t\t\t\t\t<div v-show=\"collections.length || loadingCollections\" :class=\"$style.carouselContainer\">\n\t\t\t\t\t\t<div :class=\"$style.header\">\n\t\t\t\t\t\t\t<n8n-heading :bold=\"true\" size=\"medium\" color=\"text-light\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('templates.collections') }}\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tv-if=\"!loadingCollections\"\n\t\t\t\t\t\t\t\t\tdata-test-id=\"collection-count-label\"\n\t\t\t\t\t\t\t\t\tv-text=\"`(${collections.length})`\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</n8n-heading>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<TemplatesInfoCarousel\n\t\t\t\t\t\t\t:collections=\"collections\"\n\t\t\t\t\t\t\t:loading=\"loadingCollections\"\n\t\t\t\t\t\t\t@open-collection=\"onOpenCollection\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<TemplateList\n\t\t\t\t\t\t:infinite-scroll-enabled=\"true\"\n\t\t\t\t\t\t:loading=\"loadingWorkflows\"\n\t\t\t\t\t\t:workflows=\"workflows\"\n\t\t\t\t\t\t:total-count=\"totalWorkflows\"\n\t\t\t\t\t\t@load-more=\"onLoadMore\"\n\t\t\t\t\t\t@open-template=\"onOpenTemplate\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div v-if=\"endOfSearchMessage\" :class=\"$style.endText\">\n\t\t\t\t\t\t<n8n-text size=\"medium\" color=\"text-base\">\n\t\t\t\t\t\t\t<span v-html=\"endOfSearchMessage\" />\n\t\t\t\t\t\t</n8n-text>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</TemplatesView>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport TemplatesInfoCarousel from '@/components/TemplatesInfoCarousel.vue';\nimport TemplateFilters from '@/components/TemplateFilters.vue';\nimport TemplateList from '@/components/TemplateList.vue';\nimport TemplatesView from '@/views/TemplatesView.vue';\n\nimport type {\n\tITemplatesCollection,\n\tITemplatesWorkflow,\n\tITemplatesQuery,\n\tITemplatesCategory,\n} from '@/Interface';\nimport type { IDataObject } from 'n8n-workflow';\nimport { setPageTitle } from '@/utils/htmlUtils';\nimport { CREATOR_HUB_URL, VIEWS } from '@/constants';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useTemplatesStore } from '@/stores/templates.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useToast } from '@/composables/useToast';\nimport { usePostHog } from '@/stores/posthog.store';\nimport { useDebounce } from '@/composables/useDebounce';\n\ninterface ISearchEvent {\n\tsearch_string: string;\n\tworkflow_results_count: number;\n\tcollection_results_count: number;\n\tcategories_applied: ITemplatesCategory[];\n\twf_template_repo_session_id: string;\n}\n\nexport default defineComponent({\n\tname: 'TemplatesSearchView',\n\tcomponents: {\n\t\tTemplatesInfoCarousel,\n\t\tTemplateFilters,\n\t\tTemplateList,\n\t\tTemplatesView,\n\t},\n\tsetup() {\n\t\tconst { callDebounced } = useDebounce();\n\n\t\treturn {\n\t\t\tcallDebounced,\n\t\t\t...useToast(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tareCategoriesPrepopulated: false,\n\t\t\tcategories: [] as ITemplatesCategory[],\n\t\t\tloading: true,\n\t\t\tloadingCategories: true,\n\t\t\tloadingCollections: true,\n\t\t\tloadingWorkflows: true,\n\t\t\tsearch: '',\n\t\t\tsearchEventToTrack: null as null | ISearchEvent,\n\t\t\terrorLoadingWorkflows: false,\n\t\t\tcreatorHubUrl: CREATOR_HUB_URL as string,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useSettingsStore, useTemplatesStore, useUIStore, useUsersStore, usePostHog),\n\t\ttotalWorkflows(): number {\n\t\t\treturn this.templatesStore.getSearchedWorkflowsTotal(this.createQueryObject('name'));\n\t\t},\n\t\tworkflows(): ITemplatesWorkflow[] {\n\t\t\treturn this.templatesStore.getSearchedWorkflows(this.createQueryObject('name')) ?? [];\n\t\t},\n\t\tcollections(): ITemplatesCollection[] {\n\t\t\treturn this.templatesStore.getSearchedCollections(this.createQueryObject('id')) ?? [];\n\t\t},\n\t\tendOfSearchMessage(): string | null {\n\t\t\tif (this.loadingWorkflows) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!this.loadingCollections &&\n\t\t\t\tthis.workflows.length === 0 &&\n\t\t\t\tthis.collections.length === 0\n\t\t\t) {\n\t\t\t\tif (!this.settingsStore.isTemplatesEndpointReachable && this.errorLoadingWorkflows) {\n\t\t\t\t\treturn this.$locale.baseText('templates.connectionWarning');\n\t\t\t\t}\n\t\t\t\treturn this.$locale.baseText('templates.noSearchResults');\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t\tnothingFound(): boolean {\n\t\t\treturn (\n\t\t\t\t!this.loadingWorkflows &&\n\t\t\t\t!this.loadingCollections &&\n\t\t\t\tthis.workflows.length === 0 &&\n\t\t\t\tthis.collections.length === 0\n\t\t\t);\n\t\t},\n\t},\n\twatch: {\n\t\tworkflows(newWorkflows) {\n\t\t\tif (newWorkflows.length === 0) {\n\t\t\t\tthis.scrollTo(0);\n\t\t\t}\n\t\t},\n\t},\n\tasync mounted() {\n\t\tsetPageTitle('n8n - Templates');\n\t\tawait this.loadCategories();\n\t\tvoid this.loadWorkflowsAndCollections(true);\n\t\tvoid this.usersStore.showPersonalizationSurvey();\n\n\t\tthis.restoreSearchFromRoute();\n\n\t\tsetTimeout(() => {\n\t\t\t// Check if there is scroll position saved in route and scroll to it\n\t\t\tif (this.$route.meta && this.$route.meta.scrollOffset > 0) {\n\t\t\t\tthis.scrollTo(this.$route.meta.scrollOffset, 'auto');\n\t\t\t}\n\t\t}, 100);\n\t},\n\tmethods: {\n\t\tcreateQueryObject(categoryId: 'name' | 'id'): ITemplatesQuery {\n\t\t\t// We are using category names for template search and ids for collection search\n\t\t\treturn {\n\t\t\t\tcategories: this.categories.map((category) =>\n\t\t\t\t\tcategoryId === 'name' ? category.name : String(category.id),\n\t\t\t\t),\n\t\t\t\tsearch: this.search,\n\t\t\t};\n\t\t},\n\t\trestoreSearchFromRoute() {\n\t\t\tlet updateSearch = false;\n\t\t\tif (this.$route.query.search && typeof this.$route.query.search === 'string') {\n\t\t\t\tthis.search = this.$route.query.search;\n\t\t\t\tupdateSearch = true;\n\t\t\t}\n\t\t\tif (typeof this.$route.query.categories === 'string' && this.$route.query.categories.length) {\n\t\t\t\tconst categoriesFromURL = this.$route.query.categories.split(',');\n\t\t\t\tthis.categories = this.templatesStore.allCategories.filter((category) =>\n\t\t\t\t\tcategoriesFromURL.includes(category.id.toString()),\n\t\t\t\t);\n\t\t\t\tupdateSearch = true;\n\t\t\t}\n\t\t\tif (updateSearch) {\n\t\t\t\tthis.updateSearch();\n\t\t\t\tthis.trackCategories();\n\t\t\t\tthis.areCategoriesPrepopulated = true;\n\t\t\t}\n\t\t},\n\t\tonOpenCollection({ event, id }: { event: MouseEvent; id: string }) {\n\t\t\tthis.navigateTo(event, VIEWS.COLLECTION, id);\n\t\t},\n\t\tonOpenTemplate({ event, id }: { event: MouseEvent; id: string }) {\n\t\t\tthis.navigateTo(event, VIEWS.TEMPLATE, id);\n\t\t},\n\t\tnavigateTo(e: MouseEvent, page: string, id: string) {\n\t\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\t\tconst route = this.$router.resolve({ name: page, params: { id } });\n\t\t\t\twindow.open(route.href, '_blank');\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tvoid this.$router.push({ name: page, params: { id } });\n\t\t\t}\n\t\t},\n\t\tupdateSearch() {\n\t\t\tthis.updateQueryParam(this.search, this.categories.map((category) => category.id).join(','));\n\t\t\tvoid this.loadWorkflowsAndCollections(false);\n\t\t},\n\t\tupdateSearchTracking(search: string, categories: number[]) {\n\t\t\tif (!search) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.searchEventToTrack && this.searchEventToTrack.search_string.length > search.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.searchEventToTrack = {\n\t\t\t\tsearch_string: search,\n\t\t\t\tworkflow_results_count: this.workflows.length,\n\t\t\t\tcollection_results_count: this.collections.length,\n\t\t\t\tcategories_applied: categories.map((categoryId) =>\n\t\t\t\t\tthis.templatesStore.getCategoryById(categoryId.toString()),\n\t\t\t\t) as ITemplatesCategory[],\n\t\t\t\twf_template_repo_session_id: this.templatesStore.currentSessionId,\n\t\t\t};\n\t\t},\n\t\ttrackSearch() {\n\t\t\tif (this.searchEventToTrack) {\n\t\t\t\tthis.$telemetry.track(\n\t\t\t\t\t'User searched workflow templates',\n\t\t\t\t\tthis.searchEventToTrack as unknown as IDataObject,\n\t\t\t\t);\n\t\t\t\tthis.searchEventToTrack = null;\n\t\t\t}\n\t\t},\n\t\tonSearchInput(search: string) {\n\t\t\tthis.loadingWorkflows = true;\n\t\t\tthis.loadingCollections = true;\n\t\t\tthis.search = search;\n\t\t\tvoid this.callDebounced(this.updateSearch, {\n\t\t\t\tdebounceTime: 500,\n\t\t\t\ttrailing: true,\n\t\t\t});\n\n\t\t\tif (search.length === 0) {\n\t\t\t\tthis.trackSearch();\n\t\t\t}\n\t\t},\n\t\tonCategorySelected(selected: ITemplatesCategory) {\n\t\t\tthis.categories = this.categories.concat(selected);\n\t\t\tthis.updateSearch();\n\t\t\tthis.trackCategories();\n\t\t},\n\t\tonCategoryUnselected(selected: ITemplatesCategory) {\n\t\t\tthis.categories = this.categories.filter((category) => category.id !== selected.id);\n\t\t\tthis.updateSearch();\n\t\t\tthis.trackCategories();\n\t\t},\n\t\tonCategoriesCleared() {\n\t\t\tthis.categories = [];\n\t\t\tthis.updateSearch();\n\t\t},\n\t\ttrackCategories() {\n\t\t\tif (this.categories.length) {\n\t\t\t\tthis.$telemetry.track('User changed template filters', {\n\t\t\t\t\tsearch_string: this.search,\n\t\t\t\t\tcategories_applied: this.categories,\n\t\t\t\t\twf_template_repo_session_id: this.templatesStore.currentSessionId,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tupdateQueryParam(search: string, category: string) {\n\t\t\tconst query = Object.assign({}, this.$route.query);\n\n\t\t\tif (category.length) {\n\t\t\t\tquery.categories = category;\n\t\t\t} else {\n\t\t\t\tdelete query.categories;\n\t\t\t}\n\n\t\t\tif (search.length) {\n\t\t\t\tquery.search = search;\n\t\t\t} else {\n\t\t\t\tdelete query.search;\n\t\t\t}\n\n\t\t\tvoid this.$router.replace({ query });\n\t\t},\n\t\tasync onLoadMore() {\n\t\t\tif (this.workflows.length >= this.totalWorkflows) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.loadingWorkflows = true;\n\t\t\t\tawait this.templatesStore.getMoreWorkflows({\n\t\t\t\t\tcategories: this.categories.map((category) => category.name),\n\t\t\t\t\tsearch: this.search,\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: 'Error',\n\t\t\t\t\tmessage: 'Could not load more workflows',\n\t\t\t\t\ttype: 'error',\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\tthis.loadingWorkflows = false;\n\t\t\t}\n\t\t},\n\t\tasync loadCategories() {\n\t\t\ttry {\n\t\t\t\tawait this.templatesStore.getCategories();\n\t\t\t} catch (e) {}\n\t\t\tthis.loadingCategories = false;\n\t\t},\n\t\tasync loadCollections() {\n\t\t\ttry {\n\t\t\t\tthis.loadingCollections = true;\n\t\t\t\tawait this.templatesStore.getCollections({\n\t\t\t\t\tcategories: this.categories.map((category) => String(category.id)),\n\t\t\t\t\tsearch: this.search,\n\t\t\t\t});\n\t\t\t} catch (e) {}\n\n\t\t\tthis.loadingCollections = false;\n\t\t},\n\t\tasync loadWorkflows() {\n\t\t\ttry {\n\t\t\t\tthis.loadingWorkflows = true;\n\t\t\t\tawait this.templatesStore.getWorkflows({\n\t\t\t\t\tsearch: this.search,\n\t\t\t\t\tcategories: this.categories.map((category) => category.name),\n\t\t\t\t});\n\t\t\t\tthis.errorLoadingWorkflows = false;\n\t\t\t} catch (e) {\n\t\t\t\tthis.errorLoadingWorkflows = true;\n\t\t\t}\n\n\t\t\tthis.loadingWorkflows = false;\n\t\t},\n\t\tasync loadWorkflowsAndCollections(initialLoad: boolean) {\n\t\t\tconst search = this.search;\n\t\t\tconst categories = [...this.categories];\n\t\t\tawait Promise.all([this.loadWorkflows(), this.loadCollections()]);\n\t\t\tif (!initialLoad) {\n\t\t\t\tthis.updateSearchTracking(\n\t\t\t\t\tsearch,\n\t\t\t\t\tcategories.map((category) => category.id),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tscrollTo(position: number, behavior: ScrollBehavior = 'smooth') {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst contentArea = document.getElementById('content');\n\t\t\t\tif (contentArea) {\n\t\t\t\t\tcontentArea.scrollTo({\n\t\t\t\t\t\ttop: position,\n\t\t\t\t\t\tbehavior,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t},\n\t},\n\tbeforeRouteLeave(to, from, next) {\n\t\tconst contentArea = document.getElementById('content');\n\t\tif (contentArea) {\n\t\t\t// When leaving this page, store current scroll position in route data\n\t\t\tif (\n\t\t\t\tthis.$route.meta?.setScrollPosition &&\n\t\t\t\ttypeof this.$route.meta.setScrollPosition === 'function'\n\t\t\t) {\n\t\t\t\tthis.$route.meta.setScrollPosition(contentArea.scrollTop);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackSearch();\n\t\tnext();\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.wrapper {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n\n.contentWrapper {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tflex-direction: column;\n\t}\n}\n\n.filters {\n\twidth: 200px;\n\tmargin-bottom: var(--spacing-xl);\n\tmargin-right: var(--spacing-2xl);\n}\n\n.search {\n\twidth: 100%;\n\n\t> * {\n\t\tmargin-bottom: var(--spacing-l);\n\t}\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tpadding-left: 0;\n\t}\n}\n\n.header {\n\tmargin-bottom: var(--spacing-2xs);\n}\n</style>\n"],"names":["_sfc_main$1","defineComponent","mapStores","useTemplatesStore","value","categories","selected","selectedCategories","cat","notSelectedCategories","selectedCategory","category","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_createElementVNode","loading","_toDisplayString","_hoisted_1","$style","expandLimit","_createCommentVNode","_component_el_checkbox","_cache","_createTextVNode","sortedCategories","_Fragment","_renderList","index","handleCheckboxChanged","args","_component_n8n_text","_sfc_main","TemplatesInfoCarousel","TemplateFilters","TemplateList","TemplatesView","callDebounced","useDebounce","useToast","CREATOR_HUB_URL","useSettingsStore","useUIStore","useUsersStore","usePostHog","newWorkflows","setPageTitle","categoryId","updateSearch","categoriesFromURL","event","id","VIEWS","page","route","search","query","initialLoad","position","behavior","contentArea","to","from","next","_a","_createBlock","_component_TemplatesView","_withCtx","_component_n8n_heading","_component_n8n_button","creatorHubUrl","$locale","_component_TemplateFilters","areCategoriesPrepopulated","loadingCategories","onCategoryUnselected","onCategoriesCleared","onCategorySelected","_component_n8n_input","trackSearch","_createVNode","_component_font_awesome_icon","_withDirectives","loadingCollections","onOpenCollection","collections","_vShow","loadingWorkflows","onLoadMore","onOpenTemplate","endOfSearchMessage","_hoisted_2"],"mappings":"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"}
1
+ {"version":3,"file":"TemplatesSearchView-FkqpvNK2.js","sources":["../../src/components/TemplateFilters.vue","../../src/views/TemplatesSearchView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.filters\" class=\"template-filters\" data-test-id=\"templates-filter-container\">\n\t\t<div :class=\"$style.title\" v-text=\"$locale.baseText('templates.categoriesHeading')\" />\n\t\t<div v-if=\"loading\" :class=\"$style.list\">\n\t\t\t<n8n-loading :loading=\"loading\" :rows=\"expandLimit\" />\n\t\t</div>\n\t\t<ul v-if=\"!loading\" :class=\"$style.categories\">\n\t\t\t<li :class=\"$style.item\" data-test-id=\"template-filter-all-categories\">\n\t\t\t\t<el-checkbox :model-value=\"allSelected\" @update:model-value=\"() => resetCategories()\">\n\t\t\t\t\t{{ $locale.baseText('templates.allCategories') }}\n\t\t\t\t</el-checkbox>\n\t\t\t</li>\n\t\t\t<li\n\t\t\t\tv-for=\"(category, index) in collapsed\n\t\t\t\t\t? sortedCategories.slice(0, expandLimit)\n\t\t\t\t\t: sortedCategories\"\n\t\t\t\t:key=\"index\"\n\t\t\t\t:class=\"$style.item\"\n\t\t\t\t:data-test-id=\"`template-filter-${category.name.toLowerCase().replaceAll(' ', '-')}`\"\n\t\t\t>\n\t\t\t\t<el-checkbox\n\t\t\t\t\t:model-value=\"isSelected(category)\"\n\t\t\t\t\t@update:model-value=\"(value: boolean) => handleCheckboxChanged(value, category)\"\n\t\t\t\t>\n\t\t\t\t\t{{ category.name }}\n\t\t\t\t</el-checkbox>\n\t\t\t</li>\n\t\t</ul>\n\t\t<div\n\t\t\tv-if=\"sortedCategories.length > expandLimit && collapsed && !loading\"\n\t\t\t:class=\"$style.button\"\n\t\t\tdata-test-id=\"expand-categories-button\"\n\t\t\t@click=\"collapseAction\"\n\t\t>\n\t\t\t<n8n-text size=\"small\" color=\"primary\">\n\t\t\t\t+ {{ `${sortedCategories.length - expandLimit} more` }}\n\t\t\t</n8n-text>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { ITemplatesCategory } from '@/Interface';\nimport type { PropType } from 'vue';\nimport { useTemplatesStore } from '@/stores/templates.store';\nimport { mapStores } from 'pinia';\n\nexport default defineComponent({\n\tname: 'TemplateFilters',\n\tprops: {\n\t\tcategories: {\n\t\t\ttype: Array as PropType<ITemplatesCategory[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tsortOnPopulate: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\texpandLimit: {\n\t\t\ttype: Number,\n\t\t\tdefault: 12,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tselected: {\n\t\t\ttype: Array as PropType<ITemplatesCategory[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\temits: ['clearAll', 'select', 'clear'],\n\tdata() {\n\t\treturn {\n\t\t\tcollapsed: true,\n\t\t\tsortedCategories: [] as ITemplatesCategory[],\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useTemplatesStore),\n\t\tallSelected(): boolean {\n\t\t\treturn this.selected.length === 0;\n\t\t},\n\t},\n\twatch: {\n\t\tsortOnPopulate: {\n\t\t\thandler(value: boolean) {\n\t\t\t\tif (value) {\n\t\t\t\t\tthis.sortCategories();\n\t\t\t\t}\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t\tcategories: {\n\t\t\thandler(categories: ITemplatesCategory[]) {\n\t\t\t\tif (categories.length > 0) {\n\t\t\t\t\tthis.sortCategories();\n\t\t\t\t}\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t},\n\tmethods: {\n\t\tsortCategories() {\n\t\t\tif (!this.sortOnPopulate) {\n\t\t\t\tthis.sortedCategories = this.categories;\n\t\t\t} else {\n\t\t\t\tconst selected = this.selected || [];\n\t\t\t\tconst selectedCategories = this.categories.filter((cat) => selected.includes(cat));\n\t\t\t\tconst notSelectedCategories = this.categories.filter((cat) => !selected.includes(cat));\n\t\t\t\tthis.sortedCategories = selectedCategories.concat(notSelectedCategories);\n\t\t\t}\n\t\t},\n\t\tcollapseAction() {\n\t\t\tthis.collapsed = false;\n\t\t},\n\t\thandleCheckboxChanged(value: boolean, selectedCategory: ITemplatesCategory) {\n\t\t\tthis.$emit(value ? 'select' : 'clear', selectedCategory);\n\t\t},\n\t\tisSelected(category: ITemplatesCategory) {\n\t\t\treturn this.selected.includes(category);\n\t\t},\n\t\tresetCategories() {\n\t\t\tthis.$emit('clearAll');\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.title {\n\tfont-size: var(--font-size-2xs);\n\tcolor: var(--color-text-base);\n}\n\n.categories {\n\tpadding-top: var(--spacing-xs);\n\tlist-style-type: none;\n}\n\n.item {\n\tmargin-top: var(--spacing-xs);\n\n\t&:nth-child(1) {\n\t\tmargin-top: 0;\n\t}\n}\n\n.button {\n\tpadding-top: var(--spacing-2xs);\n\tcursor: pointer;\n}\n</style>\n\n<style lang=\"scss\">\n.template-filters {\n\t.el-checkbox {\n\t\tdisplay: flex;\n\t\twhite-space: unset;\n\t}\n\n\t.el-checkbox__label {\n\t\ttop: -2px;\n\t\tposition: relative;\n\t\tfont-size: var(--font-size-xs);\n\t\tline-height: var(--font-line-height-loose);\n\t\tcolor: var(--color-text-dark);\n\t\tpadding-left: var(--spacing-2xs);\n\t}\n}\n</style>\n","<template>\n\t<TemplatesView>\n\t\t<template #header>\n\t\t\t<div :class=\"$style.wrapper\">\n\t\t\t\t<div :class=\"$style.title\">\n\t\t\t\t\t<n8n-heading tag=\"h1\" size=\"2xlarge\">\n\t\t\t\t\t\t{{ $locale.baseText('templates.heading') }}\n\t\t\t\t\t</n8n-heading>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.button\">\n\t\t\t\t\t<n8n-button\n\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\telement=\"a\"\n\t\t\t\t\t\t:href=\"creatorHubUrl\"\n\t\t\t\t\t\t:label=\"$locale.baseText('templates.shareWorkflow')\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t<template #content>\n\t\t\t<div :class=\"$style.contentWrapper\">\n\t\t\t\t<div :class=\"$style.filters\">\n\t\t\t\t\t<TemplateFilters\n\t\t\t\t\t\t:categories=\"templatesStore.allCategories\"\n\t\t\t\t\t\t:sort-on-populate=\"areCategoriesPrepopulated\"\n\t\t\t\t\t\t:selected=\"categories\"\n\t\t\t\t\t\t:loading=\"loadingCategories\"\n\t\t\t\t\t\t@clear=\"onCategoryUnselected\"\n\t\t\t\t\t\t@clear-all=\"onCategoriesCleared\"\n\t\t\t\t\t\t@select=\"onCategorySelected\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.search\">\n\t\t\t\t\t<n8n-input\n\t\t\t\t\t\t:model-value=\"search\"\n\t\t\t\t\t\t:placeholder=\"$locale.baseText('templates.searchPlaceholder')\"\n\t\t\t\t\t\tclearable\n\t\t\t\t\t\tdata-test-id=\"template-search-input\"\n\t\t\t\t\t\t@update:model-value=\"onSearchInput\"\n\t\t\t\t\t\t@blur=\"trackSearch\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<template #prefix>\n\t\t\t\t\t\t\t<font-awesome-icon icon=\"search\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</n8n-input>\n\t\t\t\t\t<div v-show=\"collections.length || loadingCollections\" :class=\"$style.carouselContainer\">\n\t\t\t\t\t\t<div :class=\"$style.header\">\n\t\t\t\t\t\t\t<n8n-heading :bold=\"true\" size=\"medium\" color=\"text-light\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('templates.collections') }}\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tv-if=\"!loadingCollections\"\n\t\t\t\t\t\t\t\t\tdata-test-id=\"collection-count-label\"\n\t\t\t\t\t\t\t\t\tv-text=\"`(${collections.length})`\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</n8n-heading>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<TemplatesInfoCarousel\n\t\t\t\t\t\t\t:collections=\"collections\"\n\t\t\t\t\t\t\t:loading=\"loadingCollections\"\n\t\t\t\t\t\t\t@open-collection=\"onOpenCollection\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<TemplateList\n\t\t\t\t\t\t:infinite-scroll-enabled=\"true\"\n\t\t\t\t\t\t:loading=\"loadingWorkflows\"\n\t\t\t\t\t\t:workflows=\"workflows\"\n\t\t\t\t\t\t:total-count=\"totalWorkflows\"\n\t\t\t\t\t\t@load-more=\"onLoadMore\"\n\t\t\t\t\t\t@open-template=\"onOpenTemplate\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div v-if=\"endOfSearchMessage\" :class=\"$style.endText\">\n\t\t\t\t\t\t<n8n-text size=\"medium\" color=\"text-base\">\n\t\t\t\t\t\t\t<span v-html=\"endOfSearchMessage\" />\n\t\t\t\t\t\t</n8n-text>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</TemplatesView>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport TemplatesInfoCarousel from '@/components/TemplatesInfoCarousel.vue';\nimport TemplateFilters from '@/components/TemplateFilters.vue';\nimport TemplateList from '@/components/TemplateList.vue';\nimport TemplatesView from '@/views/TemplatesView.vue';\n\nimport type {\n\tITemplatesCollection,\n\tITemplatesWorkflow,\n\tITemplatesQuery,\n\tITemplatesCategory,\n} from '@/Interface';\nimport type { IDataObject } from 'n8n-workflow';\nimport { setPageTitle } from '@/utils/htmlUtils';\nimport { CREATOR_HUB_URL, VIEWS } from '@/constants';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useTemplatesStore } from '@/stores/templates.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useToast } from '@/composables/useToast';\nimport { usePostHog } from '@/stores/posthog.store';\nimport { useDebounce } from '@/composables/useDebounce';\n\ninterface ISearchEvent {\n\tsearch_string: string;\n\tworkflow_results_count: number;\n\tcollection_results_count: number;\n\tcategories_applied: ITemplatesCategory[];\n\twf_template_repo_session_id: string;\n}\n\nexport default defineComponent({\n\tname: 'TemplatesSearchView',\n\tcomponents: {\n\t\tTemplatesInfoCarousel,\n\t\tTemplateFilters,\n\t\tTemplateList,\n\t\tTemplatesView,\n\t},\n\tsetup() {\n\t\tconst { callDebounced } = useDebounce();\n\n\t\treturn {\n\t\t\tcallDebounced,\n\t\t\t...useToast(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tareCategoriesPrepopulated: false,\n\t\t\tcategories: [] as ITemplatesCategory[],\n\t\t\tloading: true,\n\t\t\tloadingCategories: true,\n\t\t\tloadingCollections: true,\n\t\t\tloadingWorkflows: true,\n\t\t\tsearch: '',\n\t\t\tsearchEventToTrack: null as null | ISearchEvent,\n\t\t\terrorLoadingWorkflows: false,\n\t\t\tcreatorHubUrl: CREATOR_HUB_URL as string,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useSettingsStore, useTemplatesStore, useUIStore, useUsersStore, usePostHog),\n\t\ttotalWorkflows(): number {\n\t\t\treturn this.templatesStore.getSearchedWorkflowsTotal(this.createQueryObject('name'));\n\t\t},\n\t\tworkflows(): ITemplatesWorkflow[] {\n\t\t\treturn this.templatesStore.getSearchedWorkflows(this.createQueryObject('name')) ?? [];\n\t\t},\n\t\tcollections(): ITemplatesCollection[] {\n\t\t\treturn this.templatesStore.getSearchedCollections(this.createQueryObject('id')) ?? [];\n\t\t},\n\t\tendOfSearchMessage(): string | null {\n\t\t\tif (this.loadingWorkflows) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!this.loadingCollections &&\n\t\t\t\tthis.workflows.length === 0 &&\n\t\t\t\tthis.collections.length === 0\n\t\t\t) {\n\t\t\t\tif (!this.settingsStore.isTemplatesEndpointReachable && this.errorLoadingWorkflows) {\n\t\t\t\t\treturn this.$locale.baseText('templates.connectionWarning');\n\t\t\t\t}\n\t\t\t\treturn this.$locale.baseText('templates.noSearchResults');\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t\tnothingFound(): boolean {\n\t\t\treturn (\n\t\t\t\t!this.loadingWorkflows &&\n\t\t\t\t!this.loadingCollections &&\n\t\t\t\tthis.workflows.length === 0 &&\n\t\t\t\tthis.collections.length === 0\n\t\t\t);\n\t\t},\n\t},\n\twatch: {\n\t\tworkflows(newWorkflows) {\n\t\t\tif (newWorkflows.length === 0) {\n\t\t\t\tthis.scrollTo(0);\n\t\t\t}\n\t\t},\n\t},\n\tasync mounted() {\n\t\tsetPageTitle('n8n - Templates');\n\t\tawait this.loadCategories();\n\t\tvoid this.loadWorkflowsAndCollections(true);\n\t\tvoid this.usersStore.showPersonalizationSurvey();\n\n\t\tthis.restoreSearchFromRoute();\n\n\t\tsetTimeout(() => {\n\t\t\t// Check if there is scroll position saved in route and scroll to it\n\t\t\tif (this.$route.meta && this.$route.meta.scrollOffset > 0) {\n\t\t\t\tthis.scrollTo(this.$route.meta.scrollOffset, 'auto');\n\t\t\t}\n\t\t}, 100);\n\t},\n\tmethods: {\n\t\tcreateQueryObject(categoryId: 'name' | 'id'): ITemplatesQuery {\n\t\t\t// We are using category names for template search and ids for collection search\n\t\t\treturn {\n\t\t\t\tcategories: this.categories.map((category) =>\n\t\t\t\t\tcategoryId === 'name' ? category.name : String(category.id),\n\t\t\t\t),\n\t\t\t\tsearch: this.search,\n\t\t\t};\n\t\t},\n\t\trestoreSearchFromRoute() {\n\t\t\tlet updateSearch = false;\n\t\t\tif (this.$route.query.search && typeof this.$route.query.search === 'string') {\n\t\t\t\tthis.search = this.$route.query.search;\n\t\t\t\tupdateSearch = true;\n\t\t\t}\n\t\t\tif (typeof this.$route.query.categories === 'string' && this.$route.query.categories.length) {\n\t\t\t\tconst categoriesFromURL = this.$route.query.categories.split(',');\n\t\t\t\tthis.categories = this.templatesStore.allCategories.filter((category) =>\n\t\t\t\t\tcategoriesFromURL.includes(category.id.toString()),\n\t\t\t\t);\n\t\t\t\tupdateSearch = true;\n\t\t\t}\n\t\t\tif (updateSearch) {\n\t\t\t\tthis.updateSearch();\n\t\t\t\tthis.trackCategories();\n\t\t\t\tthis.areCategoriesPrepopulated = true;\n\t\t\t}\n\t\t},\n\t\tonOpenCollection({ event, id }: { event: MouseEvent; id: string }) {\n\t\t\tthis.navigateTo(event, VIEWS.COLLECTION, id);\n\t\t},\n\t\tonOpenTemplate({ event, id }: { event: MouseEvent; id: string }) {\n\t\t\tthis.navigateTo(event, VIEWS.TEMPLATE, id);\n\t\t},\n\t\tnavigateTo(e: MouseEvent, page: string, id: string) {\n\t\t\tif (e.metaKey || e.ctrlKey) {\n\t\t\t\tconst route = this.$router.resolve({ name: page, params: { id } });\n\t\t\t\twindow.open(route.href, '_blank');\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tvoid this.$router.push({ name: page, params: { id } });\n\t\t\t}\n\t\t},\n\t\tupdateSearch() {\n\t\t\tthis.updateQueryParam(this.search, this.categories.map((category) => category.id).join(','));\n\t\t\tvoid this.loadWorkflowsAndCollections(false);\n\t\t},\n\t\tupdateSearchTracking(search: string, categories: number[]) {\n\t\t\tif (!search) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.searchEventToTrack && this.searchEventToTrack.search_string.length > search.length) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.searchEventToTrack = {\n\t\t\t\tsearch_string: search,\n\t\t\t\tworkflow_results_count: this.workflows.length,\n\t\t\t\tcollection_results_count: this.collections.length,\n\t\t\t\tcategories_applied: categories.map((categoryId) =>\n\t\t\t\t\tthis.templatesStore.getCategoryById(categoryId.toString()),\n\t\t\t\t) as ITemplatesCategory[],\n\t\t\t\twf_template_repo_session_id: this.templatesStore.currentSessionId,\n\t\t\t};\n\t\t},\n\t\ttrackSearch() {\n\t\t\tif (this.searchEventToTrack) {\n\t\t\t\tthis.$telemetry.track(\n\t\t\t\t\t'User searched workflow templates',\n\t\t\t\t\tthis.searchEventToTrack as unknown as IDataObject,\n\t\t\t\t);\n\t\t\t\tthis.searchEventToTrack = null;\n\t\t\t}\n\t\t},\n\t\tonSearchInput(search: string) {\n\t\t\tthis.loadingWorkflows = true;\n\t\t\tthis.loadingCollections = true;\n\t\t\tthis.search = search;\n\t\t\tvoid this.callDebounced(this.updateSearch, {\n\t\t\t\tdebounceTime: 500,\n\t\t\t\ttrailing: true,\n\t\t\t});\n\n\t\t\tif (search.length === 0) {\n\t\t\t\tthis.trackSearch();\n\t\t\t}\n\t\t},\n\t\tonCategorySelected(selected: ITemplatesCategory) {\n\t\t\tthis.categories = this.categories.concat(selected);\n\t\t\tthis.updateSearch();\n\t\t\tthis.trackCategories();\n\t\t},\n\t\tonCategoryUnselected(selected: ITemplatesCategory) {\n\t\t\tthis.categories = this.categories.filter((category) => category.id !== selected.id);\n\t\t\tthis.updateSearch();\n\t\t\tthis.trackCategories();\n\t\t},\n\t\tonCategoriesCleared() {\n\t\t\tthis.categories = [];\n\t\t\tthis.updateSearch();\n\t\t},\n\t\ttrackCategories() {\n\t\t\tif (this.categories.length) {\n\t\t\t\tthis.$telemetry.track('User changed template filters', {\n\t\t\t\t\tsearch_string: this.search,\n\t\t\t\t\tcategories_applied: this.categories,\n\t\t\t\t\twf_template_repo_session_id: this.templatesStore.currentSessionId,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tupdateQueryParam(search: string, category: string) {\n\t\t\tconst query = Object.assign({}, this.$route.query);\n\n\t\t\tif (category.length) {\n\t\t\t\tquery.categories = category;\n\t\t\t} else {\n\t\t\t\tdelete query.categories;\n\t\t\t}\n\n\t\t\tif (search.length) {\n\t\t\t\tquery.search = search;\n\t\t\t} else {\n\t\t\t\tdelete query.search;\n\t\t\t}\n\n\t\t\tvoid this.$router.replace({ query });\n\t\t},\n\t\tasync onLoadMore() {\n\t\t\tif (this.workflows.length >= this.totalWorkflows) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tthis.loadingWorkflows = true;\n\t\t\t\tawait this.templatesStore.getMoreWorkflows({\n\t\t\t\t\tcategories: this.categories.map((category) => category.name),\n\t\t\t\t\tsearch: this.search,\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: 'Error',\n\t\t\t\t\tmessage: 'Could not load more workflows',\n\t\t\t\t\ttype: 'error',\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\tthis.loadingWorkflows = false;\n\t\t\t}\n\t\t},\n\t\tasync loadCategories() {\n\t\t\ttry {\n\t\t\t\tawait this.templatesStore.getCategories();\n\t\t\t} catch (e) {}\n\t\t\tthis.loadingCategories = false;\n\t\t},\n\t\tasync loadCollections() {\n\t\t\ttry {\n\t\t\t\tthis.loadingCollections = true;\n\t\t\t\tawait this.templatesStore.getCollections({\n\t\t\t\t\tcategories: this.categories.map((category) => String(category.id)),\n\t\t\t\t\tsearch: this.search,\n\t\t\t\t});\n\t\t\t} catch (e) {}\n\n\t\t\tthis.loadingCollections = false;\n\t\t},\n\t\tasync loadWorkflows() {\n\t\t\ttry {\n\t\t\t\tthis.loadingWorkflows = true;\n\t\t\t\tawait this.templatesStore.getWorkflows({\n\t\t\t\t\tsearch: this.search,\n\t\t\t\t\tcategories: this.categories.map((category) => category.name),\n\t\t\t\t});\n\t\t\t\tthis.errorLoadingWorkflows = false;\n\t\t\t} catch (e) {\n\t\t\t\tthis.errorLoadingWorkflows = true;\n\t\t\t}\n\n\t\t\tthis.loadingWorkflows = false;\n\t\t},\n\t\tasync loadWorkflowsAndCollections(initialLoad: boolean) {\n\t\t\tconst search = this.search;\n\t\t\tconst categories = [...this.categories];\n\t\t\tawait Promise.all([this.loadWorkflows(), this.loadCollections()]);\n\t\t\tif (!initialLoad) {\n\t\t\t\tthis.updateSearchTracking(\n\t\t\t\t\tsearch,\n\t\t\t\t\tcategories.map((category) => category.id),\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\tscrollTo(position: number, behavior: ScrollBehavior = 'smooth') {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst contentArea = document.getElementById('content');\n\t\t\t\tif (contentArea) {\n\t\t\t\t\tcontentArea.scrollTo({\n\t\t\t\t\t\ttop: position,\n\t\t\t\t\t\tbehavior,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t},\n\t},\n\tbeforeRouteLeave(to, from, next) {\n\t\tconst contentArea = document.getElementById('content');\n\t\tif (contentArea) {\n\t\t\t// When leaving this page, store current scroll position in route data\n\t\t\tif (\n\t\t\t\tthis.$route.meta?.setScrollPosition &&\n\t\t\t\ttypeof this.$route.meta.setScrollPosition === 'function'\n\t\t\t) {\n\t\t\t\tthis.$route.meta.setScrollPosition(contentArea.scrollTop);\n\t\t\t}\n\t\t}\n\n\t\tthis.trackSearch();\n\t\tnext();\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.wrapper {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n\n.contentWrapper {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tflex-direction: column;\n\t}\n}\n\n.filters {\n\twidth: 200px;\n\tmargin-bottom: var(--spacing-xl);\n\tmargin-right: var(--spacing-2xl);\n}\n\n.search {\n\twidth: 100%;\n\n\t> * {\n\t\tmargin-bottom: var(--spacing-l);\n\t}\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tpadding-left: 0;\n\t}\n}\n\n.header {\n\tmargin-bottom: var(--spacing-2xs);\n}\n</style>\n"],"names":["_sfc_main$1","defineComponent","mapStores","useTemplatesStore","value","categories","selected","selectedCategories","cat","notSelectedCategories","selectedCategory","category","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_createElementVNode","loading","_toDisplayString","_hoisted_1","$style","expandLimit","_createCommentVNode","_component_el_checkbox","_cache","_createTextVNode","sortedCategories","_Fragment","_renderList","index","handleCheckboxChanged","args","_component_n8n_text","_sfc_main","TemplatesInfoCarousel","TemplateFilters","TemplateList","TemplatesView","callDebounced","useDebounce","useToast","CREATOR_HUB_URL","useSettingsStore","useUIStore","useUsersStore","usePostHog","newWorkflows","setPageTitle","categoryId","updateSearch","categoriesFromURL","event","id","VIEWS","page","route","search","query","initialLoad","position","behavior","contentArea","to","from","next","_a","_createBlock","_component_TemplatesView","_withCtx","_component_n8n_heading","_component_n8n_button","creatorHubUrl","$locale","_component_TemplateFilters","areCategoriesPrepopulated","loadingCategories","onCategoryUnselected","onCategoriesCleared","onCategorySelected","_component_n8n_input","trackSearch","_createVNode","_component_font_awesome_icon","_withDirectives","loadingCollections","onOpenCollection","collections","_vShow","loadingWorkflows","onLoadMore","onOpenTemplate","endOfSearchMessage","_hoisted_2"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{V as f}from"./index-OLvpAx8p.js";import{G as l,l as a,m as r,T as i,I as t,p as o,R as g,ag as p,Q as y,H as c}from"./vendor-qzAIxxHa.js";import{_ as d}from"./n8n-roXSR3ff.js";const v=l({name:"GoBackButton",data(){return{routeHasHistory:!1}},mounted(){window.history.state?this.routeHasHistory=!0:this.routeHasHistory=!1},methods:{navigateTo(){this.routeHasHistory?this.$router.go(-1):this.$router.push({name:f.TEMPLATES})}}}),k="_wrapper_1g0gc_1",h="_icon_1g0gc_6",w="_text_1g0gc_7",T={wrapper:k,icon:h,text:w},H=["textContent"];function C(e,s,u,_,m,$){const n=p("font-awesome-icon");return a(),r("div",{class:t(e.$style.wrapper),onClick:s[0]||(s[0]=(...B)=>e.navigateTo&&e.navigateTo(...B))},[i(n,{class:t(e.$style.icon),icon:"arrow-left"},null,8,["class"]),o("div",{class:t(e.$style.text),textContent:g(e.$locale.baseText("template.buttons.goBackButton"))},null,10,H)],2)}const V={$style:T},E=d(v,[["render",C],["__cssModules",V]]),G=l({name:"TemplatesView",components:{GoBackButton:E},props:{goBackEnabled:{type:Boolean,default:!1}}}),M="_template_vnliu_1",b="_container_vnliu_14",S="_header_vnliu_18",N="_goBack_vnliu_24",I={template:M,container:b,header:S,goBack:N};function z(e,s,u,_,m,$){const n=p("GoBackButton");return a(),r("div",{class:t(e.$style.template)},[o("div",{class:t(e.$style.container)},[o("div",{class:t(e.$style.header)},[e.goBackEnabled?(a(),r("div",{key:0,class:t(e.$style.goBack)},[i(n)],2)):y("",!0),c(e.$slots,"header")],2),o("div",null,[c(e.$slots,"content")])],2)],2)}const A={$style:I},Q=d(G,[["render",z],["__cssModules",A]]);export{Q as T};
2
- //# sourceMappingURL=TemplatesView-RFX1Nriq.js.map
1
+ import{V as f}from"./index-6ulnOLCO.js";import{G as l,l as a,m as r,T as i,I as t,p as o,R as g,ag as p,Q as y,H as c}from"./vendor-qzAIxxHa.js";import{_ as d}from"./n8n-roXSR3ff.js";const v=l({name:"GoBackButton",data(){return{routeHasHistory:!1}},mounted(){window.history.state?this.routeHasHistory=!0:this.routeHasHistory=!1},methods:{navigateTo(){this.routeHasHistory?this.$router.go(-1):this.$router.push({name:f.TEMPLATES})}}}),k="_wrapper_1g0gc_1",h="_icon_1g0gc_6",w="_text_1g0gc_7",T={wrapper:k,icon:h,text:w},H=["textContent"];function C(e,s,u,_,m,$){const n=p("font-awesome-icon");return a(),r("div",{class:t(e.$style.wrapper),onClick:s[0]||(s[0]=(...B)=>e.navigateTo&&e.navigateTo(...B))},[i(n,{class:t(e.$style.icon),icon:"arrow-left"},null,8,["class"]),o("div",{class:t(e.$style.text),textContent:g(e.$locale.baseText("template.buttons.goBackButton"))},null,10,H)],2)}const V={$style:T},E=d(v,[["render",C],["__cssModules",V]]),G=l({name:"TemplatesView",components:{GoBackButton:E},props:{goBackEnabled:{type:Boolean,default:!1}}}),M="_template_vnliu_1",b="_container_vnliu_14",S="_header_vnliu_18",N="_goBack_vnliu_24",I={template:M,container:b,header:S,goBack:N};function z(e,s,u,_,m,$){const n=p("GoBackButton");return a(),r("div",{class:t(e.$style.template)},[o("div",{class:t(e.$style.container)},[o("div",{class:t(e.$style.header)},[e.goBackEnabled?(a(),r("div",{key:0,class:t(e.$style.goBack)},[i(n)],2)):y("",!0),c(e.$slots,"header")],2),o("div",null,[c(e.$slots,"content")])],2)],2)}const A={$style:I},Q=d(G,[["render",z],["__cssModules",A]]);export{Q as T};
2
+ //# sourceMappingURL=TemplatesView-bbDzQ95P.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplatesView-RFX1Nriq.js","sources":["../../src/components/GoBackButton.vue","../../src/views/TemplatesView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.wrapper\" @click=\"navigateTo\">\n\t\t<font-awesome-icon :class=\"$style.icon\" icon=\"arrow-left\" />\n\t\t<div :class=\"$style.text\" v-text=\"$locale.baseText('template.buttons.goBackButton')\" />\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { VIEWS } from '@/constants';\n\nexport default defineComponent({\n\tname: 'GoBackButton',\n\tdata() {\n\t\treturn {\n\t\t\trouteHasHistory: false,\n\t\t};\n\t},\n\tmounted() {\n\t\twindow.history.state ? (this.routeHasHistory = true) : (this.routeHasHistory = false);\n\t},\n\tmethods: {\n\t\tnavigateTo() {\n\t\t\tif (this.routeHasHistory) this.$router.go(-1);\n\t\t\telse void this.$router.push({ name: VIEWS.TEMPLATES });\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tcursor: pointer;\n\n\t&:hover {\n\t\t.icon,\n\t\t.text {\n\t\t\tcolor: var(--color-primary);\n\t\t}\n\t}\n}\n\n.icon {\n\tmargin-right: var(--spacing-2xs);\n\tcolor: var(--color-foreground-dark);\n\tfont-size: var(--font-size-m);\n}\n\n.text {\n\tfont-size: var(--font-size-s);\n\tline-height: var(--font-line-height-loose);\n\tcolor: var(--color-text-base);\n}\n</style>\n","<template>\n\t<div :class=\"$style.template\">\n\t\t<div :class=\"$style.container\">\n\t\t\t<div :class=\"$style.header\">\n\t\t\t\t<div v-if=\"goBackEnabled\" :class=\"$style.goBack\">\n\t\t\t\t\t<GoBackButton />\n\t\t\t\t</div>\n\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<slot name=\"content\"></slot>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport GoBackButton from '@/components/GoBackButton.vue';\n\nexport default defineComponent({\n\tname: 'TemplatesView',\n\tcomponents: {\n\t\tGoBackButton,\n\t},\n\tprops: {\n\t\tgoBackEnabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.template {\n\tdisplay: flex;\n\twidth: 100%;\n\tmax-width: 1280px;\n\tpadding: var(--spacing-l) var(--spacing-l) 0;\n\tjustify-content: center;\n\t@media (min-width: 1200px) {\n\t\tpadding: var(--spacing-2xl) var(--spacing-2xl) 0;\n\t}\n}\n\n.container {\n\twidth: 100%;\n}\n\n.header {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: var(--spacing-2xl);\n}\n\n.goBack {\n\tmargin-bottom: var(--spacing-2xs);\n}\n</style>\n"],"names":["_sfc_main$1","defineComponent","VIEWS","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_cache","args","_component_font_awesome_icon","_createElementVNode","_toDisplayString","_sfc_main","GoBackButton","goBackEnabled","$style","_createVNode","_component_GoBackButton","_createCommentVNode","_renderSlot"],"mappings":"uLAWA,MAAAA,EAAeC,EAAgB,CAC9B,KAAM,eACN,MAAO,CACC,MAAA,CACN,gBAAiB,EAAA,CAEnB,EACA,SAAU,CACT,OAAO,QAAQ,MAAS,KAAK,gBAAkB,GAAS,KAAK,gBAAkB,EAChF,EACA,QAAS,CACR,YAAa,CACR,KAAK,gBAAsB,KAAA,QAAQ,GAAG,EAAE,EAClC,KAAK,QAAQ,KAAK,CAAE,KAAMC,EAAM,UAAW,CACtD,CACD,CACD,CAAC,yIA1BAC,EAGM,mBAAA,SAHwBC,EAAK,EAAAC,EAAA,MAAA,CAAA,MAAAC,EAAAC,EAAA,OAAA,OAAA,EAClC,QAA4DC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,IAAAC,IAAAF,EAAA,YAAAA,EAAA,WAAA,GAAAE,CAAA,EAAA,EAAA,GAAfC,EAAY,CAAA,MAAAJ,EAAAC,EAAA,OAAA,IAAA,EACzD,KAAA,YAAA,EAAM,KAHR,EAAA,CAAA,OAAA,CAAA,EAG4BI,EAAA,MAAA,CAH5B,MAAAL,EAAAC,EAAA,OAAA,IAAA,EAAA,YAAAK,EAAAL,EAAA,QAAA,SAAA,+BAAA,CAAA,8ECoBAM,EAAeZ,EAAgB,CAC9B,KAAM,gBACN,WAAY,CACX,aAAAa,CACD,EACA,MAAO,CACN,cAAe,CACd,KAAM,QACN,QAAS,EACV,CACD,CACD,CAAC,uKA9BAX,EAYM,cAAA,sBAXL,MAUMG,EAAAC,EAAA,OAAA,QAAA,CAAA,EAAA,UATL,MAKMD,EAAAC,EAAA,OAAA,SAAA,CAAA,EAAA,gBAJMQ,EAAaR,EAAA,OAAA,MAAA,CAAA,EAAA,CAJ5BA,EAAA,eAAAH,IAAAC,EAIsCW,MAAO,CAAA,IAAA,EACxC,MAAgBV,EAAAC,EAAA,OAAA,MAAA,CAAA,EAAA,CALrBU,EAAAC,CAAA,CAOI,EAAA,CAAA,GAAAC,EAAA,GAAA,EAAA,EAEDC,EAEMb,EAAA,OAAA,QAAA,CADL,EAAA,CAAA,EAAAI,EAAA,MAAA,KAAA"}
1
+ {"version":3,"file":"TemplatesView-bbDzQ95P.js","sources":["../../src/components/GoBackButton.vue","../../src/views/TemplatesView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.wrapper\" @click=\"navigateTo\">\n\t\t<font-awesome-icon :class=\"$style.icon\" icon=\"arrow-left\" />\n\t\t<div :class=\"$style.text\" v-text=\"$locale.baseText('template.buttons.goBackButton')\" />\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { VIEWS } from '@/constants';\n\nexport default defineComponent({\n\tname: 'GoBackButton',\n\tdata() {\n\t\treturn {\n\t\t\trouteHasHistory: false,\n\t\t};\n\t},\n\tmounted() {\n\t\twindow.history.state ? (this.routeHasHistory = true) : (this.routeHasHistory = false);\n\t},\n\tmethods: {\n\t\tnavigateTo() {\n\t\t\tif (this.routeHasHistory) this.$router.go(-1);\n\t\t\telse void this.$router.push({ name: VIEWS.TEMPLATES });\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tcursor: pointer;\n\n\t&:hover {\n\t\t.icon,\n\t\t.text {\n\t\t\tcolor: var(--color-primary);\n\t\t}\n\t}\n}\n\n.icon {\n\tmargin-right: var(--spacing-2xs);\n\tcolor: var(--color-foreground-dark);\n\tfont-size: var(--font-size-m);\n}\n\n.text {\n\tfont-size: var(--font-size-s);\n\tline-height: var(--font-line-height-loose);\n\tcolor: var(--color-text-base);\n}\n</style>\n","<template>\n\t<div :class=\"$style.template\">\n\t\t<div :class=\"$style.container\">\n\t\t\t<div :class=\"$style.header\">\n\t\t\t\t<div v-if=\"goBackEnabled\" :class=\"$style.goBack\">\n\t\t\t\t\t<GoBackButton />\n\t\t\t\t</div>\n\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<slot name=\"content\"></slot>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport GoBackButton from '@/components/GoBackButton.vue';\n\nexport default defineComponent({\n\tname: 'TemplatesView',\n\tcomponents: {\n\t\tGoBackButton,\n\t},\n\tprops: {\n\t\tgoBackEnabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.template {\n\tdisplay: flex;\n\twidth: 100%;\n\tmax-width: 1280px;\n\tpadding: var(--spacing-l) var(--spacing-l) 0;\n\tjustify-content: center;\n\t@media (min-width: 1200px) {\n\t\tpadding: var(--spacing-2xl) var(--spacing-2xl) 0;\n\t}\n}\n\n.container {\n\twidth: 100%;\n}\n\n.header {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-bottom: var(--spacing-2xl);\n}\n\n.goBack {\n\tmargin-bottom: var(--spacing-2xs);\n}\n</style>\n"],"names":["_sfc_main$1","defineComponent","VIEWS","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_ctx","_cache","args","_component_font_awesome_icon","_createElementVNode","_toDisplayString","_sfc_main","GoBackButton","goBackEnabled","$style","_createVNode","_component_GoBackButton","_createCommentVNode","_renderSlot"],"mappings":"uLAWA,MAAAA,EAAeC,EAAgB,CAC9B,KAAM,eACN,MAAO,CACC,MAAA,CACN,gBAAiB,EAAA,CAEnB,EACA,SAAU,CACT,OAAO,QAAQ,MAAS,KAAK,gBAAkB,GAAS,KAAK,gBAAkB,EAChF,EACA,QAAS,CACR,YAAa,CACR,KAAK,gBAAsB,KAAA,QAAQ,GAAG,EAAE,EAClC,KAAK,QAAQ,KAAK,CAAE,KAAMC,EAAM,UAAW,CACtD,CACD,CACD,CAAC,yIA1BAC,EAGM,mBAAA,SAHwBC,EAAK,EAAAC,EAAA,MAAA,CAAA,MAAAC,EAAAC,EAAA,OAAA,OAAA,EAClC,QAA4DC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,IAAAC,IAAAF,EAAA,YAAAA,EAAA,WAAA,GAAAE,CAAA,EAAA,EAAA,GAAfC,EAAY,CAAA,MAAAJ,EAAAC,EAAA,OAAA,IAAA,EACzD,KAAA,YAAA,EAAM,KAHR,EAAA,CAAA,OAAA,CAAA,EAG4BI,EAAA,MAAA,CAH5B,MAAAL,EAAAC,EAAA,OAAA,IAAA,EAAA,YAAAK,EAAAL,EAAA,QAAA,SAAA,+BAAA,CAAA,8ECoBAM,EAAeZ,EAAgB,CAC9B,KAAM,gBACN,WAAY,CACX,aAAAa,CACD,EACA,MAAO,CACN,cAAe,CACd,KAAM,QACN,QAAS,EACV,CACD,CACD,CAAC,uKA9BAX,EAYM,cAAA,sBAXL,MAUMG,EAAAC,EAAA,OAAA,QAAA,CAAA,EAAA,UATL,MAKMD,EAAAC,EAAA,OAAA,SAAA,CAAA,EAAA,gBAJMQ,EAAaR,EAAA,OAAA,MAAA,CAAA,EAAA,CAJ5BA,EAAA,eAAAH,IAAAC,EAIsCW,MAAO,CAAA,IAAA,EACxC,MAAgBV,EAAAC,EAAA,OAAA,MAAA,CAAA,EAAA,CALrBU,EAAAC,CAAA,CAOI,EAAA,CAAA,GAAAC,EAAA,GAAA,EAAA,EAEDC,EAEMb,EAAA,OAAA,QAAA,CADL,EAAA,CAAA,EAAAI,EAAA,MAAA,KAAA"}
@@ -1,2 +1,2 @@
1
- import{m as _}from"./pinia-hqNpa1CE.js";import{T as S}from"./TemplateDetails-s0HGsSP9.js";import{T as F}from"./TemplatesView-RFX1Nriq.js";import{d7 as I,dv as P,$ as c,dw as g,a4 as B,a3 as V}from"./index-OLvpAx8p.js";import{u as C}from"./templateActions-4mG5U0Gi.js";import{G as H,l as a,M as l,a9 as W,O as r,p as n,Q as m,I as t,T as i,m as f,S as p,R as d,ag as o}from"./vendor-qzAIxxHa.js";import{_ as E}from"./n8n-roXSR3ff.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./lodash-es-SWsik9tP.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.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-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const N=H({name:"TemplatesWorkflowView",components:{TemplateDetails:S,TemplatesView:F,WorkflowPreview:I},setup(){return{externalHooks:V()}},computed:{..._(c,P),template(){return this.templatesStore.getFullTemplateById(this.templateId)},templateId(){return Array.isArray(this.$route.params.id)?this.$route.params.id[0]:this.$route.params.id}},data(){return{loading:!0,showPreview:!0,notFoundError:!1}},watch:{template(e){e?g(`n8n - Template template: ${e.name}`):g("n8n - Templates")}},async mounted(){if(this.scrollToTop(),this.template&&this.template.full){this.loading=!1;return}try{await this.templatesStore.fetchTemplateById(this.templateId)}catch{this.notFoundError=!0}this.loading=!1},methods:{async openTemplateSetup(e,s){await C({posthogStore:this.posthogStore,router:this.$router,templateId:e,inNewBrowserTab:s.metaKey||s.ctrlKey,externalHooks:this.externalHooks,nodeTypesStore:B(),telemetry:this.$telemetry,templatesStore:c(),source:"template_preview"})},onHidePreview(){this.showPreview=!1},scrollToTop(){const e=document.getElementById("content");e&&e.scrollTo({top:0})}}}),z="_wrapper_trbdo_1",D="_notFound_trbdo_6",A="_title_trbdo_10",M="_button_trbdo_14",K="_image_trbdo_18",G="_content_trbdo_29",O="_markdown_trbdo_40",Q="_details_trbdo_51",R={wrapper:z,notFound:D,title:A,button:M,image:K,content:G,markdown:O,details:Q};function j(e,s,J,L,U,X){const k=o("n8n-heading"),u=o("n8n-text"),w=o("n8n-loading"),T=o("n8n-button"),h=o("WorkflowPreview"),y=o("n8n-markdown"),b=o("TemplateDetails"),$=o("TemplatesView");return a(),l($,{"go-back-enabled":!0},W({header:r(()=>[e.notFoundError?(a(),f("div",{key:1,class:t(e.$style.notFound)},[i(u,{color:"text-base"},{default:r(()=>[p(d(e.$locale.baseText("templates.workflowsNotFound")),1)]),_:1})],2)):(a(),f("div",{key:0,class:t(e.$style.wrapper)},[n("div",{class:t(e.$style.title)},[e.template&&e.template.name?(a(),l(k,{key:0,tag:"h1",size:"2xlarge"},{default:r(()=>[p(d(e.template.name),1)]),_:1})):m("",!0),e.template&&e.template.name?(a(),l(u,{key:1,color:"text-base",size:"small"},{default:r(()=>[p(d(e.$locale.baseText("generic.workflow")),1)]),_:1})):m("",!0),i(w,{loading:!e.template||!e.template.name,rows:2,variant:"h1"},null,8,["loading"])],2),n("div",{class:t(e.$style.button)},[e.template?(a(),l(T,{key:0,"data-test-id":"use-template-button",label:e.$locale.baseText("template.buttons.useThisWorkflowButton"),size:"large",onClick:s[0]||(s[0]=v=>e.openTemplateSetup(e.templateId,v))},null,8,["label"])):m("",!0),i(w,{loading:!e.template,rows:1,variant:"button"},null,8,["loading"])],2)],2))]),_:2},[e.notFoundError?void 0:{name:"content",fn:r(()=>[n("div",{class:t(e.$style.image)},[e.showPreview?(a(),l(h,{key:0,loading:e.loading,workflow:e.template&&e.template.workflow,onClose:e.onHidePreview},null,8,["loading","workflow","onClose"])):m("",!0)],2),n("div",{class:t(e.$style.content)},[n("div",{class:t(e.$style.markdown),"data-test-id":"template-description"},[i(y,{content:e.template&&e.template.description,images:e.template&&e.template.image,loading:e.loading},null,8,["content","images","loading"])],2),n("div",{class:t(e.$style.details)},[i(b,{"block-title":e.$locale.baseText("template.details.appsInTheWorkflow"),loading:e.loading,template:e.template},null,8,["block-title","loading","template"])],2)],2)]),key:"0"}]),1024)}const q={$style:R},Be=E(N,[["render",j],["__cssModules",q]]);export{Be as default};
2
- //# sourceMappingURL=TemplatesWorkflowView-t6Xqg5xY.js.map
1
+ import{m as _}from"./pinia-hqNpa1CE.js";import{T as S}from"./TemplateDetails-PaDbF87J.js";import{T as F}from"./TemplatesView-bbDzQ95P.js";import{d7 as I,dv as P,$ as c,dw as g,a4 as B,a3 as V}from"./index-6ulnOLCO.js";import{u as C}from"./templateActions-9fUm8Xpc.js";import{G as H,l as a,M as l,a9 as W,O as r,p as n,Q as m,I as t,T as i,m as f,S as p,R as d,ag as o}from"./vendor-qzAIxxHa.js";import{_ as E}from"./n8n-roXSR3ff.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./lodash-es-SWsik9tP.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.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-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const N=H({name:"TemplatesWorkflowView",components:{TemplateDetails:S,TemplatesView:F,WorkflowPreview:I},setup(){return{externalHooks:V()}},computed:{..._(c,P),template(){return this.templatesStore.getFullTemplateById(this.templateId)},templateId(){return Array.isArray(this.$route.params.id)?this.$route.params.id[0]:this.$route.params.id}},data(){return{loading:!0,showPreview:!0,notFoundError:!1}},watch:{template(e){e?g(`n8n - Template template: ${e.name}`):g("n8n - Templates")}},async mounted(){if(this.scrollToTop(),this.template&&this.template.full){this.loading=!1;return}try{await this.templatesStore.fetchTemplateById(this.templateId)}catch{this.notFoundError=!0}this.loading=!1},methods:{async openTemplateSetup(e,s){await C({posthogStore:this.posthogStore,router:this.$router,templateId:e,inNewBrowserTab:s.metaKey||s.ctrlKey,externalHooks:this.externalHooks,nodeTypesStore:B(),telemetry:this.$telemetry,templatesStore:c(),source:"template_preview"})},onHidePreview(){this.showPreview=!1},scrollToTop(){const e=document.getElementById("content");e&&e.scrollTo({top:0})}}}),z="_wrapper_trbdo_1",D="_notFound_trbdo_6",A="_title_trbdo_10",M="_button_trbdo_14",K="_image_trbdo_18",G="_content_trbdo_29",O="_markdown_trbdo_40",Q="_details_trbdo_51",R={wrapper:z,notFound:D,title:A,button:M,image:K,content:G,markdown:O,details:Q};function j(e,s,J,L,U,X){const k=o("n8n-heading"),u=o("n8n-text"),w=o("n8n-loading"),T=o("n8n-button"),h=o("WorkflowPreview"),y=o("n8n-markdown"),b=o("TemplateDetails"),$=o("TemplatesView");return a(),l($,{"go-back-enabled":!0},W({header:r(()=>[e.notFoundError?(a(),f("div",{key:1,class:t(e.$style.notFound)},[i(u,{color:"text-base"},{default:r(()=>[p(d(e.$locale.baseText("templates.workflowsNotFound")),1)]),_:1})],2)):(a(),f("div",{key:0,class:t(e.$style.wrapper)},[n("div",{class:t(e.$style.title)},[e.template&&e.template.name?(a(),l(k,{key:0,tag:"h1",size:"2xlarge"},{default:r(()=>[p(d(e.template.name),1)]),_:1})):m("",!0),e.template&&e.template.name?(a(),l(u,{key:1,color:"text-base",size:"small"},{default:r(()=>[p(d(e.$locale.baseText("generic.workflow")),1)]),_:1})):m("",!0),i(w,{loading:!e.template||!e.template.name,rows:2,variant:"h1"},null,8,["loading"])],2),n("div",{class:t(e.$style.button)},[e.template?(a(),l(T,{key:0,"data-test-id":"use-template-button",label:e.$locale.baseText("template.buttons.useThisWorkflowButton"),size:"large",onClick:s[0]||(s[0]=v=>e.openTemplateSetup(e.templateId,v))},null,8,["label"])):m("",!0),i(w,{loading:!e.template,rows:1,variant:"button"},null,8,["loading"])],2)],2))]),_:2},[e.notFoundError?void 0:{name:"content",fn:r(()=>[n("div",{class:t(e.$style.image)},[e.showPreview?(a(),l(h,{key:0,loading:e.loading,workflow:e.template&&e.template.workflow,onClose:e.onHidePreview},null,8,["loading","workflow","onClose"])):m("",!0)],2),n("div",{class:t(e.$style.content)},[n("div",{class:t(e.$style.markdown),"data-test-id":"template-description"},[i(y,{content:e.template&&e.template.description,images:e.template&&e.template.image,loading:e.loading},null,8,["content","images","loading"])],2),n("div",{class:t(e.$style.details)},[i(b,{"block-title":e.$locale.baseText("template.details.appsInTheWorkflow"),loading:e.loading,template:e.template},null,8,["block-title","loading","template"])],2)],2)]),key:"0"}]),1024)}const q={$style:R},Be=E(N,[["render",j],["__cssModules",q]]);export{Be as default};
2
+ //# sourceMappingURL=TemplatesWorkflowView-7-rFNLp9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplatesWorkflowView-t6Xqg5xY.js","sources":["../../src/views/TemplatesWorkflowView.vue"],"sourcesContent":["<template>\n\t<TemplatesView :go-back-enabled=\"true\">\n\t\t<template #header>\n\t\t\t<div v-if=\"!notFoundError\" :class=\"$style.wrapper\">\n\t\t\t\t<div :class=\"$style.title\">\n\t\t\t\t\t<n8n-heading v-if=\"template && template.name\" tag=\"h1\" size=\"2xlarge\">{{\n\t\t\t\t\t\ttemplate.name\n\t\t\t\t\t}}</n8n-heading>\n\t\t\t\t\t<n8n-text v-if=\"template && template.name\" color=\"text-base\" size=\"small\">\n\t\t\t\t\t\t{{ $locale.baseText('generic.workflow') }}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t\t<n8n-loading :loading=\"!template || !template.name\" :rows=\"2\" variant=\"h1\" />\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.button\">\n\t\t\t\t\t<n8n-button\n\t\t\t\t\t\tv-if=\"template\"\n\t\t\t\t\t\tdata-test-id=\"use-template-button\"\n\t\t\t\t\t\t:label=\"$locale.baseText('template.buttons.useThisWorkflowButton')\"\n\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t@click=\"openTemplateSetup(templateId, $event)\"\n\t\t\t\t\t/>\n\t\t\t\t\t<n8n-loading :loading=\"!template\" :rows=\"1\" variant=\"button\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else :class=\"$style.notFound\">\n\t\t\t\t<n8n-text color=\"text-base\">{{ $locale.baseText('templates.workflowsNotFound') }}</n8n-text>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-if=\"!notFoundError\" #content>\n\t\t\t<div :class=\"$style.image\">\n\t\t\t\t<WorkflowPreview\n\t\t\t\t\tv-if=\"showPreview\"\n\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t:workflow=\"template && template.workflow\"\n\t\t\t\t\t@close=\"onHidePreview\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.content\">\n\t\t\t\t<div :class=\"$style.markdown\" data-test-id=\"template-description\">\n\t\t\t\t\t<n8n-markdown\n\t\t\t\t\t\t:content=\"template && template.description\"\n\t\t\t\t\t\t:images=\"template && template.image\"\n\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.details\">\n\t\t\t\t\t<TemplateDetails\n\t\t\t\t\t\t:block-title=\"$locale.baseText('template.details.appsInTheWorkflow')\"\n\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t\t:template=\"template\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</TemplatesView>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\n\nimport TemplateDetails from '@/components/TemplateDetails.vue';\nimport TemplatesView from './TemplatesView.vue';\nimport WorkflowPreview from '@/components/WorkflowPreview.vue';\n\nimport type { ITemplatesWorkflowFull } from '@/Interface';\nimport { setPageTitle } from '@/utils/htmlUtils';\nimport { useTemplatesStore } from '@/stores/templates.store';\nimport { usePostHog } from '@/stores/posthog.store';\nimport { useTemplateWorkflow } from '@/utils/templates/templateActions';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\n\nexport default defineComponent({\n\tname: 'TemplatesWorkflowView',\n\tcomponents: {\n\t\tTemplateDetails,\n\t\tTemplatesView,\n\t\tWorkflowPreview,\n\t},\n\tsetup() {\n\t\tconst externalHooks = useExternalHooks();\n\n\t\treturn {\n\t\t\texternalHooks,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useTemplatesStore, usePostHog),\n\t\ttemplate(): ITemplatesWorkflowFull | null {\n\t\t\treturn this.templatesStore.getFullTemplateById(this.templateId);\n\t\t},\n\t\ttemplateId() {\n\t\t\treturn Array.isArray(this.$route.params.id)\n\t\t\t\t? this.$route.params.id[0]\n\t\t\t\t: this.$route.params.id;\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: true,\n\t\t\tshowPreview: true,\n\t\t\tnotFoundError: false,\n\t\t};\n\t},\n\twatch: {\n\t\ttemplate(template: ITemplatesWorkflowFull) {\n\t\t\tif (template) {\n\t\t\t\tsetPageTitle(`n8n - Template template: ${template.name}`);\n\t\t\t} else {\n\t\t\t\tsetPageTitle('n8n - Templates');\n\t\t\t}\n\t\t},\n\t},\n\tasync mounted() {\n\t\tthis.scrollToTop();\n\n\t\tif (this.template && this.template.full) {\n\t\t\tthis.loading = false;\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.templatesStore.fetchTemplateById(this.templateId);\n\t\t} catch (e) {\n\t\t\tthis.notFoundError = true;\n\t\t}\n\n\t\tthis.loading = false;\n\t},\n\tmethods: {\n\t\tasync openTemplateSetup(id: string, e: PointerEvent) {\n\t\t\tawait useTemplateWorkflow({\n\t\t\t\tposthogStore: this.posthogStore,\n\t\t\t\trouter: this.$router,\n\t\t\t\ttemplateId: id,\n\t\t\t\tinNewBrowserTab: e.metaKey || e.ctrlKey,\n\t\t\t\texternalHooks: this.externalHooks,\n\t\t\t\tnodeTypesStore: useNodeTypesStore(),\n\t\t\t\ttelemetry: this.$telemetry,\n\t\t\t\ttemplatesStore: useTemplatesStore(),\n\t\t\t\tsource: 'template_preview',\n\t\t\t});\n\t\t},\n\t\tonHidePreview() {\n\t\t\tthis.showPreview = false;\n\t\t},\n\t\tscrollToTop() {\n\t\t\tconst contentArea = document.getElementById('content');\n\n\t\t\tif (contentArea) {\n\t\t\t\tcontentArea.scrollTo({\n\t\t\t\t\ttop: 0,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.wrapper {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n\n.notFound {\n\tpadding-top: var(--spacing-xl);\n}\n\n.title {\n\twidth: 75%;\n}\n\n.button {\n\tdisplay: block;\n}\n\n.image {\n\twidth: 100%;\n\theight: 500px;\n\tborder: var(--border-base);\n\tborder-radius: var(--border-radius-large);\n\toverflow: hidden;\n\n\timg {\n\t\twidth: 100%;\n\t}\n}\n\n.content {\n\tpadding: var(--spacing-2xl) 0;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tdisplay: block;\n\t}\n}\n\n.markdown {\n\twidth: calc(100% - 180px);\n\tpadding-right: var(--spacing-2xl);\n\tmargin-bottom: var(--spacing-l);\n\n\t@media (max-width: $breakpoint-xs) {\n\t\twidth: 100%;\n\t}\n}\n\n.details {\n\twidth: 180px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","TemplateDetails","TemplatesView","WorkflowPreview","useExternalHooks","mapStores","useTemplatesStore","usePostHog","template","setPageTitle","id","e","useTemplateWorkflow","useNodeTypesStore","contentArea","_component_TemplatesView","_resolveComponent","notFoundError","_createBlock","_createSlots","_withCtx","_ctx","_openBlock","_createElementBlock","$style","_normalizeClass","_createVNode","_component_n8n_text","$locale","_createTextVNode","_toDisplayString","_component_n8n_heading","_createCommentVNode","_component_n8n_loading","_createElementVNode","_component_n8n_button","templateId","_cache","$event","showPreview","_component_WorkflowPreview","onHidePreview","loading"],"mappings":"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"}
1
+ {"version":3,"file":"TemplatesWorkflowView-7-rFNLp9.js","sources":["../../src/views/TemplatesWorkflowView.vue"],"sourcesContent":["<template>\n\t<TemplatesView :go-back-enabled=\"true\">\n\t\t<template #header>\n\t\t\t<div v-if=\"!notFoundError\" :class=\"$style.wrapper\">\n\t\t\t\t<div :class=\"$style.title\">\n\t\t\t\t\t<n8n-heading v-if=\"template && template.name\" tag=\"h1\" size=\"2xlarge\">{{\n\t\t\t\t\t\ttemplate.name\n\t\t\t\t\t}}</n8n-heading>\n\t\t\t\t\t<n8n-text v-if=\"template && template.name\" color=\"text-base\" size=\"small\">\n\t\t\t\t\t\t{{ $locale.baseText('generic.workflow') }}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t\t<n8n-loading :loading=\"!template || !template.name\" :rows=\"2\" variant=\"h1\" />\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.button\">\n\t\t\t\t\t<n8n-button\n\t\t\t\t\t\tv-if=\"template\"\n\t\t\t\t\t\tdata-test-id=\"use-template-button\"\n\t\t\t\t\t\t:label=\"$locale.baseText('template.buttons.useThisWorkflowButton')\"\n\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t@click=\"openTemplateSetup(templateId, $event)\"\n\t\t\t\t\t/>\n\t\t\t\t\t<n8n-loading :loading=\"!template\" :rows=\"1\" variant=\"button\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else :class=\"$style.notFound\">\n\t\t\t\t<n8n-text color=\"text-base\">{{ $locale.baseText('templates.workflowsNotFound') }}</n8n-text>\n\t\t\t</div>\n\t\t</template>\n\t\t<template v-if=\"!notFoundError\" #content>\n\t\t\t<div :class=\"$style.image\">\n\t\t\t\t<WorkflowPreview\n\t\t\t\t\tv-if=\"showPreview\"\n\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t:workflow=\"template && template.workflow\"\n\t\t\t\t\t@close=\"onHidePreview\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.content\">\n\t\t\t\t<div :class=\"$style.markdown\" data-test-id=\"template-description\">\n\t\t\t\t\t<n8n-markdown\n\t\t\t\t\t\t:content=\"template && template.description\"\n\t\t\t\t\t\t:images=\"template && template.image\"\n\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div :class=\"$style.details\">\n\t\t\t\t\t<TemplateDetails\n\t\t\t\t\t\t:block-title=\"$locale.baseText('template.details.appsInTheWorkflow')\"\n\t\t\t\t\t\t:loading=\"loading\"\n\t\t\t\t\t\t:template=\"template\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</TemplatesView>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\n\nimport TemplateDetails from '@/components/TemplateDetails.vue';\nimport TemplatesView from './TemplatesView.vue';\nimport WorkflowPreview from '@/components/WorkflowPreview.vue';\n\nimport type { ITemplatesWorkflowFull } from '@/Interface';\nimport { setPageTitle } from '@/utils/htmlUtils';\nimport { useTemplatesStore } from '@/stores/templates.store';\nimport { usePostHog } from '@/stores/posthog.store';\nimport { useTemplateWorkflow } from '@/utils/templates/templateActions';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\n\nexport default defineComponent({\n\tname: 'TemplatesWorkflowView',\n\tcomponents: {\n\t\tTemplateDetails,\n\t\tTemplatesView,\n\t\tWorkflowPreview,\n\t},\n\tsetup() {\n\t\tconst externalHooks = useExternalHooks();\n\n\t\treturn {\n\t\t\texternalHooks,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useTemplatesStore, usePostHog),\n\t\ttemplate(): ITemplatesWorkflowFull | null {\n\t\t\treturn this.templatesStore.getFullTemplateById(this.templateId);\n\t\t},\n\t\ttemplateId() {\n\t\t\treturn Array.isArray(this.$route.params.id)\n\t\t\t\t? this.$route.params.id[0]\n\t\t\t\t: this.$route.params.id;\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: true,\n\t\t\tshowPreview: true,\n\t\t\tnotFoundError: false,\n\t\t};\n\t},\n\twatch: {\n\t\ttemplate(template: ITemplatesWorkflowFull) {\n\t\t\tif (template) {\n\t\t\t\tsetPageTitle(`n8n - Template template: ${template.name}`);\n\t\t\t} else {\n\t\t\t\tsetPageTitle('n8n - Templates');\n\t\t\t}\n\t\t},\n\t},\n\tasync mounted() {\n\t\tthis.scrollToTop();\n\n\t\tif (this.template && this.template.full) {\n\t\t\tthis.loading = false;\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.templatesStore.fetchTemplateById(this.templateId);\n\t\t} catch (e) {\n\t\t\tthis.notFoundError = true;\n\t\t}\n\n\t\tthis.loading = false;\n\t},\n\tmethods: {\n\t\tasync openTemplateSetup(id: string, e: PointerEvent) {\n\t\t\tawait useTemplateWorkflow({\n\t\t\t\tposthogStore: this.posthogStore,\n\t\t\t\trouter: this.$router,\n\t\t\t\ttemplateId: id,\n\t\t\t\tinNewBrowserTab: e.metaKey || e.ctrlKey,\n\t\t\t\texternalHooks: this.externalHooks,\n\t\t\t\tnodeTypesStore: useNodeTypesStore(),\n\t\t\t\ttelemetry: this.$telemetry,\n\t\t\t\ttemplatesStore: useTemplatesStore(),\n\t\t\t\tsource: 'template_preview',\n\t\t\t});\n\t\t},\n\t\tonHidePreview() {\n\t\t\tthis.showPreview = false;\n\t\t},\n\t\tscrollToTop() {\n\t\t\tconst contentArea = document.getElementById('content');\n\n\t\t\tif (contentArea) {\n\t\t\t\tcontentArea.scrollTo({\n\t\t\t\t\ttop: 0,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.wrapper {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n\n.notFound {\n\tpadding-top: var(--spacing-xl);\n}\n\n.title {\n\twidth: 75%;\n}\n\n.button {\n\tdisplay: block;\n}\n\n.image {\n\twidth: 100%;\n\theight: 500px;\n\tborder: var(--border-base);\n\tborder-radius: var(--border-radius-large);\n\toverflow: hidden;\n\n\timg {\n\t\twidth: 100%;\n\t}\n}\n\n.content {\n\tpadding: var(--spacing-2xl) 0;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\n\t@media (max-width: $breakpoint-xs) {\n\t\tdisplay: block;\n\t}\n}\n\n.markdown {\n\twidth: calc(100% - 180px);\n\tpadding-right: var(--spacing-2xl);\n\tmargin-bottom: var(--spacing-l);\n\n\t@media (max-width: $breakpoint-xs) {\n\t\twidth: 100%;\n\t}\n}\n\n.details {\n\twidth: 180px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","TemplateDetails","TemplatesView","WorkflowPreview","useExternalHooks","mapStores","useTemplatesStore","usePostHog","template","setPageTitle","id","e","useTemplateWorkflow","useNodeTypesStore","contentArea","_component_TemplatesView","_resolveComponent","notFoundError","_createBlock","_createSlots","_withCtx","_ctx","_openBlock","_createElementBlock","$style","_normalizeClass","_createVNode","_component_n8n_text","$locale","_createTextVNode","_toDisplayString","_component_n8n_heading","_createCommentVNode","_component_n8n_loading","_createElementVNode","_component_n8n_button","templateId","_cache","$event","showPreview","_component_WorkflowPreview","onHidePreview","loading"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{ae as re,u as ee,b as ae,a as te,dK as se,E as le,w as ne,ca as ue,i as de,n as ce,z as ve,F as be,G as pe}from"./index-OLvpAx8p.js";import{R as me}from"./ResourcesListLayout-S53Q3neu.js";import{G as oe,e as $,r as T,b as fe,d as ye,l as i,m as g,p as _,R as d,M,u as c,T as b,O as s,S as k,I as L,Q as Y,n as J,ag as R,D as _e,y as ge,a9 as ke}from"./vendor-qzAIxxHa.js";import{_ as ie,av as Te}from"./n8n-roXSR3ff.js";import"./pinia-hqNpa1CE.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./lodash-es-SWsik9tP.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.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-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const xe={class:"variables-key-column"},he={key:0},we={class:"variables-value-column"},Ce={key:0},Ve={class:"variables-usage-column"},$e={key:0},Re=oe({__name:"VariablesRow",props:{data:{type:Object,default:()=>({})},editing:{type:Boolean,default:!1}},emits:["save","cancel","edit","delete"],setup(w,{emit:O}){const l=ne(),D=re(),{showMessage:F}=ee(),W=ae(),r=te(),S=O,E=w,C=$(()=>se(r.currentUser)),t=T({...E.data}),V=T({key:!1,value:!1}),o=$(()=>V.value.key&&V.value.value),x=T(),G=T(),u=T(`$vars.${E.data.key}`),A=$(()=>W.isEnterpriseFeatureEnabled(le.Variables));fe(()=>{B()});const j=[{name:"REQUIRED"},{name:"MAX_LENGTH",config:{maximum:50}},{name:"MATCH_REGEX",config:{regex:/^[a-zA-Z]/,message:l.baseText("variables.editing.key.error.startsWithLetter")}},{name:"MATCH_REGEX",config:{regex:/^[a-zA-Z][a-zA-Z0-9_]*$/,message:l.baseText("variables.editing.key.error.jsonKey")}}],h=[{name:"MAX_LENGTH",config:{maximum:220}}];ye(()=>t.value.key,async()=>{await J(),V.value.key&&p()});function p(){u.value=`$vars.${t.value.key||E.data.key}`}async function N(){t.value={...E.data},S("cancel",t.value)}async function H(){S("save",t.value)}async function K(){S("edit",t.value),await J(),B()}async function z(){S("delete",t.value)}function U(v,n){V.value[v]=n}function P(){D.copy(u.value),F({title:l.baseText("variables.row.usage.copiedToClipboard"),type:"success"})}function B(){var v,n,f;(f=(n=(v=x.value)==null?void 0:v.inputRef)==null?void 0:n.focus)==null||f.call(n)}return(v,n)=>{const f=R("n8n-form-input"),y=R("n8n-tooltip"),e=R("n8n-button");return i(),g("tr",{class:L(v.$style.variablesRow),"data-test-id":"variables-row"},[_("td",xe,[_("div",null,[w.editing?(i(),M(f,{key:1,ref_key:"keyInputRef",ref:x,modelValue:t.value.key,"onUpdate:modelValue":n[0]||(n[0]=a=>t.value.key=a),label:"",name:"key","data-test-id":"variable-row-key-input",placeholder:c(l).baseText("variables.editing.key.placeholder"),required:"","validate-on-blur":"","validation-rules":j,onValidate:n[1]||(n[1]=a=>U("key",a))},null,8,["modelValue","placeholder"])):(i(),g("span",he,d(w.data.key),1))])]),_("td",we,[_("div",null,[w.editing?(i(),M(f,{key:1,ref_key:"valueInputRef",ref:G,modelValue:t.value.value,"onUpdate:modelValue":n[2]||(n[2]=a=>t.value.value=a),label:"",name:"value","data-test-id":"variable-row-value-input",placeholder:c(l).baseText("variables.editing.value.placeholder"),"validate-on-blur":"","validation-rules":h,onValidate:n[3]||(n[3]=a=>U("value",a))},null,8,["modelValue","placeholder"])):(i(),g("span",Ce,d(w.data.value),1))])]),_("td",Ve,[_("div",null,[b(y,{placement:"top"},{content:s(()=>[k(d(c(l).baseText("variables.row.usage.copyToClipboard")),1)]),default:s(()=>[t.value.key&&u.value?(i(),g("span",{key:0,class:L(v.$style.usageSyntax),onClick:P},d(u.value),3)):Y("",!0)]),_:1})])]),A.value?(i(),g("td",$e,[w.editing?(i(),g("div",{key:0,class:L(v.$style.buttons)},[b(e,{"data-test-id":"variable-row-cancel-button",type:"tertiary",class:"mr-xs",onClick:N},{default:s(()=>[k(d(c(l).baseText("variables.row.button.cancel")),1)]),_:1}),b(e,{"data-test-id":"variable-row-save-button",disabled:!o.value,type:"primary",onClick:H},{default:s(()=>[k(d(c(l).baseText("variables.row.button.save")),1)]),_:1},8,["disabled"])],2)):(i(),g("div",{key:1,class:L([v.$style.buttons,v.$style.hoverButtons])},[b(y,{disabled:C.value.update,placement:"top"},{content:s(()=>[k(d(c(l).baseText("variables.row.button.edit.onlyRoleCanEdit")),1)]),default:s(()=>[_("div",null,[b(e,{"data-test-id":"variable-row-edit-button",type:"tertiary",class:"mr-xs",disabled:!C.value.update,onClick:K},{default:s(()=>[k(d(c(l).baseText("variables.row.button.edit")),1)]),_:1},8,["disabled"])])]),_:1},8,["disabled"]),b(y,{disabled:C.value.delete,placement:"top"},{content:s(()=>[k(d(c(l).baseText("variables.row.button.delete.onlyRoleCanDelete")),1)]),default:s(()=>[_("div",null,[b(e,{"data-test-id":"variable-row-delete-button",type:"tertiary",disabled:!C.value.delete,onClick:z},{default:s(()=>[k(d(c(l).baseText("variables.row.button.delete")),1)]),_:1},8,["disabled"])])]),_:1},8,["disabled"])],2))])):Y("",!0)],2)}}}),Se="_variablesRow_14ir1_1",Ee="_hoverButtons_14ir1_1",Ae="_buttons_14ir1_10",Be="_usageSyntax_14ir1_21",Me={variablesRow:Se,hoverButtons:Ee,buttons:Ae,usageSyntax:Be},Ue={$style:Me},Ie=ie(Re,[["__cssModules",Ue]]),De={key:0},Fe={key:1},I="@tmpvar",Ne=oe({__name:"VariablesView",setup(w){const O=ae(),l=ue(),D=te(),F=de(),W=be(),r=ne(),S=pe(),E=ce();let C=()=>{};const t=T(null),{showError:V}=ee(),o=T([]),x=T({}),G=se(D.currentUser),u=$(()=>O.isEnterpriseFeatureEnabled(le.Variables)),A=$(()=>u.value&&G.create),j=$(()=>[{id:0,path:"name",label:r.baseText("variables.table.key"),classes:["variables-key-column"]},{id:1,path:"value",label:r.baseText("variables.table.value"),classes:["variables-value-column"]},{id:2,path:"usage",label:r.baseText("variables.table.usage"),classes:["variables-usage-column"]},...u.value?[{id:3,path:"actions",label:""}]:[]]),h=$(()=>F.contextBasedTranslationKeys),p=T([]),N=(e,a,m)=>`${e.id}`.startsWith(I)?-1:`${a.id}`.startsWith(I)?1:p.value.includes(e.id)&&p.value.includes(a.id)?p.value.indexOf(e.id)-p.value.indexOf(a.id):p.value.includes(e.id)?-1:p.value.includes(a.id)?1:m==="asc"?y(e).trim().localeCompare(y(a).trim()):y(a).trim().localeCompare(y(e).trim()),H={nameAsc:(e,a)=>N(e,a,"asc"),nameDesc:(e,a)=>N(e,a,"desc")};function K(){p.value=[]}async function z(){u.value&&(await l.fetchAllVariables(),o.value=[...l.variables])}function U(){const e={id:Te(I),key:"",value:""};t.value&&(t.value.$refs.listWrapperRef&&(t.value.$refs.listWrapperRef.scrollTop=0),t.value.currentPage!==1&&t.value.setCurrentPage(1)),o.value.unshift(e),x.value[e.id]=!0,W.track("User clicked add variable button")}async function P(e){let a;try{if(typeof e.id=="string"&&e.id.startsWith(I)){const{id:m,...X}=e;a=await l.createVariable(X),o.value.unshift(a),o.value=o.value.filter(Z=>Z.id!==e.id),p.value.unshift(a.id)}else a=await l.updateVariable(e),o.value=o.value.filter(m=>m.id!==e.id),o.value.push(a),B(a)}catch(m){V(m,r.baseText("variables.errors.save"))}}function B(e){x.value={...x.value,[e.id]:!x.value[e.id]}}function v(e){typeof e.id=="string"&&e.id.startsWith(I)?o.value=o.value.filter(a=>a.id!==e.id):B(e)}async function n(e){try{if(await S.confirm(r.baseText("variables.modals.deleteConfirm.message",{interpolate:{name:e.key}}),r.baseText("variables.modals.deleteConfirm.title"),{confirmButtonText:r.baseText("variables.modals.deleteConfirm.confirmButton"),cancelButtonText:r.baseText("variables.modals.deleteConfirm.cancelButton")})!==ve)return;await l.deleteVariable(e),o.value=o.value.filter(m=>m.id!==e.id)}catch(a){V(a,r.baseText("variables.errors.delete"))}}function f(){F.goToUpgrade("variables","upgrade-variables")}function y(e){return e.key}return _e(()=>{C=E.$onAction(({name:e,after:a})=>{e==="pullWorkfolder"&&a&&a(()=>{z()})})}),ge(()=>{C()}),(e,a)=>{const m=R("n8n-heading"),X=R("n8n-button"),Z=R("n8n-tooltip"),Q=R("n8n-action-box");return i(),M(me,{ref_key:"layoutRef",ref:t,class:"variables-view","resource-key":"variables",disabled:!u.value,resources:o.value,initialize:z,shareable:!1,"display-name":y,"sort-fns":H,"sort-options":["nameAsc","nameDesc"],"show-filters-dropdown":!1,type:"datatable","type-props":{columns:j.value},onSort:K,"onClick:add":U},ke({header:s(()=>[b(m,{size:"2xlarge",class:"mb-m"},{default:s(()=>[k(d(c(r).baseText("variables.heading")),1)]),_:1})]),"add-button":s(()=>[b(Z,{placement:"top",disabled:A.value},{content:s(()=>[u.value?(i(),g("span",Fe,d(c(r).baseText("variables.add.onlyOwnerCanCreate")),1)):(i(),g("span",De,d(c(r).baseText(`variables.add.unavailable${o.value.length===0?".empty":""}`)),1))]),default:s(()=>[_("div",null,[b(X,{size:"large",block:"",disabled:!A.value,"data-test-id":"resources-list-add",onClick:U},{default:s(()=>[k(d(e.$locale.baseText("variables.add")),1)]),_:1},8,["disabled"])])]),_:1},8,["disabled"])]),default:s(({data:q})=>[(i(),M(Ie,{key:q.id,editing:x.value[q.id],data:q,onSave:P,onEdit:B,onCancel:v,onDelete:n},null,8,["editing","data"]))]),_:2},[u.value?void 0:{name:"preamble",fn:s(()=>[b(Q,{class:"mb-m","data-test-id":"unavailable-resources-list",emoji:"👋",heading:e.$locale.baseText(h.value.variables.unavailable.title),description:e.$locale.baseText(h.value.variables.unavailable.description),"button-text":e.$locale.baseText(h.value.variables.unavailable.button),"button-type":"secondary","onClick:button":f},null,8,["heading","description","button-text"])]),key:"0"},!u.value||u.value&&!A.value?{name:"empty",fn:s(()=>[u.value?A.value?Y("",!0):(i(),M(Q,{key:1,"data-test-id":"cannot-create-variables",emoji:"👋",heading:e.$locale.baseText("variables.empty.notAllowedToCreate.heading",{interpolate:{name:c(D).currentUser.firstName}}),description:e.$locale.baseText("variables.empty.notAllowedToCreate.description"),onClick:f},null,8,["heading","description"])):(i(),M(Q,{key:0,"data-test-id":"unavailable-resources-list",emoji:"👋",heading:e.$locale.baseText(h.value.variables.unavailable.title),description:e.$locale.baseText(h.value.variables.unavailable.description),"button-text":e.$locale.baseText(h.value.variables.unavailable.button),"button-type":"secondary","onClick:button":f},null,8,["heading","description","button-text"]))]),key:"1"}:void 0]),1032,["disabled","resources","type-props"])}}}),ze="_sidebarContainer_pm4w0_5",Le={"type-input":"_type-input_pm4w0_1",sidebarContainer:ze},Oe={$style:Le},_a=ie(Ne,[["__cssModules",Oe],["__scopeId","data-v-457c103d"]]);export{_a as default};
2
- //# sourceMappingURL=VariablesView-ZV3cuGWP.js.map
1
+ import{ae as re,u as ee,b as ae,a as te,dK as se,E as le,w as ne,ca as ue,i as de,n as ce,z as ve,F as be,G as pe}from"./index-6ulnOLCO.js";import{R as me}from"./ResourcesListLayout-zQLxB7dP.js";import{G as oe,e as $,r as T,b as fe,d as ye,l as i,m as g,p as _,R as d,M,u as c,T as b,O as s,S as k,I as L,Q as Y,n as J,ag as R,D as _e,y as ge,a9 as ke}from"./vendor-qzAIxxHa.js";import{_ as ie,av as Te}from"./n8n-roXSR3ff.js";import"./pinia-hqNpa1CE.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./lodash-es-SWsik9tP.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.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-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";const xe={class:"variables-key-column"},he={key:0},we={class:"variables-value-column"},Ce={key:0},Ve={class:"variables-usage-column"},$e={key:0},Re=oe({__name:"VariablesRow",props:{data:{type:Object,default:()=>({})},editing:{type:Boolean,default:!1}},emits:["save","cancel","edit","delete"],setup(w,{emit:O}){const l=ne(),D=re(),{showMessage:F}=ee(),W=ae(),r=te(),S=O,E=w,C=$(()=>se(r.currentUser)),t=T({...E.data}),V=T({key:!1,value:!1}),o=$(()=>V.value.key&&V.value.value),x=T(),G=T(),u=T(`$vars.${E.data.key}`),A=$(()=>W.isEnterpriseFeatureEnabled(le.Variables));fe(()=>{B()});const j=[{name:"REQUIRED"},{name:"MAX_LENGTH",config:{maximum:50}},{name:"MATCH_REGEX",config:{regex:/^[a-zA-Z]/,message:l.baseText("variables.editing.key.error.startsWithLetter")}},{name:"MATCH_REGEX",config:{regex:/^[a-zA-Z][a-zA-Z0-9_]*$/,message:l.baseText("variables.editing.key.error.jsonKey")}}],h=[{name:"MAX_LENGTH",config:{maximum:220}}];ye(()=>t.value.key,async()=>{await J(),V.value.key&&p()});function p(){u.value=`$vars.${t.value.key||E.data.key}`}async function N(){t.value={...E.data},S("cancel",t.value)}async function H(){S("save",t.value)}async function K(){S("edit",t.value),await J(),B()}async function z(){S("delete",t.value)}function U(v,n){V.value[v]=n}function P(){D.copy(u.value),F({title:l.baseText("variables.row.usage.copiedToClipboard"),type:"success"})}function B(){var v,n,f;(f=(n=(v=x.value)==null?void 0:v.inputRef)==null?void 0:n.focus)==null||f.call(n)}return(v,n)=>{const f=R("n8n-form-input"),y=R("n8n-tooltip"),e=R("n8n-button");return i(),g("tr",{class:L(v.$style.variablesRow),"data-test-id":"variables-row"},[_("td",xe,[_("div",null,[w.editing?(i(),M(f,{key:1,ref_key:"keyInputRef",ref:x,modelValue:t.value.key,"onUpdate:modelValue":n[0]||(n[0]=a=>t.value.key=a),label:"",name:"key","data-test-id":"variable-row-key-input",placeholder:c(l).baseText("variables.editing.key.placeholder"),required:"","validate-on-blur":"","validation-rules":j,onValidate:n[1]||(n[1]=a=>U("key",a))},null,8,["modelValue","placeholder"])):(i(),g("span",he,d(w.data.key),1))])]),_("td",we,[_("div",null,[w.editing?(i(),M(f,{key:1,ref_key:"valueInputRef",ref:G,modelValue:t.value.value,"onUpdate:modelValue":n[2]||(n[2]=a=>t.value.value=a),label:"",name:"value","data-test-id":"variable-row-value-input",placeholder:c(l).baseText("variables.editing.value.placeholder"),"validate-on-blur":"","validation-rules":h,onValidate:n[3]||(n[3]=a=>U("value",a))},null,8,["modelValue","placeholder"])):(i(),g("span",Ce,d(w.data.value),1))])]),_("td",Ve,[_("div",null,[b(y,{placement:"top"},{content:s(()=>[k(d(c(l).baseText("variables.row.usage.copyToClipboard")),1)]),default:s(()=>[t.value.key&&u.value?(i(),g("span",{key:0,class:L(v.$style.usageSyntax),onClick:P},d(u.value),3)):Y("",!0)]),_:1})])]),A.value?(i(),g("td",$e,[w.editing?(i(),g("div",{key:0,class:L(v.$style.buttons)},[b(e,{"data-test-id":"variable-row-cancel-button",type:"tertiary",class:"mr-xs",onClick:N},{default:s(()=>[k(d(c(l).baseText("variables.row.button.cancel")),1)]),_:1}),b(e,{"data-test-id":"variable-row-save-button",disabled:!o.value,type:"primary",onClick:H},{default:s(()=>[k(d(c(l).baseText("variables.row.button.save")),1)]),_:1},8,["disabled"])],2)):(i(),g("div",{key:1,class:L([v.$style.buttons,v.$style.hoverButtons])},[b(y,{disabled:C.value.update,placement:"top"},{content:s(()=>[k(d(c(l).baseText("variables.row.button.edit.onlyRoleCanEdit")),1)]),default:s(()=>[_("div",null,[b(e,{"data-test-id":"variable-row-edit-button",type:"tertiary",class:"mr-xs",disabled:!C.value.update,onClick:K},{default:s(()=>[k(d(c(l).baseText("variables.row.button.edit")),1)]),_:1},8,["disabled"])])]),_:1},8,["disabled"]),b(y,{disabled:C.value.delete,placement:"top"},{content:s(()=>[k(d(c(l).baseText("variables.row.button.delete.onlyRoleCanDelete")),1)]),default:s(()=>[_("div",null,[b(e,{"data-test-id":"variable-row-delete-button",type:"tertiary",disabled:!C.value.delete,onClick:z},{default:s(()=>[k(d(c(l).baseText("variables.row.button.delete")),1)]),_:1},8,["disabled"])])]),_:1},8,["disabled"])],2))])):Y("",!0)],2)}}}),Se="_variablesRow_14ir1_1",Ee="_hoverButtons_14ir1_1",Ae="_buttons_14ir1_10",Be="_usageSyntax_14ir1_21",Me={variablesRow:Se,hoverButtons:Ee,buttons:Ae,usageSyntax:Be},Ue={$style:Me},Ie=ie(Re,[["__cssModules",Ue]]),De={key:0},Fe={key:1},I="@tmpvar",Ne=oe({__name:"VariablesView",setup(w){const O=ae(),l=ue(),D=te(),F=de(),W=be(),r=ne(),S=pe(),E=ce();let C=()=>{};const t=T(null),{showError:V}=ee(),o=T([]),x=T({}),G=se(D.currentUser),u=$(()=>O.isEnterpriseFeatureEnabled(le.Variables)),A=$(()=>u.value&&G.create),j=$(()=>[{id:0,path:"name",label:r.baseText("variables.table.key"),classes:["variables-key-column"]},{id:1,path:"value",label:r.baseText("variables.table.value"),classes:["variables-value-column"]},{id:2,path:"usage",label:r.baseText("variables.table.usage"),classes:["variables-usage-column"]},...u.value?[{id:3,path:"actions",label:""}]:[]]),h=$(()=>F.contextBasedTranslationKeys),p=T([]),N=(e,a,m)=>`${e.id}`.startsWith(I)?-1:`${a.id}`.startsWith(I)?1:p.value.includes(e.id)&&p.value.includes(a.id)?p.value.indexOf(e.id)-p.value.indexOf(a.id):p.value.includes(e.id)?-1:p.value.includes(a.id)?1:m==="asc"?y(e).trim().localeCompare(y(a).trim()):y(a).trim().localeCompare(y(e).trim()),H={nameAsc:(e,a)=>N(e,a,"asc"),nameDesc:(e,a)=>N(e,a,"desc")};function K(){p.value=[]}async function z(){u.value&&(await l.fetchAllVariables(),o.value=[...l.variables])}function U(){const e={id:Te(I),key:"",value:""};t.value&&(t.value.$refs.listWrapperRef&&(t.value.$refs.listWrapperRef.scrollTop=0),t.value.currentPage!==1&&t.value.setCurrentPage(1)),o.value.unshift(e),x.value[e.id]=!0,W.track("User clicked add variable button")}async function P(e){let a;try{if(typeof e.id=="string"&&e.id.startsWith(I)){const{id:m,...X}=e;a=await l.createVariable(X),o.value.unshift(a),o.value=o.value.filter(Z=>Z.id!==e.id),p.value.unshift(a.id)}else a=await l.updateVariable(e),o.value=o.value.filter(m=>m.id!==e.id),o.value.push(a),B(a)}catch(m){V(m,r.baseText("variables.errors.save"))}}function B(e){x.value={...x.value,[e.id]:!x.value[e.id]}}function v(e){typeof e.id=="string"&&e.id.startsWith(I)?o.value=o.value.filter(a=>a.id!==e.id):B(e)}async function n(e){try{if(await S.confirm(r.baseText("variables.modals.deleteConfirm.message",{interpolate:{name:e.key}}),r.baseText("variables.modals.deleteConfirm.title"),{confirmButtonText:r.baseText("variables.modals.deleteConfirm.confirmButton"),cancelButtonText:r.baseText("variables.modals.deleteConfirm.cancelButton")})!==ve)return;await l.deleteVariable(e),o.value=o.value.filter(m=>m.id!==e.id)}catch(a){V(a,r.baseText("variables.errors.delete"))}}function f(){F.goToUpgrade("variables","upgrade-variables")}function y(e){return e.key}return _e(()=>{C=E.$onAction(({name:e,after:a})=>{e==="pullWorkfolder"&&a&&a(()=>{z()})})}),ge(()=>{C()}),(e,a)=>{const m=R("n8n-heading"),X=R("n8n-button"),Z=R("n8n-tooltip"),Q=R("n8n-action-box");return i(),M(me,{ref_key:"layoutRef",ref:t,class:"variables-view","resource-key":"variables",disabled:!u.value,resources:o.value,initialize:z,shareable:!1,"display-name":y,"sort-fns":H,"sort-options":["nameAsc","nameDesc"],"show-filters-dropdown":!1,type:"datatable","type-props":{columns:j.value},onSort:K,"onClick:add":U},ke({header:s(()=>[b(m,{size:"2xlarge",class:"mb-m"},{default:s(()=>[k(d(c(r).baseText("variables.heading")),1)]),_:1})]),"add-button":s(()=>[b(Z,{placement:"top",disabled:A.value},{content:s(()=>[u.value?(i(),g("span",Fe,d(c(r).baseText("variables.add.onlyOwnerCanCreate")),1)):(i(),g("span",De,d(c(r).baseText(`variables.add.unavailable${o.value.length===0?".empty":""}`)),1))]),default:s(()=>[_("div",null,[b(X,{size:"large",block:"",disabled:!A.value,"data-test-id":"resources-list-add",onClick:U},{default:s(()=>[k(d(e.$locale.baseText("variables.add")),1)]),_:1},8,["disabled"])])]),_:1},8,["disabled"])]),default:s(({data:q})=>[(i(),M(Ie,{key:q.id,editing:x.value[q.id],data:q,onSave:P,onEdit:B,onCancel:v,onDelete:n},null,8,["editing","data"]))]),_:2},[u.value?void 0:{name:"preamble",fn:s(()=>[b(Q,{class:"mb-m","data-test-id":"unavailable-resources-list",emoji:"👋",heading:e.$locale.baseText(h.value.variables.unavailable.title),description:e.$locale.baseText(h.value.variables.unavailable.description),"button-text":e.$locale.baseText(h.value.variables.unavailable.button),"button-type":"secondary","onClick:button":f},null,8,["heading","description","button-text"])]),key:"0"},!u.value||u.value&&!A.value?{name:"empty",fn:s(()=>[u.value?A.value?Y("",!0):(i(),M(Q,{key:1,"data-test-id":"cannot-create-variables",emoji:"👋",heading:e.$locale.baseText("variables.empty.notAllowedToCreate.heading",{interpolate:{name:c(D).currentUser.firstName}}),description:e.$locale.baseText("variables.empty.notAllowedToCreate.description"),onClick:f},null,8,["heading","description"])):(i(),M(Q,{key:0,"data-test-id":"unavailable-resources-list",emoji:"👋",heading:e.$locale.baseText(h.value.variables.unavailable.title),description:e.$locale.baseText(h.value.variables.unavailable.description),"button-text":e.$locale.baseText(h.value.variables.unavailable.button),"button-type":"secondary","onClick:button":f},null,8,["heading","description","button-text"]))]),key:"1"}:void 0]),1032,["disabled","resources","type-props"])}}}),ze="_sidebarContainer_pm4w0_5",Le={"type-input":"_type-input_pm4w0_1",sidebarContainer:ze},Oe={$style:Le},_a=ie(Ne,[["__cssModules",Oe],["__scopeId","data-v-457c103d"]]);export{_a as default};
2
+ //# sourceMappingURL=VariablesView-qHyda1UV.js.map