n8n-editor-ui 1.8.0 → 1.8.2
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 +15 -15
- package/dist/assets/{CanvasControls-cf48927a.js → CanvasControls-f8442535.js} +2 -2
- package/dist/assets/{CanvasControls-cf48927a.js.map → CanvasControls-f8442535.js.map} +1 -1
- package/dist/assets/{FixedCollectionParameter-f646d2bf.js → FixedCollectionParameter-8ad1e897.js} +2 -2
- package/dist/assets/{FixedCollectionParameter-f646d2bf.js.map → FixedCollectionParameter-8ad1e897.js.map} +1 -1
- package/dist/assets/{NodeCreation-bbf36a1a.js → NodeCreation-aa65a415.js} +2 -2
- package/dist/assets/{NodeCreation-bbf36a1a.js.map → NodeCreation-aa65a415.js.map} +1 -1
- package/dist/assets/NodeCreator-626fd9f1.js +2 -0
- package/dist/assets/NodeCreator-626fd9f1.js.map +1 -0
- package/dist/assets/{RunDataJson-6215e222.js → RunDataJson-1392d3f8.js} +2 -2
- package/dist/assets/{RunDataJson-6215e222.js.map → RunDataJson-1392d3f8.js.map} +1 -1
- package/dist/assets/{RunDataJsonActions-1d385291.js → RunDataJsonActions-b7eb9ddb.js} +2 -2
- package/dist/assets/{RunDataJsonActions-1d385291.js.map → RunDataJsonActions-b7eb9ddb.js.map} +1 -1
- package/dist/assets/{RunDataSchema-43df3299.js → RunDataSchema-066ea2d7.js} +2 -2
- package/dist/assets/{RunDataSchema-43df3299.js.map → RunDataSchema-066ea2d7.js.map} +1 -1
- package/dist/assets/{RunDataTable-7ab80bf8.js → RunDataTable-301414b2.js} +2 -2
- package/dist/assets/{RunDataTable-7ab80bf8.js.map → RunDataTable-301414b2.js.map} +1 -1
- package/dist/assets/{index-12dd1e47.css → index-445a502e.css} +1 -1
- package/dist/assets/{index-1cdec20f.js → index-adc9f77e.js} +5 -9
- package/dist/assets/index-adc9f77e.js.map +1 -0
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/assets/NodeCreator-0d763ba3.js +0 -2
- package/dist/assets/NodeCreator-0d763ba3.js.map +0 -1
- package/dist/assets/index-1cdec20f.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./axios-c5a64f4c.js";import{s as M,i as w,l as I,f as K,m as V,o as B,p as N,c as R,q as C,r as W,t as j}from"./index-
|
|
2
|
-
//# sourceMappingURL=RunDataSchema-
|
|
1
|
+
import"./axios-c5a64f4c.js";import{s as M,i as w,l as I,f as K,m as V,o as B,p as N,c as R,q as C,r as W,t as j}from"./index-adc9f77e.js";import{_ as S}from"./n8n-80219ee5.js";import{d as F,i as p,b as E,o as s,f as n,n as r,g as P,e as T,t as g,k as l,M as z,a9 as q,c as v,V as H,y as J,w as D,l as L,j as U}from"./vendor-18a4b4e1.js";import{M as G}from"./MappingPill-0406b335.js";import"./pinia-82c4461b.js";import"./flatted-8b14da7d.js";import"./@fortawesome/vue-fontawesome-f597912a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./vue-i18n-c3b0f366.js";import"./uuid-cf522c50.js";import"./dateformat-ec5521d1.js";import"./lodash-es-876af2e5.js";import"./luxon-19e1de07.js";import"./@jsplumb/browser-ui-70b0a0d6.js";import"./@jsplumb/core-0a463c13.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-53998944.js";import"./@n8n/codemirror-lang-sql-9a304659.js";import"./codemirror-lang-n8n-expression-47e67c3a.js";import"./codemirror-lang-html-n8n-4223f8c7.js";import"./fast-json-stable-stringify-7a62a64e.js";import"./prettier-51497383.js";import"./esprima-next-8c7e8ff9.js";import"./@vueuse/core-60457efe.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-338130ab.js";import"./file-saver-a0bd4f44.js";import"./vue-json-pretty-c769fa0d.js";import"./humanize-duration-706bc8a1.js";import"./v3-infinite-loading-8fbfd594.js";import"./vue-agile-19059f80.js";import"./copy-to-clipboard-067d994e.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-d79f1537.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";const O=["title"],Q=["data-value","data-name","data-path","data-depth"],X={key:0},Y=["id"],Z=["for"],x=F({__name:"RunDataSchemaItem",props:{schema:{},level:{},parent:{},subKey:{},paneType:{},mappingEnabled:{type:Boolean},draggingPath:{},distanceFromActive:{},node:{}},setup(b){const a=b,o=p(()=>Array.isArray(a.schema.value)),m=p(()=>{var e;return((e=a.parent)==null?void 0:e.type)==="array"}),_=p(()=>a.level===0&&Array.isArray(a.schema.value)&&a.schema.value.every(e=>!Array.isArray(e.value))),d=p(()=>m.value?`[${a.schema.key}]`:a.schema.key),u=p(()=>m.value?`${a.schema.type}[${a.schema.key}]`:a.schema.key),y=p(()=>Array.isArray(a.schema.value)?"":M(a.schema.value,600,0)),k=e=>w({nodeName:a.node.name,distanceFromActive:a.distanceFromActive,path:e}),f=e=>`${e*.033}s`,t=e=>{switch(e){case"object":return"cube";case"array":return"list";case"string":case"null":return"font";case"number":return"hashtag";case"boolean":return"check-square";case"function":return"code";case"bigint":return"calculator";case"symbol":return"sun";case"undefined":return"ban"}I(e)};return(e,c)=>{const i=E("font-awesome-icon"),h=E("run-data-schema-item",!0);return s(),n("div",{class:r(e.$style.item),"data-test-id":"run-data-schema-item"},[e.level>0||e.level===0&&!o.value?(s(),n("div",{key:0,title:e.schema.type,class:r({[e.$style.pill]:!0,[e.$style.mappable]:e.mappingEnabled,[e.$style.dragged]:e.draggingPath===e.schema.path})},[P("span",{class:r(e.$style.label),"data-value":k(e.schema.path),"data-name":u.value,"data-path":e.schema.path,"data-depth":e.level,"data-target":"mappable"},[T(i,{icon:t(e.schema.type),size:"sm"},null,8,["icon"]),m.value?(s(),n("span",X,g(e.parent.key),1)):l("",!0),d.value?(s(),n("span",{key:1,class:r({[e.$style.arrayIndex]:m.value})},g(d.value),3)):l("",!0)],10,Q)],10,O)):l("",!0),y.value?(s(),n("span",{key:1,class:r(e.$style.text)},g(y.value),3)):l("",!0),e.level>0&&o.value?(s(),n("input",{key:2,id:e.subKey,type:"checkbox",checked:""},null,8,Y)):l("",!0),e.level>0&&o.value?(s(),n("label",{key:3,class:r(e.$style.toggle),for:e.subKey},[T(i,{icon:"angle-up"})],10,Z)):l("",!0),o.value?(s(),n("div",{key:4,class:r({[e.$style.sub]:!0,[e.$style.flat]:_.value})},[(s(!0),n(z,null,q(e.schema.value,($,A)=>(s(),v(h,{key:`${$.type}-${e.level}-${A}`,schema:$,level:e.level+1,parent:e.schema,paneType:e.paneType,subKey:`${e.paneType}_${$.type}-${e.level}-${A}`,mappingEnabled:e.mappingEnabled,draggingPath:e.draggingPath,distanceFromActive:e.distanceFromActive,node:e.node,style:H({transitionDelay:f(A)})},null,8,["schema","level","parent","paneType","subKey","mappingEnabled","draggingPath","distanceFromActive","node","style"]))),128))],2)):l("",!0)],2)}}}),ee="_item_dk8yb_5",ae="_sub_dk8yb_18",te="_toggle_dk8yb_24",se="_flat_dk8yb_45",ne="_pill_dk8yb_55",re="_mappable_dk8yb_74",oe="_dragged_dk8yb_82",le="_label_dk8yb_93",pe="_arrayIndex_dk8yb_98",me="_text_dk8yb_104",ie={item:ee,sub:ae,toggle:te,flat:se,pill:ne,mappable:re,dragged:oe,label:le,arrayIndex:pe,text:me},ce={$style:ie},de=S(x,[["__cssModules",ce]]),ue=F({__name:"RunDataSchema",props:{data:{},mappingEnabled:{type:Boolean},distanceFromActive:{default:0},runIndex:{},totalRuns:{},paneType:{},node:{}},setup(b){const a=b,o=J(""),m=K(),_=V(),{getSchemaForExecutionData:d}=C(),u=p(()=>d(a.data)),y=p(()=>B(a.data)),k=t=>{var e;t&&((e=t.dataset)!=null&&e.path)&&(o.value=t.dataset.path),m.resetMappingTelemetry()},f=t=>{o.value="",setTimeout(()=>{var i;const e=m.mappingTelemetry,c={src_node_type:(i=a.node)==null?void 0:i.type,src_field_name:t.dataset.name||"",src_nodes_back:a.distanceFromActive,src_run_index:a.runIndex,src_runs_total:a.totalRuns,src_field_nest_level:t.dataset.depth||0,src_view:"schema",src_element:t,success:!1,...e};W("runDataJson.onDragEnd",_,c),j.track("User dragged data for mapping",c)},1e3)};return(t,e)=>{const c=E("n8n-info-tip");return s(),n("div",{class:r(t.$style.schemaWrapper)},[y.value?(s(),v(c,{key:0},{default:D(()=>[L(g(U(N).baseText("dataMapping.schemaView.emptyData")),1)]),_:1})):(s(),v(R,{key:1,type:"mapping",targetDataKey:"mappable",disabled:!t.mappingEnabled,onDragstart:k,onDragend:f},{preview:D(({canDrop:i,el:h})=>[h?(s(),v(G,{key:0,html:h.outerHTML,"can-drop":i},null,8,["html","can-drop"])):l("",!0)]),default:D(()=>[P("div",{class:r(t.$style.schema)},[T(de,{schema:u.value,level:0,parent:null,paneType:t.paneType,subKey:`${u.value.type}-0-0`,mappingEnabled:t.mappingEnabled,draggingPath:o.value,distanceFromActive:t.distanceFromActive,node:t.node},null,8,["schema","paneType","subKey","mappingEnabled","draggingPath","distanceFromActive","node"])],2)]),_:1},8,["disabled"]))],2)}}}),ye="_schemaWrapper_1j9mn_5",he="_schema_1j9mn_5",ge={schemaWrapper:ye,schema:he},ve={$style:ge},aa=S(ue,[["__cssModules",ve]]);export{aa as default};
|
|
2
|
+
//# sourceMappingURL=RunDataSchema-066ea2d7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunDataSchema-43df3299.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, shorten } from '@/utils';\nimport { getMappedExpression } from '@/utils/mappingUtils';\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};\n\nconst props = defineProps<Props>();\n\nconst isSchemaValueArray = computed(() => Array.isArray(props.schema.value));\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\tisSchemaParentTypeArray.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 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}\n\n\tcheckExhaustive(type);\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.dragged]: draggingPath === schema.path,\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<span v-if=\"isSchemaParentTypeArray\">{{ parent.key }}</span>\n\t\t\t\t<span v-if=\"key\" :class=\"{ [$style.arrayIndex]: isSchemaParentTypeArray }\">{{ key }}</span>\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 schema.value\"\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:paneType=\"paneType\"\n\t\t\t\t:subKey=\"`${paneType}_${s.type}-${level}-${i}`\"\n\t\t\t\t:mappingEnabled=\"mappingEnabled\"\n\t\t\t\t:draggingPath=\"draggingPath\"\n\t\t\t\t:distanceFromActive=\"distanceFromActive\"\n\t\t\t\t:node=\"node\"\n\t\t\t\t:style=\"{ transitionDelay: transitionDelay(i) }\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n@import '@/styles/css-animation-helpers.scss';\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.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\t&.dragged {\n\t\t&,\n\t\t&:hover,\n\t\tspan {\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.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 { useWebhooksStore } from '@/stores/webhooks.store';\nimport { telemetry } from '@/plugins/telemetry';\nimport type { IDataObject } from 'n8n-workflow';\nimport { isEmpty, runExternalHook } from '@/utils';\nimport { i18n } from '@/plugins/i18n';\nimport MappingPill from './MappingPill.vue';\nimport { useDataSchema } from '@/composables';\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};\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdistanceFromActive: 0,\n});\n\nconst draggingPath = ref<string>('');\nconst ndvStore = useNDVStore();\nconst webhooksStore = useWebhooksStore();\nconst { getSchemaForExecutionData } = useDataSchema();\n\nconst schema = computed(() => getSchemaForExecutionData(props.data));\n\nconst isDataEmpty = computed(() => isEmpty(props.data));\n\nconst onDragStart = (el: HTMLElement) => {\n\tif (el && 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 runExternalHook('runDataJson.onDragEnd', webhooksStore, telemetryPayload);\n\n\t\ttelemetry.track('User dragged data for mapping', telemetryPayload);\n\t}, 1000); // ensure dest data gets set if drop\n};\n</script>\n\n<template>\n\t<div :class=\"$style.schemaWrapper\">\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\ttargetDataKey=\"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<run-data-schema-item\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:paneType=\"paneType\"\n\t\t\t\t\t:subKey=\"`${schema.type}-0-0`\"\n\t\t\t\t\t:mappingEnabled=\"mappingEnabled\"\n\t\t\t\t\t:draggingPath=\"draggingPath\"\n\t\t\t\t\t:distanceFromActive=\"distanceFromActive\"\n\t\t\t\t\t:node=\"node\"\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\tbackground-color: var(--color-background-base);\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":["isSchemaValueArray","computed","props","isSchemaParentTypeArray","_a","isFlat","v","key","schemaName","text","shorten","getJsonParameterPath","path","getMappedExpression","transitionDelay","i","getIconBySchemaType","type","checkExhaustive","draggingPath","ref","ndvStore","useNDVStore","webhooksStore","useWebhooksStore","getSchemaForExecutionData","useDataSchema","schema","isDataEmpty","isEmpty","onDragStart","el","onDragEnd","mappingTelemetry","telemetryPayload","runExternalHook","telemetry"],"mappings":"w4DAoBMA,EAAqBC,EAAS,IAAM,MAAM,QAAQC,EAAM,OAAO,KAAK,CAAC,EACrEC,EAA0BF,EAAS,IAAM,OAAA,QAAAG,EAAAF,EAAM,SAAN,YAAAE,EAAc,QAAS,QAAO,EACvEC,EAASJ,EACd,IACCC,EAAM,QAAU,GAChB,MAAM,QAAQA,EAAM,OAAO,KAAK,GAChCA,EAAM,OAAO,MAAM,MAAOI,GAAM,CAAC,MAAM,QAAQA,EAAE,KAAK,CAAC,CAAA,EAEnDC,EAAMN,EAAS,IACpBE,EAAwB,MAAQ,IAAID,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAAA,EAElEM,EAAaP,EAAS,IAC3BE,EAAwB,MAAQ,GAAGD,EAAM,OAAO,IAAI,IAAIA,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAAA,EAEtFO,EAAOR,EAAS,IACrB,MAAM,QAAQC,EAAM,OAAO,KAAK,EAAI,GAAKQ,EAAQR,EAAM,OAAO,MAAO,IAAK,CAAC,CAAA,EAGtES,EAAwBC,GAC7BC,EAAoB,CACnB,SAAUX,EAAM,KAAM,KACtB,mBAAoBA,EAAM,mBAC1B,KAAAU,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,KACT,CAEAC,EAAgBD,CAAI,CAAA,6lEC3CfE,EAAeC,EAAY,EAAE,EAC7BC,EAAWC,IACXC,EAAgBC,IAChB,CAAE,0BAAAC,GAA8BC,IAEhCC,EAAS1B,EAAS,IAAMwB,EAA0BvB,EAAM,IAAI,CAAC,EAE7D0B,EAAc3B,EAAS,IAAM4B,EAAQ3B,EAAM,IAAI,CAAC,EAEhD4B,EAAeC,GAAoB,OACpCA,KAAM3B,EAAA2B,EAAG,UAAH,MAAA3B,EAAY,QACRe,EAAA,MAAQY,EAAG,QAAQ,MAGjCV,EAAS,sBAAsB,CAAA,EAE1BW,EAAaD,GAAoB,CACtCZ,EAAa,MAAQ,GAErB,WAAW,IAAM,OAChB,MAAMc,EAAmBZ,EAAS,iBAC5Ba,EAAmB,CACxB,eAAe9B,EAAAF,EAAM,OAAN,YAAAE,EAAY,KAC3B,eAAgB2B,EAAG,QAAQ,MAAQ,GACnC,eAAgB7B,EAAM,mBACtB,cAAeA,EAAM,SACrB,eAAgBA,EAAM,UACtB,qBAAsB6B,EAAG,QAAQ,OAAS,EAC1C,SAAU,SACV,YAAaA,EACb,QAAS,GACT,GAAGE,CAAA,EAGCE,EAAgB,wBAAyBZ,EAAeW,CAAgB,EAEnEE,EAAA,MAAM,gCAAiCF,CAAgB,GAC/D,GAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"RunDataSchema-066ea2d7.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, shorten } from '@/utils';\nimport { getMappedExpression } from '@/utils/mappingUtils';\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};\n\nconst props = defineProps<Props>();\n\nconst isSchemaValueArray = computed(() => Array.isArray(props.schema.value));\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\tisSchemaParentTypeArray.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 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}\n\n\tcheckExhaustive(type);\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.dragged]: draggingPath === schema.path,\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<span v-if=\"isSchemaParentTypeArray\">{{ parent.key }}</span>\n\t\t\t\t<span v-if=\"key\" :class=\"{ [$style.arrayIndex]: isSchemaParentTypeArray }\">{{ key }}</span>\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 schema.value\"\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:paneType=\"paneType\"\n\t\t\t\t:subKey=\"`${paneType}_${s.type}-${level}-${i}`\"\n\t\t\t\t:mappingEnabled=\"mappingEnabled\"\n\t\t\t\t:draggingPath=\"draggingPath\"\n\t\t\t\t:distanceFromActive=\"distanceFromActive\"\n\t\t\t\t:node=\"node\"\n\t\t\t\t:style=\"{ transitionDelay: transitionDelay(i) }\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n@import '@/styles/css-animation-helpers.scss';\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.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\t&.dragged {\n\t\t&,\n\t\t&:hover,\n\t\tspan {\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.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 { useWebhooksStore } from '@/stores/webhooks.store';\nimport { telemetry } from '@/plugins/telemetry';\nimport type { IDataObject } from 'n8n-workflow';\nimport { isEmpty, runExternalHook } from '@/utils';\nimport { i18n } from '@/plugins/i18n';\nimport MappingPill from './MappingPill.vue';\nimport { useDataSchema } from '@/composables';\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};\n\nconst props = withDefaults(defineProps<Props>(), {\n\tdistanceFromActive: 0,\n});\n\nconst draggingPath = ref<string>('');\nconst ndvStore = useNDVStore();\nconst webhooksStore = useWebhooksStore();\nconst { getSchemaForExecutionData } = useDataSchema();\n\nconst schema = computed(() => getSchemaForExecutionData(props.data));\n\nconst isDataEmpty = computed(() => isEmpty(props.data));\n\nconst onDragStart = (el: HTMLElement) => {\n\tif (el && 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 runExternalHook('runDataJson.onDragEnd', webhooksStore, telemetryPayload);\n\n\t\ttelemetry.track('User dragged data for mapping', telemetryPayload);\n\t}, 1000); // ensure dest data gets set if drop\n};\n</script>\n\n<template>\n\t<div :class=\"$style.schemaWrapper\">\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\ttargetDataKey=\"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<run-data-schema-item\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:paneType=\"paneType\"\n\t\t\t\t\t:subKey=\"`${schema.type}-0-0`\"\n\t\t\t\t\t:mappingEnabled=\"mappingEnabled\"\n\t\t\t\t\t:draggingPath=\"draggingPath\"\n\t\t\t\t\t:distanceFromActive=\"distanceFromActive\"\n\t\t\t\t\t:node=\"node\"\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\tbackground-color: var(--color-background-base);\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":["isSchemaValueArray","computed","props","isSchemaParentTypeArray","_a","isFlat","v","key","schemaName","text","shorten","getJsonParameterPath","path","getMappedExpression","transitionDelay","i","getIconBySchemaType","type","checkExhaustive","draggingPath","ref","ndvStore","useNDVStore","webhooksStore","useWebhooksStore","getSchemaForExecutionData","useDataSchema","schema","isDataEmpty","isEmpty","onDragStart","el","onDragEnd","mappingTelemetry","telemetryPayload","runExternalHook","telemetry"],"mappings":"w4DAoBMA,EAAqBC,EAAS,IAAM,MAAM,QAAQC,EAAM,OAAO,KAAK,CAAC,EACrEC,EAA0BF,EAAS,IAAM,OAAA,QAAAG,EAAAF,EAAM,SAAN,YAAAE,EAAc,QAAS,QAAO,EACvEC,EAASJ,EACd,IACCC,EAAM,QAAU,GAChB,MAAM,QAAQA,EAAM,OAAO,KAAK,GAChCA,EAAM,OAAO,MAAM,MAAOI,GAAM,CAAC,MAAM,QAAQA,EAAE,KAAK,CAAC,CAAA,EAEnDC,EAAMN,EAAS,IACpBE,EAAwB,MAAQ,IAAID,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAAA,EAElEM,EAAaP,EAAS,IAC3BE,EAAwB,MAAQ,GAAGD,EAAM,OAAO,IAAI,IAAIA,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAAA,EAEtFO,EAAOR,EAAS,IACrB,MAAM,QAAQC,EAAM,OAAO,KAAK,EAAI,GAAKQ,EAAQR,EAAM,OAAO,MAAO,IAAK,CAAC,CAAA,EAGtES,EAAwBC,GAC7BC,EAAoB,CACnB,SAAUX,EAAM,KAAM,KACtB,mBAAoBA,EAAM,mBAC1B,KAAAU,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,KACT,CAEAC,EAAgBD,CAAI,CAAA,6lEC3CfE,EAAeC,EAAY,EAAE,EAC7BC,EAAWC,IACXC,EAAgBC,IAChB,CAAE,0BAAAC,GAA8BC,IAEhCC,EAAS1B,EAAS,IAAMwB,EAA0BvB,EAAM,IAAI,CAAC,EAE7D0B,EAAc3B,EAAS,IAAM4B,EAAQ3B,EAAM,IAAI,CAAC,EAEhD4B,EAAeC,GAAoB,OACpCA,KAAM3B,EAAA2B,EAAG,UAAH,MAAA3B,EAAY,QACRe,EAAA,MAAQY,EAAG,QAAQ,MAGjCV,EAAS,sBAAsB,CAAA,EAE1BW,EAAaD,GAAoB,CACtCZ,EAAa,MAAQ,GAErB,WAAW,IAAM,OAChB,MAAMc,EAAmBZ,EAAS,iBAC5Ba,EAAmB,CACxB,eAAe9B,EAAAF,EAAM,OAAN,YAAAE,EAAY,KAC3B,eAAgB2B,EAAG,QAAQ,MAAQ,GACnC,eAAgB7B,EAAM,mBACtB,cAAeA,EAAM,SACrB,eAAgBA,EAAM,UACtB,qBAAsB6B,EAAG,QAAQ,OAAS,EAC1C,SAAU,SACV,YAAaA,EACb,QAAS,GACT,GAAGE,CAAA,EAGCE,EAAgB,wBAAyBZ,EAAeW,CAAgB,EAEnEE,EAAA,MAAM,gCAAiCF,CAAgB,GAC/D,GAAI,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{m as q}from"./pinia-82c4461b.js";import"./axios-c5a64f4c.js";import{e as P,c as A,d as V,f as L,s as j,h as T,i as R}from"./index-
|
|
1
|
+
import{m as q}from"./pinia-82c4461b.js";import"./axios-c5a64f4c.js";import{e as P,c as A,d as V,f as L,s as j,h as T,i as R}from"./index-adc9f77e.js";import{_ as O}from"./n8n-80219ee5.js";import{M as B}from"./MappingPill-0406b335.js";import{d as F,b as w,o as r,f as l,n as o,g as n,M,a9 as E,e as c,w as d,l as k,t as b,k as H,c as W}from"./vendor-18a4b4e1.js";import"./flatted-8b14da7d.js";import"./@fortawesome/vue-fontawesome-f597912a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./vue-i18n-c3b0f366.js";import"./uuid-cf522c50.js";import"./dateformat-ec5521d1.js";import"./lodash-es-876af2e5.js";import"./luxon-19e1de07.js";import"./@jsplumb/browser-ui-70b0a0d6.js";import"./@jsplumb/core-0a463c13.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-53998944.js";import"./@n8n/codemirror-lang-sql-9a304659.js";import"./codemirror-lang-n8n-expression-47e67c3a.js";import"./codemirror-lang-html-n8n-4223f8c7.js";import"./fast-json-stable-stringify-7a62a64e.js";import"./prettier-51497383.js";import"./esprima-next-8c7e8ff9.js";import"./@vueuse/core-60457efe.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-338130ab.js";import"./file-saver-a0bd4f44.js";import"./vue-json-pretty-c769fa0d.js";import"./humanize-duration-706bc8a1.js";import"./v3-infinite-loading-8fbfd594.js";import"./vue-agile-19059f80.js";import"./copy-to-clipboard-067d994e.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-d79f1537.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";const _=40,J=F({name:"run-data-table",mixins:[P],components:{Draggable:A,MappingPill:B},props:{node:{type:Object},inputData:{type:Array},mappingEnabled:{type:Boolean},distanceFromActive:{type:Number},runIndex:{type:Number},outputIndex:{type:Number},totalRuns:{type:Number},pageOffset:{type:Number},hasDefaultHoverState:{type:Boolean}},data(){return{activeColumn:-1,forceShowGrip:!1,draggedColumn:!1,draggingPath:null,hoveringPath:null,mappingHintVisible:!1,activeRow:null,columnLimit:_,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:{...q(L,V),hoveringItem(){return this.ndvStore.hoveringItem},pairedItemMappings(){return this.workflowsStore.workflowExecutionPairedItemMappings},tableData(){return this.convertToTable(this.inputData)},focusedMappableInput(){return this.ndvStore.focusedMappableInput}},methods:{shorten:j,isHoveringRow(e){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=T(this.node.name,this.runIndex||0,this.outputIndex||0,t);if(!this.hoveringItem||!this.pairedItemMappings[a])return!1;const g=T(this.hoveringItem.nodeName,this.hoveringItem.runIndex,this.hoveringItem.outputIndex,this.hoveringItem.itemIndex);return this.pairedItemMappings[a].has(g)},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?R({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 R({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??`[${e}]`},onDragStart(){this.draggedColumn=!0,this.ndvStore.resetMappingTelemetry()},onCellDragStart(e){e&&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 g=this.ndvStore.mappingTelemetry,u={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,...g};this.$externalHooks().run("runDataTable.onDragEnd",u),this.$telemetry.track("User dragged data for mapping",u)},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 g,u,h;const C={};return e.forEach(y=>{if(!y.hasOwnProperty("json"))return;h=y.json,u=[];const D=Object.keys(h||{});D.length>_?(this.columnLimitExceeded=!0,g=D.slice(0,_)):g=D,a.forEach(s=>{h.hasOwnProperty(s)?(u.push(h[s]),g.splice(g.indexOf(s),1),C[s]=C[s]||typeof h[s]=="object"&&Object.keys(h[s]||{}).length>0||!1):u.push(void 0)}),g.forEach(s=>{a.push(s),u.push(h[s]),C[s]=C[s]||typeof h[s]=="object"&&Object.keys(h[s]||{}).length>0||!1}),t.push(u)}),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)}}}),G="/%7B%7BBASE_PATH%7D%7D/static/data-mapping-gif.gif",U="_dataDisplay_1krqo_5",z="_table_1krqo_18",X="_nodeClass_1krqo_66",Q="_emptyCell_1krqo_70",Y="_header_1krqo_74",Z="_draggableHeader_1krqo_86",x="_dragButton_1krqo_90",ee="_draggingHeader_1krqo_94",te="_activeHeader_1krqo_98",ae="_dataKey_1krqo_107",ne="_value_1krqo_116",oe="_nestedValue_1krqo_120 _value_1krqo_116",se="_mappable_1krqo_125",re="_empty_1krqo_70",ie="_limitColWidth_1krqo_133",le="_minColWidth_1krqo_137",de="_hoveringKey_1krqo_141",pe="_draggingKey_1krqo_145",ge="_tableRightMargin_1krqo_149",me="_hoveringRow_1krqo_157",ue="_warningTooltip_1krqo_162",he={dataDisplay:U,table:z,nodeClass:X,emptyCell:Q,header:Y,draggableHeader:Z,dragButton:x,draggingHeader:ee,activeHeader:te,dataKey:ae,value:ne,nestedValue:oe,mappable:se,empty:re,limitColWidth:ie,minColWidth:le,hoveringKey:de,draggingKey:pe,tableRightMargin:ge,hoveringRow:me,warningTooltip:ue},ce=["data-row"],ye=n("img",{src:G},null,-1),be=["data-test-id"],fe=["data-row","data-col"],ve=["onMouseenter","data-name","data-value","data-depth"],Ce={key:0};function we(e,t,a,g,u,h){const C=w("n8n-info-tip"),y=w("MappingPill"),D=w("font-awesome-icon"),s=w("draggable"),I=w("n8n-tooltip"),S=w("i18n-t"),K=w("n8n-tree");return r(),l("div",{class:o(e.$style.dataDisplay)},[e.tableData.columns&&e.tableData.columns.length===0?(r(),l("table",{key:0,class:o(e.$style.table)},[n("tr",null,[n("th",{class:o(e.$style.emptyCell)},null,2),n("th",{class:o(e.$style.tableRightMargin)},null,2)]),(r(!0),l(M,null,E(e.tableData.data,(m,p)=>(r(),l("tr",{key:p,class:o({[e.$style.hoveringRow]:e.isHoveringRow(p)})},[n("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))},[c(C,null,{default:d(()=>[k(b(e.$locale.baseText("runData.emptyItemHint")),1)]),_:1})],40,ce),n("td",{class:o(e.$style.tableRightMargin)},null,2)],2))),128))],2)):(r(),l("table",{key:1,class:o(e.$style.table)},[n("thead",null,[n("tr",null,[(r(!0),l(M,null,E(e.tableData.columns||[],(m,p)=>(r(),l("th",{key:m},[c(I,{placement:"bottom-start",disabled:!e.mappingEnabled,"show-after":1e3},{content:d(()=>[n("div",null,[ye,k(" "+b(e.$locale.baseText("dataMapping.dragColumnToFieldHint")),1)])]),default:d(()=>[c(s,{type:"mapping",data:e.getExpression(m),disabled:!e.mappingEnabled,onDragstart:e.onDragStart,onDragend:i=>e.onDragEnd(i,"column")},{preview:d(({canDrop:i})=>[c(y,{html:e.shorten(m,16,2),"can-drop":i},null,8,["html","can-drop"])]),default:d(({isDragging:i})=>[n("div",{class:o({[e.$style.header]:!0,[e.$style.draggableHeader]:e.mappingEnabled,[e.$style.activeHeader]:(p===e.activeColumn||e.forceShowGrip)&&e.mappingEnabled,[e.$style.draggingHeader]:i})},[n("span",null,b(m||" "),1),n("div",{class:o(e.$style.dragButton)},[c(D,{icon:"grip-vertical"})],2)],2)]),_:2},1032,["data","disabled","onDragstart","onDragend"])]),_:2},1032,["disabled"])]))),128)),e.columnLimitExceeded?(r(),l("th",{key:0,class:o(e.$style.header)},[c(I,{placement:"bottom-end"},{content:d(()=>[n("div",null,[c(S,{tag:"span",keypath:"dataMapping.tableView.tableColumnsExceeded.tooltip"},{columnLimit:d(()=>[k(b(e.columnLimit),1)]),link:d(()=>[n("a",{onClick:t[2]||(t[2]=(...m)=>e.switchToJsonView&&e.switchToJsonView(...m))},b(e.$locale.baseText("dataMapping.tableView.tableColumnsExceeded.tooltip.link")),1)]),_:1})])]),default:d(()=>[n("span",null,[c(D,{class:o(e.$style.warningTooltip),icon:"exclamation-triangle"},null,8,["class"]),k(" "+b(e.$locale.baseText("dataMapping.tableView.tableColumnsExceeded")),1)])]),_:1})],2)):H("",!0),n("th",{class:o(e.$style.tableRightMargin)},null,2)])]),c(s,{tag:"tbody",type:"mapping",targetDataKey:"mappable",disabled:!e.mappingEnabled,onDragstart:e.onCellDragStart,onDragend:e.onCellDragEnd,ref:"draggable"},{preview:d(({canDrop:m,el:p})=>[c(y,{html:e.shorten(e.getPathNameFromTarget(p)||"",16,2),"can-drop":m},null,8,["html","can-drop"])]),default:d(()=>[(r(!0),l(M,null,E(e.tableData.data,(m,p)=>(r(),l("tr",{key:p,class:o({[e.$style.hoveringRow]:e.isHoveringRow(p)}),"data-test-id":e.isHoveringRow(p)?"hovering-item":void 0},[(r(!0),l(M,null,E(m,(i,f)=>(r(),l("td",{key:f,"data-row":p,"data-col":f,onMouseenter:t[4]||(t[4]=(...v)=>e.onMouseEnterCell&&e.onMouseEnterCell(...v)),onMouseleave:t[5]||(t[5]=(...v)=>e.onMouseLeaveCell&&e.onMouseLeaveCell(...v)),class:o(e.hasJsonInColumn(f)?e.$style.minColWidth:e.$style.limitColWidth)},[e.isSimple(i)?(r(),l("span",{key:0,class:o({[e.$style.value]:!0,[e.$style.empty]:e.isEmpty(i)})},b(e.getValueToRender(i)),3)):(r(),W(K,{key:1,nodeClass:e.$style.nodeClass,value:i},{label:d(({label:v,path:$})=>[n("span",{onMouseenter:()=>e.onMouseEnterKey($,f),onMouseleave:t[3]||(t[3]=(...N)=>e.onMouseLeaveKey&&e.onMouseLeaveKey(...N)),class:o({[e.$style.hoveringKey]:e.mappingEnabled&&e.isHovering($,f),[e.$style.draggingKey]:e.isDraggingKey($,f),[e.$style.dataKey]:!0,[e.$style.mappable]:e.mappingEnabled}),"data-target":"mappable","data-name":e.getCellPathName($,f),"data-value":e.getCellExpression($,f),"data-depth":$.length},b(v||e.$locale.baseText("runData.unnamedField")),43,ve)]),value:d(({value:v})=>[n("span",{class:o({[e.$style.nestedValue]:!0,[e.$style.empty]:e.isEmpty(v)})},b(e.getValueToRender(v)),3)]),_:2},1032,["nodeClass","value"]))],42,fe))),128)),e.columnLimitExceeded?(r(),l("td",Ce)):H("",!0),n("td",{class:o(e.$style.tableRightMargin)},null,2)],10,be))),128))]),_:1},8,["disabled","onDragstart","onDragend"])],2))],2)}const De={$style:he},rt=O(J,[["render",we],["__cssModules",De]]);export{rt as default};
|
|
3
|
-
//# sourceMappingURL=RunDataTable-
|
|
3
|
+
//# sourceMappingURL=RunDataTable-301414b2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunDataTable-7ab80bf8.js","sources":["../../src/components/RunDataTable.vue","../../../../../../../../../static/data-mapping-gif.gif"],"sourcesContent":["<template>\n\t<div :class=\"$style.dataDisplay\">\n\t\t<table :class=\"$style.table\" v-if=\"tableData.columns && tableData.columns.length === 0\">\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 :class=\"$style.table\" v-else>\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<span>{{ column || ' ' }}</span>\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\ttag=\"tbody\"\n\t\t\t\ttype=\"mapping\"\n\t\t\t\ttargetDataKey=\"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\tref=\"draggable\"\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@mouseenter=\"onMouseEnterCell\"\n\t\t\t\t\t\t@mouseleave=\"onMouseLeaveCell\"\n\t\t\t\t\t\t:class=\"hasJsonInColumn(index2) ? $style.minColWidth : $style.limitColWidth\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tv-if=\"isSimple(data)\"\n\t\t\t\t\t\t\t:class=\"{ [$style.value]: true, [$style.empty]: isEmpty(data) }\"\n\t\t\t\t\t\t\t>{{ getValueToRender(data) }}</span\n\t\t\t\t\t\t>\n\t\t\t\t\t\t<n8n-tree :nodeClass=\"$style.nodeClass\" v-else :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@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: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>{{ 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<span :class=\"{ [$style.nestedValue]: true, [$style.empty]: isEmpty(value) }\">\n\t\t\t\t\t\t\t\t\t{{ getValueToRender(value) }}\n\t\t\t\t\t\t\t\t</span>\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 { getPairedItemId } from '@/utils';\nimport type { GenericValue, IDataObject, INodeExecutionData } from 'n8n-workflow';\nimport Draggable from './Draggable.vue';\nimport { shorten } from '@/utils';\nimport { externalHooks } from '@/mixins/externalHooks';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport MappingPill from './MappingPill.vue';\nimport { getMappedExpression } from '@/utils/mappingUtils';\n\nconst MAX_COLUMNS_LIMIT = 40;\n\ntype DraggableRef = InstanceType<typeof Draggable>;\n\nexport default defineComponent({\n\tname: 'run-data-table',\n\tmixins: [externalHooks],\n\tcomponents: { Draggable, MappingPill },\n\tprops: {\n\t\tnode: {\n\t\t\ttype: Object as PropType<INodeUi>,\n\t\t},\n\t\tinputData: {\n\t\t\ttype: Array as PropType<INodeExecutionData[]>,\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},\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},\n\t\thasDefaultHoverState: {\n\t\t\ttype: Boolean,\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;\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},\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) {\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\treturn 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 && 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}, 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.draggingHeader {\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","export default \"__VITE_PUBLIC_ASSET__2cfdf016__\""],"names":["MAX_COLUMNS_LIMIT","_sfc_main","defineComponent","externalHooks","Draggable","MappingPill","tbody","mapStores","useNDVStore","useWorkflowsStore","shorten","row","itemIndex","itemNodeId","getPairedItemId","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","_imports_0","_resolveComponent","_normalizeClass","_ctx","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","index1","_cache","args","_createVNode","_component_n8n_info_tip","_withCtx","_hoisted_1","i","_component_n8n_tooltip","_hoisted_2","_component_draggable","canDrop","_component_MappingPill","isDragging","_toDisplayString","_component_i18n_t","_createTextVNode","_component_font_awesome_icon","_createCommentVNode","index2","_createBlock","_component_n8n_tree","label","_hoisted_5","_hoisted_4","_hoisted_6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RunDataTable-301414b2.js","sources":["../../src/components/RunDataTable.vue","../../../../../../../../../static/data-mapping-gif.gif"],"sourcesContent":["<template>\n\t<div :class=\"$style.dataDisplay\">\n\t\t<table :class=\"$style.table\" v-if=\"tableData.columns && tableData.columns.length === 0\">\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 :class=\"$style.table\" v-else>\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<span>{{ column || ' ' }}</span>\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\ttag=\"tbody\"\n\t\t\t\ttype=\"mapping\"\n\t\t\t\ttargetDataKey=\"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\tref=\"draggable\"\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@mouseenter=\"onMouseEnterCell\"\n\t\t\t\t\t\t@mouseleave=\"onMouseLeaveCell\"\n\t\t\t\t\t\t:class=\"hasJsonInColumn(index2) ? $style.minColWidth : $style.limitColWidth\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tv-if=\"isSimple(data)\"\n\t\t\t\t\t\t\t:class=\"{ [$style.value]: true, [$style.empty]: isEmpty(data) }\"\n\t\t\t\t\t\t\t>{{ getValueToRender(data) }}</span\n\t\t\t\t\t\t>\n\t\t\t\t\t\t<n8n-tree :nodeClass=\"$style.nodeClass\" v-else :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@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: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>{{ 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<span :class=\"{ [$style.nestedValue]: true, [$style.empty]: isEmpty(value) }\">\n\t\t\t\t\t\t\t\t\t{{ getValueToRender(value) }}\n\t\t\t\t\t\t\t\t</span>\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 { getPairedItemId } from '@/utils';\nimport type { GenericValue, IDataObject, INodeExecutionData } from 'n8n-workflow';\nimport Draggable from './Draggable.vue';\nimport { shorten } from '@/utils';\nimport { externalHooks } from '@/mixins/externalHooks';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport MappingPill from './MappingPill.vue';\nimport { getMappedExpression } from '@/utils/mappingUtils';\n\nconst MAX_COLUMNS_LIMIT = 40;\n\ntype DraggableRef = InstanceType<typeof Draggable>;\n\nexport default defineComponent({\n\tname: 'run-data-table',\n\tmixins: [externalHooks],\n\tcomponents: { Draggable, MappingPill },\n\tprops: {\n\t\tnode: {\n\t\t\ttype: Object as PropType<INodeUi>,\n\t\t},\n\t\tinputData: {\n\t\t\ttype: Array as PropType<INodeExecutionData[]>,\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},\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},\n\t\thasDefaultHoverState: {\n\t\t\ttype: Boolean,\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;\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},\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) {\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\treturn 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 && 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}, 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.draggingHeader {\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","export default \"__VITE_PUBLIC_ASSET__2cfdf016__\""],"names":["MAX_COLUMNS_LIMIT","_sfc_main","defineComponent","externalHooks","Draggable","MappingPill","tbody","mapStores","useNDVStore","useWorkflowsStore","shorten","row","itemIndex","itemNodeId","getPairedItemId","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","_imports_0","_resolveComponent","_normalizeClass","_ctx","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","index1","_cache","args","_createVNode","_component_n8n_info_tip","_withCtx","_hoisted_1","i","_component_n8n_tooltip","_hoisted_2","_component_draggable","canDrop","_component_MappingPill","isDragging","_toDisplayString","_component_i18n_t","_createTextVNode","_component_font_awesome_icon","_createCommentVNode","index2","_createBlock","_component_n8n_tree","label","_hoisted_5","_hoisted_4","_hoisted_6"],"mappings":"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"}
|