n8n-editor-ui 1.41.0 → 1.41.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.
- package/.turbo/turbo-build.log +61 -61
- package/dist/assets/{AuthView-E0Dwqa78.js → AuthView-CMX_-yPy.js} +2 -2
- package/dist/assets/{AuthView-E0Dwqa78.js.map → AuthView-CMX_-yPy.js.map} +1 -1
- package/dist/assets/{CanvasControls-yrXCY2V6.js → CanvasControls-9oKgZX9B.js} +2 -2
- package/dist/assets/{CanvasControls-yrXCY2V6.js.map → CanvasControls-9oKgZX9B.js.map} +1 -1
- package/dist/assets/{ChangePasswordView-kHBWSwn5.js → ChangePasswordView-GG3ESv5E.js} +2 -2
- package/dist/assets/{ChangePasswordView-kHBWSwn5.js.map → ChangePasswordView-GG3ESv5E.js.map} +1 -1
- package/dist/assets/{CollectionParameter-ZuNQUd29.js → CollectionParameter-1UnufhEZ.js} +2 -2
- package/dist/assets/CollectionParameter-1UnufhEZ.js.map +1 -0
- package/dist/assets/{CredentialsView-24rpr6nX.js → CredentialsView-TrGa_IpW.js} +2 -2
- package/dist/assets/{CredentialsView-24rpr6nX.js.map → CredentialsView-TrGa_IpW.js.map} +1 -1
- package/dist/assets/{ExecutionsFilter-RyBW2SgR.js → ExecutionsFilter-W0_jymTM.js} +2 -2
- package/dist/assets/{ExecutionsFilter-RyBW2SgR.js.map → ExecutionsFilter-W0_jymTM.js.map} +1 -1
- package/dist/assets/{ExecutionsView-NIusemYP.js → ExecutionsView-P-nSEBpq.js} +2 -2
- package/dist/assets/{ExecutionsView-NIusemYP.js.map → ExecutionsView-P-nSEBpq.js.map} +1 -1
- package/dist/assets/{ForgotMyPasswordView-ebrry8c_.js → ForgotMyPasswordView-_Ft-h_Xq.js} +2 -2
- package/dist/assets/{ForgotMyPasswordView-ebrry8c_.js.map → ForgotMyPasswordView-_Ft-h_Xq.js.map} +1 -1
- package/dist/assets/{MainHeader-JJIRXuyj.js → MainHeader-UFj-n8nH.js} +2 -2
- package/dist/assets/{MainHeader-JJIRXuyj.js.map → MainHeader-UFj-n8nH.js.map} +1 -1
- package/dist/assets/{MainSidebar-KnXGjnqU.js → MainSidebar-H7A2NfnT.js} +2 -2
- package/dist/assets/{MainSidebar-KnXGjnqU.js.map → MainSidebar-H7A2NfnT.js.map} +1 -1
- package/dist/assets/{NodeCreation-01VRbmJn.js → NodeCreation-MVULkw2n.js} +3 -3
- package/dist/assets/{NodeCreation-01VRbmJn.js.map → NodeCreation-MVULkw2n.js.map} +1 -1
- package/dist/assets/{NodeCreator-D_gQXSbT.js → NodeCreator-NjQetiNP.js} +2 -2
- package/dist/assets/{NodeCreator-D_gQXSbT.js.map → NodeCreator-NjQetiNP.js.map} +1 -1
- package/dist/assets/{NodeList-Ysq3Cjbn.js → NodeList-f4t5_e24.js} +2 -2
- package/dist/assets/{NodeList-Ysq3Cjbn.js.map → NodeList-f4t5_e24.js.map} +1 -1
- package/dist/assets/{NodeView-QjQV3eFX.js → NodeView-kA0j8oya.js} +4 -4
- package/dist/assets/{NodeView-QjQV3eFX.js.map → NodeView-kA0j8oya.js.map} +1 -1
- package/dist/assets/{RunDataAi-wbEK-oHX.js → RunDataAi-9Rk5nlrG.js} +2 -2
- package/dist/assets/{RunDataAi-wbEK-oHX.js.map → RunDataAi-9Rk5nlrG.js.map} +1 -1
- package/dist/assets/{RunDataJson-YtVT_k9o.js → RunDataJson-3HvvCXQv.js} +3 -3
- package/dist/assets/{RunDataJson-YtVT_k9o.js.map → RunDataJson-3HvvCXQv.js.map} +1 -1
- package/dist/assets/{RunDataJsonActions-dl7uUHxF.js → RunDataJsonActions-QVURaY0g.js} +2 -2
- package/dist/assets/{RunDataJsonActions-dl7uUHxF.js.map → RunDataJsonActions-QVURaY0g.js.map} +1 -1
- package/dist/assets/{RunDataSchema-zsup9Psk.js → RunDataSchema-8AcA4SSx.js} +2 -2
- package/dist/assets/{RunDataSchema-zsup9Psk.js.map → RunDataSchema-8AcA4SSx.js.map} +1 -1
- package/dist/assets/{RunDataTable-4PVwCliN.js → RunDataTable-aySP3LG2.js} +2 -2
- package/dist/assets/{RunDataTable-4PVwCliN.js.map → RunDataTable-aySP3LG2.js.map} +1 -1
- package/dist/assets/{SamlOnboarding-a7AOJSPY.js → SamlOnboarding-g5DOLc7y.js} +2 -2
- package/dist/assets/{SamlOnboarding-a7AOJSPY.js.map → SamlOnboarding-g5DOLc7y.js.map} +1 -1
- package/dist/assets/{SettingsApiView-MKVmxKrc.js → SettingsApiView-368bFhYh.js} +2 -2
- package/dist/assets/{SettingsApiView-MKVmxKrc.js.map → SettingsApiView-368bFhYh.js.map} +1 -1
- package/dist/assets/{SettingsCommunityNodesView-JSEAJRmQ.js → SettingsCommunityNodesView-4ma9ZrA6.js} +2 -2
- package/dist/assets/{SettingsCommunityNodesView-JSEAJRmQ.js.map → SettingsCommunityNodesView-4ma9ZrA6.js.map} +1 -1
- package/dist/assets/{SettingsExternalSecrets-LATcSwCb.js → SettingsExternalSecrets-anO5H_X6.js} +2 -2
- package/dist/assets/{SettingsExternalSecrets-LATcSwCb.js.map → SettingsExternalSecrets-anO5H_X6.js.map} +1 -1
- package/dist/assets/{SettingsFakeDoorView-JXYglIiV.js → SettingsFakeDoorView-DP8hJH_b.js} +2 -2
- package/dist/assets/{SettingsFakeDoorView-JXYglIiV.js.map → SettingsFakeDoorView-DP8hJH_b.js.map} +1 -1
- package/dist/assets/{SettingsLdapView-2qYzfmuL.js → SettingsLdapView-TVoyUgkx.js} +2 -2
- package/dist/assets/{SettingsLdapView-2qYzfmuL.js.map → SettingsLdapView-TVoyUgkx.js.map} +1 -1
- package/dist/assets/{SettingsLogStreamingView-Xc6EScgx.js → SettingsLogStreamingView-IIFjEkjs.js} +2 -2
- package/dist/assets/{SettingsLogStreamingView-Xc6EScgx.js.map → SettingsLogStreamingView-IIFjEkjs.js.map} +1 -1
- package/dist/assets/{SettingsSourceControl-Mb0LqGSl.js → SettingsSourceControl-1zDUY0dl.js} +2 -2
- package/dist/assets/{SettingsSourceControl-Mb0LqGSl.js.map → SettingsSourceControl-1zDUY0dl.js.map} +1 -1
- package/dist/assets/{SettingsSso-2YEXaMhF.js → SettingsSso-7dAOqmaA.js} +2 -2
- package/dist/assets/{SettingsSso-2YEXaMhF.js.map → SettingsSso-7dAOqmaA.js.map} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-_C19BOT1.js → SettingsUsageAndPlan-0b_7OZCC.js} +2 -2
- package/dist/assets/{SettingsUsageAndPlan-_C19BOT1.js.map → SettingsUsageAndPlan-0b_7OZCC.js.map} +1 -1
- package/dist/assets/{SettingsUsersView-salH__qs.js → SettingsUsersView-0AZ_F16e.js} +2 -2
- package/dist/assets/{SettingsUsersView-salH__qs.js.map → SettingsUsersView-0AZ_F16e.js.map} +1 -1
- package/dist/assets/{SettingsView-EBt-ouA4.js → SettingsView-pF2qlNhK.js} +2 -2
- package/dist/assets/SettingsView-pF2qlNhK.js.map +1 -0
- package/dist/assets/{SetupView-T7JQiE1O.js → SetupView-IPdjd4om.js} +2 -2
- package/dist/assets/{SetupView-T7JQiE1O.js.map → SetupView-IPdjd4om.js.map} +1 -1
- package/dist/assets/{SetupWorkflowCredentialsButton-lDl1ksax.js → SetupWorkflowCredentialsButton-fL7BC8Hp.js} +2 -2
- package/dist/assets/{SetupWorkflowCredentialsButton-lDl1ksax.js.map → SetupWorkflowCredentialsButton-fL7BC8Hp.js.map} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-uEG55eR-.js → SetupWorkflowFromTemplateView-mDNSG38Q.js} +2 -2
- package/dist/assets/{SetupWorkflowFromTemplateView-uEG55eR-.js.map → SetupWorkflowFromTemplateView-mDNSG38Q.js.map} +1 -1
- package/dist/assets/{SigninView-tsJLDDbt.js → SigninView-4mpqXNHu.js} +2 -2
- package/dist/assets/{SigninView-tsJLDDbt.js.map → SigninView-4mpqXNHu.js.map} +1 -1
- package/dist/assets/{SignupView-ckdGMylG.js → SignupView-v6AVy0zJ.js} +2 -2
- package/dist/assets/{SignupView-ckdGMylG.js.map → SignupView-v6AVy0zJ.js.map} +1 -1
- package/dist/assets/{TemplateDetails-YEZlo0n4.js → TemplateDetails-WQVyxQi7.js} +2 -2
- package/dist/assets/{TemplateDetails-YEZlo0n4.js.map → TemplateDetails-WQVyxQi7.js.map} +1 -1
- package/dist/assets/{TemplateList-OGWLmWk_.js → TemplateList--WJ98ZVH.js} +2 -2
- package/dist/assets/{TemplateList-OGWLmWk_.js.map → TemplateList--WJ98ZVH.js.map} +1 -1
- package/dist/assets/{TemplatesCollectionView-Fx5qyXc6.js → TemplatesCollectionView-g59Pu268.js} +2 -2
- package/dist/assets/{TemplatesCollectionView-Fx5qyXc6.js.map → TemplatesCollectionView-g59Pu268.js.map} +1 -1
- package/dist/assets/{TemplatesInfoCarousel-oLwAv_o3.js → TemplatesInfoCarousel-Nq4oRyBi.js} +2 -2
- package/dist/assets/{TemplatesInfoCarousel-oLwAv_o3.js.map → TemplatesInfoCarousel-Nq4oRyBi.js.map} +1 -1
- package/dist/assets/{TemplatesSearchView-TtSL2qyI.js → TemplatesSearchView-Lv0e5mOk.js} +2 -2
- package/dist/assets/{TemplatesSearchView-TtSL2qyI.js.map → TemplatesSearchView-Lv0e5mOk.js.map} +1 -1
- package/dist/assets/{TemplatesWorkflowView-Ipt1HHPc.js → TemplatesWorkflowView-FoPXbc_4.js} +2 -2
- package/dist/assets/{TemplatesWorkflowView-Ipt1HHPc.js.map → TemplatesWorkflowView-FoPXbc_4.js.map} +1 -1
- package/dist/assets/{VariablesView-pLmlCm20.js → VariablesView-Sg4v_4Ai.js} +2 -2
- package/dist/assets/{VariablesView-pLmlCm20.js.map → VariablesView-Sg4v_4Ai.js.map} +1 -1
- package/dist/assets/{WorkerView-Du8mpTon.js → WorkerView-y-y5Q5E5.js} +2 -2
- package/dist/assets/{WorkerView-Du8mpTon.js.map → WorkerView-y-y5Q5E5.js.map} +1 -1
- package/dist/assets/{WorkflowActivator-MuCzpXdv.js → WorkflowActivator-vtOaSPI6.js} +2 -2
- package/dist/assets/{WorkflowActivator-MuCzpXdv.js.map → WorkflowActivator-vtOaSPI6.js.map} +1 -1
- package/dist/assets/{WorkflowExecutionsInfoAccordion-9gkfchSQ.js → WorkflowExecutionsInfoAccordion-Gm7eM0Un.js} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-9gkfchSQ.js.map → WorkflowExecutionsInfoAccordion-Gm7eM0Un.js.map} +1 -1
- package/dist/assets/{WorkflowExecutionsLandingPage-g4QNNuc4.js → WorkflowExecutionsLandingPage-C_oVBqy4.js} +2 -2
- package/dist/assets/{WorkflowExecutionsLandingPage-g4QNNuc4.js.map → WorkflowExecutionsLandingPage-C_oVBqy4.js.map} +1 -1
- package/dist/assets/{WorkflowExecutionsPreview-KNJgPBbn.js → WorkflowExecutionsPreview-Yw0HRwQz.js} +2 -2
- package/dist/assets/{WorkflowExecutionsPreview-KNJgPBbn.js.map → WorkflowExecutionsPreview-Yw0HRwQz.js.map} +1 -1
- package/dist/assets/{WorkflowExecutionsView-Iwwaw9Lt.js → WorkflowExecutionsView-dwh6ZDgY.js} +2 -2
- package/dist/assets/{WorkflowExecutionsView-Iwwaw9Lt.js.map → WorkflowExecutionsView-dwh6ZDgY.js.map} +1 -1
- package/dist/assets/{WorkflowHistory-HxH8_2Dt.js → WorkflowHistory-RGKALSm6.js} +2 -2
- package/dist/assets/{WorkflowHistory-HxH8_2Dt.js.map → WorkflowHistory-RGKALSm6.js.map} +1 -1
- package/dist/assets/{WorkflowOnboardingView-KirfsyFh.js → WorkflowOnboardingView-kAh_YIAL.js} +2 -2
- package/dist/assets/{WorkflowOnboardingView-KirfsyFh.js.map → WorkflowOnboardingView-kAh_YIAL.js.map} +1 -1
- package/dist/assets/{WorkflowsView-SJ6W5Ten.js → WorkflowsView-_nHq94Wq.js} +2 -2
- package/dist/assets/{WorkflowsView-SJ6W5Ten.js.map → WorkflowsView-_nHq94Wq.js.map} +1 -1
- package/dist/assets/{cloud-WKIHJYyR.js → cloud-jEANLTrV.js} +2 -2
- package/dist/assets/{cloud-WKIHJYyR.js.map → cloud-jEANLTrV.js.map} +1 -1
- package/dist/assets/{index-Qw68KAhz.js → index-6M_Mo9yq.js} +4 -4
- package/dist/assets/{index-Qw68KAhz.js.map → index-6M_Mo9yq.js.map} +1 -1
- package/dist/assets/{templateActions-5n_gDrp9.js → templateActions-l9fJr0Cu.js} +2 -2
- package/dist/assets/{templateActions-5n_gDrp9.js.map → templateActions-l9fJr0Cu.js.map} +1 -1
- package/dist/assets/{useExecutionDebugging-bM31shhY.js → useExecutionDebugging-ndesKh44.js} +2 -2
- package/dist/assets/{useExecutionDebugging-bM31shhY.js.map → useExecutionDebugging-ndesKh44.js.map} +1 -1
- package/dist/assets/{usePushConnection-YMVPmkf5.js → usePushConnection-vhkd7pw_.js} +2 -2
- package/dist/assets/{usePushConnection-YMVPmkf5.js.map → usePushConnection-vhkd7pw_.js.map} +1 -1
- package/dist/assets/{workflowActivate-L9KnNQBb.js → workflowActivate-dwxhdtFU.js} +2 -2
- package/dist/assets/{workflowActivate-L9KnNQBb.js.map → workflowActivate-dwxhdtFU.js.map} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/CollectionParameter-ZuNQUd29.js.map +0 -1
- package/dist/assets/SettingsView-EBt-ouA4.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowsView-SJ6W5Ten.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') }} <TimeAgo :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:truncate-at=\"3\"\n\t\t\t\t\t\ttruncate\n\t\t\t\t\t\tdata-test-id=\"workflow-card-tags\"\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/>\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\" @click.stop>\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<WorkflowActivator\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\tdata-test-id=\"workflow-card-actions\"\n\t\t\t\t\t@action=\"onAction\"\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\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\tsetup() {\n\t\treturn {\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tEnterpriseEditionFeature,\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?: KeyboardEvent | PointerEvent) {\n\t\t\tif (event?.ctrlKey || event?.metaKey) {\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<TemplatesInfoCarousel\n\t\t\t\t:collections=\"sectionTemplates\"\n\t\t\t\t:loading=\"false\"\n\t\t\t\t:show-item-count=\"false\"\n\t\t\t\t:show-navigation=\"false\"\n\t\t\t\tcards-width=\"24%\"\n\t\t\t\t@open-collection=\"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, IUser } from '@/Interface';\nimport SuggestedTemplatesSection from '@/components/SuggestedTemplates/SuggestedTemplatesSection.vue';\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?.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<SuggestedTemplatesSection\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:show-title=\"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<ResourcesListLayout\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=\"onFiltersUpdated\"\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\tdata-test-id=\"resources-list-add\"\n\t\t\t\t\t\t@click=\"addWorkflow\"\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<i18n-t tag=\"span\" keypath=\"mainSidebar.workflows.readOnlyEnv.tooltip\">\n\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t<a target=\"_blank\" href=\"https://docs.n8n.io/source-control-environments/\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('mainSidebar.workflows.readOnlyEnv.tooltip.link') }}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</i18n-t>\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<WorkflowCard\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:read-only=\"readOnlyEnv\"\n\t\t\t\t@expand:tags=\"updateItemSize(data)\"\n\t\t\t\t@click:tag=\"onClickTag\"\n\t\t\t/>\n\t\t</template>\n\t\t<template #postListContent>\n\t\t\t<SuggestedTemplatesSection\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<SuggestedTemplatesPage 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<a\n\t\t\t\t\t\tv-if=\"isSalesUser\"\n\t\t\t\t\t\t:href=\"getTemplateRepositoryURL()\"\n\t\t\t\t\t\t:class=\"$style.emptyStateCard\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<n8n-card\n\t\t\t\t\t\t\thoverable\n\t\t\t\t\t\t\tdata-test-id=\"browse-sales-templates-card\"\n\t\t\t\t\t\t\t@click=\"trackCategoryLinkClick('Sales')\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<n8n-icon :class=\"$style.emptyStateCardIcon\" icon=\"box-open\" />\n\t\t\t\t\t\t\t<n8n-text size=\"large\" class=\"mt-xs\" color=\"text-base\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('workflows.empty.browseTemplates') }}\n\t\t\t\t\t\t\t</n8n-text>\n\t\t\t\t\t\t</n8n-card>\n\t\t\t\t\t</a>\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\tdata-test-id=\"new-workflow-card\"\n\t\t\t\t\t\t@click=\"addWorkflow\"\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 v-if=\"settingsStore.areTagsEnabled\" class=\"mb-s\">\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:model-value=\"filters.tags\"\n\t\t\t\t\t:create-enabled=\"false\"\n\t\t\t\t\t@update:model-value=\"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:model-value=\"filters.status\"\n\t\t\t\t\t@update:model-value=\"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</ResourcesListLayout>\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 { useTemplatesStore } from '@/stores/templates.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useCredentialsStore } from '@/stores/credentials.store';\nimport { useSourceControlStore } from '@/stores/sourceControl.store';\nimport { useTagsStore } from '@/stores/tags.store';\n\ntype IResourcesListLayoutInstance = InstanceType<typeof ResourcesListLayout>;\n\ninterface Filters {\n\tsearch: string;\n\townedBy: string;\n\tsharedWith: string;\n\tstatus: string | boolean;\n\ttags: string[];\n}\n\nconst StatusFilter = {\n\tACTIVE: true,\n\tDEACTIVATED: false,\n\tALL: '',\n};\n\nconst WorkflowsView = defineComponent({\n\tname: 'WorkflowsView',\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\tuseTemplatesStore,\n\t\t\tuseUsersStore,\n\t\t),\n\t\treadOnlyEnv(): boolean {\n\t\t\treturn this.sourceControlStore.preferences.branchReadOnly;\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\tuserRole() {\n\t\t\tconst userRole: string | undefined =\n\t\t\t\tthis.usersStore.currentUserCloudInfo?.role ??\n\t\t\t\tthis.usersStore.currentUser?.personalizationAnswers?.role;\n\t\t\treturn userRole;\n\t\t},\n\t\tisSalesUser() {\n\t\t\tif (!this.userRole) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn ['Sales', 'sales-and-marketing'].includes(this.userRole);\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\tmethods: {\n\t\tonFiltersUpdated(filters: Filters) {\n\t\t\tthis.filters = filters;\n\t\t\tthis.saveFiltersOnQueryString();\n\t\t},\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\tgetTemplateRepositoryURL() {\n\t\t\treturn this.templatesStore.websiteTemplateRepositoryURL;\n\t\t},\n\t\ttrackCategoryLinkClick(category: string) {\n\t\t\tthis.$telemetry.track(`User clicked Browse ${category} Templates`, {\n\t\t\t\trole: this.usersStore.currentUserCloudInfo?.role,\n\t\t\t\tactive_workflow_count: this.workflowsStore.activeWorkflows.length,\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\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((tag) =>\n\t\t\t\t\t\t(resource.tags as ITag[])?.find((resourceTag) =>\n\t\t\t\t\t\t\ttypeof resourceTag === 'object'\n\t\t\t\t\t\t\t\t? `${resourceTag.id}` === `${tag}`\n\t\t\t\t\t\t\t\t: `${resourceTag}` === `${tag}`,\n\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\tquery: Object.keys(query).length ? query : undefined,\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});\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","TimeAgo","WorkflowActivator","useToast","useMessage","EnterpriseEditionFeature","mapStores","useSettingsStore","useUIStore","useUsersStore","useWorkflowsStore","getWorkflowPermissions","actions","currentYear","dateformat","event","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","_createTextVNode","_toDisplayString","_createElementVNode","_cache","_withModifiers","_component_n8n_badge","_createCommentVNode","_component_WorkflowActivator","_component_n8n_action_toggle","_component_n8n_text","_withDirectives","_component_TimeAgo","data","_vShow","settingsStore","_createElementBlock","_hoisted_1","_component_n8n_tags","onExpandTags","uiStore","telemetry","useTelemetry","props","__props","sectionTemplates","computed","carouselCollections","workflow","index","onOpenCollection","id","SUGGESTED_TEMPLATES_PREVIEW_MODAL_KEY","usersStore","router","useRouter","currentUser","upperCaseFirstName","user","_b","_a","_c","defaultSection","suggestedTemplates","openCanvas","__expose","StatusFilter","WorkflowsView","ResourcesListLayout","WorkflowCard","TagsDropdown","SuggestedTemplatesPage","SuggestedTemplatesSection","useCredentialsStore","useSourceControlStore","useTagsStore","useTemplatesStore","name","after","filters","category","resource","matches","resourceTag","source","query","userId","tags","status","search","ownedBy","sharedWith","filtersToApply","currentTags","savedTags","_sfc_main","_hoisted_2","_hoisted_4","_hoisted_5","_component_ResourcesListLayout","allWorkflows","isShareable","initialize","readOnlyEnv","addWorkflow","disabled","_component_n8n_tooltip","_component_i18n_t","_component_n8n_button","updateItemSize","_component_WorkflowCard","onClickTag","_Fragment","_renderList","section","key","_component_SuggestedTemplatesSection","$locale","_component_SuggestedTemplatesPage","_hoisted_3","isSalesUser","$event","_component_n8n_icon","$style","setKeyValue","_component_n8n_input_label","_component_TagsDropdown","_hoisted_6","_component_n8n_select","option","_component_n8n_option"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowsView-_nHq94Wq.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') }} <TimeAgo :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:truncate-at=\"3\"\n\t\t\t\t\t\ttruncate\n\t\t\t\t\t\tdata-test-id=\"workflow-card-tags\"\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/>\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\" @click.stop>\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<WorkflowActivator\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\tdata-test-id=\"workflow-card-actions\"\n\t\t\t\t\t@action=\"onAction\"\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\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\tsetup() {\n\t\treturn {\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tEnterpriseEditionFeature,\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?: KeyboardEvent | PointerEvent) {\n\t\t\tif (event?.ctrlKey || event?.metaKey) {\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<TemplatesInfoCarousel\n\t\t\t\t:collections=\"sectionTemplates\"\n\t\t\t\t:loading=\"false\"\n\t\t\t\t:show-item-count=\"false\"\n\t\t\t\t:show-navigation=\"false\"\n\t\t\t\tcards-width=\"24%\"\n\t\t\t\t@open-collection=\"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, IUser } from '@/Interface';\nimport SuggestedTemplatesSection from '@/components/SuggestedTemplates/SuggestedTemplatesSection.vue';\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?.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<SuggestedTemplatesSection\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:show-title=\"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<ResourcesListLayout\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=\"onFiltersUpdated\"\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\tdata-test-id=\"resources-list-add\"\n\t\t\t\t\t\t@click=\"addWorkflow\"\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<i18n-t tag=\"span\" keypath=\"mainSidebar.workflows.readOnlyEnv.tooltip\">\n\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t<a target=\"_blank\" href=\"https://docs.n8n.io/source-control-environments/\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('mainSidebar.workflows.readOnlyEnv.tooltip.link') }}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</i18n-t>\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<WorkflowCard\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:read-only=\"readOnlyEnv\"\n\t\t\t\t@expand:tags=\"updateItemSize(data)\"\n\t\t\t\t@click:tag=\"onClickTag\"\n\t\t\t/>\n\t\t</template>\n\t\t<template #postListContent>\n\t\t\t<SuggestedTemplatesSection\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<SuggestedTemplatesPage 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<a\n\t\t\t\t\t\tv-if=\"isSalesUser\"\n\t\t\t\t\t\t:href=\"getTemplateRepositoryURL()\"\n\t\t\t\t\t\t:class=\"$style.emptyStateCard\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<n8n-card\n\t\t\t\t\t\t\thoverable\n\t\t\t\t\t\t\tdata-test-id=\"browse-sales-templates-card\"\n\t\t\t\t\t\t\t@click=\"trackCategoryLinkClick('Sales')\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<n8n-icon :class=\"$style.emptyStateCardIcon\" icon=\"box-open\" />\n\t\t\t\t\t\t\t<n8n-text size=\"large\" class=\"mt-xs\" color=\"text-base\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('workflows.empty.browseTemplates') }}\n\t\t\t\t\t\t\t</n8n-text>\n\t\t\t\t\t\t</n8n-card>\n\t\t\t\t\t</a>\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\tdata-test-id=\"new-workflow-card\"\n\t\t\t\t\t\t@click=\"addWorkflow\"\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 v-if=\"settingsStore.areTagsEnabled\" class=\"mb-s\">\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:model-value=\"filters.tags\"\n\t\t\t\t\t:create-enabled=\"false\"\n\t\t\t\t\t@update:model-value=\"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:model-value=\"filters.status\"\n\t\t\t\t\t@update:model-value=\"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</ResourcesListLayout>\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 { useTemplatesStore } from '@/stores/templates.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useCredentialsStore } from '@/stores/credentials.store';\nimport { useSourceControlStore } from '@/stores/sourceControl.store';\nimport { useTagsStore } from '@/stores/tags.store';\n\ntype IResourcesListLayoutInstance = InstanceType<typeof ResourcesListLayout>;\n\ninterface Filters {\n\tsearch: string;\n\townedBy: string;\n\tsharedWith: string;\n\tstatus: string | boolean;\n\ttags: string[];\n}\n\nconst StatusFilter = {\n\tACTIVE: true,\n\tDEACTIVATED: false,\n\tALL: '',\n};\n\nconst WorkflowsView = defineComponent({\n\tname: 'WorkflowsView',\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\tuseTemplatesStore,\n\t\t\tuseUsersStore,\n\t\t),\n\t\treadOnlyEnv(): boolean {\n\t\t\treturn this.sourceControlStore.preferences.branchReadOnly;\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\tuserRole() {\n\t\t\tconst userRole: string | undefined =\n\t\t\t\tthis.usersStore.currentUserCloudInfo?.role ??\n\t\t\t\tthis.usersStore.currentUser?.personalizationAnswers?.role;\n\t\t\treturn userRole;\n\t\t},\n\t\tisSalesUser() {\n\t\t\tif (!this.userRole) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn ['Sales', 'sales-and-marketing'].includes(this.userRole);\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\tmethods: {\n\t\tonFiltersUpdated(filters: Filters) {\n\t\t\tthis.filters = filters;\n\t\t\tthis.saveFiltersOnQueryString();\n\t\t},\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\tgetTemplateRepositoryURL() {\n\t\t\treturn this.templatesStore.websiteTemplateRepositoryURL;\n\t\t},\n\t\ttrackCategoryLinkClick(category: string) {\n\t\t\tthis.$telemetry.track(`User clicked Browse ${category} Templates`, {\n\t\t\t\trole: this.usersStore.currentUserCloudInfo?.role,\n\t\t\t\tactive_workflow_count: this.workflowsStore.activeWorkflows.length,\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\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((tag) =>\n\t\t\t\t\t\t(resource.tags as ITag[])?.find((resourceTag) =>\n\t\t\t\t\t\t\ttypeof resourceTag === 'object'\n\t\t\t\t\t\t\t\t? `${resourceTag.id}` === `${tag}`\n\t\t\t\t\t\t\t\t: `${resourceTag}` === `${tag}`,\n\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\tquery: Object.keys(query).length ? query : undefined,\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});\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","TimeAgo","WorkflowActivator","useToast","useMessage","EnterpriseEditionFeature","mapStores","useSettingsStore","useUIStore","useUsersStore","useWorkflowsStore","getWorkflowPermissions","actions","currentYear","dateformat","event","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","_createTextVNode","_toDisplayString","_createElementVNode","_cache","_withModifiers","_component_n8n_badge","_createCommentVNode","_component_WorkflowActivator","_component_n8n_action_toggle","_component_n8n_text","_withDirectives","_component_TimeAgo","data","_vShow","settingsStore","_createElementBlock","_hoisted_1","_component_n8n_tags","onExpandTags","uiStore","telemetry","useTelemetry","props","__props","sectionTemplates","computed","carouselCollections","workflow","index","onOpenCollection","id","SUGGESTED_TEMPLATES_PREVIEW_MODAL_KEY","usersStore","router","useRouter","currentUser","upperCaseFirstName","user","_b","_a","_c","defaultSection","suggestedTemplates","openCanvas","__expose","StatusFilter","WorkflowsView","ResourcesListLayout","WorkflowCard","TagsDropdown","SuggestedTemplatesPage","SuggestedTemplatesSection","useCredentialsStore","useSourceControlStore","useTagsStore","useTemplatesStore","name","after","filters","category","resource","matches","resourceTag","source","query","userId","tags","status","search","ownedBy","sharedWith","filtersToApply","currentTags","savedTags","_sfc_main","_hoisted_2","_hoisted_4","_hoisted_5","_component_ResourcesListLayout","allWorkflows","isShareable","initialize","readOnlyEnv","addWorkflow","disabled","_component_n8n_tooltip","_component_i18n_t","_component_n8n_button","updateItemSize","_component_WorkflowCard","onClickTag","_Fragment","_renderList","section","key","_component_SuggestedTemplatesSection","$locale","_component_SuggestedTemplatesPage","_hoisted_3","isSalesUser","$event","_component_n8n_icon","$style","setKeyValue","_component_n8n_input_label","_component_TagsDropdown","_hoisted_6","_component_n8n_select","option","_component_n8n_option"],"mappings":"0kDA+EO,MAAMA,EAA6B,CACzC,KAAM,OACN,MAAO,QACP,UAAW,YACX,OAAQ,QACT,EAEAC,GAAeC,EAAgB,CAC9B,WAAY,CACX,QAAAC,GACA,kBAAAC,EACD,EACA,MAAO,CACN,KAAM,CACL,KAAM,OACN,SAAU,GACV,QAAS,KAAoB,CAC5B,GAAI,GACJ,UAAW,GACX,UAAW,GACX,OAAQ,GACR,YAAa,CAAC,EACd,MAAO,CAAC,EACR,KAAM,GACN,WAAY,CAAC,EACb,QAAS,CAAC,EACV,UAAW,EAAA,EAEb,EACA,SAAU,CACT,KAAM,QACN,QAAS,EACV,CACD,EACA,OAAQ,CACA,MAAA,CACN,GAAGC,EAAS,EACZ,GAAGC,GAAW,CAAA,CAEhB,EACA,MAAO,CACC,MAAA,CACN,yBAAAC,CAAA,CAEF,EACA,SAAU,CACT,GAAGC,EAAUC,EAAkBC,EAAYC,EAAeC,CAAiB,EAC3E,aAAqB,CACb,OAAA,KAAK,WAAW,aAAgB,EACxC,EACA,qBAAoC,CACnC,OAAOC,GAAuB,KAAK,YAAa,KAAK,IAAI,CAC1D,EACA,SAAmD,CAClD,MAAMC,EAAU,CACf,CACC,MAAO,KAAK,QAAQ,SAAS,qBAAqB,EAClD,MAAOd,EAA2B,IACnC,EACA,CACC,MAAO,KAAK,QAAQ,SAAS,sBAAsB,EACnD,MAAOA,EAA2B,KACnC,CAAA,EAGG,OAAC,KAAK,UACTc,EAAQ,KAAK,CACZ,MAAO,KAAK,QAAQ,SAAS,0BAA0B,EACvD,MAAOd,EAA2B,SAAA,CAClC,EAGE,KAAK,oBAAoB,QAAU,CAAC,KAAK,UAC5Cc,EAAQ,KAAK,CACZ,MAAO,KAAK,QAAQ,SAAS,uBAAuB,EACpD,MAAOd,EAA2B,MAAA,CAClC,EAGKc,CACR,EACA,wBAAiC,CAChC,MAAMC,EAAc,IAAI,KAAK,EAAE,YAAY,EAEpC,OAAAC,GACN,KAAK,KAAK,UACV,SAAS,KAAK,KAAK,UAAU,WAAWD,CAAW,EAAI,GAAK,QAAQ,EAAA,CAEtE,CACD,EACA,QAAS,CACR,MAAM,QAAQE,EAAsC,CAC/C,GAAAA,GAAA,MAAAA,EAAO,SAAWA,GAAA,MAAAA,EAAO,QAAS,CAC/B,MAAAC,EAAQ,KAAK,QAAQ,QAAQ,CAClC,KAAMC,EAAM,SACZ,OAAQ,CAAE,KAAM,KAAK,KAAK,EAAG,CAAA,CAC7B,EACM,OAAA,KAAKD,EAAM,KAAM,QAAQ,EAEhC,MACD,CAEM,MAAA,KAAK,QAAQ,KAAK,CACvB,KAAMC,EAAM,SACZ,OAAQ,CAAE,KAAM,KAAK,KAAK,EAAG,CAAA,CAC7B,CACF,EACA,WAAWC,EAAeH,EAAqB,CAC9CA,EAAM,gBAAgB,EAEjB,KAAA,MAAM,YAAaG,EAAOH,CAAK,CACrC,EACA,cAAe,CACd,KAAK,MAAM,aAAa,CACzB,EACA,MAAM,SAASI,EAAgB,CAC1B,GAAAA,IAAWrB,EAA2B,KACzC,MAAM,KAAK,kBACDqB,IAAWrB,EAA2B,UAChD,KAAK,QAAQ,kBAAkB,CAC9B,KAAMsB,GACN,KAAM,CACL,GAAI,KAAK,KAAK,GACd,KAAM,KAAK,KAAK,KAChB,MAAO,KAAK,KAAK,MAAQ,IAAI,IAAKC,GAAcA,EAAI,EAAE,CACvD,CAAA,CACA,UACSF,IAAWrB,EAA2B,MAChD,KAAK,QAAQ,kBAAkB,CAC9B,KAAMwB,GACN,KAAM,CAAE,GAAI,KAAK,KAAK,EAAG,CAAA,CACzB,EAEI,KAAA,WAAW,MAAM,4BAA6B,CAClD,YAAa,KAAK,KAAK,GACvB,eAAgB,KAAK,YAAY,GACjC,SAAU,KAAK,OAAO,OAASL,EAAM,UAAY,oBAAsB,iBAAA,CACvE,UACSE,IAAWrB,EAA2B,OAAQ,CAiBxD,GAhBwB,MAAM,KAAK,QAClC,KAAK,QAAQ,SAAS,oDAAqD,CAC1E,YAAa,CAAE,aAAc,KAAK,KAAK,IAAK,CAAA,CAC5C,EACD,KAAK,QAAQ,SAAS,oDAAoD,EAC1E,CACC,KAAM,UACN,kBAAmB,KAAK,QAAQ,SAC/B,6DACD,EACA,iBAAkB,KAAK,QAAQ,SAC9B,4DACD,CACD,CAAA,IAGuByB,GACvB,OAGG,GAAA,CACH,MAAM,KAAK,eAAe,eAAe,KAAK,KAAK,EAAE,QAC7CC,EAAO,CACf,KAAK,UAAUA,EAAO,KAAK,QAAQ,SAAS,6BAA6B,CAAC,EAC1E,MACD,CAGA,KAAK,YAAY,CAChB,MAAO,KAAK,QAAQ,SAAS,6CAA6C,EAC1E,KAAM,SAAA,CACN,CACF,CACD,CACD,CACD,CAAC,2XA5PAC,EAoDW,UAAA,EApDyB,OAAAC,EAAA,EAAcC,EAAAC,EAAA,CAAA,MAAAC,EAAAC,EAAA,OAAA,QAAA,EACtC,QAAMA,EAAA,OAAA,EAAA,QACAC,EAAK,IAAA,CAAKC,EAAAC,EAAA,CAAE,IAAK,KAAsB,KAAA,GAAA,MAAAJ,EAAAC,EAAA,OAAA,WAAA,EAH1D,eAAA,oBAAA,EAAA,gBAAAI,EAAAC,EAAAL,EAAA,KAAA,IAAA,EAAA,CAAA,CAAA,CAAA,KA8Ba,EAAA,EAAM,CAChB,OAAA,CAAA,CAAA,CAAA,SAAMC,EA/BT,IAAA,CA+B0CK,EAAA,MAAA,CAAA,MAAAP,EAAAC,EAAA,OAAA,WAAA,EACtC,QAIqBO,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAA,IAAA,CAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MApCzB,SAmCiB,CAAAR,EAAA,yBAAA,OAAA,CAAA,EAAA,CAFZ,QAAAC,EAAA,IAAA,CAAAD,EAjCL,iCAiCgEH,EAAAY,EAAA,CAAC,IAAK,EAAY,MAAA,QAAA,MAAA,WAjClF,KAAA,EAAA,EAAA,gBAAAL,EAAAC,EAAAL,EAAA,QAAA,SAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,GAAAU,EAAA,GAAA,EAAA,CAAA,CAAA,EAsCI,EAAA,CAAA,EACC,GAAK,UAAO,CAAA,EAAAR,EACXS,EAA4B,CAC5B,MAAA,OACD,kBAAaX,EAAA,KAAA,OAAA,cAAAA,EAAA,KAAA,GAGd,eAKE,yBAJA,EAAA,KAAO,EAAElB,CAAO,kBAAA,aAAA,CAAA,EAAAoB,EACXU,EAAM,CACZ,QAAYZ,EAAA,QACX,MAAA,OAAA,eAAA,2EAjDN,EAAA,CAAA,CAAA,CAAA,UAOaC,EAPb,IAAA,CAAAK,EAAA,MAAA,CAQG,MAoBWP,EAAAC,EAAA,OAAA,eAAA,CAAA,EAAA,GApBuBa,EAAO,CAAA,MAAA,aAR5C,KAAA,OAAA,EAAA,CAAA,QAAAZ,EAAA,IAAA,CAUyFa,EAAAR,EAAA,OAAA,KAAA,CAAAF,EAAdC,EAAUL,EAAA,QAAA,SAAA,wBAAA,CAAA,EAAA,IAAA,CAAA,EAAAE,EAAAa,EAAA,CAVrF,KAUyFf,EAAA,KAAA,SAAA,EAAA,KAAA,EAAA,CAAA,MAAA,CAAA,IADvEgB,KAAI,CAAA,EAAA,GAAA,EAAA,CAGlB,CAAAC,EAAAjB,EAAA,IAAA,CAAA,CAAA,oHAIOkB,CAAcD,EAAAjB,EAAA,IAAA,CAAA,CAAA,EAGpBA,EAAA,cAOE,qDANMgB,EAAS,EAAAG,EAAA,OAAAC,GAAA,CAAAlB,EACfmB,EAAc,CACf,KAAQrB,EAAA,KAAA,KACR,cAAY,EACX,SAAA,GACA,eAAQsB,qBAAAA,cAAAA,EAAAA,yCARFN,EAAI,CAAA,OAAA,cAAA,UAAA,CAAA,CAAA,EAAA,GAAA,GAAA,CAjBjB,CAAAC,EAAAjB,EAAA,IAAA,CAAA,CAAA,EAAAU,EAAA,GAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,CAAA,CAAA,gQCQA,MAAMa,EAAU7C,IACV8C,EAAYC,KAEZC,EAAQC,EAeRC,EAAmBC,EAAS,IAAM,CACvC,MAAMC,EAAsB,QACxB,OAACP,EAAQ,oBAGbG,EAAM,QAAQ,UAAU,QAAQ,CAACK,EAAUC,IAAU,CACpDF,EAAoB,KAAK,CACxB,GAAIE,EACJ,KAAMD,EAAS,MACf,UAAW,CAAC,CAAE,GAAIC,EAAO,EACzB,MAAOD,EAAS,KAAA,CAChB,CAAA,CACD,EACMD,CAAA,CACP,EAEQ,SAAAG,EAAiB,CAAE,GAAAC,GAAoC,CAC/DX,EAAQ,kBAAkB,CACzB,KAAMY,GACN,KAAM,CAAE,SAAUT,EAAM,QAAQ,UAAUQ,CAAE,CAAE,CAAA,CAC9C,EACSV,EAAA,MACT,uCACA,CAAE,aAAcE,EAAM,QAAQ,UAAUQ,CAAE,EAAE,KAAM,EAClD,CAAE,YAAa,EAAK,CAAA,CAEtB,8oBC3CA,MAAME,EAAazD,IACb4C,EAAU7C,IACV2D,EAASC,KAETC,EAAcV,EAAS,IAAMO,EAAW,WAAW,EAEnDI,EAAsBC,GAAuB,WAClD,GAAKA,GAAA,MAAAA,EAAM,UACJ,QAAAC,GAAAC,EAAAF,EAAK,YAAL,YAAAE,EAAgB,OAAO,KAAvB,YAAAD,EAA2B,iBAAgBE,EAAAH,GAAA,YAAAA,EAAM,YAAN,YAAAG,EAAiB,MAAM,GAAC,EAGrEC,EAAiBhB,EAAS,IAC1BN,EAAQ,mBAGNA,EAAQ,mBAAmB,SAAS,CAAC,EAFpC,IAGR,EAEKuB,EAAqBjB,EAAS,IAAM,CACzC,MAAMC,EAAsB,QAC5B,MAAI,CAACP,EAAQ,oBAAsB,CAACsB,EAAe,OAGnDA,EAAe,MAAM,UAAU,QAAQ,CAACd,EAAUC,IAAU,CAC3DF,EAAoB,KAAK,CACxB,GAAIE,EACJ,KAAMD,EAAS,MACf,UAAW,CAAC,CAAE,GAAIC,EAAO,EACzB,MAAOD,EAAS,KAAA,CAChB,CAAA,CACD,EACMD,CAAA,CACP,EAED,SAASiB,GAAa,CACrBxB,EAAQ,oBAAsB,GACzBc,EAAO,KAAK,CAAE,KAAMlD,EAAM,aAAc,CAC9C,CAEa,OAAA6D,EAAA,CACZ,YAAAT,EACA,WAAAQ,EACA,mBAAAD,CAAA,CACA,smCCyIKG,EAAe,CACpB,OAAQ,GACR,YAAa,GACb,IAAK,EACN,EAEMC,GAAgBhF,EAAgB,CACrC,KAAM,gBACN,WAAY,CACX,oBAAAiF,EACA,aAAAC,GACA,aAAAC,GACA,uBAAAC,GACA,0BAAAC,CACD,EACA,MAAO,CACC,MAAA,CACN,QAAS,CACR,OAAQ,GACR,QAAS,GACT,WAAY,GACZ,OAAQN,EAAa,IACrB,KAAM,CAAC,CACR,EACA,8BAA+B,IAAM,CAAC,CAAA,CAExC,EACA,SAAU,CACT,GAAGzE,EACFC,EACAC,EACAC,EACAC,EACA4E,GACAC,GACAC,GACAC,GACAhF,CACD,EACA,aAAuB,CACf,OAAA,KAAK,mBAAmB,YAAY,cAC5C,EACA,aAAqB,CACb,OAAA,KAAK,WAAW,aAAgB,EACxC,EACA,cAA8B,CAC7B,OAAO,KAAK,eAAe,YAC5B,EACA,aAAuB,CACtB,OAAO,KAAK,cAAc,2BAA2BJ,EAAyB,OAAO,CACtF,EACA,qBAAyE,CACjE,MAAA,CACN,CACC,MAAO,KAAK,QAAQ,SAAS,8BAA8B,EAC3D,MAAO0E,EAAa,GACrB,EACA,CACC,MAAO,KAAK,QAAQ,SAAS,iCAAiC,EAC9D,MAAOA,EAAa,MACrB,EACA,CACC,MAAO,KAAK,QAAQ,SAAS,sCAAsC,EACnE,MAAOA,EAAa,WACrB,CAAA,CAEF,EACA,oBAAqB,CACpB,OAAO,KAAK,QAAQ,kBACrB,EACA,UAAW,WAIH,QAFNN,EAAA,KAAK,WAAW,uBAAhB,YAAAA,EAAsC,SACtCC,GAAAF,EAAA,KAAK,WAAW,cAAhB,YAAAA,EAA6B,yBAA7B,YAAAE,EAAqD,KAEvD,EACA,aAAc,CACT,OAAC,KAAK,SAGH,CAAC,QAAS,qBAAqB,EAAE,SAAS,KAAK,QAAQ,EAFtD,EAGT,CACD,EACA,MAAO,CACN,gBAAiB,CAChB,KAAK,qBAAqB,MAAM,CACjC,CACD,EACA,SAAU,CACT,KAAK,0BAA0B,EAE1B,KAAK,WAAW,4BAEhB,KAAA,8BAAgC,KAAK,mBAAmB,UAAU,CAAC,CAAE,KAAAgB,EAAM,MAAAC,KAAY,CACvFD,IAAS,kBAAoBC,GAChCA,EAAM,IAAM,CACN,KAAK,YAAW,CACrB,CACF,CACA,CACF,EACA,eAAgB,CACf,KAAK,8BAA8B,CACpC,EACA,QAAS,CACR,iBAAiBC,EAAkB,CAClC,KAAK,QAAUA,EACf,KAAK,yBAAyB,CAC/B,EACA,aAAc,CACb,KAAK,QAAQ,oBAAsB,GAC9B,KAAK,QAAQ,KAAK,CAAE,KAAM3E,EAAM,aAAc,EAE9C,KAAA,WAAW,MAAM,mCAAoC,CACzD,OAAQ,gBAAA,CACR,CACF,EACA,0BAA2B,CAC1B,OAAO,KAAK,eAAe,4BAC5B,EACA,uBAAuB4E,EAAkB,OACxC,KAAK,WAAW,MAAM,uBAAuBA,CAAQ,aAAc,CAClE,MAAMpB,EAAA,KAAK,WAAW,uBAAhB,YAAAA,EAAsC,KAC5C,sBAAuB,KAAK,eAAe,gBAAgB,MAAA,CAC3D,CACF,EACA,MAAM,YAAa,CAClB,MAAM,QAAQ,IAAI,CACjB,KAAK,WAAW,WAAW,EAC3B,KAAK,eAAe,kBAAkB,EACtC,KAAK,eAAe,qBAAqB,EACzC,KAAK,iBAAiB,oBAAoB,CAAA,CAC1C,CACF,EACA,WAAWvD,EAAeH,EAAqB,CACzC,KAAK,QAAQ,KAAK,SAASG,CAAK,GAC/B,KAAA,QAAQ,KAAK,KAAKA,CAAK,CAE9B,EACA,SACC4E,EACAF,EACAG,EACU,CACV,OAAI,KAAK,cAAc,gBAAkBH,EAAQ,KAAK,OAAS,IAE7DG,EAAAA,GACAH,EAAQ,KAAK,MAAOvE,GAClB,OAAA,OAAAoD,EAAAqB,EAAS,OAAT,YAAArB,EAA0B,KAAMuB,GAChC,OAAOA,GAAgB,SACpB,GAAGA,EAAY,EAAE,IAAO,GAAG3E,CAAG,GAC9B,GAAG2E,CAAW,IAAO,GAAG3E,CAAG,IAC/B,GAICuE,EAAQ,SAAW,KACZG,EAAAA,GAAWD,EAAS,SAAWF,EAAQ,QAG3CG,CACR,EACA,qBAAqBE,EAAgB,CACnC,KAAK,MAAM,OAAwC,qBAAqBA,CAAM,CAChF,EACA,0BAA2B,CAC1B,MAAMC,EAAmC,CAAA,EAErC,KAAK,QAAQ,SACVA,EAAA,OAAS,KAAK,QAAQ,QAGzB,OAAO,KAAK,QAAQ,QAAW,WAClCA,EAAM,OAAS,KAAK,QAAQ,OAAO,SAAS,GAGzC,KAAK,QAAQ,KAAK,SACrBA,EAAM,KAAO,KAAK,QAAQ,KAAK,KAAK,GAAG,GAGpC,KAAK,QAAQ,UACVA,EAAA,QAAU,KAAK,QAAQ,SAG1B,KAAK,QAAQ,aACVA,EAAA,WAAa,KAAK,QAAQ,YAG5B,KAAK,QAAQ,QAAQ,CACzB,MAAO,OAAO,KAAKA,CAAK,EAAE,OAASA,EAAQ,MAAA,CAC3C,CACF,EACA,cAAcC,EAAgB,CAC7B,OAAO,OAAO,KAAK,KAAK,WAAW,KAAK,EAAE,SAASA,CAAM,CAC1D,EACA,2BAA4B,CACrB,KAAA,CAAE,KAAAC,EAAM,OAAAC,EAAQ,OAAAC,EAAQ,QAAAC,EAAS,WAAAC,GAAe,KAAK,OAAO,MAE5DC,EAAiE,CAAA,EAcnE,GAZAF,GAAW,OAAOA,GAAY,UAAY,KAAK,cAAcA,CAAO,IACvEE,EAAe,QAAUF,GAGtBC,GAAc,OAAOA,GAAe,UAAY,KAAK,cAAcA,CAAU,IAChFC,EAAe,WAAaD,GAGzBF,GAAU,OAAOA,GAAW,WAC/BG,EAAe,OAASH,GAGrBF,GAAQ,OAAOA,GAAS,SAAU,CAC/B,MAAAM,EAAc,KAAK,UAAU,QAAQ,IAAKrF,GAAQA,EAAI,EAAE,EACxDsF,EAAYP,EAAK,MAAM,GAAG,EAAE,OAAQ/E,GAAQqF,EAAY,SAASrF,CAAG,CAAC,EACvEsF,EAAU,SACbF,EAAe,KAAOE,EAExB,CAGCN,GACA,OAAOA,GAAW,UAClB,CAACtB,EAAa,OAAO,SAAY,EAAAA,EAAa,YAAY,SAAS,CAAC,EAAE,SAASsB,CAAM,IAErFI,EAAe,OAASJ,IAAW,QAGhC,OAAO,KAAKI,CAAc,EAAE,SAC/B,KAAK,QAAU,CACd,GAAG,KAAK,QACR,GAAGA,CAAA,EAGN,CACD,CACD,CAAC,EAEDG,GAAe5B,kKA5Ye9B,GAAC,CAAA,OAAA,kEA/B/B2D,GAAA,CAAA,IAAA,iCAAAC,GAAA,CAAA,MAAA,EAsH4CC,GAAY,CAAA,IAAA,yVAuCjCC,EAAAvF,EAAA,qBAAA,EA1JrB,OAAAC,EAAA,EAAwBC,EAAAqF,EAAA,CACvB,IAAA,SACA,eAASpB,YACT,UAAA9D,EAAA,aACA,QAAYA,EAAA,QACZ,6BAAYmF,EAAa,SACzB,aAAWC,CAAW,SAAA,EAAA,EACtB,aAAYC,EAAU,aAAA,OAAA,EACtB,UAAUC,EAAAA,YACV,WAAWC,EAAAA,WACX,SAAAvF,EAAA,YAAA,cAAAA,EAAA,YAEU,mBAAUA,EAsBN,gBAAA,EAAA,CArBQ,aAAAC,EAAGqF,CAAW,CAAA,SAAAE,KAAA,CAAAtF,EAAAuF,EAAA,CAYxB,SAAO,CAAAzF,EAAA,WAAA,EAAA,SACLC,EAAM,IAAA,CAASC,EAAAwF,EAAA,CAAA,IAAA,OACf,QAAI,2CAAA,EAAA,aA9BrBpF,EAAA,IAAAc,GAAAf,EAAAL,EAAA,QAAA,SAAA,gDAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,UAkBKC,EAQa,IAAA,CAPAK,EAAA,MAAA,KAAA,CACPJ,EAAAyF,EAAA,CACJ,KAAA,QACD,MAAA,GACC,SAAAH,EAAA,eAAA,qBAvBP,QAAAxF,EAAA,WAAA,EAAA,gBAAAI,EAAAC,EAAAL,EAAA,QAAA,SAAA,eAAA,CAAA,EAAA,CAAA,CAAA,CAAA,mCAAA,CAAA,CAAA,CAAA,KAuCa,EAAA,KAAO,CAAI,UAAA,CAAA,CAAA,CAAA,EAEpB,QAAAC,EAAY,EAAC,KAAAe,EAAqB,eAAA4E,CAAA,IAAA,CAAA1F,EAC5B2F,EAAQ,CACb,eAAU,sBACV,MAAA,SACA,KAAA7E,EACA,YAAShB,EAAE8F,YAAAA,gBAAAA,GAAAA,EAAAA,CAAAA,4BAGH,EAAA,KAAA,EAAA,CAAe,OAE8B,YAAA,gBAAA,aAAA,CAAA,CAAA,CAAA,EADvD,gBAAA7F,EAAA,IAAA,OAAA,QAEUL,EAAA,EAAA,EAAAuB,EAAA4E,EAAA,KAAAC,GAAArD,EAAA3C,EAAA,qBAAA,YAAA2C,EAAA,SAAA,CAAAsD,EAAAC,KACRtG,EAAgB,EAAAC,EAAAsG,EAAA,CAChB,IAAAD,EAAaE,QAAAA,EAAAA,MAAAA,EAAAA,QAAAA,SAAAA,kCAAAA,qFAOA,EAAA,GAAA,EAAA,EAAA,EACf,MAAAnG,EAAA,IAAA,CAECD,EAAA,oBAAAJ,EAAA,EAAAC,EAoBMwG,iBAVSlF,EAAA,MAAA4D,GAAA,CATOzE,EAAA,MAAAgG,GAAA,CAAApG,EAAMC,EAAQ,CAAC,IAAK,KAAA,KAAA,SAjE9C,MAAA,QAAA,EAAA,CAmEiCoC,QAAYtC,EAAS,IAAA,CAAAG,EAAAC,EAAAL,EAAA,QAAA,sJAQjD,EAAA,CAAA,CAAA,IAA6Ba,EAAW,CAAA,KAAA,QA3E7C,MAAA,WAAA,EAAA,CA6EiCyE,QAAWrF,EAAA,IAAA,CAAAG,EAAAC,EAAAL,EAAA,QAAA,yGAQ5BsF,CAAAA,CAAAA,CAAAA,EArFhBtF,EAAA,YAAAU,EAAA,GAAA,EAAA,GAAAd,EAAA,EAAAuB,EAAA,MAAA,CAAA,IAAA,QAuFYoF,EAAW,CAAA,cAAA,SAAAvG,EAAA,OAAA,gBAAA,CAAA,CAAA,EAAA,CAvFvBA,EAAA,aAAAJ,IAwFqCuB,EAAA,IAAA,CAC9B,IAAK,EACN,KAAMnB,EAAC,yBAAQ,EAAA,MAAAD,EAAAC,EAAA,OAAA,cAAA,EAEf,OAAA,QAAA,EAAA,GAECF,EAAa,CACZ,UAAK,GAAA,eAAA,8BA/Fb,QAiGsES,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAiG,GAAAxG,EAAA,uBAAA,OAAA,EAAA,EAAA,SAA/CC,EAjGvB,IAAA,CAAAC,EAiGyDuG,EAAU,CAAA,MAAA1G,EAAAC,EAAA,OAAA,kBAAA,EAC5D,KAAA,UAAA,EAAU,KAAK,EAAO,CAAA,OAAA,CAAA,EAAAE,EAAOW,EAAO,CAAC,KAAK,QAAA,MAAA,QAlGjD,MAAA,WAAA,EAAA,gBAAAT,EAAAC,EAAAL,EAAA,QAAA,SAAA,iCAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAuGK,EAAA,GAAAgF,EAUW,GATTtE,EAxGP,GAwGcgG,EAAAA,EAAAA,EACR5G,EAAS,CACT,QAAaE,EAAmB,OAAA,cAAA,EAC/B,UAAOuF,GAAAA,eAAAA,oBA3Gd,QAAAvF,EAAA,WAAA,EAAA,SA6GsBC,EA7GtB,IAAA,CAAAC,EA6GwDuG,EAAM,CAAA,MAAA1G,EAAAC,EAAA,OAAA,kBAAA,EACxD,KAAA,MAAA,EAAU,KAAK,EAAO,CAAA,OAAA,CAAA,EAAAE,EAAOW,EAAO,CAAC,KAAK,QAAA,MAAA,QA9GhD,MAAA,WAAA,EAAA,gBAAAT,EAAAC,EAAAL,EAAA,QAAA,SAAA,kCAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,CAAA,QAAA,SAAA,CAAA,CAAA,EAAA,CAAA,GAqHoB,EAAA,CAAA,EACjB,QAAAC,EAAA,CAAA,CAAA,YAAA0G,KAAA,CACC3G,EAAA,cAME,kBALuB,EAAAmB,EAAA,MAAA8D,GAAA,CACZ/E,EAAA0G,EAAA,CACZ,MAAK5G,EAAO,QAAA,SAAA,wBAAA,EACZ,KAAK,GACL,KAAK,QAAA,MAAA,YAEN,MAAA,QAAA,EACE,QAAW,OAAEoG,CAAAA,EAAAA,EACbS,EAAyB,CACzB,cAAgB,QAAK,SAAA,8BAAA,EACrB,cAAkB7G,EAAA,QAAA,KAAA,iBAAA,uCAlIxB,EAAA,KAAA,EAAA,CAAA,cAAA,cAAA,qBAAA,CAAA,CAAA,IAsIIU,EAME,GAAA,EAAA,EAAAJ,EALO8F,MAAQU,GAAQ,CACZ5G,EAAA0G,EAAA,CACZ,MAAK5G,EAAO,QAAA,SAAA,0BAAA,EACZ,KAAK,GACL,KAAK,QAAA,MAAA,YAEN,MAAA,QAAA,EACC,KAAa,EAAA,CAAA,OAAA,CAAA,EAAAE,EACZ6G,EAA2B,CAC3B,eAAA,kBAAA,cAAA/G,EAAA,QAAA,OAhJN,sBAmJ2CwG,GAAAG,EAAA,SAAAH,CAAA,CAAA,EAAA,iBAC/B5G,EAAA,EAAO,EAAKuB,EAAA4E,EAAA,KAAAC,EAAAhG,EAAA,oBAAAgH,IACZpH,EAAA,EAAcC,EAAAoH,EAAA,CACnB,IAAKD,EAAE,MACR,MAAYA,EAAA,MAAA,MAAAA,EAAA,yDAvJlB,EAAA,GAAA,EAAA,CAAA,kDAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as k,gj as _,m as D,v as d,o as N,a0 as p}from"./n8n-0pza0mdA.js";import{a1 as n}from"./index-Qw68KAhz.js";import"./vendor-KLOX9vbo.js";import"./lodash-es-wI9avrph.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./pinia-28uZ5ZtB.js";import"./@vueuse/core-JpwZAlxf.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-Cb1fO4GA.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./@n8n/codemirror-lang-sql-_W1-z7Mc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-AlqFM-P6.js";import"./codemirror-lang-html-n8n-tmVw-mwA.js";import"./codemirror-lang-n8n-expression-71F4KZSz.js";import"./fast-json-stable-stringify-QF2cL2qw.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-ohcdYkQS.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";function h(){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 S=()=>{const r=k();r.fakeDoorFeatures=h()},a={pushRef:"",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.pushRef}}),y=()=>{a.pushRef=`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]}}},R=r=>{var t,s,i,l,c,m,u,w,f,v;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:(f=(w=r.resultDataError)==null?void 0:w.node)==null?void 0:f.name:o.properties.error_node=r.nodeName):(o.properties.status="success",(v=r.runDataExecutedStartData)!=null&&v.destinationNode&&(o.properties.items_count=r.itemsCount||0)),o},M=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:[()=>{S()}]},nodeView:{mount:[()=>{n().identify()}],createNodeActiveChanged:[(r,e)=>{const o=n(),t={source:e.source,nodes_panel_session_id:a.pushRef};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.pushRef}};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 /> - "),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=R(e);o.track(t.eventName,t.properties)}]},node:{deleteNode:[(r,e)=>{const o=n(),t=M(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.pushRef}};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-
|
|
1
|
+
import{u as k,gj as _,m as D,v as d,o as N,a0 as p}from"./n8n-0pza0mdA.js";import{a1 as n}from"./index-6M_Mo9yq.js";import"./vendor-KLOX9vbo.js";import"./lodash-es-wI9avrph.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./pinia-28uZ5ZtB.js";import"./@vueuse/core-JpwZAlxf.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-Cb1fO4GA.js";import"./@n8n/permissions-8yMqUF1Y.js";import"./@n8n/codemirror-lang-sql-_W1-z7Mc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-AlqFM-P6.js";import"./codemirror-lang-html-n8n-tmVw-mwA.js";import"./codemirror-lang-n8n-expression-71F4KZSz.js";import"./fast-json-stable-stringify-QF2cL2qw.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-ohcdYkQS.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";function h(){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 S=()=>{const r=k();r.fakeDoorFeatures=h()},a={pushRef:"",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.pushRef}}),y=()=>{a.pushRef=`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]}}},R=r=>{var t,s,i,l,c,m,u,w,f,v;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:(f=(w=r.resultDataError)==null?void 0:w.node)==null?void 0:f.name:o.properties.error_node=r.nodeName):(o.properties.status="success",(v=r.runDataExecutedStartData)!=null&&v.destinationNode&&(o.properties.items_count=r.itemsCount||0)),o},M=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:[()=>{S()}]},nodeView:{mount:[()=>{n().identify()}],createNodeActiveChanged:[(r,e)=>{const o=n(),t={source:e.source,nodes_panel_session_id:a.pushRef};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.pushRef}};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 /> - "),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=R(e);o.track(t.eventName,t.properties)}]},node:{deleteNode:[(r,e)=>{const o=n(),t=M(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.pushRef}};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-jEANLTrV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-WKIHJYyR.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\tpushRef: '',\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.pushRef,\n\t\t},\n\t};\n};\n\nexport const hooksResetNodesPanelSession = () => {\n\tnodesPanelSession.pushRef = `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.pushRef,\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.pushRef,\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 /> - '),\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.pushRef,\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
|
+
{"version":3,"file":"cloud-jEANLTrV.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\tpushRef: '',\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.pushRef,\n\t\t},\n\t};\n};\n\nexport const hooksResetNodesPanelSession = () => {\n\tnodesPanelSession.pushRef = `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.pushRef,\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.pushRef,\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 /> - '),\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.pushRef,\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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"}
|