n8n-editor-ui 1.19.1 → 1.19.3

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 (114) hide show
  1. package/.turbo/turbo-build.log +60 -60
  2. package/dist/assets/{AuthView-pnWQAK0S.js → AuthView-KzKyZSHz.js} +2 -2
  3. package/dist/assets/{AuthView-pnWQAK0S.js.map → AuthView-KzKyZSHz.js.map} +1 -1
  4. package/dist/assets/{CanvasControls-kb3__O2G.js → CanvasControls-6jR1_mnm.js} +2 -2
  5. package/dist/assets/{CanvasControls-kb3__O2G.js.map → CanvasControls-6jR1_mnm.js.map} +1 -1
  6. package/dist/assets/{ChangePasswordView-w8ZDdsHs.js → ChangePasswordView-TW8EQPS0.js} +2 -2
  7. package/dist/assets/{ChangePasswordView-w8ZDdsHs.js.map → ChangePasswordView-TW8EQPS0.js.map} +1 -1
  8. package/dist/assets/{CredentialsView-9EPVLguD.js → CredentialsView-AVQZL_tm.js} +2 -2
  9. package/dist/assets/{CredentialsView-9EPVLguD.js.map → CredentialsView-AVQZL_tm.js.map} +1 -1
  10. package/dist/assets/{ExecutionFilter-xWjqUjz0.js → ExecutionFilter-tcX3bN8y.js} +2 -2
  11. package/dist/assets/{ExecutionFilter-xWjqUjz0.js.map → ExecutionFilter-tcX3bN8y.js.map} +1 -1
  12. package/dist/assets/{ExecutionPreview-IQ7v5u01.js → ExecutionPreview-OuL-2qRR.js} +2 -2
  13. package/dist/assets/{ExecutionPreview-IQ7v5u01.js.map → ExecutionPreview-OuL-2qRR.js.map} +1 -1
  14. package/dist/assets/{ExecutionsInfoAccordion-GNoSEKPt.js → ExecutionsInfoAccordion-J0VUGzOg.js} +2 -2
  15. package/dist/assets/{ExecutionsInfoAccordion-GNoSEKPt.js.map → ExecutionsInfoAccordion-J0VUGzOg.js.map} +1 -1
  16. package/dist/assets/{ExecutionsLandingPage-bMbJUz4X.js → ExecutionsLandingPage-LNx1ct-F.js} +2 -2
  17. package/dist/assets/{ExecutionsLandingPage-bMbJUz4X.js.map → ExecutionsLandingPage-LNx1ct-F.js.map} +1 -1
  18. package/dist/assets/{ExecutionsList-VqMNpnno.js → ExecutionsList-1jr8ziaw.js} +2 -2
  19. package/dist/assets/ExecutionsList-1jr8ziaw.js.map +1 -0
  20. package/dist/assets/{ExecutionsView-cib3hepc.js → ExecutionsView-vfalxf-N.js} +2 -2
  21. package/dist/assets/{ExecutionsView-cib3hepc.js.map → ExecutionsView-vfalxf-N.js.map} +1 -1
  22. package/dist/assets/{FixedCollectionParameter-2NZhE0YP.js → FixedCollectionParameter-i4v0_RBC.js} +3 -3
  23. package/dist/assets/{FixedCollectionParameter-2NZhE0YP.js.map → FixedCollectionParameter-i4v0_RBC.js.map} +1 -1
  24. package/dist/assets/{ForgotMyPasswordView-JpQD0IzR.js → ForgotMyPasswordView-n-WXfUXB.js} +2 -2
  25. package/dist/assets/{ForgotMyPasswordView-JpQD0IzR.js.map → ForgotMyPasswordView-n-WXfUXB.js.map} +1 -1
  26. package/dist/assets/{MainHeader-_EB1A67D.js → MainHeader-it41_mme.js} +2 -2
  27. package/dist/assets/{MainHeader-_EB1A67D.js.map → MainHeader-it41_mme.js.map} +1 -1
  28. package/dist/assets/{MainSidebar-QaJ5uvnW.js → MainSidebar-K22ttpb5.js} +2 -2
  29. package/dist/assets/{MainSidebar-QaJ5uvnW.js.map → MainSidebar-K22ttpb5.js.map} +1 -1
  30. package/dist/assets/{NodeCreation-OxTpBRfP.js → NodeCreation-3pcb_BwC.js} +3 -3
  31. package/dist/assets/{NodeCreation-OxTpBRfP.js.map → NodeCreation-3pcb_BwC.js.map} +1 -1
  32. package/dist/assets/{NodeCreator-_GxUysbY.js → NodeCreator-r6gxY14d.js} +2 -2
  33. package/dist/assets/{NodeCreator-_GxUysbY.js.map → NodeCreator-r6gxY14d.js.map} +1 -1
  34. package/dist/assets/{NodeView-CdR2fi_x.js → NodeView-LzPrYfwG.js} +3 -3
  35. package/dist/assets/{NodeView-CdR2fi_x.js.map → NodeView-LzPrYfwG.js.map} +1 -1
  36. package/dist/assets/{ResourcesListLayout-XUIQQpyB.js → ResourcesListLayout-XbNZXU-j.js} +2 -2
  37. package/dist/assets/{ResourcesListLayout-XUIQQpyB.js.map → ResourcesListLayout-XbNZXU-j.js.map} +1 -1
  38. package/dist/assets/{RunDataAi-4m1wWDUf.js → RunDataAi-ueFTZBht.js} +2 -2
  39. package/dist/assets/{RunDataAi-4m1wWDUf.js.map → RunDataAi-ueFTZBht.js.map} +1 -1
  40. package/dist/assets/{RunDataJson-FZZoF8ao.js → RunDataJson-VFzb6R4m.js} +3 -3
  41. package/dist/assets/{RunDataJson-FZZoF8ao.js.map → RunDataJson-VFzb6R4m.js.map} +1 -1
  42. package/dist/assets/{RunDataJsonActions-LZGsgNyW.js → RunDataJsonActions-LDR8SlAW.js} +2 -2
  43. package/dist/assets/{RunDataJsonActions-LZGsgNyW.js.map → RunDataJsonActions-LDR8SlAW.js.map} +1 -1
  44. package/dist/assets/{RunDataSchema-wjyR7MiY.js → RunDataSchema-BB0j0bVA.js} +2 -2
  45. package/dist/assets/{RunDataSchema-wjyR7MiY.js.map → RunDataSchema-BB0j0bVA.js.map} +1 -1
  46. package/dist/assets/{RunDataTable-690SZ7_1.js → RunDataTable-Qas85Wnj.js} +2 -2
  47. package/dist/assets/{RunDataTable-690SZ7_1.js.map → RunDataTable-Qas85Wnj.js.map} +1 -1
  48. package/dist/assets/{SamlOnboarding-9tSVzIi2.js → SamlOnboarding-4D4QjACf.js} +2 -2
  49. package/dist/assets/{SamlOnboarding-9tSVzIi2.js.map → SamlOnboarding-4D4QjACf.js.map} +1 -1
  50. package/dist/assets/{SettingsApiView-95Wb-oA5.js → SettingsApiView-0Ne2kemN.js} +2 -2
  51. package/dist/assets/{SettingsApiView-95Wb-oA5.js.map → SettingsApiView-0Ne2kemN.js.map} +1 -1
  52. package/dist/assets/{SettingsCommunityNodesView-WW65T1Gl.js → SettingsCommunityNodesView-zzzz0aj6.js} +2 -2
  53. package/dist/assets/{SettingsCommunityNodesView-WW65T1Gl.js.map → SettingsCommunityNodesView-zzzz0aj6.js.map} +1 -1
  54. package/dist/assets/{SettingsExternalSecrets-6YJbQ8LH.js → SettingsExternalSecrets-bsdr9nMJ.js} +2 -2
  55. package/dist/assets/{SettingsExternalSecrets-6YJbQ8LH.js.map → SettingsExternalSecrets-bsdr9nMJ.js.map} +1 -1
  56. package/dist/assets/{SettingsFakeDoorView-6ZiGYnHw.js → SettingsFakeDoorView-0ioWE56l.js} +2 -2
  57. package/dist/assets/{SettingsFakeDoorView-6ZiGYnHw.js.map → SettingsFakeDoorView-0ioWE56l.js.map} +1 -1
  58. package/dist/assets/{SettingsLdapView-G9lNDLq4.js → SettingsLdapView-nV_D5CDp.js} +2 -2
  59. package/dist/assets/{SettingsLdapView-G9lNDLq4.js.map → SettingsLdapView-nV_D5CDp.js.map} +1 -1
  60. package/dist/assets/{SettingsLogStreamingView-hOxp5upg.js → SettingsLogStreamingView-GPC6oqoB.js} +2 -2
  61. package/dist/assets/{SettingsLogStreamingView-hOxp5upg.js.map → SettingsLogStreamingView-GPC6oqoB.js.map} +1 -1
  62. package/dist/assets/{SettingsSourceControl-A4p6uSTm.js → SettingsSourceControl-YlWPbedb.js} +2 -2
  63. package/dist/assets/{SettingsSourceControl-A4p6uSTm.js.map → SettingsSourceControl-YlWPbedb.js.map} +1 -1
  64. package/dist/assets/{SettingsSso-kXl38iOM.js → SettingsSso-o3FTQjpW.js} +2 -2
  65. package/dist/assets/{SettingsSso-kXl38iOM.js.map → SettingsSso-o3FTQjpW.js.map} +1 -1
  66. package/dist/assets/{SettingsUsageAndPlan-E00t5N2Z.js → SettingsUsageAndPlan-lypv7X6a.js} +2 -2
  67. package/dist/assets/{SettingsUsageAndPlan-E00t5N2Z.js.map → SettingsUsageAndPlan-lypv7X6a.js.map} +1 -1
  68. package/dist/assets/{SettingsUsersView-4PoSbZc_.js → SettingsUsersView-BP40GKuA.js} +2 -2
  69. package/dist/assets/{SettingsUsersView-4PoSbZc_.js.map → SettingsUsersView-BP40GKuA.js.map} +1 -1
  70. package/dist/assets/{SettingsView-ITSZzUOy.js → SettingsView-UI5wnO8B.js} +2 -2
  71. package/dist/assets/{SettingsView-ITSZzUOy.js.map → SettingsView-UI5wnO8B.js.map} +1 -1
  72. package/dist/assets/{SetupView-iFHyYLKM.js → SetupView-jUHcBldc.js} +2 -2
  73. package/dist/assets/{SetupView-iFHyYLKM.js.map → SetupView-jUHcBldc.js.map} +1 -1
  74. package/dist/assets/{SetupWorkflowFromTemplateView-1mq-ZIl2.js → SetupWorkflowFromTemplateView-xZok8Ro-.js} +2 -2
  75. package/dist/assets/{SetupWorkflowFromTemplateView-1mq-ZIl2.js.map → SetupWorkflowFromTemplateView-xZok8Ro-.js.map} +1 -1
  76. package/dist/assets/{SigninView-eqdMLCtk.js → SigninView-jH2VFMFu.js} +2 -2
  77. package/dist/assets/{SigninView-eqdMLCtk.js.map → SigninView-jH2VFMFu.js.map} +1 -1
  78. package/dist/assets/{SignupView-a26ywVgy.js → SignupView-cQJowW7M.js} +2 -2
  79. package/dist/assets/{SignupView-a26ywVgy.js.map → SignupView-cQJowW7M.js.map} +1 -1
  80. package/dist/assets/{TemplateDetails-neZvQLcE.js → TemplateDetails-FXwRGgg3.js} +2 -2
  81. package/dist/assets/{TemplateDetails-neZvQLcE.js.map → TemplateDetails-FXwRGgg3.js.map} +1 -1
  82. package/dist/assets/{TemplateList-apw79EVp.js → TemplateList-ygiFPwW5.js} +2 -2
  83. package/dist/assets/{TemplateList-apw79EVp.js.map → TemplateList-ygiFPwW5.js.map} +1 -1
  84. package/dist/assets/{TemplatesCollectionView-2NGTxXTg.js → TemplatesCollectionView-iJK5C7dQ.js} +2 -2
  85. package/dist/assets/{TemplatesCollectionView-2NGTxXTg.js.map → TemplatesCollectionView-iJK5C7dQ.js.map} +1 -1
  86. package/dist/assets/{TemplatesSearchView-0FL2pP83.js → TemplatesSearchView-HA2xad9U.js} +2 -2
  87. package/dist/assets/{TemplatesSearchView-0FL2pP83.js.map → TemplatesSearchView-HA2xad9U.js.map} +1 -1
  88. package/dist/assets/{TemplatesWorkflowView-D4Lnmnhg.js → TemplatesWorkflowView-KdHMuTUs.js} +2 -2
  89. package/dist/assets/{TemplatesWorkflowView-D4Lnmnhg.js.map → TemplatesWorkflowView-KdHMuTUs.js.map} +1 -1
  90. package/dist/assets/{VariablesView-tzHYYMLV.js → VariablesView-BGFOVdr1.js} +2 -2
  91. package/dist/assets/{VariablesView-tzHYYMLV.js.map → VariablesView-BGFOVdr1.js.map} +1 -1
  92. package/dist/assets/{WorkerView-AmUPKGBk.js → WorkerView-FnskutaO.js} +2 -2
  93. package/dist/assets/{WorkerView-AmUPKGBk.js.map → WorkerView-FnskutaO.js.map} +1 -1
  94. package/dist/assets/{WorkflowActivator-haTVfR4g.js → WorkflowActivator-B2Cg8gE_.js} +2 -2
  95. package/dist/assets/{WorkflowActivator-haTVfR4g.js.map → WorkflowActivator-B2Cg8gE_.js.map} +1 -1
  96. package/dist/assets/{WorkflowOnboardingView-azyuxv8R.js → WorkflowOnboardingView-ZBFcAyXB.js} +2 -2
  97. package/dist/assets/{WorkflowOnboardingView-azyuxv8R.js.map → WorkflowOnboardingView-ZBFcAyXB.js.map} +1 -1
  98. package/dist/assets/{WorkflowsView-oE-PnjgI.js → WorkflowsView-ZCzM_7eW.js} +2 -2
  99. package/dist/assets/{WorkflowsView-oE-PnjgI.js.map → WorkflowsView-ZCzM_7eW.js.map} +1 -1
  100. package/dist/assets/{cloud-TMu3mk45.js → cloud-B6sgy7jV.js} +2 -2
  101. package/dist/assets/{cloud-TMu3mk45.js.map → cloud-B6sgy7jV.js.map} +1 -1
  102. package/dist/assets/{executionsHelpers-jpam7Sff.js → executionsHelpers-8_uqSfWi.js} +2 -2
  103. package/dist/assets/{executionsHelpers-jpam7Sff.js.map → executionsHelpers-8_uqSfWi.js.map} +1 -1
  104. package/dist/assets/{index-hMVAffQ3.js → index-sMRiWGJS.js} +4 -4
  105. package/dist/assets/{index-hMVAffQ3.js.map → index-sMRiWGJS.js.map} +1 -1
  106. package/dist/assets/{pushConnection-NKwmlD0l.js → pushConnection-SP3wVlD4.js} +2 -2
  107. package/dist/assets/{pushConnection-NKwmlD0l.js.map → pushConnection-SP3wVlD4.js.map} +1 -1
  108. package/dist/assets/{useExecutionDebugging-WpRAbEhr.js → useExecutionDebugging-vYjc-e7j.js} +2 -2
  109. package/dist/assets/{useExecutionDebugging-WpRAbEhr.js.map → useExecutionDebugging-vYjc-e7j.js.map} +1 -1
  110. package/dist/assets/{workflowActivate-UB1_xc5U.js → workflowActivate-FonyQsS3.js} +2 -2
  111. package/dist/assets/{workflowActivate-UB1_xc5U.js.map → workflowActivate-FonyQsS3.js.map} +1 -1
  112. package/dist/index.html +1 -1
  113. package/package.json +1 -1
  114. package/dist/assets/ExecutionsList-VqMNpnno.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
 
2
- > n8n-editor-ui@1.19.1 build /home/runner/work/n8n/n8n/packages/editor-ui
2
+ > n8n-editor-ui@1.19.3 build /home/runner/work/n8n/n8n/packages/editor-ui
3
3
  > cross-env VUE_APP_PUBLIC_PATH="/{{BASE_PATH}}/" NODE_OPTIONS="--max-old-space-size=8192" vite build
4
4
 
5
5
  vite v5.0.2 building for production...
@@ -13,16 +13,16 @@ rendering chunks...
13
13
  (!) /home/runner/work/n8n/n8n/packages/editor-ui/src/components/RunDataHtml.vue is dynamically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/RunData.vue?vue&type=script&lang.ts but also statically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/BinaryDataDisplayEmbed.vue?vue&type=script&lang.ts, dynamic import will not move module into another chunk.
14
14
  
15
15
  [plugin:vite:reporter] 
16
- (!) /home/runner/work/n8n/n8n/packages/editor-ui/src/components/CollectionParameter.vue is dynamically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/ParameterInputList.vue?vue&type=script&lang.ts but also statically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/MultipleParameter.vue?vue&type=script&lang.ts, dynamic import will not move module into another chunk.
16
+ (!) /home/runner/work/n8n/n8n/packages/design-system/src/locale/lang/en.ts is dynamically imported by /home/runner/work/n8n/n8n/packages/design-system/src/locale/index.ts but also statically imported by /home/runner/work/n8n/n8n/packages/design-system/src/locale/index.ts, dynamic import will not move module into another chunk.
17
17
  
18
18
  [plugin:vite:reporter] 
19
- (!) /home/runner/work/n8n/n8n/packages/editor-ui/src/components/ParameterInputList.vue is dynamically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/CollectionParameter.vue?vue&type=script&lang.ts, /home/runner/work/n8n/n8n/packages/editor-ui/src/components/FixedCollectionParameter.vue?vue&type=script&lang.ts but also statically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/NodeSettings.vue?vue&type=script&lang.ts, /home/runner/work/n8n/n8n/packages/editor-ui/src/components/SettingsLogStreaming/EventDestinationSettingsModal.ee.vue?vue&type=script&lang.ts, dynamic import will not move module into another chunk.
19
+ (!) /home/runner/work/n8n/n8n/packages/editor-ui/src/plugins/i18n/locales/en.json is dynamically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/plugins/i18n/index.ts but also statically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/plugins/i18n/index.ts, dynamic import will not move module into another chunk.
20
20
  
21
21
  [plugin:vite:reporter] 
22
- (!) /home/runner/work/n8n/n8n/packages/design-system/src/locale/lang/en.ts is dynamically imported by /home/runner/work/n8n/n8n/packages/design-system/src/locale/index.ts but also statically imported by /home/runner/work/n8n/n8n/packages/design-system/src/locale/index.ts, dynamic import will not move module into another chunk.
22
+ (!) /home/runner/work/n8n/n8n/packages/editor-ui/src/components/CollectionParameter.vue is dynamically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/ParameterInputList.vue?vue&type=script&lang.ts but also statically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/MultipleParameter.vue?vue&type=script&lang.ts, dynamic import will not move module into another chunk.
23
23
  
24
24
  [plugin:vite:reporter] 
25
- (!) /home/runner/work/n8n/n8n/packages/editor-ui/src/plugins/i18n/locales/en.json is dynamically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/plugins/i18n/index.ts but also statically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/plugins/i18n/index.ts, dynamic import will not move module into another chunk.
25
+ (!) /home/runner/work/n8n/n8n/packages/editor-ui/src/components/ParameterInputList.vue is dynamically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/CollectionParameter.vue?vue&type=script&lang.ts, /home/runner/work/n8n/n8n/packages/editor-ui/src/components/FixedCollectionParameter.vue?vue&type=script&lang.ts but also statically imported by /home/runner/work/n8n/n8n/packages/editor-ui/src/components/NodeSettings.vue?vue&type=script&lang.ts, /home/runner/work/n8n/n8n/packages/editor-ui/src/components/SettingsLogStreaming/EventDestinationSettingsModal.ee.vue?vue&type=script&lang.ts, dynamic import will not move module into another chunk.
26
26
  
27
27
  computing gzip size...
28
28
  dist/assets/infisical-2-1V4C6R.webp  1.56 kB
@@ -105,85 +105,85 @@ computing gzip size...
105
105
  dist/assets/timeago.js--Bumj2r9.js  1.09 kB │ gzip: 0.71 kB │ map: 7.76 kB
106
106
  dist/assets/codemirror-lang-n8n-expression-qGXLqLTr.js  1.14 kB │ gzip: 0.69 kB │ map: 3.01 kB
107
107
  dist/assets/uuid-McvpxQtQ.js  1.18 kB │ gzip: 0.63 kB │ map: 5.64 kB
108
- dist/assets/executionsHelpers-jpam7Sff.js  1.59 kB │ gzip: 0.66 kB │ map: 4.34 kB
108
+ dist/assets/executionsHelpers-8_uqSfWi.js  1.59 kB │ gzip: 0.66 kB │ map: 4.34 kB
109
109
  dist/assets/TemplatesView-cnvoEQpa.js  1.60 kB │ gzip: 0.82 kB │ map: 3.90 kB
110
110
  dist/assets/ErrorView-z03-iePZ.js  1.63 kB │ gzip: 0.88 kB │ map: 2.65 kB
111
111
  dist/assets/vue-chartjs-ecE9gAkU.js  1.64 kB │ gzip: 0.87 kB │ map: 11.29 kB
112
112
  dist/assets/SettingsAuditLogs-rQfRIurB.js  1.70 kB │ gzip: 0.86 kB │ map: 2.42 kB
113
- dist/assets/SettingsFakeDoorView-6ZiGYnHw.js  1.87 kB │ gzip: 0.98 kB │ map: 1.74 kB
114
- dist/assets/workflowActivate-UB1_xc5U.js  2.11 kB │ gzip: 0.86 kB │ map: 6.64 kB
113
+ dist/assets/SettingsFakeDoorView-0ioWE56l.js  1.87 kB │ gzip: 0.98 kB │ map: 1.74 kB
114
+ dist/assets/workflowActivate-FonyQsS3.js  2.11 kB │ gzip: 0.86 kB │ map: 6.64 kB
115
115
  dist/assets/RunDataSearch-0UjOZNT9.js  2.13 kB │ gzip: 1.11 kB │ map: 4.34 kB
116
116
  dist/assets/@jsplumb/common-Q5_tv_GT.js  2.16 kB │ gzip: 0.92 kB │ map: 7.72 kB
117
- dist/assets/WorkflowOnboardingView-azyuxv8R.js  2.17 kB │ gzip: 1.07 kB │ map: 3.30 kB
118
- dist/assets/useExecutionDebugging-WpRAbEhr.js  2.18 kB │ gzip: 1.11 kB │ map: 7.70 kB
117
+ dist/assets/WorkflowOnboardingView-ZBFcAyXB.js  2.17 kB │ gzip: 1.07 kB │ map: 3.30 kB
118
+ dist/assets/useExecutionDebugging-vYjc-e7j.js  2.18 kB │ gzip: 1.11 kB │ map: 7.70 kB
119
119
  dist/assets/collaboration.store-lUjjktP5.js  2.19 kB │ gzip: 1.11 kB │ map: 10.09 kB
120
- dist/assets/SamlOnboarding-9tSVzIi2.js  2.23 kB │ gzip: 1.12 kB │ map: 2.75 kB
120
+ dist/assets/SamlOnboarding-4D4QjACf.js  2.23 kB │ gzip: 1.12 kB │ map: 2.75 kB
121
121
  dist/assets/copy-to-clipboard-6yTgHm0Q.js  2.27 kB │ gzip: 1.11 kB │ map: 7.16 kB
122
- dist/assets/AuthView-pnWQAK0S.js  2.48 kB │ gzip: 1.22 kB │ map: 6.08 kB
122
+ dist/assets/AuthView-KzKyZSHz.js  2.48 kB │ gzip: 1.22 kB │ map: 6.08 kB
123
123
  dist/assets/file-saver-_vO_MOS2.js  2.64 kB │ gzip: 1.27 kB │ map: 5.91 kB
124
124
  dist/assets/v3-infinite-loading-lErK5XME.js  2.88 kB │ gzip: 1.37 kB │ map: 8.03 kB
125
- dist/assets/ForgotMyPasswordView-JpQD0IzR.js  3.01 kB │ gzip: 1.38 kB │ map: 4.98 kB
126
- dist/assets/SetupView-iFHyYLKM.js  3.10 kB │ gzip: 1.39 kB │ map: 5.32 kB
127
- dist/assets/TemplateDetails-neZvQLcE.js  3.13 kB │ gzip: 1.31 kB │ map: 6.91 kB
128
- dist/assets/ExecutionsLandingPage-bMbJUz4X.js  3.22 kB │ gzip: 1.43 kB │ map: 4.60 kB
129
- dist/assets/CanvasControls-kb3__O2G.js  3.45 kB │ gzip: 1.53 kB │ map: 3.96 kB
125
+ dist/assets/ForgotMyPasswordView-n-WXfUXB.js  3.01 kB │ gzip: 1.38 kB │ map: 4.98 kB
126
+ dist/assets/SetupView-jUHcBldc.js  3.10 kB │ gzip: 1.39 kB │ map: 5.32 kB
127
+ dist/assets/TemplateDetails-FXwRGgg3.js  3.13 kB │ gzip: 1.31 kB │ map: 6.91 kB
128
+ dist/assets/ExecutionsLandingPage-LNx1ct-F.js  3.22 kB │ gzip: 1.43 kB │ map: 4.60 kB
129
+ dist/assets/CanvasControls-6jR1_mnm.js  3.45 kB │ gzip: 1.53 kB │ map: 3.96 kB
130
130
  dist/assets/WorkflowPreview-iIsIMKWU.js  3.60 kB │ gzip: 1.43 kB │ map: 8.89 kB
131
- dist/assets/WorkflowActivator-haTVfR4g.js  3.72 kB │ gzip: 1.48 kB │ map: 8.22 kB
132
- dist/assets/SignupView-a26ywVgy.js  3.89 kB │ gzip: 1.62 kB │ map: 7.24 kB
131
+ dist/assets/WorkflowActivator-B2Cg8gE_.js  3.72 kB │ gzip: 1.48 kB │ map: 8.22 kB
132
+ dist/assets/SignupView-cQJowW7M.js  3.89 kB │ gzip: 1.62 kB │ map: 7.24 kB
133
133
  dist/assets/@vueuse/core-viEZCtbZ.js  4.16 kB │ gzip: 1.94 kB │ map: 262.78 kB
134
- dist/assets/ChangePasswordView-w8ZDdsHs.js  4.19 kB │ gzip: 1.70 kB │ map: 7.67 kB
134
+ dist/assets/ChangePasswordView-TW8EQPS0.js  4.19 kB │ gzip: 1.70 kB │ map: 7.67 kB
135
135
  dist/assets/pinia-IhuTtYiV.js  4.37 kB │ gzip: 2.17 kB │ map: 85.23 kB
136
- dist/assets/TemplatesCollectionView-2NGTxXTg.js  5.08 kB │ gzip: 2.14 kB │ map: 9.47 kB
136
+ dist/assets/TemplatesCollectionView-iJK5C7dQ.js  5.08 kB │ gzip: 2.14 kB │ map: 9.47 kB
137
137
  dist/assets/vue3-touch-events-_RfbPMOD.js  5.22 kB │ gzip: 1.73 kB │ map: 23.65 kB
138
- dist/assets/RunDataJsonActions-LZGsgNyW.js  5.31 kB │ gzip: 2.27 kB │ map: 10.83 kB
139
- dist/assets/TemplatesWorkflowView-D4Lnmnhg.js  5.39 kB │ gzip: 2.24 kB │ map: 10.78 kB
140
- dist/assets/ExecutionsInfoAccordion-GNoSEKPt.js  5.39 kB │ gzip: 1.64 kB │ map: 12.71 kB
141
- dist/assets/SettingsExternalSecrets-6YJbQ8LH.js  5.83 kB │ gzip: 2.39 kB │ map: 10.56 kB
142
- dist/assets/SettingsApiView-95Wb-oA5.js  6.18 kB │ gzip: 2.38 kB │ map: 11.10 kB
143
- dist/assets/TemplateList-apw79EVp.js  6.70 kB │ gzip: 2.43 kB │ map: 16.57 kB
144
- dist/assets/RunDataSchema-wjyR7MiY.js  6.87 kB │ gzip: 2.90 kB │ map: 13.09 kB
145
- dist/assets/SettingsUsageAndPlan-E00t5N2Z.js  6.89 kB │ gzip: 2.67 kB │ map: 12.86 kB
138
+ dist/assets/RunDataJsonActions-LDR8SlAW.js  5.31 kB │ gzip: 2.27 kB │ map: 10.83 kB
139
+ dist/assets/ExecutionsInfoAccordion-J0VUGzOg.js  5.39 kB │ gzip: 1.64 kB │ map: 12.71 kB
140
+ dist/assets/TemplatesWorkflowView-KdHMuTUs.js  5.39 kB │ gzip: 2.25 kB │ map: 10.78 kB
141
+ dist/assets/SettingsExternalSecrets-bsdr9nMJ.js  5.83 kB │ gzip: 2.39 kB │ map: 10.56 kB
142
+ dist/assets/SettingsApiView-0Ne2kemN.js  6.18 kB │ gzip: 2.38 kB │ map: 11.10 kB
143
+ dist/assets/TemplateList-ygiFPwW5.js  6.70 kB │ gzip: 2.43 kB │ map: 16.57 kB
144
+ dist/assets/RunDataSchema-BB0j0bVA.js  6.87 kB │ gzip: 2.90 kB │ map: 13.09 kB
145
+ dist/assets/SettingsUsageAndPlan-lypv7X6a.js  6.89 kB │ gzip: 2.67 kB │ map: 12.86 kB
146
146
  dist/assets/@fortawesome/vue-fontawesome-GVmvJ_gj.js  7.06 kB │ gzip: 2.62 kB │ map: 29.94 kB
147
- dist/assets/SettingsSso-kXl38iOM.js  7.13 kB │ gzip: 2.47 kB │ map: 11.46 kB
147
+ dist/assets/SettingsSso-o3FTQjpW.js  7.13 kB │ gzip: 2.47 kB │ map: 11.46 kB
148
148
  dist/assets/SettingsPersonalView-0V2qqNVg.js  7.35 kB │ gzip: 2.45 kB │ map: 15.86 kB
149
- dist/assets/SettingsUsersView-4PoSbZc_.js  7.52 kB │ gzip: 2.41 kB │ map: 14.25 kB
150
- dist/assets/ExecutionPreview-IQ7v5u01.js  7.65 kB │ gzip: 2.64 kB │ map: 13.89 kB
151
- dist/assets/CredentialsView-9EPVLguD.js  7.67 kB │ gzip: 3.08 kB │ map: 17.41 kB
152
- dist/assets/RunDataJson-FZZoF8ao.js  7.74 kB │ gzip: 2.94 kB │ map: 11.92 kB
153
- dist/assets/NodeCreation-OxTpBRfP.js  7.80 kB │ gzip: 3.56 kB │ map: 21.87 kB
154
- dist/assets/SettingsView-ITSZzUOy.js  8.16 kB │ gzip: 2.63 kB │ map: 17.08 kB
155
- dist/assets/FixedCollectionParameter-2NZhE0YP.js  8.46 kB │ gzip: 2.94 kB │ map: 19.27 kB
156
- dist/assets/SigninView-eqdMLCtk.js  9.03 kB │ gzip: 3.30 kB │ map: 20.23 kB
149
+ dist/assets/SettingsUsersView-BP40GKuA.js  7.52 kB │ gzip: 2.41 kB │ map: 14.25 kB
150
+ dist/assets/ExecutionPreview-OuL-2qRR.js  7.65 kB │ gzip: 2.64 kB │ map: 13.89 kB
151
+ dist/assets/CredentialsView-AVQZL_tm.js  7.67 kB │ gzip: 3.09 kB │ map: 17.41 kB
152
+ dist/assets/RunDataJson-VFzb6R4m.js  7.74 kB │ gzip: 2.94 kB │ map: 11.92 kB
153
+ dist/assets/NodeCreation-3pcb_BwC.js  7.80 kB │ gzip: 3.57 kB │ map: 21.87 kB
154
+ dist/assets/SettingsView-UI5wnO8B.js  8.16 kB │ gzip: 2.63 kB │ map: 17.08 kB
155
+ dist/assets/FixedCollectionParameter-i4v0_RBC.js  8.46 kB │ gzip: 2.94 kB │ map: 19.27 kB
156
+ dist/assets/SigninView-jH2VFMFu.js  9.03 kB │ gzip: 3.30 kB │ map: 20.23 kB
157
157
  dist/assets/@jsplumb/util-DR0SB56A.js  9.69 kB │ gzip: 3.64 kB │ map: 44.96 kB
158
- dist/assets/ExecutionFilter-xWjqUjz0.js  9.95 kB │ gzip: 3.49 kB │ map: 30.97 kB
159
- dist/assets/SettingsCommunityNodesView-WW65T1Gl.js  10.24 kB │ gzip: 3.28 kB │ map: 21.51 kB
160
- dist/assets/VariablesView-tzHYYMLV.js  10.99 kB │ gzip: 3.98 kB │ map: 25.84 kB
161
- dist/assets/SettingsSourceControl-A4p6uSTm.js  11.15 kB │ gzip: 3.30 kB │ map: 19.21 kB
162
- dist/assets/SettingsLogStreamingView-hOxp5upg.js  11.18 kB │ gzip: 3.75 kB │ map: 24.43 kB
158
+ dist/assets/ExecutionFilter-tcX3bN8y.js  9.95 kB │ gzip: 3.49 kB │ map: 30.97 kB
159
+ dist/assets/SettingsCommunityNodesView-zzzz0aj6.js  10.24 kB │ gzip: 3.28 kB │ map: 21.51 kB
160
+ dist/assets/VariablesView-BGFOVdr1.js  10.99 kB │ gzip: 3.98 kB │ map: 25.84 kB
161
+ dist/assets/SettingsSourceControl-YlWPbedb.js  11.15 kB │ gzip: 3.30 kB │ map: 19.21 kB
162
+ dist/assets/SettingsLogStreamingView-GPC6oqoB.js  11.18 kB │ gzip: 3.74 kB │ map: 24.43 kB
163
163
  dist/assets/vue-agile-421cHwup.js  12.27 kB │ gzip: 3.57 kB │ map: 36.61 kB
164
- dist/assets/pushConnection-NKwmlD0l.js  12.35 kB │ gzip: 3.94 kB │ map: 39.42 kB
165
- dist/assets/RunDataTable-690SZ7_1.js  12.52 kB │ gzip: 4.53 kB │ map: 32.44 kB
166
- dist/assets/WorkerView-AmUPKGBk.js  12.86 kB │ gzip: 4.85 kB │ map: 27.32 kB
167
- dist/assets/WorkflowsView-oE-PnjgI.js  12.95 kB │ gzip: 4.69 kB │ map: 30.95 kB
168
- dist/assets/SetupWorkflowFromTemplateView-1mq-ZIl2.js  13.14 kB │ gzip: 5.03 kB │ map: 42.61 kB
169
- dist/assets/cloud-TMu3mk45.js  13.16 kB │ gzip: 3.70 kB │ map: 40.87 kB
170
- dist/assets/RunDataAi-4m1wWDUf.js  14.10 kB │ gzip: 5.32 kB │ map: 39.55 kB
164
+ dist/assets/pushConnection-SP3wVlD4.js  12.35 kB │ gzip: 3.94 kB │ map: 39.42 kB
165
+ dist/assets/RunDataTable-Qas85Wnj.js  12.52 kB │ gzip: 4.53 kB │ map: 32.44 kB
166
+ dist/assets/WorkerView-FnskutaO.js  12.86 kB │ gzip: 4.85 kB │ map: 27.32 kB
167
+ dist/assets/WorkflowsView-ZCzM_7eW.js  12.95 kB │ gzip: 4.69 kB │ map: 30.95 kB
168
+ dist/assets/SetupWorkflowFromTemplateView-xZok8Ro-.js  13.14 kB │ gzip: 5.03 kB │ map: 42.61 kB
169
+ dist/assets/cloud-B6sgy7jV.js  13.16 kB │ gzip: 3.70 kB │ map: 40.87 kB
170
+ dist/assets/RunDataAi-ueFTZBht.js  14.10 kB │ gzip: 5.32 kB │ map: 39.55 kB
171
171
  dist/assets/WorkflowHistory-GSf6Gqap.js  14.55 kB │ gzip: 5.16 kB │ map: 43.40 kB
172
172
  dist/assets/@jsplumb/connector-bezier-3dWY17R5.js  14.58 kB │ gzip: 5.10 kB │ map: 64.38 kB
173
- dist/assets/TemplatesSearchView-0FL2pP83.js  15.31 kB │ gzip: 5.08 kB │ map: 37.68 kB
173
+ dist/assets/TemplatesSearchView-HA2xad9U.js  15.31 kB │ gzip: 5.08 kB │ map: 37.68 kB
174
174
  dist/assets/vue-json-pretty-HTL9TWGq.js  15.98 kB │ gzip: 5.35 kB │ map: 34.45 kB
175
- dist/assets/ResourcesListLayout-XUIQQpyB.js  16.89 kB │ gzip: 5.07 kB │ map: 42.12 kB
175
+ dist/assets/ResourcesListLayout-XbNZXU-j.js  16.89 kB │ gzip: 5.07 kB │ map: 42.12 kB
176
176
  dist/assets/qrcode.vue-f7Vn5Pkq.js  16.95 kB │ gzip: 5.97 kB │ map: 67.46 kB
177
- dist/assets/SettingsLdapView-G9lNDLq4.js  17.59 kB │ gzip: 4.27 kB │ map: 39.41 kB
178
- dist/assets/MainSidebar-QaJ5uvnW.js  18.53 kB │ gzip: 6.20 kB │ map: 46.28 kB
177
+ dist/assets/SettingsLdapView-nV_D5CDp.js  17.59 kB │ gzip: 4.27 kB │ map: 39.41 kB
178
+ dist/assets/MainSidebar-K22ttpb5.js  18.53 kB │ gzip: 6.20 kB │ map: 46.28 kB
179
179
  dist/assets/humanize-duration-A4FFIqMM.js  21.23 kB │ gzip: 6.57 kB │ map: 75.04 kB
180
- dist/assets/ExecutionsView-cib3hepc.js  22.14 kB │ gzip: 6.25 kB │ map: 58.09 kB
181
- dist/assets/ExecutionsList-VqMNpnno.js  22.90 kB │ gzip: 6.81 kB │ map: 62.16 kB
180
+ dist/assets/ExecutionsView-vfalxf-N.js  22.14 kB │ gzip: 6.25 kB │ map: 58.09 kB
181
+ dist/assets/ExecutionsList-1jr8ziaw.js  22.95 kB │ gzip: 6.82 kB │ map: 62.28 kB
182
182
  dist/assets/@fortawesome/fontawesome-svg-core-xYGjsix9.js  25.94 kB │ gzip: 8.94 kB │ map: 108.97 kB
183
183
  dist/assets/@lezer/common-aP6EPErF.js  26.37 kB │ gzip: 9.09 kB │ map: 124.11 kB
184
- dist/assets/MainHeader-_EB1A67D.js  28.07 kB │ gzip: 9.00 kB │ map: 77.58 kB
184
+ dist/assets/MainHeader-it41_mme.js  28.07 kB │ gzip: 9.00 kB │ map: 77.58 kB
185
185
  dist/assets/lodash-es-s_m9YyW7.js  33.95 kB │ gzip: 12.82 kB │ map: 294.16 kB
186
- dist/assets/NodeCreator-_GxUysbY.js  39.31 kB │ gzip: 13.02 kB │ map: 103.17 kB
186
+ dist/assets/NodeCreator-r6gxY14d.js  39.31 kB │ gzip: 13.02 kB │ map: 103.17 kB
187
187
  dist/assets/vue-i18n-eiX0lGiQ.js  54.34 kB │ gzip: 17.23 kB │ map: 321.68 kB
188
188
  dist/assets/luxon-ZRIU05qF.js  63.50 kB │ gzip: 19.83 kB │ map: 344.91 kB
189
189
  dist/assets/prettier-s3fE3Qyr.js  76.34 kB │ gzip: 25.52 kB │ map: 169.34 kB
@@ -196,9 +196,9 @@ computing gzip size...
196
196
  dist/assets/codemirror-lang-html-n8n-qoVuUIQR.js  128.75 kB │ gzip: 48.54 kB │ map: 219.77 kB
197
197
  dist/assets/esprima-next-ulPLCZ1Z.js  134.74 kB │ gzip: 30.32 kB │ map: 437.15 kB
198
198
  dist/assets/chart.js-JtqvIvkt.js  168.97 kB │ gzip: 58.52 kB │ map: 802.84 kB
199
- dist/assets/NodeView-CdR2fi_x.js  282.20 kB │ gzip: 79.94 kB │ map: 829.67 kB
199
+ dist/assets/NodeView-LzPrYfwG.js  282.20 kB │ gzip: 79.93 kB │ map: 829.67 kB
200
200
  dist/assets/@n8n/codemirror-lang-sql-zd5sOTQ9.js  301.98 kB │ gzip: 99.76 kB │ map: 1,238.29 kB
201
- dist/assets/index-hMVAffQ3.js 1,483.00 kB │ gzip: 417.30 kB │ map: 3,786.50 kB
201
+ dist/assets/index-sMRiWGJS.js 1,483.00 kB │ gzip: 417.29 kB │ map: 3,786.50 kB
202
202
  dist/assets/n8n-NE7NqrvB.js 2,820.41 kB │ gzip: 846.76 kB │ map: 10,373.54 kB
203
203
  
204
204
  (!) Some chunks are larger than 500 kB after minification. Consider:
@@ -1,2 +1,2 @@
1
- import{m as C}from"./pinia-IhuTtYiV.js";import{l as L,v,_ as g,u as k,as as w}from"./n8n-NE7NqrvB.js";import{G as f,l as n,m as c,I as e,ag as s,u as _,p as l,R as $,T as i,Q as p,O as y,K as O,S as B,M}from"./vendor-2CfOYFi2.js";import{aN as U}from"./index-hMVAffQ3.js";const V=f({computed:{...C(v,L),basePath(){return this.rootStore.baseUrl},logoPath(){return this.basePath+this.uiStore.logo}}}),N="_img_rbqr8_5",P={img:N},T=["src"];function z(o,a,r,d,u,t){return n(),c("img",{src:o.logoPath,class:e(o.$style.img),alt:"n8n.io"},null,10,T)}const A={$style:P},E=g(V,[["render",z],["__cssModules",A]]),I=f({__name:"SSOLogin",setup(o){const a=w(),r=U(),d=k(),u=async()=>{try{window.location.href=await r.getSSORedirectUrl()}catch(t){d.showError(t,"Error",t.message)}};return(t,S)=>{const m=s("n8n-button");return _(r).showSsoLoginButton?(n(),c("div",{key:0,class:e(t.$style.ssoLogin)},[l("div",{class:e(t.$style.divider)},[l("span",null,$(_(a).baseText("sso.login.divider")),1)],2),i(m,{onClick:u,size:"large",type:"primary",outline:"",label:_(a).baseText("sso.login.button")},null,8,["label"])],2)):p("",!0)}}}),R="_ssoLogin_2d9uv_5",q="_divider_2d9uv_9",x={ssoLogin:R,divider:q},D={$style:x},G=g(I,[["__cssModules",D]]),K=f({name:"AuthView",components:{Logo:E,SSOLogin:G},props:{form:{},formLoading:{type:Boolean,default:!1},subtitle:{type:String},withSso:{type:Boolean,default:!1}},methods:{onUpdate(o){this.$emit("update",o)},onSubmit(o){this.$emit("submit",o)},onSecondaryClick(){this.$emit("secondaryClick")}}}),Q="_container_13abf_9",j="_logoContainer_13abf_20",F="_textContainer_13abf_25",H="_formContainer_13abf_29",J={container:Q,logoContainer:j,textContainer:F,formContainer:H};function W(o,a,r,d,u,t){const S=s("Logo"),m=s("n8n-text"),b=s("SSOLogin"),h=s("n8n-form-box");return n(),c("div",{class:e(o.$style.container)},[l("div",{class:e(o.$style.logoContainer)},[i(S)],2),o.subtitle?(n(),c("div",{key:0,class:e(o.$style.textContainer)},[i(m,{size:"large"},{default:y(()=>[B($(o.subtitle),1)]),_:1})],2)):p("",!0),l("div",{class:e(o.$style.formContainer)},[i(h,O(o.form,{"data-test-id":"auth-form",buttonLoading:o.formLoading,onSecondaryClick:o.onSecondaryClick,onSubmit:o.onSubmit,onUpdate:o.onUpdate}),{default:y(()=>[o.withSso?(n(),M(b,{key:0})):p("",!0)]),_:1},16,["buttonLoading","onSecondaryClick","onSubmit","onUpdate"])],2)],2)}const X={$style:J},eo=g(K,[["render",W],["__cssModules",X]]);export{eo as A,E as L};
2
- //# sourceMappingURL=AuthView-pnWQAK0S.js.map
1
+ import{m as C}from"./pinia-IhuTtYiV.js";import{l as L,v,_ as g,u as k,as as w}from"./n8n-NE7NqrvB.js";import{G as f,l as n,m as c,I as e,ag as s,u as _,p as l,R as $,T as i,Q as p,O as y,K as O,S as B,M}from"./vendor-2CfOYFi2.js";import{aN as U}from"./index-sMRiWGJS.js";const V=f({computed:{...C(v,L),basePath(){return this.rootStore.baseUrl},logoPath(){return this.basePath+this.uiStore.logo}}}),N="_img_rbqr8_5",P={img:N},T=["src"];function z(o,a,r,d,u,t){return n(),c("img",{src:o.logoPath,class:e(o.$style.img),alt:"n8n.io"},null,10,T)}const A={$style:P},E=g(V,[["render",z],["__cssModules",A]]),I=f({__name:"SSOLogin",setup(o){const a=w(),r=U(),d=k(),u=async()=>{try{window.location.href=await r.getSSORedirectUrl()}catch(t){d.showError(t,"Error",t.message)}};return(t,S)=>{const m=s("n8n-button");return _(r).showSsoLoginButton?(n(),c("div",{key:0,class:e(t.$style.ssoLogin)},[l("div",{class:e(t.$style.divider)},[l("span",null,$(_(a).baseText("sso.login.divider")),1)],2),i(m,{onClick:u,size:"large",type:"primary",outline:"",label:_(a).baseText("sso.login.button")},null,8,["label"])],2)):p("",!0)}}}),R="_ssoLogin_2d9uv_5",q="_divider_2d9uv_9",x={ssoLogin:R,divider:q},D={$style:x},G=g(I,[["__cssModules",D]]),K=f({name:"AuthView",components:{Logo:E,SSOLogin:G},props:{form:{},formLoading:{type:Boolean,default:!1},subtitle:{type:String},withSso:{type:Boolean,default:!1}},methods:{onUpdate(o){this.$emit("update",o)},onSubmit(o){this.$emit("submit",o)},onSecondaryClick(){this.$emit("secondaryClick")}}}),Q="_container_13abf_9",j="_logoContainer_13abf_20",F="_textContainer_13abf_25",H="_formContainer_13abf_29",J={container:Q,logoContainer:j,textContainer:F,formContainer:H};function W(o,a,r,d,u,t){const S=s("Logo"),m=s("n8n-text"),b=s("SSOLogin"),h=s("n8n-form-box");return n(),c("div",{class:e(o.$style.container)},[l("div",{class:e(o.$style.logoContainer)},[i(S)],2),o.subtitle?(n(),c("div",{key:0,class:e(o.$style.textContainer)},[i(m,{size:"large"},{default:y(()=>[B($(o.subtitle),1)]),_:1})],2)):p("",!0),l("div",{class:e(o.$style.formContainer)},[i(h,O(o.form,{"data-test-id":"auth-form",buttonLoading:o.formLoading,onSecondaryClick:o.onSecondaryClick,onSubmit:o.onSubmit,onUpdate:o.onUpdate}),{default:y(()=>[o.withSso?(n(),M(b,{key:0})):p("",!0)]),_:1},16,["buttonLoading","onSecondaryClick","onSubmit","onUpdate"])],2)],2)}const X={$style:J},eo=g(K,[["render",W],["__cssModules",X]]);export{eo as A,E as L};
2
+ //# sourceMappingURL=AuthView-KzKyZSHz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthView-pnWQAK0S.js","sources":["../../src/components/Logo.vue","../../src/components/SSOLogin.vue","../../src/views/AuthView.vue"],"sourcesContent":["<template>\n\t<img :src=\"logoPath\" :class=\"$style.img\" alt=\"n8n.io\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useRootStore } from '@/stores/n8nRoot.store';\nimport { useUIStore } from '@/stores/ui.store';\n\nexport default defineComponent({\n\tcomputed: {\n\t\t...mapStores(useRootStore, useUIStore),\n\t\tbasePath(): string {\n\t\t\treturn this.rootStore.baseUrl;\n\t\t},\n\t\tlogoPath(): string {\n\t\t\treturn this.basePath + this.uiStore.logo;\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.img {\n\theight: 32px;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useSSOStore } from '@/stores/sso.store';\nimport { useI18n } from '@/composables/useI18n';\nimport { useToast } from '@/composables/useToast';\n\nconst i18n = useI18n();\nconst ssoStore = useSSOStore();\nconst toast = useToast();\n\nconst onSSOLogin = async () => {\n\ttry {\n\t\twindow.location.href = await ssoStore.getSSORedirectUrl();\n\t} catch (error) {\n\t\ttoast.showError(error, 'Error', error.message);\n\t}\n};\n</script>\n\n<template>\n\t<div v-if=\"ssoStore.showSsoLoginButton\" :class=\"$style.ssoLogin\">\n\t\t<div :class=\"$style.divider\">\n\t\t\t<span>{{ i18n.baseText('sso.login.divider') }}</span>\n\t\t</div>\n\t\t<n8n-button\n\t\t\t@click=\"onSSOLogin\"\n\t\t\tsize=\"large\"\n\t\t\ttype=\"primary\"\n\t\t\toutline\n\t\t\t:label=\"i18n.baseText('sso.login.button')\"\n\t\t/>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.ssoLogin {\n\ttext-align: center;\n}\n\n.divider {\n\tposition: relative;\n\ttext-transform: uppercase;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 1px;\n\t\tbackground-color: var(--color-foreground-base);\n\t}\n\n\tspan {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\tpadding: var(--spacing-xl) var(--spacing-l);\n\t\tbackground: var(--color-background-xlight);\n\t}\n}\n</style>\n","<template>\n\t<div :class=\"$style.container\">\n\t\t<div :class=\"$style.logoContainer\">\n\t\t\t<Logo />\n\t\t</div>\n\t\t<div v-if=\"subtitle\" :class=\"$style.textContainer\">\n\t\t\t<n8n-text size=\"large\">{{ subtitle }}</n8n-text>\n\t\t</div>\n\t\t<div :class=\"$style.formContainer\">\n\t\t\t<n8n-form-box\n\t\t\t\tv-bind=\"form\"\n\t\t\t\tdata-test-id=\"auth-form\"\n\t\t\t\t:buttonLoading=\"formLoading\"\n\t\t\t\t@secondaryClick=\"onSecondaryClick\"\n\t\t\t\t@submit=\"onSubmit\"\n\t\t\t\t@update=\"onUpdate\"\n\t\t\t>\n\t\t\t\t<SSOLogin v-if=\"withSso\" />\n\t\t\t</n8n-form-box>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nimport Logo from '@/components/Logo.vue';\nimport SSOLogin from '@/components/SSOLogin.vue';\n\nexport default defineComponent({\n\tname: 'AuthView',\n\tcomponents: {\n\t\tLogo,\n\t\tSSOLogin,\n\t},\n\tprops: {\n\t\tform: {},\n\t\tformLoading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t},\n\t\twithSso: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tmethods: {\n\t\tonUpdate(e: { name: string; value: string }) {\n\t\t\tthis.$emit('update', e);\n\t\t},\n\t\tonSubmit(values: { [key: string]: string }) {\n\t\t\tthis.$emit('submit', values);\n\t\t},\n\t\tonSecondaryClick() {\n\t\t\tthis.$emit('secondaryClick');\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\nbody {\n\tbackground-color: var(--color-background-light);\n}\n\n.container {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n\tpadding-top: var(--spacing-2xl);\n\n\t> * {\n\t\tmargin-bottom: var(--spacing-l);\n\t\twidth: 352px;\n\t}\n}\n\n.logoContainer {\n\tdisplay: flex;\n\tjustify-content: center;\n}\n\n.textContainer {\n\ttext-align: center;\n}\n\n.formContainer {\n\tpadding-bottom: var(--spacing-xl);\n}\n</style>\n\n<style lang=\"scss\">\n.el-checkbox__label span {\n\tfont-size: var(--font-size-2xs) !important;\n}\n</style>\n"],"names":["_sfc_main$2","defineComponent","mapStores","useRootStore","useUIStore","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","i18n","useI18n","ssoStore","useSSOStore","toast","useToast","onSSOLogin","error","_sfc_main","Logo","SSOLogin","e","values","_resolveComponent","_createVNode","_component_Logo","_withCtx","_createCommentVNode","_createElementVNode","_component_n8n_form_box","_mergeProps","_createBlock","_component_SSOLogin"],"mappings":"+QAUA,MAAAA,EAAeC,EAAgB,CAC9B,SAAU,CACT,GAAGC,EAAUC,EAAcC,CAAU,EACrC,UAAmB,CAClB,OAAO,KAAK,UAAU,OACvB,EACA,UAAmB,CACX,OAAA,KAAK,SAAW,KAAK,QAAQ,IACrC,CACD,CACD,CAAC,gDAnBWC,EAAQC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,QAAQC,EAAY,EAAAC,EAAA,MAAA,CAAE,IAAIP,EAAA,SAAA,MAAAQ,EAAAR,EAAA,OAAA,GAAA,uHCI9C,MAAMS,EAAOC,IACPC,EAAWC,IACXC,EAAQC,IAERC,EAAa,SAAY,CAC1B,GAAA,CACH,OAAO,SAAS,KAAO,MAAMJ,EAAS,kBAAkB,QAChDK,EAAO,CACfH,EAAM,UAAUG,EAAO,QAASA,EAAM,OAAO,CAC9C,CAAA,wcCeDC,EAAetB,EAAgB,CAC9B,KAAM,WACN,WAAY,CACX,KAAAuB,EACA,SAAAC,CACD,EACA,MAAO,CACN,KAAM,CAAC,EACP,YAAa,CACZ,KAAM,QACN,QAAS,EACV,EACA,SAAU,CACT,KAAM,MACP,EACA,QAAS,CACR,KAAM,QACN,QAAS,EACV,CACD,EACA,QAAS,CACR,SAASC,EAAoC,CACvC,KAAA,MAAM,SAAUA,CAAC,CACvB,EACA,SAASC,EAAmC,CACtC,KAAA,MAAM,SAAUA,CAAM,CAC5B,EACA,kBAAmB,CAClB,KAAK,MAAM,gBAAgB,CAC5B,CACD,CACD,CAAC,yPA3DAC,EAmBM,cAAA,sBAlBL,MAEMd,EAAAR,EAAA,OAAA,SAAA,CAAA,EAAA,UADL,MAAQQ,EAAAR,EAAA,OAAA,aAAA,CAAA,EAAA,CAEEuB,EAAQC,CAAA,CAAA,EAAA,CAAA,EAAQxB,EAAA,UAAAM,IAAAC,EAAE,MAAO,CAAA,IAAA,EACnC,MAAAC,EAAgDR,EAAjC,OAAA,aAAA,CAAA,EAAA,WAAW,OAAQ,EAAA,CAAA,QAAAyB,EAAA,IAAA,2BAEnC,EAAA,CAAA,GAAMC,EAAK,GAAE,EAAA,EAAAC,EAAA,MAAA,CACZ,MAAAnB,EASeR,EATf,OAAA,aAAA,CAAA,EAAA,GAGE4B,EAA0BC,EAAA7B,EAAA,KAAA,CAC1B,eAAc,YACd,cAAQA,EAAA,YACR,iBAAQA,EAAQ,iBAAA,SAAAA,EAAA,gCAEjB,QAAAyB,EAAA,IAAA,CAAAzB,EAAA,SAAAM,EAAA,EAAAwB,EAAAC,EAAA,CAAA,IAAA,CAAA,CAAA,GAAAL,EAAA,GAAA,EAAA"}
1
+ {"version":3,"file":"AuthView-KzKyZSHz.js","sources":["../../src/components/Logo.vue","../../src/components/SSOLogin.vue","../../src/views/AuthView.vue"],"sourcesContent":["<template>\n\t<img :src=\"logoPath\" :class=\"$style.img\" alt=\"n8n.io\" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useRootStore } from '@/stores/n8nRoot.store';\nimport { useUIStore } from '@/stores/ui.store';\n\nexport default defineComponent({\n\tcomputed: {\n\t\t...mapStores(useRootStore, useUIStore),\n\t\tbasePath(): string {\n\t\t\treturn this.rootStore.baseUrl;\n\t\t},\n\t\tlogoPath(): string {\n\t\t\treturn this.basePath + this.uiStore.logo;\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.img {\n\theight: 32px;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useSSOStore } from '@/stores/sso.store';\nimport { useI18n } from '@/composables/useI18n';\nimport { useToast } from '@/composables/useToast';\n\nconst i18n = useI18n();\nconst ssoStore = useSSOStore();\nconst toast = useToast();\n\nconst onSSOLogin = async () => {\n\ttry {\n\t\twindow.location.href = await ssoStore.getSSORedirectUrl();\n\t} catch (error) {\n\t\ttoast.showError(error, 'Error', error.message);\n\t}\n};\n</script>\n\n<template>\n\t<div v-if=\"ssoStore.showSsoLoginButton\" :class=\"$style.ssoLogin\">\n\t\t<div :class=\"$style.divider\">\n\t\t\t<span>{{ i18n.baseText('sso.login.divider') }}</span>\n\t\t</div>\n\t\t<n8n-button\n\t\t\t@click=\"onSSOLogin\"\n\t\t\tsize=\"large\"\n\t\t\ttype=\"primary\"\n\t\t\toutline\n\t\t\t:label=\"i18n.baseText('sso.login.button')\"\n\t\t/>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.ssoLogin {\n\ttext-align: center;\n}\n\n.divider {\n\tposition: relative;\n\ttext-transform: uppercase;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 1px;\n\t\tbackground-color: var(--color-foreground-base);\n\t}\n\n\tspan {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t\tpadding: var(--spacing-xl) var(--spacing-l);\n\t\tbackground: var(--color-background-xlight);\n\t}\n}\n</style>\n","<template>\n\t<div :class=\"$style.container\">\n\t\t<div :class=\"$style.logoContainer\">\n\t\t\t<Logo />\n\t\t</div>\n\t\t<div v-if=\"subtitle\" :class=\"$style.textContainer\">\n\t\t\t<n8n-text size=\"large\">{{ subtitle }}</n8n-text>\n\t\t</div>\n\t\t<div :class=\"$style.formContainer\">\n\t\t\t<n8n-form-box\n\t\t\t\tv-bind=\"form\"\n\t\t\t\tdata-test-id=\"auth-form\"\n\t\t\t\t:buttonLoading=\"formLoading\"\n\t\t\t\t@secondaryClick=\"onSecondaryClick\"\n\t\t\t\t@submit=\"onSubmit\"\n\t\t\t\t@update=\"onUpdate\"\n\t\t\t>\n\t\t\t\t<SSOLogin v-if=\"withSso\" />\n\t\t\t</n8n-form-box>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\n\nimport Logo from '@/components/Logo.vue';\nimport SSOLogin from '@/components/SSOLogin.vue';\n\nexport default defineComponent({\n\tname: 'AuthView',\n\tcomponents: {\n\t\tLogo,\n\t\tSSOLogin,\n\t},\n\tprops: {\n\t\tform: {},\n\t\tformLoading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tsubtitle: {\n\t\t\ttype: String,\n\t\t},\n\t\twithSso: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tmethods: {\n\t\tonUpdate(e: { name: string; value: string }) {\n\t\t\tthis.$emit('update', e);\n\t\t},\n\t\tonSubmit(values: { [key: string]: string }) {\n\t\t\tthis.$emit('submit', values);\n\t\t},\n\t\tonSecondaryClick() {\n\t\t\tthis.$emit('secondaryClick');\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\nbody {\n\tbackground-color: var(--color-background-light);\n}\n\n.container {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n\tpadding-top: var(--spacing-2xl);\n\n\t> * {\n\t\tmargin-bottom: var(--spacing-l);\n\t\twidth: 352px;\n\t}\n}\n\n.logoContainer {\n\tdisplay: flex;\n\tjustify-content: center;\n}\n\n.textContainer {\n\ttext-align: center;\n}\n\n.formContainer {\n\tpadding-bottom: var(--spacing-xl);\n}\n</style>\n\n<style lang=\"scss\">\n.el-checkbox__label span {\n\tfont-size: var(--font-size-2xs) !important;\n}\n</style>\n"],"names":["_sfc_main$2","defineComponent","mapStores","useRootStore","useUIStore","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","i18n","useI18n","ssoStore","useSSOStore","toast","useToast","onSSOLogin","error","_sfc_main","Logo","SSOLogin","e","values","_resolveComponent","_createVNode","_component_Logo","_withCtx","_createCommentVNode","_createElementVNode","_component_n8n_form_box","_mergeProps","_createBlock","_component_SSOLogin"],"mappings":"+QAUA,MAAAA,EAAeC,EAAgB,CAC9B,SAAU,CACT,GAAGC,EAAUC,EAAcC,CAAU,EACrC,UAAmB,CAClB,OAAO,KAAK,UAAU,OACvB,EACA,UAAmB,CACX,OAAA,KAAK,SAAW,KAAK,QAAQ,IACrC,CACD,CACD,CAAC,gDAnBWC,EAAQC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,QAAQC,EAAY,EAAAC,EAAA,MAAA,CAAE,IAAIP,EAAA,SAAA,MAAAQ,EAAAR,EAAA,OAAA,GAAA,uHCI9C,MAAMS,EAAOC,IACPC,EAAWC,IACXC,EAAQC,IAERC,EAAa,SAAY,CAC1B,GAAA,CACH,OAAO,SAAS,KAAO,MAAMJ,EAAS,kBAAkB,QAChDK,EAAO,CACfH,EAAM,UAAUG,EAAO,QAASA,EAAM,OAAO,CAC9C,CAAA,wcCeDC,EAAetB,EAAgB,CAC9B,KAAM,WACN,WAAY,CACX,KAAAuB,EACA,SAAAC,CACD,EACA,MAAO,CACN,KAAM,CAAC,EACP,YAAa,CACZ,KAAM,QACN,QAAS,EACV,EACA,SAAU,CACT,KAAM,MACP,EACA,QAAS,CACR,KAAM,QACN,QAAS,EACV,CACD,EACA,QAAS,CACR,SAASC,EAAoC,CACvC,KAAA,MAAM,SAAUA,CAAC,CACvB,EACA,SAASC,EAAmC,CACtC,KAAA,MAAM,SAAUA,CAAM,CAC5B,EACA,kBAAmB,CAClB,KAAK,MAAM,gBAAgB,CAC5B,CACD,CACD,CAAC,yPA3DAC,EAmBM,cAAA,sBAlBL,MAEMd,EAAAR,EAAA,OAAA,SAAA,CAAA,EAAA,UADL,MAAQQ,EAAAR,EAAA,OAAA,aAAA,CAAA,EAAA,CAEEuB,EAAQC,CAAA,CAAA,EAAA,CAAA,EAAQxB,EAAA,UAAAM,IAAAC,EAAE,MAAO,CAAA,IAAA,EACnC,MAAAC,EAAgDR,EAAjC,OAAA,aAAA,CAAA,EAAA,WAAW,OAAQ,EAAA,CAAA,QAAAyB,EAAA,IAAA,2BAEnC,EAAA,CAAA,GAAMC,EAAK,GAAE,EAAA,EAAAC,EAAA,MAAA,CACZ,MAAAnB,EASeR,EATf,OAAA,aAAA,CAAA,EAAA,GAGE4B,EAA0BC,EAAA7B,EAAA,KAAA,CAC1B,eAAc,YACd,cAAQA,EAAA,YACR,iBAAQA,EAAQ,iBAAA,SAAAA,EAAA,gCAEjB,QAAAyB,EAAA,IAAA,CAAAzB,EAAA,SAAAM,EAAA,EAAAwB,EAAAC,EAAA,CAAA,IAAA,CAAA,CAAA,GAAAL,EAAA,GAAA,EAAA"}
@@ -1,2 +1,2 @@
1
- import{s as k}from"./pinia-IhuTtYiV.js";import{a as _}from"./NodeView-CdR2fi_x.js";import{a4 as s}from"./index-hMVAffQ3.js";import{G as z,D as C,y as b,ag as M,l as y,m as w,T as t,O as i,u as e,M as Z,Q as g,I as h}from"./vendor-2CfOYFi2.js";import{_ as v}from"./n8n-NE7NqrvB.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./uuid-McvpxQtQ.js";import"./useExecutionDebugging-WpRAbEhr.js";import"./lodash-es-s_m9YyW7.js";import"./file-saver-_vO_MOS2.js";import"./vue-json-pretty-HTL9TWGq.js";import"./RunDataAi-4m1wWDUf.js";import"./vue-markdown-render-Y8yswakT.js";import"./useCopyToClipboard-oKZllDWR.js";import"./copy-to-clipboard-6yTgHm0Q.js";import"./@fortawesome/vue-fontawesome-GVmvJ_gj.js";import"./@fortawesome/fontawesome-svg-core-xYGjsix9.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./flatted-jPn12Tq4.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./vue-i18n-eiX0lGiQ.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-gO4u4slB.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./@fortawesome/free-solid-svg-icons-KH5RR_hW.js";import"./@fortawesome/free-regular-svg-icons-ipmEYOws.js";import"./chart.js-JtqvIvkt.js";import"./workflowActivate-UB1_xc5U.js";import"./collaboration.store-lUjjktP5.js";const T=z({__name:"CanvasControls",setup(D){const a=_(),{zoomToFit:l,zoomIn:u,zoomOut:p,resetZoom:c}=a,{nodeViewScale:f,isDemo:m}=k(a),d=o=>{const r=o.metaKey||o.ctrlKey;(o.key==="="||o.key==="+")&&!r?u():(o.key==="_"||o.key==="-")&&!r?p():o.key==="0"&&!r?c():o.key==="1"&&!r&&l()};return C(()=>{document.addEventListener("keydown",d)}),b(()=>{document.removeEventListener("keydown",d)}),(o,r)=>{const n=M("n8n-icon-button");return y(),w("div",{class:h({[o.$style.zoomMenu]:!0,[o.$style.regularZoomMenu]:!e(m),[o.$style.demoZoomMenu]:e(m)})},[t(s,{label:o.$locale.baseText("nodeView.zoomToFit"),shortcut:{keys:["1"]}},{default:i(()=>[t(n,{onClick:e(l),type:"tertiary",size:"large",icon:"expand","data-test-id":"zoom-to-fit"},null,8,["onClick"])]),_:1},8,["label"]),t(s,{label:o.$locale.baseText("nodeView.zoomIn"),shortcut:{keys:["+"]}},{default:i(()=>[t(n,{onClick:e(u),type:"tertiary",size:"large",icon:"search-plus","data-test-id":"zoom-in-button"},null,8,["onClick"])]),_:1},8,["label"]),t(s,{label:o.$locale.baseText("nodeView.zoomOut"),shortcut:{keys:["-"]}},{default:i(()=>[t(n,{onClick:e(p),type:"tertiary",size:"large",icon:"search-minus","data-test-id":"zoom-out-button"},null,8,["onClick"])]),_:1},8,["label"]),t(s,{label:o.$locale.baseText("nodeView.resetZoom"),shortcut:{keys:["0"]}},{default:i(()=>[e(f)!==1&&!e(m)?(y(),Z(n,{key:0,onClick:e(c),type:"tertiary",size:"large",icon:"undo","data-test-id":"reset-zoom-button"},null,8,["onClick"])):g("",!0)]),_:1},8,["label"])],2)}}}),$="_zoomMenu_1ufow_5",V="_regularZoomMenu_1ufow_25",B="_demoZoomMenu_1ufow_30",K={zoomMenu:$,regularZoomMenu:V,demoZoomMenu:B},S={$style:K},wo=v(T,[["__cssModules",S]]);export{wo as default};
2
- //# sourceMappingURL=CanvasControls-kb3__O2G.js.map
1
+ import{s as k}from"./pinia-IhuTtYiV.js";import{a as _}from"./NodeView-LzPrYfwG.js";import{a4 as s}from"./index-sMRiWGJS.js";import{G as z,D as C,y as b,ag as M,l as y,m as w,T as t,O as i,u as e,M as Z,Q as g,I as h}from"./vendor-2CfOYFi2.js";import{_ as v}from"./n8n-NE7NqrvB.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./uuid-McvpxQtQ.js";import"./useExecutionDebugging-vYjc-e7j.js";import"./lodash-es-s_m9YyW7.js";import"./file-saver-_vO_MOS2.js";import"./vue-json-pretty-HTL9TWGq.js";import"./RunDataAi-ueFTZBht.js";import"./vue-markdown-render-Y8yswakT.js";import"./useCopyToClipboard-oKZllDWR.js";import"./copy-to-clipboard-6yTgHm0Q.js";import"./@fortawesome/vue-fontawesome-GVmvJ_gj.js";import"./@fortawesome/fontawesome-svg-core-xYGjsix9.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./flatted-jPn12Tq4.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./vue-i18n-eiX0lGiQ.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-gO4u4slB.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./@fortawesome/free-solid-svg-icons-KH5RR_hW.js";import"./@fortawesome/free-regular-svg-icons-ipmEYOws.js";import"./chart.js-JtqvIvkt.js";import"./workflowActivate-FonyQsS3.js";import"./collaboration.store-lUjjktP5.js";const T=z({__name:"CanvasControls",setup(D){const a=_(),{zoomToFit:l,zoomIn:u,zoomOut:p,resetZoom:c}=a,{nodeViewScale:f,isDemo:m}=k(a),d=o=>{const r=o.metaKey||o.ctrlKey;(o.key==="="||o.key==="+")&&!r?u():(o.key==="_"||o.key==="-")&&!r?p():o.key==="0"&&!r?c():o.key==="1"&&!r&&l()};return C(()=>{document.addEventListener("keydown",d)}),b(()=>{document.removeEventListener("keydown",d)}),(o,r)=>{const n=M("n8n-icon-button");return y(),w("div",{class:h({[o.$style.zoomMenu]:!0,[o.$style.regularZoomMenu]:!e(m),[o.$style.demoZoomMenu]:e(m)})},[t(s,{label:o.$locale.baseText("nodeView.zoomToFit"),shortcut:{keys:["1"]}},{default:i(()=>[t(n,{onClick:e(l),type:"tertiary",size:"large",icon:"expand","data-test-id":"zoom-to-fit"},null,8,["onClick"])]),_:1},8,["label"]),t(s,{label:o.$locale.baseText("nodeView.zoomIn"),shortcut:{keys:["+"]}},{default:i(()=>[t(n,{onClick:e(u),type:"tertiary",size:"large",icon:"search-plus","data-test-id":"zoom-in-button"},null,8,["onClick"])]),_:1},8,["label"]),t(s,{label:o.$locale.baseText("nodeView.zoomOut"),shortcut:{keys:["-"]}},{default:i(()=>[t(n,{onClick:e(p),type:"tertiary",size:"large",icon:"search-minus","data-test-id":"zoom-out-button"},null,8,["onClick"])]),_:1},8,["label"]),t(s,{label:o.$locale.baseText("nodeView.resetZoom"),shortcut:{keys:["0"]}},{default:i(()=>[e(f)!==1&&!e(m)?(y(),Z(n,{key:0,onClick:e(c),type:"tertiary",size:"large",icon:"undo","data-test-id":"reset-zoom-button"},null,8,["onClick"])):g("",!0)]),_:1},8,["label"])],2)}}}),$="_zoomMenu_1ufow_5",V="_regularZoomMenu_1ufow_25",B="_demoZoomMenu_1ufow_30",K={zoomMenu:$,regularZoomMenu:V,demoZoomMenu:B},S={$style:K},wo=v(T,[["__cssModules",S]]);export{wo as default};
2
+ //# sourceMappingURL=CanvasControls-6jR1_mnm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasControls-kb3__O2G.js","sources":["../../src/components/CanvasControls.vue"],"sourcesContent":["<template>\n\t<div\n\t\t:class=\"{\n\t\t\t[$style.zoomMenu]: true,\n\t\t\t[$style.regularZoomMenu]: !isDemo,\n\t\t\t[$style.demoZoomMenu]: isDemo,\n\t\t}\"\n\t>\n\t\t<keyboard-shortcut-tooltip\n\t\t\t:label=\"$locale.baseText('nodeView.zoomToFit')\"\n\t\t\t:shortcut=\"{ keys: ['1'] }\"\n\t\t>\n\t\t\t<n8n-icon-button\n\t\t\t\t@click=\"zoomToFit\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ticon=\"expand\"\n\t\t\t\tdata-test-id=\"zoom-to-fit\"\n\t\t\t/>\n\t\t</keyboard-shortcut-tooltip>\n\t\t<keyboard-shortcut-tooltip\n\t\t\t:label=\"$locale.baseText('nodeView.zoomIn')\"\n\t\t\t:shortcut=\"{ keys: ['+'] }\"\n\t\t>\n\t\t\t<n8n-icon-button\n\t\t\t\t@click=\"zoomIn\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ticon=\"search-plus\"\n\t\t\t\tdata-test-id=\"zoom-in-button\"\n\t\t\t/>\n\t\t</keyboard-shortcut-tooltip>\n\t\t<keyboard-shortcut-tooltip\n\t\t\t:label=\"$locale.baseText('nodeView.zoomOut')\"\n\t\t\t:shortcut=\"{ keys: ['-'] }\"\n\t\t>\n\t\t\t<n8n-icon-button\n\t\t\t\t@click=\"zoomOut\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ticon=\"search-minus\"\n\t\t\t\tdata-test-id=\"zoom-out-button\"\n\t\t\t/>\n\t\t</keyboard-shortcut-tooltip>\n\t\t<keyboard-shortcut-tooltip\n\t\t\t:label=\"$locale.baseText('nodeView.resetZoom')\"\n\t\t\t:shortcut=\"{ keys: ['0'] }\"\n\t\t>\n\t\t\t<n8n-icon-button\n\t\t\t\tv-if=\"nodeViewScale !== 1 && !isDemo\"\n\t\t\t\t@click=\"resetZoom\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ticon=\"undo\"\n\t\t\t\tdata-test-id=\"reset-zoom-button\"\n\t\t\t/>\n\t\t</keyboard-shortcut-tooltip>\n\t</div>\n</template>\n<script lang=\"ts\" setup>\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { useCanvasStore } from '@/stores/canvas.store';\nimport KeyboardShortcutTooltip from '@/components/KeyboardShortcutTooltip.vue';\n\nconst canvasStore = useCanvasStore();\nconst { zoomToFit, zoomIn, zoomOut, resetZoom } = canvasStore;\nconst { nodeViewScale, isDemo } = storeToRefs(canvasStore);\n\nconst keyDown = (e: KeyboardEvent) => {\n\tconst isCtrlKeyPressed = e.metaKey || e.ctrlKey;\n\tif ((e.key === '=' || e.key === '+') && !isCtrlKeyPressed) {\n\t\tzoomIn();\n\t} else if ((e.key === '_' || e.key === '-') && !isCtrlKeyPressed) {\n\t\tzoomOut();\n\t} else if (e.key === '0' && !isCtrlKeyPressed) {\n\t\tresetZoom();\n\t} else if (e.key === '1' && !isCtrlKeyPressed) {\n\t\tzoomToFit();\n\t}\n};\n\nonBeforeMount(() => {\n\tdocument.addEventListener('keydown', keyDown);\n});\n\nonBeforeUnmount(() => {\n\tdocument.removeEventListener('keydown', keyDown);\n});\n</script>\n\n<style lang=\"scss\" module>\n.zoomMenu {\n\tposition: absolute;\n\twidth: 210px;\n\tbottom: var(--spacing-2xl);\n\tleft: 35px;\n\tline-height: 25px;\n\tcolor: #444;\n\tpadding-right: 5px;\n\n\tbutton {\n\t\tborder: var(--border-base);\n\t}\n\n\t> * {\n\t\t+ * {\n\t\t\tmargin-left: var(--spacing-3xs);\n\t\t}\n\n\t\t&:hover {\n\t\t\ttransform: scale(1.1);\n\t\t}\n\t}\n}\n\n.regularZoomMenu {\n\t@media (max-width: $breakpoint-2xs) {\n\t\tbottom: 90px;\n\t}\n}\n\n.demoZoomMenu {\n\tleft: 10px;\n\tbottom: 10px;\n}\n</style>\n"],"names":["canvasStore","useCanvasStore","zoomToFit","zoomIn","zoomOut","resetZoom","nodeViewScale","isDemo","storeToRefs","keyDown","e","isCtrlKeyPressed","onBeforeMount","onBeforeUnmount"],"mappings":"0tDAiEA,MAAMA,EAAcC,IACd,CAAE,UAAAC,EAAW,OAAAC,EAAQ,QAAAC,EAAS,UAAAC,GAAcL,EAC5C,CAAE,cAAAM,EAAe,OAAAC,CAAO,EAAIC,EAAYR,CAAW,EAEnDS,EAAWC,GAAqB,CAC/B,MAAAC,EAAmBD,EAAE,SAAWA,EAAE,SACnCA,EAAE,MAAQ,KAAOA,EAAE,MAAQ,MAAQ,CAACC,EACjCR,KACIO,EAAE,MAAQ,KAAOA,EAAE,MAAQ,MAAQ,CAACC,EACvCP,IACEM,EAAE,MAAQ,KAAO,CAACC,EAClBN,IACAK,EAAE,MAAQ,KAAO,CAACC,GAClBT,GACX,EAGD,OAAAU,EAAc,IAAM,CACV,SAAA,iBAAiB,UAAWH,CAAO,CAAA,CAC5C,EAEDI,EAAgB,IAAM,CACZ,SAAA,oBAAoB,UAAWJ,CAAO,CAAA,CAC/C"}
1
+ {"version":3,"file":"CanvasControls-6jR1_mnm.js","sources":["../../src/components/CanvasControls.vue"],"sourcesContent":["<template>\n\t<div\n\t\t:class=\"{\n\t\t\t[$style.zoomMenu]: true,\n\t\t\t[$style.regularZoomMenu]: !isDemo,\n\t\t\t[$style.demoZoomMenu]: isDemo,\n\t\t}\"\n\t>\n\t\t<keyboard-shortcut-tooltip\n\t\t\t:label=\"$locale.baseText('nodeView.zoomToFit')\"\n\t\t\t:shortcut=\"{ keys: ['1'] }\"\n\t\t>\n\t\t\t<n8n-icon-button\n\t\t\t\t@click=\"zoomToFit\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ticon=\"expand\"\n\t\t\t\tdata-test-id=\"zoom-to-fit\"\n\t\t\t/>\n\t\t</keyboard-shortcut-tooltip>\n\t\t<keyboard-shortcut-tooltip\n\t\t\t:label=\"$locale.baseText('nodeView.zoomIn')\"\n\t\t\t:shortcut=\"{ keys: ['+'] }\"\n\t\t>\n\t\t\t<n8n-icon-button\n\t\t\t\t@click=\"zoomIn\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ticon=\"search-plus\"\n\t\t\t\tdata-test-id=\"zoom-in-button\"\n\t\t\t/>\n\t\t</keyboard-shortcut-tooltip>\n\t\t<keyboard-shortcut-tooltip\n\t\t\t:label=\"$locale.baseText('nodeView.zoomOut')\"\n\t\t\t:shortcut=\"{ keys: ['-'] }\"\n\t\t>\n\t\t\t<n8n-icon-button\n\t\t\t\t@click=\"zoomOut\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ticon=\"search-minus\"\n\t\t\t\tdata-test-id=\"zoom-out-button\"\n\t\t\t/>\n\t\t</keyboard-shortcut-tooltip>\n\t\t<keyboard-shortcut-tooltip\n\t\t\t:label=\"$locale.baseText('nodeView.resetZoom')\"\n\t\t\t:shortcut=\"{ keys: ['0'] }\"\n\t\t>\n\t\t\t<n8n-icon-button\n\t\t\t\tv-if=\"nodeViewScale !== 1 && !isDemo\"\n\t\t\t\t@click=\"resetZoom\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ticon=\"undo\"\n\t\t\t\tdata-test-id=\"reset-zoom-button\"\n\t\t\t/>\n\t\t</keyboard-shortcut-tooltip>\n\t</div>\n</template>\n<script lang=\"ts\" setup>\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { useCanvasStore } from '@/stores/canvas.store';\nimport KeyboardShortcutTooltip from '@/components/KeyboardShortcutTooltip.vue';\n\nconst canvasStore = useCanvasStore();\nconst { zoomToFit, zoomIn, zoomOut, resetZoom } = canvasStore;\nconst { nodeViewScale, isDemo } = storeToRefs(canvasStore);\n\nconst keyDown = (e: KeyboardEvent) => {\n\tconst isCtrlKeyPressed = e.metaKey || e.ctrlKey;\n\tif ((e.key === '=' || e.key === '+') && !isCtrlKeyPressed) {\n\t\tzoomIn();\n\t} else if ((e.key === '_' || e.key === '-') && !isCtrlKeyPressed) {\n\t\tzoomOut();\n\t} else if (e.key === '0' && !isCtrlKeyPressed) {\n\t\tresetZoom();\n\t} else if (e.key === '1' && !isCtrlKeyPressed) {\n\t\tzoomToFit();\n\t}\n};\n\nonBeforeMount(() => {\n\tdocument.addEventListener('keydown', keyDown);\n});\n\nonBeforeUnmount(() => {\n\tdocument.removeEventListener('keydown', keyDown);\n});\n</script>\n\n<style lang=\"scss\" module>\n.zoomMenu {\n\tposition: absolute;\n\twidth: 210px;\n\tbottom: var(--spacing-2xl);\n\tleft: 35px;\n\tline-height: 25px;\n\tcolor: #444;\n\tpadding-right: 5px;\n\n\tbutton {\n\t\tborder: var(--border-base);\n\t}\n\n\t> * {\n\t\t+ * {\n\t\t\tmargin-left: var(--spacing-3xs);\n\t\t}\n\n\t\t&:hover {\n\t\t\ttransform: scale(1.1);\n\t\t}\n\t}\n}\n\n.regularZoomMenu {\n\t@media (max-width: $breakpoint-2xs) {\n\t\tbottom: 90px;\n\t}\n}\n\n.demoZoomMenu {\n\tleft: 10px;\n\tbottom: 10px;\n}\n</style>\n"],"names":["canvasStore","useCanvasStore","zoomToFit","zoomIn","zoomOut","resetZoom","nodeViewScale","isDemo","storeToRefs","keyDown","e","isCtrlKeyPressed","onBeforeMount","onBeforeUnmount"],"mappings":"0tDAiEA,MAAMA,EAAcC,IACd,CAAE,UAAAC,EAAW,OAAAC,EAAQ,QAAAC,EAAS,UAAAC,GAAcL,EAC5C,CAAE,cAAAM,EAAe,OAAAC,CAAO,EAAIC,EAAYR,CAAW,EAEnDS,EAAWC,GAAqB,CAC/B,MAAAC,EAAmBD,EAAE,SAAWA,EAAE,SACnCA,EAAE,MAAQ,KAAOA,EAAE,MAAQ,MAAQ,CAACC,EACjCR,KACIO,EAAE,MAAQ,KAAOA,EAAE,MAAQ,MAAQ,CAACC,EACvCP,IACEM,EAAE,MAAQ,KAAO,CAACC,EAClBN,IACAK,EAAE,MAAQ,KAAO,CAACC,GAClBT,GACX,EAGD,OAAAU,EAAc,IAAM,CACV,SAAA,iBAAiB,UAAWH,CAAO,CAAA,CAC5C,EAEDI,EAAgB,IAAM,CACZ,SAAA,oBAAoB,UAAWJ,CAAO,CAAA,CAC/C"}
@@ -1,2 +1,2 @@
1
- import{A as i}from"./AuthView-pnWQAK0S.js";import{u as n,p,dc as l,B as o,_ as u}from"./n8n-NE7NqrvB.js";import{m as h}from"./pinia-IhuTtYiV.js";import{G as m,ag as d,l as c,M as w,Q as f}from"./vendor-2CfOYFi2.js";import"./index-hMVAffQ3.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./lodash-es-s_m9YyW7.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./esprima-next-ulPLCZ1Z.js";import"./@vueuse/core-viEZCtbZ.js";import"./@fortawesome/vue-fontawesome-GVmvJ_gj.js";import"./@fortawesome/fontawesome-svg-core-xYGjsix9.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-gO4u4slB.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./@fortawesome/free-solid-svg-icons-KH5RR_hW.js";import"./@fortawesome/free-regular-svg-icons-ipmEYOws.js";import"./chart.js-JtqvIvkt.js";import"./flatted-jPn12Tq4.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./vue-i18n-eiX0lGiQ.js";const g=m({name:"ChangePasswordView",components:{AuthView:i},setup(){return{...n()}},data(){return{password:"",loading:!1,config:null}},computed:{...h(p)},async mounted(){const e={title:this.$locale.baseText("auth.changePassword"),buttonText:this.$locale.baseText("auth.changePassword"),redirectText:this.$locale.baseText("auth.signin"),redirectLink:"/signin",inputs:[{name:"password",properties:{label:this.$locale.baseText("auth.newPassword"),type:"password",required:!0,validationRules:[{name:"DEFAULT_PASSWORD_RULES"}],infoText:this.$locale.baseText("auth.defaultPasswordRequirements"),autocomplete:"new-password",capitalize:!0}},{name:"password2",properties:{label:this.$locale.baseText("auth.changePassword.reenterNewPassword"),type:"password",required:!0,validators:{TWO_PASSWORDS_MATCH:{validate:this.passwordsMatch}},validationRules:[{name:"TWO_PASSWORDS_MATCH"}],autocomplete:"new-password",capitalize:!0}}]},t=this.getResetToken();this.getMfaEnabled()&&e.inputs.push({name:"mfaToken",initialValue:"",properties:{required:!0,label:this.$locale.baseText("mfa.code.input.label"),placeholder:this.$locale.baseText("mfa.code.input.placeholder"),maxlength:l,capitalize:!0,validateOnBlur:!0}}),this.config=e;try{if(!t)throw new Error(this.$locale.baseText("auth.changePassword.missingTokenError"));await this.usersStore.validatePasswordToken({token:t})}catch(s){this.showError(s,this.$locale.baseText("auth.changePassword.tokenValidationError")),this.$router.replace({name:o.SIGNIN})}},methods:{passwordsMatch(e){return typeof e!="string"?!1:e!==this.password?{messageKey:"auth.changePassword.passwordsMustMatchError"}:!1},onInput(e){e.name==="password"&&(this.password=e.value)},getResetToken(){return!this.$route.query.token||typeof this.$route.query.token!="string"?null:this.$route.query.token},getMfaEnabled(){return this.$route.query.mfaEnabled?this.$route.query.mfaEnabled==="true":null},async onSubmit(e){try{this.loading=!0;const t=this.getResetToken();if(t){const a={token:t,password:this.password,...e.mfaToken&&{mfaToken:e.mfaToken}};await this.usersStore.changePassword(a),this.showMessage({type:"success",title:this.$locale.baseText("auth.changePassword.passwordUpdated"),message:this.$locale.baseText("auth.changePassword.passwordUpdatedMessage")}),await this.$router.push({name:o.SIGNIN})}else this.showError(new Error(this.$locale.baseText("auth.validation.missingParameters")),this.$locale.baseText("auth.changePassword.error"))}catch(t){this.showError(t,this.$locale.baseText("auth.changePassword.error"))}this.loading=!1}}});function T(e,t,a,s,b,$){const r=d("AuthView");return e.config?(c(),w(r,{key:0,form:e.config,formLoading:e.loading,onSubmit:e.onSubmit,onUpdate:e.onInput},null,8,["form","formLoading","onSubmit","onUpdate"])):f("",!0)}const Z=u(g,[["render",T]]);export{Z as default};
2
- //# sourceMappingURL=ChangePasswordView-w8ZDdsHs.js.map
1
+ import{A as i}from"./AuthView-KzKyZSHz.js";import{u as n,p,dc as l,B as o,_ as u}from"./n8n-NE7NqrvB.js";import{m as h}from"./pinia-IhuTtYiV.js";import{G as m,ag as d,l as c,M as w,Q as f}from"./vendor-2CfOYFi2.js";import"./index-sMRiWGJS.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./lodash-es-s_m9YyW7.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./esprima-next-ulPLCZ1Z.js";import"./@vueuse/core-viEZCtbZ.js";import"./@fortawesome/vue-fontawesome-GVmvJ_gj.js";import"./@fortawesome/fontawesome-svg-core-xYGjsix9.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-gO4u4slB.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./@fortawesome/free-solid-svg-icons-KH5RR_hW.js";import"./@fortawesome/free-regular-svg-icons-ipmEYOws.js";import"./chart.js-JtqvIvkt.js";import"./flatted-jPn12Tq4.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./vue-i18n-eiX0lGiQ.js";const g=m({name:"ChangePasswordView",components:{AuthView:i},setup(){return{...n()}},data(){return{password:"",loading:!1,config:null}},computed:{...h(p)},async mounted(){const e={title:this.$locale.baseText("auth.changePassword"),buttonText:this.$locale.baseText("auth.changePassword"),redirectText:this.$locale.baseText("auth.signin"),redirectLink:"/signin",inputs:[{name:"password",properties:{label:this.$locale.baseText("auth.newPassword"),type:"password",required:!0,validationRules:[{name:"DEFAULT_PASSWORD_RULES"}],infoText:this.$locale.baseText("auth.defaultPasswordRequirements"),autocomplete:"new-password",capitalize:!0}},{name:"password2",properties:{label:this.$locale.baseText("auth.changePassword.reenterNewPassword"),type:"password",required:!0,validators:{TWO_PASSWORDS_MATCH:{validate:this.passwordsMatch}},validationRules:[{name:"TWO_PASSWORDS_MATCH"}],autocomplete:"new-password",capitalize:!0}}]},t=this.getResetToken();this.getMfaEnabled()&&e.inputs.push({name:"mfaToken",initialValue:"",properties:{required:!0,label:this.$locale.baseText("mfa.code.input.label"),placeholder:this.$locale.baseText("mfa.code.input.placeholder"),maxlength:l,capitalize:!0,validateOnBlur:!0}}),this.config=e;try{if(!t)throw new Error(this.$locale.baseText("auth.changePassword.missingTokenError"));await this.usersStore.validatePasswordToken({token:t})}catch(s){this.showError(s,this.$locale.baseText("auth.changePassword.tokenValidationError")),this.$router.replace({name:o.SIGNIN})}},methods:{passwordsMatch(e){return typeof e!="string"?!1:e!==this.password?{messageKey:"auth.changePassword.passwordsMustMatchError"}:!1},onInput(e){e.name==="password"&&(this.password=e.value)},getResetToken(){return!this.$route.query.token||typeof this.$route.query.token!="string"?null:this.$route.query.token},getMfaEnabled(){return this.$route.query.mfaEnabled?this.$route.query.mfaEnabled==="true":null},async onSubmit(e){try{this.loading=!0;const t=this.getResetToken();if(t){const a={token:t,password:this.password,...e.mfaToken&&{mfaToken:e.mfaToken}};await this.usersStore.changePassword(a),this.showMessage({type:"success",title:this.$locale.baseText("auth.changePassword.passwordUpdated"),message:this.$locale.baseText("auth.changePassword.passwordUpdatedMessage")}),await this.$router.push({name:o.SIGNIN})}else this.showError(new Error(this.$locale.baseText("auth.validation.missingParameters")),this.$locale.baseText("auth.changePassword.error"))}catch(t){this.showError(t,this.$locale.baseText("auth.changePassword.error"))}this.loading=!1}}});function T(e,t,a,s,b,$){const r=d("AuthView");return e.config?(c(),w(r,{key:0,form:e.config,formLoading:e.loading,onSubmit:e.onSubmit,onUpdate:e.onInput},null,8,["form","formLoading","onSubmit","onUpdate"])):f("",!0)}const Z=u(g,[["render",T]]);export{Z as default};
2
+ //# sourceMappingURL=ChangePasswordView-TW8EQPS0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChangePasswordView-w8ZDdsHs.js","sources":["../../src/views/ChangePasswordView.vue"],"sourcesContent":["<template>\n\t<AuthView\n\t\tv-if=\"config\"\n\t\t:form=\"config\"\n\t\t:formLoading=\"loading\"\n\t\t@submit=\"onSubmit\"\n\t\t@update=\"onInput\"\n\t/>\n</template>\n\n<script lang=\"ts\">\nimport AuthView from '@/views/AuthView.vue';\nimport { useToast } from '@/composables/useToast';\n\nimport { defineComponent } from 'vue';\nimport type { IFormBoxConfig } from '@/Interface';\nimport { MFA_AUTHENTICATION_TOKEN_INPUT_MAX_LENGTH, VIEWS } from '@/constants';\nimport { mapStores } from 'pinia';\nimport { useUsersStore } from '@/stores/users.store';\n\nexport default defineComponent({\n\tname: 'ChangePasswordView',\n\tcomponents: {\n\t\tAuthView,\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useToast(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tpassword: '',\n\t\t\tloading: false,\n\t\t\tconfig: null as null | IFormBoxConfig,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useUsersStore),\n\t},\n\tasync mounted() {\n\t\tconst form: IFormBoxConfig = {\n\t\t\ttitle: this.$locale.baseText('auth.changePassword'),\n\t\t\tbuttonText: this.$locale.baseText('auth.changePassword'),\n\t\t\tredirectText: this.$locale.baseText('auth.signin'),\n\t\t\tredirectLink: '/signin',\n\t\t\tinputs: [\n\t\t\t\t{\n\t\t\t\t\tname: 'password',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tlabel: this.$locale.baseText('auth.newPassword'),\n\t\t\t\t\t\ttype: 'password',\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tvalidationRules: [{ name: 'DEFAULT_PASSWORD_RULES' }],\n\t\t\t\t\t\tinfoText: this.$locale.baseText('auth.defaultPasswordRequirements'),\n\t\t\t\t\t\tautocomplete: 'new-password',\n\t\t\t\t\t\tcapitalize: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'password2',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tlabel: this.$locale.baseText('auth.changePassword.reenterNewPassword'),\n\t\t\t\t\t\ttype: 'password',\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tvalidators: {\n\t\t\t\t\t\t\tTWO_PASSWORDS_MATCH: {\n\t\t\t\t\t\t\t\tvalidate: this.passwordsMatch,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalidationRules: [{ name: 'TWO_PASSWORDS_MATCH' }],\n\t\t\t\t\t\tautocomplete: 'new-password',\n\t\t\t\t\t\tcapitalize: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\tconst token = this.getResetToken();\n\t\tconst mfaEnabled = this.getMfaEnabled();\n\n\t\tif (mfaEnabled) {\n\t\t\tform.inputs.push({\n\t\t\t\tname: 'mfaToken',\n\t\t\t\tinitialValue: '',\n\t\t\t\tproperties: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tlabel: this.$locale.baseText('mfa.code.input.label'),\n\t\t\t\t\tplaceholder: this.$locale.baseText('mfa.code.input.placeholder'),\n\t\t\t\t\tmaxlength: MFA_AUTHENTICATION_TOKEN_INPUT_MAX_LENGTH,\n\t\t\t\t\tcapitalize: true,\n\t\t\t\t\tvalidateOnBlur: true,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.config = form;\n\n\t\ttry {\n\t\t\tif (!token) {\n\t\t\t\tthrow new Error(this.$locale.baseText('auth.changePassword.missingTokenError'));\n\t\t\t}\n\n\t\t\tawait this.usersStore.validatePasswordToken({ token });\n\t\t} catch (e) {\n\t\t\tthis.showError(e, this.$locale.baseText('auth.changePassword.tokenValidationError'));\n\t\t\tvoid this.$router.replace({ name: VIEWS.SIGNIN });\n\t\t}\n\t},\n\tmethods: {\n\t\tpasswordsMatch(value: string | number | boolean | null | undefined) {\n\t\t\tif (typeof value !== 'string') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (value !== this.password) {\n\t\t\t\treturn {\n\t\t\t\t\tmessageKey: 'auth.changePassword.passwordsMustMatchError',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\tonInput(e: { name: string; value: string }) {\n\t\t\tif (e.name === 'password') {\n\t\t\t\tthis.password = e.value;\n\t\t\t}\n\t\t},\n\t\tgetResetToken() {\n\t\t\treturn !this.$route.query.token || typeof this.$route.query.token !== 'string'\n\t\t\t\t? null\n\t\t\t\t: this.$route.query.token;\n\t\t},\n\t\tgetMfaEnabled() {\n\t\t\tif (!this.$route.query.mfaEnabled) return null;\n\t\t\treturn this.$route.query.mfaEnabled === 'true' ? true : false;\n\t\t},\n\t\tasync onSubmit(values: { mfaToken: string }) {\n\t\t\ttry {\n\t\t\t\tthis.loading = true;\n\t\t\t\tconst token = this.getResetToken();\n\n\t\t\t\tif (token) {\n\t\t\t\t\tconst changePasswordParameters = {\n\t\t\t\t\t\ttoken,\n\t\t\t\t\t\tpassword: this.password,\n\t\t\t\t\t\t...(values.mfaToken && { mfaToken: values.mfaToken }),\n\t\t\t\t\t};\n\n\t\t\t\t\tawait this.usersStore.changePassword(changePasswordParameters);\n\n\t\t\t\t\tthis.showMessage({\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\ttitle: this.$locale.baseText('auth.changePassword.passwordUpdated'),\n\t\t\t\t\t\tmessage: this.$locale.baseText('auth.changePassword.passwordUpdatedMessage'),\n\t\t\t\t\t});\n\n\t\t\t\t\tawait this.$router.push({ name: VIEWS.SIGNIN });\n\t\t\t\t} else {\n\t\t\t\t\tthis.showError(\n\t\t\t\t\t\tnew Error(this.$locale.baseText('auth.validation.missingParameters')),\n\t\t\t\t\t\tthis.$locale.baseText('auth.changePassword.error'),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('auth.changePassword.error'));\n\t\t\t}\n\t\t\tthis.loading = false;\n\t\t},\n\t},\n});\n</script>\n"],"names":["_sfc_main","defineComponent","AuthView","useToast","mapStores","useUsersStore","form","token","MFA_AUTHENTICATION_TOKEN_INPUT_MAX_LENGTH","e","VIEWS","value","values","changePasswordParameters","error","_component_AuthView","_resolveComponent","_createBlock","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"ChangePasswordView-TW8EQPS0.js","sources":["../../src/views/ChangePasswordView.vue"],"sourcesContent":["<template>\n\t<AuthView\n\t\tv-if=\"config\"\n\t\t:form=\"config\"\n\t\t:formLoading=\"loading\"\n\t\t@submit=\"onSubmit\"\n\t\t@update=\"onInput\"\n\t/>\n</template>\n\n<script lang=\"ts\">\nimport AuthView from '@/views/AuthView.vue';\nimport { useToast } from '@/composables/useToast';\n\nimport { defineComponent } from 'vue';\nimport type { IFormBoxConfig } from '@/Interface';\nimport { MFA_AUTHENTICATION_TOKEN_INPUT_MAX_LENGTH, VIEWS } from '@/constants';\nimport { mapStores } from 'pinia';\nimport { useUsersStore } from '@/stores/users.store';\n\nexport default defineComponent({\n\tname: 'ChangePasswordView',\n\tcomponents: {\n\t\tAuthView,\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useToast(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tpassword: '',\n\t\t\tloading: false,\n\t\t\tconfig: null as null | IFormBoxConfig,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useUsersStore),\n\t},\n\tasync mounted() {\n\t\tconst form: IFormBoxConfig = {\n\t\t\ttitle: this.$locale.baseText('auth.changePassword'),\n\t\t\tbuttonText: this.$locale.baseText('auth.changePassword'),\n\t\t\tredirectText: this.$locale.baseText('auth.signin'),\n\t\t\tredirectLink: '/signin',\n\t\t\tinputs: [\n\t\t\t\t{\n\t\t\t\t\tname: 'password',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tlabel: this.$locale.baseText('auth.newPassword'),\n\t\t\t\t\t\ttype: 'password',\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tvalidationRules: [{ name: 'DEFAULT_PASSWORD_RULES' }],\n\t\t\t\t\t\tinfoText: this.$locale.baseText('auth.defaultPasswordRequirements'),\n\t\t\t\t\t\tautocomplete: 'new-password',\n\t\t\t\t\t\tcapitalize: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'password2',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tlabel: this.$locale.baseText('auth.changePassword.reenterNewPassword'),\n\t\t\t\t\t\ttype: 'password',\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tvalidators: {\n\t\t\t\t\t\t\tTWO_PASSWORDS_MATCH: {\n\t\t\t\t\t\t\t\tvalidate: this.passwordsMatch,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalidationRules: [{ name: 'TWO_PASSWORDS_MATCH' }],\n\t\t\t\t\t\tautocomplete: 'new-password',\n\t\t\t\t\t\tcapitalize: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\n\t\tconst token = this.getResetToken();\n\t\tconst mfaEnabled = this.getMfaEnabled();\n\n\t\tif (mfaEnabled) {\n\t\t\tform.inputs.push({\n\t\t\t\tname: 'mfaToken',\n\t\t\t\tinitialValue: '',\n\t\t\t\tproperties: {\n\t\t\t\t\trequired: true,\n\t\t\t\t\tlabel: this.$locale.baseText('mfa.code.input.label'),\n\t\t\t\t\tplaceholder: this.$locale.baseText('mfa.code.input.placeholder'),\n\t\t\t\t\tmaxlength: MFA_AUTHENTICATION_TOKEN_INPUT_MAX_LENGTH,\n\t\t\t\t\tcapitalize: true,\n\t\t\t\t\tvalidateOnBlur: true,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis.config = form;\n\n\t\ttry {\n\t\t\tif (!token) {\n\t\t\t\tthrow new Error(this.$locale.baseText('auth.changePassword.missingTokenError'));\n\t\t\t}\n\n\t\t\tawait this.usersStore.validatePasswordToken({ token });\n\t\t} catch (e) {\n\t\t\tthis.showError(e, this.$locale.baseText('auth.changePassword.tokenValidationError'));\n\t\t\tvoid this.$router.replace({ name: VIEWS.SIGNIN });\n\t\t}\n\t},\n\tmethods: {\n\t\tpasswordsMatch(value: string | number | boolean | null | undefined) {\n\t\t\tif (typeof value !== 'string') {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (value !== this.password) {\n\t\t\t\treturn {\n\t\t\t\t\tmessageKey: 'auth.changePassword.passwordsMustMatchError',\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\tonInput(e: { name: string; value: string }) {\n\t\t\tif (e.name === 'password') {\n\t\t\t\tthis.password = e.value;\n\t\t\t}\n\t\t},\n\t\tgetResetToken() {\n\t\t\treturn !this.$route.query.token || typeof this.$route.query.token !== 'string'\n\t\t\t\t? null\n\t\t\t\t: this.$route.query.token;\n\t\t},\n\t\tgetMfaEnabled() {\n\t\t\tif (!this.$route.query.mfaEnabled) return null;\n\t\t\treturn this.$route.query.mfaEnabled === 'true' ? true : false;\n\t\t},\n\t\tasync onSubmit(values: { mfaToken: string }) {\n\t\t\ttry {\n\t\t\t\tthis.loading = true;\n\t\t\t\tconst token = this.getResetToken();\n\n\t\t\t\tif (token) {\n\t\t\t\t\tconst changePasswordParameters = {\n\t\t\t\t\t\ttoken,\n\t\t\t\t\t\tpassword: this.password,\n\t\t\t\t\t\t...(values.mfaToken && { mfaToken: values.mfaToken }),\n\t\t\t\t\t};\n\n\t\t\t\t\tawait this.usersStore.changePassword(changePasswordParameters);\n\n\t\t\t\t\tthis.showMessage({\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\ttitle: this.$locale.baseText('auth.changePassword.passwordUpdated'),\n\t\t\t\t\t\tmessage: this.$locale.baseText('auth.changePassword.passwordUpdatedMessage'),\n\t\t\t\t\t});\n\n\t\t\t\t\tawait this.$router.push({ name: VIEWS.SIGNIN });\n\t\t\t\t} else {\n\t\t\t\t\tthis.showError(\n\t\t\t\t\t\tnew Error(this.$locale.baseText('auth.validation.missingParameters')),\n\t\t\t\t\t\tthis.$locale.baseText('auth.changePassword.error'),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('auth.changePassword.error'));\n\t\t\t}\n\t\t\tthis.loading = false;\n\t\t},\n\t},\n});\n</script>\n"],"names":["_sfc_main","defineComponent","AuthView","useToast","mapStores","useUsersStore","form","token","MFA_AUTHENTICATION_TOKEN_INPUT_MAX_LENGTH","e","VIEWS","value","values","changePasswordParameters","error","_component_AuthView","_resolveComponent","_createBlock","_ctx"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{R as B}from"./ResourcesListLayout-XUIQQpyB.js";import{z as v,p as E,l as A,R as k,L as z,C as F,aa as V,_ as w,Q as O,bq as P}from"./n8n-NE7NqrvB.js";import{a as R,aR as q,aS as H,a7 as W,b as Y}from"./index-hMVAffQ3.js";import{m as L}from"./pinia-IhuTtYiV.js";import{G as N,ag as s,l as d,M as y,O as a,I as c,T as n,S as m,R as l,p,Q as S,a2 as Q,m as D,V as $,U as g,a7 as j,F as G}from"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./@fortawesome/vue-fontawesome-GVmvJ_gj.js";import"./@fortawesome/fontawesome-svg-core-xYGjsix9.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./flatted-jPn12Tq4.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./vue-i18n-eiX0lGiQ.js";import"./uuid-McvpxQtQ.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-gO4u4slB.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./@fortawesome/free-solid-svg-icons-KH5RR_hW.js";import"./@fortawesome/free-regular-svg-icons-ipmEYOws.js";import"./chart.js-JtqvIvkt.js";const u={OPEN:"open",DELETE:"delete"},K=N({data(){return{EnterpriseEditionFeature:v}},setup(){return{...R()}},components:{TimeAgo:q,CredentialIcon:H},props:{data:{type:Object,required:!0,default:()=>({id:"",createdAt:"",updatedAt:"",type:"",name:"",nodesAccess:[],sharedWith:[],ownedBy:{}})},readonly:{type:Boolean,default:!1}},computed:{...L(k,A,E),currentUser(){return this.usersStore.currentUser},credentialType(){return this.credentialsStore.getCredentialTypeByName(this.data.type)},credentialPermissions(){return this.currentUser?z(this.currentUser,this.data):null},actions(){return this.credentialPermissions?[{label:this.$locale.baseText("credentials.item.open"),value:u.OPEN}].concat(this.credentialPermissions.delete?[{label:this.$locale.baseText("credentials.item.delete"),value:u.DELETE}]:[]):[]},formattedCreatedAtDate(){const e=new Date().getFullYear();return F(this.data.createdAt,`d mmmm${this.data.createdAt.startsWith(e)?"":", yyyy"}`)}},methods:{async onClick(e){var t;this.$refs.cardActions===e.target||(t=this.$refs.cardActions)!=null&&t.contains(e.target)||this.uiStore.openExistingCredential(this.data.id)},async onAction(e){e===u.OPEN?await this.onClick(new Event("click")):e===u.DELETE&&await this.confirm(this.$locale.baseText("credentialEdit.credentialEdit.confirmMessage.deleteCredential.message",{interpolate:{savedCredentialName:this.data.name}}),this.$locale.baseText("credentialEdit.credentialEdit.confirmMessage.deleteCredential.headline"),{confirmButtonText:this.$locale.baseText("credentialEdit.credentialEdit.confirmMessage.deleteCredential.confirmButtonText")})===V&&await this.credentialsStore.deleteCredential({id:this.data.id})}}}),J="_cardLink_1s1ie_5",X="_cardHeading_1s1ie_15",Z="_cardDescription_1s1ie_20",x="_cardActions_1s1ie_27",ee={cardLink:J,cardHeading:X,cardDescription:Z,cardActions:x},te={key:0};function se(e,t,r,f,U,I){const h=s("credential-icon"),_=s("n8n-heading"),C=s("time-ago"),b=s("n8n-text"),T=s("n8n-badge"),i=s("enterprise-edition"),o=s("n8n-action-toggle"),M=s("n8n-card");return d(),y(M,{class:c(e.$style.cardLink),onClick:e.onClick},{prepend:a(()=>[n(h,{"credential-type-name":e.credentialType?e.credentialType.name:""},null,8,["credential-type-name"])]),header:a(()=>[n(_,{tag:"h2",bold:"",class:c(e.$style.cardHeading)},{default:a(()=>[m(l(e.data.name),1)]),_:1},8,["class"])]),append:a(()=>[p("div",{class:c(e.$style.cardActions),ref:"cardActions"},[n(i,{features:[e.EnterpriseEditionFeature.Sharing]},{default:a(()=>[e.credentialPermissions.isOwner?(d(),y(T,{key:0,class:"mr-xs",theme:"tertiary",bold:""},{default:a(()=>[m(l(e.$locale.baseText("credentials.item.owner")),1)]),_:1})):S("",!0)]),_:1},8,["features"]),n(o,{actions:e.actions,theme:"dark",onAction:e.onAction,onClick:t[0]||(t[0]=Q(()=>{},["stop"]))},null,8,["actions","onAction"])],2)]),default:a(()=>[p("div",{class:c(e.$style.cardDescription)},[n(b,{color:"text-light",size:"small"},{default:a(()=>[e.credentialType?(d(),D("span",te,l(e.credentialType.displayName)+" | ",1)):S("",!0),$(p("span",null,[m(l(e.$locale.baseText("credentials.item.updated"))+" ",1),n(C,{date:e.data.updatedAt},null,8,["date"]),m(" | ")],512),[[g,e.data]]),$(p("span",null,l(e.$locale.baseText("credentials.item.created"))+" "+l(e.formattedCreatedAtDate),513),[[g,e.data]])]),_:1})],2)]),_:1},8,["class","onClick"])}const ae={$style:ee},ne=w(K,[["render",se],["__cssModules",ae]]),re=N({name:"CredentialsView",components:{ResourcesListLayout:B,CredentialCard:ne},data(){return{filters:{search:"",ownedBy:"",sharedWith:"",type:""},sourceControlStoreUnsubscribe:()=>{}}},computed:{...L(k,O,A,E,Y,W),allCredentials(){return this.credentialsStore.allCredentials},allCredentialTypes(){return this.credentialsStore.allCredentialTypes},credentialTypesById(){return this.credentialsStore.credentialTypesById}},methods:{addCredential(){this.uiStore.openModal(P),this.$telemetry.track("User clicked add cred button",{source:"Creds list"})},async initialize(){const e=[this.credentialsStore.fetchAllCredentials(),this.credentialsStore.fetchCredentialTypes(!1),this.externalSecretsStore.fetchAllSecrets(),this.nodeTypesStore.loadNodeTypesIfNotLoaded()];await Promise.all(e),await this.usersStore.fetchUsers()},onFilter(e,t,r){if(t.type.length>0&&(r=r&&t.type.includes(e.type)),t.search){const f=t.search.toLowerCase();r=r||this.credentialTypesById[e.type]&&this.credentialTypesById[e.type].displayName.toLowerCase().includes(f)}return r},sendFiltersTelemetry(e){this.$refs.layout.sendFiltersTelemetry(e)}},watch:{"filters.type"(){this.sendFiltersTelemetry("type")}},mounted(){this.sourceControlStoreUnsubscribe=this.sourceControlStore.$onAction(({name:e,after:t})=>{e==="pullWorkfolder"&&t&&t(()=>{this.initialize()})})},beforeUnmount(){this.sourceControlStoreUnsubscribe()}}),ie="_sidebarContainer_1qflh_9",oe={"type-input":"_type-input_1qflh_5",sidebarContainer:ie},le={class:"mb-s"};function de(e,t,r,f,U,I){const h=s("credential-card"),_=s("n8n-input-label"),C=s("n8n-option"),b=s("n8n-select"),T=s("resources-list-layout");return d(),y(T,{ref:"layout","resource-key":"credentials",resources:e.allCredentials,initialize:e.initialize,filters:e.filters,"additional-filters-handler":e.onFilter,"type-props":{itemSize:77},"onClick:add":e.addCredential,"onUpdate:filters":t[0]||(t[0]=i=>e.filters=i)},{default:a(({data:i})=>[n(h,{"data-test-id":"resources-list-item",class:"mb-2xs",data:i},null,8,["data"])]),filters:a(({setKeyValue:i})=>[p("div",le,[n(_,{label:e.$locale.baseText("credentials.filters.type"),bold:!1,size:"small",color:"text-base",class:"mb-3xs"},null,8,["label"]),n(b,{modelValue:e.filters.type,size:"medium",multiple:"",filterable:"",ref:"typeInput",class:c(e.$style["type-input"]),"onUpdate:modelValue":o=>i("type",o)},{default:a(()=>[(d(!0),D(G,null,j(e.allCredentialTypes,o=>(d(),y(C,{key:o.name,value:o.name,label:o.displayName},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","class","onUpdate:modelValue"])])]),_:1},8,["resources","initialize","filters","additional-filters-handler","onClick:add"])}const ce={$style:oe},He=w(re,[["render",de],["__cssModules",ce]]);export{He as default};
2
- //# sourceMappingURL=CredentialsView-9EPVLguD.js.map
1
+ import{R as B}from"./ResourcesListLayout-XbNZXU-j.js";import{z as v,p as E,l as A,R as k,L as z,C as F,aa as V,_ as w,Q as O,bq as P}from"./n8n-NE7NqrvB.js";import{a as R,aR as q,aS as H,a7 as W,b as Y}from"./index-sMRiWGJS.js";import{m as L}from"./pinia-IhuTtYiV.js";import{G as N,ag as s,l as d,M as y,O as a,I as c,T as n,S as m,R as l,p,Q as S,a2 as Q,m as D,V as $,U as g,a7 as j,F as G}from"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./@fortawesome/vue-fontawesome-GVmvJ_gj.js";import"./@fortawesome/fontawesome-svg-core-xYGjsix9.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./flatted-jPn12Tq4.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./vue-i18n-eiX0lGiQ.js";import"./uuid-McvpxQtQ.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-gO4u4slB.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./@fortawesome/free-solid-svg-icons-KH5RR_hW.js";import"./@fortawesome/free-regular-svg-icons-ipmEYOws.js";import"./chart.js-JtqvIvkt.js";const u={OPEN:"open",DELETE:"delete"},K=N({data(){return{EnterpriseEditionFeature:v}},setup(){return{...R()}},components:{TimeAgo:q,CredentialIcon:H},props:{data:{type:Object,required:!0,default:()=>({id:"",createdAt:"",updatedAt:"",type:"",name:"",nodesAccess:[],sharedWith:[],ownedBy:{}})},readonly:{type:Boolean,default:!1}},computed:{...L(k,A,E),currentUser(){return this.usersStore.currentUser},credentialType(){return this.credentialsStore.getCredentialTypeByName(this.data.type)},credentialPermissions(){return this.currentUser?z(this.currentUser,this.data):null},actions(){return this.credentialPermissions?[{label:this.$locale.baseText("credentials.item.open"),value:u.OPEN}].concat(this.credentialPermissions.delete?[{label:this.$locale.baseText("credentials.item.delete"),value:u.DELETE}]:[]):[]},formattedCreatedAtDate(){const e=new Date().getFullYear();return F(this.data.createdAt,`d mmmm${this.data.createdAt.startsWith(e)?"":", yyyy"}`)}},methods:{async onClick(e){var t;this.$refs.cardActions===e.target||(t=this.$refs.cardActions)!=null&&t.contains(e.target)||this.uiStore.openExistingCredential(this.data.id)},async onAction(e){e===u.OPEN?await this.onClick(new Event("click")):e===u.DELETE&&await this.confirm(this.$locale.baseText("credentialEdit.credentialEdit.confirmMessage.deleteCredential.message",{interpolate:{savedCredentialName:this.data.name}}),this.$locale.baseText("credentialEdit.credentialEdit.confirmMessage.deleteCredential.headline"),{confirmButtonText:this.$locale.baseText("credentialEdit.credentialEdit.confirmMessage.deleteCredential.confirmButtonText")})===V&&await this.credentialsStore.deleteCredential({id:this.data.id})}}}),J="_cardLink_1s1ie_5",X="_cardHeading_1s1ie_15",Z="_cardDescription_1s1ie_20",x="_cardActions_1s1ie_27",ee={cardLink:J,cardHeading:X,cardDescription:Z,cardActions:x},te={key:0};function se(e,t,r,f,U,I){const h=s("credential-icon"),_=s("n8n-heading"),C=s("time-ago"),b=s("n8n-text"),T=s("n8n-badge"),i=s("enterprise-edition"),o=s("n8n-action-toggle"),M=s("n8n-card");return d(),y(M,{class:c(e.$style.cardLink),onClick:e.onClick},{prepend:a(()=>[n(h,{"credential-type-name":e.credentialType?e.credentialType.name:""},null,8,["credential-type-name"])]),header:a(()=>[n(_,{tag:"h2",bold:"",class:c(e.$style.cardHeading)},{default:a(()=>[m(l(e.data.name),1)]),_:1},8,["class"])]),append:a(()=>[p("div",{class:c(e.$style.cardActions),ref:"cardActions"},[n(i,{features:[e.EnterpriseEditionFeature.Sharing]},{default:a(()=>[e.credentialPermissions.isOwner?(d(),y(T,{key:0,class:"mr-xs",theme:"tertiary",bold:""},{default:a(()=>[m(l(e.$locale.baseText("credentials.item.owner")),1)]),_:1})):S("",!0)]),_:1},8,["features"]),n(o,{actions:e.actions,theme:"dark",onAction:e.onAction,onClick:t[0]||(t[0]=Q(()=>{},["stop"]))},null,8,["actions","onAction"])],2)]),default:a(()=>[p("div",{class:c(e.$style.cardDescription)},[n(b,{color:"text-light",size:"small"},{default:a(()=>[e.credentialType?(d(),D("span",te,l(e.credentialType.displayName)+" | ",1)):S("",!0),$(p("span",null,[m(l(e.$locale.baseText("credentials.item.updated"))+" ",1),n(C,{date:e.data.updatedAt},null,8,["date"]),m(" | ")],512),[[g,e.data]]),$(p("span",null,l(e.$locale.baseText("credentials.item.created"))+" "+l(e.formattedCreatedAtDate),513),[[g,e.data]])]),_:1})],2)]),_:1},8,["class","onClick"])}const ae={$style:ee},ne=w(K,[["render",se],["__cssModules",ae]]),re=N({name:"CredentialsView",components:{ResourcesListLayout:B,CredentialCard:ne},data(){return{filters:{search:"",ownedBy:"",sharedWith:"",type:""},sourceControlStoreUnsubscribe:()=>{}}},computed:{...L(k,O,A,E,Y,W),allCredentials(){return this.credentialsStore.allCredentials},allCredentialTypes(){return this.credentialsStore.allCredentialTypes},credentialTypesById(){return this.credentialsStore.credentialTypesById}},methods:{addCredential(){this.uiStore.openModal(P),this.$telemetry.track("User clicked add cred button",{source:"Creds list"})},async initialize(){const e=[this.credentialsStore.fetchAllCredentials(),this.credentialsStore.fetchCredentialTypes(!1),this.externalSecretsStore.fetchAllSecrets(),this.nodeTypesStore.loadNodeTypesIfNotLoaded()];await Promise.all(e),await this.usersStore.fetchUsers()},onFilter(e,t,r){if(t.type.length>0&&(r=r&&t.type.includes(e.type)),t.search){const f=t.search.toLowerCase();r=r||this.credentialTypesById[e.type]&&this.credentialTypesById[e.type].displayName.toLowerCase().includes(f)}return r},sendFiltersTelemetry(e){this.$refs.layout.sendFiltersTelemetry(e)}},watch:{"filters.type"(){this.sendFiltersTelemetry("type")}},mounted(){this.sourceControlStoreUnsubscribe=this.sourceControlStore.$onAction(({name:e,after:t})=>{e==="pullWorkfolder"&&t&&t(()=>{this.initialize()})})},beforeUnmount(){this.sourceControlStoreUnsubscribe()}}),ie="_sidebarContainer_1qflh_9",oe={"type-input":"_type-input_1qflh_5",sidebarContainer:ie},le={class:"mb-s"};function de(e,t,r,f,U,I){const h=s("credential-card"),_=s("n8n-input-label"),C=s("n8n-option"),b=s("n8n-select"),T=s("resources-list-layout");return d(),y(T,{ref:"layout","resource-key":"credentials",resources:e.allCredentials,initialize:e.initialize,filters:e.filters,"additional-filters-handler":e.onFilter,"type-props":{itemSize:77},"onClick:add":e.addCredential,"onUpdate:filters":t[0]||(t[0]=i=>e.filters=i)},{default:a(({data:i})=>[n(h,{"data-test-id":"resources-list-item",class:"mb-2xs",data:i},null,8,["data"])]),filters:a(({setKeyValue:i})=>[p("div",le,[n(_,{label:e.$locale.baseText("credentials.filters.type"),bold:!1,size:"small",color:"text-base",class:"mb-3xs"},null,8,["label"]),n(b,{modelValue:e.filters.type,size:"medium",multiple:"",filterable:"",ref:"typeInput",class:c(e.$style["type-input"]),"onUpdate:modelValue":o=>i("type",o)},{default:a(()=>[(d(!0),D(G,null,j(e.allCredentialTypes,o=>(d(),y(C,{key:o.name,value:o.name,label:o.displayName},null,8,["value","label"]))),128))]),_:2},1032,["modelValue","class","onUpdate:modelValue"])])]),_:1},8,["resources","initialize","filters","additional-filters-handler","onClick:add"])}const ce={$style:oe},He=w(re,[["render",de],["__cssModules",ce]]);export{He as default};
2
+ //# sourceMappingURL=CredentialsView-AVQZL_tm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialsView-9EPVLguD.js","sources":["../../src/components/CredentialCard.vue","../../src/views/CredentialsView.vue"],"sourcesContent":["<template>\n\t<n8n-card :class=\"$style.cardLink\" @click=\"onClick\">\n\t\t<template #prepend>\n\t\t\t<credential-icon :credential-type-name=\"credentialType ? credentialType.name : ''\" />\n\t\t</template>\n\t\t<template #header>\n\t\t\t<n8n-heading tag=\"h2\" bold :class=\"$style.cardHeading\">\n\t\t\t\t{{ data.name }}\n\t\t\t</n8n-heading>\n\t\t</template>\n\t\t<div :class=\"$style.cardDescription\">\n\t\t\t<n8n-text color=\"text-light\" size=\"small\">\n\t\t\t\t<span v-if=\"credentialType\">{{ credentialType.displayName }} | </span>\n\t\t\t\t<span v-show=\"data\"\n\t\t\t\t\t>{{ $locale.baseText('credentials.item.updated') }} <time-ago :date=\"data.updatedAt\" /> |\n\t\t\t\t</span>\n\t\t\t\t<span v-show=\"data\"\n\t\t\t\t\t>{{ $locale.baseText('credentials.item.created') }} {{ formattedCreatedAtDate }}\n\t\t\t\t</span>\n\t\t\t</n8n-text>\n\t\t</div>\n\t\t<template #append>\n\t\t\t<div :class=\"$style.cardActions\" ref=\"cardActions\">\n\t\t\t\t<enterprise-edition :features=\"[EnterpriseEditionFeature.Sharing]\">\n\t\t\t\t\t<n8n-badge v-if=\"credentialPermissions.isOwner\" class=\"mr-xs\" theme=\"tertiary\" bold>\n\t\t\t\t\t\t{{ $locale.baseText('credentials.item.owner') }}\n\t\t\t\t\t</n8n-badge>\n\t\t\t\t</enterprise-edition>\n\t\t\t\t<n8n-action-toggle :actions=\"actions\" theme=\"dark\" @action=\"onAction\" @click.stop />\n\t\t\t</div>\n\t\t</template>\n\t</n8n-card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { ICredentialsResponse, IUser } from '@/Interface';\nimport type { ICredentialType } from 'n8n-workflow';\nimport { EnterpriseEditionFeature, MODAL_CONFIRM } from '@/constants';\nimport { useMessage } from '@/composables/useMessage';\nimport CredentialIcon from '@/components/CredentialIcon.vue';\nimport type { IPermissions } from '@/permissions';\nimport { getCredentialPermissions } from '@/permissions';\nimport dateformat from 'dateformat';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useCredentialsStore } from '@/stores/credentials.store';\nimport TimeAgo from '@/components/TimeAgo.vue';\n\nexport const CREDENTIAL_LIST_ITEM_ACTIONS = {\n\tOPEN: 'open',\n\tDELETE: 'delete',\n};\n\nexport default defineComponent({\n\tdata() {\n\t\treturn {\n\t\t\tEnterpriseEditionFeature,\n\t\t};\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tcomponents: {\n\t\tTimeAgo,\n\t\tCredentialIcon,\n\t},\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: (): ICredentialsResponse => ({\n\t\t\t\tid: '',\n\t\t\t\tcreatedAt: '',\n\t\t\t\tupdatedAt: '',\n\t\t\t\ttype: '',\n\t\t\t\tname: '',\n\t\t\t\tnodesAccess: [],\n\t\t\t\tsharedWith: [],\n\t\t\t\townedBy: {} as IUser,\n\t\t\t}),\n\t\t},\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\t...mapStores(useCredentialsStore, useUIStore, useUsersStore),\n\t\tcurrentUser(): IUser | null {\n\t\t\treturn this.usersStore.currentUser;\n\t\t},\n\t\tcredentialType(): ICredentialType | undefined {\n\t\t\treturn this.credentialsStore.getCredentialTypeByName(this.data.type);\n\t\t},\n\t\tcredentialPermissions(): IPermissions | null {\n\t\t\treturn !this.currentUser ? null : getCredentialPermissions(this.currentUser, this.data);\n\t\t},\n\t\tactions(): Array<{ label: string; value: string }> {\n\t\t\tif (!this.credentialPermissions) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('credentials.item.open'),\n\t\t\t\t\tvalue: CREDENTIAL_LIST_ITEM_ACTIONS.OPEN,\n\t\t\t\t},\n\t\t\t].concat(\n\t\t\t\tthis.credentialPermissions.delete\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: this.$locale.baseText('credentials.item.delete'),\n\t\t\t\t\t\t\t\tvalue: CREDENTIAL_LIST_ITEM_ACTIONS.DELETE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t\t);\n\t\t},\n\t\tformattedCreatedAtDate(): string {\n\t\t\tconst currentYear = new Date().getFullYear();\n\n\t\t\treturn dateformat(\n\t\t\t\tthis.data.createdAt,\n\t\t\t\t`d mmmm${this.data.createdAt.startsWith(currentYear) ? '' : ', yyyy'}`,\n\t\t\t);\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onClick(event: Event) {\n\t\t\tif (\n\t\t\t\tthis.$refs.cardActions === event.target ||\n\t\t\t\tthis.$refs.cardActions?.contains(event.target)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.uiStore.openExistingCredential(this.data.id);\n\t\t},\n\t\tasync onAction(action: string) {\n\t\t\tif (action === CREDENTIAL_LIST_ITEM_ACTIONS.OPEN) {\n\t\t\t\tawait this.onClick(new Event('click'));\n\t\t\t} else if (action === CREDENTIAL_LIST_ITEM_ACTIONS.DELETE) {\n\t\t\t\tconst deleteConfirmed = await this.confirm(\n\t\t\t\t\tthis.$locale.baseText(\n\t\t\t\t\t\t'credentialEdit.credentialEdit.confirmMessage.deleteCredential.message',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinterpolate: { savedCredentialName: this.data.name },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t\tthis.$locale.baseText(\n\t\t\t\t\t\t'credentialEdit.credentialEdit.confirmMessage.deleteCredential.headline',\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t\t'credentialEdit.credentialEdit.confirmMessage.deleteCredential.confirmButtonText',\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (deleteConfirmed === MODAL_CONFIRM) {\n\t\t\t\t\tawait this.credentialsStore.deleteCredential({ id: this.data.id });\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.cardLink {\n\ttransition: box-shadow 0.3s ease;\n\tcursor: pointer;\n\tpadding: 0 0 0 var(--spacing-s);\n\talign-items: stretch;\n\n\t&:hover {\n\t\tbox-shadow: 0 2px 8px rgba(#441c17, 0.1);\n\t}\n}\n\n.cardHeading {\n\tfont-size: var(--font-size-s);\n\tpadding: var(--spacing-s) 0 0;\n}\n\n.cardDescription {\n\tmin-height: 19px;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 0 0 var(--spacing-s);\n}\n\n.cardActions {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\talign-items: center;\n\talign-self: stretch;\n\tpadding: 0 var(--spacing-s) 0 0;\n\tcursor: default;\n}\n</style>\n","<template>\n\t<resources-list-layout\n\t\tref=\"layout\"\n\t\tresource-key=\"credentials\"\n\t\t:resources=\"allCredentials\"\n\t\t:initialize=\"initialize\"\n\t\t:filters=\"filters\"\n\t\t:additional-filters-handler=\"onFilter\"\n\t\t:type-props=\"{ itemSize: 77 }\"\n\t\t@click:add=\"addCredential\"\n\t\t@update:filters=\"filters = $event\"\n\t>\n\t\t<template #default=\"{ data }\">\n\t\t\t<credential-card data-test-id=\"resources-list-item\" class=\"mb-2xs\" :data=\"data\" />\n\t\t</template>\n\t\t<template #filters=\"{ setKeyValue }\">\n\t\t\t<div class=\"mb-s\">\n\t\t\t\t<n8n-input-label\n\t\t\t\t\t:label=\"$locale.baseText('credentials.filters.type')\"\n\t\t\t\t\t:bold=\"false\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tclass=\"mb-3xs\"\n\t\t\t\t/>\n\t\t\t\t<n8n-select\n\t\t\t\t\t:modelValue=\"filters.type\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tmultiple\n\t\t\t\t\tfilterable\n\t\t\t\t\tref=\"typeInput\"\n\t\t\t\t\t:class=\"$style['type-input']\"\n\t\t\t\t\t@update:modelValue=\"setKeyValue('type', $event)\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"credentialType in allCredentialTypes\"\n\t\t\t\t\t\t:key=\"credentialType.name\"\n\t\t\t\t\t\t:value=\"credentialType.name\"\n\t\t\t\t\t\t:label=\"credentialType.displayName\"\n\t\t\t\t\t/>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t</template>\n\t</resources-list-layout>\n</template>\n\n<script lang=\"ts\">\nimport type { ICredentialsResponse, ICredentialTypeMap } from '@/Interface';\nimport { defineComponent } from 'vue';\n\nimport ResourcesListLayout from '@/components/layouts/ResourcesListLayout.vue';\nimport CredentialCard from '@/components/CredentialCard.vue';\nimport type { ICredentialType } from 'n8n-workflow';\nimport { CREDENTIAL_SELECT_MODAL_KEY } from '@/constants';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport { useCredentialsStore } from '@/stores/credentials.store';\nimport { useExternalSecretsStore } from '@/stores/externalSecrets.ee.store';\nimport { useSourceControlStore } from '@/stores/sourceControl.store';\n\ntype IResourcesListLayoutInstance = InstanceType<typeof ResourcesListLayout>;\n\nexport default defineComponent({\n\tname: 'CredentialsView',\n\tcomponents: {\n\t\tResourcesListLayout,\n\t\tCredentialCard,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfilters: {\n\t\t\t\tsearch: '',\n\t\t\t\townedBy: '',\n\t\t\t\tsharedWith: '',\n\t\t\t\ttype: '',\n\t\t\t},\n\t\t\tsourceControlStoreUnsubscribe: () => {},\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(\n\t\t\tuseCredentialsStore,\n\t\t\tuseNodeTypesStore,\n\t\t\tuseUIStore,\n\t\t\tuseUsersStore,\n\t\t\tuseSourceControlStore,\n\t\t\tuseExternalSecretsStore,\n\t\t),\n\t\tallCredentials(): ICredentialsResponse[] {\n\t\t\treturn this.credentialsStore.allCredentials;\n\t\t},\n\t\tallCredentialTypes(): ICredentialType[] {\n\t\t\treturn this.credentialsStore.allCredentialTypes;\n\t\t},\n\t\tcredentialTypesById(): ICredentialTypeMap {\n\t\t\treturn this.credentialsStore.credentialTypesById;\n\t\t},\n\t},\n\tmethods: {\n\t\taddCredential() {\n\t\t\tthis.uiStore.openModal(CREDENTIAL_SELECT_MODAL_KEY);\n\n\t\t\tthis.$telemetry.track('User clicked add cred button', {\n\t\t\t\tsource: 'Creds list',\n\t\t\t});\n\t\t},\n\t\tasync initialize() {\n\t\t\tconst loadPromises = [\n\t\t\t\tthis.credentialsStore.fetchAllCredentials(),\n\t\t\t\tthis.credentialsStore.fetchCredentialTypes(false),\n\t\t\t\tthis.externalSecretsStore.fetchAllSecrets(),\n\t\t\t\tthis.nodeTypesStore.loadNodeTypesIfNotLoaded(),\n\t\t\t];\n\n\t\t\tawait Promise.all(loadPromises);\n\n\t\t\tawait this.usersStore.fetchUsers(); // Can be loaded in the background, used for filtering\n\t\t},\n\t\tonFilter(\n\t\t\tresource: ICredentialsResponse,\n\t\t\tfilters: { type: string[]; search: string },\n\t\t\tmatches: boolean,\n\t\t): boolean {\n\t\t\tif (filters.type.length > 0) {\n\t\t\t\tmatches = matches && filters.type.includes(resource.type);\n\t\t\t}\n\n\t\t\tif (filters.search) {\n\t\t\t\tconst searchString = filters.search.toLowerCase();\n\n\t\t\t\tmatches =\n\t\t\t\t\tmatches ||\n\t\t\t\t\t(this.credentialTypesById[resource.type] &&\n\t\t\t\t\t\tthis.credentialTypesById[resource.type].displayName\n\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t.includes(searchString));\n\t\t\t}\n\n\t\t\treturn matches;\n\t\t},\n\t\tsendFiltersTelemetry(source: string) {\n\t\t\t(this.$refs.layout as IResourcesListLayoutInstance).sendFiltersTelemetry(source);\n\t\t},\n\t},\n\twatch: {\n\t\t'filters.type'() {\n\t\t\tthis.sendFiltersTelemetry('type');\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.sourceControlStoreUnsubscribe = this.sourceControlStore.$onAction(({ name, after }) => {\n\t\t\tif (name === 'pullWorkfolder' && after) {\n\t\t\t\tafter(() => {\n\t\t\t\t\tvoid this.initialize();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t},\n\tbeforeUnmount() {\n\t\tthis.sourceControlStoreUnsubscribe();\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.type-input {\n\t--max-width: 265px;\n}\n\n.sidebarContainer ul {\n\tpadding: 0 !important;\n}\n</style>\n"],"names":["CREDENTIAL_LIST_ITEM_ACTIONS","_sfc_main$1","defineComponent","EnterpriseEditionFeature","useMessage","TimeAgo","CredentialIcon","mapStores","useCredentialsStore","useUIStore","useUsersStore","getCredentialPermissions","currentYear","dateformat","event","_a","action","MODAL_CONFIRM","_resolveComponent","_openBlock","_createBlock","_component_n8n_card","_normalizeClass","_ctx","_withCtx","_createVNode","_component_credential_icon","_component_n8n_heading","_createElementVNode","_component_n8n_badge","_component_n8n_action_toggle","_component_n8n_text","_createElementBlock","_hoisted_1","_toDisplayString","_createCommentVNode","_withDirectives","_createTextVNode","_component_time_ago","_vShow","_sfc_main","ResourcesListLayout","CredentialCard","useNodeTypesStore","useSourceControlStore","useExternalSecretsStore","CREDENTIAL_SELECT_MODAL_KEY","loadPromises","resource","filters","matches","searchString","source","name","after","_component_resources_list_layout","_cache","$event","data","_component_credential_card","setKeyValue","_component_n8n_input_label","_component_n8n_select","_Fragment","_renderList","credentialType","_component_n8n_option"],"mappings":"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"}
1
+ {"version":3,"file":"CredentialsView-AVQZL_tm.js","sources":["../../src/components/CredentialCard.vue","../../src/views/CredentialsView.vue"],"sourcesContent":["<template>\n\t<n8n-card :class=\"$style.cardLink\" @click=\"onClick\">\n\t\t<template #prepend>\n\t\t\t<credential-icon :credential-type-name=\"credentialType ? credentialType.name : ''\" />\n\t\t</template>\n\t\t<template #header>\n\t\t\t<n8n-heading tag=\"h2\" bold :class=\"$style.cardHeading\">\n\t\t\t\t{{ data.name }}\n\t\t\t</n8n-heading>\n\t\t</template>\n\t\t<div :class=\"$style.cardDescription\">\n\t\t\t<n8n-text color=\"text-light\" size=\"small\">\n\t\t\t\t<span v-if=\"credentialType\">{{ credentialType.displayName }} | </span>\n\t\t\t\t<span v-show=\"data\"\n\t\t\t\t\t>{{ $locale.baseText('credentials.item.updated') }} <time-ago :date=\"data.updatedAt\" /> |\n\t\t\t\t</span>\n\t\t\t\t<span v-show=\"data\"\n\t\t\t\t\t>{{ $locale.baseText('credentials.item.created') }} {{ formattedCreatedAtDate }}\n\t\t\t\t</span>\n\t\t\t</n8n-text>\n\t\t</div>\n\t\t<template #append>\n\t\t\t<div :class=\"$style.cardActions\" ref=\"cardActions\">\n\t\t\t\t<enterprise-edition :features=\"[EnterpriseEditionFeature.Sharing]\">\n\t\t\t\t\t<n8n-badge v-if=\"credentialPermissions.isOwner\" class=\"mr-xs\" theme=\"tertiary\" bold>\n\t\t\t\t\t\t{{ $locale.baseText('credentials.item.owner') }}\n\t\t\t\t\t</n8n-badge>\n\t\t\t\t</enterprise-edition>\n\t\t\t\t<n8n-action-toggle :actions=\"actions\" theme=\"dark\" @action=\"onAction\" @click.stop />\n\t\t\t</div>\n\t\t</template>\n\t</n8n-card>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { ICredentialsResponse, IUser } from '@/Interface';\nimport type { ICredentialType } from 'n8n-workflow';\nimport { EnterpriseEditionFeature, MODAL_CONFIRM } from '@/constants';\nimport { useMessage } from '@/composables/useMessage';\nimport CredentialIcon from '@/components/CredentialIcon.vue';\nimport type { IPermissions } from '@/permissions';\nimport { getCredentialPermissions } from '@/permissions';\nimport dateformat from 'dateformat';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useCredentialsStore } from '@/stores/credentials.store';\nimport TimeAgo from '@/components/TimeAgo.vue';\n\nexport const CREDENTIAL_LIST_ITEM_ACTIONS = {\n\tOPEN: 'open',\n\tDELETE: 'delete',\n};\n\nexport default defineComponent({\n\tdata() {\n\t\treturn {\n\t\t\tEnterpriseEditionFeature,\n\t\t};\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tcomponents: {\n\t\tTimeAgo,\n\t\tCredentialIcon,\n\t},\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: (): ICredentialsResponse => ({\n\t\t\t\tid: '',\n\t\t\t\tcreatedAt: '',\n\t\t\t\tupdatedAt: '',\n\t\t\t\ttype: '',\n\t\t\t\tname: '',\n\t\t\t\tnodesAccess: [],\n\t\t\t\tsharedWith: [],\n\t\t\t\townedBy: {} as IUser,\n\t\t\t}),\n\t\t},\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\t...mapStores(useCredentialsStore, useUIStore, useUsersStore),\n\t\tcurrentUser(): IUser | null {\n\t\t\treturn this.usersStore.currentUser;\n\t\t},\n\t\tcredentialType(): ICredentialType | undefined {\n\t\t\treturn this.credentialsStore.getCredentialTypeByName(this.data.type);\n\t\t},\n\t\tcredentialPermissions(): IPermissions | null {\n\t\t\treturn !this.currentUser ? null : getCredentialPermissions(this.currentUser, this.data);\n\t\t},\n\t\tactions(): Array<{ label: string; value: string }> {\n\t\t\tif (!this.credentialPermissions) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('credentials.item.open'),\n\t\t\t\t\tvalue: CREDENTIAL_LIST_ITEM_ACTIONS.OPEN,\n\t\t\t\t},\n\t\t\t].concat(\n\t\t\t\tthis.credentialPermissions.delete\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: this.$locale.baseText('credentials.item.delete'),\n\t\t\t\t\t\t\t\tvalue: CREDENTIAL_LIST_ITEM_ACTIONS.DELETE,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [],\n\t\t\t);\n\t\t},\n\t\tformattedCreatedAtDate(): string {\n\t\t\tconst currentYear = new Date().getFullYear();\n\n\t\t\treturn dateformat(\n\t\t\t\tthis.data.createdAt,\n\t\t\t\t`d mmmm${this.data.createdAt.startsWith(currentYear) ? '' : ', yyyy'}`,\n\t\t\t);\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onClick(event: Event) {\n\t\t\tif (\n\t\t\t\tthis.$refs.cardActions === event.target ||\n\t\t\t\tthis.$refs.cardActions?.contains(event.target)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.uiStore.openExistingCredential(this.data.id);\n\t\t},\n\t\tasync onAction(action: string) {\n\t\t\tif (action === CREDENTIAL_LIST_ITEM_ACTIONS.OPEN) {\n\t\t\t\tawait this.onClick(new Event('click'));\n\t\t\t} else if (action === CREDENTIAL_LIST_ITEM_ACTIONS.DELETE) {\n\t\t\t\tconst deleteConfirmed = await this.confirm(\n\t\t\t\t\tthis.$locale.baseText(\n\t\t\t\t\t\t'credentialEdit.credentialEdit.confirmMessage.deleteCredential.message',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinterpolate: { savedCredentialName: this.data.name },\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t\tthis.$locale.baseText(\n\t\t\t\t\t\t'credentialEdit.credentialEdit.confirmMessage.deleteCredential.headline',\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t\t'credentialEdit.credentialEdit.confirmMessage.deleteCredential.confirmButtonText',\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (deleteConfirmed === MODAL_CONFIRM) {\n\t\t\t\t\tawait this.credentialsStore.deleteCredential({ id: this.data.id });\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.cardLink {\n\ttransition: box-shadow 0.3s ease;\n\tcursor: pointer;\n\tpadding: 0 0 0 var(--spacing-s);\n\talign-items: stretch;\n\n\t&:hover {\n\t\tbox-shadow: 0 2px 8px rgba(#441c17, 0.1);\n\t}\n}\n\n.cardHeading {\n\tfont-size: var(--font-size-s);\n\tpadding: var(--spacing-s) 0 0;\n}\n\n.cardDescription {\n\tmin-height: 19px;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 0 0 var(--spacing-s);\n}\n\n.cardActions {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: center;\n\talign-items: center;\n\talign-self: stretch;\n\tpadding: 0 var(--spacing-s) 0 0;\n\tcursor: default;\n}\n</style>\n","<template>\n\t<resources-list-layout\n\t\tref=\"layout\"\n\t\tresource-key=\"credentials\"\n\t\t:resources=\"allCredentials\"\n\t\t:initialize=\"initialize\"\n\t\t:filters=\"filters\"\n\t\t:additional-filters-handler=\"onFilter\"\n\t\t:type-props=\"{ itemSize: 77 }\"\n\t\t@click:add=\"addCredential\"\n\t\t@update:filters=\"filters = $event\"\n\t>\n\t\t<template #default=\"{ data }\">\n\t\t\t<credential-card data-test-id=\"resources-list-item\" class=\"mb-2xs\" :data=\"data\" />\n\t\t</template>\n\t\t<template #filters=\"{ setKeyValue }\">\n\t\t\t<div class=\"mb-s\">\n\t\t\t\t<n8n-input-label\n\t\t\t\t\t:label=\"$locale.baseText('credentials.filters.type')\"\n\t\t\t\t\t:bold=\"false\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tclass=\"mb-3xs\"\n\t\t\t\t/>\n\t\t\t\t<n8n-select\n\t\t\t\t\t:modelValue=\"filters.type\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tmultiple\n\t\t\t\t\tfilterable\n\t\t\t\t\tref=\"typeInput\"\n\t\t\t\t\t:class=\"$style['type-input']\"\n\t\t\t\t\t@update:modelValue=\"setKeyValue('type', $event)\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"credentialType in allCredentialTypes\"\n\t\t\t\t\t\t:key=\"credentialType.name\"\n\t\t\t\t\t\t:value=\"credentialType.name\"\n\t\t\t\t\t\t:label=\"credentialType.displayName\"\n\t\t\t\t\t/>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t</template>\n\t</resources-list-layout>\n</template>\n\n<script lang=\"ts\">\nimport type { ICredentialsResponse, ICredentialTypeMap } from '@/Interface';\nimport { defineComponent } from 'vue';\n\nimport ResourcesListLayout from '@/components/layouts/ResourcesListLayout.vue';\nimport CredentialCard from '@/components/CredentialCard.vue';\nimport type { ICredentialType } from 'n8n-workflow';\nimport { CREDENTIAL_SELECT_MODAL_KEY } from '@/constants';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport { useCredentialsStore } from '@/stores/credentials.store';\nimport { useExternalSecretsStore } from '@/stores/externalSecrets.ee.store';\nimport { useSourceControlStore } from '@/stores/sourceControl.store';\n\ntype IResourcesListLayoutInstance = InstanceType<typeof ResourcesListLayout>;\n\nexport default defineComponent({\n\tname: 'CredentialsView',\n\tcomponents: {\n\t\tResourcesListLayout,\n\t\tCredentialCard,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfilters: {\n\t\t\t\tsearch: '',\n\t\t\t\townedBy: '',\n\t\t\t\tsharedWith: '',\n\t\t\t\ttype: '',\n\t\t\t},\n\t\t\tsourceControlStoreUnsubscribe: () => {},\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(\n\t\t\tuseCredentialsStore,\n\t\t\tuseNodeTypesStore,\n\t\t\tuseUIStore,\n\t\t\tuseUsersStore,\n\t\t\tuseSourceControlStore,\n\t\t\tuseExternalSecretsStore,\n\t\t),\n\t\tallCredentials(): ICredentialsResponse[] {\n\t\t\treturn this.credentialsStore.allCredentials;\n\t\t},\n\t\tallCredentialTypes(): ICredentialType[] {\n\t\t\treturn this.credentialsStore.allCredentialTypes;\n\t\t},\n\t\tcredentialTypesById(): ICredentialTypeMap {\n\t\t\treturn this.credentialsStore.credentialTypesById;\n\t\t},\n\t},\n\tmethods: {\n\t\taddCredential() {\n\t\t\tthis.uiStore.openModal(CREDENTIAL_SELECT_MODAL_KEY);\n\n\t\t\tthis.$telemetry.track('User clicked add cred button', {\n\t\t\t\tsource: 'Creds list',\n\t\t\t});\n\t\t},\n\t\tasync initialize() {\n\t\t\tconst loadPromises = [\n\t\t\t\tthis.credentialsStore.fetchAllCredentials(),\n\t\t\t\tthis.credentialsStore.fetchCredentialTypes(false),\n\t\t\t\tthis.externalSecretsStore.fetchAllSecrets(),\n\t\t\t\tthis.nodeTypesStore.loadNodeTypesIfNotLoaded(),\n\t\t\t];\n\n\t\t\tawait Promise.all(loadPromises);\n\n\t\t\tawait this.usersStore.fetchUsers(); // Can be loaded in the background, used for filtering\n\t\t},\n\t\tonFilter(\n\t\t\tresource: ICredentialsResponse,\n\t\t\tfilters: { type: string[]; search: string },\n\t\t\tmatches: boolean,\n\t\t): boolean {\n\t\t\tif (filters.type.length > 0) {\n\t\t\t\tmatches = matches && filters.type.includes(resource.type);\n\t\t\t}\n\n\t\t\tif (filters.search) {\n\t\t\t\tconst searchString = filters.search.toLowerCase();\n\n\t\t\t\tmatches =\n\t\t\t\t\tmatches ||\n\t\t\t\t\t(this.credentialTypesById[resource.type] &&\n\t\t\t\t\t\tthis.credentialTypesById[resource.type].displayName\n\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t.includes(searchString));\n\t\t\t}\n\n\t\t\treturn matches;\n\t\t},\n\t\tsendFiltersTelemetry(source: string) {\n\t\t\t(this.$refs.layout as IResourcesListLayoutInstance).sendFiltersTelemetry(source);\n\t\t},\n\t},\n\twatch: {\n\t\t'filters.type'() {\n\t\t\tthis.sendFiltersTelemetry('type');\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.sourceControlStoreUnsubscribe = this.sourceControlStore.$onAction(({ name, after }) => {\n\t\t\tif (name === 'pullWorkfolder' && after) {\n\t\t\t\tafter(() => {\n\t\t\t\t\tvoid this.initialize();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t},\n\tbeforeUnmount() {\n\t\tthis.sourceControlStoreUnsubscribe();\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.type-input {\n\t--max-width: 265px;\n}\n\n.sidebarContainer ul {\n\tpadding: 0 !important;\n}\n</style>\n"],"names":["CREDENTIAL_LIST_ITEM_ACTIONS","_sfc_main$1","defineComponent","EnterpriseEditionFeature","useMessage","TimeAgo","CredentialIcon","mapStores","useCredentialsStore","useUIStore","useUsersStore","getCredentialPermissions","currentYear","dateformat","event","_a","action","MODAL_CONFIRM","_resolveComponent","_openBlock","_createBlock","_component_n8n_card","_normalizeClass","_ctx","_withCtx","_createVNode","_component_credential_icon","_component_n8n_heading","_createElementVNode","_component_n8n_badge","_component_n8n_action_toggle","_component_n8n_text","_createElementBlock","_hoisted_1","_toDisplayString","_createCommentVNode","_withDirectives","_createTextVNode","_component_time_ago","_vShow","_sfc_main","ResourcesListLayout","CredentialCard","useNodeTypesStore","useSourceControlStore","useExternalSecretsStore","CREDENTIAL_SELECT_MODAL_KEY","loadPromises","resource","filters","matches","searchString","source","name","after","_component_resources_list_layout","_cache","$event","data","_component_credential_card","setKeyValue","_component_n8n_input_label","_component_n8n_select","_Fragment","_renderList","credentialType","_component_n8n_option"],"mappings":"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"}