n8n-editor-ui 1.45.0 → 1.45.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 +75 -75
- package/dist/assets/{AuthView-sBgr4ab5.js → AuthView-Bpw90ooz.js} +2 -2
- package/dist/assets/{AuthView-sBgr4ab5.js.map → AuthView-Bpw90ooz.js.map} +1 -1
- package/dist/assets/{CanvasControls-WQFq3IW7.js → CanvasControls-CQPytmej.js} +2 -2
- package/dist/assets/{CanvasControls-WQFq3IW7.js.map → CanvasControls-CQPytmej.js.map} +1 -1
- package/dist/assets/{ChangePasswordView-RoWelfJE.js → ChangePasswordView-tMFb4WIn.js} +2 -2
- package/dist/assets/{ChangePasswordView-RoWelfJE.js.map → ChangePasswordView-tMFb4WIn.js.map} +1 -1
- package/dist/assets/{CollectionParameter-o9-pyF-D.js → CollectionParameter-CwgJAh2M.js} +2 -2
- package/dist/assets/CollectionParameter-CwgJAh2M.js.map +1 -0
- package/dist/assets/{CredentialsView-loSi714I.js → CredentialsView-lvIyWvdA.js} +2 -2
- package/dist/assets/{CredentialsView-loSi714I.js.map → CredentialsView-lvIyWvdA.js.map} +1 -1
- package/dist/assets/{ExecutionsFilter-BwFUjELc.js → ExecutionsFilter-BSWo4-vK.js} +2 -2
- package/dist/assets/{ExecutionsFilter-BwFUjELc.js.map → ExecutionsFilter-BSWo4-vK.js.map} +1 -1
- package/dist/assets/{ExecutionsView-ClvBwy6K.js → ExecutionsView-Bztejjur.js} +2 -2
- package/dist/assets/{ExecutionsView-ClvBwy6K.js.map → ExecutionsView-Bztejjur.js.map} +1 -1
- package/dist/assets/{ForgotMyPasswordView-Da9ejE05.js → ForgotMyPasswordView-n_x-L3AV.js} +2 -2
- package/dist/assets/{ForgotMyPasswordView-Da9ejE05.js.map → ForgotMyPasswordView-n_x-L3AV.js.map} +1 -1
- package/dist/assets/{MainHeader-DCqd1GFf.js → MainHeader-P2afzgJI.js} +2 -2
- package/dist/assets/{MainHeader-DCqd1GFf.js.map → MainHeader-P2afzgJI.js.map} +1 -1
- package/dist/assets/{MainSidebar-D0hPq1hI.js → MainSidebar-CAwsaKp9.js} +2 -2
- package/dist/assets/{MainSidebar-D0hPq1hI.js.map → MainSidebar-CAwsaKp9.js.map} +1 -1
- package/dist/assets/{NodeCreation-Dv1vHhp7.js → NodeCreation-DHuCOx3T.js} +3 -3
- package/dist/assets/{NodeCreation-Dv1vHhp7.js.map → NodeCreation-DHuCOx3T.js.map} +1 -1
- package/dist/assets/{NodeCreator-CTyp0oWz.js → NodeCreator-CRVECYnB.js} +2 -2
- package/dist/assets/{NodeCreator-CTyp0oWz.js.map → NodeCreator-CRVECYnB.js.map} +1 -1
- package/dist/assets/{NodeView-D7js-jl0.js → NodeView-_cMwqhWw.js} +4 -4
- package/dist/assets/{NodeView-D7js-jl0.js.map → NodeView-_cMwqhWw.js.map} +1 -1
- package/dist/assets/{NodeView.v2-Db0N2ZpD.js → NodeView.v2-B5Hn0oJ1.js} +3 -3
- package/dist/assets/{NodeView.v2-Db0N2ZpD.js.map → NodeView.v2-B5Hn0oJ1.js.map} +1 -1
- package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-kI8CSFPH.js → ProjectCardBadge.vue_vue_type_script_setup_true_lang-BzALVLd6.js} +2 -2
- package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-kI8CSFPH.js.map → ProjectCardBadge.vue_vue_type_script_setup_true_lang-BzALVLd6.js.map} +1 -1
- package/dist/assets/{ProjectSettings-DV97_QgF.js → ProjectSettings-D3HQdHi6.js} +2 -2
- package/dist/assets/{ProjectSettings-DV97_QgF.js.map → ProjectSettings-D3HQdHi6.js.map} +1 -1
- package/dist/assets/{ProjectTabs-BiGImjZC.js → ProjectTabs-BjpVZIIc.js} +2 -2
- package/dist/assets/{ProjectTabs-BiGImjZC.js.map → ProjectTabs-BjpVZIIc.js.map} +1 -1
- package/dist/assets/{PushConnectionTracker-DzVbTLAw.js → PushConnectionTracker-Dt9-l7zj.js} +2 -2
- package/dist/assets/{PushConnectionTracker-DzVbTLAw.js.map → PushConnectionTracker-Dt9-l7zj.js.map} +1 -1
- package/dist/assets/{ResourcesListLayout-__5Cg0A9.js → ResourcesListLayout-CjzGJ-eS.js} +2 -2
- package/dist/assets/{ResourcesListLayout-__5Cg0A9.js.map → ResourcesListLayout-CjzGJ-eS.js.map} +1 -1
- package/dist/assets/{RunDataAi-BbEWhRis.js → RunDataAi-D3971Kwm.js} +2 -2
- package/dist/assets/{RunDataAi-BbEWhRis.js.map → RunDataAi-D3971Kwm.js.map} +1 -1
- package/dist/assets/{RunDataJson-7eRqOET2.js → RunDataJson-BLrjtyKU.js} +3 -3
- package/dist/assets/{RunDataJson-7eRqOET2.js.map → RunDataJson-BLrjtyKU.js.map} +1 -1
- package/dist/assets/{RunDataJsonActions-MHoSLGDw.js → RunDataJsonActions-CucOcrrR.js} +2 -2
- package/dist/assets/{RunDataJsonActions-MHoSLGDw.js.map → RunDataJsonActions-CucOcrrR.js.map} +1 -1
- package/dist/assets/{RunDataSchema-C2mrihIi.js → RunDataSchema-B-52gDNr.js} +2 -2
- package/dist/assets/{RunDataSchema-C2mrihIi.js.map → RunDataSchema-B-52gDNr.js.map} +1 -1
- package/dist/assets/{RunDataSearch-CzdgZA0H.js → RunDataSearch-ZA9rLECQ.js} +2 -2
- package/dist/assets/{RunDataSearch-CzdgZA0H.js.map → RunDataSearch-ZA9rLECQ.js.map} +1 -1
- package/dist/assets/{RunDataTable-DmxJXvGM.js → RunDataTable-DQx4IB1X.js} +2 -2
- package/dist/assets/{RunDataTable-DmxJXvGM.js.map → RunDataTable-DQx4IB1X.js.map} +1 -1
- package/dist/assets/{SamlOnboarding-c0vvdXcj.js → SamlOnboarding-DS2hMTul.js} +2 -2
- package/dist/assets/{SamlOnboarding-c0vvdXcj.js.map → SamlOnboarding-DS2hMTul.js.map} +1 -1
- package/dist/assets/{SettingsApiView-BSPOTc-1.js → SettingsApiView-BEBQwqa4.js} +2 -2
- package/dist/assets/{SettingsApiView-BSPOTc-1.js.map → SettingsApiView-BEBQwqa4.js.map} +1 -1
- package/dist/assets/{SettingsCommunityNodesView-3uiMscEF.js → SettingsCommunityNodesView-Zb5NN5TR.js} +2 -2
- package/dist/assets/{SettingsCommunityNodesView-3uiMscEF.js.map → SettingsCommunityNodesView-Zb5NN5TR.js.map} +1 -1
- package/dist/assets/{SettingsExternalSecrets-C5fphQOi.js → SettingsExternalSecrets-BrQz9Rn5.js} +2 -2
- package/dist/assets/{SettingsExternalSecrets-C5fphQOi.js.map → SettingsExternalSecrets-BrQz9Rn5.js.map} +1 -1
- package/dist/assets/{SettingsFakeDoorView-Df4Rs6o0.js → SettingsFakeDoorView-BEtA0RJZ.js} +2 -2
- package/dist/assets/{SettingsFakeDoorView-Df4Rs6o0.js.map → SettingsFakeDoorView-BEtA0RJZ.js.map} +1 -1
- package/dist/assets/{SettingsLdapView-C4lLeRwF.js → SettingsLdapView-BCqjlrE9.js} +2 -2
- package/dist/assets/{SettingsLdapView-C4lLeRwF.js.map → SettingsLdapView-BCqjlrE9.js.map} +1 -1
- package/dist/assets/{SettingsLogStreamingView-bLlhacNh.js → SettingsLogStreamingView-B3vDd25l.js} +2 -2
- package/dist/assets/{SettingsLogStreamingView-bLlhacNh.js.map → SettingsLogStreamingView-B3vDd25l.js.map} +1 -1
- package/dist/assets/{SettingsPersonalView-BgQQgYy0.js → SettingsPersonalView-BxS-VIeh.js} +2 -2
- package/dist/assets/{SettingsPersonalView-BgQQgYy0.js.map → SettingsPersonalView-BxS-VIeh.js.map} +1 -1
- package/dist/assets/{SettingsSourceControl-C2BP11mH.js → SettingsSourceControl-BBk56DIZ.js} +2 -2
- package/dist/assets/{SettingsSourceControl-C2BP11mH.js.map → SettingsSourceControl-BBk56DIZ.js.map} +1 -1
- package/dist/assets/{SettingsSso-CK7JB3Vy.js → SettingsSso-c-njHRi9.js} +2 -2
- package/dist/assets/{SettingsSso-CK7JB3Vy.js.map → SettingsSso-c-njHRi9.js.map} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-Cwa-TbVs.js → SettingsUsageAndPlan-DEnejDAt.js} +2 -2
- package/dist/assets/{SettingsUsageAndPlan-Cwa-TbVs.js.map → SettingsUsageAndPlan-DEnejDAt.js.map} +1 -1
- package/dist/assets/{SettingsUsersView-CbWtmro6.js → SettingsUsersView-CGkw80Ef.js} +2 -2
- package/dist/assets/{SettingsUsersView-CbWtmro6.js.map → SettingsUsersView-CGkw80Ef.js.map} +1 -1
- package/dist/assets/{SettingsView-Big9eFwZ.js → SettingsView-DGukO3mQ.js} +2 -2
- package/dist/assets/{SettingsView-Big9eFwZ.js.map → SettingsView-DGukO3mQ.js.map} +1 -1
- package/dist/assets/{SetupView-fjlw9brZ.js → SetupView-kY1bAskX.js} +2 -2
- package/dist/assets/{SetupView-fjlw9brZ.js.map → SetupView-kY1bAskX.js.map} +1 -1
- package/dist/assets/{SetupWorkflowCredentialsButton-Q123cR2R.js → SetupWorkflowCredentialsButton-DkvMQv2u.js} +2 -2
- package/dist/assets/{SetupWorkflowCredentialsButton-Q123cR2R.js.map → SetupWorkflowCredentialsButton-DkvMQv2u.js.map} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-BcaIdEbq.js → SetupWorkflowFromTemplateView-M7-z0Ko5.js} +2 -2
- package/dist/assets/{SetupWorkflowFromTemplateView-BcaIdEbq.js.map → SetupWorkflowFromTemplateView-M7-z0Ko5.js.map} +1 -1
- package/dist/assets/{SigninView-BqRZRDIW.js → SigninView-CsK0r98m.js} +2 -2
- package/dist/assets/{SigninView-BqRZRDIW.js.map → SigninView-CsK0r98m.js.map} +1 -1
- package/dist/assets/{SignoutView-Ds-XMHbB.js → SignoutView-BST1uR2G.js} +2 -2
- package/dist/assets/{SignoutView-Ds-XMHbB.js.map → SignoutView-BST1uR2G.js.map} +1 -1
- package/dist/assets/{SignupView-Du4cZWtz.js → SignupView-BKYxxBni.js} +2 -2
- package/dist/assets/{SignupView-Du4cZWtz.js.map → SignupView-BKYxxBni.js.map} +1 -1
- package/dist/assets/{TemplateDetails-DYa2o-Sg.js → TemplateDetails-D0r_U1xF.js} +2 -2
- package/dist/assets/{TemplateDetails-DYa2o-Sg.js.map → TemplateDetails-D0r_U1xF.js.map} +1 -1
- package/dist/assets/{TemplateList-BMaBMl6x.js → TemplateList-CDA5KNLL.js} +2 -2
- package/dist/assets/{TemplateList-BMaBMl6x.js.map → TemplateList-CDA5KNLL.js.map} +1 -1
- package/dist/assets/{TemplatesCollectionView-g5_48W2g.js → TemplatesCollectionView-Sd-VkM2v.js} +2 -2
- package/dist/assets/{TemplatesCollectionView-g5_48W2g.js.map → TemplatesCollectionView-Sd-VkM2v.js.map} +1 -1
- package/dist/assets/{TemplatesSearchView-CUEpPGLS.js → TemplatesSearchView-H6B_YHdj.js} +2 -2
- package/dist/assets/{TemplatesSearchView-CUEpPGLS.js.map → TemplatesSearchView-H6B_YHdj.js.map} +1 -1
- package/dist/assets/{TemplatesView-Dt7Yj05N.js → TemplatesView-C1e1VOA1.js} +2 -2
- package/dist/assets/{TemplatesView-Dt7Yj05N.js.map → TemplatesView-C1e1VOA1.js.map} +1 -1
- package/dist/assets/{TemplatesWorkflowView-NUQng_ec.js → TemplatesWorkflowView-EDlr8NNs.js} +2 -2
- package/dist/assets/{TemplatesWorkflowView-NUQng_ec.js.map → TemplatesWorkflowView-EDlr8NNs.js.map} +1 -1
- package/dist/assets/{VariablesView-CNbX7qiw.js → VariablesView-uUyY5gqA.js} +2 -2
- package/dist/assets/{VariablesView-CNbX7qiw.js.map → VariablesView-uUyY5gqA.js.map} +1 -1
- package/dist/assets/{WorkerView-6sYjvVRB.js → WorkerView-f9W1Yivk.js} +2 -2
- package/dist/assets/{WorkerView-6sYjvVRB.js.map → WorkerView-f9W1Yivk.js.map} +1 -1
- package/dist/assets/{WorkflowActivator-BofJdorM.js → WorkflowActivator-Bh0oXchL.js} +2 -2
- package/dist/assets/{WorkflowActivator-BofJdorM.js.map → WorkflowActivator-Bh0oXchL.js.map} +1 -1
- package/dist/assets/{WorkflowExecutionsInfoAccordion-QgKEaHPH.js → WorkflowExecutionsInfoAccordion-DvgpWxaO.js} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-QgKEaHPH.js.map → WorkflowExecutionsInfoAccordion-DvgpWxaO.js.map} +1 -1
- package/dist/assets/{WorkflowExecutionsLandingPage-C8PoBPw1.js → WorkflowExecutionsLandingPage-DiqNejyi.js} +2 -2
- package/dist/assets/{WorkflowExecutionsLandingPage-C8PoBPw1.js.map → WorkflowExecutionsLandingPage-DiqNejyi.js.map} +1 -1
- package/dist/assets/{WorkflowExecutionsPreview-DXRMfRl4.js → WorkflowExecutionsPreview-BJqdf9CJ.js} +2 -2
- package/dist/assets/{WorkflowExecutionsPreview-DXRMfRl4.js.map → WorkflowExecutionsPreview-BJqdf9CJ.js.map} +1 -1
- package/dist/assets/{WorkflowExecutionsView-BFIJLItj.js → WorkflowExecutionsView-CY5alI5S.js} +2 -2
- package/dist/assets/{WorkflowExecutionsView-BFIJLItj.js.map → WorkflowExecutionsView-CY5alI5S.js.map} +1 -1
- package/dist/assets/{WorkflowHistory-DrJO6HE6.js → WorkflowHistory-BCAvzdJ2.js} +2 -2
- package/dist/assets/{WorkflowHistory-DrJO6HE6.js.map → WorkflowHistory-BCAvzdJ2.js.map} +1 -1
- package/dist/assets/{WorkflowOnboardingView-CWudc9OX.js → WorkflowOnboardingView-CZaNfPmP.js} +2 -2
- package/dist/assets/{WorkflowOnboardingView-CWudc9OX.js.map → WorkflowOnboardingView-CZaNfPmP.js.map} +1 -1
- package/dist/assets/{WorkflowPreview-CP6H-zD6.js → WorkflowPreview-CLfcNQ-Q.js} +2 -2
- package/dist/assets/{WorkflowPreview-CP6H-zD6.js.map → WorkflowPreview-CLfcNQ-Q.js.map} +1 -1
- package/dist/assets/{WorkflowsView-B8hr4JdS.js → WorkflowsView-BMDRVCFf.js} +2 -2
- package/dist/assets/{WorkflowsView-B8hr4JdS.js.map → WorkflowsView-BMDRVCFf.js.map} +1 -1
- package/dist/assets/{cloud-Nipuweza.js → cloud-D1wkxTEm.js} +2 -2
- package/dist/assets/{cloud-Nipuweza.js.map → cloud-D1wkxTEm.js.map} +1 -1
- package/dist/assets/{collaboration.store-CeJXF3gO.js → collaboration.store-zz8xH0zY.js} +2 -2
- package/dist/assets/{collaboration.store-CeJXF3gO.js.map → collaboration.store-zz8xH0zY.js.map} +1 -1
- package/dist/assets/{index-DeNtBxiT.js → index-DEwaaDne.js} +4 -4
- package/dist/assets/{index-DeNtBxiT.js.map → index-DEwaaDne.js.map} +1 -1
- package/dist/assets/{nodeCreator.store-D1MAzn2w.js → nodeCreator.store-DR3dfsvW.js} +2 -2
- package/dist/assets/{nodeCreator.store-D1MAzn2w.js.map → nodeCreator.store-DR3dfsvW.js.map} +1 -1
- package/dist/assets/{templateActions-DLB6SLyS.js → templateActions-DTyOnhvj.js} +2 -2
- package/dist/assets/{templateActions-DLB6SLyS.js.map → templateActions-DTyOnhvj.js.map} +1 -1
- package/dist/assets/{useExecutionDebugging-B_eoI-oc.js → useExecutionDebugging-vMuoV-iO.js} +2 -2
- package/dist/assets/{useExecutionDebugging-B_eoI-oc.js.map → useExecutionDebugging-vMuoV-iO.js.map} +1 -1
- package/dist/assets/{useExecutionHelpers-BAwOWjv8.js → useExecutionHelpers-C0lzavRV.js} +2 -2
- package/dist/assets/{useExecutionHelpers-BAwOWjv8.js.map → useExecutionHelpers-C0lzavRV.js.map} +1 -1
- package/dist/assets/{usePushConnection-1-1myIro.js → usePushConnection-3xfZ5wSJ.js} +2 -2
- package/dist/assets/{usePushConnection-1-1myIro.js.map → usePushConnection-3xfZ5wSJ.js.map} +1 -1
- package/dist/assets/{useViewStacks-D8rg90P0.js → useViewStacks-BSagsijV.js} +2 -2
- package/dist/assets/{useViewStacks-D8rg90P0.js.map → useViewStacks-BSagsijV.js.map} +1 -1
- package/dist/assets/{useWorkflowActivate-DrsL0BLR.js → useWorkflowActivate-BLjS7M0I.js} +2 -2
- package/dist/assets/{useWorkflowActivate-DrsL0BLR.js.map → useWorkflowActivate-BLjS7M0I.js.map} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/CollectionParameter-o9-pyF-D.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunDataSchema-C2mrihIi.js","sources":["../../src/components/RunDataSchemaItem.vue","../../src/components/RunDataSchema.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport type { INodeUi, Schema } from '@/Interface';\nimport { checkExhaustive } from '@/utils/typeGuards';\nimport { shorten } from '@/utils/typesUtils';\nimport { getMappedExpression } from '@/utils/mappingUtils';\nimport TextWithHighlights from './TextWithHighlights.vue';\n\ntype Props = {\n\tschema: Schema;\n\tlevel: number;\n\tparent: Schema | null;\n\tsubKey: string;\n\tpaneType: 'input' | 'output';\n\tmappingEnabled: boolean;\n\tdraggingPath: string;\n\tdistanceFromActive: number;\n\tnode: INodeUi | null;\n\tsearch: string;\n};\n\nconst props = defineProps<Props>();\n\nconst isSchemaValueArray = computed(() => Array.isArray(props.schema.value));\nconst schemaArray = computed(\n\t() => (isSchemaValueArray.value ? props.schema.value : []) as Schema[],\n);\nconst isSchemaParentTypeArray = computed(() => props.parent?.type === 'array');\nconst isFlat = computed(\n\t() =>\n\t\tprops.level === 0 &&\n\t\tArray.isArray(props.schema.value) &&\n\t\tprops.schema.value.every((v) => !Array.isArray(v.value)),\n);\nconst key = computed((): string | undefined => {\n\treturn isSchemaParentTypeArray.value ? `[${props.schema.key}]` : props.schema.key;\n});\nconst schemaName = computed(() =>\n\tisSchemaParentTypeArray.value ? `${props.schema.type}[${props.schema.key}]` : props.schema.key,\n);\nconst text = computed(() =>\n\tArray.isArray(props.schema.value) ? '' : shorten(props.schema.value, 600, 0),\n);\n\nconst dragged = computed(() => props.draggingPath === props.schema.path);\n\nconst getJsonParameterPath = (path: string): string =>\n\tgetMappedExpression({\n\t\tnodeName: props.node!.name,\n\t\tdistanceFromActive: props.distanceFromActive,\n\t\tpath,\n\t});\n\nconst transitionDelay = (i: number) => `${i * 0.033}s`;\n\nconst getIconBySchemaType = (type: Schema['type']): string => {\n\tswitch (type) {\n\t\tcase 'object':\n\t\t\treturn 'cube';\n\t\tcase 'array':\n\t\t\treturn 'list';\n\t\tcase 'string':\n\t\tcase 'null':\n\t\t\treturn 'font';\n\t\tcase 'number':\n\t\t\treturn 'hashtag';\n\t\tcase 'boolean':\n\t\t\treturn 'check-square';\n\t\tcase 'function':\n\t\t\treturn 'code';\n\t\tcase 'bigint':\n\t\t\treturn 'calculator';\n\t\tcase 'symbol':\n\t\t\treturn 'sun';\n\t\tcase 'undefined':\n\t\t\treturn 'ban';\n\t\tdefault:\n\t\t\tcheckExhaustive(type);\n\t\t\treturn '';\n\t}\n};\n</script>\n\n<template>\n\t<div :class=\"$style.item\" data-test-id=\"run-data-schema-item\">\n\t\t<div\n\t\t\tv-if=\"level > 0 || (level === 0 && !isSchemaValueArray)\"\n\t\t\t:title=\"schema.type\"\n\t\t\t:class=\"{\n\t\t\t\t[$style.pill]: true,\n\t\t\t\t[$style.mappable]: mappingEnabled,\n\t\t\t\t[$style.highlight]: dragged,\n\t\t\t}\"\n\t\t>\n\t\t\t<span\n\t\t\t\t:class=\"$style.label\"\n\t\t\t\t:data-value=\"getJsonParameterPath(schema.path)\"\n\t\t\t\t:data-name=\"schemaName\"\n\t\t\t\t:data-path=\"schema.path\"\n\t\t\t\t:data-depth=\"level\"\n\t\t\t\tdata-target=\"mappable\"\n\t\t\t>\n\t\t\t\t<font-awesome-icon :icon=\"getIconBySchemaType(schema.type)\" size=\"sm\" />\n\t\t\t\t<TextWithHighlights\n\t\t\t\t\tv-if=\"isSchemaParentTypeArray\"\n\t\t\t\t\t:content=\"props.parent?.key\"\n\t\t\t\t\t:search=\"props.search\"\n\t\t\t\t/>\n\t\t\t\t<TextWithHighlights\n\t\t\t\t\tv-if=\"key\"\n\t\t\t\t\t:class=\"{ [$style.arrayIndex]: isSchemaParentTypeArray }\"\n\t\t\t\t\t:content=\"key\"\n\t\t\t\t\t:search=\"props.search\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t\t<span v-if=\"text\" :class=\"$style.text\">{{ text }}</span>\n\t\t<input v-if=\"level > 0 && isSchemaValueArray\" :id=\"subKey\" type=\"checkbox\" checked />\n\t\t<label v-if=\"level > 0 && isSchemaValueArray\" :class=\"$style.toggle\" :for=\"subKey\">\n\t\t\t<font-awesome-icon icon=\"angle-up\" />\n\t\t</label>\n\t\t<div v-if=\"isSchemaValueArray\" :class=\"{ [$style.sub]: true, [$style.flat]: isFlat }\">\n\t\t\t<run-data-schema-item\n\t\t\t\tv-for=\"(s, i) in schemaArray\"\n\t\t\t\t:key=\"`${s.type}-${level}-${i}`\"\n\t\t\t\t:schema=\"s\"\n\t\t\t\t:level=\"level + 1\"\n\t\t\t\t:parent=\"schema\"\n\t\t\t\t:pane-type=\"paneType\"\n\t\t\t\t:sub-key=\"`${paneType}_${s.type}-${level}-${i}`\"\n\t\t\t\t:mapping-enabled=\"mappingEnabled\"\n\t\t\t\t:dragging-path=\"draggingPath\"\n\t\t\t\t:distance-from-active=\"distanceFromActive\"\n\t\t\t\t:node=\"node\"\n\t\t\t\t:style=\"{ transitionDelay: transitionDelay(i) }\"\n\t\t\t\t:search=\"search\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n@import '@/styles/variables';\n\n.item {\n\tdisplay: block;\n\tposition: relative;\n\ttransition: all 0.3s $ease-out-expo;\n\n\t.item {\n\t\tpadding-top: var(--spacing-2xs);\n\t\tpadding-left: var(--spacing-l);\n\t}\n\n\tinput {\n\t\tposition: absolute;\n\t\tleft: -100%;\n\n\t\t~ .sub {\n\t\t\theight: 0;\n\n\t\t\t> .item {\n\t\t\t\ttransform: translateX(-100%);\n\t\t\t}\n\t\t}\n\n\t\t&:checked {\n\t\t\t~ .toggle svg {\n\t\t\t\ttransform: rotate(180deg);\n\t\t\t}\n\n\t\t\t~ .sub {\n\t\t\t\theight: auto;\n\n\t\t\t\t> .item {\n\t\t\t\t\ttransform: translateX(0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&::after {\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\tclear: both;\n\t}\n}\n\n.sub {\n\tdisplay: block;\n\toverflow: hidden;\n\ttransition: all 0.2s $ease-out-expo;\n\tclear: both;\n\n\t&.flat {\n\t\t> .item {\n\t\t\tpadding-left: 0;\n\t\t}\n\t}\n\n\t&:nth-of-type(1) {\n\t\t> .item:nth-of-type(1) {\n\t\t\tpadding-top: 0;\n\n\t\t\t.toggle {\n\t\t\t\ttop: -2px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n:global(.highlightSchema) {\n\t.pill.mappable {\n\t\t&,\n\t\t&:hover,\n\t\tspan,\n\t\t&:hover span span {\n\t\t\tcolor: var(--color-primary);\n\t\t\tborder-color: var(--color-primary-tint-1);\n\t\t\tbackground-color: var(--color-primary-tint-3);\n\n\t\t\tsvg {\n\t\t\t\tpath {\n\t\t\t\t\tfill: var(--color-primary);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.pill {\n\tfloat: left;\n\tdisplay: inline-flex;\n\theight: 24px;\n\tpadding: 0 var(--spacing-3xs);\n\tborder: 1px solid var(--color-foreground-light);\n\tborder-radius: 4px;\n\tbackground-color: var(--color-background-xlight);\n\tfont-size: var(--font-size-2xs);\n\tcolor: var(--color-text-dark);\n\n\tspan {\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t\talign-items: center;\n\n\t\tsvg {\n\t\t\tpath {\n\t\t\t\tfill: var(--color-text-light);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.mappable {\n\t\tcursor: grab;\n\n\t\t&:hover {\n\t\t\t&,\n\t\t\tspan span {\n\t\t\t\tbackground-color: var(--color-background-light);\n\t\t\t\tborder-color: var(--color-foreground-base);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.label {\n\t> span {\n\t\tmargin-left: var(--spacing-3xs);\n\t\tpadding-left: var(--spacing-3xs);\n\t\tborder-left: 1px solid var(--color-foreground-light);\n\n\t\t&.arrayIndex {\n\t\t\tborder: 0;\n\t\t\tpadding-left: 0;\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n}\n\n.text {\n\tdisplay: block;\n\tpadding-top: var(--spacing-4xs);\n\tpadding-left: var(--spacing-2xs);\n\tfont-weight: var(--font-weight-normal);\n\tfont-size: var(--font-size-2xs);\n\toverflow: hidden;\n\tword-break: break-word;\n}\n\n.toggle {\n\tdisplay: flex;\n\tposition: absolute;\n\tpadding: var(--spacing-2xs);\n\tleft: 0;\n\ttop: 5px;\n\tjustify-content: center;\n\talign-items: center;\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-weight: normal;\n\tfont-size: var(--font-size-s);\n\toverflow: hidden;\n\n\tsvg {\n\t\ttransition: all 0.3s $ease-out-expo;\n\t}\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue';\nimport type { INodeUi } from '@/Interface';\nimport RunDataSchemaItem from '@/components/RunDataSchemaItem.vue';\nimport Draggable from '@/components/Draggable.vue';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport { telemetry } from '@/plugins/telemetry';\nimport type { IDataObject } from 'n8n-workflow';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { i18n } from '@/plugins/i18n';\nimport MappingPill from './MappingPill.vue';\nimport { useDataSchema } from '@/composables/useDataSchema';\n\ntype Props = {\n\tdata: IDataObject[];\n\tmappingEnabled: boolean;\n\tdistanceFromActive: number;\n\trunIndex: number;\n\ttotalRuns: number;\n\tpaneType: 'input' | 'output';\n\tnode: INodeUi | null;\n\tsearch: string;\n};\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdistanceFromActive: 0,\n});\n\nconst draggingPath = ref<string>('');\nconst ndvStore = useNDVStore();\nconst { getSchemaForExecutionData } = useDataSchema();\n\nconst schema = computed(() => getSchemaForExecutionData(props.data));\n\nconst isDataEmpty = computed(() => {\n\t// Utilize the generated schema instead of looping over the entire data again\n\t// The schema for empty data is { type: 'object' | 'array', value: [] }\n\tconst isObjectOrArray = schema.value.type === 'object' || schema.value.type === 'array';\n\tconst isEmpty = Array.isArray(schema.value.value) && schema.value.value.length === 0;\n\n\treturn isObjectOrArray && isEmpty;\n});\n\nconst highlight = computed(() => ndvStore.highlightDraggables);\n\nconst onDragStart = (el: HTMLElement) => {\n\tif (el?.dataset?.path) {\n\t\tdraggingPath.value = el.dataset.path;\n\t}\n\n\tndvStore.resetMappingTelemetry();\n};\nconst onDragEnd = (el: HTMLElement) => {\n\tdraggingPath.value = '';\n\n\tsetTimeout(() => {\n\t\tconst mappingTelemetry = ndvStore.mappingTelemetry;\n\t\tconst telemetryPayload = {\n\t\t\tsrc_node_type: props.node?.type,\n\t\t\tsrc_field_name: el.dataset.name ?? '',\n\t\t\tsrc_nodes_back: props.distanceFromActive,\n\t\t\tsrc_run_index: props.runIndex,\n\t\t\tsrc_runs_total: props.totalRuns,\n\t\t\tsrc_field_nest_level: el.dataset.depth ?? 0,\n\t\t\tsrc_view: 'schema',\n\t\t\tsrc_element: el,\n\t\t\tsuccess: false,\n\t\t\t...mappingTelemetry,\n\t\t};\n\n\t\tvoid useExternalHooks().run('runDataJson.onDragEnd', telemetryPayload);\n\n\t\ttelemetry.track('User dragged data for mapping', telemetryPayload, { withPostHog: true });\n\t}, 1000); // ensure dest data gets set if drop\n};\n</script>\n\n<template>\n\t<div :class=\"[$style.schemaWrapper, { highlightSchema: highlight }]\">\n\t\t<n8n-info-tip v-if=\"isDataEmpty\">{{\n\t\t\ti18n.baseText('dataMapping.schemaView.emptyData')\n\t\t}}</n8n-info-tip>\n\t\t<Draggable\n\t\t\tv-else\n\t\t\ttype=\"mapping\"\n\t\t\ttarget-data-key=\"mappable\"\n\t\t\t:disabled=\"!mappingEnabled\"\n\t\t\t@dragstart=\"onDragStart\"\n\t\t\t@dragend=\"onDragEnd\"\n\t\t>\n\t\t\t<template #preview=\"{ canDrop, el }\">\n\t\t\t\t<MappingPill v-if=\"el\" :html=\"el.outerHTML\" :can-drop=\"canDrop\" />\n\t\t\t</template>\n\t\t\t<div :class=\"$style.schema\">\n\t\t\t\t<RunDataSchemaItem\n\t\t\t\t\t:schema=\"schema\"\n\t\t\t\t\t:level=\"0\"\n\t\t\t\t\t:parent=\"null\"\n\t\t\t\t\t:pane-type=\"paneType\"\n\t\t\t\t\t:sub-key=\"`${schema.type}-0-0`\"\n\t\t\t\t\t:mapping-enabled=\"mappingEnabled\"\n\t\t\t\t\t:dragging-path=\"draggingPath\"\n\t\t\t\t\t:distance-from-active=\"distanceFromActive\"\n\t\t\t\t\t:node=\"node\"\n\t\t\t\t\t:search=\"search\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Draggable>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.schemaWrapper {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbottom: 0;\n\tright: 0;\n\toverflow: auto;\n\tline-height: 1.5;\n\tword-break: normal;\n\theight: 100%;\n\twidth: 100%;\n\n\t> div[class*='info'] {\n\t\tpadding: 0 var(--spacing-s);\n\t}\n}\n\n.schema {\n\tdisplay: inline-block;\n\tpadding: 0 var(--spacing-s) var(--spacing-s);\n}\n</style>\n"],"names":["props","__props","isSchemaValueArray","computed","schemaArray","isSchemaParentTypeArray","_a","isFlat","v","key","schemaName","text","shorten","dragged","getJsonParameterPath","path","getMappedExpression","transitionDelay","i","getIconBySchemaType","type","checkExhaustive","draggingPath","ref","ndvStore","useNDVStore","getSchemaForExecutionData","useDataSchema","schema","isDataEmpty","isObjectOrArray","isEmpty","highlight","onDragStart","el","onDragEnd","mappingTelemetry","telemetryPayload","useExternalHooks","telemetry"],"mappings":"s8DAqBA,MAAMA,EAAQC,EAERC,EAAqBC,EAAS,IAAM,MAAM,QAAQH,EAAM,OAAO,KAAK,CAAC,EACrEI,EAAcD,EACnB,IAAOD,EAAmB,MAAQF,EAAM,OAAO,MAAQ,CAAC,CAAA,EAEnDK,EAA0BF,EAAS,IAAM,OAAA,QAAAG,EAAAN,EAAM,SAAN,YAAAM,EAAc,QAAS,QAAO,EACvEC,EAASJ,EACd,IACCH,EAAM,QAAU,GAChB,MAAM,QAAQA,EAAM,OAAO,KAAK,GAChCA,EAAM,OAAO,MAAM,MAAOQ,GAAM,CAAC,MAAM,QAAQA,EAAE,KAAK,CAAC,CAAA,EAEnDC,EAAMN,EAAS,IACbE,EAAwB,MAAQ,IAAIL,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAC9E,EACKU,EAAaP,EAAS,IAC3BE,EAAwB,MAAQ,GAAGL,EAAM,OAAO,IAAI,IAAIA,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAAA,EAEtFW,EAAOR,EAAS,IACrB,MAAM,QAAQH,EAAM,OAAO,KAAK,EAAI,GAAKY,EAAQZ,EAAM,OAAO,MAAO,IAAK,CAAC,CAAA,EAGtEa,EAAUV,EAAS,IAAMH,EAAM,eAAiBA,EAAM,OAAO,IAAI,EAEjEc,EAAwBC,GAC7BC,EAAoB,CACnB,SAAUhB,EAAM,KAAM,KACtB,mBAAoBA,EAAM,mBAC1B,KAAAe,CAAA,CACA,EAEIE,EAAmBC,GAAc,GAAGA,EAAI,IAAK,IAE7CC,EAAuBC,GAAiC,CAC7D,OAAQA,EAAM,CACb,IAAK,SACG,MAAA,OACR,IAAK,QACG,MAAA,OACR,IAAK,SACL,IAAK,OACG,MAAA,OACR,IAAK,SACG,MAAA,UACR,IAAK,UACG,MAAA,eACR,IAAK,WACG,MAAA,OACR,IAAK,SACG,MAAA,aACR,IAAK,SACG,MAAA,MACR,IAAK,YACG,MAAA,MACR,QACC,OAAAC,EAAgBD,CAAI,EACb,EACT,CAAA,0sECvDD,MAAMpB,EAAQC,EAIRqB,EAAeC,EAAY,EAAE,EAC7BC,EAAWC,IACX,CAAE,0BAAAC,GAA8BC,IAEhCC,EAASzB,EAAS,IAAMuB,EAA0B1B,EAAM,IAAI,CAAC,EAE7D6B,EAAc1B,EAAS,IAAM,CAGlC,MAAM2B,EAAkBF,EAAO,MAAM,OAAS,UAAYA,EAAO,MAAM,OAAS,QAC1EG,EAAU,MAAM,QAAQH,EAAO,MAAM,KAAK,GAAKA,EAAO,MAAM,MAAM,SAAW,EAEnF,OAAOE,GAAmBC,CAAA,CAC1B,EAEKC,EAAY7B,EAAS,IAAMqB,EAAS,mBAAmB,EAEvDS,EAAeC,GAAoB,QACpC5B,EAAA4B,GAAA,YAAAA,EAAI,UAAJ,MAAA5B,EAAa,OACHgB,EAAA,MAAQY,EAAG,QAAQ,MAGjCV,EAAS,sBAAsB,CAAA,EAE1BW,EAAaD,GAAoB,CACtCZ,EAAa,MAAQ,GAErB,WAAW,IAAM,OAChB,MAAMc,EAAmBZ,EAAS,iBAC5Ba,EAAmB,CACxB,eAAe/B,EAAAN,EAAM,OAAN,YAAAM,EAAY,KAC3B,eAAgB4B,EAAG,QAAQ,MAAQ,GACnC,eAAgBlC,EAAM,mBACtB,cAAeA,EAAM,SACrB,eAAgBA,EAAM,UACtB,qBAAsBkC,EAAG,QAAQ,OAAS,EAC1C,SAAU,SACV,YAAaA,EACb,QAAS,GACT,GAAGE,CAAA,EAGCE,EAAiB,EAAE,IAAI,wBAAyBD,CAAgB,EAErEE,EAAU,MAAM,gCAAiCF,EAAkB,CAAE,YAAa,GAAM,GACtF,GAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"RunDataSchema-B-52gDNr.js","sources":["../../src/components/RunDataSchemaItem.vue","../../src/components/RunDataSchema.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport type { INodeUi, Schema } from '@/Interface';\nimport { checkExhaustive } from '@/utils/typeGuards';\nimport { shorten } from '@/utils/typesUtils';\nimport { getMappedExpression } from '@/utils/mappingUtils';\nimport TextWithHighlights from './TextWithHighlights.vue';\n\ntype Props = {\n\tschema: Schema;\n\tlevel: number;\n\tparent: Schema | null;\n\tsubKey: string;\n\tpaneType: 'input' | 'output';\n\tmappingEnabled: boolean;\n\tdraggingPath: string;\n\tdistanceFromActive: number;\n\tnode: INodeUi | null;\n\tsearch: string;\n};\n\nconst props = defineProps<Props>();\n\nconst isSchemaValueArray = computed(() => Array.isArray(props.schema.value));\nconst schemaArray = computed(\n\t() => (isSchemaValueArray.value ? props.schema.value : []) as Schema[],\n);\nconst isSchemaParentTypeArray = computed(() => props.parent?.type === 'array');\nconst isFlat = computed(\n\t() =>\n\t\tprops.level === 0 &&\n\t\tArray.isArray(props.schema.value) &&\n\t\tprops.schema.value.every((v) => !Array.isArray(v.value)),\n);\nconst key = computed((): string | undefined => {\n\treturn isSchemaParentTypeArray.value ? `[${props.schema.key}]` : props.schema.key;\n});\nconst schemaName = computed(() =>\n\tisSchemaParentTypeArray.value ? `${props.schema.type}[${props.schema.key}]` : props.schema.key,\n);\nconst text = computed(() =>\n\tArray.isArray(props.schema.value) ? '' : shorten(props.schema.value, 600, 0),\n);\n\nconst dragged = computed(() => props.draggingPath === props.schema.path);\n\nconst getJsonParameterPath = (path: string): string =>\n\tgetMappedExpression({\n\t\tnodeName: props.node!.name,\n\t\tdistanceFromActive: props.distanceFromActive,\n\t\tpath,\n\t});\n\nconst transitionDelay = (i: number) => `${i * 0.033}s`;\n\nconst getIconBySchemaType = (type: Schema['type']): string => {\n\tswitch (type) {\n\t\tcase 'object':\n\t\t\treturn 'cube';\n\t\tcase 'array':\n\t\t\treturn 'list';\n\t\tcase 'string':\n\t\tcase 'null':\n\t\t\treturn 'font';\n\t\tcase 'number':\n\t\t\treturn 'hashtag';\n\t\tcase 'boolean':\n\t\t\treturn 'check-square';\n\t\tcase 'function':\n\t\t\treturn 'code';\n\t\tcase 'bigint':\n\t\t\treturn 'calculator';\n\t\tcase 'symbol':\n\t\t\treturn 'sun';\n\t\tcase 'undefined':\n\t\t\treturn 'ban';\n\t\tdefault:\n\t\t\tcheckExhaustive(type);\n\t\t\treturn '';\n\t}\n};\n</script>\n\n<template>\n\t<div :class=\"$style.item\" data-test-id=\"run-data-schema-item\">\n\t\t<div\n\t\t\tv-if=\"level > 0 || (level === 0 && !isSchemaValueArray)\"\n\t\t\t:title=\"schema.type\"\n\t\t\t:class=\"{\n\t\t\t\t[$style.pill]: true,\n\t\t\t\t[$style.mappable]: mappingEnabled,\n\t\t\t\t[$style.highlight]: dragged,\n\t\t\t}\"\n\t\t>\n\t\t\t<span\n\t\t\t\t:class=\"$style.label\"\n\t\t\t\t:data-value=\"getJsonParameterPath(schema.path)\"\n\t\t\t\t:data-name=\"schemaName\"\n\t\t\t\t:data-path=\"schema.path\"\n\t\t\t\t:data-depth=\"level\"\n\t\t\t\tdata-target=\"mappable\"\n\t\t\t>\n\t\t\t\t<font-awesome-icon :icon=\"getIconBySchemaType(schema.type)\" size=\"sm\" />\n\t\t\t\t<TextWithHighlights\n\t\t\t\t\tv-if=\"isSchemaParentTypeArray\"\n\t\t\t\t\t:content=\"props.parent?.key\"\n\t\t\t\t\t:search=\"props.search\"\n\t\t\t\t/>\n\t\t\t\t<TextWithHighlights\n\t\t\t\t\tv-if=\"key\"\n\t\t\t\t\t:class=\"{ [$style.arrayIndex]: isSchemaParentTypeArray }\"\n\t\t\t\t\t:content=\"key\"\n\t\t\t\t\t:search=\"props.search\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t\t<span v-if=\"text\" :class=\"$style.text\">{{ text }}</span>\n\t\t<input v-if=\"level > 0 && isSchemaValueArray\" :id=\"subKey\" type=\"checkbox\" checked />\n\t\t<label v-if=\"level > 0 && isSchemaValueArray\" :class=\"$style.toggle\" :for=\"subKey\">\n\t\t\t<font-awesome-icon icon=\"angle-up\" />\n\t\t</label>\n\t\t<div v-if=\"isSchemaValueArray\" :class=\"{ [$style.sub]: true, [$style.flat]: isFlat }\">\n\t\t\t<run-data-schema-item\n\t\t\t\tv-for=\"(s, i) in schemaArray\"\n\t\t\t\t:key=\"`${s.type}-${level}-${i}`\"\n\t\t\t\t:schema=\"s\"\n\t\t\t\t:level=\"level + 1\"\n\t\t\t\t:parent=\"schema\"\n\t\t\t\t:pane-type=\"paneType\"\n\t\t\t\t:sub-key=\"`${paneType}_${s.type}-${level}-${i}`\"\n\t\t\t\t:mapping-enabled=\"mappingEnabled\"\n\t\t\t\t:dragging-path=\"draggingPath\"\n\t\t\t\t:distance-from-active=\"distanceFromActive\"\n\t\t\t\t:node=\"node\"\n\t\t\t\t:style=\"{ transitionDelay: transitionDelay(i) }\"\n\t\t\t\t:search=\"search\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n@import '@/styles/variables';\n\n.item {\n\tdisplay: block;\n\tposition: relative;\n\ttransition: all 0.3s $ease-out-expo;\n\n\t.item {\n\t\tpadding-top: var(--spacing-2xs);\n\t\tpadding-left: var(--spacing-l);\n\t}\n\n\tinput {\n\t\tposition: absolute;\n\t\tleft: -100%;\n\n\t\t~ .sub {\n\t\t\theight: 0;\n\n\t\t\t> .item {\n\t\t\t\ttransform: translateX(-100%);\n\t\t\t}\n\t\t}\n\n\t\t&:checked {\n\t\t\t~ .toggle svg {\n\t\t\t\ttransform: rotate(180deg);\n\t\t\t}\n\n\t\t\t~ .sub {\n\t\t\t\theight: auto;\n\n\t\t\t\t> .item {\n\t\t\t\t\ttransform: translateX(0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&::after {\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\tclear: both;\n\t}\n}\n\n.sub {\n\tdisplay: block;\n\toverflow: hidden;\n\ttransition: all 0.2s $ease-out-expo;\n\tclear: both;\n\n\t&.flat {\n\t\t> .item {\n\t\t\tpadding-left: 0;\n\t\t}\n\t}\n\n\t&:nth-of-type(1) {\n\t\t> .item:nth-of-type(1) {\n\t\t\tpadding-top: 0;\n\n\t\t\t.toggle {\n\t\t\t\ttop: -2px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n:global(.highlightSchema) {\n\t.pill.mappable {\n\t\t&,\n\t\t&:hover,\n\t\tspan,\n\t\t&:hover span span {\n\t\t\tcolor: var(--color-primary);\n\t\t\tborder-color: var(--color-primary-tint-1);\n\t\t\tbackground-color: var(--color-primary-tint-3);\n\n\t\t\tsvg {\n\t\t\t\tpath {\n\t\t\t\t\tfill: var(--color-primary);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.pill {\n\tfloat: left;\n\tdisplay: inline-flex;\n\theight: 24px;\n\tpadding: 0 var(--spacing-3xs);\n\tborder: 1px solid var(--color-foreground-light);\n\tborder-radius: 4px;\n\tbackground-color: var(--color-background-xlight);\n\tfont-size: var(--font-size-2xs);\n\tcolor: var(--color-text-dark);\n\n\tspan {\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t\talign-items: center;\n\n\t\tsvg {\n\t\t\tpath {\n\t\t\t\tfill: var(--color-text-light);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.mappable {\n\t\tcursor: grab;\n\n\t\t&:hover {\n\t\t\t&,\n\t\t\tspan span {\n\t\t\t\tbackground-color: var(--color-background-light);\n\t\t\t\tborder-color: var(--color-foreground-base);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.label {\n\t> span {\n\t\tmargin-left: var(--spacing-3xs);\n\t\tpadding-left: var(--spacing-3xs);\n\t\tborder-left: 1px solid var(--color-foreground-light);\n\n\t\t&.arrayIndex {\n\t\t\tborder: 0;\n\t\t\tpadding-left: 0;\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n}\n\n.text {\n\tdisplay: block;\n\tpadding-top: var(--spacing-4xs);\n\tpadding-left: var(--spacing-2xs);\n\tfont-weight: var(--font-weight-normal);\n\tfont-size: var(--font-size-2xs);\n\toverflow: hidden;\n\tword-break: break-word;\n}\n\n.toggle {\n\tdisplay: flex;\n\tposition: absolute;\n\tpadding: var(--spacing-2xs);\n\tleft: 0;\n\ttop: 5px;\n\tjustify-content: center;\n\talign-items: center;\n\tcursor: pointer;\n\tuser-select: none;\n\tfont-weight: normal;\n\tfont-size: var(--font-size-s);\n\toverflow: hidden;\n\n\tsvg {\n\t\ttransition: all 0.3s $ease-out-expo;\n\t}\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue';\nimport type { INodeUi } from '@/Interface';\nimport RunDataSchemaItem from '@/components/RunDataSchemaItem.vue';\nimport Draggable from '@/components/Draggable.vue';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport { telemetry } from '@/plugins/telemetry';\nimport type { IDataObject } from 'n8n-workflow';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { i18n } from '@/plugins/i18n';\nimport MappingPill from './MappingPill.vue';\nimport { useDataSchema } from '@/composables/useDataSchema';\n\ntype Props = {\n\tdata: IDataObject[];\n\tmappingEnabled: boolean;\n\tdistanceFromActive: number;\n\trunIndex: number;\n\ttotalRuns: number;\n\tpaneType: 'input' | 'output';\n\tnode: INodeUi | null;\n\tsearch: string;\n};\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdistanceFromActive: 0,\n});\n\nconst draggingPath = ref<string>('');\nconst ndvStore = useNDVStore();\nconst { getSchemaForExecutionData } = useDataSchema();\n\nconst schema = computed(() => getSchemaForExecutionData(props.data));\n\nconst isDataEmpty = computed(() => {\n\t// Utilize the generated schema instead of looping over the entire data again\n\t// The schema for empty data is { type: 'object' | 'array', value: [] }\n\tconst isObjectOrArray = schema.value.type === 'object' || schema.value.type === 'array';\n\tconst isEmpty = Array.isArray(schema.value.value) && schema.value.value.length === 0;\n\n\treturn isObjectOrArray && isEmpty;\n});\n\nconst highlight = computed(() => ndvStore.highlightDraggables);\n\nconst onDragStart = (el: HTMLElement) => {\n\tif (el?.dataset?.path) {\n\t\tdraggingPath.value = el.dataset.path;\n\t}\n\n\tndvStore.resetMappingTelemetry();\n};\nconst onDragEnd = (el: HTMLElement) => {\n\tdraggingPath.value = '';\n\n\tsetTimeout(() => {\n\t\tconst mappingTelemetry = ndvStore.mappingTelemetry;\n\t\tconst telemetryPayload = {\n\t\t\tsrc_node_type: props.node?.type,\n\t\t\tsrc_field_name: el.dataset.name ?? '',\n\t\t\tsrc_nodes_back: props.distanceFromActive,\n\t\t\tsrc_run_index: props.runIndex,\n\t\t\tsrc_runs_total: props.totalRuns,\n\t\t\tsrc_field_nest_level: el.dataset.depth ?? 0,\n\t\t\tsrc_view: 'schema',\n\t\t\tsrc_element: el,\n\t\t\tsuccess: false,\n\t\t\t...mappingTelemetry,\n\t\t};\n\n\t\tvoid useExternalHooks().run('runDataJson.onDragEnd', telemetryPayload);\n\n\t\ttelemetry.track('User dragged data for mapping', telemetryPayload, { withPostHog: true });\n\t}, 1000); // ensure dest data gets set if drop\n};\n</script>\n\n<template>\n\t<div :class=\"[$style.schemaWrapper, { highlightSchema: highlight }]\">\n\t\t<n8n-info-tip v-if=\"isDataEmpty\">{{\n\t\t\ti18n.baseText('dataMapping.schemaView.emptyData')\n\t\t}}</n8n-info-tip>\n\t\t<Draggable\n\t\t\tv-else\n\t\t\ttype=\"mapping\"\n\t\t\ttarget-data-key=\"mappable\"\n\t\t\t:disabled=\"!mappingEnabled\"\n\t\t\t@dragstart=\"onDragStart\"\n\t\t\t@dragend=\"onDragEnd\"\n\t\t>\n\t\t\t<template #preview=\"{ canDrop, el }\">\n\t\t\t\t<MappingPill v-if=\"el\" :html=\"el.outerHTML\" :can-drop=\"canDrop\" />\n\t\t\t</template>\n\t\t\t<div :class=\"$style.schema\">\n\t\t\t\t<RunDataSchemaItem\n\t\t\t\t\t:schema=\"schema\"\n\t\t\t\t\t:level=\"0\"\n\t\t\t\t\t:parent=\"null\"\n\t\t\t\t\t:pane-type=\"paneType\"\n\t\t\t\t\t:sub-key=\"`${schema.type}-0-0`\"\n\t\t\t\t\t:mapping-enabled=\"mappingEnabled\"\n\t\t\t\t\t:dragging-path=\"draggingPath\"\n\t\t\t\t\t:distance-from-active=\"distanceFromActive\"\n\t\t\t\t\t:node=\"node\"\n\t\t\t\t\t:search=\"search\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Draggable>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.schemaWrapper {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tbottom: 0;\n\tright: 0;\n\toverflow: auto;\n\tline-height: 1.5;\n\tword-break: normal;\n\theight: 100%;\n\twidth: 100%;\n\n\t> div[class*='info'] {\n\t\tpadding: 0 var(--spacing-s);\n\t}\n}\n\n.schema {\n\tdisplay: inline-block;\n\tpadding: 0 var(--spacing-s) var(--spacing-s);\n}\n</style>\n"],"names":["props","__props","isSchemaValueArray","computed","schemaArray","isSchemaParentTypeArray","_a","isFlat","v","key","schemaName","text","shorten","dragged","getJsonParameterPath","path","getMappedExpression","transitionDelay","i","getIconBySchemaType","type","checkExhaustive","draggingPath","ref","ndvStore","useNDVStore","getSchemaForExecutionData","useDataSchema","schema","isDataEmpty","isObjectOrArray","isEmpty","highlight","onDragStart","el","onDragEnd","mappingTelemetry","telemetryPayload","useExternalHooks","telemetry"],"mappings":"s8DAqBA,MAAMA,EAAQC,EAERC,EAAqBC,EAAS,IAAM,MAAM,QAAQH,EAAM,OAAO,KAAK,CAAC,EACrEI,EAAcD,EACnB,IAAOD,EAAmB,MAAQF,EAAM,OAAO,MAAQ,CAAC,CAAA,EAEnDK,EAA0BF,EAAS,IAAM,OAAA,QAAAG,EAAAN,EAAM,SAAN,YAAAM,EAAc,QAAS,QAAO,EACvEC,EAASJ,EACd,IACCH,EAAM,QAAU,GAChB,MAAM,QAAQA,EAAM,OAAO,KAAK,GAChCA,EAAM,OAAO,MAAM,MAAOQ,GAAM,CAAC,MAAM,QAAQA,EAAE,KAAK,CAAC,CAAA,EAEnDC,EAAMN,EAAS,IACbE,EAAwB,MAAQ,IAAIL,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAC9E,EACKU,EAAaP,EAAS,IAC3BE,EAAwB,MAAQ,GAAGL,EAAM,OAAO,IAAI,IAAIA,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAAA,EAEtFW,EAAOR,EAAS,IACrB,MAAM,QAAQH,EAAM,OAAO,KAAK,EAAI,GAAKY,EAAQZ,EAAM,OAAO,MAAO,IAAK,CAAC,CAAA,EAGtEa,EAAUV,EAAS,IAAMH,EAAM,eAAiBA,EAAM,OAAO,IAAI,EAEjEc,EAAwBC,GAC7BC,EAAoB,CACnB,SAAUhB,EAAM,KAAM,KACtB,mBAAoBA,EAAM,mBAC1B,KAAAe,CAAA,CACA,EAEIE,EAAmBC,GAAc,GAAGA,EAAI,IAAK,IAE7CC,EAAuBC,GAAiC,CAC7D,OAAQA,EAAM,CACb,IAAK,SACG,MAAA,OACR,IAAK,QACG,MAAA,OACR,IAAK,SACL,IAAK,OACG,MAAA,OACR,IAAK,SACG,MAAA,UACR,IAAK,UACG,MAAA,eACR,IAAK,WACG,MAAA,OACR,IAAK,SACG,MAAA,aACR,IAAK,SACG,MAAA,MACR,IAAK,YACG,MAAA,MACR,QACC,OAAAC,EAAgBD,CAAI,EACb,EACT,CAAA,0sECvDD,MAAMpB,EAAQC,EAIRqB,EAAeC,EAAY,EAAE,EAC7BC,EAAWC,IACX,CAAE,0BAAAC,GAA8BC,IAEhCC,EAASzB,EAAS,IAAMuB,EAA0B1B,EAAM,IAAI,CAAC,EAE7D6B,EAAc1B,EAAS,IAAM,CAGlC,MAAM2B,EAAkBF,EAAO,MAAM,OAAS,UAAYA,EAAO,MAAM,OAAS,QAC1EG,EAAU,MAAM,QAAQH,EAAO,MAAM,KAAK,GAAKA,EAAO,MAAM,MAAM,SAAW,EAEnF,OAAOE,GAAmBC,CAAA,CAC1B,EAEKC,EAAY7B,EAAS,IAAMqB,EAAS,mBAAmB,EAEvDS,EAAeC,GAAoB,QACpC5B,EAAA4B,GAAA,YAAAA,EAAI,UAAJ,MAAA5B,EAAa,OACHgB,EAAA,MAAQY,EAAG,QAAQ,MAGjCV,EAAS,sBAAsB,CAAA,EAE1BW,EAAaD,GAAoB,CACtCZ,EAAa,MAAQ,GAErB,WAAW,IAAM,OAChB,MAAMc,EAAmBZ,EAAS,iBAC5Ba,EAAmB,CACxB,eAAe/B,EAAAN,EAAM,OAAN,YAAAM,EAAY,KAC3B,eAAgB4B,EAAG,QAAQ,MAAQ,GACnC,eAAgBlC,EAAM,mBACtB,cAAeA,EAAM,SACrB,eAAgBA,EAAM,UACtB,qBAAsBkC,EAAG,QAAQ,OAAS,EAC1C,SAAU,SACV,YAAaA,EACb,QAAS,GACT,GAAGE,CAAA,EAGCE,EAAiB,EAAE,IAAI,wBAAyBD,CAAgB,EAErEE,EAAU,MAAM,gCAAiCF,EAAkB,CAAE,YAAa,GAAM,GACtF,GAAI,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{w as b}from"./index-
|
|
2
|
-
//# sourceMappingURL=RunDataSearch-
|
|
1
|
+
import{w as b}from"./index-DEwaaDne.js";import{G as x,r as u,e as d,b as O,Y as M,ag as h,l as g,M as A,O as H,U as L,I as _,J as V}from"./vendor-Dv5OeN6t.js";import{_ as k}from"./n8n-B6cfQsVX.js";import"./pinia-BAhPp3pQ.js";import"./axios-Mm4CS0gO.js";import"./flatted-DN8lQ2XG.js";import"./@vueuse/core-9E8Shwsg.js";import"./lodash-es-BxV-E8rt.js";import"./@n8n/permissions-BxxteU-C.js";import"./dateformat-B9ocXky7.js";import"./vue-i18n-Delvyc9x.js";import"./uuid-SoommWqA.js";import"./luxon-CLwAIbs0.js";import"./@n8n/codemirror-lang-sql-x14jMqbG.js";import"./@lezer/common-B6ct0j_v.js";import"./prettier-bS6l4Vb1.js";import"./@jsplumb/util-DS-9vq_E.js";import"./@jsplumb/core-CVBraiyY.js";import"./@jsplumb/common-CF-b-6-M.js";import"./@jsplumb/connector-bezier-BGU0Ovbw.js";import"./@jsplumb/browser-ui-BVF2KoJK.js";import"./codemirror-lang-html-n8n-DcTmlMkf.js";import"./@n8n/codemirror-lang-Qkdx7NoQ.js";import"./esprima-next-nhoSXAeq.js";import"./fast-json-stable-stringify-LluJPcs3.js";import"./timeago.js-CiyKClrF.js";import"./qrcode.vue-BGkPba5A.js";import"./vue3-touch-events-mV0oX_Sl.js";import"./chart.js-343vZi4M.js";const D="34px",W="200px",C="120px",B=x({__name:"RunDataSearch",props:{modelValue:{},paneType:{default:"output"},isAreaActive:{type:Boolean,default:!1}},emits:["update:modelValue","focus"],setup(f,{emit:S}){const r=S,s=f,c=b(),o=u(null),a=u(!1),y=d(()=>s.paneType==="input"?c.baseText("ndv.search.placeholder.input"):c.baseText("ndv.search.placeholder.output")),v=d(()=>a.value?{maxWidth:W,minWidth:C}:{maxWidth:D}),l=e=>{var t,n,p,m;const i=e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement||((n=(t=e.target)==null?void 0:t.getAttribute)==null?void 0:n.call(t,"contentEditable"))==="true";e.key==="/"&&s.isAreaActive&&!i&&((p=o.value)==null||p.focus(),(m=o.value)==null||m.select())},T=e=>{r("update:modelValue",e)},E=()=>{var e;a.value=!0,(e=o.value)==null||e.select(),r("focus")},I=()=>{s.modelValue||(a.value=!1)};return O(()=>{document.addEventListener("keyup",l)}),M(()=>{document.removeEventListener("keyup",l)}),(e,i)=>{const t=h("n8n-icon"),n=h("n8n-input");return g(),A(n,{ref_key:"inputRef",ref:o,"data-test-id":"ndv-search",class:_({[e.$style.ioSearch]:!0,[e.$style.ioSearchOpened]:a.value}),style:V(v.value),"model-value":e.modelValue,placeholder:y.value,size:"small","onUpdate:modelValue":T,onFocus:E,onBlur:I},{prefix:H(()=>[L(t,{class:_(e.$style.ioSearchIcon),icon:"search"},null,8,["class"])]),_:1},8,["class","style","model-value","placeholder"])}}}),N="_ioSearch_17btl_1",R="_ioSearchIcon_17btl_4",U="_ioSearchOpened_17btl_14",$={ioSearch:N,ioSearchIcon:R,ioSearchOpened:U},z={$style:$},Se=k(B,[["__cssModules",z]]);export{Se as default};
|
|
2
|
+
//# sourceMappingURL=RunDataSearch-ZA9rLECQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunDataSearch-
|
|
1
|
+
{"version":3,"file":"RunDataSearch-ZA9rLECQ.js","sources":["../../src/components/RunDataSearch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, onMounted, onUnmounted, type StyleValue } from 'vue';\nimport { useI18n } from '@/composables/useI18n';\nimport type { NodePanelType } from '@/Interface';\n\ntype Props = {\n\tmodelValue: string;\n\tpaneType?: NodePanelType;\n\tisAreaActive?: boolean;\n};\n\nconst COLLAPSED_WIDTH = '34px';\nconst OPEN_WIDTH = '200px';\nconst OPEN_MIN_WIDTH = '120px';\n\nconst emit = defineEmits<{\n\t(event: 'update:modelValue', value: Props['modelValue']): void;\n\t(event: 'focus'): void;\n}>();\n\nconst props = withDefaults(defineProps<Props>(), {\n\tpaneType: 'output',\n\tisAreaActive: false,\n});\n\nconst locale = useI18n();\n\nconst inputRef = ref<HTMLInputElement | null>(null);\nconst opened = ref(false);\nconst placeholder = computed(() =>\n\tprops.paneType === 'input'\n\t\t? locale.baseText('ndv.search.placeholder.input')\n\t\t: locale.baseText('ndv.search.placeholder.output'),\n);\n\nconst style = computed<StyleValue>(() =>\n\topened.value ? { maxWidth: OPEN_WIDTH, minWidth: OPEN_MIN_WIDTH } : { maxWidth: COLLAPSED_WIDTH },\n);\n\nconst documentKeyHandler = (event: KeyboardEvent) => {\n\tconst isTargetFormElementOrEditable =\n\t\tevent.target instanceof HTMLInputElement ||\n\t\tevent.target instanceof HTMLTextAreaElement ||\n\t\tevent.target instanceof HTMLSelectElement ||\n\t\t(event.target as HTMLElement)?.getAttribute?.('contentEditable') === 'true';\n\n\tif (event.key === '/' && props.isAreaActive && !isTargetFormElementOrEditable) {\n\t\tinputRef.value?.focus();\n\t\tinputRef.value?.select();\n\t}\n};\n\nconst onSearchUpdate = (value: string) => {\n\temit('update:modelValue', value);\n};\nconst onFocus = () => {\n\topened.value = true;\n\tinputRef.value?.select();\n\temit('focus');\n};\nconst onBlur = () => {\n\tif (!props.modelValue) {\n\t\topened.value = false;\n\t}\n};\nonMounted(() => {\n\tdocument.addEventListener('keyup', documentKeyHandler);\n});\nonUnmounted(() => {\n\tdocument.removeEventListener('keyup', documentKeyHandler);\n});\n</script>\n\n<template>\n\t<n8n-input\n\t\tref=\"inputRef\"\n\t\tdata-test-id=\"ndv-search\"\n\t\t:class=\"{\n\t\t\t[$style.ioSearch]: true,\n\t\t\t[$style.ioSearchOpened]: opened,\n\t\t}\"\n\t\t:style=\"style\"\n\t\t:model-value=\"modelValue\"\n\t\t:placeholder=\"placeholder\"\n\t\tsize=\"small\"\n\t\t@update:model-value=\"onSearchUpdate\"\n\t\t@focus=\"onFocus\"\n\t\t@blur=\"onBlur\"\n\t>\n\t\t<template #prefix>\n\t\t\t<n8n-icon :class=\"$style.ioSearchIcon\" icon=\"search\" />\n\t\t</template>\n\t</n8n-input>\n</template>\n\n<style lang=\"scss\" module>\n@import '@/styles/variables';\n\n.ioSearch {\n\ttransition: max-width 0.3s $ease-out-expo;\n\n\t.ioSearchIcon {\n\t\tcolor: var(--color-foreground-xdark);\n\t\tcursor: pointer;\n\t}\n\n\tinput {\n\t\tborder: 0;\n\t\tbackground: transparent;\n\t\tcursor: pointer;\n\t}\n}\n\n.ioSearchOpened {\n\t.ioSearchIcon {\n\t\tcursor: default;\n\t}\n\tinput {\n\t\tborder: var(--input-border-color, var(--border-color-base))\n\t\t\tvar(--input-border-style, var(--border-style-base)) var(--border-width-base);\n\t\tbackground: var(--input-background-color, var(--color-foreground-xlight));\n\t\tcursor: text;\n\t}\n}\n</style>\n"],"names":["COLLAPSED_WIDTH","OPEN_WIDTH","OPEN_MIN_WIDTH","emit","__emit","props","__props","locale","useI18n","inputRef","ref","opened","placeholder","computed","style","documentKeyHandler","event","isTargetFormElementOrEditable","_b","_a","_c","_d","onSearchUpdate","value","onFocus","onBlur","onMounted","onUnmounted"],"mappings":"6mCAWA,MAAMA,EAAkB,OAClBC,EAAa,QACbC,EAAiB,mLAEvB,MAAMC,EAAOC,EAKPC,EAAQC,EAKRC,EAASC,IAETC,EAAWC,EAA6B,IAAI,EAC5CC,EAASD,EAAI,EAAK,EAClBE,EAAcC,EAAS,IAC5BR,EAAM,WAAa,QAChBE,EAAO,SAAS,8BAA8B,EAC9CA,EAAO,SAAS,+BAA+B,CAAA,EAG7CO,EAAQD,EAAqB,IAClCF,EAAO,MAAQ,CAAE,SAAUV,EAAY,SAAUC,CAAe,EAAI,CAAE,SAAUF,CAAgB,CAAA,EAG3Fe,EAAsBC,GAAyB,aACpD,MAAMC,EACLD,EAAM,kBAAkB,kBACxBA,EAAM,kBAAkB,qBACxBA,EAAM,kBAAkB,qBACvBE,GAAAC,EAAAH,EAAM,SAAN,YAAAG,EAA8B,eAA9B,YAAAD,EAAA,KAAAC,EAA6C,sBAAuB,OAElEH,EAAM,MAAQ,KAAOX,EAAM,cAAgB,CAACY,KAC/CG,EAAAX,EAAS,QAAT,MAAAW,EAAgB,SAChBC,EAAAZ,EAAS,QAAT,MAAAY,EAAgB,SACjB,EAGKC,EAAkBC,GAAkB,CACzCpB,EAAK,oBAAqBoB,CAAK,CAAA,EAE1BC,EAAU,IAAM,OACrBb,EAAO,MAAQ,IACfQ,EAAAV,EAAS,QAAT,MAAAU,EAAgB,SAChBhB,EAAK,OAAO,CAAA,EAEPsB,EAAS,IAAM,CACfpB,EAAM,aACVM,EAAO,MAAQ,GAChB,EAED,OAAAe,EAAU,IAAM,CACN,SAAA,iBAAiB,QAASX,CAAkB,CAAA,CACrD,EACDY,EAAY,IAAM,CACR,SAAA,oBAAoB,QAASZ,CAAkB,CAAA,CACxD"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{m as V}from"./pinia-BAhPp3pQ.js";import{j,K as L,s as O,eo as R,ep as S,a3 as B}from"./index-
|
|
1
|
+
import{m as V}from"./pinia-BAhPp3pQ.js";import{j,K as L,s as O,eo as R,ep as S,a3 as B}from"./index-DEwaaDne.js";import{D as F}from"./NodeView-_cMwqhWw.js";import{M as W,_ as J}from"./TextWithHighlights.vue_vue_type_script_setup_true_lang-D-nZ3pe4.js";import{G as q,ag as f,l as r,m as g,I as n,p as s,F as M,a7 as E,U as m,O as d,S as _,T as $,R as N,M as K}from"./vendor-Dv5OeN6t.js";import{_ as G}from"./n8n-B6cfQsVX.js";import"./axios-Mm4CS0gO.js";import"./flatted-DN8lQ2XG.js";import"./@vueuse/core-9E8Shwsg.js";import"./lodash-es-BxV-E8rt.js";import"./@n8n/permissions-BxxteU-C.js";import"./dateformat-B9ocXky7.js";import"./vue-i18n-Delvyc9x.js";import"./uuid-SoommWqA.js";import"./luxon-CLwAIbs0.js";import"./@n8n/codemirror-lang-sql-x14jMqbG.js";import"./@lezer/common-B6ct0j_v.js";import"./prettier-bS6l4Vb1.js";import"./@jsplumb/util-DS-9vq_E.js";import"./@jsplumb/core-CVBraiyY.js";import"./@jsplumb/common-CF-b-6-M.js";import"./@jsplumb/connector-bezier-BGU0Ovbw.js";import"./@jsplumb/browser-ui-BVF2KoJK.js";import"./codemirror-lang-html-n8n-DcTmlMkf.js";import"./@n8n/codemirror-lang-Qkdx7NoQ.js";import"./esprima-next-nhoSXAeq.js";import"./fast-json-stable-stringify-LluJPcs3.js";import"./timeago.js-CiyKClrF.js";import"./qrcode.vue-BGkPba5A.js";import"./vue3-touch-events-mV0oX_Sl.js";import"./chart.js-343vZi4M.js";import"./useExecutionDebugging-vMuoV-iO.js";import"./file-saver-B3jMAULB.js";import"./vue-json-pretty-4sRLvjgA.js";import"./dateFormatter-DfWOmXdP.js";import"./RunDataAi-D3971Kwm.js";import"./useWorkflowActivate-BLjS7M0I.js";import"./nodeCreator.store-DR3dfsvW.js";import"./collaboration.store-zz8xH0zY.js";import"./useViewStacks-BSagsijV.js";const I=40,U=q({name:"RunDataTable",components:{Draggable:F,MappingPill:W,TextWithHighlights:J},props:{node:{type:Object,required:!0},inputData:{type:Array,required:!0},mappingEnabled:{type:Boolean},distanceFromActive:{type:Number,required:!0},runIndex:{type:Number},outputIndex:{type:Number},totalRuns:{type:Number},pageOffset:{type:Number,required:!0},hasDefaultHoverState:{type:Boolean},search:{type:String}},setup(){return{externalHooks:B()}},data(){return{activeColumn:-1,forceShowGrip:!1,draggedColumn:!1,draggingPath:null,hoveringPath:null,mappingHintVisible:!1,activeRow:null,columnLimit:I,columnLimitExceeded:!1}},mounted(){if(this.tableData&&this.tableData.columns&&this.$refs.draggable){const e=this.$refs.draggable.$refs.wrapper;e&&this.$emit("mounted",{avgRowHeight:e.offsetHeight/this.tableData.data.length})}},computed:{...V(L,j),hoveringItem(){return this.ndvStore.hoveringItem},pairedItemMappings(){return this.workflowsStore.workflowExecutionPairedItemMappings},tableData(){return this.convertToTable(this.inputData)},focusedMappableInput(){return this.ndvStore.focusedMappableInput},highlight(){return this.ndvStore.highlightDraggables}},methods:{shorten:O,isHoveringRow(e){var l;if(e===this.activeRow)return!0;const t=this.pageOffset+e;if(t===0&&!this.hoveringItem&&this.hasDefaultHoverState&&this.distanceFromActive===1)return!0;const a=R(((l=this.node)==null?void 0:l.name)??"",this.runIndex||0,this.outputIndex||0,t);if(!this.hoveringItem||!this.pairedItemMappings[a])return!1;const h=R(this.hoveringItem.nodeName,this.hoveringItem.runIndex,this.hoveringItem.outputIndex,this.hoveringItem.itemIndex);return this.pairedItemMappings[a].has(h)},onMouseEnterCell(e){const t=e.target;if(t&&this.mappingEnabled){const a=t.dataset.col;a&&!isNaN(parseInt(a,10))&&(this.activeColumn=parseInt(a,10))}if(t){const a=t.dataset.row;a&&!isNaN(parseInt(a,10))&&(this.activeRow=parseInt(a,10),this.$emit("activeRowChanged",this.pageOffset+this.activeRow))}},onMouseLeaveCell(){this.activeColumn=-1,this.activeRow=null,this.$emit("activeRowChanged",null)},onMouseEnterKey(e,t){this.hoveringPath=this.getCellExpression(e,t)},onMouseLeaveKey(){this.hoveringPath=null},isHovering(e,t){const a=this.getCellExpression(e,t);return this.hoveringPath===a},getExpression(e){return this.node?S({nodeName:this.node.name,distanceFromActive:this.distanceFromActive,path:[e]}):""},getPathNameFromTarget(e){return e?e.dataset.name:""},getCellPathName(e,t){const a=e[e.length-1];return typeof a=="string"?a:e.length>1?`${e[e.length-2]}[${a}]`:`${this.tableData.columns[t]}[${a}]`},getCellExpression(e,t){if(!this.node)return"";const a=this.tableData.columns[t];return S({nodeName:this.node.name,distanceFromActive:this.distanceFromActive,path:[a,...e]})},isEmpty(e){return e===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&Object.keys(e).length===0||e===null||e===void 0},getValueToRender(e){return e===""?this.$locale.baseText("runData.emptyString"):typeof e=="string"?e.replaceAll(`
|
|
2
2
|
`,"\\n"):Array.isArray(e)&&e.length===0?this.$locale.baseText("runData.emptyArray"):typeof e=="object"&&e!==null&&Object.keys(e).length===0?this.$locale.baseText("runData.emptyObject"):e==null?`[${e}]`:e===!0||e===!1||typeof e=="number"?e.toString():JSON.stringify(e)},onDragStart(){this.draggedColumn=!0,this.ndvStore.resetMappingTelemetry()},onCellDragStart(e){e!=null&&e.dataset.value&&(this.draggingPath=e.dataset.value),this.onDragStart()},onCellDragEnd(e){this.draggingPath=null,this.onDragEnd(e.dataset.name||"","tree",e.dataset.depth||"0")},isDraggingKey(e,t){if(this.draggingPath)return this.draggingPath===this.getCellExpression(e,t)},onDragEnd(e,t,a="0"){setTimeout(()=>{const h=this.ndvStore.mappingTelemetry,l={src_node_type:this.node.type,src_field_name:e,src_nodes_back:this.distanceFromActive,src_run_index:this.runIndex,src_runs_total:this.totalRuns,src_field_nest_level:parseInt(a,10),src_view:"table",src_element:t,success:!1,...h};this.externalHooks.run("runDataTable.onDragEnd",l),this.$telemetry.track("User dragged data for mapping",l,{withPostHog:!0})},1e3)},isSimple(e){return typeof e!="object"||e===null||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0},hasJsonInColumn(e){return this.tableData.hasJson[this.tableData.columns[e]]},convertToTable(e){const t=[],a=[];let h,l,c;const C={};return e.forEach(y=>{if(!y.hasOwnProperty("json"))return;c=y.json,l=[];const D=Object.keys(c||{});D.length>I?(this.columnLimitExceeded=!0,h=D.slice(0,I)):h=D,a.forEach(o=>{c.hasOwnProperty(o)?(l.push(c[o]),h.splice(h.indexOf(o),1),C[o]=C[o]||typeof c[o]=="object"&&Object.keys(c[o]||{}).length>0||!1):l.push(void 0)}),h.forEach(o=>{a.push(o),l.push(c[o]),C[o]=C[o]||typeof c[o]=="object"&&Object.keys(c[o]||{}).length>0||!1}),t.push(l)}),t.forEach(y=>{a.length>y.length&&y.push(...new Array(a.length-y.length))}),{hasJson:C,columns:a,data:t}},switchToJsonView(){this.$emit("displayModeChange","json")}},watch:{focusedMappableInput(e){setTimeout(()=>{this.forceShowGrip=!!this.focusedMappableInput},e?300:150)}}}),z="/%257B%257BBASE_PATH%257D%257D/static/data-mapping-gif.gif",X="_dataDisplay_1ivrv_1",Q="_table_1ivrv_14",Y="_nodeClass_1ivrv_62",Z="_emptyCell_1ivrv_66",x="_header_1ivrv_70",ee="_draggableHeader_1ivrv_82",te="_dragButton_1ivrv_86",ae="_highlight_1ivrv_90",ne="_draggingHeader_1ivrv_94",oe="_activeHeader_1ivrv_99",se="_dataKey_1ivrv_108",re="_value_1ivrv_117",ie="_nestedValue_1ivrv_121 _value_1ivrv_117",le="_mappable_1ivrv_126",ge="_empty_1ivrv_66",de="_limitColWidth_1ivrv_134",pe="_minColWidth_1ivrv_138",me="_hoveringKey_1ivrv_142",he="_draggingKey_1ivrv_146",ue="_tableRightMargin_1ivrv_150",ce="_hoveringRow_1ivrv_158",ye="_warningTooltip_1ivrv_163",ve={dataDisplay:X,table:Q,nodeClass:Y,emptyCell:Z,header:x,draggableHeader:ee,dragButton:te,highlight:ae,draggingHeader:ne,activeHeader:oe,dataKey:se,value:re,nestedValue:ie,mappable:le,empty:ge,limitColWidth:de,minColWidth:pe,hoveringKey:me,draggingKey:he,tableRightMargin:ue,hoveringRow:ce,warningTooltip:ye},be=["data-row"],fe=s("img",{src:z},null,-1),Ce=["data-test-id"],De=["data-row","data-col"],we=["data-name","data-value","data-depth","onMouseenter"],$e={key:0};function Me(e,t,a,h,l,c){const C=f("n8n-info-tip"),y=f("MappingPill"),D=f("TextWithHighlights"),o=f("font-awesome-icon"),T=f("Draggable"),H=f("n8n-tooltip"),P=f("i18n-t"),k=f("n8n-tree");return r(),g("div",{class:n([e.$style.dataDisplay,{[e.$style.highlight]:e.highlight}])},[e.tableData.columns&&e.tableData.columns.length===0?(r(),g("table",{key:0,class:n(e.$style.table)},[s("tr",null,[s("th",{class:n(e.$style.emptyCell)},null,2),s("th",{class:n(e.$style.tableRightMargin)},null,2)]),(r(!0),g(M,null,E(e.tableData.data,(u,p)=>(r(),g("tr",{key:p,class:n({[e.$style.hoveringRow]:e.isHoveringRow(p)})},[s("td",{"data-row":p,"data-col":0,onMouseenter:t[0]||(t[0]=(...i)=>e.onMouseEnterCell&&e.onMouseEnterCell(...i)),onMouseleave:t[1]||(t[1]=(...i)=>e.onMouseLeaveCell&&e.onMouseLeaveCell(...i))},[m(C,null,{default:d(()=>[_($(e.$locale.baseText("runData.emptyItemHint")),1)]),_:1})],40,be),s("td",{class:n(e.$style.tableRightMargin)},null,2)],2))),128))],2)):(r(),g("table",{key:1,class:n(e.$style.table)},[s("thead",null,[s("tr",null,[(r(!0),g(M,null,E(e.tableData.columns||[],(u,p)=>(r(),g("th",{key:u},[m(H,{placement:"bottom-start",disabled:!e.mappingEnabled,"show-after":1e3},{content:d(()=>[s("div",null,[fe,_(" "+$(e.$locale.baseText("dataMapping.dragColumnToFieldHint")),1)])]),default:d(()=>[m(T,{type:"mapping",data:e.getExpression(u),disabled:!e.mappingEnabled,onDragstart:e.onDragStart,onDragend:i=>e.onDragEnd(i,"column")},{preview:d(({canDrop:i})=>[m(y,{html:e.shorten(u,16,2),"can-drop":i},null,8,["html","can-drop"])]),default:d(({isDragging:i})=>[s("div",{class:n({[e.$style.header]:!0,[e.$style.draggableHeader]:e.mappingEnabled,[e.$style.activeHeader]:(p===e.activeColumn||e.forceShowGrip)&&e.mappingEnabled,[e.$style.draggingHeader]:i})},[m(D,{content:e.getValueToRender(u||""),search:e.search},null,8,["content","search"]),s("div",{class:n(e.$style.dragButton)},[m(o,{icon:"grip-vertical"})],2)],2)]),_:2},1032,["data","disabled","onDragstart","onDragend"])]),_:2},1032,["disabled"])]))),128)),e.columnLimitExceeded?(r(),g("th",{key:0,class:n(e.$style.header)},[m(H,{placement:"bottom-end"},{content:d(()=>[s("div",null,[m(P,{tag:"span",keypath:"dataMapping.tableView.tableColumnsExceeded.tooltip"},{columnLimit:d(()=>[_($(e.columnLimit),1)]),link:d(()=>[s("a",{onClick:t[2]||(t[2]=(...u)=>e.switchToJsonView&&e.switchToJsonView(...u))},$(e.$locale.baseText("dataMapping.tableView.tableColumnsExceeded.tooltip.link")),1)]),_:1})])]),default:d(()=>[s("span",null,[m(o,{class:n(e.$style.warningTooltip),icon:"exclamation-triangle"},null,8,["class"]),_(" "+$(e.$locale.baseText("dataMapping.tableView.tableColumnsExceeded")),1)])]),_:1})],2)):N("",!0),s("th",{class:n(e.$style.tableRightMargin)},null,2)])]),m(T,{ref:"draggable",tag:"tbody",type:"mapping","target-data-key":"mappable",disabled:!e.mappingEnabled,onDragstart:e.onCellDragStart,onDragend:e.onCellDragEnd},{preview:d(({canDrop:u,el:p})=>[m(y,{html:e.shorten(e.getPathNameFromTarget(p)||"",16,2),"can-drop":u},null,8,["html","can-drop"])]),default:d(()=>[(r(!0),g(M,null,E(e.tableData.data,(u,p)=>(r(),g("tr",{key:p,class:n({[e.$style.hoveringRow]:e.isHoveringRow(p)}),"data-test-id":e.isHoveringRow(p)?"hovering-item":void 0},[(r(!0),g(M,null,E(u,(i,v)=>(r(),g("td",{key:v,"data-row":p,"data-col":v,class:n(e.hasJsonInColumn(v)?e.$style.minColWidth:e.$style.limitColWidth),onMouseenter:t[4]||(t[4]=(...b)=>e.onMouseEnterCell&&e.onMouseEnterCell(...b)),onMouseleave:t[5]||(t[5]=(...b)=>e.onMouseLeaveCell&&e.onMouseLeaveCell(...b))},[e.isSimple(i)?(r(),K(D,{key:0,content:e.getValueToRender(i),search:e.search,class:n({[e.$style.value]:!0,[e.$style.empty]:e.isEmpty(i)})},null,8,["content","search","class"])):(r(),K(k,{key:1,"node-class":e.$style.nodeClass,value:i},{label:d(({label:b,path:w})=>[s("span",{class:n({[e.$style.hoveringKey]:e.mappingEnabled&&e.isHovering(w,v),[e.$style.draggingKey]:e.isDraggingKey(w,v),[e.$style.dataKey]:!0,[e.$style.mappable]:e.mappingEnabled}),"data-target":"mappable","data-name":e.getCellPathName(w,v),"data-value":e.getCellExpression(w,v),"data-depth":w.length,onMouseenter:()=>e.onMouseEnterKey(w,v),onMouseleave:t[3]||(t[3]=(...A)=>e.onMouseLeaveKey&&e.onMouseLeaveKey(...A))},$(b||e.$locale.baseText("runData.unnamedField")),43,we)]),value:d(({value:b})=>[m(D,{content:e.getValueToRender(b),search:e.search,class:n({[e.$style.nestedValue]:!0,[e.$style.empty]:e.isEmpty(b)})},null,8,["content","search","class"])]),_:2},1032,["node-class","value"]))],42,De))),128)),e.columnLimitExceeded?(r(),g("td",$e)):N("",!0),s("td",{class:n(e.$style.tableRightMargin)},null,2)],10,Ce))),128))]),_:1},8,["disabled","onDragstart","onDragend"])],2))],2)}const Ee={$style:ve},mt=G(U,[["render",Me],["__cssModules",Ee]]);export{mt as default};
|
|
3
|
-
//# sourceMappingURL=RunDataTable-
|
|
3
|
+
//# sourceMappingURL=RunDataTable-DQx4IB1X.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunDataTable-DmxJXvGM.js","sources":["../../src/components/RunDataTable.vue"],"sourcesContent":["<template>\n\t<div :class=\"[$style.dataDisplay, { [$style.highlight]: highlight }]\">\n\t\t<table v-if=\"tableData.columns && tableData.columns.length === 0\" :class=\"$style.table\">\n\t\t\t<tr>\n\t\t\t\t<th :class=\"$style.emptyCell\"></th>\n\t\t\t\t<th :class=\"$style.tableRightMargin\"></th>\n\t\t\t</tr>\n\t\t\t<tr\n\t\t\t\tv-for=\"(row, index1) in tableData.data\"\n\t\t\t\t:key=\"index1\"\n\t\t\t\t:class=\"{ [$style.hoveringRow]: isHoveringRow(index1) }\"\n\t\t\t>\n\t\t\t\t<td\n\t\t\t\t\t:data-row=\"index1\"\n\t\t\t\t\t:data-col=\"0\"\n\t\t\t\t\t@mouseenter=\"onMouseEnterCell\"\n\t\t\t\t\t@mouseleave=\"onMouseLeaveCell\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-info-tip>{{ $locale.baseText('runData.emptyItemHint') }}</n8n-info-tip>\n\t\t\t\t</td>\n\t\t\t\t<td :class=\"$style.tableRightMargin\"></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<table v-else :class=\"$style.table\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th v-for=\"(column, i) in tableData.columns || []\" :key=\"column\">\n\t\t\t\t\t\t<n8n-tooltip placement=\"bottom-start\" :disabled=\"!mappingEnabled\" :show-after=\"1000\">\n\t\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<img src=\"/static/data-mapping-gif.gif\" />\n\t\t\t\t\t\t\t\t\t{{ $locale.baseText('dataMapping.dragColumnToFieldHint') }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<Draggable\n\t\t\t\t\t\t\t\ttype=\"mapping\"\n\t\t\t\t\t\t\t\t:data=\"getExpression(column)\"\n\t\t\t\t\t\t\t\t:disabled=\"!mappingEnabled\"\n\t\t\t\t\t\t\t\t@dragstart=\"onDragStart\"\n\t\t\t\t\t\t\t\t@dragend=\"(column) => onDragEnd(column, 'column')\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<template #preview=\"{ canDrop }\">\n\t\t\t\t\t\t\t\t\t<MappingPill :html=\"shorten(column, 16, 2)\" :can-drop=\"canDrop\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #default=\"{ isDragging }\">\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t\t[$style.header]: true,\n\t\t\t\t\t\t\t\t\t\t\t[$style.draggableHeader]: mappingEnabled,\n\t\t\t\t\t\t\t\t\t\t\t[$style.activeHeader]:\n\t\t\t\t\t\t\t\t\t\t\t\t(i === activeColumn || forceShowGrip) && mappingEnabled,\n\t\t\t\t\t\t\t\t\t\t\t[$style.draggingHeader]: isDragging,\n\t\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<TextWithHighlights\n\t\t\t\t\t\t\t\t\t\t\t:content=\"getValueToRender(column || '')\"\n\t\t\t\t\t\t\t\t\t\t\t:search=\"search\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<div :class=\"$style.dragButton\">\n\t\t\t\t\t\t\t\t\t\t\t<font-awesome-icon icon=\"grip-vertical\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</Draggable>\n\t\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th v-if=\"columnLimitExceeded\" :class=\"$style.header\">\n\t\t\t\t\t\t<n8n-tooltip placement=\"bottom-end\">\n\t\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<i18n-t tag=\"span\" keypath=\"dataMapping.tableView.tableColumnsExceeded.tooltip\">\n\t\t\t\t\t\t\t\t\t\t<template #columnLimit>{{ columnLimit }}</template>\n\t\t\t\t\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t\t\t\t\t<a @click=\"switchToJsonView\">{{\n\t\t\t\t\t\t\t\t\t\t\t\t$locale.baseText('dataMapping.tableView.tableColumnsExceeded.tooltip.link')\n\t\t\t\t\t\t\t\t\t\t\t}}</a>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\t\t\t:class=\"$style['warningTooltip']\"\n\t\t\t\t\t\t\t\t\ticon=\"exclamation-triangle\"\n\t\t\t\t\t\t\t\t></font-awesome-icon>\n\t\t\t\t\t\t\t\t{{ $locale.baseText('dataMapping.tableView.tableColumnsExceeded') }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th :class=\"$style.tableRightMargin\"></th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<Draggable\n\t\t\t\tref=\"draggable\"\n\t\t\t\ttag=\"tbody\"\n\t\t\t\ttype=\"mapping\"\n\t\t\t\ttarget-data-key=\"mappable\"\n\t\t\t\t:disabled=\"!mappingEnabled\"\n\t\t\t\t@dragstart=\"onCellDragStart\"\n\t\t\t\t@dragend=\"onCellDragEnd\"\n\t\t\t>\n\t\t\t\t<template #preview=\"{ canDrop, el }\">\n\t\t\t\t\t<MappingPill\n\t\t\t\t\t\t:html=\"shorten(getPathNameFromTarget(el) || '', 16, 2)\"\n\t\t\t\t\t\t:can-drop=\"canDrop\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t\t<tr\n\t\t\t\t\tv-for=\"(row, index1) in tableData.data\"\n\t\t\t\t\t:key=\"index1\"\n\t\t\t\t\t:class=\"{ [$style.hoveringRow]: isHoveringRow(index1) }\"\n\t\t\t\t\t:data-test-id=\"isHoveringRow(index1) ? 'hovering-item' : undefined\"\n\t\t\t\t>\n\t\t\t\t\t<td\n\t\t\t\t\t\tv-for=\"(data, index2) in row\"\n\t\t\t\t\t\t:key=\"index2\"\n\t\t\t\t\t\t:data-row=\"index1\"\n\t\t\t\t\t\t:data-col=\"index2\"\n\t\t\t\t\t\t:class=\"hasJsonInColumn(index2) ? $style.minColWidth : $style.limitColWidth\"\n\t\t\t\t\t\t@mouseenter=\"onMouseEnterCell\"\n\t\t\t\t\t\t@mouseleave=\"onMouseLeaveCell\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextWithHighlights\n\t\t\t\t\t\t\tv-if=\"isSimple(data)\"\n\t\t\t\t\t\t\t:content=\"getValueToRender(data)\"\n\t\t\t\t\t\t\t:search=\"search\"\n\t\t\t\t\t\t\t:class=\"{ [$style.value]: true, [$style.empty]: isEmpty(data) }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<n8n-tree v-else :node-class=\"$style.nodeClass\" :value=\"data\">\n\t\t\t\t\t\t\t<template #label=\"{ label, path }\">\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t[$style.hoveringKey]: mappingEnabled && isHovering(path, index2),\n\t\t\t\t\t\t\t\t\t\t[$style.draggingKey]: isDraggingKey(path, index2),\n\t\t\t\t\t\t\t\t\t\t[$style.dataKey]: true,\n\t\t\t\t\t\t\t\t\t\t[$style.mappable]: mappingEnabled,\n\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\tdata-target=\"mappable\"\n\t\t\t\t\t\t\t\t\t:data-name=\"getCellPathName(path, index2)\"\n\t\t\t\t\t\t\t\t\t:data-value=\"getCellExpression(path, index2)\"\n\t\t\t\t\t\t\t\t\t:data-depth=\"path.length\"\n\t\t\t\t\t\t\t\t\t@mouseenter=\"() => onMouseEnterKey(path, index2)\"\n\t\t\t\t\t\t\t\t\t@mouseleave=\"onMouseLeaveKey\"\n\t\t\t\t\t\t\t\t\t>{{ label || $locale.baseText('runData.unnamedField') }}</span\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template #value=\"{ value }\">\n\t\t\t\t\t\t\t\t<TextWithHighlights\n\t\t\t\t\t\t\t\t\t:content=\"getValueToRender(value)\"\n\t\t\t\t\t\t\t\t\t:search=\"search\"\n\t\t\t\t\t\t\t\t\t:class=\"{ [$style.nestedValue]: true, [$style.empty]: isEmpty(value) }\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</n8n-tree>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td v-if=\"columnLimitExceeded\"></td>\n\t\t\t\t\t<td :class=\"$style.tableRightMargin\"></td>\n\t\t\t\t</tr>\n\t\t\t</Draggable>\n\t\t</table>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { mapStores } from 'pinia';\nimport type { INodeUi, ITableData, NDVState } from '@/Interface';\nimport { shorten } from '@/utils/typesUtils';\nimport { getPairedItemId } from '@/utils/pairedItemUtils';\nimport type { GenericValue, IDataObject, INodeExecutionData } from 'n8n-workflow';\nimport Draggable from './Draggable.vue';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport MappingPill from './MappingPill.vue';\nimport { getMappedExpression } from '@/utils/mappingUtils';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport TextWithHighlights from './TextWithHighlights.vue';\n\nconst MAX_COLUMNS_LIMIT = 40;\n\ntype DraggableRef = InstanceType<typeof Draggable>;\n\nexport default defineComponent({\n\tname: 'RunDataTable',\n\tcomponents: { Draggable, MappingPill, TextWithHighlights },\n\tprops: {\n\t\tnode: {\n\t\t\ttype: Object as PropType<INodeUi>,\n\t\t\trequired: true,\n\t\t},\n\t\tinputData: {\n\t\t\ttype: Array as PropType<INodeExecutionData[]>,\n\t\t\trequired: true,\n\t\t},\n\t\tmappingEnabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tdistanceFromActive: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\trunIndex: {\n\t\t\ttype: Number,\n\t\t},\n\t\toutputIndex: {\n\t\t\ttype: Number,\n\t\t},\n\t\ttotalRuns: {\n\t\t\ttype: Number,\n\t\t},\n\t\tpageOffset: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\thasDefaultHoverState: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tsearch: {\n\t\t\ttype: String,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst externalHooks = useExternalHooks();\n\t\treturn {\n\t\t\texternalHooks,\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tactiveColumn: -1,\n\t\t\tforceShowGrip: false,\n\t\t\tdraggedColumn: false,\n\t\t\tdraggingPath: null as null | string,\n\t\t\thoveringPath: null as null | string,\n\t\t\tmappingHintVisible: false,\n\t\t\tactiveRow: null as number | null,\n\t\t\tcolumnLimit: MAX_COLUMNS_LIMIT,\n\t\t\tcolumnLimitExceeded: false,\n\t\t};\n\t},\n\tmounted() {\n\t\tif (this.tableData && this.tableData.columns && this.$refs.draggable) {\n\t\t\tconst tbody = (this.$refs.draggable as DraggableRef).$refs.wrapper as HTMLElement;\n\t\t\tif (tbody) {\n\t\t\t\tthis.$emit('mounted', {\n\t\t\t\t\tavgRowHeight: tbody.offsetHeight / this.tableData.data.length,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\tcomputed: {\n\t\t...mapStores(useNDVStore, useWorkflowsStore),\n\t\thoveringItem(): NDVState['hoveringItem'] {\n\t\t\treturn this.ndvStore.hoveringItem;\n\t\t},\n\t\tpairedItemMappings(): { [itemId: string]: Set<string> } {\n\t\t\treturn this.workflowsStore.workflowExecutionPairedItemMappings;\n\t\t},\n\t\ttableData(): ITableData {\n\t\t\treturn this.convertToTable(this.inputData);\n\t\t},\n\t\tfocusedMappableInput(): string {\n\t\t\treturn this.ndvStore.focusedMappableInput;\n\t\t},\n\t\thighlight(): boolean {\n\t\t\treturn this.ndvStore.highlightDraggables;\n\t\t},\n\t},\n\tmethods: {\n\t\tshorten,\n\t\tisHoveringRow(row: number): boolean {\n\t\t\tif (row === this.activeRow) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst itemIndex = this.pageOffset + row;\n\t\t\tif (\n\t\t\t\titemIndex === 0 &&\n\t\t\t\t!this.hoveringItem &&\n\t\t\t\tthis.hasDefaultHoverState &&\n\t\t\t\tthis.distanceFromActive === 1\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst itemNodeId = getPairedItemId(\n\t\t\t\tthis.node?.name ?? '',\n\t\t\t\tthis.runIndex || 0,\n\t\t\t\tthis.outputIndex || 0,\n\t\t\t\titemIndex,\n\t\t\t);\n\t\t\tif (!this.hoveringItem || !this.pairedItemMappings[itemNodeId]) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst hoveringItemId = getPairedItemId(\n\t\t\t\tthis.hoveringItem.nodeName,\n\t\t\t\tthis.hoveringItem.runIndex,\n\t\t\t\tthis.hoveringItem.outputIndex,\n\t\t\t\tthis.hoveringItem.itemIndex,\n\t\t\t);\n\t\t\treturn this.pairedItemMappings[itemNodeId].has(hoveringItemId);\n\t\t},\n\t\tonMouseEnterCell(e: MouseEvent) {\n\t\t\tconst target = e.target;\n\t\t\tif (target && this.mappingEnabled) {\n\t\t\t\tconst col = (target as HTMLElement).dataset.col;\n\t\t\t\tif (col && !isNaN(parseInt(col, 10))) {\n\t\t\t\t\tthis.activeColumn = parseInt(col, 10);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (target) {\n\t\t\t\tconst row = (target as HTMLElement).dataset.row;\n\t\t\t\tif (row && !isNaN(parseInt(row, 10))) {\n\t\t\t\t\tthis.activeRow = parseInt(row, 10);\n\t\t\t\t\tthis.$emit('activeRowChanged', this.pageOffset + this.activeRow);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonMouseLeaveCell() {\n\t\t\tthis.activeColumn = -1;\n\t\t\tthis.activeRow = null;\n\t\t\tthis.$emit('activeRowChanged', null);\n\t\t},\n\t\tonMouseEnterKey(path: string[], colIndex: number) {\n\t\t\tthis.hoveringPath = this.getCellExpression(path, colIndex);\n\t\t},\n\t\tonMouseLeaveKey() {\n\t\t\tthis.hoveringPath = null;\n\t\t},\n\t\tisHovering(path: string[], colIndex: number) {\n\t\t\tconst expr = this.getCellExpression(path, colIndex);\n\n\t\t\treturn this.hoveringPath === expr;\n\t\t},\n\t\tgetExpression(column: string) {\n\t\t\tif (!this.node) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn getMappedExpression({\n\t\t\t\tnodeName: this.node.name,\n\t\t\t\tdistanceFromActive: this.distanceFromActive,\n\t\t\t\tpath: [column],\n\t\t\t});\n\t\t},\n\t\tgetPathNameFromTarget(el: HTMLElement) {\n\t\t\tif (!el) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\treturn el.dataset.name;\n\t\t},\n\t\tgetCellPathName(path: Array<string | number>, colIndex: number) {\n\t\t\tconst lastKey = path[path.length - 1];\n\t\t\tif (typeof lastKey === 'string') {\n\t\t\t\treturn lastKey;\n\t\t\t}\n\t\t\tif (path.length > 1) {\n\t\t\t\tconst prevKey = path[path.length - 2];\n\t\t\t\treturn `${prevKey}[${lastKey}]`;\n\t\t\t}\n\t\t\tconst column = this.tableData.columns[colIndex];\n\t\t\treturn `${column}[${lastKey}]`;\n\t\t},\n\t\tgetCellExpression(path: Array<string | number>, colIndex: number) {\n\t\t\tif (!this.node) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tconst column = this.tableData.columns[colIndex];\n\t\t\treturn getMappedExpression({\n\t\t\t\tnodeName: this.node.name,\n\t\t\t\tdistanceFromActive: this.distanceFromActive,\n\t\t\t\tpath: [column, ...path],\n\t\t\t});\n\t\t},\n\t\tisEmpty(value: unknown): boolean {\n\t\t\treturn (\n\t\t\t\tvalue === '' ||\n\t\t\t\t(Array.isArray(value) && value.length === 0) ||\n\t\t\t\t(typeof value === 'object' && value !== null && Object.keys(value).length === 0) ||\n\t\t\t\tvalue === null ||\n\t\t\t\tvalue === undefined\n\t\t\t);\n\t\t},\n\t\tgetValueToRender(value: unknown): string {\n\t\t\tif (value === '') {\n\t\t\t\treturn this.$locale.baseText('runData.emptyString');\n\t\t\t}\n\t\t\tif (typeof value === 'string') {\n\t\t\t\treturn value.replaceAll('\\n', '\\\\n');\n\t\t\t}\n\t\t\tif (Array.isArray(value) && value.length === 0) {\n\t\t\t\treturn this.$locale.baseText('runData.emptyArray');\n\t\t\t}\n\t\t\tif (typeof value === 'object' && value !== null && Object.keys(value).length === 0) {\n\t\t\t\treturn this.$locale.baseText('runData.emptyObject');\n\t\t\t}\n\t\t\tif (value === null || value === undefined) {\n\t\t\t\treturn `[${value}]`;\n\t\t\t}\n\t\t\tif (value === true || value === false || typeof value === 'number') {\n\t\t\t\treturn value.toString();\n\t\t\t}\n\t\t\treturn JSON.stringify(value);\n\t\t},\n\t\tonDragStart() {\n\t\t\tthis.draggedColumn = true;\n\t\t\tthis.ndvStore.resetMappingTelemetry();\n\t\t},\n\t\tonCellDragStart(el: HTMLElement) {\n\t\t\tif (el?.dataset.value) {\n\t\t\t\tthis.draggingPath = el.dataset.value;\n\t\t\t}\n\n\t\t\tthis.onDragStart();\n\t\t},\n\t\tonCellDragEnd(el: HTMLElement) {\n\t\t\tthis.draggingPath = null;\n\n\t\t\tthis.onDragEnd(el.dataset.name || '', 'tree', el.dataset.depth || '0');\n\t\t},\n\t\tisDraggingKey(path: Array<string | number>, colIndex: number) {\n\t\t\tif (!this.draggingPath) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn this.draggingPath === this.getCellExpression(path, colIndex);\n\t\t},\n\t\tonDragEnd(column: string, src: string, depth = '0') {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst mappingTelemetry = this.ndvStore.mappingTelemetry;\n\t\t\t\tconst telemetryPayload = {\n\t\t\t\t\tsrc_node_type: this.node.type,\n\t\t\t\t\tsrc_field_name: column,\n\t\t\t\t\tsrc_nodes_back: this.distanceFromActive,\n\t\t\t\t\tsrc_run_index: this.runIndex,\n\t\t\t\t\tsrc_runs_total: this.totalRuns,\n\t\t\t\t\tsrc_field_nest_level: parseInt(depth, 10),\n\t\t\t\t\tsrc_view: 'table',\n\t\t\t\t\tsrc_element: src,\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\t...mappingTelemetry,\n\t\t\t\t};\n\n\t\t\t\tvoid this.externalHooks.run('runDataTable.onDragEnd', telemetryPayload);\n\n\t\t\t\tthis.$telemetry.track('User dragged data for mapping', telemetryPayload, {\n\t\t\t\t\twithPostHog: true,\n\t\t\t\t});\n\t\t\t}, 1000); // ensure dest data gets set if drop\n\t\t},\n\t\tisSimple(data: unknown): boolean {\n\t\t\treturn (\n\t\t\t\ttypeof data !== 'object' ||\n\t\t\t\tdata === null ||\n\t\t\t\t(Array.isArray(data) && data.length === 0) ||\n\t\t\t\t(typeof data === 'object' && Object.keys(data).length === 0)\n\t\t\t);\n\t\t},\n\t\thasJsonInColumn(colIndex: number): boolean {\n\t\t\treturn this.tableData.hasJson[this.tableData.columns[colIndex]];\n\t\t},\n\t\tconvertToTable(inputData: INodeExecutionData[]): ITableData {\n\t\t\tconst tableData: GenericValue[][] = [];\n\t\t\tconst tableColumns: string[] = [];\n\t\t\tlet leftEntryColumns: string[], entryRows: GenericValue[];\n\t\t\t// Go over all entries\n\t\t\tlet entry: IDataObject;\n\t\t\tconst hasJson: { [key: string]: boolean } = {};\n\t\t\tinputData.forEach((data) => {\n\t\t\t\tif (!data.hasOwnProperty('json')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tentry = data.json;\n\n\t\t\t\t// Go over all keys of entry\n\t\t\t\tentryRows = [];\n\t\t\t\tconst entryColumns = Object.keys(entry || {});\n\n\t\t\t\tif (entryColumns.length > MAX_COLUMNS_LIMIT) {\n\t\t\t\t\tthis.columnLimitExceeded = true;\n\t\t\t\t\tleftEntryColumns = entryColumns.slice(0, MAX_COLUMNS_LIMIT);\n\t\t\t\t} else {\n\t\t\t\t\tleftEntryColumns = entryColumns;\n\t\t\t\t}\n\n\t\t\t\t// Go over all the already existing column-keys\n\t\t\t\ttableColumns.forEach((key) => {\n\t\t\t\t\tif (entry.hasOwnProperty(key)) {\n\t\t\t\t\t\t// Entry does have key so add its value\n\t\t\t\t\t\tentryRows.push(entry[key]);\n\t\t\t\t\t\t// Remove key so that we know that it got added\n\t\t\t\t\t\tleftEntryColumns.splice(leftEntryColumns.indexOf(key), 1);\n\n\t\t\t\t\t\thasJson[key] =\n\t\t\t\t\t\t\thasJson[key] ||\n\t\t\t\t\t\t\t(typeof entry[key] === 'object' && Object.keys(entry[key] || {}).length > 0) ||\n\t\t\t\t\t\t\tfalse;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Entry does not have key so add undefined\n\t\t\t\t\t\tentryRows.push(undefined);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Go over all the columns the entry has but did not exist yet\n\t\t\t\tleftEntryColumns.forEach((key) => {\n\t\t\t\t\t// Add the key for all runs in the future\n\t\t\t\t\ttableColumns.push(key);\n\t\t\t\t\t// Add the value\n\t\t\t\t\tentryRows.push(entry[key]);\n\t\t\t\t\thasJson[key] =\n\t\t\t\t\t\thasJson[key] ||\n\t\t\t\t\t\t(typeof entry[key] === 'object' && Object.keys(entry[key] || {}).length > 0) ||\n\t\t\t\t\t\tfalse;\n\t\t\t\t});\n\n\t\t\t\t// Add the data of the entry\n\t\t\t\ttableData.push(entryRows);\n\t\t\t});\n\n\t\t\t// Make sure that all entry-rows have the same length\n\t\t\ttableData.forEach((entryRows) => {\n\t\t\t\tif (tableColumns.length > entryRows.length) {\n\t\t\t\t\t// Has fewer entries so add the missing ones\n\t\t\t\t\tentryRows.push(...new Array(tableColumns.length - entryRows.length));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\thasJson,\n\t\t\t\tcolumns: tableColumns,\n\t\t\t\tdata: tableData,\n\t\t\t};\n\t\t},\n\t\tswitchToJsonView() {\n\t\t\tthis.$emit('displayModeChange', 'json');\n\t\t},\n\t},\n\twatch: {\n\t\tfocusedMappableInput(curr: boolean) {\n\t\t\tsetTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tthis.forceShowGrip = !!this.focusedMappableInput;\n\t\t\t\t},\n\t\t\t\tcurr ? 300 : 150,\n\t\t\t);\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.dataDisplay {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tpadding-left: var(--spacing-s);\n\tright: 0;\n\toverflow-y: auto;\n\tline-height: 1.5;\n\tword-break: normal;\n\theight: 100%;\n\tpadding-bottom: var(--spacing-3xl);\n}\n\n.table {\n\tborder-collapse: separate;\n\ttext-align: left;\n\twidth: calc(100%);\n\tfont-size: var(--font-size-s);\n\n\tth {\n\t\tbackground-color: var(--color-background-base);\n\t\tborder-top: var(--border-base);\n\t\tborder-bottom: var(--border-base);\n\t\tborder-left: var(--border-base);\n\t\tposition: sticky;\n\t\ttop: 0;\n\t\tcolor: var(--color-text-dark);\n\t\tz-index: 1;\n\t}\n\n\ttd {\n\t\tvertical-align: top;\n\t\tpadding: var(--spacing-2xs) var(--spacing-2xs) var(--spacing-2xs) var(--spacing-3xs);\n\t\tborder-bottom: var(--border-base);\n\t\tborder-left: var(--border-base);\n\t\toverflow-wrap: break-word;\n\t\twhite-space: pre-wrap;\n\t}\n\n\ttd:first-child,\n\ttd:nth-last-child(2) {\n\t\tposition: relative;\n\t\tz-index: 0;\n\n\t\t&:after {\n\t\t\t// add border without shifting content\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\theight: 100%;\n\t\t\twidth: 2px;\n\t\t\ttop: 0;\n\t\t}\n\t}\n\n\ttd:nth-last-child(2):after {\n\t\tright: -1px;\n\t}\n\n\ttd:first-child:after {\n\t\tleft: -1px;\n\t}\n\n\tth:last-child,\n\ttd:last-child {\n\t\tborder-right: var(--border-base);\n\t}\n}\n\n.nodeClass {\n\tmargin-bottom: var(--spacing-5xs);\n}\n\n.emptyCell {\n\theight: 32px;\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: var(--spacing-2xs);\n\n\tspan {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tflex-grow: 1;\n\t}\n}\n\n.draggableHeader {\n\t&:hover {\n\t\tcursor: grab;\n\t\tbackground-color: var(--color-foreground-base);\n\n\t\t.dragButton {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.highlight .draggableHeader {\n\tcolor: var(--color-primary);\n}\n\n.draggingHeader {\n\tcolor: var(--color-primary);\n\tbackground-color: var(--color-primary-tint-2);\n}\n\n.activeHeader {\n\t.dragButton {\n\t\topacity: 1;\n\t}\n}\n\n.dragButton {\n\topacity: 0;\n\tmargin-left: var(--spacing-2xs);\n}\n\n.dataKey {\n\tcolor: var(--color-text-dark);\n\tline-height: 1.7;\n\tfont-weight: var(--font-weight-bold);\n\tborder-radius: var(--border-radius-base);\n\tpadding: 0 var(--spacing-5xs) 0 var(--spacing-5xs);\n\tmargin-right: var(--spacing-5xs);\n}\n\n.value {\n\tline-height: var(--font-line-height-regular);\n}\n\n.nestedValue {\n\tcomposes: value;\n\tmargin-left: var(--spacing-4xs);\n}\n\n.mappable {\n\tcursor: grab;\n}\n\n.empty {\n\tcolor: var(--color-danger);\n}\n\n.limitColWidth {\n\tmax-width: 300px;\n}\n\n.minColWidth {\n\tmin-width: 240px;\n}\n\n.hoveringKey {\n\tbackground-color: var(--color-foreground-base);\n}\n\n.draggingKey {\n\tbackground-color: var(--color-primary-tint-2);\n}\n\n.tableRightMargin {\n\t// becomes necessary with large tables\n\tbackground-color: var(--color-background-base) !important;\n\twidth: var(--spacing-s);\n\tborder-right: none !important;\n\tborder-top: none !important;\n\tborder-bottom: none !important;\n}\n\n.hoveringRow {\n\ttd:first-child:after,\n\ttd:nth-last-child(2):after {\n\t\tbackground-color: var(--color-secondary);\n\t}\n}\n\n.warningTooltip {\n\tcolor: var(--color-warning);\n}\n</style>\n"],"names":["MAX_COLUMNS_LIMIT","_sfc_main","defineComponent","Draggable","MappingPill","TextWithHighlights","useExternalHooks","tbody","mapStores","useNDVStore","useWorkflowsStore","shorten","row","itemIndex","itemNodeId","getPairedItemId","_a","hoveringItemId","target","col","path","colIndex","expr","column","getMappedExpression","el","lastKey","value","src","depth","mappingTelemetry","telemetryPayload","data","inputData","tableData","tableColumns","leftEntryColumns","entryRows","entry","hasJson","entryColumns","key","curr","_hoisted_1","_hoisted_2","_createElementVNode","_imports_0","_hoisted_3","_hoisted_4","_resolveComponent","_ctx","_openBlock","_createElementBlock","$style","_normalizeClass","_Fragment","_renderList","index1","_cache","args","_component_n8n_info_tip","$locale","_createTextVNode","_toDisplayString","i","_createVNode","mappingEnabled","_withCtx","getExpression","onDragStart","canDrop","_component_MappingPill","isDragging","activeColumn","forceShowGrip","search","columnLimitExceeded","_component_n8n_tooltip","_component_i18n_t","_component_font_awesome_icon","_createCommentVNode","_component_Draggable","onCellDragStart","onCellDragEnd","getPathNameFromTarget","index2","_createBlock","_component_TextWithHighlights","_component_n8n_tree","label","isDraggingKey","getCellExpression","onMouseEnterKey","_hoisted_5","getValueToRender","_hoisted_6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RunDataTable-DQx4IB1X.js","sources":["../../src/components/RunDataTable.vue"],"sourcesContent":["<template>\n\t<div :class=\"[$style.dataDisplay, { [$style.highlight]: highlight }]\">\n\t\t<table v-if=\"tableData.columns && tableData.columns.length === 0\" :class=\"$style.table\">\n\t\t\t<tr>\n\t\t\t\t<th :class=\"$style.emptyCell\"></th>\n\t\t\t\t<th :class=\"$style.tableRightMargin\"></th>\n\t\t\t</tr>\n\t\t\t<tr\n\t\t\t\tv-for=\"(row, index1) in tableData.data\"\n\t\t\t\t:key=\"index1\"\n\t\t\t\t:class=\"{ [$style.hoveringRow]: isHoveringRow(index1) }\"\n\t\t\t>\n\t\t\t\t<td\n\t\t\t\t\t:data-row=\"index1\"\n\t\t\t\t\t:data-col=\"0\"\n\t\t\t\t\t@mouseenter=\"onMouseEnterCell\"\n\t\t\t\t\t@mouseleave=\"onMouseLeaveCell\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-info-tip>{{ $locale.baseText('runData.emptyItemHint') }}</n8n-info-tip>\n\t\t\t\t</td>\n\t\t\t\t<td :class=\"$style.tableRightMargin\"></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<table v-else :class=\"$style.table\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th v-for=\"(column, i) in tableData.columns || []\" :key=\"column\">\n\t\t\t\t\t\t<n8n-tooltip placement=\"bottom-start\" :disabled=\"!mappingEnabled\" :show-after=\"1000\">\n\t\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<img src=\"/static/data-mapping-gif.gif\" />\n\t\t\t\t\t\t\t\t\t{{ $locale.baseText('dataMapping.dragColumnToFieldHint') }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<Draggable\n\t\t\t\t\t\t\t\ttype=\"mapping\"\n\t\t\t\t\t\t\t\t:data=\"getExpression(column)\"\n\t\t\t\t\t\t\t\t:disabled=\"!mappingEnabled\"\n\t\t\t\t\t\t\t\t@dragstart=\"onDragStart\"\n\t\t\t\t\t\t\t\t@dragend=\"(column) => onDragEnd(column, 'column')\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<template #preview=\"{ canDrop }\">\n\t\t\t\t\t\t\t\t\t<MappingPill :html=\"shorten(column, 16, 2)\" :can-drop=\"canDrop\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #default=\"{ isDragging }\">\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t\t[$style.header]: true,\n\t\t\t\t\t\t\t\t\t\t\t[$style.draggableHeader]: mappingEnabled,\n\t\t\t\t\t\t\t\t\t\t\t[$style.activeHeader]:\n\t\t\t\t\t\t\t\t\t\t\t\t(i === activeColumn || forceShowGrip) && mappingEnabled,\n\t\t\t\t\t\t\t\t\t\t\t[$style.draggingHeader]: isDragging,\n\t\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<TextWithHighlights\n\t\t\t\t\t\t\t\t\t\t\t:content=\"getValueToRender(column || '')\"\n\t\t\t\t\t\t\t\t\t\t\t:search=\"search\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<div :class=\"$style.dragButton\">\n\t\t\t\t\t\t\t\t\t\t\t<font-awesome-icon icon=\"grip-vertical\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</Draggable>\n\t\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th v-if=\"columnLimitExceeded\" :class=\"$style.header\">\n\t\t\t\t\t\t<n8n-tooltip placement=\"bottom-end\">\n\t\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<i18n-t tag=\"span\" keypath=\"dataMapping.tableView.tableColumnsExceeded.tooltip\">\n\t\t\t\t\t\t\t\t\t\t<template #columnLimit>{{ columnLimit }}</template>\n\t\t\t\t\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t\t\t\t\t<a @click=\"switchToJsonView\">{{\n\t\t\t\t\t\t\t\t\t\t\t\t$locale.baseText('dataMapping.tableView.tableColumnsExceeded.tooltip.link')\n\t\t\t\t\t\t\t\t\t\t\t}}</a>\n\t\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\t\t\t:class=\"$style['warningTooltip']\"\n\t\t\t\t\t\t\t\t\ticon=\"exclamation-triangle\"\n\t\t\t\t\t\t\t\t></font-awesome-icon>\n\t\t\t\t\t\t\t\t{{ $locale.baseText('dataMapping.tableView.tableColumnsExceeded') }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t</th>\n\t\t\t\t\t<th :class=\"$style.tableRightMargin\"></th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<Draggable\n\t\t\t\tref=\"draggable\"\n\t\t\t\ttag=\"tbody\"\n\t\t\t\ttype=\"mapping\"\n\t\t\t\ttarget-data-key=\"mappable\"\n\t\t\t\t:disabled=\"!mappingEnabled\"\n\t\t\t\t@dragstart=\"onCellDragStart\"\n\t\t\t\t@dragend=\"onCellDragEnd\"\n\t\t\t>\n\t\t\t\t<template #preview=\"{ canDrop, el }\">\n\t\t\t\t\t<MappingPill\n\t\t\t\t\t\t:html=\"shorten(getPathNameFromTarget(el) || '', 16, 2)\"\n\t\t\t\t\t\t:can-drop=\"canDrop\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t\t<tr\n\t\t\t\t\tv-for=\"(row, index1) in tableData.data\"\n\t\t\t\t\t:key=\"index1\"\n\t\t\t\t\t:class=\"{ [$style.hoveringRow]: isHoveringRow(index1) }\"\n\t\t\t\t\t:data-test-id=\"isHoveringRow(index1) ? 'hovering-item' : undefined\"\n\t\t\t\t>\n\t\t\t\t\t<td\n\t\t\t\t\t\tv-for=\"(data, index2) in row\"\n\t\t\t\t\t\t:key=\"index2\"\n\t\t\t\t\t\t:data-row=\"index1\"\n\t\t\t\t\t\t:data-col=\"index2\"\n\t\t\t\t\t\t:class=\"hasJsonInColumn(index2) ? $style.minColWidth : $style.limitColWidth\"\n\t\t\t\t\t\t@mouseenter=\"onMouseEnterCell\"\n\t\t\t\t\t\t@mouseleave=\"onMouseLeaveCell\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextWithHighlights\n\t\t\t\t\t\t\tv-if=\"isSimple(data)\"\n\t\t\t\t\t\t\t:content=\"getValueToRender(data)\"\n\t\t\t\t\t\t\t:search=\"search\"\n\t\t\t\t\t\t\t:class=\"{ [$style.value]: true, [$style.empty]: isEmpty(data) }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<n8n-tree v-else :node-class=\"$style.nodeClass\" :value=\"data\">\n\t\t\t\t\t\t\t<template #label=\"{ label, path }\">\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t[$style.hoveringKey]: mappingEnabled && isHovering(path, index2),\n\t\t\t\t\t\t\t\t\t\t[$style.draggingKey]: isDraggingKey(path, index2),\n\t\t\t\t\t\t\t\t\t\t[$style.dataKey]: true,\n\t\t\t\t\t\t\t\t\t\t[$style.mappable]: mappingEnabled,\n\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\tdata-target=\"mappable\"\n\t\t\t\t\t\t\t\t\t:data-name=\"getCellPathName(path, index2)\"\n\t\t\t\t\t\t\t\t\t:data-value=\"getCellExpression(path, index2)\"\n\t\t\t\t\t\t\t\t\t:data-depth=\"path.length\"\n\t\t\t\t\t\t\t\t\t@mouseenter=\"() => onMouseEnterKey(path, index2)\"\n\t\t\t\t\t\t\t\t\t@mouseleave=\"onMouseLeaveKey\"\n\t\t\t\t\t\t\t\t\t>{{ label || $locale.baseText('runData.unnamedField') }}</span\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template #value=\"{ value }\">\n\t\t\t\t\t\t\t\t<TextWithHighlights\n\t\t\t\t\t\t\t\t\t:content=\"getValueToRender(value)\"\n\t\t\t\t\t\t\t\t\t:search=\"search\"\n\t\t\t\t\t\t\t\t\t:class=\"{ [$style.nestedValue]: true, [$style.empty]: isEmpty(value) }\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</n8n-tree>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td v-if=\"columnLimitExceeded\"></td>\n\t\t\t\t\t<td :class=\"$style.tableRightMargin\"></td>\n\t\t\t\t</tr>\n\t\t\t</Draggable>\n\t\t</table>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { mapStores } from 'pinia';\nimport type { INodeUi, ITableData, NDVState } from '@/Interface';\nimport { shorten } from '@/utils/typesUtils';\nimport { getPairedItemId } from '@/utils/pairedItemUtils';\nimport type { GenericValue, IDataObject, INodeExecutionData } from 'n8n-workflow';\nimport Draggable from './Draggable.vue';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport MappingPill from './MappingPill.vue';\nimport { getMappedExpression } from '@/utils/mappingUtils';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport TextWithHighlights from './TextWithHighlights.vue';\n\nconst MAX_COLUMNS_LIMIT = 40;\n\ntype DraggableRef = InstanceType<typeof Draggable>;\n\nexport default defineComponent({\n\tname: 'RunDataTable',\n\tcomponents: { Draggable, MappingPill, TextWithHighlights },\n\tprops: {\n\t\tnode: {\n\t\t\ttype: Object as PropType<INodeUi>,\n\t\t\trequired: true,\n\t\t},\n\t\tinputData: {\n\t\t\ttype: Array as PropType<INodeExecutionData[]>,\n\t\t\trequired: true,\n\t\t},\n\t\tmappingEnabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tdistanceFromActive: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\trunIndex: {\n\t\t\ttype: Number,\n\t\t},\n\t\toutputIndex: {\n\t\t\ttype: Number,\n\t\t},\n\t\ttotalRuns: {\n\t\t\ttype: Number,\n\t\t},\n\t\tpageOffset: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\thasDefaultHoverState: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tsearch: {\n\t\t\ttype: String,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst externalHooks = useExternalHooks();\n\t\treturn {\n\t\t\texternalHooks,\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tactiveColumn: -1,\n\t\t\tforceShowGrip: false,\n\t\t\tdraggedColumn: false,\n\t\t\tdraggingPath: null as null | string,\n\t\t\thoveringPath: null as null | string,\n\t\t\tmappingHintVisible: false,\n\t\t\tactiveRow: null as number | null,\n\t\t\tcolumnLimit: MAX_COLUMNS_LIMIT,\n\t\t\tcolumnLimitExceeded: false,\n\t\t};\n\t},\n\tmounted() {\n\t\tif (this.tableData && this.tableData.columns && this.$refs.draggable) {\n\t\t\tconst tbody = (this.$refs.draggable as DraggableRef).$refs.wrapper as HTMLElement;\n\t\t\tif (tbody) {\n\t\t\t\tthis.$emit('mounted', {\n\t\t\t\t\tavgRowHeight: tbody.offsetHeight / this.tableData.data.length,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\tcomputed: {\n\t\t...mapStores(useNDVStore, useWorkflowsStore),\n\t\thoveringItem(): NDVState['hoveringItem'] {\n\t\t\treturn this.ndvStore.hoveringItem;\n\t\t},\n\t\tpairedItemMappings(): { [itemId: string]: Set<string> } {\n\t\t\treturn this.workflowsStore.workflowExecutionPairedItemMappings;\n\t\t},\n\t\ttableData(): ITableData {\n\t\t\treturn this.convertToTable(this.inputData);\n\t\t},\n\t\tfocusedMappableInput(): string {\n\t\t\treturn this.ndvStore.focusedMappableInput;\n\t\t},\n\t\thighlight(): boolean {\n\t\t\treturn this.ndvStore.highlightDraggables;\n\t\t},\n\t},\n\tmethods: {\n\t\tshorten,\n\t\tisHoveringRow(row: number): boolean {\n\t\t\tif (row === this.activeRow) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst itemIndex = this.pageOffset + row;\n\t\t\tif (\n\t\t\t\titemIndex === 0 &&\n\t\t\t\t!this.hoveringItem &&\n\t\t\t\tthis.hasDefaultHoverState &&\n\t\t\t\tthis.distanceFromActive === 1\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tconst itemNodeId = getPairedItemId(\n\t\t\t\tthis.node?.name ?? '',\n\t\t\t\tthis.runIndex || 0,\n\t\t\t\tthis.outputIndex || 0,\n\t\t\t\titemIndex,\n\t\t\t);\n\t\t\tif (!this.hoveringItem || !this.pairedItemMappings[itemNodeId]) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst hoveringItemId = getPairedItemId(\n\t\t\t\tthis.hoveringItem.nodeName,\n\t\t\t\tthis.hoveringItem.runIndex,\n\t\t\t\tthis.hoveringItem.outputIndex,\n\t\t\t\tthis.hoveringItem.itemIndex,\n\t\t\t);\n\t\t\treturn this.pairedItemMappings[itemNodeId].has(hoveringItemId);\n\t\t},\n\t\tonMouseEnterCell(e: MouseEvent) {\n\t\t\tconst target = e.target;\n\t\t\tif (target && this.mappingEnabled) {\n\t\t\t\tconst col = (target as HTMLElement).dataset.col;\n\t\t\t\tif (col && !isNaN(parseInt(col, 10))) {\n\t\t\t\t\tthis.activeColumn = parseInt(col, 10);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (target) {\n\t\t\t\tconst row = (target as HTMLElement).dataset.row;\n\t\t\t\tif (row && !isNaN(parseInt(row, 10))) {\n\t\t\t\t\tthis.activeRow = parseInt(row, 10);\n\t\t\t\t\tthis.$emit('activeRowChanged', this.pageOffset + this.activeRow);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonMouseLeaveCell() {\n\t\t\tthis.activeColumn = -1;\n\t\t\tthis.activeRow = null;\n\t\t\tthis.$emit('activeRowChanged', null);\n\t\t},\n\t\tonMouseEnterKey(path: string[], colIndex: number) {\n\t\t\tthis.hoveringPath = this.getCellExpression(path, colIndex);\n\t\t},\n\t\tonMouseLeaveKey() {\n\t\t\tthis.hoveringPath = null;\n\t\t},\n\t\tisHovering(path: string[], colIndex: number) {\n\t\t\tconst expr = this.getCellExpression(path, colIndex);\n\n\t\t\treturn this.hoveringPath === expr;\n\t\t},\n\t\tgetExpression(column: string) {\n\t\t\tif (!this.node) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn getMappedExpression({\n\t\t\t\tnodeName: this.node.name,\n\t\t\t\tdistanceFromActive: this.distanceFromActive,\n\t\t\t\tpath: [column],\n\t\t\t});\n\t\t},\n\t\tgetPathNameFromTarget(el: HTMLElement) {\n\t\t\tif (!el) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\treturn el.dataset.name;\n\t\t},\n\t\tgetCellPathName(path: Array<string | number>, colIndex: number) {\n\t\t\tconst lastKey = path[path.length - 1];\n\t\t\tif (typeof lastKey === 'string') {\n\t\t\t\treturn lastKey;\n\t\t\t}\n\t\t\tif (path.length > 1) {\n\t\t\t\tconst prevKey = path[path.length - 2];\n\t\t\t\treturn `${prevKey}[${lastKey}]`;\n\t\t\t}\n\t\t\tconst column = this.tableData.columns[colIndex];\n\t\t\treturn `${column}[${lastKey}]`;\n\t\t},\n\t\tgetCellExpression(path: Array<string | number>, colIndex: number) {\n\t\t\tif (!this.node) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tconst column = this.tableData.columns[colIndex];\n\t\t\treturn getMappedExpression({\n\t\t\t\tnodeName: this.node.name,\n\t\t\t\tdistanceFromActive: this.distanceFromActive,\n\t\t\t\tpath: [column, ...path],\n\t\t\t});\n\t\t},\n\t\tisEmpty(value: unknown): boolean {\n\t\t\treturn (\n\t\t\t\tvalue === '' ||\n\t\t\t\t(Array.isArray(value) && value.length === 0) ||\n\t\t\t\t(typeof value === 'object' && value !== null && Object.keys(value).length === 0) ||\n\t\t\t\tvalue === null ||\n\t\t\t\tvalue === undefined\n\t\t\t);\n\t\t},\n\t\tgetValueToRender(value: unknown): string {\n\t\t\tif (value === '') {\n\t\t\t\treturn this.$locale.baseText('runData.emptyString');\n\t\t\t}\n\t\t\tif (typeof value === 'string') {\n\t\t\t\treturn value.replaceAll('\\n', '\\\\n');\n\t\t\t}\n\t\t\tif (Array.isArray(value) && value.length === 0) {\n\t\t\t\treturn this.$locale.baseText('runData.emptyArray');\n\t\t\t}\n\t\t\tif (typeof value === 'object' && value !== null && Object.keys(value).length === 0) {\n\t\t\t\treturn this.$locale.baseText('runData.emptyObject');\n\t\t\t}\n\t\t\tif (value === null || value === undefined) {\n\t\t\t\treturn `[${value}]`;\n\t\t\t}\n\t\t\tif (value === true || value === false || typeof value === 'number') {\n\t\t\t\treturn value.toString();\n\t\t\t}\n\t\t\treturn JSON.stringify(value);\n\t\t},\n\t\tonDragStart() {\n\t\t\tthis.draggedColumn = true;\n\t\t\tthis.ndvStore.resetMappingTelemetry();\n\t\t},\n\t\tonCellDragStart(el: HTMLElement) {\n\t\t\tif (el?.dataset.value) {\n\t\t\t\tthis.draggingPath = el.dataset.value;\n\t\t\t}\n\n\t\t\tthis.onDragStart();\n\t\t},\n\t\tonCellDragEnd(el: HTMLElement) {\n\t\t\tthis.draggingPath = null;\n\n\t\t\tthis.onDragEnd(el.dataset.name || '', 'tree', el.dataset.depth || '0');\n\t\t},\n\t\tisDraggingKey(path: Array<string | number>, colIndex: number) {\n\t\t\tif (!this.draggingPath) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn this.draggingPath === this.getCellExpression(path, colIndex);\n\t\t},\n\t\tonDragEnd(column: string, src: string, depth = '0') {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst mappingTelemetry = this.ndvStore.mappingTelemetry;\n\t\t\t\tconst telemetryPayload = {\n\t\t\t\t\tsrc_node_type: this.node.type,\n\t\t\t\t\tsrc_field_name: column,\n\t\t\t\t\tsrc_nodes_back: this.distanceFromActive,\n\t\t\t\t\tsrc_run_index: this.runIndex,\n\t\t\t\t\tsrc_runs_total: this.totalRuns,\n\t\t\t\t\tsrc_field_nest_level: parseInt(depth, 10),\n\t\t\t\t\tsrc_view: 'table',\n\t\t\t\t\tsrc_element: src,\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\t...mappingTelemetry,\n\t\t\t\t};\n\n\t\t\t\tvoid this.externalHooks.run('runDataTable.onDragEnd', telemetryPayload);\n\n\t\t\t\tthis.$telemetry.track('User dragged data for mapping', telemetryPayload, {\n\t\t\t\t\twithPostHog: true,\n\t\t\t\t});\n\t\t\t}, 1000); // ensure dest data gets set if drop\n\t\t},\n\t\tisSimple(data: unknown): boolean {\n\t\t\treturn (\n\t\t\t\ttypeof data !== 'object' ||\n\t\t\t\tdata === null ||\n\t\t\t\t(Array.isArray(data) && data.length === 0) ||\n\t\t\t\t(typeof data === 'object' && Object.keys(data).length === 0)\n\t\t\t);\n\t\t},\n\t\thasJsonInColumn(colIndex: number): boolean {\n\t\t\treturn this.tableData.hasJson[this.tableData.columns[colIndex]];\n\t\t},\n\t\tconvertToTable(inputData: INodeExecutionData[]): ITableData {\n\t\t\tconst tableData: GenericValue[][] = [];\n\t\t\tconst tableColumns: string[] = [];\n\t\t\tlet leftEntryColumns: string[], entryRows: GenericValue[];\n\t\t\t// Go over all entries\n\t\t\tlet entry: IDataObject;\n\t\t\tconst hasJson: { [key: string]: boolean } = {};\n\t\t\tinputData.forEach((data) => {\n\t\t\t\tif (!data.hasOwnProperty('json')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tentry = data.json;\n\n\t\t\t\t// Go over all keys of entry\n\t\t\t\tentryRows = [];\n\t\t\t\tconst entryColumns = Object.keys(entry || {});\n\n\t\t\t\tif (entryColumns.length > MAX_COLUMNS_LIMIT) {\n\t\t\t\t\tthis.columnLimitExceeded = true;\n\t\t\t\t\tleftEntryColumns = entryColumns.slice(0, MAX_COLUMNS_LIMIT);\n\t\t\t\t} else {\n\t\t\t\t\tleftEntryColumns = entryColumns;\n\t\t\t\t}\n\n\t\t\t\t// Go over all the already existing column-keys\n\t\t\t\ttableColumns.forEach((key) => {\n\t\t\t\t\tif (entry.hasOwnProperty(key)) {\n\t\t\t\t\t\t// Entry does have key so add its value\n\t\t\t\t\t\tentryRows.push(entry[key]);\n\t\t\t\t\t\t// Remove key so that we know that it got added\n\t\t\t\t\t\tleftEntryColumns.splice(leftEntryColumns.indexOf(key), 1);\n\n\t\t\t\t\t\thasJson[key] =\n\t\t\t\t\t\t\thasJson[key] ||\n\t\t\t\t\t\t\t(typeof entry[key] === 'object' && Object.keys(entry[key] || {}).length > 0) ||\n\t\t\t\t\t\t\tfalse;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Entry does not have key so add undefined\n\t\t\t\t\t\tentryRows.push(undefined);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Go over all the columns the entry has but did not exist yet\n\t\t\t\tleftEntryColumns.forEach((key) => {\n\t\t\t\t\t// Add the key for all runs in the future\n\t\t\t\t\ttableColumns.push(key);\n\t\t\t\t\t// Add the value\n\t\t\t\t\tentryRows.push(entry[key]);\n\t\t\t\t\thasJson[key] =\n\t\t\t\t\t\thasJson[key] ||\n\t\t\t\t\t\t(typeof entry[key] === 'object' && Object.keys(entry[key] || {}).length > 0) ||\n\t\t\t\t\t\tfalse;\n\t\t\t\t});\n\n\t\t\t\t// Add the data of the entry\n\t\t\t\ttableData.push(entryRows);\n\t\t\t});\n\n\t\t\t// Make sure that all entry-rows have the same length\n\t\t\ttableData.forEach((entryRows) => {\n\t\t\t\tif (tableColumns.length > entryRows.length) {\n\t\t\t\t\t// Has fewer entries so add the missing ones\n\t\t\t\t\tentryRows.push(...new Array(tableColumns.length - entryRows.length));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\thasJson,\n\t\t\t\tcolumns: tableColumns,\n\t\t\t\tdata: tableData,\n\t\t\t};\n\t\t},\n\t\tswitchToJsonView() {\n\t\t\tthis.$emit('displayModeChange', 'json');\n\t\t},\n\t},\n\twatch: {\n\t\tfocusedMappableInput(curr: boolean) {\n\t\t\tsetTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tthis.forceShowGrip = !!this.focusedMappableInput;\n\t\t\t\t},\n\t\t\t\tcurr ? 300 : 150,\n\t\t\t);\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.dataDisplay {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tpadding-left: var(--spacing-s);\n\tright: 0;\n\toverflow-y: auto;\n\tline-height: 1.5;\n\tword-break: normal;\n\theight: 100%;\n\tpadding-bottom: var(--spacing-3xl);\n}\n\n.table {\n\tborder-collapse: separate;\n\ttext-align: left;\n\twidth: calc(100%);\n\tfont-size: var(--font-size-s);\n\n\tth {\n\t\tbackground-color: var(--color-background-base);\n\t\tborder-top: var(--border-base);\n\t\tborder-bottom: var(--border-base);\n\t\tborder-left: var(--border-base);\n\t\tposition: sticky;\n\t\ttop: 0;\n\t\tcolor: var(--color-text-dark);\n\t\tz-index: 1;\n\t}\n\n\ttd {\n\t\tvertical-align: top;\n\t\tpadding: var(--spacing-2xs) var(--spacing-2xs) var(--spacing-2xs) var(--spacing-3xs);\n\t\tborder-bottom: var(--border-base);\n\t\tborder-left: var(--border-base);\n\t\toverflow-wrap: break-word;\n\t\twhite-space: pre-wrap;\n\t}\n\n\ttd:first-child,\n\ttd:nth-last-child(2) {\n\t\tposition: relative;\n\t\tz-index: 0;\n\n\t\t&:after {\n\t\t\t// add border without shifting content\n\t\t\tcontent: '';\n\t\t\tposition: absolute;\n\t\t\theight: 100%;\n\t\t\twidth: 2px;\n\t\t\ttop: 0;\n\t\t}\n\t}\n\n\ttd:nth-last-child(2):after {\n\t\tright: -1px;\n\t}\n\n\ttd:first-child:after {\n\t\tleft: -1px;\n\t}\n\n\tth:last-child,\n\ttd:last-child {\n\t\tborder-right: var(--border-base);\n\t}\n}\n\n.nodeClass {\n\tmargin-bottom: var(--spacing-5xs);\n}\n\n.emptyCell {\n\theight: 32px;\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: var(--spacing-2xs);\n\n\tspan {\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tflex-grow: 1;\n\t}\n}\n\n.draggableHeader {\n\t&:hover {\n\t\tcursor: grab;\n\t\tbackground-color: var(--color-foreground-base);\n\n\t\t.dragButton {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.highlight .draggableHeader {\n\tcolor: var(--color-primary);\n}\n\n.draggingHeader {\n\tcolor: var(--color-primary);\n\tbackground-color: var(--color-primary-tint-2);\n}\n\n.activeHeader {\n\t.dragButton {\n\t\topacity: 1;\n\t}\n}\n\n.dragButton {\n\topacity: 0;\n\tmargin-left: var(--spacing-2xs);\n}\n\n.dataKey {\n\tcolor: var(--color-text-dark);\n\tline-height: 1.7;\n\tfont-weight: var(--font-weight-bold);\n\tborder-radius: var(--border-radius-base);\n\tpadding: 0 var(--spacing-5xs) 0 var(--spacing-5xs);\n\tmargin-right: var(--spacing-5xs);\n}\n\n.value {\n\tline-height: var(--font-line-height-regular);\n}\n\n.nestedValue {\n\tcomposes: value;\n\tmargin-left: var(--spacing-4xs);\n}\n\n.mappable {\n\tcursor: grab;\n}\n\n.empty {\n\tcolor: var(--color-danger);\n}\n\n.limitColWidth {\n\tmax-width: 300px;\n}\n\n.minColWidth {\n\tmin-width: 240px;\n}\n\n.hoveringKey {\n\tbackground-color: var(--color-foreground-base);\n}\n\n.draggingKey {\n\tbackground-color: var(--color-primary-tint-2);\n}\n\n.tableRightMargin {\n\t// becomes necessary with large tables\n\tbackground-color: var(--color-background-base) !important;\n\twidth: var(--spacing-s);\n\tborder-right: none !important;\n\tborder-top: none !important;\n\tborder-bottom: none !important;\n}\n\n.hoveringRow {\n\ttd:first-child:after,\n\ttd:nth-last-child(2):after {\n\t\tbackground-color: var(--color-secondary);\n\t}\n}\n\n.warningTooltip {\n\tcolor: var(--color-warning);\n}\n</style>\n"],"names":["MAX_COLUMNS_LIMIT","_sfc_main","defineComponent","Draggable","MappingPill","TextWithHighlights","useExternalHooks","tbody","mapStores","useNDVStore","useWorkflowsStore","shorten","row","itemIndex","itemNodeId","getPairedItemId","_a","hoveringItemId","target","col","path","colIndex","expr","column","getMappedExpression","el","lastKey","value","src","depth","mappingTelemetry","telemetryPayload","data","inputData","tableData","tableColumns","leftEntryColumns","entryRows","entry","hasJson","entryColumns","key","curr","_hoisted_1","_hoisted_2","_createElementVNode","_imports_0","_hoisted_3","_hoisted_4","_resolveComponent","_ctx","_openBlock","_createElementBlock","$style","_normalizeClass","_Fragment","_renderList","index1","_cache","args","_component_n8n_info_tip","$locale","_createTextVNode","_toDisplayString","i","_createVNode","mappingEnabled","_withCtx","getExpression","onDragStart","canDrop","_component_MappingPill","isDragging","activeColumn","forceShowGrip","search","columnLimitExceeded","_component_n8n_tooltip","_component_i18n_t","_component_font_awesome_icon","_createCommentVNode","_component_Draggable","onCellDragStart","onCellDragEnd","getPathNameFromTarget","index2","_createBlock","_component_TextWithHighlights","_component_n8n_tree","label","isDraggingKey","getCellExpression","onMouseEnterKey","_hoisted_5","getValueToRender","_hoisted_6"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{G as u,aH as l,r as c,Z as f,l as g,M as h}from"./vendor-Dv5OeN6t.js";import{A as b}from"./AuthView-
|
|
2
|
-
//# sourceMappingURL=SamlOnboarding-
|
|
1
|
+
import{G as u,aH as l,r as c,Z as f,l as g,M as h}from"./vendor-Dv5OeN6t.js";import{A as b}from"./AuthView-Bpw90ooz.js";import{cG as d,N as t,V as x}from"./index-DEwaaDne.js";import{E as N}from"./n8n-B6cfQsVX.js";import"./pinia-BAhPp3pQ.js";import"./axios-Mm4CS0gO.js";import"./flatted-DN8lQ2XG.js";import"./@vueuse/core-9E8Shwsg.js";import"./lodash-es-BxV-E8rt.js";import"./@n8n/permissions-BxxteU-C.js";import"./dateformat-B9ocXky7.js";import"./vue-i18n-Delvyc9x.js";import"./uuid-SoommWqA.js";import"./luxon-CLwAIbs0.js";import"./@n8n/codemirror-lang-sql-x14jMqbG.js";import"./@lezer/common-B6ct0j_v.js";import"./prettier-bS6l4Vb1.js";import"./@jsplumb/util-DS-9vq_E.js";import"./@jsplumb/core-CVBraiyY.js";import"./@jsplumb/common-CF-b-6-M.js";import"./@jsplumb/connector-bezier-BGU0Ovbw.js";import"./@jsplumb/browser-ui-BVF2KoJK.js";import"./codemirror-lang-html-n8n-DcTmlMkf.js";import"./@n8n/codemirror-lang-Qkdx7NoQ.js";import"./esprima-next-nhoSXAeq.js";import"./fast-json-stable-stringify-LluJPcs3.js";import"./timeago.js-CiyKClrF.js";import"./qrcode.vue-BGkPba5A.js";import"./vue3-touch-events-mV0oX_Sl.js";import"./chart.js-343vZi4M.js";const Q=u({__name:"SamlOnboarding",setup(_){var a,o;const s=l(),e=d(),r=c(!1),p=f({title:t.baseText("auth.signup.setupYourAccount"),buttonText:t.baseText("auth.signup.finishAccountSetup"),inputs:[{name:"firstName",initialValue:(a=e.userData)==null?void 0:a.firstName,properties:{label:t.baseText("auth.firstName"),maxlength:32,required:!0,autocomplete:"given-name",capitalize:!0}},{name:"lastName",initialValue:(o=e.userData)==null?void 0:o.lastName,properties:{label:t.baseText("auth.lastName"),maxlength:32,required:!0,autocomplete:"family-name",capitalize:!0}}]}),n=async i=>{try{r.value=!0,await e.updateUser(i),await s.push({name:x.HOMEPAGE})}catch(m){r.value=!1,N.error({title:"Error",message:m.message,position:"bottom-right"})}};return(i,m)=>(g(),h(b,{form:p,"form-loading":r.value,onSubmit:n},null,8,["form","form-loading"]))}});export{Q as default};
|
|
2
|
+
//# sourceMappingURL=SamlOnboarding-DS2hMTul.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SamlOnboarding-
|
|
1
|
+
{"version":3,"file":"SamlOnboarding-DS2hMTul.js","sources":["../../src/views/SamlOnboarding.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { reactive, ref } from 'vue';\nimport { useRouter } from 'vue-router';\nimport { ElNotification as Notification } from 'element-plus';\nimport type { IFormBoxConfig } from 'n8n-design-system';\nimport AuthView from '@/views/AuthView.vue';\nimport { i18n as locale } from '@/plugins/i18n';\nimport { useSSOStore } from '@/stores/sso.store';\nimport { VIEWS } from '@/constants';\n\nconst router = useRouter();\nconst ssoStore = useSSOStore();\n\nconst loading = ref(false);\nconst FORM_CONFIG: IFormBoxConfig = reactive({\n\ttitle: locale.baseText('auth.signup.setupYourAccount'),\n\tbuttonText: locale.baseText('auth.signup.finishAccountSetup'),\n\tinputs: [\n\t\t{\n\t\t\tname: 'firstName',\n\t\t\tinitialValue: ssoStore.userData?.firstName,\n\t\t\tproperties: {\n\t\t\t\tlabel: locale.baseText('auth.firstName'),\n\t\t\t\tmaxlength: 32,\n\t\t\t\trequired: true,\n\t\t\t\tautocomplete: 'given-name',\n\t\t\t\tcapitalize: true,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: 'lastName',\n\t\t\tinitialValue: ssoStore.userData?.lastName,\n\t\t\tproperties: {\n\t\t\t\tlabel: locale.baseText('auth.lastName'),\n\t\t\t\tmaxlength: 32,\n\t\t\t\trequired: true,\n\t\t\t\tautocomplete: 'family-name',\n\t\t\t\tcapitalize: true,\n\t\t\t},\n\t\t},\n\t],\n});\nconst onSubmit = async (values: { firstName: string; lastName: string }) => {\n\ttry {\n\t\tloading.value = true;\n\t\tawait ssoStore.updateUser(values);\n\t\tawait router.push({ name: VIEWS.HOMEPAGE });\n\t} catch (error) {\n\t\tloading.value = false;\n\t\tNotification.error({\n\t\t\ttitle: 'Error',\n\t\t\tmessage: error.message,\n\t\t\tposition: 'bottom-right',\n\t\t});\n\t}\n};\n</script>\n\n<template>\n\t<AuthView :form=\"FORM_CONFIG\" :form-loading=\"loading\" @submit=\"onSubmit\" />\n</template>\n"],"names":["router","useRouter","ssoStore","useSSOStore","loading","ref","FORM_CONFIG","reactive","locale","_a","_b","onSubmit","values","VIEWS","error","Notification"],"mappings":"irCAUA,MAAMA,EAASC,IACTC,EAAWC,IAEXC,EAAUC,EAAI,EAAK,EACnBC,EAA8BC,EAAS,CAC5C,MAAOC,EAAO,SAAS,8BAA8B,EACrD,WAAYA,EAAO,SAAS,gCAAgC,EAC5D,OAAQ,CACP,CACC,KAAM,YACN,cAAcC,EAAAP,EAAS,WAAT,YAAAO,EAAmB,UACjC,WAAY,CACX,MAAOD,EAAO,SAAS,gBAAgB,EACvC,UAAW,GACX,SAAU,GACV,aAAc,aACd,WAAY,EACb,CACD,EACA,CACC,KAAM,WACN,cAAcE,EAAAR,EAAS,WAAT,YAAAQ,EAAmB,SACjC,WAAY,CACX,MAAOF,EAAO,SAAS,eAAe,EACtC,UAAW,GACX,SAAU,GACV,aAAc,cACd,WAAY,EACb,CACD,CACD,CAAA,CACA,EACKG,EAAW,MAAOC,GAAoD,CACvE,GAAA,CACHR,EAAQ,MAAQ,GACV,MAAAF,EAAS,WAAWU,CAAM,EAChC,MAAMZ,EAAO,KAAK,CAAE,KAAMa,EAAM,SAAU,QAClCC,EAAO,CACfV,EAAQ,MAAQ,GAChBW,EAAa,MAAM,CAClB,MAAO,QACP,QAASD,EAAM,QACf,SAAU,cAAA,CACV,CACF,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{aU as T,u as k,G as C,i as g,cP as S,R as A,a as U,b as v,l as P,z as x}from"./index-
|
|
2
|
-
//# sourceMappingURL=SettingsApiView-
|
|
1
|
+
import{aU as T,u as k,G as C,i as g,cP as S,R as A,a as U,b as v,l as P,z as x}from"./index-DEwaaDne.js";import{m as I}from"./pinia-BAhPp3pQ.js";import{G as K,l,m as h,p as t,U as s,O as i,S as n,T as a,J as E,I as r,M as b,R as M,ag as o}from"./vendor-Dv5OeN6t.js";import{_ as D}from"./n8n-B6cfQsVX.js";import"./axios-Mm4CS0gO.js";import"./flatted-DN8lQ2XG.js";import"./@vueuse/core-9E8Shwsg.js";import"./lodash-es-BxV-E8rt.js";import"./@n8n/permissions-BxxteU-C.js";import"./dateformat-B9ocXky7.js";import"./vue-i18n-Delvyc9x.js";import"./uuid-SoommWqA.js";import"./luxon-CLwAIbs0.js";import"./@n8n/codemirror-lang-sql-x14jMqbG.js";import"./@lezer/common-B6ct0j_v.js";import"./prettier-bS6l4Vb1.js";import"./@jsplumb/util-DS-9vq_E.js";import"./@jsplumb/core-CVBraiyY.js";import"./@jsplumb/common-CF-b-6-M.js";import"./@jsplumb/connector-bezier-BGU0Ovbw.js";import"./@jsplumb/browser-ui-BVF2KoJK.js";import"./codemirror-lang-html-n8n-DcTmlMkf.js";import"./@n8n/codemirror-lang-Qkdx7NoQ.js";import"./esprima-next-nhoSXAeq.js";import"./fast-json-stable-stringify-LluJPcs3.js";import"./timeago.js-CiyKClrF.js";import"./qrcode.vue-BGkPba5A.js";import"./vue3-touch-events-mV0oX_Sl.js";import"./chart.js-343vZi4M.js";const z=K({name:"SettingsApiView",components:{CopyInput:T},setup(){return{...k(),...C(),...g()}},data(){return{loading:!1,mounted:!1,apiKey:"",swaggerUIEnabled:!1,apiDocsURL:""}},mounted(){if(!this.isPublicApiEnabled)return;this.getApiKey();const e=this.rootStore.baseUrl,c=this.settingsStore.publicApiPath,p=this.settingsStore.publicApiLatestVersion;this.swaggerUIEnabled=this.settingsStore.isSwaggerUIEnabled,this.apiDocsURL=this.swaggerUIEnabled?`${e}${c}/v${p}/docs`:`https://${S}/api/api-reference/`},computed:{...I(P,v,U,A,g),currentUser(){return this.usersStore.currentUser},isTrialing(){return this.cloudPlanStore.userIsTrialing},isLoadingCloudPlans(){return this.cloudPlanStore.state.loadingPlan},isPublicApiEnabled(){return this.settingsStore.isPublicApiEnabled}},methods:{onUpgrade(){this.uiStore.goToUpgrade("settings-n8n-api","upgrade-api","redirect")},async showDeleteModal(){await this.confirm(this.$locale.baseText("settings.api.delete.description"),this.$locale.baseText("settings.api.delete.title"),{confirmButtonText:this.$locale.baseText("settings.api.delete.button"),cancelButtonText:this.$locale.baseText("generic.cancel")})===x&&await this.deleteApiKey()},async getApiKey(){try{this.apiKey=await this.settingsStore.getApiKey()||""}catch(e){this.showError(e,this.$locale.baseText("settings.api.view.error"))}finally{this.mounted=!0}},async createApiKey(){this.loading=!0;try{this.apiKey=await this.settingsStore.createApiKey()||""}catch(e){this.showError(e,this.$locale.baseText("settings.api.create.error"))}finally{this.loading=!1,this.$telemetry.track("User clicked create API key button")}},async deleteApiKey(){try{await this.settingsStore.deleteApiKey(),this.showMessage({title:this.$locale.baseText("settings.api.delete.toast"),type:"success"}),this.apiKey=""}catch(e){this.showError(e,this.$locale.baseText("settings.api.delete.error"))}finally{this.$telemetry.track("User clicked delete API key button")}},onCopy(){this.$telemetry.track("User clicked copy API key button")}}}),V="_container_1xc1f_1",L="_header_1xc1f_5",R="_card_1xc1f_14",B="_hint_1xc1f_25",N={container:V,header:L,card:R,delete:"_delete_1xc1f_18",hint:B},O={key:0},G={class:"mb-s"},F=["textContent"],J=["textContent"];function j(e,c,p,H,Q,W){const m=o("n8n-heading"),y=o("i18n-t"),f=o("n8n-info-tip"),d=o("n8n-link"),$=o("CopyInput"),_=o("n8n-card"),w=o("n8n-text"),u=o("n8n-action-box");return l(),h("div",{class:r(e.$style.container)},[t("div",{class:r(e.$style.header)},[s(m,{size:"2xlarge"},{default:i(()=>[n(a(e.$locale.baseText("settings.api"))+" ",1),t("span",{style:E({fontSize:"var(--font-size-s)",color:"var(--color-text-light)"})}," ("+a(e.$locale.baseText("generic.beta"))+") ",5)]),_:1})],2),e.apiKey?(l(),h("div",O,[t("p",G,[s(f,{bold:!1},{default:i(()=>[s(y,{keypath:"settings.api.view.info",tag:"span"},{apiAction:i(()=>[t("a",{href:"https://docs.n8n.io/api",target:"_blank",textContent:a(e.$locale.baseText("settings.api.view.info.api"))},null,8,F)]),webhookAction:i(()=>[t("a",{href:"https://docs.n8n.io/integrations/core-nodes/n8n-nodes-base.webhook/",target:"_blank",textContent:a(e.$locale.baseText("settings.api.view.info.webhook"))},null,8,J)]),_:1})]),_:1})]),s(_,{class:r(["mb-4xs",e.$style.card])},{default:i(()=>[t("span",{class:r(e.$style.delete)},[s(d,{bold:!0,onClick:e.showDeleteModal},{default:i(()=>[n(a(e.$locale.baseText("generic.delete")),1)]),_:1},8,["onClick"])],2),t("div",null,[s($,{label:e.$locale.baseText("settings.api.view.myKey"),value:e.apiKey,"copy-button-text":e.$locale.baseText("generic.clickToCopy"),"toast-title":e.$locale.baseText("settings.api.view.copy.toast"),"redact-value":!0,onCopy:e.onCopy},null,8,["label","value","copy-button-text","toast-title","onCopy"])])]),_:1},8,["class"]),t("div",{class:r(e.$style.hint)},[s(w,{size:"small"},{default:i(()=>[n(a(e.$locale.baseText(`settings.api.view.${e.swaggerUIEnabled?"tryapi":"more-details"}`)),1)]),_:1}),n(" "+a(" ")+" "),s(d,{to:e.apiDocsURL,"new-window":!0,size:"small"},{default:i(()=>[n(a(e.$locale.baseText(`settings.api.view.${e.swaggerUIEnabled?"apiPlayground":"external-docs"}`)),1)]),_:1},8,["to"])],2)])):!e.isPublicApiEnabled&&e.isTrialing?(l(),b(u,{key:1,"data-test-id":"public-api-upgrade-cta",heading:e.$locale.baseText("settings.api.trial.upgradePlan.title"),description:e.$locale.baseText("settings.api.trial.upgradePlan.description"),"button-text":e.$locale.baseText("settings.api.trial.upgradePlan.cta"),"onClick:button":e.onUpgrade},null,8,["heading","description","button-text","onClick:button"])):e.mounted&&!e.isLoadingCloudPlans?(l(),b(u,{key:2,"button-text":e.$locale.baseText(e.loading?"settings.api.create.button.loading":"settings.api.create.button"),description:e.$locale.baseText("settings.api.create.description"),"onClick:button":e.createApiKey},null,8,["button-text","description","onClick:button"])):M("",!0)],2)}const q={$style:N},Ae=D(z,[["render",j],["__cssModules",q]]);export{Ae as default};
|
|
2
|
+
//# sourceMappingURL=SettingsApiView-BEBQwqa4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsApiView-BSPOTc-1.js","sources":["../../src/views/SettingsApiView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.container\">\n\t\t<div :class=\"$style.header\">\n\t\t\t<n8n-heading size=\"2xlarge\">\n\t\t\t\t{{ $locale.baseText('settings.api') }}\n\t\t\t\t<span :style=\"{ fontSize: 'var(--font-size-s)', color: 'var(--color-text-light)' }\">\n\t\t\t\t\t({{ $locale.baseText('generic.beta') }})\n\t\t\t\t</span>\n\t\t\t</n8n-heading>\n\t\t</div>\n\n\t\t<div v-if=\"apiKey\">\n\t\t\t<p class=\"mb-s\">\n\t\t\t\t<n8n-info-tip :bold=\"false\">\n\t\t\t\t\t<i18n-t keypath=\"settings.api.view.info\" tag=\"span\">\n\t\t\t\t\t\t<template #apiAction>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://docs.n8n.io/api\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tv-text=\"$locale.baseText('settings.api.view.info.api')\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #webhookAction>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://docs.n8n.io/integrations/core-nodes/n8n-nodes-base.webhook/\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tv-text=\"$locale.baseText('settings.api.view.info.webhook')\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</i18n-t>\n\t\t\t\t</n8n-info-tip>\n\t\t\t</p>\n\t\t\t<n8n-card class=\"mb-4xs\" :class=\"$style.card\">\n\t\t\t\t<span :class=\"$style.delete\">\n\t\t\t\t\t<n8n-link :bold=\"true\" @click=\"showDeleteModal\">\n\t\t\t\t\t\t{{ $locale.baseText('generic.delete') }}\n\t\t\t\t\t</n8n-link>\n\t\t\t\t</span>\n\t\t\t\t<div>\n\t\t\t\t\t<CopyInput\n\t\t\t\t\t\t:label=\"$locale.baseText('settings.api.view.myKey')\"\n\t\t\t\t\t\t:value=\"apiKey\"\n\t\t\t\t\t\t:copy-button-text=\"$locale.baseText('generic.clickToCopy')\"\n\t\t\t\t\t\t:toast-title=\"$locale.baseText('settings.api.view.copy.toast')\"\n\t\t\t\t\t\t:redact-value=\"true\"\n\t\t\t\t\t\t@copy=\"onCopy\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</n8n-card>\n\t\t\t<div :class=\"$style.hint\">\n\t\t\t\t<n8n-text size=\"small\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText(`settings.api.view.${swaggerUIEnabled ? 'tryapi' : 'more-details'}`)\n\t\t\t\t\t}}\n\t\t\t\t</n8n-text>\n\t\t\t\t{{ ' ' }}\n\t\t\t\t<n8n-link :to=\"apiDocsURL\" :new-window=\"true\" size=\"small\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText(\n\t\t\t\t\t\t\t`settings.api.view.${swaggerUIEnabled ? 'apiPlayground' : 'external-docs'}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t</n8n-link>\n\t\t\t</div>\n\t\t</div>\n\t\t<n8n-action-box\n\t\t\tv-else-if=\"!isPublicApiEnabled && isTrialing\"\n\t\t\tdata-test-id=\"public-api-upgrade-cta\"\n\t\t\t:heading=\"$locale.baseText('settings.api.trial.upgradePlan.title')\"\n\t\t\t:description=\"$locale.baseText('settings.api.trial.upgradePlan.description')\"\n\t\t\t:button-text=\"$locale.baseText('settings.api.trial.upgradePlan.cta')\"\n\t\t\t@click:button=\"onUpgrade\"\n\t\t/>\n\t\t<n8n-action-box\n\t\t\tv-else-if=\"mounted && !isLoadingCloudPlans\"\n\t\t\t:button-text=\"\n\t\t\t\t$locale.baseText(\n\t\t\t\t\tloading ? 'settings.api.create.button.loading' : 'settings.api.create.button',\n\t\t\t\t)\n\t\t\t\"\n\t\t\t:description=\"$locale.baseText('settings.api.create.description')\"\n\t\t\t@click:button=\"createApiKey\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { IUser } from '@/Interface';\nimport { useToast } from '@/composables/useToast';\nimport { useMessage } from '@/composables/useMessage';\n\nimport CopyInput from '@/components/CopyInput.vue';\nimport { mapStores } from 'pinia';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useRootStore } from '@/stores/n8nRoot.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useCloudPlanStore } from '@/stores/cloudPlan.store';\nimport { DOCS_DOMAIN, MODAL_CONFIRM } from '@/constants';\n\nexport default defineComponent({\n\tname: 'SettingsApiView',\n\tcomponents: {\n\t\tCopyInput,\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t\t...useUIStore(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tmounted: false,\n\t\t\tapiKey: '',\n\t\t\tswaggerUIEnabled: false,\n\t\t\tapiDocsURL: '',\n\t\t};\n\t},\n\tmounted() {\n\t\tif (!this.isPublicApiEnabled) return;\n\n\t\tvoid this.getApiKey();\n\t\tconst baseUrl = this.rootStore.baseUrl;\n\t\tconst apiPath = this.settingsStore.publicApiPath;\n\t\tconst latestVersion = this.settingsStore.publicApiLatestVersion;\n\t\tthis.swaggerUIEnabled = this.settingsStore.isSwaggerUIEnabled;\n\t\tthis.apiDocsURL = this.swaggerUIEnabled\n\t\t\t? `${baseUrl}${apiPath}/v${latestVersion}/docs`\n\t\t\t: `https://${DOCS_DOMAIN}/api/api-reference/`;\n\t},\n\tcomputed: {\n\t\t...mapStores(useRootStore, useSettingsStore, useUsersStore, useCloudPlanStore, useUIStore),\n\t\tcurrentUser(): IUser | null {\n\t\t\treturn this.usersStore.currentUser;\n\t\t},\n\t\tisTrialing(): boolean {\n\t\t\treturn this.cloudPlanStore.userIsTrialing;\n\t\t},\n\t\tisLoadingCloudPlans(): boolean {\n\t\t\treturn this.cloudPlanStore.state.loadingPlan;\n\t\t},\n\t\tisPublicApiEnabled(): boolean {\n\t\t\treturn this.settingsStore.isPublicApiEnabled;\n\t\t},\n\t},\n\tmethods: {\n\t\tonUpgrade() {\n\t\t\tvoid this.uiStore.goToUpgrade('settings-n8n-api', 'upgrade-api', 'redirect');\n\t\t},\n\t\tasync showDeleteModal() {\n\t\t\tconst confirmed = await this.confirm(\n\t\t\t\tthis.$locale.baseText('settings.api.delete.description'),\n\t\t\t\tthis.$locale.baseText('settings.api.delete.title'),\n\t\t\t\t{\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText('settings.api.delete.button'),\n\t\t\t\t\tcancelButtonText: this.$locale.baseText('generic.cancel'),\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (confirmed === MODAL_CONFIRM) {\n\t\t\t\tawait this.deleteApiKey();\n\t\t\t}\n\t\t},\n\t\tasync getApiKey() {\n\t\t\ttry {\n\t\t\t\tthis.apiKey = (await this.settingsStore.getApiKey()) || '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.view.error'));\n\t\t\t} finally {\n\t\t\t\tthis.mounted = true;\n\t\t\t}\n\t\t},\n\t\tasync createApiKey() {\n\t\t\tthis.loading = true;\n\n\t\t\ttry {\n\t\t\t\tthis.apiKey = (await this.settingsStore.createApiKey()) || '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.create.error'));\n\t\t\t} finally {\n\t\t\t\tthis.loading = false;\n\t\t\t\tthis.$telemetry.track('User clicked create API key button');\n\t\t\t}\n\t\t},\n\t\tasync deleteApiKey() {\n\t\t\ttry {\n\t\t\t\tawait this.settingsStore.deleteApiKey();\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: this.$locale.baseText('settings.api.delete.toast'),\n\t\t\t\t\ttype: 'success',\n\t\t\t\t});\n\t\t\t\tthis.apiKey = '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.delete.error'));\n\t\t\t} finally {\n\t\t\t\tthis.$telemetry.track('User clicked delete API key button');\n\t\t\t}\n\t\t},\n\t\tonCopy() {\n\t\t\tthis.$telemetry.track('User clicked copy API key button');\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.container {\n\t> * {\n\t\tmargin-bottom: var(--spacing-2xl);\n\t}\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\twhite-space: nowrap;\n\n\t*:first-child {\n\t\tflex-grow: 1;\n\t}\n}\n\n.card {\n\tposition: relative;\n}\n\n.delete {\n\tposition: absolute;\n\tdisplay: inline-block;\n\ttop: var(--spacing-s);\n\tright: var(--spacing-s);\n}\n\n.hint {\n\tcolor: var(--color-text-light);\n}\n</style>\n"],"names":["_sfc_main","defineComponent","CopyInput","useToast","useMessage","useUIStore","baseUrl","apiPath","latestVersion","DOCS_DOMAIN","mapStores","useRootStore","useSettingsStore","useUsersStore","useCloudPlanStore","MODAL_CONFIRM","error","_hoisted_1","_hoisted_2","_resolveComponent","_normalizeClass","_ctx","_createVNode","_component_n8n_heading","$locale","_withCtx","_createTextVNode","_toDisplayString","_createElementVNode","apiKey","_openBlock","_component_n8n_info_tip","_component_i18n_t","_hoisted_3","_hoisted_4","showDeleteModal","onCopy","_component_n8n_text","apiDocsURL","_component_n8n_link","swaggerUIEnabled","isPublicApiEnabled","_component_n8n_action_box","onUpgrade","mounted","isLoadingCloudPlans","_createBlock","loading","_createCommentVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SettingsApiView-BEBQwqa4.js","sources":["../../src/views/SettingsApiView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.container\">\n\t\t<div :class=\"$style.header\">\n\t\t\t<n8n-heading size=\"2xlarge\">\n\t\t\t\t{{ $locale.baseText('settings.api') }}\n\t\t\t\t<span :style=\"{ fontSize: 'var(--font-size-s)', color: 'var(--color-text-light)' }\">\n\t\t\t\t\t({{ $locale.baseText('generic.beta') }})\n\t\t\t\t</span>\n\t\t\t</n8n-heading>\n\t\t</div>\n\n\t\t<div v-if=\"apiKey\">\n\t\t\t<p class=\"mb-s\">\n\t\t\t\t<n8n-info-tip :bold=\"false\">\n\t\t\t\t\t<i18n-t keypath=\"settings.api.view.info\" tag=\"span\">\n\t\t\t\t\t\t<template #apiAction>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://docs.n8n.io/api\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tv-text=\"$locale.baseText('settings.api.view.info.api')\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #webhookAction>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"https://docs.n8n.io/integrations/core-nodes/n8n-nodes-base.webhook/\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\tv-text=\"$locale.baseText('settings.api.view.info.webhook')\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</i18n-t>\n\t\t\t\t</n8n-info-tip>\n\t\t\t</p>\n\t\t\t<n8n-card class=\"mb-4xs\" :class=\"$style.card\">\n\t\t\t\t<span :class=\"$style.delete\">\n\t\t\t\t\t<n8n-link :bold=\"true\" @click=\"showDeleteModal\">\n\t\t\t\t\t\t{{ $locale.baseText('generic.delete') }}\n\t\t\t\t\t</n8n-link>\n\t\t\t\t</span>\n\t\t\t\t<div>\n\t\t\t\t\t<CopyInput\n\t\t\t\t\t\t:label=\"$locale.baseText('settings.api.view.myKey')\"\n\t\t\t\t\t\t:value=\"apiKey\"\n\t\t\t\t\t\t:copy-button-text=\"$locale.baseText('generic.clickToCopy')\"\n\t\t\t\t\t\t:toast-title=\"$locale.baseText('settings.api.view.copy.toast')\"\n\t\t\t\t\t\t:redact-value=\"true\"\n\t\t\t\t\t\t@copy=\"onCopy\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</n8n-card>\n\t\t\t<div :class=\"$style.hint\">\n\t\t\t\t<n8n-text size=\"small\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText(`settings.api.view.${swaggerUIEnabled ? 'tryapi' : 'more-details'}`)\n\t\t\t\t\t}}\n\t\t\t\t</n8n-text>\n\t\t\t\t{{ ' ' }}\n\t\t\t\t<n8n-link :to=\"apiDocsURL\" :new-window=\"true\" size=\"small\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText(\n\t\t\t\t\t\t\t`settings.api.view.${swaggerUIEnabled ? 'apiPlayground' : 'external-docs'}`,\n\t\t\t\t\t\t)\n\t\t\t\t\t}}\n\t\t\t\t</n8n-link>\n\t\t\t</div>\n\t\t</div>\n\t\t<n8n-action-box\n\t\t\tv-else-if=\"!isPublicApiEnabled && isTrialing\"\n\t\t\tdata-test-id=\"public-api-upgrade-cta\"\n\t\t\t:heading=\"$locale.baseText('settings.api.trial.upgradePlan.title')\"\n\t\t\t:description=\"$locale.baseText('settings.api.trial.upgradePlan.description')\"\n\t\t\t:button-text=\"$locale.baseText('settings.api.trial.upgradePlan.cta')\"\n\t\t\t@click:button=\"onUpgrade\"\n\t\t/>\n\t\t<n8n-action-box\n\t\t\tv-else-if=\"mounted && !isLoadingCloudPlans\"\n\t\t\t:button-text=\"\n\t\t\t\t$locale.baseText(\n\t\t\t\t\tloading ? 'settings.api.create.button.loading' : 'settings.api.create.button',\n\t\t\t\t)\n\t\t\t\"\n\t\t\t:description=\"$locale.baseText('settings.api.create.description')\"\n\t\t\t@click:button=\"createApiKey\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { IUser } from '@/Interface';\nimport { useToast } from '@/composables/useToast';\nimport { useMessage } from '@/composables/useMessage';\n\nimport CopyInput from '@/components/CopyInput.vue';\nimport { mapStores } from 'pinia';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useRootStore } from '@/stores/n8nRoot.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useUsersStore } from '@/stores/users.store';\nimport { useCloudPlanStore } from '@/stores/cloudPlan.store';\nimport { DOCS_DOMAIN, MODAL_CONFIRM } from '@/constants';\n\nexport default defineComponent({\n\tname: 'SettingsApiView',\n\tcomponents: {\n\t\tCopyInput,\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t\t...useUIStore(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t\tmounted: false,\n\t\t\tapiKey: '',\n\t\t\tswaggerUIEnabled: false,\n\t\t\tapiDocsURL: '',\n\t\t};\n\t},\n\tmounted() {\n\t\tif (!this.isPublicApiEnabled) return;\n\n\t\tvoid this.getApiKey();\n\t\tconst baseUrl = this.rootStore.baseUrl;\n\t\tconst apiPath = this.settingsStore.publicApiPath;\n\t\tconst latestVersion = this.settingsStore.publicApiLatestVersion;\n\t\tthis.swaggerUIEnabled = this.settingsStore.isSwaggerUIEnabled;\n\t\tthis.apiDocsURL = this.swaggerUIEnabled\n\t\t\t? `${baseUrl}${apiPath}/v${latestVersion}/docs`\n\t\t\t: `https://${DOCS_DOMAIN}/api/api-reference/`;\n\t},\n\tcomputed: {\n\t\t...mapStores(useRootStore, useSettingsStore, useUsersStore, useCloudPlanStore, useUIStore),\n\t\tcurrentUser(): IUser | null {\n\t\t\treturn this.usersStore.currentUser;\n\t\t},\n\t\tisTrialing(): boolean {\n\t\t\treturn this.cloudPlanStore.userIsTrialing;\n\t\t},\n\t\tisLoadingCloudPlans(): boolean {\n\t\t\treturn this.cloudPlanStore.state.loadingPlan;\n\t\t},\n\t\tisPublicApiEnabled(): boolean {\n\t\t\treturn this.settingsStore.isPublicApiEnabled;\n\t\t},\n\t},\n\tmethods: {\n\t\tonUpgrade() {\n\t\t\tvoid this.uiStore.goToUpgrade('settings-n8n-api', 'upgrade-api', 'redirect');\n\t\t},\n\t\tasync showDeleteModal() {\n\t\t\tconst confirmed = await this.confirm(\n\t\t\t\tthis.$locale.baseText('settings.api.delete.description'),\n\t\t\t\tthis.$locale.baseText('settings.api.delete.title'),\n\t\t\t\t{\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText('settings.api.delete.button'),\n\t\t\t\t\tcancelButtonText: this.$locale.baseText('generic.cancel'),\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (confirmed === MODAL_CONFIRM) {\n\t\t\t\tawait this.deleteApiKey();\n\t\t\t}\n\t\t},\n\t\tasync getApiKey() {\n\t\t\ttry {\n\t\t\t\tthis.apiKey = (await this.settingsStore.getApiKey()) || '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.view.error'));\n\t\t\t} finally {\n\t\t\t\tthis.mounted = true;\n\t\t\t}\n\t\t},\n\t\tasync createApiKey() {\n\t\t\tthis.loading = true;\n\n\t\t\ttry {\n\t\t\t\tthis.apiKey = (await this.settingsStore.createApiKey()) || '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.create.error'));\n\t\t\t} finally {\n\t\t\t\tthis.loading = false;\n\t\t\t\tthis.$telemetry.track('User clicked create API key button');\n\t\t\t}\n\t\t},\n\t\tasync deleteApiKey() {\n\t\t\ttry {\n\t\t\t\tawait this.settingsStore.deleteApiKey();\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: this.$locale.baseText('settings.api.delete.toast'),\n\t\t\t\t\ttype: 'success',\n\t\t\t\t});\n\t\t\t\tthis.apiKey = '';\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.$locale.baseText('settings.api.delete.error'));\n\t\t\t} finally {\n\t\t\t\tthis.$telemetry.track('User clicked delete API key button');\n\t\t\t}\n\t\t},\n\t\tonCopy() {\n\t\t\tthis.$telemetry.track('User clicked copy API key button');\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.container {\n\t> * {\n\t\tmargin-bottom: var(--spacing-2xl);\n\t}\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\twhite-space: nowrap;\n\n\t*:first-child {\n\t\tflex-grow: 1;\n\t}\n}\n\n.card {\n\tposition: relative;\n}\n\n.delete {\n\tposition: absolute;\n\tdisplay: inline-block;\n\ttop: var(--spacing-s);\n\tright: var(--spacing-s);\n}\n\n.hint {\n\tcolor: var(--color-text-light);\n}\n</style>\n"],"names":["_sfc_main","defineComponent","CopyInput","useToast","useMessage","useUIStore","baseUrl","apiPath","latestVersion","DOCS_DOMAIN","mapStores","useRootStore","useSettingsStore","useUsersStore","useCloudPlanStore","MODAL_CONFIRM","error","_hoisted_1","_hoisted_2","_resolveComponent","_normalizeClass","_ctx","_createVNode","_component_n8n_heading","$locale","_withCtx","_createTextVNode","_toDisplayString","_createElementVNode","apiKey","_openBlock","_component_n8n_info_tip","_component_i18n_t","_hoisted_3","_hoisted_4","showDeleteModal","onCopy","_component_n8n_text","apiDocsURL","_component_n8n_link","swaggerUIEnabled","isPublicApiEnabled","_component_n8n_action_box","onUpgrade","mounted","isLoadingCloudPlans","_createBlock","loading","_createCommentVNode"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{cK as C,i as $,ab as L,u as B,b as D,cL as O,ad as T,cM as w,cN as x,cO as V,a3 as z}from"./index-DeNtBxiT.js";import{m as v}from"./pinia-BAhPp3pQ.js";import{G as A,l as t,m as s,I as o,U as a,p as c,O as i,S as y,T as r,F as b,a7 as N,M as k,R as S,ag as l,aH as R}from"./vendor-Dv5OeN6t.js";import{_ as P}from"./n8n-B6cfQsVX.js";import{u as H}from"./usePushConnection-1-1myIro.js";import{a as G}from"./collaboration.store-CeJXF3gO.js";import"./axios-Mm4CS0gO.js";import"./flatted-DN8lQ2XG.js";import"./@vueuse/core-9E8Shwsg.js";import"./lodash-es-BxV-E8rt.js";import"./@n8n/permissions-BxxteU-C.js";import"./dateformat-B9ocXky7.js";import"./vue-i18n-Delvyc9x.js";import"./uuid-SoommWqA.js";import"./luxon-CLwAIbs0.js";import"./@n8n/codemirror-lang-sql-x14jMqbG.js";import"./@lezer/common-B6ct0j_v.js";import"./prettier-bS6l4Vb1.js";import"./@jsplumb/util-DS-9vq_E.js";import"./@jsplumb/core-CVBraiyY.js";import"./@jsplumb/common-CF-b-6-M.js";import"./@jsplumb/connector-bezier-BGU0Ovbw.js";import"./@jsplumb/browser-ui-BVF2KoJK.js";import"./codemirror-lang-html-n8n-DcTmlMkf.js";import"./@n8n/codemirror-lang-Qkdx7NoQ.js";import"./esprima-next-nhoSXAeq.js";import"./fast-json-stable-stringify-LluJPcs3.js";import"./timeago.js-CiyKClrF.js";import"./qrcode.vue-BGkPba5A.js";import"./vue3-touch-events-mV0oX_Sl.js";import"./chart.js-343vZi4M.js";const K=A({name:"CommunityPackageCard",props:{communityPackage:{type:Object,required:!1,default:null},loading:{type:Boolean,default:!1}},data(){return{packageActions:[{label:this.$locale.baseText("settings.communityNodes.viewDocsAction.label"),value:C.VIEW_DOCS,type:"external-link"},{label:this.$locale.baseText("settings.communityNodes.uninstallAction.label"),value:C.UNINSTALL}]}},computed:{...v($)},methods:{async onAction(e){if(this.communityPackage)switch(e){case C.VIEW_DOCS:this.$telemetry.track("user clicked to browse the cnr package documentation",{package_name:this.communityPackage.packageName,package_version:this.communityPackage.installedVersion}),window.open(`${L}${this.communityPackage.packageName}`,"_blank");break;case C.UNINSTALL:this.uiStore.openCommunityPackageUninstallConfirmModal(this.communityPackage.packageName);break}},onUpdateClick(){this.communityPackage&&this.uiStore.openCommunityPackageUpdateConfirmModal(this.communityPackage.packageName)}}}),Y="_cardContainer_1cg0i_1",Q="_packageCard_1cg0i_9",j="_cardSkeleton_1cg0i_10",q="_loader_1cg0i_24",F="_cardInfoContainer_1cg0i_35",W="_cardTitle_1cg0i_40",J="_cardSubtitle_1cg0i_47",X="_cardControlsContainer_1cg0i_52",Z="_cardActions_1cg0i_58",ee={cardContainer:Y,packageCard:Q,cardSkeleton:j,loader:q,cardInfoContainer:F,cardTitle:W,cardSubtitle:J,cardControlsContainer:X,cardActions:Z},te={key:0};function oe(e,m,n,h,I,M){const _=l("n8n-loading"),d=l("n8n-text"),g=l("n8n-icon"),u=l("n8n-tooltip"),p=l("n8n-button"),U=l("n8n-action-toggle");return t(),s("div",{class:o(e.$style.cardContainer)},[e.loading?(t(),s("div",{key:0,class:o(e.$style.cardSkeleton)},[a(_,{class:o(e.$style.loader),variant:"p",rows:1},null,8,["class"]),a(_,{class:o(e.$style.loader),variant:"p",rows:1},null,8,["class"])],2)):e.communityPackage?(t(),s("div",{key:1,class:o(e.$style.packageCard)},[c("div",{class:o(e.$style.cardInfoContainer)},[c("div",{class:o(e.$style.cardTitle)},[a(d,{bold:!0,size:"large"},{default:i(()=>[y(r(e.communityPackage.packageName),1)]),_:1})],2),c("div",{class:o(e.$style.cardSubtitle)},[a(d,{bold:!0,size:"small",color:"text-light"},{default:i(()=>[y(r(e.$locale.baseText("settings.communityNodes.packageNodes.label",{adjustToNumber:e.communityPackage.installedNodes.length}))+": ",1)]),_:1}),a(d,{size:"small",color:"text-light"},{default:i(()=>[(t(!0),s(b,null,N(e.communityPackage.installedNodes,(f,E)=>(t(),s("span",{key:f.name},[y(r(f.name),1),E!=e.communityPackage.installedNodes.length-1?(t(),s("span",te,",")):S("",!0)]))),128))]),_:1})],2)],2),c("div",{class:o(e.$style.cardControlsContainer)},[a(d,{bold:!0,size:"large",color:"text-light"},{default:i(()=>[y(" v"+r(e.communityPackage.installedVersion),1)]),_:1}),e.communityPackage.failedLoading===!0?(t(),k(u,{key:0,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.failedToLoad.tooltip")),1)]),default:i(()=>[a(g,{icon:"exclamation-triangle",color:"danger",size:"large"})]),_:1})):e.communityPackage.updateAvailable?(t(),k(u,{key:1,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.updateAvailable.tooltip")),1)]),default:i(()=>[a(p,{outline:"",label:"Update",onClick:e.onUpdateClick},null,8,["onClick"])]),_:1})):(t(),k(u,{key:2,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.upToDate.tooltip")),1)]),default:i(()=>[a(g,{icon:"check-circle",color:"text-light",size:"large"})]),_:1})),c("div",{class:o(e.$style.cardActions)},[a(U,{actions:e.packageActions,onAction:e.onAction},null,8,["actions","onAction"])],2)],2)],2)):S("",!0)],2)}const ae={$style:ee},ne=P(K,[["render",oe],["__cssModules",ae]]),se=31,ie=A({name:"SettingsCommunityNodesView",components:{CommunityPackageCard:ne},setup(){const e=R(),m=H({router:e});return{externalHooks:z(),...B(),pushConnection:m}},data(){return{loading:!1}},computed:{...v(O,D,$,G),getEmptyStateDescription(){const e=this.communityNodesStore.availablePackageCount;return this.settingsStore.isDesktopDeployment?this.$locale.baseText("contextual.communityNodes.unavailable.description.desktop"):e<se?this.$locale.baseText("settings.communityNodes.empty.description.no-packages",{interpolate:{docURL:T}}):this.$locale.baseText("settings.communityNodes.empty.description",{interpolate:{docURL:T,count:(Math.floor(e/10)*10).toString()}})},getEmptyStateButtonText(){return this.settingsStore.isDesktopDeployment?this.$locale.baseText("contextual.communityNodes.unavailable.button.desktop"):this.shouldShowInstallButton?this.$locale.baseText("settings.communityNodes.empty.installPackageLabel"):""},shouldShowInstallButton(){return this.settingsStore.isDesktopDeployment||this.settingsStore.isNpmAvailable},actionBoxConfig(){return this.settingsStore.isNpmAvailable?this.settingsStore.isQueueModeEnabled?{calloutText:this.$locale.baseText("settings.communityNodes.queueMode.warning",{interpolate:{docURL:x}}),calloutTheme:"warning",hideButton:!0}:{calloutText:"",calloutTheme:"",hideButton:!1}:{calloutText:this.$locale.baseText("settings.communityNodes.npmUnavailable.warning",{interpolate:{npmUrl:w}}),calloutTheme:"warning",hideButton:!0}}},beforeMount(){this.pushConnection.initialize(),this.pushStore.pushConnect()},async mounted(){try{this.loading=!0,await this.communityNodesStore.fetchInstalledPackages();const e=this.communityNodesStore.getInstalledPackages,m=e.filter(n=>n.updateAvailable);this.$telemetry.track("user viewed cnr settings page",{num_of_packages_installed:e.length,installed_packages:e.map(n=>({package_name:n.packageName,package_version:n.installedVersion,package_nodes:n.installedNodes.map(h=>`${h.name}-v${h.latestVersion}`),is_update_available:n.updateAvailable!==void 0})),packages_to_update:m.map(n=>({package_name:n.packageName,package_version_current:n.installedVersion,package_version_available:n.updateAvailable})),number_of_updates_available:m.length})}catch(e){this.showError(e,this.$locale.baseText("settings.communityNodes.fetchError.title"),this.$locale.baseText("settings.communityNodes.fetchError.message"))}finally{this.loading=!1}try{await this.communityNodesStore.fetchAvailableCommunityPackageCount()}finally{this.loading=!1}},beforeUnmount(){this.pushStore.pushDisconnect(),this.pushConnection.terminate()},methods:{onClickEmptyStateButton(){if(this.settingsStore.isDesktopDeployment)return this.goToUpgrade();this.openInstallModal()},goToUpgrade(){this.uiStore.goToUpgrade("community-nodes","upgrade-community-nodes")},openInstallModal(){const e={is_empty_state:this.communityNodesStore.getInstalledPackages.length===0};this.$telemetry.track("user clicked cnr install button",e),this.externalHooks.run("settingsCommunityNodesView.openInstallModal",e),this.uiStore.openModal(V)}}}),le="_container_18kse_1",ce="_headingContainer_18kse_9",re="_loadingContainer_18kse_14",me="_actionBoxContainer_18kse_19",de="_cardsContainer_18kse_23",ue={container:le,headingContainer:ce,loadingContainer:re,actionBoxContainer:me,cardsContainer:de};function pe(e,m,n,h,I,M){const _=l("n8n-heading"),d=l("n8n-button"),g=l("n8n-action-box"),u=l("CommunityPackageCard");return t(),s("div",{class:o(e.$style.container)},[c("div",{class:o(e.$style.headingContainer)},[a(_,{size:"2xlarge"},{default:i(()=>[y(r(e.$locale.baseText("settings.communityNodes")),1)]),_:1}),!e.settingsStore.isQueueModeEnabled&&e.communityNodesStore.getInstalledPackages.length>0&&!e.loading?(t(),k(d,{key:0,label:e.$locale.baseText("settings.communityNodes.installModal.installButton.label"),size:"large",onClick:e.openInstallModal},null,8,["label","onClick"])):S("",!0)],2),e.settingsStore.isQueueModeEnabled?(t(),s("div",{key:0,class:o(e.$style.actionBoxContainer)},[a(g,{heading:e.$locale.baseText("settings.communityNodes.empty.title"),description:e.getEmptyStateDescription,"callout-text":e.actionBoxConfig.calloutText,"callout-theme":e.actionBoxConfig.calloutTheme},null,8,["heading","description","callout-text","callout-theme"])],2)):e.loading?(t(),s("div",{key:1,class:o(e.$style.cardsContainer)},[(t(),s(b,null,N(2,p=>a(u,{key:"index-"+p,loading:!0})),64))],2)):e.communityNodesStore.getInstalledPackages.length===0?(t(),s("div",{key:2,class:o(e.$style.actionBoxContainer)},[a(g,{heading:e.$locale.baseText("settings.communityNodes.empty.title"),description:e.getEmptyStateDescription,"button-text":e.getEmptyStateButtonText,"callout-text":e.actionBoxConfig.calloutText,"callout-theme":e.actionBoxConfig.calloutTheme,"onClick:button":e.onClickEmptyStateButton},null,8,["heading","description","button-text","callout-text","callout-theme","onClick:button"])],2)):(t(),s("div",{key:3,class:o(e.$style.cardsContainer)},[(t(!0),s(b,null,N(e.communityNodesStore.getInstalledPackages,p=>(t(),k(u,{key:p.packageName,"community-package":p},null,8,["community-package"]))),128))],2))],2)}const ge={$style:ue},Qe=P(ie,[["render",pe],["__cssModules",ge]]);export{Qe as default};
|
|
2
|
-
//# sourceMappingURL=SettingsCommunityNodesView-
|
|
1
|
+
import{cK as C,i as $,ab as L,u as B,b as D,cL as O,ad as T,cM as w,cN as x,cO as V,a3 as z}from"./index-DEwaaDne.js";import{m as v}from"./pinia-BAhPp3pQ.js";import{G as A,l as t,m as s,I as o,U as a,p as c,O as i,S as y,T as r,F as b,a7 as N,M as k,R as S,ag as l,aH as R}from"./vendor-Dv5OeN6t.js";import{_ as P}from"./n8n-B6cfQsVX.js";import{u as H}from"./usePushConnection-3xfZ5wSJ.js";import{a as G}from"./collaboration.store-zz8xH0zY.js";import"./axios-Mm4CS0gO.js";import"./flatted-DN8lQ2XG.js";import"./@vueuse/core-9E8Shwsg.js";import"./lodash-es-BxV-E8rt.js";import"./@n8n/permissions-BxxteU-C.js";import"./dateformat-B9ocXky7.js";import"./vue-i18n-Delvyc9x.js";import"./uuid-SoommWqA.js";import"./luxon-CLwAIbs0.js";import"./@n8n/codemirror-lang-sql-x14jMqbG.js";import"./@lezer/common-B6ct0j_v.js";import"./prettier-bS6l4Vb1.js";import"./@jsplumb/util-DS-9vq_E.js";import"./@jsplumb/core-CVBraiyY.js";import"./@jsplumb/common-CF-b-6-M.js";import"./@jsplumb/connector-bezier-BGU0Ovbw.js";import"./@jsplumb/browser-ui-BVF2KoJK.js";import"./codemirror-lang-html-n8n-DcTmlMkf.js";import"./@n8n/codemirror-lang-Qkdx7NoQ.js";import"./esprima-next-nhoSXAeq.js";import"./fast-json-stable-stringify-LluJPcs3.js";import"./timeago.js-CiyKClrF.js";import"./qrcode.vue-BGkPba5A.js";import"./vue3-touch-events-mV0oX_Sl.js";import"./chart.js-343vZi4M.js";const K=A({name:"CommunityPackageCard",props:{communityPackage:{type:Object,required:!1,default:null},loading:{type:Boolean,default:!1}},data(){return{packageActions:[{label:this.$locale.baseText("settings.communityNodes.viewDocsAction.label"),value:C.VIEW_DOCS,type:"external-link"},{label:this.$locale.baseText("settings.communityNodes.uninstallAction.label"),value:C.UNINSTALL}]}},computed:{...v($)},methods:{async onAction(e){if(this.communityPackage)switch(e){case C.VIEW_DOCS:this.$telemetry.track("user clicked to browse the cnr package documentation",{package_name:this.communityPackage.packageName,package_version:this.communityPackage.installedVersion}),window.open(`${L}${this.communityPackage.packageName}`,"_blank");break;case C.UNINSTALL:this.uiStore.openCommunityPackageUninstallConfirmModal(this.communityPackage.packageName);break}},onUpdateClick(){this.communityPackage&&this.uiStore.openCommunityPackageUpdateConfirmModal(this.communityPackage.packageName)}}}),Y="_cardContainer_1cg0i_1",Q="_packageCard_1cg0i_9",j="_cardSkeleton_1cg0i_10",q="_loader_1cg0i_24",F="_cardInfoContainer_1cg0i_35",W="_cardTitle_1cg0i_40",J="_cardSubtitle_1cg0i_47",X="_cardControlsContainer_1cg0i_52",Z="_cardActions_1cg0i_58",ee={cardContainer:Y,packageCard:Q,cardSkeleton:j,loader:q,cardInfoContainer:F,cardTitle:W,cardSubtitle:J,cardControlsContainer:X,cardActions:Z},te={key:0};function oe(e,m,n,h,I,M){const _=l("n8n-loading"),d=l("n8n-text"),g=l("n8n-icon"),u=l("n8n-tooltip"),p=l("n8n-button"),U=l("n8n-action-toggle");return t(),s("div",{class:o(e.$style.cardContainer)},[e.loading?(t(),s("div",{key:0,class:o(e.$style.cardSkeleton)},[a(_,{class:o(e.$style.loader),variant:"p",rows:1},null,8,["class"]),a(_,{class:o(e.$style.loader),variant:"p",rows:1},null,8,["class"])],2)):e.communityPackage?(t(),s("div",{key:1,class:o(e.$style.packageCard)},[c("div",{class:o(e.$style.cardInfoContainer)},[c("div",{class:o(e.$style.cardTitle)},[a(d,{bold:!0,size:"large"},{default:i(()=>[y(r(e.communityPackage.packageName),1)]),_:1})],2),c("div",{class:o(e.$style.cardSubtitle)},[a(d,{bold:!0,size:"small",color:"text-light"},{default:i(()=>[y(r(e.$locale.baseText("settings.communityNodes.packageNodes.label",{adjustToNumber:e.communityPackage.installedNodes.length}))+": ",1)]),_:1}),a(d,{size:"small",color:"text-light"},{default:i(()=>[(t(!0),s(b,null,N(e.communityPackage.installedNodes,(f,E)=>(t(),s("span",{key:f.name},[y(r(f.name),1),E!=e.communityPackage.installedNodes.length-1?(t(),s("span",te,",")):S("",!0)]))),128))]),_:1})],2)],2),c("div",{class:o(e.$style.cardControlsContainer)},[a(d,{bold:!0,size:"large",color:"text-light"},{default:i(()=>[y(" v"+r(e.communityPackage.installedVersion),1)]),_:1}),e.communityPackage.failedLoading===!0?(t(),k(u,{key:0,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.failedToLoad.tooltip")),1)]),default:i(()=>[a(g,{icon:"exclamation-triangle",color:"danger",size:"large"})]),_:1})):e.communityPackage.updateAvailable?(t(),k(u,{key:1,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.updateAvailable.tooltip")),1)]),default:i(()=>[a(p,{outline:"",label:"Update",onClick:e.onUpdateClick},null,8,["onClick"])]),_:1})):(t(),k(u,{key:2,placement:"top"},{content:i(()=>[c("div",null,r(e.$locale.baseText("settings.communityNodes.upToDate.tooltip")),1)]),default:i(()=>[a(g,{icon:"check-circle",color:"text-light",size:"large"})]),_:1})),c("div",{class:o(e.$style.cardActions)},[a(U,{actions:e.packageActions,onAction:e.onAction},null,8,["actions","onAction"])],2)],2)],2)):S("",!0)],2)}const ae={$style:ee},ne=P(K,[["render",oe],["__cssModules",ae]]),se=31,ie=A({name:"SettingsCommunityNodesView",components:{CommunityPackageCard:ne},setup(){const e=R(),m=H({router:e});return{externalHooks:z(),...B(),pushConnection:m}},data(){return{loading:!1}},computed:{...v(O,D,$,G),getEmptyStateDescription(){const e=this.communityNodesStore.availablePackageCount;return this.settingsStore.isDesktopDeployment?this.$locale.baseText("contextual.communityNodes.unavailable.description.desktop"):e<se?this.$locale.baseText("settings.communityNodes.empty.description.no-packages",{interpolate:{docURL:T}}):this.$locale.baseText("settings.communityNodes.empty.description",{interpolate:{docURL:T,count:(Math.floor(e/10)*10).toString()}})},getEmptyStateButtonText(){return this.settingsStore.isDesktopDeployment?this.$locale.baseText("contextual.communityNodes.unavailable.button.desktop"):this.shouldShowInstallButton?this.$locale.baseText("settings.communityNodes.empty.installPackageLabel"):""},shouldShowInstallButton(){return this.settingsStore.isDesktopDeployment||this.settingsStore.isNpmAvailable},actionBoxConfig(){return this.settingsStore.isNpmAvailable?this.settingsStore.isQueueModeEnabled?{calloutText:this.$locale.baseText("settings.communityNodes.queueMode.warning",{interpolate:{docURL:x}}),calloutTheme:"warning",hideButton:!0}:{calloutText:"",calloutTheme:"",hideButton:!1}:{calloutText:this.$locale.baseText("settings.communityNodes.npmUnavailable.warning",{interpolate:{npmUrl:w}}),calloutTheme:"warning",hideButton:!0}}},beforeMount(){this.pushConnection.initialize(),this.pushStore.pushConnect()},async mounted(){try{this.loading=!0,await this.communityNodesStore.fetchInstalledPackages();const e=this.communityNodesStore.getInstalledPackages,m=e.filter(n=>n.updateAvailable);this.$telemetry.track("user viewed cnr settings page",{num_of_packages_installed:e.length,installed_packages:e.map(n=>({package_name:n.packageName,package_version:n.installedVersion,package_nodes:n.installedNodes.map(h=>`${h.name}-v${h.latestVersion}`),is_update_available:n.updateAvailable!==void 0})),packages_to_update:m.map(n=>({package_name:n.packageName,package_version_current:n.installedVersion,package_version_available:n.updateAvailable})),number_of_updates_available:m.length})}catch(e){this.showError(e,this.$locale.baseText("settings.communityNodes.fetchError.title"),this.$locale.baseText("settings.communityNodes.fetchError.message"))}finally{this.loading=!1}try{await this.communityNodesStore.fetchAvailableCommunityPackageCount()}finally{this.loading=!1}},beforeUnmount(){this.pushStore.pushDisconnect(),this.pushConnection.terminate()},methods:{onClickEmptyStateButton(){if(this.settingsStore.isDesktopDeployment)return this.goToUpgrade();this.openInstallModal()},goToUpgrade(){this.uiStore.goToUpgrade("community-nodes","upgrade-community-nodes")},openInstallModal(){const e={is_empty_state:this.communityNodesStore.getInstalledPackages.length===0};this.$telemetry.track("user clicked cnr install button",e),this.externalHooks.run("settingsCommunityNodesView.openInstallModal",e),this.uiStore.openModal(V)}}}),le="_container_18kse_1",ce="_headingContainer_18kse_9",re="_loadingContainer_18kse_14",me="_actionBoxContainer_18kse_19",de="_cardsContainer_18kse_23",ue={container:le,headingContainer:ce,loadingContainer:re,actionBoxContainer:me,cardsContainer:de};function pe(e,m,n,h,I,M){const _=l("n8n-heading"),d=l("n8n-button"),g=l("n8n-action-box"),u=l("CommunityPackageCard");return t(),s("div",{class:o(e.$style.container)},[c("div",{class:o(e.$style.headingContainer)},[a(_,{size:"2xlarge"},{default:i(()=>[y(r(e.$locale.baseText("settings.communityNodes")),1)]),_:1}),!e.settingsStore.isQueueModeEnabled&&e.communityNodesStore.getInstalledPackages.length>0&&!e.loading?(t(),k(d,{key:0,label:e.$locale.baseText("settings.communityNodes.installModal.installButton.label"),size:"large",onClick:e.openInstallModal},null,8,["label","onClick"])):S("",!0)],2),e.settingsStore.isQueueModeEnabled?(t(),s("div",{key:0,class:o(e.$style.actionBoxContainer)},[a(g,{heading:e.$locale.baseText("settings.communityNodes.empty.title"),description:e.getEmptyStateDescription,"callout-text":e.actionBoxConfig.calloutText,"callout-theme":e.actionBoxConfig.calloutTheme},null,8,["heading","description","callout-text","callout-theme"])],2)):e.loading?(t(),s("div",{key:1,class:o(e.$style.cardsContainer)},[(t(),s(b,null,N(2,p=>a(u,{key:"index-"+p,loading:!0})),64))],2)):e.communityNodesStore.getInstalledPackages.length===0?(t(),s("div",{key:2,class:o(e.$style.actionBoxContainer)},[a(g,{heading:e.$locale.baseText("settings.communityNodes.empty.title"),description:e.getEmptyStateDescription,"button-text":e.getEmptyStateButtonText,"callout-text":e.actionBoxConfig.calloutText,"callout-theme":e.actionBoxConfig.calloutTheme,"onClick:button":e.onClickEmptyStateButton},null,8,["heading","description","button-text","callout-text","callout-theme","onClick:button"])],2)):(t(),s("div",{key:3,class:o(e.$style.cardsContainer)},[(t(!0),s(b,null,N(e.communityNodesStore.getInstalledPackages,p=>(t(),k(u,{key:p.packageName,"community-package":p},null,8,["community-package"]))),128))],2))],2)}const ge={$style:ue},Qe=P(ie,[["render",pe],["__cssModules",ge]]);export{Qe as default};
|
|
2
|
+
//# sourceMappingURL=SettingsCommunityNodesView-Zb5NN5TR.js.map
|