n8n-editor-ui 1.22.0 → 1.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.turbo/turbo-build.log +62 -62
  2. package/dist/assets/{AuthView-_5lvIORY.js → AuthView--On8E3VP.js} +2 -2
  3. package/dist/assets/{AuthView-_5lvIORY.js.map → AuthView--On8E3VP.js.map} +1 -1
  4. package/dist/assets/{CanvasControls-_S6dAUFr.js → CanvasControls-ebFBI-_5.js} +2 -2
  5. package/dist/assets/{CanvasControls-_S6dAUFr.js.map → CanvasControls-ebFBI-_5.js.map} +1 -1
  6. package/dist/assets/{ChangePasswordView-Gto324pL.js → ChangePasswordView-gj93rkzc.js} +2 -2
  7. package/dist/assets/{ChangePasswordView-Gto324pL.js.map → ChangePasswordView-gj93rkzc.js.map} +1 -1
  8. package/dist/assets/{CollectionParameter-ThiBAc6J.js → CollectionParameter-V1n0L6ao.js} +2 -2
  9. package/dist/assets/CollectionParameter-V1n0L6ao.js.map +1 -0
  10. package/dist/assets/{CredentialsView-WF2GuXwX.js → CredentialsView-9Nq2fOpi.js} +2 -2
  11. package/dist/assets/{CredentialsView-WF2GuXwX.js.map → CredentialsView-9Nq2fOpi.js.map} +1 -1
  12. package/dist/assets/{ExecutionFilter-6e5m1hky.js → ExecutionFilter-dfrYJ_Rf.js} +2 -2
  13. package/dist/assets/{ExecutionFilter-6e5m1hky.js.map → ExecutionFilter-dfrYJ_Rf.js.map} +1 -1
  14. package/dist/assets/{ExecutionPreview-qQdwo4nO.js → ExecutionPreview-yFW7oTRf.js} +2 -2
  15. package/dist/assets/{ExecutionPreview-qQdwo4nO.js.map → ExecutionPreview-yFW7oTRf.js.map} +1 -1
  16. package/dist/assets/{ExecutionsInfoAccordion-HQZywboM.js → ExecutionsInfoAccordion-EztI4QOE.js} +2 -2
  17. package/dist/assets/{ExecutionsInfoAccordion-HQZywboM.js.map → ExecutionsInfoAccordion-EztI4QOE.js.map} +1 -1
  18. package/dist/assets/{ExecutionsLandingPage-FEiybFSK.js → ExecutionsLandingPage-ygQGHLu2.js} +2 -2
  19. package/dist/assets/{ExecutionsLandingPage-FEiybFSK.js.map → ExecutionsLandingPage-ygQGHLu2.js.map} +1 -1
  20. package/dist/assets/{ExecutionsList-9Pc2Zrql.js → ExecutionsList-H9VKc4jb.js} +2 -2
  21. package/dist/assets/{ExecutionsList-9Pc2Zrql.js.map → ExecutionsList-H9VKc4jb.js.map} +1 -1
  22. package/dist/assets/{ExecutionsView-Li55aBU0.js → ExecutionsView-NdkXn6EA.js} +2 -2
  23. package/dist/assets/{ExecutionsView-Li55aBU0.js.map → ExecutionsView-NdkXn6EA.js.map} +1 -1
  24. package/dist/assets/{FixedCollectionParameter-d68rB1aT.js → FixedCollectionParameter-tJFyljoK.js} +3 -3
  25. package/dist/assets/{FixedCollectionParameter-d68rB1aT.js.map → FixedCollectionParameter-tJFyljoK.js.map} +1 -1
  26. package/dist/assets/{ForgotMyPasswordView-3lTe1SvY.js → ForgotMyPasswordView-VxAVQQgB.js} +2 -2
  27. package/dist/assets/{ForgotMyPasswordView-3lTe1SvY.js.map → ForgotMyPasswordView-VxAVQQgB.js.map} +1 -1
  28. package/dist/assets/{MainHeader-wtrPt4Uz.js → MainHeader-luMJdQn2.js} +2 -2
  29. package/dist/assets/{MainHeader-wtrPt4Uz.js.map → MainHeader-luMJdQn2.js.map} +1 -1
  30. package/dist/assets/{MainSidebar-dKXNC9E9.js → MainSidebar-nf-k1wHF.js} +2 -2
  31. package/dist/assets/{MainSidebar-dKXNC9E9.js.map → MainSidebar-nf-k1wHF.js.map} +1 -1
  32. package/dist/assets/{NodeCreation-lpcdOti7.js → NodeCreation-RvlbocPg.js} +3 -3
  33. package/dist/assets/{NodeCreation-lpcdOti7.js.map → NodeCreation-RvlbocPg.js.map} +1 -1
  34. package/dist/assets/{NodeCreator-YAF-VpA5.js → NodeCreator-zDLKC62A.js} +2 -2
  35. package/dist/assets/{NodeCreator-YAF-VpA5.js.map → NodeCreator-zDLKC62A.js.map} +1 -1
  36. package/dist/assets/{NodeList-8URsrxUQ.js → NodeList-U4qs88M0.js} +2 -2
  37. package/dist/assets/{NodeList-8URsrxUQ.js.map → NodeList-U4qs88M0.js.map} +1 -1
  38. package/dist/assets/{NodeView-caDno-kw.js → NodeView-fUdpq96X.js} +3 -3
  39. package/dist/assets/{NodeView-caDno-kw.js.map → NodeView-fUdpq96X.js.map} +1 -1
  40. package/dist/assets/{ResourcesListLayout-N4zg03Vf.js → ResourcesListLayout-y5FSwJeu.js} +2 -2
  41. package/dist/assets/{ResourcesListLayout-N4zg03Vf.js.map → ResourcesListLayout-y5FSwJeu.js.map} +1 -1
  42. package/dist/assets/{RunDataAi-EdxjRrVc.js → RunDataAi-dgEyN_Yl.js} +2 -2
  43. package/dist/assets/{RunDataAi-EdxjRrVc.js.map → RunDataAi-dgEyN_Yl.js.map} +1 -1
  44. package/dist/assets/{RunDataJson-wqxHrAY5.js → RunDataJson-RuNn5FTw.js} +3 -3
  45. package/dist/assets/{RunDataJson-wqxHrAY5.js.map → RunDataJson-RuNn5FTw.js.map} +1 -1
  46. package/dist/assets/{RunDataJsonActions-MfJV4quL.js → RunDataJsonActions-wMN8ObC3.js} +2 -2
  47. package/dist/assets/{RunDataJsonActions-MfJV4quL.js.map → RunDataJsonActions-wMN8ObC3.js.map} +1 -1
  48. package/dist/assets/{RunDataSchema-rxgd4Q_M.js → RunDataSchema-NrdiV0Bv.js} +2 -2
  49. package/dist/assets/{RunDataSchema-rxgd4Q_M.js.map → RunDataSchema-NrdiV0Bv.js.map} +1 -1
  50. package/dist/assets/{RunDataTable-2IMpD8oi.js → RunDataTable-vThTeakV.js} +2 -2
  51. package/dist/assets/{RunDataTable-2IMpD8oi.js.map → RunDataTable-vThTeakV.js.map} +1 -1
  52. package/dist/assets/{SamlOnboarding-RIlvbmgY.js → SamlOnboarding-7ZeWtOoT.js} +2 -2
  53. package/dist/assets/{SamlOnboarding-RIlvbmgY.js.map → SamlOnboarding-7ZeWtOoT.js.map} +1 -1
  54. package/dist/assets/SettingsApiView-d7znGVgB.js +2 -0
  55. package/dist/assets/SettingsApiView-d7znGVgB.js.map +1 -0
  56. package/dist/assets/{SettingsCommunityNodesView-xqn73tJO.js → SettingsCommunityNodesView-U2OqH5_g.js} +2 -2
  57. package/dist/assets/{SettingsCommunityNodesView-xqn73tJO.js.map → SettingsCommunityNodesView-U2OqH5_g.js.map} +1 -1
  58. package/dist/assets/{SettingsExternalSecrets-yr_g8DWk.js → SettingsExternalSecrets-OK2zcF3w.js} +2 -2
  59. package/dist/assets/{SettingsExternalSecrets-yr_g8DWk.js.map → SettingsExternalSecrets-OK2zcF3w.js.map} +1 -1
  60. package/dist/assets/{SettingsFakeDoorView-ogkrrHSL.js → SettingsFakeDoorView-wbngwN3n.js} +2 -2
  61. package/dist/assets/{SettingsFakeDoorView-ogkrrHSL.js.map → SettingsFakeDoorView-wbngwN3n.js.map} +1 -1
  62. package/dist/assets/{SettingsLdapView-aWCvc1gM.js → SettingsLdapView-rYSjSdpv.js} +2 -2
  63. package/dist/assets/{SettingsLdapView-aWCvc1gM.js.map → SettingsLdapView-rYSjSdpv.js.map} +1 -1
  64. package/dist/assets/{SettingsLogStreamingView-IdWAQAEz.js → SettingsLogStreamingView-r4yJe9rt.js} +2 -2
  65. package/dist/assets/{SettingsLogStreamingView-IdWAQAEz.js.map → SettingsLogStreamingView-r4yJe9rt.js.map} +1 -1
  66. package/dist/assets/{SettingsSourceControl-s8B2f1Et.js → SettingsSourceControl-2sJrfiQZ.js} +2 -2
  67. package/dist/assets/{SettingsSourceControl-s8B2f1Et.js.map → SettingsSourceControl-2sJrfiQZ.js.map} +1 -1
  68. package/dist/assets/{SettingsSso-xhUlnU8v.js → SettingsSso-F08fTaoT.js} +2 -2
  69. package/dist/assets/{SettingsSso-xhUlnU8v.js.map → SettingsSso-F08fTaoT.js.map} +1 -1
  70. package/dist/assets/{SettingsUsageAndPlan-qguburG-.js → SettingsUsageAndPlan-P3NemeAe.js} +2 -2
  71. package/dist/assets/{SettingsUsageAndPlan-qguburG-.js.map → SettingsUsageAndPlan-P3NemeAe.js.map} +1 -1
  72. package/dist/assets/{SettingsUsersView-mRes9Qkr.js → SettingsUsersView-qkwybUvB.js} +2 -2
  73. package/dist/assets/{SettingsUsersView-mRes9Qkr.js.map → SettingsUsersView-qkwybUvB.js.map} +1 -1
  74. package/dist/assets/{SettingsView-3Vqg8kdv.js → SettingsView-9Bw0MXcT.js} +2 -2
  75. package/dist/assets/{SettingsView-3Vqg8kdv.js.map → SettingsView-9Bw0MXcT.js.map} +1 -1
  76. package/dist/assets/{SetupView-RR2VulZH.js → SetupView-s0yzV7Gm.js} +2 -2
  77. package/dist/assets/{SetupView-RR2VulZH.js.map → SetupView-s0yzV7Gm.js.map} +1 -1
  78. package/dist/assets/{SetupWorkflowFromTemplateView-BbMhs31Z.js → SetupWorkflowFromTemplateView-6De7ws36.js} +2 -2
  79. package/dist/assets/{SetupWorkflowFromTemplateView-BbMhs31Z.js.map → SetupWorkflowFromTemplateView-6De7ws36.js.map} +1 -1
  80. package/dist/assets/{SigninView-hIeIEews.js → SigninView-QvYhHXWz.js} +2 -2
  81. package/dist/assets/{SigninView-hIeIEews.js.map → SigninView-QvYhHXWz.js.map} +1 -1
  82. package/dist/assets/{SignupView-iaO_BXyp.js → SignupView-ZLqXA-fI.js} +2 -2
  83. package/dist/assets/{SignupView-iaO_BXyp.js.map → SignupView-ZLqXA-fI.js.map} +1 -1
  84. package/dist/assets/{TemplateDetails-HasVFCUO.js → TemplateDetails-qWnefMYx.js} +2 -2
  85. package/dist/assets/{TemplateDetails-HasVFCUO.js.map → TemplateDetails-qWnefMYx.js.map} +1 -1
  86. package/dist/assets/{TemplateList-uT0I7BC-.js → TemplateList-Ek8NkQLd.js} +2 -2
  87. package/dist/assets/{TemplateList-uT0I7BC-.js.map → TemplateList-Ek8NkQLd.js.map} +1 -1
  88. package/dist/assets/{TemplatesCollectionView-WwdzPK0w.js → TemplatesCollectionView-xoRz-QfG.js} +2 -2
  89. package/dist/assets/{TemplatesCollectionView-WwdzPK0w.js.map → TemplatesCollectionView-xoRz-QfG.js.map} +1 -1
  90. package/dist/assets/{TemplatesInfoCarousel-WUt6CUAt.js → TemplatesInfoCarousel-TKGxiVaR.js} +2 -2
  91. package/dist/assets/{TemplatesInfoCarousel-WUt6CUAt.js.map → TemplatesInfoCarousel-TKGxiVaR.js.map} +1 -1
  92. package/dist/assets/{TemplatesSearchView-pwVBF7_m.js → TemplatesSearchView-gwbhQE6_.js} +2 -2
  93. package/dist/assets/{TemplatesSearchView-pwVBF7_m.js.map → TemplatesSearchView-gwbhQE6_.js.map} +1 -1
  94. package/dist/assets/{TemplatesWorkflowView-OxfZO4yX.js → TemplatesWorkflowView-VbJuwYVl.js} +2 -2
  95. package/dist/assets/{TemplatesWorkflowView-OxfZO4yX.js.map → TemplatesWorkflowView-VbJuwYVl.js.map} +1 -1
  96. package/dist/assets/{VariablesView-O1dh47w6.js → VariablesView-ZNxPDs_G.js} +2 -2
  97. package/dist/assets/{VariablesView-O1dh47w6.js.map → VariablesView-ZNxPDs_G.js.map} +1 -1
  98. package/dist/assets/{WorkerView-ehe17h1Q.js → WorkerView-Rzm_p5Pv.js} +2 -2
  99. package/dist/assets/{WorkerView-ehe17h1Q.js.map → WorkerView-Rzm_p5Pv.js.map} +1 -1
  100. package/dist/assets/{WorkflowActivator-EK3d11st.js → WorkflowActivator-H10vhdIV.js} +2 -2
  101. package/dist/assets/{WorkflowActivator-EK3d11st.js.map → WorkflowActivator-H10vhdIV.js.map} +1 -1
  102. package/dist/assets/{WorkflowHistory-mqWH3nQZ.js → WorkflowHistory-diO3ekal.js} +2 -2
  103. package/dist/assets/{WorkflowHistory-mqWH3nQZ.js.map → WorkflowHistory-diO3ekal.js.map} +1 -1
  104. package/dist/assets/{WorkflowOnboardingView-LZfOfbX4.js → WorkflowOnboardingView-gUVzVQsZ.js} +2 -2
  105. package/dist/assets/{WorkflowOnboardingView-LZfOfbX4.js.map → WorkflowOnboardingView-gUVzVQsZ.js.map} +1 -1
  106. package/dist/assets/{WorkflowsView-NL0wKv4C.js → WorkflowsView-Qqq1sZTo.js} +2 -2
  107. package/dist/assets/{WorkflowsView-NL0wKv4C.js.map → WorkflowsView-Qqq1sZTo.js.map} +1 -1
  108. package/dist/assets/{cloud-JhkwKZAE.js → cloud-g7GqwUFZ.js} +2 -2
  109. package/dist/assets/{cloud-JhkwKZAE.js.map → cloud-g7GqwUFZ.js.map} +1 -1
  110. package/dist/assets/{executionsHelpers-Gkj6bYJi.js → executionsHelpers-gnbzcx5j.js} +2 -2
  111. package/dist/assets/{executionsHelpers-Gkj6bYJi.js.map → executionsHelpers-gnbzcx5j.js.map} +1 -1
  112. package/dist/assets/{index--RuZ5wHr.js → index-RXjMHIPR.js} +11 -11
  113. package/dist/assets/{index--RuZ5wHr.js.map → index-RXjMHIPR.js.map} +1 -1
  114. package/dist/assets/{pushConnection-UpdxMjHa.js → pushConnection-HdjAqr4R.js} +2 -2
  115. package/dist/assets/{pushConnection-UpdxMjHa.js.map → pushConnection-HdjAqr4R.js.map} +1 -1
  116. package/dist/assets/{templateActions-CZfTXoBx.js → templateActions-y8msVyEB.js} +2 -2
  117. package/dist/assets/{templateActions-CZfTXoBx.js.map → templateActions-y8msVyEB.js.map} +1 -1
  118. package/dist/assets/{useExecutionDebugging-FPo5qMF0.js → useExecutionDebugging-Yog1CJXv.js} +2 -2
  119. package/dist/assets/{useExecutionDebugging-FPo5qMF0.js.map → useExecutionDebugging-Yog1CJXv.js.map} +1 -1
  120. package/dist/assets/{workflowActivate-FltKJaAB.js → workflowActivate-IRvCsxq5.js} +2 -2
  121. package/dist/assets/{workflowActivate-FltKJaAB.js.map → workflowActivate-IRvCsxq5.js.map} +1 -1
  122. package/dist/index.html +1 -1
  123. package/package.json +1 -1
  124. package/dist/assets/CollectionParameter-ThiBAc6J.js.map +0 -1
  125. package/dist/assets/SettingsApiView-_7qUJ2zm.js +0 -2
  126. package/dist/assets/SettingsApiView-_7qUJ2zm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowsView-NL0wKv4C.js","sources":["../../src/components/WorkflowCard.vue","../../src/components/SuggestedTemplates/SuggestedTemplatesSection.vue","../../src/components/SuggestedTemplates/SuggestedTemplatesPage.vue","../../src/views/WorkflowsView.vue"],"sourcesContent":["<template>\n\t<n8n-card :class=\"$style.cardLink\" @click=\"onClick\">\n\t\t<template #header>\n\t\t\t<n8n-heading tag=\"h2\" bold :class=\"$style.cardHeading\" data-test-id=\"workflow-card-name\">\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-show=\"data\"\n\t\t\t\t\t>{{ $locale.baseText('workflows.item.updated') }} <time-ago :date=\"data.updatedAt\" /> |\n\t\t\t\t</span>\n\t\t\t\t<span v-show=\"data\" class=\"mr-2xs\"\n\t\t\t\t\t>{{ $locale.baseText('workflows.item.created') }} {{ formattedCreatedAtDate }}\n\t\t\t\t</span>\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"settingsStore.areTagsEnabled && data.tags && data.tags.length > 0\"\n\t\t\t\t\tv-show=\"data\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-tags\n\t\t\t\t\t\t:tags=\"data.tags\"\n\t\t\t\t\t\t:truncateAt=\"3\"\n\t\t\t\t\t\ttruncate\n\t\t\t\t\t\t@click:tag=\"onClickTag\"\n\t\t\t\t\t\t@expand=\"onExpandTags\"\n\t\t\t\t\t\tdata-test-id=\"workflow-card-tags\"\n\t\t\t\t\t/>\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=\"workflowPermissions.isOwner\" class=\"mr-xs\" theme=\"tertiary\" bold>\n\t\t\t\t\t\t{{ $locale.baseText('workflows.item.owner') }}\n\t\t\t\t\t</n8n-badge>\n\t\t\t\t</enterprise-edition>\n\n\t\t\t\t<workflow-activator\n\t\t\t\t\tclass=\"mr-s\"\n\t\t\t\t\t:workflow-active=\"data.active\"\n\t\t\t\t\t:workflow-id=\"data.id\"\n\t\t\t\t\tdata-test-id=\"workflow-card-activator\"\n\t\t\t\t/>\n\n\t\t\t\t<n8n-action-toggle\n\t\t\t\t\t:actions=\"actions\"\n\t\t\t\t\ttheme=\"dark\"\n\t\t\t\t\t@action=\"onAction\"\n\t\t\t\t\t@click.stop\n\t\t\t\t\tdata-test-id=\"workflow-card-actions\"\n\t\t\t\t/>\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 { IWorkflowDb, IUser, ITag } from '@/Interface';\nimport {\n\tDUPLICATE_MODAL_KEY,\n\tEnterpriseEditionFeature,\n\tMODAL_CONFIRM,\n\tVIEWS,\n\tWORKFLOW_SHARE_MODAL_KEY,\n} from '@/constants';\nimport { useMessage } from '@/composables/useMessage';\nimport { useToast } from '@/composables/useToast';\nimport type { IPermissions } from '@/permissions';\nimport { getWorkflowPermissions } from '@/permissions';\nimport dateformat from 'dateformat';\nimport WorkflowActivator from '@/components/WorkflowActivator.vue';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport TimeAgo from '@/components/TimeAgo.vue';\n\nexport const WORKFLOW_LIST_ITEM_ACTIONS = {\n\tOPEN: 'open',\n\tSHARE: 'share',\n\tDUPLICATE: 'duplicate',\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...useToast(),\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tcomponents: {\n\t\tTimeAgo,\n\t\tWorkflowActivator,\n\t},\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: (): IWorkflowDb => ({\n\t\t\t\tid: '',\n\t\t\t\tcreatedAt: '',\n\t\t\t\tupdatedAt: '',\n\t\t\t\tactive: false,\n\t\t\t\tconnections: {},\n\t\t\t\tnodes: [],\n\t\t\t\tname: '',\n\t\t\t\tsharedWith: [],\n\t\t\t\townedBy: {} as IUser,\n\t\t\t\tversionId: '',\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(useSettingsStore, useUIStore, useUsersStore, useWorkflowsStore),\n\t\tcurrentUser(): IUser {\n\t\t\treturn this.usersStore.currentUser || ({} as IUser);\n\t\t},\n\t\tworkflowPermissions(): IPermissions {\n\t\t\treturn getWorkflowPermissions(this.currentUser, this.data);\n\t\t},\n\t\tactions(): Array<{ label: string; value: string }> {\n\t\t\tconst actions = [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.item.open'),\n\t\t\t\t\tvalue: WORKFLOW_LIST_ITEM_ACTIONS.OPEN,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.item.share'),\n\t\t\t\t\tvalue: WORKFLOW_LIST_ITEM_ACTIONS.SHARE,\n\t\t\t\t},\n\t\t\t];\n\n\t\t\tif (!this.readOnly) {\n\t\t\t\tactions.push({\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.item.duplicate'),\n\t\t\t\t\tvalue: WORKFLOW_LIST_ITEM_ACTIONS.DUPLICATE,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.workflowPermissions.delete && !this.readOnly) {\n\t\t\t\tactions.push({\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.item.delete'),\n\t\t\t\t\tvalue: WORKFLOW_LIST_ITEM_ACTIONS.DELETE,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn actions;\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\tif (event.metaKey || event.ctrlKey) {\n\t\t\t\tconst route = this.$router.resolve({\n\t\t\t\t\tname: VIEWS.WORKFLOW,\n\t\t\t\t\tparams: { name: this.data.id },\n\t\t\t\t});\n\t\t\t\twindow.open(route.href, '_blank');\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tawait this.$router.push({\n\t\t\t\tname: VIEWS.WORKFLOW,\n\t\t\t\tparams: { name: this.data.id },\n\t\t\t});\n\t\t},\n\t\tonClickTag(tagId: string, event: PointerEvent) {\n\t\t\tevent.stopPropagation();\n\n\t\t\tthis.$emit('click:tag', tagId, event);\n\t\t},\n\t\tonExpandTags() {\n\t\t\tthis.$emit('expand:tags');\n\t\t},\n\t\tasync onAction(action: string) {\n\t\t\tif (action === WORKFLOW_LIST_ITEM_ACTIONS.OPEN) {\n\t\t\t\tawait this.onClick();\n\t\t\t} else if (action === WORKFLOW_LIST_ITEM_ACTIONS.DUPLICATE) {\n\t\t\t\tthis.uiStore.openModalWithData({\n\t\t\t\t\tname: DUPLICATE_MODAL_KEY,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tid: this.data.id,\n\t\t\t\t\t\tname: this.data.name,\n\t\t\t\t\t\ttags: (this.data.tags || []).map((tag: ITag) => tag.id),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} else if (action === WORKFLOW_LIST_ITEM_ACTIONS.SHARE) {\n\t\t\t\tthis.uiStore.openModalWithData({\n\t\t\t\t\tname: WORKFLOW_SHARE_MODAL_KEY,\n\t\t\t\t\tdata: { id: this.data.id },\n\t\t\t\t});\n\n\t\t\t\tthis.$telemetry.track('User opened sharing modal', {\n\t\t\t\t\tworkflow_id: this.data.id,\n\t\t\t\t\tuser_id_sharer: this.currentUser.id,\n\t\t\t\t\tsub_view: this.$route.name === VIEWS.WORKFLOWS ? 'Workflows listing' : 'Workflow editor',\n\t\t\t\t});\n\t\t\t} else if (action === WORKFLOW_LIST_ITEM_ACTIONS.DELETE) {\n\t\t\t\tconst deleteConfirmed = await this.confirm(\n\t\t\t\t\tthis.$locale.baseText('mainSidebar.confirmMessage.workflowDelete.message', {\n\t\t\t\t\t\tinterpolate: { workflowName: this.data.name },\n\t\t\t\t\t}),\n\t\t\t\t\tthis.$locale.baseText('mainSidebar.confirmMessage.workflowDelete.headline'),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'warning',\n\t\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t\t'mainSidebar.confirmMessage.workflowDelete.confirmButtonText',\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcancelButtonText: this.$locale.baseText(\n\t\t\t\t\t\t\t'mainSidebar.confirmMessage.workflowDelete.cancelButtonText',\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\treturn;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tawait this.workflowsStore.deleteWorkflow(this.data.id);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.showError(error, this.$locale.baseText('generic.deleteWorkflowError'));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Reset tab title since workflow is deleted.\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: this.$locale.baseText('mainSidebar.showMessage.handleSelect1.title'),\n\t\t\t\t\ttype: 'success',\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;\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\tword-break: break-word;\n\tpadding: var(--spacing-s) 0 0 var(--spacing-s);\n}\n\n.cardDescription {\n\tmin-height: 19px;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 0 0 var(--spacing-s) 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","<script setup lang=\"ts\">\nimport { type PropType, computed } from 'vue';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useTelemetry } from '@/composables/useTelemetry';\nimport type { ITemplatesCollection, ITemplatesNode, SuggestedTemplatesSection } from '@/Interface';\nimport TemplatesInfoCarousel from '@/components/TemplatesInfoCarousel.vue';\nimport { SUGGESTED_TEMPLATES_PREVIEW_MODAL_KEY } from '@/constants';\n\nconst uiStore = useUIStore();\nconst telemetry = useTelemetry();\n\nconst props = defineProps({\n\tsection: {\n\t\ttype: Object as PropType<SuggestedTemplatesSection>,\n\t\trequired: true,\n\t},\n\ttitle: {\n\t\ttype: String as PropType<string>,\n\t\trequired: false,\n\t},\n\tshowTitle: {\n\t\ttype: Boolean as PropType<boolean>,\n\t\tdefault: true,\n\t},\n});\n\nconst sectionTemplates = computed(() => {\n\tconst carouselCollections = Array<ITemplatesCollection>();\n\tif (!uiStore.suggestedTemplates) {\n\t\treturn carouselCollections;\n\t}\n\tprops.section.workflows.forEach((workflow, index) => {\n\t\tcarouselCollections.push({\n\t\t\tid: index,\n\t\t\tname: workflow.title,\n\t\t\tworkflows: [{ id: index }],\n\t\t\tnodes: workflow.nodes as ITemplatesNode[],\n\t\t});\n\t});\n\treturn carouselCollections;\n});\n\nfunction onOpenCollection({ id }: { event: Event; id: number }) {\n\tuiStore.openModalWithData({\n\t\tname: SUGGESTED_TEMPLATES_PREVIEW_MODAL_KEY,\n\t\tdata: { workflow: props.section.workflows[id] },\n\t});\n\ttelemetry.track(\n\t\t'User clicked template recommendation',\n\t\t{ templateName: props.section.workflows[id].title },\n\t\t{ withPostHog: true },\n\t);\n}\n</script>\n\n<template>\n\t<div :class=\"$style.container\" data-test-id=\"suggested-templates-section-container\">\n\t\t<div v-if=\"showTitle\" :class=\"$style.header\">\n\t\t\t<n8n-text size=\"large\" color=\"text-base\" :bold=\"true\">\n\t\t\t\t{{ props.title ?? section.title }}\n\t\t\t</n8n-text>\n\t\t</div>\n\t\t<div :class=\"$style.content\">\n\t\t\t<templates-info-carousel\n\t\t\t\t:collections=\"sectionTemplates\"\n\t\t\t\t:loading=\"false\"\n\t\t\t\t:showItemCount=\"false\"\n\t\t\t\t:showNavigation=\"false\"\n\t\t\t\tcardsWidth=\"24%\"\n\t\t\t\t@openCollection=\"onOpenCollection\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-l);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useRouter } from 'vue-router';\nimport { computed } from 'vue';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { VIEWS } from '@/constants';\nimport type { ITemplatesCollection } from '@/Interface';\nimport SuggestedTemplatesSection from '@/components/SuggestedTemplates/SuggestedTemplatesSection.vue';\nimport type { IUser } from '@/Interface';\n\nconst usersStore = useUsersStore();\nconst uiStore = useUIStore();\nconst router = useRouter();\n\nconst currentUser = computed(() => usersStore.currentUser);\n\nconst upperCaseFirstName = (user: IUser | null) => {\n\tif (!user || !user.firstName) return;\n\treturn user.firstName?.charAt(0)?.toUpperCase() + user?.firstName?.slice(1);\n};\n\nconst defaultSection = computed(() => {\n\tif (!uiStore.suggestedTemplates) {\n\t\treturn null;\n\t}\n\treturn uiStore.suggestedTemplates.sections[0];\n});\n\nconst suggestedTemplates = computed(() => {\n\tconst carouselCollections = Array<ITemplatesCollection>();\n\tif (!uiStore.suggestedTemplates || !defaultSection.value) {\n\t\treturn carouselCollections;\n\t}\n\tdefaultSection.value.workflows.forEach((workflow, index) => {\n\t\tcarouselCollections.push({\n\t\t\tid: index,\n\t\t\tname: workflow.title,\n\t\t\tworkflows: [{ id: index }],\n\t\t\tnodes: workflow.nodes,\n\t\t});\n\t});\n\treturn carouselCollections;\n});\n\nfunction openCanvas() {\n\tuiStore.nodeViewInitialized = false;\n\tvoid router.push({ name: VIEWS.NEW_WORKFLOW });\n}\n\ndefineExpose({\n\tcurrentUser,\n\topenCanvas,\n\tsuggestedTemplates,\n});\n</script>\n\n<template>\n\t<div :class=\"$style.container\" data-test-id=\"suggested-templates-page-container\">\n\t\t<div :class=\"$style.header\">\n\t\t\t<n8n-heading tag=\"h1\" size=\"2xlarge\" class=\"mb-2xs\">\n\t\t\t\t{{\n\t\t\t\t\t$locale.baseText('suggestedTemplates.heading', {\n\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\tname: upperCaseFirstName(currentUser) || $locale.baseText('generic.welcome'),\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t</n8n-heading>\n\t\t\t<n8n-text\n\t\t\t\tsize=\"large\"\n\t\t\t\tcolor=\"text-base\"\n\t\t\t\tdata-test-id=\"suggested-template-section-description\"\n\t\t\t>\n\t\t\t\t{{ defaultSection?.description }}\n\t\t\t</n8n-text>\n\t\t</div>\n\t\t<div :class=\"$style.content\">\n\t\t\t<suggested-templates-section\n\t\t\t\tv-for=\"section in uiStore.suggestedTemplates?.sections\"\n\t\t\t\t:key=\"section.title\"\n\t\t\t\t:section=\"section\"\n\t\t\t\t:showTitle=\"false\"\n\t\t\t/>\n\t\t</div>\n\t\t<div>\n\t\t\t<n8n-button\n\t\t\t\t:label=\"$locale.baseText('suggestedTemplates.newWorkflowButton')\"\n\t\t\t\ttype=\"secondary\"\n\t\t\t\tsize=\"medium\"\n\t\t\t\ticon=\"plus\"\n\t\t\t\tdata-test-id=\"suggested-templates-new-workflow-button\"\n\t\t\t\t@click=\"openCanvas\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-l);\n}\n\n.header {\n\tmargin-bottom: var(--spacing-l);\n}\n</style>\n","<template>\n\t<resources-list-layout\n\t\tref=\"layout\"\n\t\tresource-key=\"workflows\"\n\t\t:resources=\"allWorkflows\"\n\t\t:filters=\"filters\"\n\t\t:additional-filters-handler=\"onFilter\"\n\t\t:type-props=\"{ itemSize: 80 }\"\n\t\t:show-aside=\"allWorkflows.length > 0\"\n\t\t:shareable=\"isShareable\"\n\t\t:initialize=\"initialize\"\n\t\t:disabled=\"readOnlyEnv\"\n\t\t@click:add=\"addWorkflow\"\n\t\t@update:filters=\"filters = $event\"\n\t>\n\t\t<template #add-button=\"{ disabled }\">\n\t\t\t<n8n-tooltip :disabled=\"!readOnlyEnv\">\n\t\t\t\t<div>\n\t\t\t\t\t<n8n-button\n\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\tblock\n\t\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t\t@click=\"addWorkflow\"\n\t\t\t\t\t\tdata-test-id=\"resources-list-add\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ $locale.baseText(`workflows.add`) }}\n\t\t\t\t\t</n8n-button>\n\t\t\t\t</div>\n\t\t\t\t<template #content>\n\t\t\t\t\t{{ $locale.baseText('mainSidebar.workflows.readOnlyEnv.tooltip') }}\n\t\t\t\t</template>\n\t\t\t</n8n-tooltip>\n\t\t</template>\n\t\t<template #default=\"{ data, updateItemSize }\">\n\t\t\t<workflow-card\n\t\t\t\tdata-test-id=\"resources-list-item\"\n\t\t\t\tclass=\"mb-2xs\"\n\t\t\t\t:data=\"data\"\n\t\t\t\t@expand:tags=\"updateItemSize(data)\"\n\t\t\t\t@click:tag=\"onClickTag\"\n\t\t\t\t:readOnly=\"readOnlyEnv\"\n\t\t\t/>\n\t\t</template>\n\t\t<template #postListContent>\n\t\t\t<suggested-templates-section\n\t\t\t\tv-for=\"(section, key) in suggestedTemplates?.sections\"\n\t\t\t\t:key=\"key\"\n\t\t\t\t:section=\"section\"\n\t\t\t\t:title=\"\n\t\t\t\t\t$locale.baseText('suggestedTemplates.sectionTitle', {\n\t\t\t\t\t\tinterpolate: { sectionName: section.name.toLocaleLowerCase() },\n\t\t\t\t\t})\n\t\t\t\t\"\n\t\t\t/>\n\t\t</template>\n\t\t<template #empty>\n\t\t\t<suggested-templates-page v-if=\"suggestedTemplates\" />\n\t\t\t<div v-else>\n\t\t\t\t<div class=\"text-center mt-s\">\n\t\t\t\t\t<n8n-heading tag=\"h2\" size=\"xlarge\" class=\"mb-2xs\">\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t$locale.baseText(\n\t\t\t\t\t\t\t\tcurrentUser.firstName\n\t\t\t\t\t\t\t\t\t? 'workflows.empty.heading'\n\t\t\t\t\t\t\t\t\t: 'workflows.empty.heading.userNotSetup',\n\t\t\t\t\t\t\t\t{ interpolate: { name: currentUser.firstName } },\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}}\n\t\t\t\t\t</n8n-heading>\n\t\t\t\t\t<n8n-text size=\"large\" color=\"text-base\">\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t$locale.baseText(\n\t\t\t\t\t\t\t\treadOnlyEnv\n\t\t\t\t\t\t\t\t\t? 'workflows.empty.description.readOnlyEnv'\n\t\t\t\t\t\t\t\t\t: 'workflows.empty.description',\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"!readOnlyEnv\" :class=\"['text-center', 'mt-2xl', $style.actionsContainer]\">\n\t\t\t\t\t<n8n-card\n\t\t\t\t\t\t:class=\"$style.emptyStateCard\"\n\t\t\t\t\t\thoverable\n\t\t\t\t\t\t@click=\"addWorkflow\"\n\t\t\t\t\t\tdata-test-id=\"new-workflow-card\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<n8n-icon :class=\"$style.emptyStateCardIcon\" icon=\"file\" />\n\t\t\t\t\t\t<n8n-text size=\"large\" class=\"mt-xs\" color=\"text-base\">\n\t\t\t\t\t\t\t{{ $locale.baseText('workflows.empty.startFromScratch') }}\n\t\t\t\t\t\t</n8n-text>\n\t\t\t\t\t</n8n-card>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t<template #filters=\"{ setKeyValue }\">\n\t\t\t<div class=\"mb-s\" v-if=\"settingsStore.areTagsEnabled\">\n\t\t\t\t<n8n-input-label\n\t\t\t\t\t:label=\"$locale.baseText('workflows.filters.tags')\"\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<TagsDropdown\n\t\t\t\t\t:placeholder=\"$locale.baseText('workflowOpen.filterWorkflows')\"\n\t\t\t\t\t:modelValue=\"filters.tags\"\n\t\t\t\t\t:createEnabled=\"false\"\n\t\t\t\t\t@update:modelValue=\"setKeyValue('tags', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\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('workflows.filters.status')\"\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\tdata-test-id=\"status-dropdown\"\n\t\t\t\t\t:modelValue=\"filters.status\"\n\t\t\t\t\t@update:modelValue=\"setKeyValue('status', $event)\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"option in statusFilterOptions\"\n\t\t\t\t\t\t:key=\"option.label\"\n\t\t\t\t\t\t:label=\"option.label\"\n\t\t\t\t\t\t:value=\"option.value\"\n\t\t\t\t\t\tdata-test-id=\"status\"\n\t\t\t\t\t>\n\t\t\t\t\t</n8n-option>\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 { defineComponent } from 'vue';\nimport ResourcesListLayout from '@/components/layouts/ResourcesListLayout.vue';\nimport WorkflowCard from '@/components/WorkflowCard.vue';\nimport { EnterpriseEditionFeature, VIEWS } from '@/constants';\nimport type { ITag, IUser, IWorkflowDb } from '@/Interface';\nimport TagsDropdown from '@/components/TagsDropdown.vue';\nimport SuggestedTemplatesPage from '@/components/SuggestedTemplates/SuggestedTemplatesPage.vue';\nimport SuggestedTemplatesSection from '@/components/SuggestedTemplates/SuggestedTemplatesSection.vue';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useCredentialsStore } from '@/stores/credentials.store';\nimport { useSourceControlStore } from '@/stores/sourceControl.store';\nimport { genericHelpers } from '@/mixins/genericHelpers';\nimport { useTagsStore } from '@/stores/tags.store';\n\ntype IResourcesListLayoutInstance = InstanceType<typeof ResourcesListLayout>;\n\nconst StatusFilter = {\n\tACTIVE: true,\n\tDEACTIVATED: false,\n\tALL: '',\n};\n\nconst WorkflowsView = defineComponent({\n\tname: 'WorkflowsView',\n\tmixins: [genericHelpers],\n\tcomponents: {\n\t\tResourcesListLayout,\n\t\tWorkflowCard,\n\t\tTagsDropdown,\n\t\tSuggestedTemplatesPage,\n\t\tSuggestedTemplatesSection,\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\tstatus: StatusFilter.ALL as string | boolean,\n\t\t\t\ttags: [] as string[],\n\t\t\t},\n\t\t\tsourceControlStoreUnsubscribe: () => {},\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(\n\t\t\tuseSettingsStore,\n\t\t\tuseUIStore,\n\t\t\tuseUsersStore,\n\t\t\tuseWorkflowsStore,\n\t\t\tuseCredentialsStore,\n\t\t\tuseSourceControlStore,\n\t\t\tuseTagsStore,\n\t\t),\n\t\tcurrentUser(): IUser {\n\t\t\treturn this.usersStore.currentUser || ({} as IUser);\n\t\t},\n\t\tallWorkflows(): IWorkflowDb[] {\n\t\t\treturn this.workflowsStore.allWorkflows;\n\t\t},\n\t\tisShareable(): boolean {\n\t\t\treturn this.settingsStore.isEnterpriseFeatureEnabled(EnterpriseEditionFeature.Sharing);\n\t\t},\n\t\tstatusFilterOptions(): Array<{ label: string; value: string | boolean }> {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.filters.status.all'),\n\t\t\t\t\tvalue: StatusFilter.ALL,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.filters.status.active'),\n\t\t\t\t\tvalue: StatusFilter.ACTIVE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.filters.status.deactivated'),\n\t\t\t\t\tvalue: StatusFilter.DEACTIVATED,\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\tsuggestedTemplates() {\n\t\t\treturn this.uiStore.suggestedTemplates;\n\t\t},\n\t},\n\tmethods: {\n\t\taddWorkflow() {\n\t\t\tthis.uiStore.nodeViewInitialized = false;\n\t\t\tvoid this.$router.push({ name: VIEWS.NEW_WORKFLOW });\n\n\t\t\tthis.$telemetry.track('User clicked add workflow button', {\n\t\t\t\tsource: 'Workflows list',\n\t\t\t});\n\t\t},\n\t\tasync initialize() {\n\t\t\tawait Promise.all([\n\t\t\t\tthis.usersStore.fetchUsers(),\n\t\t\t\tthis.workflowsStore.fetchAllWorkflows(),\n\t\t\t\tthis.workflowsStore.fetchActiveWorkflows(),\n\t\t\t\tthis.credentialsStore.fetchAllCredentials(),\n\t\t\t]);\n\t\t},\n\t\tonClickTag(tagId: string, event: PointerEvent) {\n\t\t\tif (!this.filters.tags.includes(tagId)) {\n\t\t\t\tthis.filters.tags.push(tagId);\n\t\t\t}\n\t\t},\n\t\tonFilter(\n\t\t\tresource: IWorkflowDb,\n\t\t\tfilters: { tags: string[]; search: string; status: string | boolean },\n\t\t\tmatches: boolean,\n\t\t): boolean {\n\t\t\tthis.saveFiltersOnQueryString();\n\n\t\t\tif (this.settingsStore.areTagsEnabled && filters.tags.length > 0) {\n\t\t\t\tmatches =\n\t\t\t\t\tmatches &&\n\t\t\t\t\tfilters.tags.every(\n\t\t\t\t\t\t(tag) =>\n\t\t\t\t\t\t\t(resource.tags as ITag[])?.find((resourceTag) =>\n\t\t\t\t\t\t\t\ttypeof resourceTag === 'object'\n\t\t\t\t\t\t\t\t\t? `${resourceTag.id}` === `${tag}`\n\t\t\t\t\t\t\t\t\t: `${resourceTag}` === `${tag}`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (filters.status !== '') {\n\t\t\t\tmatches = matches && resource.active === filters.status;\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\tsaveFiltersOnQueryString() {\n\t\t\tconst query: { [key: string]: string } = {};\n\n\t\t\tif (this.filters.search) {\n\t\t\t\tquery.search = this.filters.search;\n\t\t\t}\n\n\t\t\tif (typeof this.filters.status !== 'string') {\n\t\t\t\tquery.status = this.filters.status.toString();\n\t\t\t}\n\n\t\t\tif (this.filters.tags.length) {\n\t\t\t\tquery.tags = this.filters.tags.join(',');\n\t\t\t}\n\n\t\t\tif (this.filters.ownedBy) {\n\t\t\t\tquery.ownedBy = this.filters.ownedBy;\n\t\t\t}\n\n\t\t\tif (this.filters.sharedWith) {\n\t\t\t\tquery.sharedWith = this.filters.sharedWith;\n\t\t\t}\n\n\t\t\tvoid this.$router.replace({\n\t\t\t\tname: VIEWS.WORKFLOWS,\n\t\t\t\tquery,\n\t\t\t});\n\t\t},\n\t\tisValidUserId(userId: string) {\n\t\t\treturn Object.keys(this.usersStore.users).includes(userId);\n\t\t},\n\t\tsetFiltersFromQueryString() {\n\t\t\tconst { tags, status, search, ownedBy, sharedWith } = this.$route.query;\n\n\t\t\tconst filtersToApply: { [key: string]: string | string[] | boolean } = {};\n\n\t\t\tif (ownedBy && typeof ownedBy === 'string' && this.isValidUserId(ownedBy)) {\n\t\t\t\tfiltersToApply.ownedBy = ownedBy;\n\t\t\t}\n\n\t\t\tif (sharedWith && typeof sharedWith === 'string' && this.isValidUserId(sharedWith)) {\n\t\t\t\tfiltersToApply.sharedWith = sharedWith;\n\t\t\t}\n\n\t\t\tif (search && typeof search === 'string') {\n\t\t\t\tfiltersToApply.search = search;\n\t\t\t}\n\n\t\t\tif (tags && typeof tags === 'string') {\n\t\t\t\tconst currentTags = this.tagsStore.allTags.map((tag) => tag.id);\n\t\t\t\tconst savedTags = tags.split(',').filter((tag) => currentTags.includes(tag));\n\t\t\t\tif (savedTags.length) {\n\t\t\t\t\tfiltersToApply.tags = savedTags;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tstatus &&\n\t\t\t\ttypeof status === 'string' &&\n\t\t\t\t[StatusFilter.ACTIVE.toString(), StatusFilter.DEACTIVATED.toString()].includes(status)\n\t\t\t) {\n\t\t\t\tfiltersToApply.status = status === 'true';\n\t\t\t}\n\n\t\t\tif (Object.keys(filtersToApply).length) {\n\t\t\t\tthis.filters = {\n\t\t\t\t\t...this.filters,\n\t\t\t\t\t...filtersToApply,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t},\n\twatch: {\n\t\t'filters.tags'() {\n\t\t\tthis.sendFiltersTelemetry('tags');\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.setFiltersFromQueryString();\n\n\t\tvoid this.usersStore.showPersonalizationSurvey();\n\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\nexport default WorkflowsView;\n</script>\n\n<style lang=\"scss\" module>\n.actionsContainer {\n\tdisplay: flex;\n\tjustify-content: center;\n}\n\n.emptyStateCard {\n\twidth: 192px;\n\ttext-align: center;\n\tdisplay: inline-flex;\n\theight: 230px;\n\n\t& + & {\n\t\tmargin-left: var(--spacing-s);\n\t}\n\n\t&:hover {\n\t\tsvg {\n\t\t\tcolor: var(--color-primary);\n\t\t}\n\t}\n}\n\n.emptyStateCardIcon {\n\tfont-size: 48px;\n\n\tsvg {\n\t\twidth: 48px !important;\n\t\tcolor: var(--color-foreground-dark);\n\t\ttransition: color 0.3s ease;\n\t}\n}\n</style>\n"],"names":["WORKFLOW_LIST_ITEM_ACTIONS","_sfc_main$3","defineComponent","EnterpriseEditionFeature","useToast","useMessage","TimeAgo","WorkflowActivator","mapStores","useSettingsStore","useUIStore","useUsersStore","useWorkflowsStore","getWorkflowPermissions","actions","currentYear","dateformat","event","_a","route","VIEWS","tagId","action","DUPLICATE_MODAL_KEY","tag","WORKFLOW_SHARE_MODAL_KEY","MODAL_CONFIRM","error","_resolveComponent","_openBlock","_createBlock","_component_n8n_card","_normalizeClass","_ctx","_withCtx","_createVNode","_component_n8n_heading","_createElementVNode","_component_n8n_badge","_component_workflow_activator","_component_n8n_action_toggle","_cache","_withModifiers","_component_n8n_text","_withDirectives","_createTextVNode","_toDisplayString","_component_time_ago","_vShow","_createElementBlock","_hoisted_1","_component_n8n_tags","uiStore","telemetry","useTelemetry","sectionTemplates","computed","carouselCollections","props","workflow","index","onOpenCollection","id","SUGGESTED_TEMPLATES_PREVIEW_MODAL_KEY","usersStore","router","useRouter","currentUser","upperCaseFirstName","user","_b","_c","defaultSection","suggestedTemplates","openCanvas","__expose","StatusFilter","WorkflowsView","genericHelpers","ResourcesListLayout","WorkflowCard","TagsDropdown","SuggestedTemplatesPage","SuggestedTemplatesSection","useCredentialsStore","useSourceControlStore","useTagsStore","resource","filters","matches","resourceTag","source","query","userId","tags","status","search","ownedBy","sharedWith","filtersToApply","currentTags","savedTags","name","after","_sfc_main","_hoisted_3","_component_resources_list_layout","$event","disabled","_component_n8n_tooltip","_component_n8n_button","data","updateItemSize","_component_workflow_card","_Fragment","_renderList","section","key","_component_suggested_templates_section","_component_suggested_templates_page","_hoisted_2","_component_n8n_icon","setKeyValue","_component_n8n_input_label","_component_TagsDropdown","_createCommentVNode","_hoisted_4","_component_n8n_select","option","_component_n8n_option"],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowsView-Qqq1sZTo.js","sources":["../../src/components/WorkflowCard.vue","../../src/components/SuggestedTemplates/SuggestedTemplatesSection.vue","../../src/components/SuggestedTemplates/SuggestedTemplatesPage.vue","../../src/views/WorkflowsView.vue"],"sourcesContent":["<template>\n\t<n8n-card :class=\"$style.cardLink\" @click=\"onClick\">\n\t\t<template #header>\n\t\t\t<n8n-heading tag=\"h2\" bold :class=\"$style.cardHeading\" data-test-id=\"workflow-card-name\">\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-show=\"data\"\n\t\t\t\t\t>{{ $locale.baseText('workflows.item.updated') }} <time-ago :date=\"data.updatedAt\" /> |\n\t\t\t\t</span>\n\t\t\t\t<span v-show=\"data\" class=\"mr-2xs\"\n\t\t\t\t\t>{{ $locale.baseText('workflows.item.created') }} {{ formattedCreatedAtDate }}\n\t\t\t\t</span>\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"settingsStore.areTagsEnabled && data.tags && data.tags.length > 0\"\n\t\t\t\t\tv-show=\"data\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-tags\n\t\t\t\t\t\t:tags=\"data.tags\"\n\t\t\t\t\t\t:truncateAt=\"3\"\n\t\t\t\t\t\ttruncate\n\t\t\t\t\t\t@click:tag=\"onClickTag\"\n\t\t\t\t\t\t@expand=\"onExpandTags\"\n\t\t\t\t\t\tdata-test-id=\"workflow-card-tags\"\n\t\t\t\t\t/>\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=\"workflowPermissions.isOwner\" class=\"mr-xs\" theme=\"tertiary\" bold>\n\t\t\t\t\t\t{{ $locale.baseText('workflows.item.owner') }}\n\t\t\t\t\t</n8n-badge>\n\t\t\t\t</enterprise-edition>\n\n\t\t\t\t<workflow-activator\n\t\t\t\t\tclass=\"mr-s\"\n\t\t\t\t\t:workflow-active=\"data.active\"\n\t\t\t\t\t:workflow-id=\"data.id\"\n\t\t\t\t\tdata-test-id=\"workflow-card-activator\"\n\t\t\t\t/>\n\n\t\t\t\t<n8n-action-toggle\n\t\t\t\t\t:actions=\"actions\"\n\t\t\t\t\ttheme=\"dark\"\n\t\t\t\t\t@action=\"onAction\"\n\t\t\t\t\t@click.stop\n\t\t\t\t\tdata-test-id=\"workflow-card-actions\"\n\t\t\t\t/>\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 { IWorkflowDb, IUser, ITag } from '@/Interface';\nimport {\n\tDUPLICATE_MODAL_KEY,\n\tEnterpriseEditionFeature,\n\tMODAL_CONFIRM,\n\tVIEWS,\n\tWORKFLOW_SHARE_MODAL_KEY,\n} from '@/constants';\nimport { useMessage } from '@/composables/useMessage';\nimport { useToast } from '@/composables/useToast';\nimport type { IPermissions } from '@/permissions';\nimport { getWorkflowPermissions } from '@/permissions';\nimport dateformat from 'dateformat';\nimport WorkflowActivator from '@/components/WorkflowActivator.vue';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport TimeAgo from '@/components/TimeAgo.vue';\n\nexport const WORKFLOW_LIST_ITEM_ACTIONS = {\n\tOPEN: 'open',\n\tSHARE: 'share',\n\tDUPLICATE: 'duplicate',\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...useToast(),\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tcomponents: {\n\t\tTimeAgo,\n\t\tWorkflowActivator,\n\t},\n\tprops: {\n\t\tdata: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t\tdefault: (): IWorkflowDb => ({\n\t\t\t\tid: '',\n\t\t\t\tcreatedAt: '',\n\t\t\t\tupdatedAt: '',\n\t\t\t\tactive: false,\n\t\t\t\tconnections: {},\n\t\t\t\tnodes: [],\n\t\t\t\tname: '',\n\t\t\t\tsharedWith: [],\n\t\t\t\townedBy: {} as IUser,\n\t\t\t\tversionId: '',\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(useSettingsStore, useUIStore, useUsersStore, useWorkflowsStore),\n\t\tcurrentUser(): IUser {\n\t\t\treturn this.usersStore.currentUser || ({} as IUser);\n\t\t},\n\t\tworkflowPermissions(): IPermissions {\n\t\t\treturn getWorkflowPermissions(this.currentUser, this.data);\n\t\t},\n\t\tactions(): Array<{ label: string; value: string }> {\n\t\t\tconst actions = [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.item.open'),\n\t\t\t\t\tvalue: WORKFLOW_LIST_ITEM_ACTIONS.OPEN,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.item.share'),\n\t\t\t\t\tvalue: WORKFLOW_LIST_ITEM_ACTIONS.SHARE,\n\t\t\t\t},\n\t\t\t];\n\n\t\t\tif (!this.readOnly) {\n\t\t\t\tactions.push({\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.item.duplicate'),\n\t\t\t\t\tvalue: WORKFLOW_LIST_ITEM_ACTIONS.DUPLICATE,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.workflowPermissions.delete && !this.readOnly) {\n\t\t\t\tactions.push({\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.item.delete'),\n\t\t\t\t\tvalue: WORKFLOW_LIST_ITEM_ACTIONS.DELETE,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn actions;\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\tif (event.metaKey || event.ctrlKey) {\n\t\t\t\tconst route = this.$router.resolve({\n\t\t\t\t\tname: VIEWS.WORKFLOW,\n\t\t\t\t\tparams: { name: this.data.id },\n\t\t\t\t});\n\t\t\t\twindow.open(route.href, '_blank');\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tawait this.$router.push({\n\t\t\t\tname: VIEWS.WORKFLOW,\n\t\t\t\tparams: { name: this.data.id },\n\t\t\t});\n\t\t},\n\t\tonClickTag(tagId: string, event: PointerEvent) {\n\t\t\tevent.stopPropagation();\n\n\t\t\tthis.$emit('click:tag', tagId, event);\n\t\t},\n\t\tonExpandTags() {\n\t\t\tthis.$emit('expand:tags');\n\t\t},\n\t\tasync onAction(action: string) {\n\t\t\tif (action === WORKFLOW_LIST_ITEM_ACTIONS.OPEN) {\n\t\t\t\tawait this.onClick();\n\t\t\t} else if (action === WORKFLOW_LIST_ITEM_ACTIONS.DUPLICATE) {\n\t\t\t\tthis.uiStore.openModalWithData({\n\t\t\t\t\tname: DUPLICATE_MODAL_KEY,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tid: this.data.id,\n\t\t\t\t\t\tname: this.data.name,\n\t\t\t\t\t\ttags: (this.data.tags || []).map((tag: ITag) => tag.id),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} else if (action === WORKFLOW_LIST_ITEM_ACTIONS.SHARE) {\n\t\t\t\tthis.uiStore.openModalWithData({\n\t\t\t\t\tname: WORKFLOW_SHARE_MODAL_KEY,\n\t\t\t\t\tdata: { id: this.data.id },\n\t\t\t\t});\n\n\t\t\t\tthis.$telemetry.track('User opened sharing modal', {\n\t\t\t\t\tworkflow_id: this.data.id,\n\t\t\t\t\tuser_id_sharer: this.currentUser.id,\n\t\t\t\t\tsub_view: this.$route.name === VIEWS.WORKFLOWS ? 'Workflows listing' : 'Workflow editor',\n\t\t\t\t});\n\t\t\t} else if (action === WORKFLOW_LIST_ITEM_ACTIONS.DELETE) {\n\t\t\t\tconst deleteConfirmed = await this.confirm(\n\t\t\t\t\tthis.$locale.baseText('mainSidebar.confirmMessage.workflowDelete.message', {\n\t\t\t\t\t\tinterpolate: { workflowName: this.data.name },\n\t\t\t\t\t}),\n\t\t\t\t\tthis.$locale.baseText('mainSidebar.confirmMessage.workflowDelete.headline'),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'warning',\n\t\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t\t'mainSidebar.confirmMessage.workflowDelete.confirmButtonText',\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcancelButtonText: this.$locale.baseText(\n\t\t\t\t\t\t\t'mainSidebar.confirmMessage.workflowDelete.cancelButtonText',\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\treturn;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tawait this.workflowsStore.deleteWorkflow(this.data.id);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.showError(error, this.$locale.baseText('generic.deleteWorkflowError'));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Reset tab title since workflow is deleted.\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: this.$locale.baseText('mainSidebar.showMessage.handleSelect1.title'),\n\t\t\t\t\ttype: 'success',\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;\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\tword-break: break-word;\n\tpadding: var(--spacing-s) 0 0 var(--spacing-s);\n}\n\n.cardDescription {\n\tmin-height: 19px;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 0 0 var(--spacing-s) 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","<script setup lang=\"ts\">\nimport { type PropType, computed } from 'vue';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useTelemetry } from '@/composables/useTelemetry';\nimport type { ITemplatesCollection, ITemplatesNode, SuggestedTemplatesSection } from '@/Interface';\nimport TemplatesInfoCarousel from '@/components/TemplatesInfoCarousel.vue';\nimport { SUGGESTED_TEMPLATES_PREVIEW_MODAL_KEY } from '@/constants';\n\nconst uiStore = useUIStore();\nconst telemetry = useTelemetry();\n\nconst props = defineProps({\n\tsection: {\n\t\ttype: Object as PropType<SuggestedTemplatesSection>,\n\t\trequired: true,\n\t},\n\ttitle: {\n\t\ttype: String as PropType<string>,\n\t\trequired: false,\n\t},\n\tshowTitle: {\n\t\ttype: Boolean as PropType<boolean>,\n\t\tdefault: true,\n\t},\n});\n\nconst sectionTemplates = computed(() => {\n\tconst carouselCollections = Array<ITemplatesCollection>();\n\tif (!uiStore.suggestedTemplates) {\n\t\treturn carouselCollections;\n\t}\n\tprops.section.workflows.forEach((workflow, index) => {\n\t\tcarouselCollections.push({\n\t\t\tid: index,\n\t\t\tname: workflow.title,\n\t\t\tworkflows: [{ id: index }],\n\t\t\tnodes: workflow.nodes as ITemplatesNode[],\n\t\t});\n\t});\n\treturn carouselCollections;\n});\n\nfunction onOpenCollection({ id }: { event: Event; id: number }) {\n\tuiStore.openModalWithData({\n\t\tname: SUGGESTED_TEMPLATES_PREVIEW_MODAL_KEY,\n\t\tdata: { workflow: props.section.workflows[id] },\n\t});\n\ttelemetry.track(\n\t\t'User clicked template recommendation',\n\t\t{ templateName: props.section.workflows[id].title },\n\t\t{ withPostHog: true },\n\t);\n}\n</script>\n\n<template>\n\t<div :class=\"$style.container\" data-test-id=\"suggested-templates-section-container\">\n\t\t<div v-if=\"showTitle\" :class=\"$style.header\">\n\t\t\t<n8n-text size=\"large\" color=\"text-base\" :bold=\"true\">\n\t\t\t\t{{ props.title ?? section.title }}\n\t\t\t</n8n-text>\n\t\t</div>\n\t\t<div :class=\"$style.content\">\n\t\t\t<templates-info-carousel\n\t\t\t\t:collections=\"sectionTemplates\"\n\t\t\t\t:loading=\"false\"\n\t\t\t\t:showItemCount=\"false\"\n\t\t\t\t:showNavigation=\"false\"\n\t\t\t\tcardsWidth=\"24%\"\n\t\t\t\t@openCollection=\"onOpenCollection\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-l);\n}\n</style>\n","<script setup lang=\"ts\">\nimport { useRouter } from 'vue-router';\nimport { computed } from 'vue';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { VIEWS } from '@/constants';\nimport type { ITemplatesCollection } from '@/Interface';\nimport SuggestedTemplatesSection from '@/components/SuggestedTemplates/SuggestedTemplatesSection.vue';\nimport type { IUser } from '@/Interface';\n\nconst usersStore = useUsersStore();\nconst uiStore = useUIStore();\nconst router = useRouter();\n\nconst currentUser = computed(() => usersStore.currentUser);\n\nconst upperCaseFirstName = (user: IUser | null) => {\n\tif (!user || !user.firstName) return;\n\treturn user.firstName?.charAt(0)?.toUpperCase() + user?.firstName?.slice(1);\n};\n\nconst defaultSection = computed(() => {\n\tif (!uiStore.suggestedTemplates) {\n\t\treturn null;\n\t}\n\treturn uiStore.suggestedTemplates.sections[0];\n});\n\nconst suggestedTemplates = computed(() => {\n\tconst carouselCollections = Array<ITemplatesCollection>();\n\tif (!uiStore.suggestedTemplates || !defaultSection.value) {\n\t\treturn carouselCollections;\n\t}\n\tdefaultSection.value.workflows.forEach((workflow, index) => {\n\t\tcarouselCollections.push({\n\t\t\tid: index,\n\t\t\tname: workflow.title,\n\t\t\tworkflows: [{ id: index }],\n\t\t\tnodes: workflow.nodes,\n\t\t});\n\t});\n\treturn carouselCollections;\n});\n\nfunction openCanvas() {\n\tuiStore.nodeViewInitialized = false;\n\tvoid router.push({ name: VIEWS.NEW_WORKFLOW });\n}\n\ndefineExpose({\n\tcurrentUser,\n\topenCanvas,\n\tsuggestedTemplates,\n});\n</script>\n\n<template>\n\t<div :class=\"$style.container\" data-test-id=\"suggested-templates-page-container\">\n\t\t<div :class=\"$style.header\">\n\t\t\t<n8n-heading tag=\"h1\" size=\"2xlarge\" class=\"mb-2xs\">\n\t\t\t\t{{\n\t\t\t\t\t$locale.baseText('suggestedTemplates.heading', {\n\t\t\t\t\t\tinterpolate: {\n\t\t\t\t\t\t\tname: upperCaseFirstName(currentUser) || $locale.baseText('generic.welcome'),\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t</n8n-heading>\n\t\t\t<n8n-text\n\t\t\t\tsize=\"large\"\n\t\t\t\tcolor=\"text-base\"\n\t\t\t\tdata-test-id=\"suggested-template-section-description\"\n\t\t\t>\n\t\t\t\t{{ defaultSection?.description }}\n\t\t\t</n8n-text>\n\t\t</div>\n\t\t<div :class=\"$style.content\">\n\t\t\t<suggested-templates-section\n\t\t\t\tv-for=\"section in uiStore.suggestedTemplates?.sections\"\n\t\t\t\t:key=\"section.title\"\n\t\t\t\t:section=\"section\"\n\t\t\t\t:showTitle=\"false\"\n\t\t\t/>\n\t\t</div>\n\t\t<div>\n\t\t\t<n8n-button\n\t\t\t\t:label=\"$locale.baseText('suggestedTemplates.newWorkflowButton')\"\n\t\t\t\ttype=\"secondary\"\n\t\t\t\tsize=\"medium\"\n\t\t\t\ticon=\"plus\"\n\t\t\t\tdata-test-id=\"suggested-templates-new-workflow-button\"\n\t\t\t\t@click=\"openCanvas\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-l);\n}\n\n.header {\n\tmargin-bottom: var(--spacing-l);\n}\n</style>\n","<template>\n\t<resources-list-layout\n\t\tref=\"layout\"\n\t\tresource-key=\"workflows\"\n\t\t:resources=\"allWorkflows\"\n\t\t:filters=\"filters\"\n\t\t:additional-filters-handler=\"onFilter\"\n\t\t:type-props=\"{ itemSize: 80 }\"\n\t\t:show-aside=\"allWorkflows.length > 0\"\n\t\t:shareable=\"isShareable\"\n\t\t:initialize=\"initialize\"\n\t\t:disabled=\"readOnlyEnv\"\n\t\t@click:add=\"addWorkflow\"\n\t\t@update:filters=\"filters = $event\"\n\t>\n\t\t<template #add-button=\"{ disabled }\">\n\t\t\t<n8n-tooltip :disabled=\"!readOnlyEnv\">\n\t\t\t\t<div>\n\t\t\t\t\t<n8n-button\n\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\tblock\n\t\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t\t@click=\"addWorkflow\"\n\t\t\t\t\t\tdata-test-id=\"resources-list-add\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ $locale.baseText(`workflows.add`) }}\n\t\t\t\t\t</n8n-button>\n\t\t\t\t</div>\n\t\t\t\t<template #content>\n\t\t\t\t\t{{ $locale.baseText('mainSidebar.workflows.readOnlyEnv.tooltip') }}\n\t\t\t\t</template>\n\t\t\t</n8n-tooltip>\n\t\t</template>\n\t\t<template #default=\"{ data, updateItemSize }\">\n\t\t\t<workflow-card\n\t\t\t\tdata-test-id=\"resources-list-item\"\n\t\t\t\tclass=\"mb-2xs\"\n\t\t\t\t:data=\"data\"\n\t\t\t\t@expand:tags=\"updateItemSize(data)\"\n\t\t\t\t@click:tag=\"onClickTag\"\n\t\t\t\t:readOnly=\"readOnlyEnv\"\n\t\t\t/>\n\t\t</template>\n\t\t<template #postListContent>\n\t\t\t<suggested-templates-section\n\t\t\t\tv-for=\"(section, key) in suggestedTemplates?.sections\"\n\t\t\t\t:key=\"key\"\n\t\t\t\t:section=\"section\"\n\t\t\t\t:title=\"\n\t\t\t\t\t$locale.baseText('suggestedTemplates.sectionTitle', {\n\t\t\t\t\t\tinterpolate: { sectionName: section.name.toLocaleLowerCase() },\n\t\t\t\t\t})\n\t\t\t\t\"\n\t\t\t/>\n\t\t</template>\n\t\t<template #empty>\n\t\t\t<suggested-templates-page v-if=\"suggestedTemplates\" />\n\t\t\t<div v-else>\n\t\t\t\t<div class=\"text-center mt-s\">\n\t\t\t\t\t<n8n-heading tag=\"h2\" size=\"xlarge\" class=\"mb-2xs\">\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t$locale.baseText(\n\t\t\t\t\t\t\t\tcurrentUser.firstName\n\t\t\t\t\t\t\t\t\t? 'workflows.empty.heading'\n\t\t\t\t\t\t\t\t\t: 'workflows.empty.heading.userNotSetup',\n\t\t\t\t\t\t\t\t{ interpolate: { name: currentUser.firstName } },\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}}\n\t\t\t\t\t</n8n-heading>\n\t\t\t\t\t<n8n-text size=\"large\" color=\"text-base\">\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t$locale.baseText(\n\t\t\t\t\t\t\t\treadOnlyEnv\n\t\t\t\t\t\t\t\t\t? 'workflows.empty.description.readOnlyEnv'\n\t\t\t\t\t\t\t\t\t: 'workflows.empty.description',\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"!readOnlyEnv\" :class=\"['text-center', 'mt-2xl', $style.actionsContainer]\">\n\t\t\t\t\t<n8n-card\n\t\t\t\t\t\t:class=\"$style.emptyStateCard\"\n\t\t\t\t\t\thoverable\n\t\t\t\t\t\t@click=\"addWorkflow\"\n\t\t\t\t\t\tdata-test-id=\"new-workflow-card\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<n8n-icon :class=\"$style.emptyStateCardIcon\" icon=\"file\" />\n\t\t\t\t\t\t<n8n-text size=\"large\" class=\"mt-xs\" color=\"text-base\">\n\t\t\t\t\t\t\t{{ $locale.baseText('workflows.empty.startFromScratch') }}\n\t\t\t\t\t\t</n8n-text>\n\t\t\t\t\t</n8n-card>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t\t<template #filters=\"{ setKeyValue }\">\n\t\t\t<div class=\"mb-s\" v-if=\"settingsStore.areTagsEnabled\">\n\t\t\t\t<n8n-input-label\n\t\t\t\t\t:label=\"$locale.baseText('workflows.filters.tags')\"\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<TagsDropdown\n\t\t\t\t\t:placeholder=\"$locale.baseText('workflowOpen.filterWorkflows')\"\n\t\t\t\t\t:modelValue=\"filters.tags\"\n\t\t\t\t\t:createEnabled=\"false\"\n\t\t\t\t\t@update:modelValue=\"setKeyValue('tags', $event)\"\n\t\t\t\t/>\n\t\t\t</div>\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('workflows.filters.status')\"\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\tdata-test-id=\"status-dropdown\"\n\t\t\t\t\t:modelValue=\"filters.status\"\n\t\t\t\t\t@update:modelValue=\"setKeyValue('status', $event)\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"option in statusFilterOptions\"\n\t\t\t\t\t\t:key=\"option.label\"\n\t\t\t\t\t\t:label=\"option.label\"\n\t\t\t\t\t\t:value=\"option.value\"\n\t\t\t\t\t\tdata-test-id=\"status\"\n\t\t\t\t\t>\n\t\t\t\t\t</n8n-option>\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 { defineComponent } from 'vue';\nimport ResourcesListLayout from '@/components/layouts/ResourcesListLayout.vue';\nimport WorkflowCard from '@/components/WorkflowCard.vue';\nimport { EnterpriseEditionFeature, VIEWS } from '@/constants';\nimport type { ITag, IUser, IWorkflowDb } from '@/Interface';\nimport TagsDropdown from '@/components/TagsDropdown.vue';\nimport SuggestedTemplatesPage from '@/components/SuggestedTemplates/SuggestedTemplatesPage.vue';\nimport SuggestedTemplatesSection from '@/components/SuggestedTemplates/SuggestedTemplatesSection.vue';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useCredentialsStore } from '@/stores/credentials.store';\nimport { useSourceControlStore } from '@/stores/sourceControl.store';\nimport { genericHelpers } from '@/mixins/genericHelpers';\nimport { useTagsStore } from '@/stores/tags.store';\n\ntype IResourcesListLayoutInstance = InstanceType<typeof ResourcesListLayout>;\n\nconst StatusFilter = {\n\tACTIVE: true,\n\tDEACTIVATED: false,\n\tALL: '',\n};\n\nconst WorkflowsView = defineComponent({\n\tname: 'WorkflowsView',\n\tmixins: [genericHelpers],\n\tcomponents: {\n\t\tResourcesListLayout,\n\t\tWorkflowCard,\n\t\tTagsDropdown,\n\t\tSuggestedTemplatesPage,\n\t\tSuggestedTemplatesSection,\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\tstatus: StatusFilter.ALL as string | boolean,\n\t\t\t\ttags: [] as string[],\n\t\t\t},\n\t\t\tsourceControlStoreUnsubscribe: () => {},\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(\n\t\t\tuseSettingsStore,\n\t\t\tuseUIStore,\n\t\t\tuseUsersStore,\n\t\t\tuseWorkflowsStore,\n\t\t\tuseCredentialsStore,\n\t\t\tuseSourceControlStore,\n\t\t\tuseTagsStore,\n\t\t),\n\t\tcurrentUser(): IUser {\n\t\t\treturn this.usersStore.currentUser || ({} as IUser);\n\t\t},\n\t\tallWorkflows(): IWorkflowDb[] {\n\t\t\treturn this.workflowsStore.allWorkflows;\n\t\t},\n\t\tisShareable(): boolean {\n\t\t\treturn this.settingsStore.isEnterpriseFeatureEnabled(EnterpriseEditionFeature.Sharing);\n\t\t},\n\t\tstatusFilterOptions(): Array<{ label: string; value: string | boolean }> {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.filters.status.all'),\n\t\t\t\t\tvalue: StatusFilter.ALL,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.filters.status.active'),\n\t\t\t\t\tvalue: StatusFilter.ACTIVE,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: this.$locale.baseText('workflows.filters.status.deactivated'),\n\t\t\t\t\tvalue: StatusFilter.DEACTIVATED,\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\tsuggestedTemplates() {\n\t\t\treturn this.uiStore.suggestedTemplates;\n\t\t},\n\t},\n\tmethods: {\n\t\taddWorkflow() {\n\t\t\tthis.uiStore.nodeViewInitialized = false;\n\t\t\tvoid this.$router.push({ name: VIEWS.NEW_WORKFLOW });\n\n\t\t\tthis.$telemetry.track('User clicked add workflow button', {\n\t\t\t\tsource: 'Workflows list',\n\t\t\t});\n\t\t},\n\t\tasync initialize() {\n\t\t\tawait Promise.all([\n\t\t\t\tthis.usersStore.fetchUsers(),\n\t\t\t\tthis.workflowsStore.fetchAllWorkflows(),\n\t\t\t\tthis.workflowsStore.fetchActiveWorkflows(),\n\t\t\t\tthis.credentialsStore.fetchAllCredentials(),\n\t\t\t]);\n\t\t},\n\t\tonClickTag(tagId: string, event: PointerEvent) {\n\t\t\tif (!this.filters.tags.includes(tagId)) {\n\t\t\t\tthis.filters.tags.push(tagId);\n\t\t\t}\n\t\t},\n\t\tonFilter(\n\t\t\tresource: IWorkflowDb,\n\t\t\tfilters: { tags: string[]; search: string; status: string | boolean },\n\t\t\tmatches: boolean,\n\t\t): boolean {\n\t\t\tthis.saveFiltersOnQueryString();\n\n\t\t\tif (this.settingsStore.areTagsEnabled && filters.tags.length > 0) {\n\t\t\t\tmatches =\n\t\t\t\t\tmatches &&\n\t\t\t\t\tfilters.tags.every(\n\t\t\t\t\t\t(tag) =>\n\t\t\t\t\t\t\t(resource.tags as ITag[])?.find((resourceTag) =>\n\t\t\t\t\t\t\t\ttypeof resourceTag === 'object'\n\t\t\t\t\t\t\t\t\t? `${resourceTag.id}` === `${tag}`\n\t\t\t\t\t\t\t\t\t: `${resourceTag}` === `${tag}`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (filters.status !== '') {\n\t\t\t\tmatches = matches && resource.active === filters.status;\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\tsaveFiltersOnQueryString() {\n\t\t\tconst query: { [key: string]: string } = {};\n\n\t\t\tif (this.filters.search) {\n\t\t\t\tquery.search = this.filters.search;\n\t\t\t}\n\n\t\t\tif (typeof this.filters.status !== 'string') {\n\t\t\t\tquery.status = this.filters.status.toString();\n\t\t\t}\n\n\t\t\tif (this.filters.tags.length) {\n\t\t\t\tquery.tags = this.filters.tags.join(',');\n\t\t\t}\n\n\t\t\tif (this.filters.ownedBy) {\n\t\t\t\tquery.ownedBy = this.filters.ownedBy;\n\t\t\t}\n\n\t\t\tif (this.filters.sharedWith) {\n\t\t\t\tquery.sharedWith = this.filters.sharedWith;\n\t\t\t}\n\n\t\t\tvoid this.$router.replace({\n\t\t\t\tname: VIEWS.WORKFLOWS,\n\t\t\t\tquery,\n\t\t\t});\n\t\t},\n\t\tisValidUserId(userId: string) {\n\t\t\treturn Object.keys(this.usersStore.users).includes(userId);\n\t\t},\n\t\tsetFiltersFromQueryString() {\n\t\t\tconst { tags, status, search, ownedBy, sharedWith } = this.$route.query;\n\n\t\t\tconst filtersToApply: { [key: string]: string | string[] | boolean } = {};\n\n\t\t\tif (ownedBy && typeof ownedBy === 'string' && this.isValidUserId(ownedBy)) {\n\t\t\t\tfiltersToApply.ownedBy = ownedBy;\n\t\t\t}\n\n\t\t\tif (sharedWith && typeof sharedWith === 'string' && this.isValidUserId(sharedWith)) {\n\t\t\t\tfiltersToApply.sharedWith = sharedWith;\n\t\t\t}\n\n\t\t\tif (search && typeof search === 'string') {\n\t\t\t\tfiltersToApply.search = search;\n\t\t\t}\n\n\t\t\tif (tags && typeof tags === 'string') {\n\t\t\t\tconst currentTags = this.tagsStore.allTags.map((tag) => tag.id);\n\t\t\t\tconst savedTags = tags.split(',').filter((tag) => currentTags.includes(tag));\n\t\t\t\tif (savedTags.length) {\n\t\t\t\t\tfiltersToApply.tags = savedTags;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tstatus &&\n\t\t\t\ttypeof status === 'string' &&\n\t\t\t\t[StatusFilter.ACTIVE.toString(), StatusFilter.DEACTIVATED.toString()].includes(status)\n\t\t\t) {\n\t\t\t\tfiltersToApply.status = status === 'true';\n\t\t\t}\n\n\t\t\tif (Object.keys(filtersToApply).length) {\n\t\t\t\tthis.filters = {\n\t\t\t\t\t...this.filters,\n\t\t\t\t\t...filtersToApply,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t},\n\twatch: {\n\t\t'filters.tags'() {\n\t\t\tthis.sendFiltersTelemetry('tags');\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.setFiltersFromQueryString();\n\n\t\tvoid this.usersStore.showPersonalizationSurvey();\n\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\nexport default WorkflowsView;\n</script>\n\n<style lang=\"scss\" module>\n.actionsContainer {\n\tdisplay: flex;\n\tjustify-content: center;\n}\n\n.emptyStateCard {\n\twidth: 192px;\n\ttext-align: center;\n\tdisplay: inline-flex;\n\theight: 230px;\n\n\t& + & {\n\t\tmargin-left: var(--spacing-s);\n\t}\n\n\t&:hover {\n\t\tsvg {\n\t\t\tcolor: var(--color-primary);\n\t\t}\n\t}\n}\n\n.emptyStateCardIcon {\n\tfont-size: 48px;\n\n\tsvg {\n\t\twidth: 48px !important;\n\t\tcolor: var(--color-foreground-dark);\n\t\ttransition: color 0.3s ease;\n\t}\n}\n</style>\n"],"names":["WORKFLOW_LIST_ITEM_ACTIONS","_sfc_main$3","defineComponent","EnterpriseEditionFeature","useToast","useMessage","TimeAgo","WorkflowActivator","mapStores","useSettingsStore","useUIStore","useUsersStore","useWorkflowsStore","getWorkflowPermissions","actions","currentYear","dateformat","event","_a","route","VIEWS","tagId","action","DUPLICATE_MODAL_KEY","tag","WORKFLOW_SHARE_MODAL_KEY","MODAL_CONFIRM","error","_resolveComponent","_openBlock","_createBlock","_component_n8n_card","_normalizeClass","_ctx","_withCtx","_createVNode","_component_n8n_heading","_createElementVNode","_component_n8n_badge","_component_workflow_activator","_component_n8n_action_toggle","_cache","_withModifiers","_component_n8n_text","_withDirectives","_createTextVNode","_toDisplayString","_component_time_ago","_vShow","_createElementBlock","_hoisted_1","_component_n8n_tags","uiStore","telemetry","useTelemetry","sectionTemplates","computed","carouselCollections","props","workflow","index","onOpenCollection","id","SUGGESTED_TEMPLATES_PREVIEW_MODAL_KEY","usersStore","router","useRouter","currentUser","upperCaseFirstName","user","_b","_c","defaultSection","suggestedTemplates","openCanvas","__expose","StatusFilter","WorkflowsView","genericHelpers","ResourcesListLayout","WorkflowCard","TagsDropdown","SuggestedTemplatesPage","SuggestedTemplatesSection","useCredentialsStore","useSourceControlStore","useTagsStore","resource","filters","matches","resourceTag","source","query","userId","tags","status","search","ownedBy","sharedWith","filtersToApply","currentTags","savedTags","name","after","_sfc_main","_hoisted_3","_component_resources_list_layout","$event","disabled","_component_n8n_tooltip","_component_n8n_button","data","updateItemSize","_component_workflow_card","_Fragment","_renderList","section","key","_component_suggested_templates_section","_component_suggested_templates_page","_hoisted_2","_component_n8n_icon","setKeyValue","_component_n8n_input_label","_component_TagsDropdown","_createCommentVNode","_hoisted_4","_component_n8n_select","option","_component_n8n_option"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{u as k,fV as _,v as D,B as d,U as N,ae as p}from"./n8n-ZKR6bms9.js";import{af as n}from"./index--RuZ5wHr.js";import"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./pinia-jX93eZRS.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";function S(){const e=k().fakeDoorFeatures.map(s=>({...s})),o=e.find(s=>s.id===_.ENVIRONMENTS);o&&(o.actionBoxTitle+=".cloud",o.linkURL+="&edition=cloud");const t=e.find(s=>s.id===_.LOGGING);return t&&(t.actionBoxTitle+=".cloud",t.linkURL+="&edition=cloud",t.infoText=""),e}const h=()=>{const r=k();r.fakeDoorFeatures=S()},a={sessionId:"",data:{nodeFilter:"",resultsNodes:[],filterMode:"Regular"}},g=()=>({eventName:"User entered nodes panel search term",properties:{search_string:a.data.nodeFilter,results_count:a.data.resultsNodes.length,results_nodes:a.data.resultsNodes,filter_mode:a.data.filterMode,nodes_panel_session_id:a.sessionId}}),y=()=>{a.sessionId=`nodes_panel_session_${new Date().valueOf()}`,a.data={nodeFilter:"",resultsNodes:[],filterMode:"Regular"}},E=r=>{var t;const e=D(),o=d();return{eventName:"User saved credentials",properties:{instance_id:e.instanceId,credential_type:r.credential_type,credential_id:r.credential_id,workflow_id:o.workflowId,node_type:(t=o.activeNode)==null?void 0:t.name,is_new:r.is_new}}},C=()=>{const r=d();return{eventName:"User opened workflow settings",properties:{workflow_id:r.workflowId,workflow_name:r.workflowName,current_settings:N(r.workflowSettings)}}},U=r=>{const e=d();return{eventName:"User updated workflow settings",properties:{workflow_id:e.workflowId,workflow_name:e.workflowName,new_settings:N(e.workflowSettings),old_settings:r.oldSettings}}},x=r=>{var o;return{eventName:"User opened node modal",properties:{node_name:(o=p().activeNode)==null?void 0:o.name,node_subtitle:r.nodeSubtitle}}},b=r=>{var o,t;const e=p();return{eventName:"User inserted item from Expression Editor variable selector",properties:{node_name:(o=e.activeNode)==null?void 0:o.name,node_type:(t=e.activeNode)==null?void 0:t.type.split(".")[1],parameter_name:r.parameter.displayName,variable_expression:r.selectedItem.variable}}},I=(r,e)=>{var s,i;const o=p(),t={eventName:"",properties:{}};return r.dialogVisible?(t.eventName="User opened Expression Editor",t.properties={node_name:(s=o.activeNode)==null?void 0:s.name,node_type:(i=o.activeNode)==null?void 0:i.type.split(".")[1],parameter_name:r.parameter.displayName,parameter_field_type:r.parameter.type,new_expression:e}):(t.eventName="User closed Expression Editor",t.properties={empty_expression:e,expression_value:r.value,expression_result:r.resolvedExpressionValue.slice(1)}),t},F=r=>{var o,t;const e=p();return{eventName:"User changed Authentication type from node modal",properties:{node_name:(o=e.activeNode)==null?void 0:o.name,node_type:(t=e.activeNode)==null?void 0:t.type.split(".")[1],old_mode:r.oldNodeParameters.authentication||(r.parameters.find(s=>s.name==="authentication")||{default:"default"}).default,new_mode:r.newValue}}},V=r=>{var o,t;const e=p();return{eventName:"User changed node output view mode",properties:{old_mode:r.oldValue,new_mode:r.newValue,node_name:(o=e.activeNode)==null?void 0:o.name,node_type:(t=e.activeNode)==null?void 0:t.type.split(".")[1]}}},M=r=>{var t,s,i,l,c,m,u,w,v,f;const e=d(),o={eventName:"",properties:{execution_id:e.activeExecutionId}};return(t=r.runDataExecutedStartData)!=null&&t.destinationNode?(o.eventName="Node execution finished",o.properties.node_type=(s=e.getNodeByName(r.nodeName||""))==null?void 0:s.type.split(".")[1],o.properties.node_name=r.nodeName):(o.eventName="Manual workflow execution finished",o.properties.workflow_id=e.workflowId,o.properties.workflow_name=e.workflowName),r.errorMessage||r.resultDataError?(o.properties.status="failed",o.properties.error_message=((i=r.resultDataError)==null?void 0:i.message)||"",o.properties.error_stack=((l=r.resultDataError)==null?void 0:l.stack)||"",o.properties.error_ui_message=r.errorMessage||"",o.properties.error_timestamp=new Date,r.resultDataError&&((c=r.resultDataError)!=null&&c.node)?o.properties.error_node=typeof((m=r.resultDataError)==null?void 0:m.node)=="string"?(u=r.resultDataError)==null?void 0:u.node:(v=(w=r.resultDataError)==null?void 0:w.node)==null?void 0:v.name:o.properties.error_node=r.nodeName):(o.properties.status="success",(f=r.runDataExecutedStartData)!=null&&f.destinationNode&&(o.properties.items_count=r.itemsCount||0)),o},R=r=>{const e=d();return{eventName:"User removed node from workflow canvas",properties:{node_name:r.node.name,node_type:r.node.type,node_disabled:r.node.disabled,workflow_id:e.workflowId}}},T=r=>{switch(r==null?void 0:r.type){case"n8n-nodes-base.httpRequest":const e=r.parameters.url.split("/")[2];return{eventName:"User finished httpRequest node editing",properties:{method:r.parameters.method,domain:e}};case"n8n-nodes-base.function":return{eventName:"User finished function node editing",properties:{node_name:r.name,code:r.parameters.functionCode}};case"n8n-nodes-base.functionItem":return{eventName:"User finished functionItem node editing",properties:{node_name:r.name,code:r.parameters.functionCode}};default:return}},O=r=>{var t;const e=d(),o={eventName:"",properties:{execution_id:e.activeExecutionId}};return r.nodeName?(o.eventName="User started node execution",o.properties.source="unknown",o.properties.node_type=(t=e.getNodeByName(r.nodeName))==null?void 0:t.type.split(".")[1],o.properties.node_name=r.nodeName,r.source==="RunData.ExecuteNodeButton"?o.properties.source="node_modal":r.source==="Node.executeNode"&&(o.properties.source="workflow_canvas")):(o.eventName="User started manual workflow execution",o.properties.workflow_id=e.workflowId,o.properties.workflow_name=e.workflowName),o},ce={app:{mount:[()=>{h()}]},nodeView:{mount:[()=>{n().identify()}],createNodeActiveChanged:[(r,e)=>{const o=n(),t={source:e.source,nodes_panel_session_id:a.sessionId};y(),o.track("User opened nodes panel",t),o.page("Cloud instance","Nodes panel",t)}],addNodeButton:[(r,e)=>{const o=n(),t={eventName:"User added node to workflow canvas",properties:{node_type:e.nodeTypeName.split(".")[1],nodes_panel_session_id:a.sessionId}};o.track(t.eventName,t.properties)}]},main:{routeChange:[(r,e)=>{const o=n(),t=e.to.path.split("/");if(e.from.path!=="/"&&t[1]==="workflow"){const s={workflow_id:t[2]};o.page("Cloud instance","Workflow editor",s)}}]},credential:{saved:[(r,e)=>{const o=n(),t=E(e);o.track(t.eventName,t.properties)}]},credentialsEdit:{credentialTypeChanged:[(r,e)=>{const o=n();if(e.newValue){const t={eventName:"User opened Credentials modal",properties:{source:e.setCredentialType===e.credentialType?"node":"primary_menu",new_credential:!e.editCredentials,credential_type:e.credentialType}};o.track(t.eventName,t.properties),o.page("Cloud instance","Credentials modal",t.properties)}}],credentialModalOpened:[(r,e)=>{const o=n(),t={eventName:"User opened Credentials modal",properties:{source:e.activeNode?"node":"primary_menu",new_credential:!e.isEditingCredential,credential_type:e.credentialType}};o.track(t.eventName,t.properties),o.page("Cloud instance","Credentials modal",t.properties)}]},credentialsList:{mounted:[()=>{const r=n(),e={eventName:"User opened global Credentials panel"};r.track(e.eventName),r.page("Cloud instance","Credentials panel")}],dialogVisibleChanged:[(r,e)=>{const o=n();if(e.dialogVisible){const t={eventName:"User opened global Credentials panel"};o.track(t.eventName),o.page("Cloud instance","Credentials panel")}}]},workflowSettings:{dialogVisibleChanged:[(r,e)=>{const o=n();if(e.dialogVisible){const t=C();o.track(t.eventName,t.properties)}}],saveSettings:[(r,e)=>{const o=n(),t=U(e);o.track(t.eventName,t.properties)}]},dataDisplay:{onDocumentationUrlClick:[(r,e)=>{const o=n(),t={eventName:"User clicked node modal docs link",properties:{node_type:e.nodeType.name.split(".")[1],docs_link:e.documentationUrl}};o.track(t.eventName,t.properties)}],nodeTypeChanged:[(r,e)=>{var i;const o=n(),t=p(),s=x(e);o.track(s.eventName,s.properties),o.page("Cloud instance","Node modal",{node:(i=t.activeNode)==null?void 0:i.name})}],nodeEditingFinished:[()=>{const r=n(),e=p(),o=d(),t=T(e.activeNode);t&&(t.properties.workflow_id=o.workflowId),t&&r.track(t.eventName,t.properties)}]},executionsList:{openDialog:[()=>{const r=n(),e={eventName:"User opened Executions log"};r.track(e.eventName),r.page("Cloud instance","Executions log")}]},showMessage:{showError:[(r,e)=>{const o=n(),t={eventName:"Instance FE emitted error",properties:{error_title:e.title,error_description:e.message,error_message:e.errorMessage}};o.track(t.eventName,t.properties)}]},expressionEdit:{itemSelected:[(r,e)=>{const o=n(),t=b(e);e.selectedItem.variable.startsWith("Object.keys")?t.properties.variable_type="Keys":e.selectedItem.variable.startsWith("Object.values")?t.properties.variable_type="Values":t.properties.variable_type="Raw value",o.track(t.eventName,t.properties)}],dialogVisibleChanged:[(r,e)=>{var l;const o=n(),t=((l=e.value)==null?void 0:l.slice(1))??"";let s=!1;switch(typeof e.parameter.default){case"boolean":s=t==="true"&&e.parameter.default||t==="false"&&!e.parameter.default;break;case"string":s=t===e.parameter.default;break;case"number":s=t===e.parameter.default.toString();break}const i=I(e,s);o.track(i.eventName,i.properties)}]},nodeSettings:{valueChanged:[(r,e)=>{const o=n();if(e.parameterPath!=="authentication")return;const t=F(e);o.track(t.eventName,t.properties)}],credentialSelected:[(r,e)=>{const o=n(),t=Object.keys(e.updateInformation.properties.credentials||{});if(t.length<1)return;const s={eventName:"User selected credential from node modal",properties:{credential_name:e.updateInformation.properties.credentials[t[0]],credential_type:t[0]}};o.track(s.eventName,s.properties)}]},workflowRun:{runWorkflow:[(r,e)=>{const o=n(),t=O(e);o.track(t.eventName,t.properties)}],runError:[(r,e)=>{const o=n(),t={eventName:e.nodeName?"Node execution finished":"Manual workflow execution finished",properties:{preflight:"true",status:"failed",error_message:e.errorMessages.join("<br />&nbsp;&nbsp;- "),error_timestamp:new Date,node_name:e.nodeName}};o.track(t.eventName,t.properties)}]},runData:{displayModeChanged:[(r,e)=>{const o=n(),t=V(e);o.track(t.eventName,t.properties)}]},pushConnection:{executionFinished:[(r,e)=>{const o=n(),t=M(e);o.track(t.eventName,t.properties)}]},node:{deleteNode:[(r,e)=>{const o=n(),t=R(e);o.track(t.eventName,t.properties)}]},workflow:{activeChange:[(r,e)=>{const o=n(),t={eventName:e.active&&"User activated workflow"||"User deactivated workflow",properties:{workflow_id:e.workflowId,source:"workflow_modal"}};o.track(t.eventName,t.properties)}],activeChangeCurrent:[(r,e)=>{const o=n(),t=d(),s={eventName:e.active&&"User activated workflow"||"User deactivated workflow",properties:{source:"main nav",workflow_id:e.workflowId,workflow_name:t.workflowName,workflow_nodes:t.allNodes.map(i=>i.type.split(".")[1])}};o.track(s.eventName,s.properties)}],afterUpdate:[(r,e)=>{const o=n(),t={eventName:"User saved workflow",properties:{workflow_id:e.workflowData.id,workflow_name:e.workflowData.name,workflow_nodes:e.workflowData.nodes.map(s=>s.type.split(".")[1])}};o.track(t.eventName,t.properties)}]},execution:{open:[(r,e)=>{const o=n(),t={eventName:"User opened read-only execution",properties:{workflow_id:e.workflowId,workflow_name:e.workflowName,execution_id:e.executionId}};o.track(t.eventName,t.properties)}]},nodeCreateList:{destroyed:[()=>{const r=n();if(a.data.nodeFilter.length>0&&a.data.nodeFilter!==""){const e=g();r.track(e.eventName,e.properties)}}],selectedTypeChanged:[(r,e)=>{const o=n(),t={eventName:"User changed nodes panel filter",properties:{old_filter:e.oldValue,new_filter:e.newValue,nodes_panel_session_id:a.sessionId}};a.data.filterMode=e.newValue,o.track(t.eventName,t.properties)}],nodeFilterChanged:[(r,e)=>{const o=n();if(e.newValue.length===0&&a.data.nodeFilter.length>0){const t=g();o.track(t.eventName,t.properties)}e.newValue.length>e.oldValue.length&&(a.data.nodeFilter=e.newValue,a.data.resultsNodes=e.filteredNodes.map(t=>t.name?t.name.split(".")[1]:t.key?t.key.split(".")[1]:""))}]}};export{ce as n8nCloudHooks};
2
- //# sourceMappingURL=cloud-JhkwKZAE.js.map
1
+ import{u as k,fV as _,v as D,B as d,U as N,ae as p}from"./n8n-ZKR6bms9.js";import{af as n}from"./index-RXjMHIPR.js";import"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./pinia-jX93eZRS.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";function S(){const e=k().fakeDoorFeatures.map(s=>({...s})),o=e.find(s=>s.id===_.ENVIRONMENTS);o&&(o.actionBoxTitle+=".cloud",o.linkURL+="&edition=cloud");const t=e.find(s=>s.id===_.LOGGING);return t&&(t.actionBoxTitle+=".cloud",t.linkURL+="&edition=cloud",t.infoText=""),e}const h=()=>{const r=k();r.fakeDoorFeatures=S()},a={sessionId:"",data:{nodeFilter:"",resultsNodes:[],filterMode:"Regular"}},g=()=>({eventName:"User entered nodes panel search term",properties:{search_string:a.data.nodeFilter,results_count:a.data.resultsNodes.length,results_nodes:a.data.resultsNodes,filter_mode:a.data.filterMode,nodes_panel_session_id:a.sessionId}}),y=()=>{a.sessionId=`nodes_panel_session_${new Date().valueOf()}`,a.data={nodeFilter:"",resultsNodes:[],filterMode:"Regular"}},E=r=>{var t;const e=D(),o=d();return{eventName:"User saved credentials",properties:{instance_id:e.instanceId,credential_type:r.credential_type,credential_id:r.credential_id,workflow_id:o.workflowId,node_type:(t=o.activeNode)==null?void 0:t.name,is_new:r.is_new}}},C=()=>{const r=d();return{eventName:"User opened workflow settings",properties:{workflow_id:r.workflowId,workflow_name:r.workflowName,current_settings:N(r.workflowSettings)}}},U=r=>{const e=d();return{eventName:"User updated workflow settings",properties:{workflow_id:e.workflowId,workflow_name:e.workflowName,new_settings:N(e.workflowSettings),old_settings:r.oldSettings}}},x=r=>{var o;return{eventName:"User opened node modal",properties:{node_name:(o=p().activeNode)==null?void 0:o.name,node_subtitle:r.nodeSubtitle}}},b=r=>{var o,t;const e=p();return{eventName:"User inserted item from Expression Editor variable selector",properties:{node_name:(o=e.activeNode)==null?void 0:o.name,node_type:(t=e.activeNode)==null?void 0:t.type.split(".")[1],parameter_name:r.parameter.displayName,variable_expression:r.selectedItem.variable}}},I=(r,e)=>{var s,i;const o=p(),t={eventName:"",properties:{}};return r.dialogVisible?(t.eventName="User opened Expression Editor",t.properties={node_name:(s=o.activeNode)==null?void 0:s.name,node_type:(i=o.activeNode)==null?void 0:i.type.split(".")[1],parameter_name:r.parameter.displayName,parameter_field_type:r.parameter.type,new_expression:e}):(t.eventName="User closed Expression Editor",t.properties={empty_expression:e,expression_value:r.value,expression_result:r.resolvedExpressionValue.slice(1)}),t},F=r=>{var o,t;const e=p();return{eventName:"User changed Authentication type from node modal",properties:{node_name:(o=e.activeNode)==null?void 0:o.name,node_type:(t=e.activeNode)==null?void 0:t.type.split(".")[1],old_mode:r.oldNodeParameters.authentication||(r.parameters.find(s=>s.name==="authentication")||{default:"default"}).default,new_mode:r.newValue}}},V=r=>{var o,t;const e=p();return{eventName:"User changed node output view mode",properties:{old_mode:r.oldValue,new_mode:r.newValue,node_name:(o=e.activeNode)==null?void 0:o.name,node_type:(t=e.activeNode)==null?void 0:t.type.split(".")[1]}}},M=r=>{var t,s,i,l,c,m,u,w,v,f;const e=d(),o={eventName:"",properties:{execution_id:e.activeExecutionId}};return(t=r.runDataExecutedStartData)!=null&&t.destinationNode?(o.eventName="Node execution finished",o.properties.node_type=(s=e.getNodeByName(r.nodeName||""))==null?void 0:s.type.split(".")[1],o.properties.node_name=r.nodeName):(o.eventName="Manual workflow execution finished",o.properties.workflow_id=e.workflowId,o.properties.workflow_name=e.workflowName),r.errorMessage||r.resultDataError?(o.properties.status="failed",o.properties.error_message=((i=r.resultDataError)==null?void 0:i.message)||"",o.properties.error_stack=((l=r.resultDataError)==null?void 0:l.stack)||"",o.properties.error_ui_message=r.errorMessage||"",o.properties.error_timestamp=new Date,r.resultDataError&&((c=r.resultDataError)!=null&&c.node)?o.properties.error_node=typeof((m=r.resultDataError)==null?void 0:m.node)=="string"?(u=r.resultDataError)==null?void 0:u.node:(v=(w=r.resultDataError)==null?void 0:w.node)==null?void 0:v.name:o.properties.error_node=r.nodeName):(o.properties.status="success",(f=r.runDataExecutedStartData)!=null&&f.destinationNode&&(o.properties.items_count=r.itemsCount||0)),o},R=r=>{const e=d();return{eventName:"User removed node from workflow canvas",properties:{node_name:r.node.name,node_type:r.node.type,node_disabled:r.node.disabled,workflow_id:e.workflowId}}},T=r=>{switch(r==null?void 0:r.type){case"n8n-nodes-base.httpRequest":const e=r.parameters.url.split("/")[2];return{eventName:"User finished httpRequest node editing",properties:{method:r.parameters.method,domain:e}};case"n8n-nodes-base.function":return{eventName:"User finished function node editing",properties:{node_name:r.name,code:r.parameters.functionCode}};case"n8n-nodes-base.functionItem":return{eventName:"User finished functionItem node editing",properties:{node_name:r.name,code:r.parameters.functionCode}};default:return}},O=r=>{var t;const e=d(),o={eventName:"",properties:{execution_id:e.activeExecutionId}};return r.nodeName?(o.eventName="User started node execution",o.properties.source="unknown",o.properties.node_type=(t=e.getNodeByName(r.nodeName))==null?void 0:t.type.split(".")[1],o.properties.node_name=r.nodeName,r.source==="RunData.ExecuteNodeButton"?o.properties.source="node_modal":r.source==="Node.executeNode"&&(o.properties.source="workflow_canvas")):(o.eventName="User started manual workflow execution",o.properties.workflow_id=e.workflowId,o.properties.workflow_name=e.workflowName),o},ce={app:{mount:[()=>{h()}]},nodeView:{mount:[()=>{n().identify()}],createNodeActiveChanged:[(r,e)=>{const o=n(),t={source:e.source,nodes_panel_session_id:a.sessionId};y(),o.track("User opened nodes panel",t),o.page("Cloud instance","Nodes panel",t)}],addNodeButton:[(r,e)=>{const o=n(),t={eventName:"User added node to workflow canvas",properties:{node_type:e.nodeTypeName.split(".")[1],nodes_panel_session_id:a.sessionId}};o.track(t.eventName,t.properties)}]},main:{routeChange:[(r,e)=>{const o=n(),t=e.to.path.split("/");if(e.from.path!=="/"&&t[1]==="workflow"){const s={workflow_id:t[2]};o.page("Cloud instance","Workflow editor",s)}}]},credential:{saved:[(r,e)=>{const o=n(),t=E(e);o.track(t.eventName,t.properties)}]},credentialsEdit:{credentialTypeChanged:[(r,e)=>{const o=n();if(e.newValue){const t={eventName:"User opened Credentials modal",properties:{source:e.setCredentialType===e.credentialType?"node":"primary_menu",new_credential:!e.editCredentials,credential_type:e.credentialType}};o.track(t.eventName,t.properties),o.page("Cloud instance","Credentials modal",t.properties)}}],credentialModalOpened:[(r,e)=>{const o=n(),t={eventName:"User opened Credentials modal",properties:{source:e.activeNode?"node":"primary_menu",new_credential:!e.isEditingCredential,credential_type:e.credentialType}};o.track(t.eventName,t.properties),o.page("Cloud instance","Credentials modal",t.properties)}]},credentialsList:{mounted:[()=>{const r=n(),e={eventName:"User opened global Credentials panel"};r.track(e.eventName),r.page("Cloud instance","Credentials panel")}],dialogVisibleChanged:[(r,e)=>{const o=n();if(e.dialogVisible){const t={eventName:"User opened global Credentials panel"};o.track(t.eventName),o.page("Cloud instance","Credentials panel")}}]},workflowSettings:{dialogVisibleChanged:[(r,e)=>{const o=n();if(e.dialogVisible){const t=C();o.track(t.eventName,t.properties)}}],saveSettings:[(r,e)=>{const o=n(),t=U(e);o.track(t.eventName,t.properties)}]},dataDisplay:{onDocumentationUrlClick:[(r,e)=>{const o=n(),t={eventName:"User clicked node modal docs link",properties:{node_type:e.nodeType.name.split(".")[1],docs_link:e.documentationUrl}};o.track(t.eventName,t.properties)}],nodeTypeChanged:[(r,e)=>{var i;const o=n(),t=p(),s=x(e);o.track(s.eventName,s.properties),o.page("Cloud instance","Node modal",{node:(i=t.activeNode)==null?void 0:i.name})}],nodeEditingFinished:[()=>{const r=n(),e=p(),o=d(),t=T(e.activeNode);t&&(t.properties.workflow_id=o.workflowId),t&&r.track(t.eventName,t.properties)}]},executionsList:{openDialog:[()=>{const r=n(),e={eventName:"User opened Executions log"};r.track(e.eventName),r.page("Cloud instance","Executions log")}]},showMessage:{showError:[(r,e)=>{const o=n(),t={eventName:"Instance FE emitted error",properties:{error_title:e.title,error_description:e.message,error_message:e.errorMessage}};o.track(t.eventName,t.properties)}]},expressionEdit:{itemSelected:[(r,e)=>{const o=n(),t=b(e);e.selectedItem.variable.startsWith("Object.keys")?t.properties.variable_type="Keys":e.selectedItem.variable.startsWith("Object.values")?t.properties.variable_type="Values":t.properties.variable_type="Raw value",o.track(t.eventName,t.properties)}],dialogVisibleChanged:[(r,e)=>{var l;const o=n(),t=((l=e.value)==null?void 0:l.slice(1))??"";let s=!1;switch(typeof e.parameter.default){case"boolean":s=t==="true"&&e.parameter.default||t==="false"&&!e.parameter.default;break;case"string":s=t===e.parameter.default;break;case"number":s=t===e.parameter.default.toString();break}const i=I(e,s);o.track(i.eventName,i.properties)}]},nodeSettings:{valueChanged:[(r,e)=>{const o=n();if(e.parameterPath!=="authentication")return;const t=F(e);o.track(t.eventName,t.properties)}],credentialSelected:[(r,e)=>{const o=n(),t=Object.keys(e.updateInformation.properties.credentials||{});if(t.length<1)return;const s={eventName:"User selected credential from node modal",properties:{credential_name:e.updateInformation.properties.credentials[t[0]],credential_type:t[0]}};o.track(s.eventName,s.properties)}]},workflowRun:{runWorkflow:[(r,e)=>{const o=n(),t=O(e);o.track(t.eventName,t.properties)}],runError:[(r,e)=>{const o=n(),t={eventName:e.nodeName?"Node execution finished":"Manual workflow execution finished",properties:{preflight:"true",status:"failed",error_message:e.errorMessages.join("<br />&nbsp;&nbsp;- "),error_timestamp:new Date,node_name:e.nodeName}};o.track(t.eventName,t.properties)}]},runData:{displayModeChanged:[(r,e)=>{const o=n(),t=V(e);o.track(t.eventName,t.properties)}]},pushConnection:{executionFinished:[(r,e)=>{const o=n(),t=M(e);o.track(t.eventName,t.properties)}]},node:{deleteNode:[(r,e)=>{const o=n(),t=R(e);o.track(t.eventName,t.properties)}]},workflow:{activeChange:[(r,e)=>{const o=n(),t={eventName:e.active&&"User activated workflow"||"User deactivated workflow",properties:{workflow_id:e.workflowId,source:"workflow_modal"}};o.track(t.eventName,t.properties)}],activeChangeCurrent:[(r,e)=>{const o=n(),t=d(),s={eventName:e.active&&"User activated workflow"||"User deactivated workflow",properties:{source:"main nav",workflow_id:e.workflowId,workflow_name:t.workflowName,workflow_nodes:t.allNodes.map(i=>i.type.split(".")[1])}};o.track(s.eventName,s.properties)}],afterUpdate:[(r,e)=>{const o=n(),t={eventName:"User saved workflow",properties:{workflow_id:e.workflowData.id,workflow_name:e.workflowData.name,workflow_nodes:e.workflowData.nodes.map(s=>s.type.split(".")[1])}};o.track(t.eventName,t.properties)}]},execution:{open:[(r,e)=>{const o=n(),t={eventName:"User opened read-only execution",properties:{workflow_id:e.workflowId,workflow_name:e.workflowName,execution_id:e.executionId}};o.track(t.eventName,t.properties)}]},nodeCreateList:{destroyed:[()=>{const r=n();if(a.data.nodeFilter.length>0&&a.data.nodeFilter!==""){const e=g();r.track(e.eventName,e.properties)}}],selectedTypeChanged:[(r,e)=>{const o=n(),t={eventName:"User changed nodes panel filter",properties:{old_filter:e.oldValue,new_filter:e.newValue,nodes_panel_session_id:a.sessionId}};a.data.filterMode=e.newValue,o.track(t.eventName,t.properties)}],nodeFilterChanged:[(r,e)=>{const o=n();if(e.newValue.length===0&&a.data.nodeFilter.length>0){const t=g();o.track(t.eventName,t.properties)}e.newValue.length>e.oldValue.length&&(a.data.nodeFilter=e.newValue,a.data.resultsNodes=e.filteredNodes.map(t=>t.name?t.name.split(".")[1]:t.key?t.key.split(".")[1]:""))}]}};export{ce as n8nCloudHooks};
2
+ //# sourceMappingURL=cloud-g7GqwUFZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-JhkwKZAE.js","sources":["../../src/hooks/utils/hooksAddFakeDoorFeatures.ts","../../src/hooks/utils/hooksNodesPanel.ts","../../src/hooks/segment/getters.ts","../../src/hooks/cloud.ts"],"sourcesContent":["import { useUIStore } from '@/stores/ui.store';\nimport type { IFakeDoor } from '@/Interface';\nimport { FAKE_DOOR_FEATURES } from '@/constants';\n\nexport function compileFakeDoorFeatures(): IFakeDoor[] {\n\tconst store = useUIStore();\n\tconst fakeDoorFeatures: IFakeDoor[] = store.fakeDoorFeatures.map((feature) => ({ ...feature }));\n\n\tconst environmentsFeature = fakeDoorFeatures.find(\n\t\t(feature) => feature.id === FAKE_DOOR_FEATURES.ENVIRONMENTS,\n\t);\n\tif (environmentsFeature) {\n\t\tenvironmentsFeature.actionBoxTitle += '.cloud';\n\t\tenvironmentsFeature.linkURL += '&edition=cloud';\n\t}\n\n\tconst loggingFeature = fakeDoorFeatures.find(\n\t\t(feature) => feature.id === FAKE_DOOR_FEATURES.LOGGING,\n\t);\n\tif (loggingFeature) {\n\t\tloggingFeature.actionBoxTitle += '.cloud';\n\t\tloggingFeature.linkURL += '&edition=cloud';\n\t\tloggingFeature.infoText = '';\n\t}\n\n\treturn fakeDoorFeatures;\n}\n\nexport const hooksAddFakeDoorFeatures = () => {\n\tconst store = useUIStore();\n\n\tstore.fakeDoorFeatures = compileFakeDoorFeatures();\n};\n","export const nodesPanelSession = {\n\tsessionId: '',\n\tdata: {\n\t\tnodeFilter: '',\n\t\tresultsNodes: [] as string[],\n\t\tfilterMode: 'Regular',\n\t},\n};\n\nexport const hooksGenerateNodesPanelEvent = () => {\n\treturn {\n\t\teventName: 'User entered nodes panel search term',\n\t\tproperties: {\n\t\t\tsearch_string: nodesPanelSession.data.nodeFilter,\n\t\t\tresults_count: nodesPanelSession.data.resultsNodes.length,\n\t\t\tresults_nodes: nodesPanelSession.data.resultsNodes,\n\t\t\tfilter_mode: nodesPanelSession.data.filterMode,\n\t\t\tnodes_panel_session_id: nodesPanelSession.sessionId,\n\t\t},\n\t};\n};\n\nexport const hooksResetNodesPanelSession = () => {\n\tnodesPanelSession.sessionId = `nodes_panel_session_${new Date().valueOf()}`;\n\tnodesPanelSession.data = {\n\t\tnodeFilter: '',\n\t\tresultsNodes: [],\n\t\tfilterMode: 'Regular',\n\t};\n};\n","import { deepCopy } from 'n8n-workflow';\nimport type {\n\tExecutionError,\n\tGenericValue,\n\tINodeParameters,\n\tINodeProperties,\n\tITelemetryTrackProperties,\n\tNodeParameterValue,\n\tINode,\n} from 'n8n-workflow';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport type { TelemetryEventData } from '@/hooks/types';\nimport type { INodeUi } from '@/Interface';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useRootStore } from '@/stores/n8nRoot.store';\n\nexport interface UserSavedCredentialsEventData {\n\tcredential_type: string;\n\tcredential_id: string;\n\tis_new: boolean;\n}\n\nexport const getUserSavedCredentialsEventData = (meta: UserSavedCredentialsEventData) => {\n\tconst rootStore = useRootStore();\n\tconst workflowsStore = useWorkflowsStore();\n\n\treturn {\n\t\teventName: 'User saved credentials',\n\t\tproperties: {\n\t\t\tinstance_id: rootStore.instanceId,\n\t\t\tcredential_type: meta.credential_type,\n\t\t\tcredential_id: meta.credential_id,\n\t\t\tworkflow_id: workflowsStore.workflowId,\n\t\t\tnode_type: workflowsStore.activeNode?.name,\n\t\t\tis_new: meta.is_new,\n\t\t\t// is_complete: true,\n\t\t\t// is_valid: true,\n\t\t\t// error_message: ''\n\t\t},\n\t};\n};\n\nexport const getOpenWorkflowSettingsEventData = (): TelemetryEventData => {\n\tconst workflowsStore = useWorkflowsStore();\n\n\treturn {\n\t\teventName: 'User opened workflow settings',\n\t\tproperties: {\n\t\t\tworkflow_id: workflowsStore.workflowId,\n\t\t\tworkflow_name: workflowsStore.workflowName,\n\t\t\tcurrent_settings: deepCopy(workflowsStore.workflowSettings),\n\t\t},\n\t};\n};\n\nexport interface UpdatedWorkflowSettingsEventData {\n\toldSettings: Record<string, unknown>;\n}\n\nexport const getUpdatedWorkflowSettingsEventData = (\n\tmeta: UpdatedWorkflowSettingsEventData,\n): TelemetryEventData => {\n\tconst workflowsStore = useWorkflowsStore();\n\n\treturn {\n\t\teventName: 'User updated workflow settings',\n\t\tproperties: {\n\t\t\tworkflow_id: workflowsStore.workflowId,\n\t\t\tworkflow_name: workflowsStore.workflowName,\n\t\t\tnew_settings: deepCopy(workflowsStore.workflowSettings),\n\t\t\told_settings: meta.oldSettings,\n\t\t},\n\t};\n};\n\nexport interface NodeTypeChangedEventData {\n\tnodeSubtitle?: string;\n}\n\nexport const getNodeTypeChangedEventData = (meta: NodeTypeChangedEventData): TelemetryEventData => {\n\tconst store = useNDVStore();\n\n\treturn {\n\t\teventName: 'User opened node modal',\n\t\tproperties: {\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_subtitle: meta.nodeSubtitle,\n\t\t},\n\t};\n};\n\nexport interface InsertedItemFromExpEditorEventData {\n\tparameter: {\n\t\tdisplayName: string;\n\t};\n\tvalue: string;\n\tselectedItem: {\n\t\tvariable: string;\n\t};\n}\n\nexport const getInsertedItemFromExpEditorEventData = (\n\tmeta: InsertedItemFromExpEditorEventData,\n): TelemetryEventData => {\n\tconst store = useNDVStore();\n\n\treturn {\n\t\teventName: 'User inserted item from Expression Editor variable selector',\n\t\tproperties: {\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_type: store.activeNode?.type.split('.')[1],\n\t\t\tparameter_name: meta.parameter.displayName,\n\t\t\tvariable_expression: meta.selectedItem.variable,\n\t\t} as ITelemetryTrackProperties,\n\t};\n};\n\nexport interface ExpressionEditorEventsData {\n\tdialogVisible: boolean;\n\tvalue: string;\n\tresolvedExpressionValue: string;\n\tparameter: INodeParameters;\n}\n\nexport const getExpressionEditorEventsData = (\n\tmeta: ExpressionEditorEventsData,\n\tisValueDefault: boolean,\n): TelemetryEventData => {\n\tconst store = useNDVStore();\n\tconst eventData: TelemetryEventData = {\n\t\teventName: '',\n\t\tproperties: {},\n\t};\n\n\tif (!meta.dialogVisible) {\n\t\teventData.eventName = 'User closed Expression Editor';\n\t\teventData.properties = {\n\t\t\tempty_expression: isValueDefault,\n\t\t\texpression_value: meta.value,\n\t\t\texpression_result: meta.resolvedExpressionValue.slice(1),\n\t\t};\n\t} else {\n\t\teventData.eventName = 'User opened Expression Editor';\n\t\teventData.properties = {\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_type: store.activeNode?.type.split('.')[1],\n\t\t\tparameter_name: meta.parameter.displayName,\n\t\t\tparameter_field_type: meta.parameter.type,\n\t\t\tnew_expression: isValueDefault,\n\t\t};\n\t}\n\treturn eventData;\n};\n\nexport interface AuthenticationModalEventData {\n\tparameterPath: string;\n\toldNodeParameters: Record<string, GenericValue>;\n\tparameters: INodeProperties[];\n\tnewValue: NodeParameterValue;\n}\nexport const getAuthenticationModalEventData = (\n\tmeta: AuthenticationModalEventData,\n): TelemetryEventData => {\n\tconst store = useNDVStore();\n\n\treturn {\n\t\teventName: 'User changed Authentication type from node modal',\n\t\tproperties: {\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_type: store.activeNode?.type.split('.')[1],\n\t\t\told_mode:\n\t\t\t\tmeta.oldNodeParameters.authentication ||\n\t\t\t\t(\n\t\t\t\t\tmeta.parameters.find((param) => param.name === 'authentication') || {\n\t\t\t\t\t\tdefault: 'default',\n\t\t\t\t\t}\n\t\t\t\t).default,\n\t\t\tnew_mode: meta.newValue,\n\t\t},\n\t};\n};\n\nexport interface OutputModeChangedEventData {\n\toldValue: string;\n\tnewValue: string;\n}\n\nexport const getOutputModeChangedEventData = (\n\tmeta: OutputModeChangedEventData,\n): TelemetryEventData => {\n\tconst store = useNDVStore();\n\n\treturn {\n\t\teventName: 'User changed node output view mode',\n\t\tproperties: {\n\t\t\told_mode: meta.oldValue,\n\t\t\tnew_mode: meta.newValue,\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_type: store.activeNode?.type.split('.')[1],\n\t\t},\n\t};\n};\n\nexport interface ExecutionFinishedEventData {\n\trunDataExecutedStartData:\n\t\t| { destinationNode?: string | undefined; runNodeFilter?: string[] | undefined }\n\t\t| undefined;\n\tnodeName?: string;\n\terrorMessage: string;\n\tresultDataError: ExecutionError | undefined;\n\titemsCount: number;\n}\n\nexport const getExecutionFinishedEventData = (\n\tmeta: ExecutionFinishedEventData,\n): TelemetryEventData => {\n\tconst store = useWorkflowsStore();\n\n\tconst eventData: TelemetryEventData = {\n\t\teventName: '',\n\t\tproperties: {\n\t\t\texecution_id: store.activeExecutionId,\n\t\t},\n\t};\n\n\tif (meta.runDataExecutedStartData?.destinationNode) {\n\t\teventData.eventName = 'Node execution finished';\n\t\teventData.properties!.node_type = store.getNodeByName(meta.nodeName || '')?.type.split('.')[1];\n\t\teventData.properties!.node_name = meta.nodeName;\n\t} else {\n\t\teventData.eventName = 'Manual workflow execution finished';\n\t\teventData.properties!.workflow_id = store.workflowId;\n\t\teventData.properties!.workflow_name = store.workflowName;\n\t}\n\n\tif (meta.errorMessage || meta.resultDataError) {\n\t\teventData.properties!.status = 'failed';\n\t\teventData.properties!.error_message = meta.resultDataError?.message || '';\n\t\teventData.properties!.error_stack = meta.resultDataError?.stack || '';\n\t\teventData.properties!.error_ui_message = meta.errorMessage || '';\n\t\teventData.properties!.error_timestamp = new Date();\n\n\t\tif (meta.resultDataError && (meta.resultDataError as unknown as { node: INodeUi })?.node) {\n\t\t\teventData.properties!.error_node =\n\t\t\t\ttypeof (meta.resultDataError as unknown as { node: string })?.node === 'string'\n\t\t\t\t\t? (meta.resultDataError as unknown as { node: string })?.node\n\t\t\t\t\t: (meta.resultDataError as unknown as { node: INodeUi })?.node?.name;\n\t\t} else {\n\t\t\teventData.properties!.error_node = meta.nodeName;\n\t\t}\n\t} else {\n\t\teventData.properties!.status = 'success';\n\t\tif (meta.runDataExecutedStartData?.destinationNode) {\n\t\t\t// Node execution finished\n\t\t\teventData.properties!.items_count = meta.itemsCount || 0;\n\t\t}\n\t}\n\treturn eventData;\n};\n\nexport interface NodeRemovedEventData {\n\tnode: INodeUi;\n}\n\nexport const getNodeRemovedEventData = (meta: NodeRemovedEventData): TelemetryEventData => {\n\tconst workflowsStore = useWorkflowsStore();\n\n\treturn {\n\t\teventName: 'User removed node from workflow canvas',\n\t\tproperties: {\n\t\t\tnode_name: meta.node.name,\n\t\t\tnode_type: meta.node.type,\n\t\t\tnode_disabled: meta.node.disabled,\n\t\t\tworkflow_id: workflowsStore.workflowId,\n\t\t},\n\t};\n};\n\nexport const getNodeEditingFinishedEventData = (\n\tactiveNode: INode | null,\n): TelemetryEventData | undefined => {\n\tswitch (activeNode?.type) {\n\t\tcase 'n8n-nodes-base.httpRequest':\n\t\t\tconst domain = (activeNode.parameters.url as string).split('/')[2];\n\t\t\treturn {\n\t\t\t\teventName: 'User finished httpRequest node editing',\n\t\t\t\tproperties: {\n\t\t\t\t\tmethod: activeNode.parameters.method,\n\t\t\t\t\tdomain,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'n8n-nodes-base.function':\n\t\t\treturn {\n\t\t\t\teventName: 'User finished function node editing',\n\t\t\t\tproperties: {\n\t\t\t\t\tnode_name: activeNode.name,\n\t\t\t\t\tcode: activeNode.parameters.functionCode,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'n8n-nodes-base.functionItem':\n\t\t\treturn {\n\t\t\t\teventName: 'User finished functionItem node editing',\n\t\t\t\tproperties: {\n\t\t\t\t\tnode_name: activeNode.name,\n\t\t\t\t\tcode: activeNode.parameters.functionCode,\n\t\t\t\t},\n\t\t\t};\n\t\tdefault:\n\t\t\treturn;\n\t}\n};\n\nexport interface ExecutionStartedEventData {\n\tnodeName?: string;\n\tsource?: string;\n}\n\nexport const getExecutionStartedEventData = (\n\tmeta: ExecutionStartedEventData,\n): TelemetryEventData => {\n\tconst store = useWorkflowsStore();\n\n\tconst eventData: TelemetryEventData = {\n\t\teventName: '',\n\t\tproperties: {\n\t\t\texecution_id: store.activeExecutionId,\n\t\t},\n\t};\n\n\t// node execution\n\tif (meta.nodeName) {\n\t\teventData.eventName = 'User started node execution';\n\t\teventData.properties!.source = 'unknown';\n\t\teventData.properties!.node_type = store.getNodeByName(meta.nodeName)?.type.split('.')[1];\n\t\teventData.properties!.node_name = meta.nodeName;\n\n\t\tif (meta.source === 'RunData.ExecuteNodeButton') {\n\t\t\teventData.properties!.source = 'node_modal';\n\t\t} else if (meta.source === 'Node.executeNode') {\n\t\t\teventData.properties!.source = 'workflow_canvas';\n\t\t}\n\t} else {\n\t\t// workflow execution\n\t\teventData.eventName = 'User started manual workflow execution';\n\t\teventData.properties!.workflow_id = store.workflowId;\n\t\teventData.properties!.workflow_name = store.workflowName;\n\t}\n\n\treturn eventData;\n};\n","import { hooksAddFakeDoorFeatures } from '@/hooks/utils';\nimport {\n\tgetAuthenticationModalEventData,\n\tgetExpressionEditorEventsData,\n\tgetInsertedItemFromExpEditorEventData,\n\tgetNodeTypeChangedEventData,\n\tgetOpenWorkflowSettingsEventData,\n\tgetOutputModeChangedEventData,\n\tgetUpdatedWorkflowSettingsEventData,\n\tgetUserSavedCredentialsEventData,\n\tgetExecutionFinishedEventData,\n\tgetNodeRemovedEventData,\n\tgetNodeEditingFinishedEventData,\n\tgetExecutionStartedEventData,\n} from '@/hooks/segment';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport {\n\thooksGenerateNodesPanelEvent,\n\thooksResetNodesPanelSession,\n\tnodesPanelSession,\n} from '@/hooks/utils/hooksNodesPanel';\nimport { useSegment } from '@/stores/segment.store';\nimport type { PartialDeep } from 'type-fest';\nimport type { IDataObject } from 'n8n-workflow';\nimport type { INodeUi } from '@/Interface';\nimport type { ExternalHooks } from '@/types';\n\nexport const n8nCloudHooks: PartialDeep<ExternalHooks> = {\n\tapp: {\n\t\tmount: [\n\t\t\t() => {\n\t\t\t\thooksAddFakeDoorFeatures();\n\t\t\t},\n\t\t],\n\t},\n\tnodeView: {\n\t\tmount: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tsegmentStore.identify();\n\t\t\t},\n\t\t],\n\t\tcreateNodeActiveChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\tsource: meta.source,\n\t\t\t\t\tnodes_panel_session_id: nodesPanelSession.sessionId,\n\t\t\t\t};\n\n\t\t\t\thooksResetNodesPanelSession();\n\t\t\t\tsegmentStore.track('User opened nodes panel', eventData);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Nodes panel', eventData);\n\t\t\t},\n\t\t],\n\t\taddNodeButton: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User added node to workflow canvas',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tnode_type: meta.nodeTypeName.split('.')[1],\n\t\t\t\t\t\tnodes_panel_session_id: nodesPanelSession.sessionId,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tmain: {\n\t\trouteChange: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst splitPath = meta.to.path.split('/');\n\t\t\t\tif (meta.from.path !== '/' && splitPath[1] === 'workflow') {\n\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\tworkflow_id: splitPath[2],\n\t\t\t\t\t};\n\n\t\t\t\t\tsegmentStore.page('Cloud instance', 'Workflow editor', eventData);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t},\n\tcredential: {\n\t\tsaved: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getUserSavedCredentialsEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tcredentialsEdit: {\n\t\tcredentialTypeChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.newValue) {\n\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\teventName: 'User opened Credentials modal',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tsource: meta.setCredentialType === meta.credentialType ? 'node' : 'primary_menu',\n\t\t\t\t\t\t\tnew_credential: !meta.editCredentials,\n\t\t\t\t\t\t\tcredential_type: meta.credentialType,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t\tsegmentStore.page('Cloud instance', 'Credentials modal', eventData.properties);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t\tcredentialModalOpened: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User opened Credentials modal',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tsource: meta.activeNode ? 'node' : 'primary_menu',\n\t\t\t\t\t\tnew_credential: !meta.isEditingCredential,\n\t\t\t\t\t\tcredential_type: meta.credentialType,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Credentials modal', eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tcredentialsList: {\n\t\tmounted: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User opened global Credentials panel',\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Credentials panel');\n\t\t\t},\n\t\t],\n\t\tdialogVisibleChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.dialogVisible) {\n\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\teventName: 'User opened global Credentials panel',\n\t\t\t\t\t};\n\n\t\t\t\t\tsegmentStore.track(eventData.eventName);\n\t\t\t\t\tsegmentStore.page('Cloud instance', 'Credentials panel');\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t},\n\tworkflowSettings: {\n\t\tdialogVisibleChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.dialogVisible) {\n\t\t\t\t\tconst eventData = getOpenWorkflowSettingsEventData();\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t\tsaveSettings: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getUpdatedWorkflowSettingsEventData(meta);\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tdataDisplay: {\n\t\tonDocumentationUrlClick: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User clicked node modal docs link',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tnode_type: meta.nodeType.name.split('.')[1],\n\t\t\t\t\t\tdocs_link: meta.documentationUrl,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tnodeTypeChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst ndvStore = useNDVStore();\n\t\t\t\tconst eventData = getNodeTypeChangedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Node modal', {\n\t\t\t\t\tnode: ndvStore.activeNode?.name,\n\t\t\t\t});\n\t\t\t},\n\t\t],\n\t\tnodeEditingFinished: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst ndvStore = useNDVStore();\n\t\t\t\tconst workflowsStore = useWorkflowsStore();\n\n\t\t\t\tconst eventData = getNodeEditingFinishedEventData(ndvStore.activeNode);\n\t\t\t\tif (eventData) {\n\t\t\t\t\teventData.properties!.workflow_id = workflowsStore.workflowId;\n\t\t\t\t}\n\n\t\t\t\tif (eventData) {\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t},\n\texecutionsList: {\n\t\topenDialog: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User opened Executions log',\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Executions log');\n\t\t\t},\n\t\t],\n\t},\n\tshowMessage: {\n\t\tshowError: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'Instance FE emitted error',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\terror_title: meta.title,\n\t\t\t\t\t\terror_description: meta.message,\n\t\t\t\t\t\terror_message: meta.errorMessage,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\texpressionEdit: {\n\t\titemSelected: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getInsertedItemFromExpEditorEventData(meta);\n\n\t\t\t\tif (meta.selectedItem.variable.startsWith('Object.keys')) {\n\t\t\t\t\teventData.properties!.variable_type = 'Keys';\n\t\t\t\t} else if (meta.selectedItem.variable.startsWith('Object.values')) {\n\t\t\t\t\teventData.properties!.variable_type = 'Values';\n\t\t\t\t} else {\n\t\t\t\t\teventData.properties!.variable_type = 'Raw value';\n\t\t\t\t}\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tdialogVisibleChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst currentValue = meta.value?.slice(1) ?? '';\n\t\t\t\tlet isValueDefault = false;\n\n\t\t\t\tswitch (typeof meta.parameter.default) {\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\tisValueDefault =\n\t\t\t\t\t\t\t(currentValue === 'true' && meta.parameter.default) ||\n\t\t\t\t\t\t\t(currentValue === 'false' && !meta.parameter.default);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'string':\n\t\t\t\t\t\tisValueDefault = currentValue === meta.parameter.default;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'number':\n\t\t\t\t\t\tisValueDefault = currentValue === meta.parameter.default.toString();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tconst eventData = getExpressionEditorEventsData(meta, isValueDefault);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tnodeSettings: {\n\t\tvalueChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.parameterPath !== 'authentication') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst eventData = getAuthenticationModalEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tcredentialSelected: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst creds = Object.keys(meta.updateInformation.properties.credentials || {});\n\t\t\t\tif (creds.length < 1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User selected credential from node modal',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tcredential_name: (meta.updateInformation.properties.credentials as IDataObject)[\n\t\t\t\t\t\t\tcreds[0]\n\t\t\t\t\t\t],\n\t\t\t\t\t\tcredential_type: creds[0],\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tworkflowRun: {\n\t\trunWorkflow: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getExecutionStartedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\trunError: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: meta.nodeName\n\t\t\t\t\t\t? 'Node execution finished'\n\t\t\t\t\t\t: 'Manual workflow execution finished',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tpreflight: 'true',\n\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\terror_message: meta.errorMessages.join('<br />&nbsp;&nbsp;- '),\n\t\t\t\t\t\terror_timestamp: new Date(),\n\t\t\t\t\t\tnode_name: meta.nodeName,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\trunData: {\n\t\tdisplayModeChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getOutputModeChangedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tpushConnection: {\n\t\texecutionFinished: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getExecutionFinishedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tnode: {\n\t\tdeleteNode: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getNodeRemovedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tworkflow: {\n\t\tactiveChange: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: (meta.active && 'User activated workflow') || 'User deactivated workflow',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tworkflow_id: meta.workflowId,\n\t\t\t\t\t\tsource: 'workflow_modal',\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tactiveChangeCurrent: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst workflowsStore = useWorkflowsStore();\n\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: (meta.active && 'User activated workflow') || 'User deactivated workflow',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tsource: 'main nav',\n\t\t\t\t\t\tworkflow_id: meta.workflowId,\n\t\t\t\t\t\tworkflow_name: workflowsStore.workflowName,\n\t\t\t\t\t\tworkflow_nodes: workflowsStore.allNodes.map((n) => n.type.split('.')[1]),\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tafterUpdate: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User saved workflow',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tworkflow_id: meta.workflowData.id,\n\t\t\t\t\t\tworkflow_name: meta.workflowData.name,\n\t\t\t\t\t\tworkflow_nodes: meta.workflowData.nodes.map((n) => n.type.split('.')[1]),\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\texecution: {\n\t\topen: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User opened read-only execution',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tworkflow_id: meta.workflowId,\n\t\t\t\t\t\tworkflow_name: meta.workflowName,\n\t\t\t\t\t\texecution_id: meta.executionId,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tnodeCreateList: {\n\t\tdestroyed: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (\n\t\t\t\t\tnodesPanelSession.data.nodeFilter.length > 0 &&\n\t\t\t\t\tnodesPanelSession.data.nodeFilter !== ''\n\t\t\t\t) {\n\t\t\t\t\tconst eventData = hooksGenerateNodesPanelEvent();\n\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t\tselectedTypeChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User changed nodes panel filter',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\told_filter: meta.oldValue,\n\t\t\t\t\t\tnew_filter: meta.newValue,\n\t\t\t\t\t\tnodes_panel_session_id: nodesPanelSession.sessionId,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tnodesPanelSession.data.filterMode = meta.newValue;\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tnodeFilterChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.newValue.length === 0 && nodesPanelSession.data.nodeFilter.length > 0) {\n\t\t\t\t\tconst eventData = hooksGenerateNodesPanelEvent();\n\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t}\n\n\t\t\t\tif (meta.newValue.length > meta.oldValue.length) {\n\t\t\t\t\tnodesPanelSession.data.nodeFilter = meta.newValue;\n\t\t\t\t\tnodesPanelSession.data.resultsNodes = meta.filteredNodes.map((node) => {\n\t\t\t\t\t\tif ((node as unknown as INodeUi).name) {\n\t\t\t\t\t\t\treturn (node as unknown as INodeUi).name.split('.')[1];\n\t\t\t\t\t\t} else if (node.key) {\n\t\t\t\t\t\t\treturn node.key.split('.')[1];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t},\n};\n"],"names":["compileFakeDoorFeatures","fakeDoorFeatures","useUIStore","feature","environmentsFeature","FAKE_DOOR_FEATURES","loggingFeature","hooksAddFakeDoorFeatures","store","nodesPanelSession","hooksGenerateNodesPanelEvent","hooksResetNodesPanelSession","getUserSavedCredentialsEventData","meta","rootStore","useRootStore","workflowsStore","useWorkflowsStore","_a","getOpenWorkflowSettingsEventData","deepCopy","getUpdatedWorkflowSettingsEventData","getNodeTypeChangedEventData","useNDVStore","getInsertedItemFromExpEditorEventData","_b","getExpressionEditorEventsData","isValueDefault","eventData","getAuthenticationModalEventData","param","getOutputModeChangedEventData","getExecutionFinishedEventData","_c","_d","_e","_f","_g","_i","_h","_j","getNodeRemovedEventData","getNodeEditingFinishedEventData","activeNode","domain","getExecutionStartedEventData","n8nCloudHooks","useSegment","_","segmentStore","splitPath","ndvStore","currentValue","creds","n","node"],"mappings":"kiCAIO,SAASA,GAAuC,CAEhD,MAAAC,EADQC,IAC8B,iBAAiB,IAAKC,IAAa,CAAE,GAAGA,CAAU,EAAA,EAExFC,EAAsBH,EAAiB,KAC3CE,GAAYA,EAAQ,KAAOE,EAAmB,YAAA,EAE5CD,IACHA,EAAoB,gBAAkB,SACtCA,EAAoB,SAAW,kBAGhC,MAAME,EAAiBL,EAAiB,KACtCE,GAAYA,EAAQ,KAAOE,EAAmB,OAAA,EAEhD,OAAIC,IACHA,EAAe,gBAAkB,SACjCA,EAAe,SAAW,iBAC1BA,EAAe,SAAW,IAGpBL,CACR,CAEO,MAAMM,EAA2B,IAAM,CAC7C,MAAMC,EAAQN,IAEdM,EAAM,iBAAmBR,GAC1B,EChCaS,EAAoB,CAChC,UAAW,GACX,KAAM,CACL,WAAY,GACZ,aAAc,CAAC,EACf,WAAY,SACb,CACD,EAEaC,EAA+B,KACpC,CACN,UAAW,uCACX,WAAY,CACX,cAAeD,EAAkB,KAAK,WACtC,cAAeA,EAAkB,KAAK,aAAa,OACnD,cAAeA,EAAkB,KAAK,aACtC,YAAaA,EAAkB,KAAK,WACpC,uBAAwBA,EAAkB,SAC3C,CAAA,GAIWE,EAA8B,IAAM,CAChDF,EAAkB,UAAY,uBAAuB,IAAI,OAAO,QAAS,CAAA,GACzEA,EAAkB,KAAO,CACxB,WAAY,GACZ,aAAc,CAAC,EACf,WAAY,SAAA,CAEd,ECPaG,EAAoCC,GAAwC,OACxF,MAAMC,EAAYC,IACZC,EAAiBC,IAEhB,MAAA,CACN,UAAW,yBACX,WAAY,CACX,YAAaH,EAAU,WACvB,gBAAiBD,EAAK,gBACtB,cAAeA,EAAK,cACpB,YAAaG,EAAe,WAC5B,WAAWE,EAAAF,EAAe,aAAf,YAAAE,EAA2B,KACtC,OAAQL,EAAK,MAId,CAAA,CAEF,EAEaM,EAAmC,IAA0B,CACzE,MAAMH,EAAiBC,IAEhB,MAAA,CACN,UAAW,gCACX,WAAY,CACX,YAAaD,EAAe,WAC5B,cAAeA,EAAe,aAC9B,iBAAkBI,EAASJ,EAAe,gBAAgB,CAC3D,CAAA,CAEF,EAMaK,EACZR,GACwB,CACxB,MAAMG,EAAiBC,IAEhB,MAAA,CACN,UAAW,iCACX,WAAY,CACX,YAAaD,EAAe,WAC5B,cAAeA,EAAe,aAC9B,aAAcI,EAASJ,EAAe,gBAAgB,EACtD,aAAcH,EAAK,WACpB,CAAA,CAEF,EAMaS,EAA+BT,GAAuD,OAG3F,MAAA,CACN,UAAW,yBACX,WAAY,CACX,WAAWK,EALCK,IAKK,aAAN,YAAAL,EAAkB,KAC7B,cAAeL,EAAK,YACrB,CAAA,CAEF,EAYaW,EACZX,GACwB,SACxB,MAAML,EAAQe,IAEP,MAAA,CACN,UAAW,8DACX,WAAY,CACX,WAAWL,EAAAV,EAAM,aAAN,YAAAU,EAAkB,KAC7B,WAAWO,EAAAjB,EAAM,aAAN,YAAAiB,EAAkB,KAAK,MAAM,KAAK,GAC7C,eAAgBZ,EAAK,UAAU,YAC/B,oBAAqBA,EAAK,aAAa,QACxC,CAAA,CAEF,EASaa,EAAgC,CAC5Cb,EACAc,IACwB,SACxB,MAAMnB,EAAQe,IACRK,EAAgC,CACrC,UAAW,GACX,WAAY,CAAC,CAAA,EAGV,OAACf,EAAK,eAQTe,EAAU,UAAY,gCACtBA,EAAU,WAAa,CACtB,WAAWV,EAAAV,EAAM,aAAN,YAAAU,EAAkB,KAC7B,WAAWO,EAAAjB,EAAM,aAAN,YAAAiB,EAAkB,KAAK,MAAM,KAAK,GAC7C,eAAgBZ,EAAK,UAAU,YAC/B,qBAAsBA,EAAK,UAAU,KACrC,eAAgBc,CAAA,IAbjBC,EAAU,UAAY,gCACtBA,EAAU,WAAa,CACtB,iBAAkBD,EAClB,iBAAkBd,EAAK,MACvB,kBAAmBA,EAAK,wBAAwB,MAAM,CAAC,CAAA,GAYlDe,CACR,EAQaC,EACZhB,GACwB,SACxB,MAAML,EAAQe,IAEP,MAAA,CACN,UAAW,mDACX,WAAY,CACX,WAAWL,EAAAV,EAAM,aAAN,YAAAU,EAAkB,KAC7B,WAAWO,EAAAjB,EAAM,aAAN,YAAAiB,EAAkB,KAAK,MAAM,KAAK,GAC7C,SACCZ,EAAK,kBAAkB,iBAEtBA,EAAK,WAAW,KAAMiB,GAAUA,EAAM,OAAS,gBAAgB,GAAK,CACnE,QAAS,SAAA,GAET,QACH,SAAUjB,EAAK,QAChB,CAAA,CAEF,EAOakB,EACZlB,GACwB,SACxB,MAAML,EAAQe,IAEP,MAAA,CACN,UAAW,qCACX,WAAY,CACX,SAAUV,EAAK,SACf,SAAUA,EAAK,SACf,WAAWK,EAAAV,EAAM,aAAN,YAAAU,EAAkB,KAC7B,WAAWO,EAAAjB,EAAM,aAAN,YAAAiB,EAAkB,KAAK,MAAM,KAAK,EAC9C,CAAA,CAEF,EAYaO,EACZnB,GACwB,yBACxB,MAAML,EAAQS,IAERW,EAAgC,CACrC,UAAW,GACX,WAAY,CACX,aAAcpB,EAAM,iBACrB,CAAA,EAGG,OAAAU,EAAAL,EAAK,2BAAL,MAAAK,EAA+B,iBAClCU,EAAU,UAAY,0BACtBA,EAAU,WAAY,WAAYH,EAAAjB,EAAM,cAAcK,EAAK,UAAY,EAAE,IAAvC,YAAAY,EAA0C,KAAK,MAAM,KAAK,GAClFG,EAAA,WAAY,UAAYf,EAAK,WAEvCe,EAAU,UAAY,qCACZA,EAAA,WAAY,YAAcpB,EAAM,WAChCoB,EAAA,WAAY,cAAgBpB,EAAM,cAGzCK,EAAK,cAAgBA,EAAK,iBAC7Be,EAAU,WAAY,OAAS,SAC/BA,EAAU,WAAY,gBAAgBK,EAAApB,EAAK,kBAAL,YAAAoB,EAAsB,UAAW,GACvEL,EAAU,WAAY,cAAcM,EAAArB,EAAK,kBAAL,YAAAqB,EAAsB,QAAS,GACzDN,EAAA,WAAY,iBAAmBf,EAAK,cAAgB,GACpDe,EAAA,WAAY,gBAAkB,IAAI,KAExCf,EAAK,mBAAoBsB,EAAAtB,EAAK,kBAAL,MAAAsB,EAAuD,MACnFP,EAAU,WAAY,WACrB,QAAQQ,EAAAvB,EAAK,kBAAL,YAAAuB,EAAsD,OAAS,UACnEC,EAAAxB,EAAK,kBAAL,YAAAwB,EAAsD,MACtDC,GAAAC,EAAA1B,EAAK,kBAAL,YAAA0B,EAAuD,OAAvD,YAAAD,EAA6D,KAExDV,EAAA,WAAY,WAAaf,EAAK,WAGzCe,EAAU,WAAY,OAAS,WAC3BY,EAAA3B,EAAK,2BAAL,MAAA2B,EAA+B,kBAExBZ,EAAA,WAAY,YAAcf,EAAK,YAAc,IAGlDe,CACR,EAMaa,EAA2B5B,GAAmD,CAC1F,MAAMG,EAAiBC,IAEhB,MAAA,CACN,UAAW,yCACX,WAAY,CACX,UAAWJ,EAAK,KAAK,KACrB,UAAWA,EAAK,KAAK,KACrB,cAAeA,EAAK,KAAK,SACzB,YAAaG,EAAe,UAC7B,CAAA,CAEF,EAEa0B,EACZC,GACoC,CACpC,OAAQA,GAAA,YAAAA,EAAY,KAAM,CACzB,IAAK,6BACJ,MAAMC,EAAUD,EAAW,WAAW,IAAe,MAAM,GAAG,EAAE,CAAC,EAC1D,MAAA,CACN,UAAW,yCACX,WAAY,CACX,OAAQA,EAAW,WAAW,OAC9B,OAAAC,CACD,CAAA,EAEF,IAAK,0BACG,MAAA,CACN,UAAW,sCACX,WAAY,CACX,UAAWD,EAAW,KACtB,KAAMA,EAAW,WAAW,YAC7B,CAAA,EAEF,IAAK,8BACG,MAAA,CACN,UAAW,0CACX,WAAY,CACX,UAAWA,EAAW,KACtB,KAAMA,EAAW,WAAW,YAC7B,CAAA,EAEF,QACC,MACF,CACD,EAOaE,EACZhC,GACwB,OACxB,MAAML,EAAQS,IAERW,EAAgC,CACrC,UAAW,GACX,WAAY,CACX,aAAcpB,EAAM,iBACrB,CAAA,EAID,OAAIK,EAAK,UACRe,EAAU,UAAY,8BACtBA,EAAU,WAAY,OAAS,UACrBA,EAAA,WAAY,WAAYV,EAAAV,EAAM,cAAcK,EAAK,QAAQ,IAAjC,YAAAK,EAAoC,KAAK,MAAM,KAAK,GAC5EU,EAAA,WAAY,UAAYf,EAAK,SAEnCA,EAAK,SAAW,4BACnBe,EAAU,WAAY,OAAS,aACrBf,EAAK,SAAW,qBAC1Be,EAAU,WAAY,OAAS,qBAIhCA,EAAU,UAAY,yCACZA,EAAA,WAAY,YAAcpB,EAAM,WAChCoB,EAAA,WAAY,cAAgBpB,EAAM,cAGtCoB,CACR,ECjUakB,GAA4C,CACxD,IAAK,CACJ,MAAO,CACN,IAAM,CACoBvC,GAC1B,CACD,CACD,EACA,SAAU,CACT,MAAO,CACN,IAAM,CACgBwC,IACR,SAAS,CACvB,CACD,EACA,wBAAyB,CACxB,CAACC,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,OAAQf,EAAK,OACb,uBAAwBJ,EAAkB,SAAA,EAGfE,IACfsC,EAAA,MAAM,0BAA2BrB,CAAS,EAC1CqB,EAAA,KAAK,iBAAkB,cAAerB,CAAS,CAC7D,CACD,EACA,cAAe,CACd,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAW,qCACX,WAAY,CACX,UAAWf,EAAK,aAAa,MAAM,GAAG,EAAE,CAAC,EACzC,uBAAwBJ,EAAkB,SAC3C,CAAA,EAGDwC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,KAAM,CACL,YAAa,CACZ,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfG,EAAYrC,EAAK,GAAG,KAAK,MAAM,GAAG,EACxC,GAAIA,EAAK,KAAK,OAAS,KAAOqC,EAAU,CAAC,IAAM,WAAY,CAC1D,MAAMtB,EAAY,CACjB,YAAasB,EAAU,CAAC,CAAA,EAGZD,EAAA,KAAK,iBAAkB,kBAAmBrB,CAAS,CACjE,CACD,CACD,CACD,EACA,WAAY,CACX,MAAO,CACN,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAYhB,EAAiCC,CAAI,EAEvDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,gBAAiB,CAChB,sBAAuB,CACtB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACrB,GAAIlC,EAAK,SAAU,CAClB,MAAMe,EAAY,CACjB,UAAW,gCACX,WAAY,CACX,OAAQf,EAAK,oBAAsBA,EAAK,eAAiB,OAAS,eAClE,eAAgB,CAACA,EAAK,gBACtB,gBAAiBA,EAAK,cACvB,CAAA,EAGDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,EAC5DqB,EAAa,KAAK,iBAAkB,oBAAqBrB,EAAU,UAAU,CAC9E,CACD,CACD,EACA,sBAAuB,CACtB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAW,gCACX,WAAY,CACX,OAAQf,EAAK,WAAa,OAAS,eACnC,eAAgB,CAACA,EAAK,oBACtB,gBAAiBA,EAAK,cACvB,CAAA,EAGDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,EAC5DqB,EAAa,KAAK,iBAAkB,oBAAqBrB,EAAU,UAAU,CAC9E,CACD,CACD,EACA,gBAAiB,CAChB,QAAS,CACR,IAAM,CACL,MAAMqB,EAAeF,IACfnB,EAAY,CACjB,UAAW,sCAAA,EAGCqB,EAAA,MAAMrB,EAAU,SAAS,EACzBqB,EAAA,KAAK,iBAAkB,mBAAmB,CACxD,CACD,EACA,qBAAsB,CACrB,CAACD,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACrB,GAAIlC,EAAK,cAAe,CACvB,MAAMe,EAAY,CACjB,UAAW,sCAAA,EAGCqB,EAAA,MAAMrB,EAAU,SAAS,EACzBqB,EAAA,KAAK,iBAAkB,mBAAmB,CACxD,CACD,CACD,CACD,EACA,iBAAkB,CACjB,qBAAsB,CACrB,CAACD,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACrB,GAAIlC,EAAK,cAAe,CACvB,MAAMe,EAAYT,IAClB8B,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,aAAc,CACb,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAYP,EAAoCR,CAAI,EAC1DoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,YAAa,CACZ,wBAAyB,CACxB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAW,oCACX,WAAY,CACX,UAAWf,EAAK,SAAS,KAAK,MAAM,GAAG,EAAE,CAAC,EAC1C,UAAWA,EAAK,gBACjB,CAAA,EAGDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,EACA,gBAAiB,CAChB,CAACoB,EAAGnC,IAAS,OACZ,MAAMoC,EAAeF,IACfI,EAAW5B,IACXK,EAAYN,EAA4BT,CAAI,EAElDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,EAC/CqB,EAAA,KAAK,iBAAkB,aAAc,CACjD,MAAM/B,EAAAiC,EAAS,aAAT,YAAAjC,EAAqB,IAAA,CAC3B,CACF,CACD,EACA,oBAAqB,CACpB,IAAM,CACL,MAAM+B,EAAeF,IACfI,EAAW5B,IACXP,EAAiBC,IAEjBW,EAAYc,EAAgCS,EAAS,UAAU,EACjEvB,IACOA,EAAA,WAAY,YAAcZ,EAAe,YAGhDY,GACHqB,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAE9D,CACD,CACD,EACA,eAAgB,CACf,WAAY,CACX,IAAM,CACL,MAAMqB,EAAeF,IACfnB,EAAY,CACjB,UAAW,4BAAA,EAGCqB,EAAA,MAAMrB,EAAU,SAAS,EACzBqB,EAAA,KAAK,iBAAkB,gBAAgB,CACrD,CACD,CACD,EACA,YAAa,CACZ,UAAW,CACV,CAACD,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAW,4BACX,WAAY,CACX,YAAaf,EAAK,MAClB,kBAAmBA,EAAK,QACxB,cAAeA,EAAK,YACrB,CAAA,EAGDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,eAAgB,CACf,aAAc,CACb,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAYJ,EAAsCX,CAAI,EAExDA,EAAK,aAAa,SAAS,WAAW,aAAa,EACtDe,EAAU,WAAY,cAAgB,OAC5Bf,EAAK,aAAa,SAAS,WAAW,eAAe,EAC/De,EAAU,WAAY,cAAgB,SAEtCA,EAAU,WAAY,cAAgB,YAGvCqB,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,EACA,qBAAsB,CACrB,CAACoB,EAAGnC,IAAS,OACZ,MAAMoC,EAAeF,IACfK,IAAelC,EAAAL,EAAK,QAAL,YAAAK,EAAY,MAAM,KAAM,GAC7C,IAAIS,EAAiB,GAEb,OAAA,OAAOd,EAAK,UAAU,QAAS,CACtC,IAAK,UAEFc,EAAAyB,IAAiB,QAAUvC,EAAK,UAAU,SAC1CuC,IAAiB,SAAW,CAACvC,EAAK,UAAU,QAC9C,MACD,IAAK,SACac,EAAAyB,IAAiBvC,EAAK,UAAU,QACjD,MACD,IAAK,SACJc,EAAiByB,IAAiBvC,EAAK,UAAU,QAAQ,SAAS,EAClE,KACF,CAEM,MAAAe,EAAYF,EAA8Bb,EAAMc,CAAc,EAEpEsB,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,aAAc,CACb,aAAc,CACb,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACjB,GAAAlC,EAAK,gBAAkB,iBAC1B,OAGK,MAAAe,EAAYC,EAAgChB,CAAI,EAEtDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,EACA,mBAAoB,CACnB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfM,EAAQ,OAAO,KAAKxC,EAAK,kBAAkB,WAAW,aAAe,CAAA,CAAE,EACzE,GAAAwC,EAAM,OAAS,EAClB,OAGD,MAAMzB,EAAY,CACjB,UAAW,2CACX,WAAY,CACX,gBAAkBf,EAAK,kBAAkB,WAAW,YACnDwC,EAAM,CAAC,CACR,EACA,gBAAiBA,EAAM,CAAC,CACzB,CAAA,EAGDJ,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,YAAa,CACZ,YAAa,CACZ,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAYiB,EAA6BhC,CAAI,EAEnDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,EACA,SAAU,CACT,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAWf,EAAK,SACb,0BACA,qCACH,WAAY,CACX,UAAW,OACX,OAAQ,SACR,cAAeA,EAAK,cAAc,KAAK,sBAAsB,EAC7D,oBAAqB,KACrB,UAAWA,EAAK,QACjB,CAAA,EAGDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,QAAS,CACR,mBAAoB,CACnB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAYG,EAA8BlB,CAAI,EAEpDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,eAAgB,CACf,kBAAmB,CAClB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAYI,EAA8BnB,CAAI,EAEpDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,KAAM,CACL,WAAY,CACX,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAYa,EAAwB5B,CAAI,EAE9CoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,SAAU,CACT,aAAc,CACb,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAYf,EAAK,QAAU,2BAA8B,4BACzD,WAAY,CACX,YAAaA,EAAK,WAClB,OAAQ,gBACT,CAAA,EAGDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,EACA,oBAAqB,CACpB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACf/B,EAAiBC,IAEjBW,EAAY,CACjB,UAAYf,EAAK,QAAU,2BAA8B,4BACzD,WAAY,CACX,OAAQ,WACR,YAAaA,EAAK,WAClB,cAAeG,EAAe,aAC9B,eAAgBA,EAAe,SAAS,IAAKsC,GAAMA,EAAE,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,CACxE,CAAA,EAGDL,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,EACA,YAAa,CACZ,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAW,sBACX,WAAY,CACX,YAAaf,EAAK,aAAa,GAC/B,cAAeA,EAAK,aAAa,KACjC,eAAgBA,EAAK,aAAa,MAAM,IAAKyC,GAAMA,EAAE,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,CACxE,CAAA,EAGDL,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,UAAW,CACV,KAAM,CACL,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAW,kCACX,WAAY,CACX,YAAaf,EAAK,WAClB,cAAeA,EAAK,aACpB,aAAcA,EAAK,WACpB,CAAA,EAGDoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,eAAgB,CACf,UAAW,CACV,IAAM,CACL,MAAMqB,EAAeF,IAEpB,GAAAtC,EAAkB,KAAK,WAAW,OAAS,GAC3CA,EAAkB,KAAK,aAAe,GACrC,CACD,MAAMmB,EAAYlB,IAElBuC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,CACD,EACA,oBAAqB,CACpB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACfnB,EAAY,CACjB,UAAW,kCACX,WAAY,CACX,WAAYf,EAAK,SACjB,WAAYA,EAAK,SACjB,uBAAwBJ,EAAkB,SAC3C,CAAA,EAEiBA,EAAA,KAAK,WAAaI,EAAK,SAEzCoC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CACD,EACA,kBAAmB,CAClB,CAACoB,EAAGnC,IAAS,CACZ,MAAMoC,EAAeF,IACjB,GAAAlC,EAAK,SAAS,SAAW,GAAKJ,EAAkB,KAAK,WAAW,OAAS,EAAG,CAC/E,MAAMmB,EAAYlB,IAElBuC,EAAa,MAAMrB,EAAU,UAAWA,EAAU,UAAU,CAC7D,CAEIf,EAAK,SAAS,OAASA,EAAK,SAAS,SACtBJ,EAAA,KAAK,WAAaI,EAAK,SACzCJ,EAAkB,KAAK,aAAeI,EAAK,cAAc,IAAK0C,GACxDA,EAA4B,KACxBA,EAA4B,KAAK,MAAM,GAAG,EAAE,CAAC,EAC3CA,EAAK,IACRA,EAAK,IAAI,MAAM,GAAG,EAAE,CAAC,EAEtB,EACP,EAEH,CACD,CACD,CACD"}
1
+ {"version":3,"file":"cloud-g7GqwUFZ.js","sources":["../../src/hooks/utils/hooksAddFakeDoorFeatures.ts","../../src/hooks/utils/hooksNodesPanel.ts","../../src/hooks/segment/getters.ts","../../src/hooks/cloud.ts"],"sourcesContent":["import { useUIStore } from '@/stores/ui.store';\nimport type { IFakeDoor } from '@/Interface';\nimport { FAKE_DOOR_FEATURES } from '@/constants';\n\nexport function compileFakeDoorFeatures(): IFakeDoor[] {\n\tconst store = useUIStore();\n\tconst fakeDoorFeatures: IFakeDoor[] = store.fakeDoorFeatures.map((feature) => ({ ...feature }));\n\n\tconst environmentsFeature = fakeDoorFeatures.find(\n\t\t(feature) => feature.id === FAKE_DOOR_FEATURES.ENVIRONMENTS,\n\t);\n\tif (environmentsFeature) {\n\t\tenvironmentsFeature.actionBoxTitle += '.cloud';\n\t\tenvironmentsFeature.linkURL += '&edition=cloud';\n\t}\n\n\tconst loggingFeature = fakeDoorFeatures.find(\n\t\t(feature) => feature.id === FAKE_DOOR_FEATURES.LOGGING,\n\t);\n\tif (loggingFeature) {\n\t\tloggingFeature.actionBoxTitle += '.cloud';\n\t\tloggingFeature.linkURL += '&edition=cloud';\n\t\tloggingFeature.infoText = '';\n\t}\n\n\treturn fakeDoorFeatures;\n}\n\nexport const hooksAddFakeDoorFeatures = () => {\n\tconst store = useUIStore();\n\n\tstore.fakeDoorFeatures = compileFakeDoorFeatures();\n};\n","export const nodesPanelSession = {\n\tsessionId: '',\n\tdata: {\n\t\tnodeFilter: '',\n\t\tresultsNodes: [] as string[],\n\t\tfilterMode: 'Regular',\n\t},\n};\n\nexport const hooksGenerateNodesPanelEvent = () => {\n\treturn {\n\t\teventName: 'User entered nodes panel search term',\n\t\tproperties: {\n\t\t\tsearch_string: nodesPanelSession.data.nodeFilter,\n\t\t\tresults_count: nodesPanelSession.data.resultsNodes.length,\n\t\t\tresults_nodes: nodesPanelSession.data.resultsNodes,\n\t\t\tfilter_mode: nodesPanelSession.data.filterMode,\n\t\t\tnodes_panel_session_id: nodesPanelSession.sessionId,\n\t\t},\n\t};\n};\n\nexport const hooksResetNodesPanelSession = () => {\n\tnodesPanelSession.sessionId = `nodes_panel_session_${new Date().valueOf()}`;\n\tnodesPanelSession.data = {\n\t\tnodeFilter: '',\n\t\tresultsNodes: [],\n\t\tfilterMode: 'Regular',\n\t};\n};\n","import { deepCopy } from 'n8n-workflow';\nimport type {\n\tExecutionError,\n\tGenericValue,\n\tINodeParameters,\n\tINodeProperties,\n\tITelemetryTrackProperties,\n\tNodeParameterValue,\n\tINode,\n} from 'n8n-workflow';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport type { TelemetryEventData } from '@/hooks/types';\nimport type { INodeUi } from '@/Interface';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useRootStore } from '@/stores/n8nRoot.store';\n\nexport interface UserSavedCredentialsEventData {\n\tcredential_type: string;\n\tcredential_id: string;\n\tis_new: boolean;\n}\n\nexport const getUserSavedCredentialsEventData = (meta: UserSavedCredentialsEventData) => {\n\tconst rootStore = useRootStore();\n\tconst workflowsStore = useWorkflowsStore();\n\n\treturn {\n\t\teventName: 'User saved credentials',\n\t\tproperties: {\n\t\t\tinstance_id: rootStore.instanceId,\n\t\t\tcredential_type: meta.credential_type,\n\t\t\tcredential_id: meta.credential_id,\n\t\t\tworkflow_id: workflowsStore.workflowId,\n\t\t\tnode_type: workflowsStore.activeNode?.name,\n\t\t\tis_new: meta.is_new,\n\t\t\t// is_complete: true,\n\t\t\t// is_valid: true,\n\t\t\t// error_message: ''\n\t\t},\n\t};\n};\n\nexport const getOpenWorkflowSettingsEventData = (): TelemetryEventData => {\n\tconst workflowsStore = useWorkflowsStore();\n\n\treturn {\n\t\teventName: 'User opened workflow settings',\n\t\tproperties: {\n\t\t\tworkflow_id: workflowsStore.workflowId,\n\t\t\tworkflow_name: workflowsStore.workflowName,\n\t\t\tcurrent_settings: deepCopy(workflowsStore.workflowSettings),\n\t\t},\n\t};\n};\n\nexport interface UpdatedWorkflowSettingsEventData {\n\toldSettings: Record<string, unknown>;\n}\n\nexport const getUpdatedWorkflowSettingsEventData = (\n\tmeta: UpdatedWorkflowSettingsEventData,\n): TelemetryEventData => {\n\tconst workflowsStore = useWorkflowsStore();\n\n\treturn {\n\t\teventName: 'User updated workflow settings',\n\t\tproperties: {\n\t\t\tworkflow_id: workflowsStore.workflowId,\n\t\t\tworkflow_name: workflowsStore.workflowName,\n\t\t\tnew_settings: deepCopy(workflowsStore.workflowSettings),\n\t\t\told_settings: meta.oldSettings,\n\t\t},\n\t};\n};\n\nexport interface NodeTypeChangedEventData {\n\tnodeSubtitle?: string;\n}\n\nexport const getNodeTypeChangedEventData = (meta: NodeTypeChangedEventData): TelemetryEventData => {\n\tconst store = useNDVStore();\n\n\treturn {\n\t\teventName: 'User opened node modal',\n\t\tproperties: {\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_subtitle: meta.nodeSubtitle,\n\t\t},\n\t};\n};\n\nexport interface InsertedItemFromExpEditorEventData {\n\tparameter: {\n\t\tdisplayName: string;\n\t};\n\tvalue: string;\n\tselectedItem: {\n\t\tvariable: string;\n\t};\n}\n\nexport const getInsertedItemFromExpEditorEventData = (\n\tmeta: InsertedItemFromExpEditorEventData,\n): TelemetryEventData => {\n\tconst store = useNDVStore();\n\n\treturn {\n\t\teventName: 'User inserted item from Expression Editor variable selector',\n\t\tproperties: {\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_type: store.activeNode?.type.split('.')[1],\n\t\t\tparameter_name: meta.parameter.displayName,\n\t\t\tvariable_expression: meta.selectedItem.variable,\n\t\t} as ITelemetryTrackProperties,\n\t};\n};\n\nexport interface ExpressionEditorEventsData {\n\tdialogVisible: boolean;\n\tvalue: string;\n\tresolvedExpressionValue: string;\n\tparameter: INodeParameters;\n}\n\nexport const getExpressionEditorEventsData = (\n\tmeta: ExpressionEditorEventsData,\n\tisValueDefault: boolean,\n): TelemetryEventData => {\n\tconst store = useNDVStore();\n\tconst eventData: TelemetryEventData = {\n\t\teventName: '',\n\t\tproperties: {},\n\t};\n\n\tif (!meta.dialogVisible) {\n\t\teventData.eventName = 'User closed Expression Editor';\n\t\teventData.properties = {\n\t\t\tempty_expression: isValueDefault,\n\t\t\texpression_value: meta.value,\n\t\t\texpression_result: meta.resolvedExpressionValue.slice(1),\n\t\t};\n\t} else {\n\t\teventData.eventName = 'User opened Expression Editor';\n\t\teventData.properties = {\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_type: store.activeNode?.type.split('.')[1],\n\t\t\tparameter_name: meta.parameter.displayName,\n\t\t\tparameter_field_type: meta.parameter.type,\n\t\t\tnew_expression: isValueDefault,\n\t\t};\n\t}\n\treturn eventData;\n};\n\nexport interface AuthenticationModalEventData {\n\tparameterPath: string;\n\toldNodeParameters: Record<string, GenericValue>;\n\tparameters: INodeProperties[];\n\tnewValue: NodeParameterValue;\n}\nexport const getAuthenticationModalEventData = (\n\tmeta: AuthenticationModalEventData,\n): TelemetryEventData => {\n\tconst store = useNDVStore();\n\n\treturn {\n\t\teventName: 'User changed Authentication type from node modal',\n\t\tproperties: {\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_type: store.activeNode?.type.split('.')[1],\n\t\t\told_mode:\n\t\t\t\tmeta.oldNodeParameters.authentication ||\n\t\t\t\t(\n\t\t\t\t\tmeta.parameters.find((param) => param.name === 'authentication') || {\n\t\t\t\t\t\tdefault: 'default',\n\t\t\t\t\t}\n\t\t\t\t).default,\n\t\t\tnew_mode: meta.newValue,\n\t\t},\n\t};\n};\n\nexport interface OutputModeChangedEventData {\n\toldValue: string;\n\tnewValue: string;\n}\n\nexport const getOutputModeChangedEventData = (\n\tmeta: OutputModeChangedEventData,\n): TelemetryEventData => {\n\tconst store = useNDVStore();\n\n\treturn {\n\t\teventName: 'User changed node output view mode',\n\t\tproperties: {\n\t\t\told_mode: meta.oldValue,\n\t\t\tnew_mode: meta.newValue,\n\t\t\tnode_name: store.activeNode?.name,\n\t\t\tnode_type: store.activeNode?.type.split('.')[1],\n\t\t},\n\t};\n};\n\nexport interface ExecutionFinishedEventData {\n\trunDataExecutedStartData:\n\t\t| { destinationNode?: string | undefined; runNodeFilter?: string[] | undefined }\n\t\t| undefined;\n\tnodeName?: string;\n\terrorMessage: string;\n\tresultDataError: ExecutionError | undefined;\n\titemsCount: number;\n}\n\nexport const getExecutionFinishedEventData = (\n\tmeta: ExecutionFinishedEventData,\n): TelemetryEventData => {\n\tconst store = useWorkflowsStore();\n\n\tconst eventData: TelemetryEventData = {\n\t\teventName: '',\n\t\tproperties: {\n\t\t\texecution_id: store.activeExecutionId,\n\t\t},\n\t};\n\n\tif (meta.runDataExecutedStartData?.destinationNode) {\n\t\teventData.eventName = 'Node execution finished';\n\t\teventData.properties!.node_type = store.getNodeByName(meta.nodeName || '')?.type.split('.')[1];\n\t\teventData.properties!.node_name = meta.nodeName;\n\t} else {\n\t\teventData.eventName = 'Manual workflow execution finished';\n\t\teventData.properties!.workflow_id = store.workflowId;\n\t\teventData.properties!.workflow_name = store.workflowName;\n\t}\n\n\tif (meta.errorMessage || meta.resultDataError) {\n\t\teventData.properties!.status = 'failed';\n\t\teventData.properties!.error_message = meta.resultDataError?.message || '';\n\t\teventData.properties!.error_stack = meta.resultDataError?.stack || '';\n\t\teventData.properties!.error_ui_message = meta.errorMessage || '';\n\t\teventData.properties!.error_timestamp = new Date();\n\n\t\tif (meta.resultDataError && (meta.resultDataError as unknown as { node: INodeUi })?.node) {\n\t\t\teventData.properties!.error_node =\n\t\t\t\ttypeof (meta.resultDataError as unknown as { node: string })?.node === 'string'\n\t\t\t\t\t? (meta.resultDataError as unknown as { node: string })?.node\n\t\t\t\t\t: (meta.resultDataError as unknown as { node: INodeUi })?.node?.name;\n\t\t} else {\n\t\t\teventData.properties!.error_node = meta.nodeName;\n\t\t}\n\t} else {\n\t\teventData.properties!.status = 'success';\n\t\tif (meta.runDataExecutedStartData?.destinationNode) {\n\t\t\t// Node execution finished\n\t\t\teventData.properties!.items_count = meta.itemsCount || 0;\n\t\t}\n\t}\n\treturn eventData;\n};\n\nexport interface NodeRemovedEventData {\n\tnode: INodeUi;\n}\n\nexport const getNodeRemovedEventData = (meta: NodeRemovedEventData): TelemetryEventData => {\n\tconst workflowsStore = useWorkflowsStore();\n\n\treturn {\n\t\teventName: 'User removed node from workflow canvas',\n\t\tproperties: {\n\t\t\tnode_name: meta.node.name,\n\t\t\tnode_type: meta.node.type,\n\t\t\tnode_disabled: meta.node.disabled,\n\t\t\tworkflow_id: workflowsStore.workflowId,\n\t\t},\n\t};\n};\n\nexport const getNodeEditingFinishedEventData = (\n\tactiveNode: INode | null,\n): TelemetryEventData | undefined => {\n\tswitch (activeNode?.type) {\n\t\tcase 'n8n-nodes-base.httpRequest':\n\t\t\tconst domain = (activeNode.parameters.url as string).split('/')[2];\n\t\t\treturn {\n\t\t\t\teventName: 'User finished httpRequest node editing',\n\t\t\t\tproperties: {\n\t\t\t\t\tmethod: activeNode.parameters.method,\n\t\t\t\t\tdomain,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'n8n-nodes-base.function':\n\t\t\treturn {\n\t\t\t\teventName: 'User finished function node editing',\n\t\t\t\tproperties: {\n\t\t\t\t\tnode_name: activeNode.name,\n\t\t\t\t\tcode: activeNode.parameters.functionCode,\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'n8n-nodes-base.functionItem':\n\t\t\treturn {\n\t\t\t\teventName: 'User finished functionItem node editing',\n\t\t\t\tproperties: {\n\t\t\t\t\tnode_name: activeNode.name,\n\t\t\t\t\tcode: activeNode.parameters.functionCode,\n\t\t\t\t},\n\t\t\t};\n\t\tdefault:\n\t\t\treturn;\n\t}\n};\n\nexport interface ExecutionStartedEventData {\n\tnodeName?: string;\n\tsource?: string;\n}\n\nexport const getExecutionStartedEventData = (\n\tmeta: ExecutionStartedEventData,\n): TelemetryEventData => {\n\tconst store = useWorkflowsStore();\n\n\tconst eventData: TelemetryEventData = {\n\t\teventName: '',\n\t\tproperties: {\n\t\t\texecution_id: store.activeExecutionId,\n\t\t},\n\t};\n\n\t// node execution\n\tif (meta.nodeName) {\n\t\teventData.eventName = 'User started node execution';\n\t\teventData.properties!.source = 'unknown';\n\t\teventData.properties!.node_type = store.getNodeByName(meta.nodeName)?.type.split('.')[1];\n\t\teventData.properties!.node_name = meta.nodeName;\n\n\t\tif (meta.source === 'RunData.ExecuteNodeButton') {\n\t\t\teventData.properties!.source = 'node_modal';\n\t\t} else if (meta.source === 'Node.executeNode') {\n\t\t\teventData.properties!.source = 'workflow_canvas';\n\t\t}\n\t} else {\n\t\t// workflow execution\n\t\teventData.eventName = 'User started manual workflow execution';\n\t\teventData.properties!.workflow_id = store.workflowId;\n\t\teventData.properties!.workflow_name = store.workflowName;\n\t}\n\n\treturn eventData;\n};\n","import { hooksAddFakeDoorFeatures } from '@/hooks/utils';\nimport {\n\tgetAuthenticationModalEventData,\n\tgetExpressionEditorEventsData,\n\tgetInsertedItemFromExpEditorEventData,\n\tgetNodeTypeChangedEventData,\n\tgetOpenWorkflowSettingsEventData,\n\tgetOutputModeChangedEventData,\n\tgetUpdatedWorkflowSettingsEventData,\n\tgetUserSavedCredentialsEventData,\n\tgetExecutionFinishedEventData,\n\tgetNodeRemovedEventData,\n\tgetNodeEditingFinishedEventData,\n\tgetExecutionStartedEventData,\n} from '@/hooks/segment';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport {\n\thooksGenerateNodesPanelEvent,\n\thooksResetNodesPanelSession,\n\tnodesPanelSession,\n} from '@/hooks/utils/hooksNodesPanel';\nimport { useSegment } from '@/stores/segment.store';\nimport type { PartialDeep } from 'type-fest';\nimport type { IDataObject } from 'n8n-workflow';\nimport type { INodeUi } from '@/Interface';\nimport type { ExternalHooks } from '@/types';\n\nexport const n8nCloudHooks: PartialDeep<ExternalHooks> = {\n\tapp: {\n\t\tmount: [\n\t\t\t() => {\n\t\t\t\thooksAddFakeDoorFeatures();\n\t\t\t},\n\t\t],\n\t},\n\tnodeView: {\n\t\tmount: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tsegmentStore.identify();\n\t\t\t},\n\t\t],\n\t\tcreateNodeActiveChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\tsource: meta.source,\n\t\t\t\t\tnodes_panel_session_id: nodesPanelSession.sessionId,\n\t\t\t\t};\n\n\t\t\t\thooksResetNodesPanelSession();\n\t\t\t\tsegmentStore.track('User opened nodes panel', eventData);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Nodes panel', eventData);\n\t\t\t},\n\t\t],\n\t\taddNodeButton: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User added node to workflow canvas',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tnode_type: meta.nodeTypeName.split('.')[1],\n\t\t\t\t\t\tnodes_panel_session_id: nodesPanelSession.sessionId,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tmain: {\n\t\trouteChange: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst splitPath = meta.to.path.split('/');\n\t\t\t\tif (meta.from.path !== '/' && splitPath[1] === 'workflow') {\n\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\tworkflow_id: splitPath[2],\n\t\t\t\t\t};\n\n\t\t\t\t\tsegmentStore.page('Cloud instance', 'Workflow editor', eventData);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t},\n\tcredential: {\n\t\tsaved: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getUserSavedCredentialsEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tcredentialsEdit: {\n\t\tcredentialTypeChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.newValue) {\n\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\teventName: 'User opened Credentials modal',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tsource: meta.setCredentialType === meta.credentialType ? 'node' : 'primary_menu',\n\t\t\t\t\t\t\tnew_credential: !meta.editCredentials,\n\t\t\t\t\t\t\tcredential_type: meta.credentialType,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t\tsegmentStore.page('Cloud instance', 'Credentials modal', eventData.properties);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t\tcredentialModalOpened: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User opened Credentials modal',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tsource: meta.activeNode ? 'node' : 'primary_menu',\n\t\t\t\t\t\tnew_credential: !meta.isEditingCredential,\n\t\t\t\t\t\tcredential_type: meta.credentialType,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Credentials modal', eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tcredentialsList: {\n\t\tmounted: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User opened global Credentials panel',\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Credentials panel');\n\t\t\t},\n\t\t],\n\t\tdialogVisibleChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.dialogVisible) {\n\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\teventName: 'User opened global Credentials panel',\n\t\t\t\t\t};\n\n\t\t\t\t\tsegmentStore.track(eventData.eventName);\n\t\t\t\t\tsegmentStore.page('Cloud instance', 'Credentials panel');\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t},\n\tworkflowSettings: {\n\t\tdialogVisibleChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.dialogVisible) {\n\t\t\t\t\tconst eventData = getOpenWorkflowSettingsEventData();\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t\tsaveSettings: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getUpdatedWorkflowSettingsEventData(meta);\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tdataDisplay: {\n\t\tonDocumentationUrlClick: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User clicked node modal docs link',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tnode_type: meta.nodeType.name.split('.')[1],\n\t\t\t\t\t\tdocs_link: meta.documentationUrl,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tnodeTypeChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst ndvStore = useNDVStore();\n\t\t\t\tconst eventData = getNodeTypeChangedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Node modal', {\n\t\t\t\t\tnode: ndvStore.activeNode?.name,\n\t\t\t\t});\n\t\t\t},\n\t\t],\n\t\tnodeEditingFinished: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst ndvStore = useNDVStore();\n\t\t\t\tconst workflowsStore = useWorkflowsStore();\n\n\t\t\t\tconst eventData = getNodeEditingFinishedEventData(ndvStore.activeNode);\n\t\t\t\tif (eventData) {\n\t\t\t\t\teventData.properties!.workflow_id = workflowsStore.workflowId;\n\t\t\t\t}\n\n\t\t\t\tif (eventData) {\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t},\n\texecutionsList: {\n\t\topenDialog: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User opened Executions log',\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName);\n\t\t\t\tsegmentStore.page('Cloud instance', 'Executions log');\n\t\t\t},\n\t\t],\n\t},\n\tshowMessage: {\n\t\tshowError: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'Instance FE emitted error',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\terror_title: meta.title,\n\t\t\t\t\t\terror_description: meta.message,\n\t\t\t\t\t\terror_message: meta.errorMessage,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\texpressionEdit: {\n\t\titemSelected: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getInsertedItemFromExpEditorEventData(meta);\n\n\t\t\t\tif (meta.selectedItem.variable.startsWith('Object.keys')) {\n\t\t\t\t\teventData.properties!.variable_type = 'Keys';\n\t\t\t\t} else if (meta.selectedItem.variable.startsWith('Object.values')) {\n\t\t\t\t\teventData.properties!.variable_type = 'Values';\n\t\t\t\t} else {\n\t\t\t\t\teventData.properties!.variable_type = 'Raw value';\n\t\t\t\t}\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tdialogVisibleChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst currentValue = meta.value?.slice(1) ?? '';\n\t\t\t\tlet isValueDefault = false;\n\n\t\t\t\tswitch (typeof meta.parameter.default) {\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\tisValueDefault =\n\t\t\t\t\t\t\t(currentValue === 'true' && meta.parameter.default) ||\n\t\t\t\t\t\t\t(currentValue === 'false' && !meta.parameter.default);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'string':\n\t\t\t\t\t\tisValueDefault = currentValue === meta.parameter.default;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'number':\n\t\t\t\t\t\tisValueDefault = currentValue === meta.parameter.default.toString();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tconst eventData = getExpressionEditorEventsData(meta, isValueDefault);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tnodeSettings: {\n\t\tvalueChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.parameterPath !== 'authentication') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst eventData = getAuthenticationModalEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tcredentialSelected: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst creds = Object.keys(meta.updateInformation.properties.credentials || {});\n\t\t\t\tif (creds.length < 1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User selected credential from node modal',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tcredential_name: (meta.updateInformation.properties.credentials as IDataObject)[\n\t\t\t\t\t\t\tcreds[0]\n\t\t\t\t\t\t],\n\t\t\t\t\t\tcredential_type: creds[0],\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tworkflowRun: {\n\t\trunWorkflow: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getExecutionStartedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\trunError: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: meta.nodeName\n\t\t\t\t\t\t? 'Node execution finished'\n\t\t\t\t\t\t: 'Manual workflow execution finished',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tpreflight: 'true',\n\t\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\t\terror_message: meta.errorMessages.join('<br />&nbsp;&nbsp;- '),\n\t\t\t\t\t\terror_timestamp: new Date(),\n\t\t\t\t\t\tnode_name: meta.nodeName,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\trunData: {\n\t\tdisplayModeChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getOutputModeChangedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tpushConnection: {\n\t\texecutionFinished: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getExecutionFinishedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tnode: {\n\t\tdeleteNode: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = getNodeRemovedEventData(meta);\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tworkflow: {\n\t\tactiveChange: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: (meta.active && 'User activated workflow') || 'User deactivated workflow',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tworkflow_id: meta.workflowId,\n\t\t\t\t\t\tsource: 'workflow_modal',\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tactiveChangeCurrent: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst workflowsStore = useWorkflowsStore();\n\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: (meta.active && 'User activated workflow') || 'User deactivated workflow',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tsource: 'main nav',\n\t\t\t\t\t\tworkflow_id: meta.workflowId,\n\t\t\t\t\t\tworkflow_name: workflowsStore.workflowName,\n\t\t\t\t\t\tworkflow_nodes: workflowsStore.allNodes.map((n) => n.type.split('.')[1]),\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tafterUpdate: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User saved workflow',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tworkflow_id: meta.workflowData.id,\n\t\t\t\t\t\tworkflow_name: meta.workflowData.name,\n\t\t\t\t\t\tworkflow_nodes: meta.workflowData.nodes.map((n) => n.type.split('.')[1]),\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\texecution: {\n\t\topen: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User opened read-only execution',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tworkflow_id: meta.workflowId,\n\t\t\t\t\t\tworkflow_name: meta.workflowName,\n\t\t\t\t\t\texecution_id: meta.executionId,\n\t\t\t\t\t},\n\t\t\t\t};\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t},\n\tnodeCreateList: {\n\t\tdestroyed: [\n\t\t\t() => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (\n\t\t\t\t\tnodesPanelSession.data.nodeFilter.length > 0 &&\n\t\t\t\t\tnodesPanelSession.data.nodeFilter !== ''\n\t\t\t\t) {\n\t\t\t\t\tconst eventData = hooksGenerateNodesPanelEvent();\n\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t\tselectedTypeChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tconst eventData = {\n\t\t\t\t\teventName: 'User changed nodes panel filter',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\told_filter: meta.oldValue,\n\t\t\t\t\t\tnew_filter: meta.newValue,\n\t\t\t\t\t\tnodes_panel_session_id: nodesPanelSession.sessionId,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tnodesPanelSession.data.filterMode = meta.newValue;\n\n\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t},\n\t\t],\n\t\tnodeFilterChanged: [\n\t\t\t(_, meta) => {\n\t\t\t\tconst segmentStore = useSegment();\n\t\t\t\tif (meta.newValue.length === 0 && nodesPanelSession.data.nodeFilter.length > 0) {\n\t\t\t\t\tconst eventData = hooksGenerateNodesPanelEvent();\n\n\t\t\t\t\tsegmentStore.track(eventData.eventName, eventData.properties);\n\t\t\t\t}\n\n\t\t\t\tif (meta.newValue.length > meta.oldValue.length) {\n\t\t\t\t\tnodesPanelSession.data.nodeFilter = meta.newValue;\n\t\t\t\t\tnodesPanelSession.data.resultsNodes = meta.filteredNodes.map((node) => {\n\t\t\t\t\t\tif ((node as unknown as INodeUi).name) {\n\t\t\t\t\t\t\treturn (node as unknown as INodeUi).name.split('.')[1];\n\t\t\t\t\t\t} else if (node.key) {\n\t\t\t\t\t\t\treturn node.key.split('.')[1];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t],\n\t},\n};\n"],"names":["compileFakeDoorFeatures","fakeDoorFeatures","useUIStore","feature","environmentsFeature","FAKE_DOOR_FEATURES","loggingFeature","hooksAddFakeDoorFeatures","store","nodesPanelSession","hooksGenerateNodesPanelEvent","hooksResetNodesPanelSession","getUserSavedCredentialsEventData","meta","rootStore","useRootStore","workflowsStore","useWorkflowsStore","_a","getOpenWorkflowSettingsEventData","deepCopy","getUpdatedWorkflowSettingsEventData","getNodeTypeChangedEventData","useNDVStore","getInsertedItemFromExpEditorEventData","_b","getExpressionEditorEventsData","isValueDefault","eventData","getAuthenticationModalEventData","param","getOutputModeChangedEventData","getExecutionFinishedEventData","_c","_d","_e","_f","_g","_i","_h","_j","getNodeRemovedEventData","getNodeEditingFinishedEventData","activeNode","domain","getExecutionStartedEventData","n8nCloudHooks","useSegment","_","segmentStore","splitPath","ndvStore","currentValue","creds","n","node"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{m as a}from"./pinia-jX93eZRS.js";import{B as r,k as o}from"./n8n-ZKR6bms9.js";import{g as i}from"./index--RuZ5wHr.js";import{G as n}from"./vendor-2CfOYFi2.js";const c=n({mixins:[i],computed:{...a(r),executionId(){return this.$route.params.executionId},workflowName(){return this.workflowsStore.workflowName},currentWorkflow(){return this.$route.params.name||this.workflowsStore.workflowId},executions(){return this.workflowsStore.currentWorkflowExecutions},activeExecution(){return this.workflowsStore.activeWorkflowExecution}},methods:{getExecutionUIDetails(t){const e={name:"unknown",startTime:this.formatDate(t.startedAt),label:"Status unknown",runningTime:""};if(t.status==="waiting"?(e.name="waiting",e.label=this.$locale.baseText("executionsList.waiting")):t.status==="canceled"?e.label=this.$locale.baseText("executionsList.canceled"):t.status==="running"||t.status==="new"?(e.name="running",e.label=this.$locale.baseText("executionsList.running")):t.status==="success"?(e.name="success",e.label=this.$locale.baseText("executionsList.succeeded")):(t.status==="failed"||t.status==="crashed")&&(e.name="error",e.label=this.$locale.baseText("executionsList.error")),t.status||(t.status="unknown"),t.startedAt&&t.stoppedAt){const s=t.stoppedAt?new Date(t.stoppedAt).getTime():Date.now();e.runningTime=this.displayTimer(s-new Date(t.startedAt).getTime(),!0)}return e},formatDate(t){const{date:e,time:s}=this.convertToDisplayDate(t);return o.baseText("executionsList.started",{interpolate:{time:s,date:e}})}}});export{c as e};
2
- //# sourceMappingURL=executionsHelpers-Gkj6bYJi.js.map
1
+ import{m as a}from"./pinia-jX93eZRS.js";import{B as r,k as o}from"./n8n-ZKR6bms9.js";import{g as i}from"./index-RXjMHIPR.js";import{G as n}from"./vendor-2CfOYFi2.js";const c=n({mixins:[i],computed:{...a(r),executionId(){return this.$route.params.executionId},workflowName(){return this.workflowsStore.workflowName},currentWorkflow(){return this.$route.params.name||this.workflowsStore.workflowId},executions(){return this.workflowsStore.currentWorkflowExecutions},activeExecution(){return this.workflowsStore.activeWorkflowExecution}},methods:{getExecutionUIDetails(t){const e={name:"unknown",startTime:this.formatDate(t.startedAt),label:"Status unknown",runningTime:""};if(t.status==="waiting"?(e.name="waiting",e.label=this.$locale.baseText("executionsList.waiting")):t.status==="canceled"?e.label=this.$locale.baseText("executionsList.canceled"):t.status==="running"||t.status==="new"?(e.name="running",e.label=this.$locale.baseText("executionsList.running")):t.status==="success"?(e.name="success",e.label=this.$locale.baseText("executionsList.succeeded")):(t.status==="failed"||t.status==="crashed")&&(e.name="error",e.label=this.$locale.baseText("executionsList.error")),t.status||(t.status="unknown"),t.startedAt&&t.stoppedAt){const s=t.stoppedAt?new Date(t.stoppedAt).getTime():Date.now();e.runningTime=this.displayTimer(s-new Date(t.startedAt).getTime(),!0)}return e},formatDate(t){const{date:e,time:s}=this.convertToDisplayDate(t);return o.baseText("executionsList.started",{interpolate:{time:s,date:e}})}}});export{c as e};
2
+ //# sourceMappingURL=executionsHelpers-gnbzcx5j.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executionsHelpers-Gkj6bYJi.js","sources":["../../src/mixins/executionsHelpers.ts"],"sourcesContent":["import { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { i18n as locale } from '@/plugins/i18n';\nimport { genericHelpers } from './genericHelpers';\nimport type { IExecutionsSummary } from 'n8n-workflow';\n\nexport interface IExecutionUIData {\n\tname: string;\n\tlabel: string;\n\tstartTime: string;\n\trunningTime: string;\n}\n\nexport const executionHelpers = defineComponent({\n\tmixins: [genericHelpers],\n\tcomputed: {\n\t\t...mapStores(useWorkflowsStore),\n\t\texecutionId(): string {\n\t\t\treturn this.$route.params.executionId;\n\t\t},\n\t\tworkflowName(): string {\n\t\t\treturn this.workflowsStore.workflowName;\n\t\t},\n\t\tcurrentWorkflow(): string {\n\t\t\treturn this.$route.params.name || this.workflowsStore.workflowId;\n\t\t},\n\t\texecutions(): IExecutionsSummary[] {\n\t\t\treturn this.workflowsStore.currentWorkflowExecutions;\n\t\t},\n\t\tactiveExecution(): IExecutionsSummary | null {\n\t\t\treturn this.workflowsStore.activeWorkflowExecution;\n\t\t},\n\t},\n\tmethods: {\n\t\tgetExecutionUIDetails(execution: IExecutionsSummary): IExecutionUIData {\n\t\t\tconst status = {\n\t\t\t\tname: 'unknown',\n\t\t\t\tstartTime: this.formatDate(execution.startedAt),\n\t\t\t\tlabel: 'Status unknown',\n\t\t\t\trunningTime: '',\n\t\t\t};\n\n\t\t\tif (execution.status === 'waiting') {\n\t\t\t\tstatus.name = 'waiting';\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.waiting');\n\t\t\t} else if (execution.status === 'canceled') {\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.canceled');\n\t\t\t} else if (execution.status === 'running' || execution.status === 'new') {\n\t\t\t\tstatus.name = 'running';\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.running');\n\t\t\t} else if (execution.status === 'success') {\n\t\t\t\tstatus.name = 'success';\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.succeeded');\n\t\t\t} else if (execution.status === 'failed' || execution.status === 'crashed') {\n\t\t\t\tstatus.name = 'error';\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.error');\n\t\t\t}\n\n\t\t\tif (!execution.status) execution.status = 'unknown';\n\n\t\t\tif (execution.startedAt && execution.stoppedAt) {\n\t\t\t\tconst stoppedAt = execution.stoppedAt\n\t\t\t\t\t? new Date(execution.stoppedAt).getTime()\n\t\t\t\t\t: Date.now();\n\t\t\t\tstatus.runningTime = this.displayTimer(\n\t\t\t\t\tstoppedAt - new Date(execution.startedAt).getTime(),\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn status;\n\t\t},\n\t\tformatDate(fullDate: Date | string | number) {\n\t\t\tconst { date, time } = this.convertToDisplayDate(fullDate);\n\t\t\treturn locale.baseText('executionsList.started', { interpolate: { time, date } });\n\t\t},\n\t},\n});\n"],"names":["executionHelpers","defineComponent","genericHelpers","mapStores","useWorkflowsStore","execution","status","stoppedAt","fullDate","date","time","locale"],"mappings":"sKAcO,MAAMA,EAAmBC,EAAgB,CAC/C,OAAQ,CAACC,CAAc,EACvB,SAAU,CACT,GAAGC,EAAUC,CAAiB,EAC9B,aAAsB,CACd,OAAA,KAAK,OAAO,OAAO,WAC3B,EACA,cAAuB,CACtB,OAAO,KAAK,eAAe,YAC5B,EACA,iBAA0B,CACzB,OAAO,KAAK,OAAO,OAAO,MAAQ,KAAK,eAAe,UACvD,EACA,YAAmC,CAClC,OAAO,KAAK,eAAe,yBAC5B,EACA,iBAA6C,CAC5C,OAAO,KAAK,eAAe,uBAC5B,CACD,EACA,QAAS,CACR,sBAAsBC,EAAiD,CACtE,MAAMC,EAAS,CACd,KAAM,UACN,UAAW,KAAK,WAAWD,EAAU,SAAS,EAC9C,MAAO,iBACP,YAAa,EAAA,EAqBV,GAlBAA,EAAU,SAAW,WACxBC,EAAO,KAAO,UACdA,EAAO,MAAQ,KAAK,QAAQ,SAAS,wBAAwB,GACnDD,EAAU,SAAW,WAC/BC,EAAO,MAAQ,KAAK,QAAQ,SAAS,yBAAyB,EACpDD,EAAU,SAAW,WAAaA,EAAU,SAAW,OACjEC,EAAO,KAAO,UACdA,EAAO,MAAQ,KAAK,QAAQ,SAAS,wBAAwB,GACnDD,EAAU,SAAW,WAC/BC,EAAO,KAAO,UACdA,EAAO,MAAQ,KAAK,QAAQ,SAAS,0BAA0B,IACrDD,EAAU,SAAW,UAAYA,EAAU,SAAW,aAChEC,EAAO,KAAO,QACdA,EAAO,MAAQ,KAAK,QAAQ,SAAS,sBAAsB,GAGvDD,EAAU,SAAQA,EAAU,OAAS,WAEtCA,EAAU,WAAaA,EAAU,UAAW,CACzC,MAAAE,EAAYF,EAAU,UACzB,IAAI,KAAKA,EAAU,SAAS,EAAE,QAAA,EAC9B,KAAK,IAAI,EACZC,EAAO,YAAc,KAAK,aACzBC,EAAY,IAAI,KAAKF,EAAU,SAAS,EAAE,QAAQ,EAClD,EAAA,CAEF,CAEO,OAAAC,CACR,EACA,WAAWE,EAAkC,CAC5C,KAAM,CAAE,KAAAC,EAAM,KAAAC,CAAA,EAAS,KAAK,qBAAqBF,CAAQ,EAClD,OAAAG,EAAO,SAAS,yBAA0B,CAAE,YAAa,CAAE,KAAAD,EAAM,KAAAD,CAAK,CAAA,CAAG,CACjF,CACD,CACD,CAAC"}
1
+ {"version":3,"file":"executionsHelpers-gnbzcx5j.js","sources":["../../src/mixins/executionsHelpers.ts"],"sourcesContent":["import { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { i18n as locale } from '@/plugins/i18n';\nimport { genericHelpers } from './genericHelpers';\nimport type { IExecutionsSummary } from 'n8n-workflow';\n\nexport interface IExecutionUIData {\n\tname: string;\n\tlabel: string;\n\tstartTime: string;\n\trunningTime: string;\n}\n\nexport const executionHelpers = defineComponent({\n\tmixins: [genericHelpers],\n\tcomputed: {\n\t\t...mapStores(useWorkflowsStore),\n\t\texecutionId(): string {\n\t\t\treturn this.$route.params.executionId;\n\t\t},\n\t\tworkflowName(): string {\n\t\t\treturn this.workflowsStore.workflowName;\n\t\t},\n\t\tcurrentWorkflow(): string {\n\t\t\treturn this.$route.params.name || this.workflowsStore.workflowId;\n\t\t},\n\t\texecutions(): IExecutionsSummary[] {\n\t\t\treturn this.workflowsStore.currentWorkflowExecutions;\n\t\t},\n\t\tactiveExecution(): IExecutionsSummary | null {\n\t\t\treturn this.workflowsStore.activeWorkflowExecution;\n\t\t},\n\t},\n\tmethods: {\n\t\tgetExecutionUIDetails(execution: IExecutionsSummary): IExecutionUIData {\n\t\t\tconst status = {\n\t\t\t\tname: 'unknown',\n\t\t\t\tstartTime: this.formatDate(execution.startedAt),\n\t\t\t\tlabel: 'Status unknown',\n\t\t\t\trunningTime: '',\n\t\t\t};\n\n\t\t\tif (execution.status === 'waiting') {\n\t\t\t\tstatus.name = 'waiting';\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.waiting');\n\t\t\t} else if (execution.status === 'canceled') {\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.canceled');\n\t\t\t} else if (execution.status === 'running' || execution.status === 'new') {\n\t\t\t\tstatus.name = 'running';\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.running');\n\t\t\t} else if (execution.status === 'success') {\n\t\t\t\tstatus.name = 'success';\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.succeeded');\n\t\t\t} else if (execution.status === 'failed' || execution.status === 'crashed') {\n\t\t\t\tstatus.name = 'error';\n\t\t\t\tstatus.label = this.$locale.baseText('executionsList.error');\n\t\t\t}\n\n\t\t\tif (!execution.status) execution.status = 'unknown';\n\n\t\t\tif (execution.startedAt && execution.stoppedAt) {\n\t\t\t\tconst stoppedAt = execution.stoppedAt\n\t\t\t\t\t? new Date(execution.stoppedAt).getTime()\n\t\t\t\t\t: Date.now();\n\t\t\t\tstatus.runningTime = this.displayTimer(\n\t\t\t\t\tstoppedAt - new Date(execution.startedAt).getTime(),\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn status;\n\t\t},\n\t\tformatDate(fullDate: Date | string | number) {\n\t\t\tconst { date, time } = this.convertToDisplayDate(fullDate);\n\t\t\treturn locale.baseText('executionsList.started', { interpolate: { time, date } });\n\t\t},\n\t},\n});\n"],"names":["executionHelpers","defineComponent","genericHelpers","mapStores","useWorkflowsStore","execution","status","stoppedAt","fullDate","date","time","locale"],"mappings":"sKAcO,MAAMA,EAAmBC,EAAgB,CAC/C,OAAQ,CAACC,CAAc,EACvB,SAAU,CACT,GAAGC,EAAUC,CAAiB,EAC9B,aAAsB,CACd,OAAA,KAAK,OAAO,OAAO,WAC3B,EACA,cAAuB,CACtB,OAAO,KAAK,eAAe,YAC5B,EACA,iBAA0B,CACzB,OAAO,KAAK,OAAO,OAAO,MAAQ,KAAK,eAAe,UACvD,EACA,YAAmC,CAClC,OAAO,KAAK,eAAe,yBAC5B,EACA,iBAA6C,CAC5C,OAAO,KAAK,eAAe,uBAC5B,CACD,EACA,QAAS,CACR,sBAAsBC,EAAiD,CACtE,MAAMC,EAAS,CACd,KAAM,UACN,UAAW,KAAK,WAAWD,EAAU,SAAS,EAC9C,MAAO,iBACP,YAAa,EAAA,EAqBV,GAlBAA,EAAU,SAAW,WACxBC,EAAO,KAAO,UACdA,EAAO,MAAQ,KAAK,QAAQ,SAAS,wBAAwB,GACnDD,EAAU,SAAW,WAC/BC,EAAO,MAAQ,KAAK,QAAQ,SAAS,yBAAyB,EACpDD,EAAU,SAAW,WAAaA,EAAU,SAAW,OACjEC,EAAO,KAAO,UACdA,EAAO,MAAQ,KAAK,QAAQ,SAAS,wBAAwB,GACnDD,EAAU,SAAW,WAC/BC,EAAO,KAAO,UACdA,EAAO,MAAQ,KAAK,QAAQ,SAAS,0BAA0B,IACrDD,EAAU,SAAW,UAAYA,EAAU,SAAW,aAChEC,EAAO,KAAO,QACdA,EAAO,MAAQ,KAAK,QAAQ,SAAS,sBAAsB,GAGvDD,EAAU,SAAQA,EAAU,OAAS,WAEtCA,EAAU,WAAaA,EAAU,UAAW,CACzC,MAAAE,EAAYF,EAAU,UACzB,IAAI,KAAKA,EAAU,SAAS,EAAE,QAAA,EAC9B,KAAK,IAAI,EACZC,EAAO,YAAc,KAAK,aACzBC,EAAY,IAAI,KAAKF,EAAU,SAAS,EAAE,QAAQ,EAClD,EAAA,CAEF,CAEO,OAAAC,CACR,EACA,WAAWE,EAAkC,CAC5C,KAAM,CAAE,KAAAC,EAAM,KAAAC,CAAA,EAAS,KAAK,qBAAqBF,CAAQ,EAClD,OAAAG,EAAO,SAAS,yBAA0B,CAAE,YAAa,CAAE,KAAAD,EAAM,KAAAD,CAAK,CAAA,CAAG,CACjF,CACD,CACD,CAAC"}