n8n-editor-ui 1.18.1 → 1.18.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.
Files changed (88) hide show
  1. package/.turbo/turbo-build.log +44 -44
  2. package/dist/assets/{CanvasControls-9693cb18.js → CanvasControls-6e03b599.js} +2 -2
  3. package/dist/assets/{CanvasControls-9693cb18.js.map → CanvasControls-6e03b599.js.map} +1 -1
  4. package/dist/assets/{CredentialsView-ff501c21.js → CredentialsView-7fc541bb.js} +2 -2
  5. package/dist/assets/{CredentialsView-ff501c21.js.map → CredentialsView-7fc541bb.js.map} +1 -1
  6. package/dist/assets/{ExecutionFilter-9839fa2f.js → ExecutionFilter-4dcfda5f.js} +2 -2
  7. package/dist/assets/{ExecutionFilter-9839fa2f.js.map → ExecutionFilter-4dcfda5f.js.map} +1 -1
  8. package/dist/assets/{ExecutionPreview-ee3acb1c.js → ExecutionPreview-8436d908.js} +2 -2
  9. package/dist/assets/{ExecutionPreview-ee3acb1c.js.map → ExecutionPreview-8436d908.js.map} +1 -1
  10. package/dist/assets/{ExecutionsInfoAccordion-55c2a107.js → ExecutionsInfoAccordion-021dc499.js} +2 -2
  11. package/dist/assets/{ExecutionsInfoAccordion-55c2a107.js.map → ExecutionsInfoAccordion-021dc499.js.map} +1 -1
  12. package/dist/assets/{ExecutionsLandingPage-97aa7e15.js → ExecutionsLandingPage-3d48310c.js} +2 -2
  13. package/dist/assets/{ExecutionsLandingPage-97aa7e15.js.map → ExecutionsLandingPage-3d48310c.js.map} +1 -1
  14. package/dist/assets/{ExecutionsList-cf5f6b88.js → ExecutionsList-a1b490e4.js} +2 -2
  15. package/dist/assets/ExecutionsList-a1b490e4.js.map +1 -0
  16. package/dist/assets/{ExecutionsView-5ae73302.js → ExecutionsView-7703b595.js} +2 -2
  17. package/dist/assets/{ExecutionsView-5ae73302.js.map → ExecutionsView-7703b595.js.map} +1 -1
  18. package/dist/assets/{FixedCollectionParameter-78836f67.js → FixedCollectionParameter-90a3210f.js} +2 -2
  19. package/dist/assets/{FixedCollectionParameter-78836f67.js.map → FixedCollectionParameter-90a3210f.js.map} +1 -1
  20. package/dist/assets/{MainHeader-408d9087.js → MainHeader-7eaf030e.js} +2 -2
  21. package/dist/assets/{MainHeader-408d9087.js.map → MainHeader-7eaf030e.js.map} +1 -1
  22. package/dist/assets/{MainSidebar-5f622fc9.js → MainSidebar-b0a38e3c.js} +2 -2
  23. package/dist/assets/{MainSidebar-5f622fc9.js.map → MainSidebar-b0a38e3c.js.map} +1 -1
  24. package/dist/assets/{NodeCreation-0715d8da.js → NodeCreation-787a187a.js} +2 -2
  25. package/dist/assets/{NodeCreation-0715d8da.js.map → NodeCreation-787a187a.js.map} +1 -1
  26. package/dist/assets/{NodeCreator-96b100ef.js → NodeCreator-6f839eb9.js} +2 -2
  27. package/dist/assets/{NodeCreator-96b100ef.js.map → NodeCreator-6f839eb9.js.map} +1 -1
  28. package/dist/assets/{NodeView-5651414a.js → NodeView-ef40797d.js} +2 -2
  29. package/dist/assets/{NodeView-5651414a.js.map → NodeView-ef40797d.js.map} +1 -1
  30. package/dist/assets/{ResourcesListLayout-df5d1ba9.js → ResourcesListLayout-88dfcefc.js} +2 -2
  31. package/dist/assets/{ResourcesListLayout-df5d1ba9.js.map → ResourcesListLayout-88dfcefc.js.map} +1 -1
  32. package/dist/assets/{RunDataAi-97c7f732.js → RunDataAi-8d5bd68e.js} +2 -2
  33. package/dist/assets/{RunDataAi-97c7f732.js.map → RunDataAi-8d5bd68e.js.map} +1 -1
  34. package/dist/assets/{RunDataJson-df1dc721.js → RunDataJson-a3e1ca39.js} +2 -2
  35. package/dist/assets/{RunDataJson-df1dc721.js.map → RunDataJson-a3e1ca39.js.map} +1 -1
  36. package/dist/assets/{RunDataJsonActions-25336578.js → RunDataJsonActions-6b0ffebb.js} +2 -2
  37. package/dist/assets/{RunDataJsonActions-25336578.js.map → RunDataJsonActions-6b0ffebb.js.map} +1 -1
  38. package/dist/assets/{RunDataSchema-101b201c.js → RunDataSchema-60c0baf0.js} +2 -2
  39. package/dist/assets/{RunDataSchema-101b201c.js.map → RunDataSchema-60c0baf0.js.map} +1 -1
  40. package/dist/assets/{RunDataTable-17daf3ee.js → RunDataTable-dcf4902d.js} +2 -2
  41. package/dist/assets/{RunDataTable-17daf3ee.js.map → RunDataTable-dcf4902d.js.map} +1 -1
  42. package/dist/assets/{SettingsApiView-e4fc36d4.js → SettingsApiView-667aa889.js} +2 -2
  43. package/dist/assets/{SettingsApiView-e4fc36d4.js.map → SettingsApiView-667aa889.js.map} +1 -1
  44. package/dist/assets/{SettingsCommunityNodesView-32ccd1bd.js → SettingsCommunityNodesView-27bf1a31.js} +2 -2
  45. package/dist/assets/{SettingsCommunityNodesView-32ccd1bd.js.map → SettingsCommunityNodesView-27bf1a31.js.map} +1 -1
  46. package/dist/assets/{SettingsExternalSecrets-b409d644.js → SettingsExternalSecrets-7996830e.js} +2 -2
  47. package/dist/assets/{SettingsExternalSecrets-b409d644.js.map → SettingsExternalSecrets-7996830e.js.map} +1 -1
  48. package/dist/assets/{SettingsFakeDoorView-09162f67.js → SettingsFakeDoorView-3d488495.js} +2 -2
  49. package/dist/assets/{SettingsFakeDoorView-09162f67.js.map → SettingsFakeDoorView-3d488495.js.map} +1 -1
  50. package/dist/assets/{SettingsSourceControl-5fa4c1a5.js → SettingsSourceControl-1c188575.js} +2 -2
  51. package/dist/assets/{SettingsSourceControl-5fa4c1a5.js.map → SettingsSourceControl-1c188575.js.map} +1 -1
  52. package/dist/assets/{SettingsSso-0616c11d.js → SettingsSso-b6867d69.js} +2 -2
  53. package/dist/assets/{SettingsSso-0616c11d.js.map → SettingsSso-b6867d69.js.map} +1 -1
  54. package/dist/assets/{SettingsUsersView-5c377b5a.js → SettingsUsersView-df9ac304.js} +2 -2
  55. package/dist/assets/{SettingsUsersView-5c377b5a.js.map → SettingsUsersView-df9ac304.js.map} +1 -1
  56. package/dist/assets/{SettingsView-97e1b2e3.js → SettingsView-f00add58.js} +2 -2
  57. package/dist/assets/{SettingsView-97e1b2e3.js.map → SettingsView-f00add58.js.map} +1 -1
  58. package/dist/assets/{SigninView-3a4f05d7.js → SigninView-bb78c29d.js} +2 -2
  59. package/dist/assets/{SigninView-3a4f05d7.js.map → SigninView-bb78c29d.js.map} +1 -1
  60. package/dist/assets/{TemplateDetails-afb767a3.js → TemplateDetails-e6bea627.js} +2 -2
  61. package/dist/assets/{TemplateDetails-afb767a3.js.map → TemplateDetails-e6bea627.js.map} +1 -1
  62. package/dist/assets/{TemplateList-8ab2d9d4.js → TemplateList-f0b309ec.js} +2 -2
  63. package/dist/assets/{TemplateList-8ab2d9d4.js.map → TemplateList-f0b309ec.js.map} +1 -1
  64. package/dist/assets/{TemplatesCollectionView-278d0d0c.js → TemplatesCollectionView-c11299ee.js} +2 -2
  65. package/dist/assets/{TemplatesCollectionView-278d0d0c.js.map → TemplatesCollectionView-c11299ee.js.map} +1 -1
  66. package/dist/assets/{TemplatesSearchView-75c82b34.js → TemplatesSearchView-822c8b1c.js} +2 -2
  67. package/dist/assets/{TemplatesSearchView-75c82b34.js.map → TemplatesSearchView-822c8b1c.js.map} +1 -1
  68. package/dist/assets/{TemplatesWorkflowView-8d955f12.js → TemplatesWorkflowView-349f3155.js} +2 -2
  69. package/dist/assets/{TemplatesWorkflowView-8d955f12.js.map → TemplatesWorkflowView-349f3155.js.map} +1 -1
  70. package/dist/assets/{VariablesView-b222c8d4.js → VariablesView-f075cbd4.js} +2 -2
  71. package/dist/assets/{VariablesView-b222c8d4.js.map → VariablesView-f075cbd4.js.map} +1 -1
  72. package/dist/assets/{WorkerView-55c8d5d4.js → WorkerView-5b9d29af.js} +2 -2
  73. package/dist/assets/{WorkerView-55c8d5d4.js.map → WorkerView-5b9d29af.js.map} +1 -1
  74. package/dist/assets/{WorkflowActivator-8fba9207.js → WorkflowActivator-163f4fb5.js} +2 -2
  75. package/dist/assets/{WorkflowActivator-8fba9207.js.map → WorkflowActivator-163f4fb5.js.map} +1 -1
  76. package/dist/assets/{WorkflowsView-323b177e.js → WorkflowsView-bf74dadd.js} +2 -2
  77. package/dist/assets/{WorkflowsView-323b177e.js.map → WorkflowsView-bf74dadd.js.map} +1 -1
  78. package/dist/assets/{executionsHelpers-f6f8f8af.js → executionsHelpers-a9dfda49.js} +2 -2
  79. package/dist/assets/{executionsHelpers-f6f8f8af.js.map → executionsHelpers-a9dfda49.js.map} +1 -1
  80. package/dist/assets/{index-1f0f487e.js → index-ac03fd2d.js} +3 -3
  81. package/dist/assets/{index-1f0f487e.js.map → index-ac03fd2d.js.map} +1 -1
  82. package/dist/assets/{pushConnection-4f2192a6.js → pushConnection-a1ddc3b4.js} +2 -2
  83. package/dist/assets/{pushConnection-4f2192a6.js.map → pushConnection-a1ddc3b4.js.map} +1 -1
  84. package/dist/assets/{workflowActivate-417a26ee.js → workflowActivate-c971eb19.js} +2 -2
  85. package/dist/assets/{workflowActivate-417a26ee.js.map → workflowActivate-c971eb19.js.map} +1 -1
  86. package/dist/index.html +1 -1
  87. package/package.json +1 -1
  88. package/dist/assets/ExecutionsList-cf5f6b88.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{gB as D,L as b,a4 as P,as as f,dQ as v,gz as j,eN as T,ae as M,gA as S,cY as J,_ as N}from"./n8n-6b07beca.js";import{V as k}from"./vue-json-pretty-be89319b.js";import{D as E}from"./NodeView-5651414a.js";import{e as $}from"./index-1f0f487e.js";import{m as A}from"./pinia-af9c3f71.js";import{M as L}from"./MappingPill-142c06bf.js";import{d as V,r as i,aE as w,g as r,o as s,i as p,b as d,w as o,q as g,aG as H,h,j as I,n as m}from"./vendor-f46c350a.js";import"./lodash-es-bad8e3ee.js";import"./@fortawesome/vue-fontawesome-237f4675.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./flatted-8b14da7d.js";import"./@vueuse/core-9fb50532.js";import"./uuid-cf522c50.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./@jsplumb/browser-ui-715581dc.js";import"./file-saver-5cec22b8.js";import"./RunDataAi-97c7f732.js";import"./vue-markdown-render-f04fcdc7.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./chart.js-58383f81.js";import"./workflowActivate-417a26ee.js";const C=w(async()=>J(()=>import("./RunDataJsonActions-25336578.js"),["assets/RunDataJsonActions-25336578.js","assets/pinia-af9c3f71.js","assets/n8n-6b07beca.js","assets/vendor-f46c350a.js","assets/lodash-es-bad8e3ee.js","assets/@fortawesome/vue-fontawesome-237f4675.js","assets/@fortawesome/fontawesome-svg-core-984d6dde.js","assets/esprima-next-8c7e8ff9.js","assets/luxon-19e1de07.js","assets/flatted-8b14da7d.js","assets/@vueuse/core-9fb50532.js","assets/uuid-cf522c50.js","assets/vue-i18n-cb04cc7a.js","assets/@jsplumb/util-d5a5fff8.js","assets/@jsplumb/core-8d347a89.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-5b4468a6.js","assets/@jsplumb/browser-ui-715581dc.js","assets/n8n-0696437d.css","assets/jsonpath-33f4a877.js","assets/index-1f0f487e.js","assets/prettier-51497383.js","assets/codemirror-lang-html-n8n-2834c921.js","assets/@n8n/codemirror-lang-sql-c830a767.js","assets/@lezer/common-4a878264.js","assets/codemirror-lang-n8n-expression-53c11692.js","assets/fast-json-stable-stringify-2d2dc6c9.js","assets/timeago.js-a9e71aec.js","assets/qrcode.vue-065a6dad.js","assets/vue3-touch-events-ee55ce04.js","assets/@fortawesome/free-solid-svg-icons-49fe6185.js","assets/@fortawesome/free-regular-svg-icons-74cb85f8.js","assets/chart.js-58383f81.js","assets/index-1aa46e16.css","assets/NodeView-5651414a.js","assets/file-saver-5cec22b8.js","assets/vue-json-pretty-be89319b.js","assets/RunDataAi-97c7f732.js","assets/vue-markdown-render-f04fcdc7.js","assets/RunDataAi-75c0f536.css","assets/workflowActivate-417a26ee.js","assets/NodeView-45f84e5b.css","assets/RunDataJsonActions-698bad68.css"])),F=V({name:"run-data-json",mixins:[$],components:{VueJsonPretty:k,Draggable:E,RunDataJsonActions:C,MappingPill:L},props:{editMode:{type:Object},sessionId:{type:String},paneType:{type:String},node:{type:Object},inputData:{type:Array},mappingEnabled:{type:Boolean},distanceFromActive:{type:Number},runIndex:{type:Number},totalRuns:{type:Number},search:{type:String}},setup(){const e=i(D),a=i(null),n=i("json");return{selectedJsonPath:e,draggingPath:a,displayMode:n}},computed:{...A(P,b),jsonData(){return f(this.inputData)}},methods:{getShortKey(e){return e?v(e.dataset.name||"",16,2):""},getJsonParameterPath(e){const a=e.replace(/^(\["?\d"?])/,"");return j({nodeName:this.node.name,distanceFromActive:this.distanceFromActive,path:a})},onDragStart(e){e!=null&&e.dataset.path&&(this.draggingPath=e.dataset.path),this.ndvStore.resetMappingTelemetry()},onDragEnd(e){this.draggingPath=null;const a=this.ndvStore.mappingTelemetry,n={src_node_type:this.node.type,src_field_name:e.dataset.name||"",src_nodes_back:this.distanceFromActive,src_run_index:this.runIndex,src_runs_total:this.totalRuns,src_field_nest_level:e.dataset.depth||0,src_view:"json",src_element:e,success:!1,...a};setTimeout(()=>{this.$externalHooks().run("runDataJson.onDragEnd",n),this.$telemetry.track("User dragged data for mapping",n)},1e3)},getContent(e){return T(e)?`"${e}"`:JSON.stringify(e)},getListItemName(e){return e.replace(/^(\["?\d"?]\.?)/g,"")},highlightSearchTerm(e){return M(S(this.getContent(e),this.search))}}}),B="_jsonDisplay_1wesj_5",R="_mappable_1wesj_24",K="_dragged_1wesj_31",O={jsonDisplay:B,mappable:R,dragged:K};const z=["data-value","data-name","data-path","data-depth","innerHTML"],U=["innerHTML"],q=["data-value","data-name","data-path","data-depth","innerHTML"];function G(e,a,n,W,Y,X){const c=r("run-data-json-actions"),u=r("MappingPill"),y=r("vue-json-pretty"),_=r("draggable");return s(),p("div",{class:m(e.$style.jsonDisplay)},[(s(),d(H,null,{default:o(()=>[e.editMode.enabled?g("",!0):(s(),d(c,{key:0,node:e.node,sessioId:e.sessionId,displayMode:e.displayMode,distanceFromActive:e.distanceFromActive,selectedJsonPath:e.selectedJsonPath,jsonData:e.jsonData,paneType:e.paneType},null,8,["node","sessioId","displayMode","distanceFromActive","selectedJsonPath","jsonData","paneType"]))]),_:1})),h(_,{type:"mapping",targetDataKey:"mappable",disabled:!e.mappingEnabled,onDragstart:e.onDragStart,onDragend:e.onDragEnd},{preview:o(({canDrop:t,el:l})=>[l?(s(),d(u,{key:0,html:e.getShortKey(l),"can-drop":t},null,8,["html","can-drop"])):g("",!0)]),default:o(()=>[h(y,{data:e.jsonData,deep:10,showLength:!0,selectedValue:e.selectedJsonPath,rootPath:"",selectableType:"single",class:"json-data","onUpdate:selectedValue":a[0]||(a[0]=t=>e.selectedJsonPath=t)},{renderNodeKey:o(({node:t})=>[I("span",{"data-target":"mappable","data-value":e.getJsonParameterPath(t.path),"data-name":t.key,"data-path":t.path,"data-depth":t.level,class:m({[e.$style.mappable]:e.mappingEnabled,[e.$style.dragged]:e.draggingPath===t.path}),innerHTML:e.highlightSearchTerm(t.key)},null,10,z)]),renderNodeValue:o(({node:t})=>[isNaN(t.index)?(s(),p("span",{key:0,innerHTML:e.highlightSearchTerm(t.content)},null,8,U)):(s(),p("span",{key:1,"data-target":"mappable","data-value":e.getJsonParameterPath(t.path),"data-name":e.getListItemName(t.path),"data-path":t.path,"data-depth":t.level,class:m([{[e.$style.mappable]:e.mappingEnabled,[e.$style.dragged]:e.draggingPath===t.path},"ph-no-capture"]),innerHTML:e.highlightSearchTerm(t.content)},null,10,q))]),_:1},8,["data","selectedValue"])]),_:1},8,["disabled","onDragstart","onDragend"])],2)}const Q={$style:O},we=N(F,[["render",G],["__cssModules",Q]]);export{we as default};
2
- //# sourceMappingURL=RunDataJson-df1dc721.js.map
1
+ import{gB as D,L as b,a4 as P,as as f,dQ as v,gz as j,eN as T,ae as M,gA as S,cY as J,_ as N}from"./n8n-6b07beca.js";import{V as k}from"./vue-json-pretty-be89319b.js";import{D as E}from"./NodeView-ef40797d.js";import{e as $}from"./index-ac03fd2d.js";import{m as A}from"./pinia-af9c3f71.js";import{M as L}from"./MappingPill-142c06bf.js";import{d as V,r as i,aE as w,g as r,o as s,i as p,b as d,w as o,q as g,aG as H,h,j as I,n as m}from"./vendor-f46c350a.js";import"./lodash-es-bad8e3ee.js";import"./@fortawesome/vue-fontawesome-237f4675.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./flatted-8b14da7d.js";import"./@vueuse/core-9fb50532.js";import"./uuid-cf522c50.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./@jsplumb/browser-ui-715581dc.js";import"./file-saver-5cec22b8.js";import"./RunDataAi-8d5bd68e.js";import"./vue-markdown-render-f04fcdc7.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./chart.js-58383f81.js";import"./workflowActivate-c971eb19.js";const C=w(async()=>J(()=>import("./RunDataJsonActions-6b0ffebb.js"),["assets/RunDataJsonActions-6b0ffebb.js","assets/pinia-af9c3f71.js","assets/n8n-6b07beca.js","assets/vendor-f46c350a.js","assets/lodash-es-bad8e3ee.js","assets/@fortawesome/vue-fontawesome-237f4675.js","assets/@fortawesome/fontawesome-svg-core-984d6dde.js","assets/esprima-next-8c7e8ff9.js","assets/luxon-19e1de07.js","assets/flatted-8b14da7d.js","assets/@vueuse/core-9fb50532.js","assets/uuid-cf522c50.js","assets/vue-i18n-cb04cc7a.js","assets/@jsplumb/util-d5a5fff8.js","assets/@jsplumb/core-8d347a89.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-5b4468a6.js","assets/@jsplumb/browser-ui-715581dc.js","assets/n8n-0696437d.css","assets/jsonpath-33f4a877.js","assets/index-ac03fd2d.js","assets/prettier-51497383.js","assets/codemirror-lang-html-n8n-2834c921.js","assets/@n8n/codemirror-lang-sql-c830a767.js","assets/@lezer/common-4a878264.js","assets/codemirror-lang-n8n-expression-53c11692.js","assets/fast-json-stable-stringify-2d2dc6c9.js","assets/timeago.js-a9e71aec.js","assets/qrcode.vue-065a6dad.js","assets/vue3-touch-events-ee55ce04.js","assets/@fortawesome/free-solid-svg-icons-49fe6185.js","assets/@fortawesome/free-regular-svg-icons-74cb85f8.js","assets/chart.js-58383f81.js","assets/index-1aa46e16.css","assets/NodeView-ef40797d.js","assets/file-saver-5cec22b8.js","assets/vue-json-pretty-be89319b.js","assets/RunDataAi-8d5bd68e.js","assets/vue-markdown-render-f04fcdc7.js","assets/RunDataAi-75c0f536.css","assets/workflowActivate-c971eb19.js","assets/NodeView-45f84e5b.css","assets/RunDataJsonActions-698bad68.css"])),F=V({name:"run-data-json",mixins:[$],components:{VueJsonPretty:k,Draggable:E,RunDataJsonActions:C,MappingPill:L},props:{editMode:{type:Object},sessionId:{type:String},paneType:{type:String},node:{type:Object},inputData:{type:Array},mappingEnabled:{type:Boolean},distanceFromActive:{type:Number},runIndex:{type:Number},totalRuns:{type:Number},search:{type:String}},setup(){const e=i(D),a=i(null),n=i("json");return{selectedJsonPath:e,draggingPath:a,displayMode:n}},computed:{...A(P,b),jsonData(){return f(this.inputData)}},methods:{getShortKey(e){return e?v(e.dataset.name||"",16,2):""},getJsonParameterPath(e){const a=e.replace(/^(\["?\d"?])/,"");return j({nodeName:this.node.name,distanceFromActive:this.distanceFromActive,path:a})},onDragStart(e){e!=null&&e.dataset.path&&(this.draggingPath=e.dataset.path),this.ndvStore.resetMappingTelemetry()},onDragEnd(e){this.draggingPath=null;const a=this.ndvStore.mappingTelemetry,n={src_node_type:this.node.type,src_field_name:e.dataset.name||"",src_nodes_back:this.distanceFromActive,src_run_index:this.runIndex,src_runs_total:this.totalRuns,src_field_nest_level:e.dataset.depth||0,src_view:"json",src_element:e,success:!1,...a};setTimeout(()=>{this.$externalHooks().run("runDataJson.onDragEnd",n),this.$telemetry.track("User dragged data for mapping",n)},1e3)},getContent(e){return T(e)?`"${e}"`:JSON.stringify(e)},getListItemName(e){return e.replace(/^(\["?\d"?]\.?)/g,"")},highlightSearchTerm(e){return M(S(this.getContent(e),this.search))}}}),B="_jsonDisplay_1wesj_5",R="_mappable_1wesj_24",K="_dragged_1wesj_31",O={jsonDisplay:B,mappable:R,dragged:K};const z=["data-value","data-name","data-path","data-depth","innerHTML"],U=["innerHTML"],q=["data-value","data-name","data-path","data-depth","innerHTML"];function G(e,a,n,W,Y,X){const c=r("run-data-json-actions"),u=r("MappingPill"),y=r("vue-json-pretty"),_=r("draggable");return s(),p("div",{class:m(e.$style.jsonDisplay)},[(s(),d(H,null,{default:o(()=>[e.editMode.enabled?g("",!0):(s(),d(c,{key:0,node:e.node,sessioId:e.sessionId,displayMode:e.displayMode,distanceFromActive:e.distanceFromActive,selectedJsonPath:e.selectedJsonPath,jsonData:e.jsonData,paneType:e.paneType},null,8,["node","sessioId","displayMode","distanceFromActive","selectedJsonPath","jsonData","paneType"]))]),_:1})),h(_,{type:"mapping",targetDataKey:"mappable",disabled:!e.mappingEnabled,onDragstart:e.onDragStart,onDragend:e.onDragEnd},{preview:o(({canDrop:t,el:l})=>[l?(s(),d(u,{key:0,html:e.getShortKey(l),"can-drop":t},null,8,["html","can-drop"])):g("",!0)]),default:o(()=>[h(y,{data:e.jsonData,deep:10,showLength:!0,selectedValue:e.selectedJsonPath,rootPath:"",selectableType:"single",class:"json-data","onUpdate:selectedValue":a[0]||(a[0]=t=>e.selectedJsonPath=t)},{renderNodeKey:o(({node:t})=>[I("span",{"data-target":"mappable","data-value":e.getJsonParameterPath(t.path),"data-name":t.key,"data-path":t.path,"data-depth":t.level,class:m({[e.$style.mappable]:e.mappingEnabled,[e.$style.dragged]:e.draggingPath===t.path}),innerHTML:e.highlightSearchTerm(t.key)},null,10,z)]),renderNodeValue:o(({node:t})=>[isNaN(t.index)?(s(),p("span",{key:0,innerHTML:e.highlightSearchTerm(t.content)},null,8,U)):(s(),p("span",{key:1,"data-target":"mappable","data-value":e.getJsonParameterPath(t.path),"data-name":e.getListItemName(t.path),"data-path":t.path,"data-depth":t.level,class:m([{[e.$style.mappable]:e.mappingEnabled,[e.$style.dragged]:e.draggingPath===t.path},"ph-no-capture"]),innerHTML:e.highlightSearchTerm(t.content)},null,10,q))]),_:1},8,["data","selectedValue"])]),_:1},8,["disabled","onDragstart","onDragend"])],2)}const Q={$style:O},we=N(F,[["render",G],["__cssModules",Q]]);export{we as default};
2
+ //# sourceMappingURL=RunDataJson-a3e1ca39.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["RunDataJsonActions","defineAsyncComponent","__vitePreload","_sfc_main","defineComponent","externalHooks","VueJsonPretty","Draggable","MappingPill","selectedJsonPath","ref","nonExistingJsonPath","draggingPath","displayMode","mapStores","useNDVStore","useWorkflowsStore","executionDataToJson","el","shorten","path","subPath","getMappedExpression","mappingTelemetry","telemetryPayload","value","isString","sanitizeHtml","highlightText","_resolveComponent","_ctx","_createBlock","_Suspense","_withCtx","_openBlock","_component_run_data_json_actions","_component_draggable","canDrop","_component_MappingPill","_createCommentVNode","_createVNode","_component_vue_json_pretty","_cache","$event","node","_createElementVNode","_normalizeClass","_hoisted_1","_createElementBlock","_hoisted_2"],"sources":["../../src/components/RunDataJson.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.jsonDisplay\">\n\t\t<Suspense>\n\t\t\t<run-data-json-actions\n\t\t\t\tv-if=\"!editMode.enabled\"\n\t\t\t\t:node=\"node\"\n\t\t\t\t:sessioId=\"sessionId\"\n\t\t\t\t:displayMode=\"displayMode\"\n\t\t\t\t:distanceFromActive=\"distanceFromActive\"\n\t\t\t\t:selectedJsonPath=\"selectedJsonPath\"\n\t\t\t\t:jsonData=\"jsonData\"\n\t\t\t\t:paneType=\"paneType\"\n\t\t\t/>\n\t\t</Suspense>\n\t\t<draggable\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=\"getShortKey(el)\" :can-drop=\"canDrop\" />\n\t\t\t</template>\n\t\t\t<vue-json-pretty\n\t\t\t\t:data=\"jsonData\"\n\t\t\t\t:deep=\"10\"\n\t\t\t\t:showLength=\"true\"\n\t\t\t\t:selectedValue=\"selectedJsonPath\"\n\t\t\t\trootPath=\"\"\n\t\t\t\tselectableType=\"single\"\n\t\t\t\tclass=\"json-data\"\n\t\t\t\t@update:selectedValue=\"selectedJsonPath = $event\"\n\t\t\t>\n\t\t\t\t<template #renderNodeKey=\"{ node }\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tdata-target=\"mappable\"\n\t\t\t\t\t\t:data-value=\"getJsonParameterPath(node.path)\"\n\t\t\t\t\t\t:data-name=\"node.key\"\n\t\t\t\t\t\t:data-path=\"node.path\"\n\t\t\t\t\t\t:data-depth=\"node.level\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t[$style.mappable]: mappingEnabled,\n\t\t\t\t\t\t\t[$style.dragged]: draggingPath === node.path,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tv-html=\"highlightSearchTerm(node.key)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t\t<template #renderNodeValue=\"{ node }\">\n\t\t\t\t\t<span v-if=\"isNaN(node.index)\" v-html=\"highlightSearchTerm(node.content)\" />\n\t\t\t\t\t<span\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tdata-target=\"mappable\"\n\t\t\t\t\t\t:data-value=\"getJsonParameterPath(node.path)\"\n\t\t\t\t\t\t:data-name=\"getListItemName(node.path)\"\n\t\t\t\t\t\t:data-path=\"node.path\"\n\t\t\t\t\t\t:data-depth=\"node.level\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t[$style.mappable]: mappingEnabled,\n\t\t\t\t\t\t\t[$style.dragged]: draggingPath === node.path,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"ph-no-capture\"\n\t\t\t\t\t\tv-html=\"highlightSearchTerm(node.content)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t</vue-json-pretty>\n\t\t</draggable>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineAsyncComponent, defineComponent, ref } from 'vue';\nimport type { PropType } from 'vue';\nimport VueJsonPretty from 'vue-json-pretty';\nimport type { IDataObject, INodeExecutionData } from 'n8n-workflow';\nimport Draggable from '@/components/Draggable.vue';\nimport { executionDataToJson, highlightText, isString, sanitizeHtml, shorten } from '@/utils';\nimport type { INodeUi } from '@/Interface';\nimport { externalHooks } from '@/mixins/externalHooks';\nimport { mapStores } from 'pinia';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport MappingPill from './MappingPill.vue';\nimport { getMappedExpression } from '@/utils/mappingUtils';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { nonExistingJsonPath } from '@/constants';\n\nconst RunDataJsonActions = defineAsyncComponent(\n\tasync () => import('@/components/RunDataJsonActions.vue'),\n);\n\nexport default defineComponent({\n\tname: 'run-data-json',\n\tmixins: [externalHooks],\n\tcomponents: {\n\t\tVueJsonPretty,\n\t\tDraggable,\n\t\tRunDataJsonActions,\n\t\tMappingPill,\n\t},\n\tprops: {\n\t\teditMode: {\n\t\t\ttype: Object as () => { enabled?: boolean; value?: string },\n\t\t},\n\t\tsessionId: {\n\t\t\ttype: String,\n\t\t},\n\t\tpaneType: {\n\t\t\ttype: String,\n\t\t},\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\ttotalRuns: {\n\t\t\ttype: Number,\n\t\t},\n\t\tsearch: {\n\t\t\ttype: String,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst selectedJsonPath = ref(nonExistingJsonPath);\n\t\tconst draggingPath = ref<null | string>(null);\n\t\tconst displayMode = ref('json');\n\n\t\treturn {\n\t\t\tselectedJsonPath,\n\t\t\tdraggingPath,\n\t\t\tdisplayMode,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useNDVStore, useWorkflowsStore),\n\t\tjsonData(): IDataObject[] {\n\t\t\treturn executionDataToJson(this.inputData);\n\t\t},\n\t},\n\tmethods: {\n\t\tgetShortKey(el: HTMLElement): string {\n\t\t\tif (!el) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn shorten(el.dataset.name || '', 16, 2);\n\t\t},\n\t\tgetJsonParameterPath(path: string): string {\n\t\t\tconst subPath = path.replace(/^(\\[\"?\\d\"?])/, ''); // remove item position\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: subPath,\n\t\t\t});\n\t\t},\n\t\tonDragStart(el: HTMLElement) {\n\t\t\tif (el?.dataset.path) {\n\t\t\t\tthis.draggingPath = el.dataset.path;\n\t\t\t}\n\n\t\t\tthis.ndvStore.resetMappingTelemetry();\n\t\t},\n\t\tonDragEnd(el: HTMLElement) {\n\t\t\tthis.draggingPath = null;\n\t\t\tconst mappingTelemetry = this.ndvStore.mappingTelemetry;\n\t\t\tconst telemetryPayload = {\n\t\t\t\tsrc_node_type: this.node.type,\n\t\t\t\tsrc_field_name: el.dataset.name || '',\n\t\t\t\tsrc_nodes_back: this.distanceFromActive,\n\t\t\t\tsrc_run_index: this.runIndex,\n\t\t\t\tsrc_runs_total: this.totalRuns,\n\t\t\t\tsrc_field_nest_level: el.dataset.depth || 0,\n\t\t\t\tsrc_view: 'json',\n\t\t\t\tsrc_element: el,\n\t\t\t\tsuccess: false,\n\t\t\t\t...mappingTelemetry,\n\t\t\t};\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tvoid this.$externalHooks().run('runDataJson.onDragEnd', telemetryPayload);\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\tgetContent(value: unknown): string {\n\t\t\treturn isString(value) ? `\"${value}\"` : JSON.stringify(value);\n\t\t},\n\t\tgetListItemName(path: string): string {\n\t\t\treturn path.replace(/^(\\[\"?\\d\"?]\\.?)/g, '');\n\t\t},\n\t\thighlightSearchTerm(value: string): string {\n\t\t\treturn sanitizeHtml(highlightText(this.getContent(value), this.search));\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.jsonDisplay {\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\t&:hover {\n\t\t/* Shows .actionsGroup element from <run-data-json-actions /> child component */\n\t\t> div:first-child {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.mappable {\n\tcursor: grab;\n\n\t&:hover {\n\t\tbackground-color: var(--color-json-highlight);\n\t}\n}\n\n.dragged {\n\t&,\n\t&:hover {\n\t\tbackground-color: var(--color-primary-tint-2);\n\t}\n}\n</style>\n\n<style lang=\"scss\">\n.vjs-tree {\n\tcolor: var(--color-json-default);\n}\n\n.vjs-tree-node {\n\t&:hover {\n\t\tbackground-color: transparent;\n\t}\n\n\t&.is-highlight {\n\t\tbackground-color: var(--color-json-highlight);\n\t}\n}\n\n.vjs-key,\n.vjs-value {\n\t> span {\n\t\tcolor: var(--color-text-dark);\n\t\tline-height: 1.7;\n\t\tborder-radius: var(--border-radius-base);\n\t}\n}\n\n.vjs-value {\n\t> span {\n\t\tpadding: 0 var(--spacing-5xs) 0 var(--spacing-5xs);\n\t\tmargin-left: var(--spacing-5xs);\n\t}\n}\n\n.vjs-tree .vjs-value-null {\n\t&,\n\tspan {\n\t\tcolor: var(--color-json-null);\n\t}\n}\n\n.vjs-tree .vjs-value-boolean {\n\t&,\n\tspan {\n\t\tcolor: var(--color-json-boolean);\n\t}\n}\n\n.vjs-tree .vjs-value-number {\n\t&,\n\tspan {\n\t\tcolor: var(--color-json-number);\n\t}\n}\n\n.vjs-tree .vjs-value-string {\n\t&,\n\tspan {\n\t\tcolor: var(--color-json-string);\n\t}\n}\n\n.vjs-tree .vjs-key {\n\tcolor: var(--color-json-key);\n}\n\n.vjs-tree .vjs-tree__brackets {\n\tcolor: var(--color-json-brackets);\n}\n\n.vjs-tree .vjs-tree__brackets:hover {\n\tcolor: var(--color-json-brackets-hover);\n}\n\n.vjs-tree .vjs-tree__content.has-line {\n\tborder-left: 1px dotted var(--color-json-line);\n}\n</style>\n"],"file":"assets/RunDataJson-df1dc721.js"}
1
+ {"version":3,"mappings":"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","names":["RunDataJsonActions","defineAsyncComponent","__vitePreload","_sfc_main","defineComponent","externalHooks","VueJsonPretty","Draggable","MappingPill","selectedJsonPath","ref","nonExistingJsonPath","draggingPath","displayMode","mapStores","useNDVStore","useWorkflowsStore","executionDataToJson","el","shorten","path","subPath","getMappedExpression","mappingTelemetry","telemetryPayload","value","isString","sanitizeHtml","highlightText","_resolveComponent","_ctx","_createBlock","_Suspense","_withCtx","_openBlock","_component_run_data_json_actions","_component_draggable","canDrop","_component_MappingPill","_createCommentVNode","_createVNode","_component_vue_json_pretty","_cache","$event","node","_createElementVNode","_normalizeClass","_hoisted_1","_createElementBlock","_hoisted_2"],"sources":["../../src/components/RunDataJson.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.jsonDisplay\">\n\t\t<Suspense>\n\t\t\t<run-data-json-actions\n\t\t\t\tv-if=\"!editMode.enabled\"\n\t\t\t\t:node=\"node\"\n\t\t\t\t:sessioId=\"sessionId\"\n\t\t\t\t:displayMode=\"displayMode\"\n\t\t\t\t:distanceFromActive=\"distanceFromActive\"\n\t\t\t\t:selectedJsonPath=\"selectedJsonPath\"\n\t\t\t\t:jsonData=\"jsonData\"\n\t\t\t\t:paneType=\"paneType\"\n\t\t\t/>\n\t\t</Suspense>\n\t\t<draggable\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=\"getShortKey(el)\" :can-drop=\"canDrop\" />\n\t\t\t</template>\n\t\t\t<vue-json-pretty\n\t\t\t\t:data=\"jsonData\"\n\t\t\t\t:deep=\"10\"\n\t\t\t\t:showLength=\"true\"\n\t\t\t\t:selectedValue=\"selectedJsonPath\"\n\t\t\t\trootPath=\"\"\n\t\t\t\tselectableType=\"single\"\n\t\t\t\tclass=\"json-data\"\n\t\t\t\t@update:selectedValue=\"selectedJsonPath = $event\"\n\t\t\t>\n\t\t\t\t<template #renderNodeKey=\"{ node }\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tdata-target=\"mappable\"\n\t\t\t\t\t\t:data-value=\"getJsonParameterPath(node.path)\"\n\t\t\t\t\t\t:data-name=\"node.key\"\n\t\t\t\t\t\t:data-path=\"node.path\"\n\t\t\t\t\t\t:data-depth=\"node.level\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t[$style.mappable]: mappingEnabled,\n\t\t\t\t\t\t\t[$style.dragged]: draggingPath === node.path,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tv-html=\"highlightSearchTerm(node.key)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t\t<template #renderNodeValue=\"{ node }\">\n\t\t\t\t\t<span v-if=\"isNaN(node.index)\" v-html=\"highlightSearchTerm(node.content)\" />\n\t\t\t\t\t<span\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tdata-target=\"mappable\"\n\t\t\t\t\t\t:data-value=\"getJsonParameterPath(node.path)\"\n\t\t\t\t\t\t:data-name=\"getListItemName(node.path)\"\n\t\t\t\t\t\t:data-path=\"node.path\"\n\t\t\t\t\t\t:data-depth=\"node.level\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t[$style.mappable]: mappingEnabled,\n\t\t\t\t\t\t\t[$style.dragged]: draggingPath === node.path,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"ph-no-capture\"\n\t\t\t\t\t\tv-html=\"highlightSearchTerm(node.content)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t</vue-json-pretty>\n\t\t</draggable>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineAsyncComponent, defineComponent, ref } from 'vue';\nimport type { PropType } from 'vue';\nimport VueJsonPretty from 'vue-json-pretty';\nimport type { IDataObject, INodeExecutionData } from 'n8n-workflow';\nimport Draggable from '@/components/Draggable.vue';\nimport { executionDataToJson, highlightText, isString, sanitizeHtml, shorten } from '@/utils';\nimport type { INodeUi } from '@/Interface';\nimport { externalHooks } from '@/mixins/externalHooks';\nimport { mapStores } from 'pinia';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport MappingPill from './MappingPill.vue';\nimport { getMappedExpression } from '@/utils/mappingUtils';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { nonExistingJsonPath } from '@/constants';\n\nconst RunDataJsonActions = defineAsyncComponent(\n\tasync () => import('@/components/RunDataJsonActions.vue'),\n);\n\nexport default defineComponent({\n\tname: 'run-data-json',\n\tmixins: [externalHooks],\n\tcomponents: {\n\t\tVueJsonPretty,\n\t\tDraggable,\n\t\tRunDataJsonActions,\n\t\tMappingPill,\n\t},\n\tprops: {\n\t\teditMode: {\n\t\t\ttype: Object as () => { enabled?: boolean; value?: string },\n\t\t},\n\t\tsessionId: {\n\t\t\ttype: String,\n\t\t},\n\t\tpaneType: {\n\t\t\ttype: String,\n\t\t},\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\ttotalRuns: {\n\t\t\ttype: Number,\n\t\t},\n\t\tsearch: {\n\t\t\ttype: String,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst selectedJsonPath = ref(nonExistingJsonPath);\n\t\tconst draggingPath = ref<null | string>(null);\n\t\tconst displayMode = ref('json');\n\n\t\treturn {\n\t\t\tselectedJsonPath,\n\t\t\tdraggingPath,\n\t\t\tdisplayMode,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useNDVStore, useWorkflowsStore),\n\t\tjsonData(): IDataObject[] {\n\t\t\treturn executionDataToJson(this.inputData);\n\t\t},\n\t},\n\tmethods: {\n\t\tgetShortKey(el: HTMLElement): string {\n\t\t\tif (!el) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn shorten(el.dataset.name || '', 16, 2);\n\t\t},\n\t\tgetJsonParameterPath(path: string): string {\n\t\t\tconst subPath = path.replace(/^(\\[\"?\\d\"?])/, ''); // remove item position\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: subPath,\n\t\t\t});\n\t\t},\n\t\tonDragStart(el: HTMLElement) {\n\t\t\tif (el?.dataset.path) {\n\t\t\t\tthis.draggingPath = el.dataset.path;\n\t\t\t}\n\n\t\t\tthis.ndvStore.resetMappingTelemetry();\n\t\t},\n\t\tonDragEnd(el: HTMLElement) {\n\t\t\tthis.draggingPath = null;\n\t\t\tconst mappingTelemetry = this.ndvStore.mappingTelemetry;\n\t\t\tconst telemetryPayload = {\n\t\t\t\tsrc_node_type: this.node.type,\n\t\t\t\tsrc_field_name: el.dataset.name || '',\n\t\t\t\tsrc_nodes_back: this.distanceFromActive,\n\t\t\t\tsrc_run_index: this.runIndex,\n\t\t\t\tsrc_runs_total: this.totalRuns,\n\t\t\t\tsrc_field_nest_level: el.dataset.depth || 0,\n\t\t\t\tsrc_view: 'json',\n\t\t\t\tsrc_element: el,\n\t\t\t\tsuccess: false,\n\t\t\t\t...mappingTelemetry,\n\t\t\t};\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tvoid this.$externalHooks().run('runDataJson.onDragEnd', telemetryPayload);\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\tgetContent(value: unknown): string {\n\t\t\treturn isString(value) ? `\"${value}\"` : JSON.stringify(value);\n\t\t},\n\t\tgetListItemName(path: string): string {\n\t\t\treturn path.replace(/^(\\[\"?\\d\"?]\\.?)/g, '');\n\t\t},\n\t\thighlightSearchTerm(value: string): string {\n\t\t\treturn sanitizeHtml(highlightText(this.getContent(value), this.search));\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.jsonDisplay {\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\t&:hover {\n\t\t/* Shows .actionsGroup element from <run-data-json-actions /> child component */\n\t\t> div:first-child {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.mappable {\n\tcursor: grab;\n\n\t&:hover {\n\t\tbackground-color: var(--color-json-highlight);\n\t}\n}\n\n.dragged {\n\t&,\n\t&:hover {\n\t\tbackground-color: var(--color-primary-tint-2);\n\t}\n}\n</style>\n\n<style lang=\"scss\">\n.vjs-tree {\n\tcolor: var(--color-json-default);\n}\n\n.vjs-tree-node {\n\t&:hover {\n\t\tbackground-color: transparent;\n\t}\n\n\t&.is-highlight {\n\t\tbackground-color: var(--color-json-highlight);\n\t}\n}\n\n.vjs-key,\n.vjs-value {\n\t> span {\n\t\tcolor: var(--color-text-dark);\n\t\tline-height: 1.7;\n\t\tborder-radius: var(--border-radius-base);\n\t}\n}\n\n.vjs-value {\n\t> span {\n\t\tpadding: 0 var(--spacing-5xs) 0 var(--spacing-5xs);\n\t\tmargin-left: var(--spacing-5xs);\n\t}\n}\n\n.vjs-tree .vjs-value-null {\n\t&,\n\tspan {\n\t\tcolor: var(--color-json-null);\n\t}\n}\n\n.vjs-tree .vjs-value-boolean {\n\t&,\n\tspan {\n\t\tcolor: var(--color-json-boolean);\n\t}\n}\n\n.vjs-tree .vjs-value-number {\n\t&,\n\tspan {\n\t\tcolor: var(--color-json-number);\n\t}\n}\n\n.vjs-tree .vjs-value-string {\n\t&,\n\tspan {\n\t\tcolor: var(--color-json-string);\n\t}\n}\n\n.vjs-tree .vjs-key {\n\tcolor: var(--color-json-key);\n}\n\n.vjs-tree .vjs-tree__brackets {\n\tcolor: var(--color-json-brackets);\n}\n\n.vjs-tree .vjs-tree__brackets:hover {\n\tcolor: var(--color-json-brackets-hover);\n}\n\n.vjs-tree .vjs-tree__content.has-line {\n\tborder-left: 1px dotted var(--color-json-line);\n}\n</style>\n"],"file":"assets/RunDataJson-a3e1ca39.js"}
@@ -1,2 +1,2 @@
1
- import{m as g}from"./pinia-af9c3f71.js";import{j as w}from"./jsonpath-33f4a877.js";import{g as T,n as b,c as v}from"./index-1f0f487e.js";import{p as J}from"./NodeView-5651414a.js";import{gB as u,u as $,L as k,a4 as j,ek as C,as as S,gF as y,an as x,_ as D}from"./n8n-6b07beca.js";import"./@fortawesome/vue-fontawesome-237f4675.js";import{d as I,g as p,o as l,i as N,b as P,w as i,h as r,s as c,t as d,j as V,n as B}from"./vendor-f46c350a.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./lodash-es-bad8e3ee.js";import"./uuid-cf522c50.js";import"./luxon-19e1de07.js";import"./esprima-next-8c7e8ff9.js";import"./@vueuse/core-9fb50532.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/browser-ui-715581dc.js";import"./chart.js-58383f81.js";import"./flatted-8b14da7d.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./file-saver-5cec22b8.js";import"./vue-json-pretty-be89319b.js";import"./RunDataAi-97c7f732.js";import"./vue-markdown-render-f04fcdc7.js";import"./workflowActivate-417a26ee.js";const O=I({name:"run-data-json-actions",mixins:[T,b,J,v],props:{node:{type:Object},paneType:{type:String},sessionId:{type:String},currentOutputIndex:{type:Number},runIndex:{type:Number},displayMode:{type:String},distanceFromActive:{type:Number},selectedJsonPath:{type:String,default:u},jsonData:{type:Array,required:!0}},setup(){return{i18n:x(),...$()}},computed:{...g(j,k),activeNode(){return this.ndvStore.activeNode},noSelection(){return this.selectedJsonPath===u},normalisedJsonPath(){return this.noSelection?'[""]':this.selectedJsonPath}},methods:{getJsonValue(){let t=w.query(this.jsonData,`$${this.normalisedJsonPath}`)[0];this.noSelection&&(this.hasPinData?t=C(this.pinData):t=S(this.getNodeInputData(this.node,this.runIndex,this.currentOutputIndex)));let e="";return typeof t=="object"?e=JSON.stringify(t,null,2):e=t.toString(),e},getJsonItemPath(){const t=y(this.normalisedJsonPath);let e="",s="";const a=t.split("]"),o=a[0].slice(1);return s=a.slice(1).join("]"),e=`$item(${o}).$node["${this.node.name}"].json`,{path:s,startPath:e}},getJsonParameterPath(){const e=y(this.normalisedJsonPath).split("]").slice(1).join("]");let s=`$node["${this.node.name}"].json`;return this.distanceFromActive===1&&(s="$json"),{path:e,startPath:s}},handleCopyClick(t){let e;if(t.command==="value")e=this.getJsonValue(),this.showToast({title:this.i18n.baseText("runData.copyValue.toast"),message:"",type:"success",duration:2e3});else{let a="",o="";if(t.command==="itemPath"){const n=this.getJsonItemPath();a=n.startPath,o=n.path,this.showToast({title:this.i18n.baseText("runData.copyItemPath.toast"),message:"",type:"success",duration:2e3})}else if(t.command==="parameterPath"){const n=this.getJsonParameterPath();a=n.startPath,o=n.path,this.showToast({title:this.i18n.baseText("runData.copyParameterPath.toast"),message:"",type:"success",duration:2e3})}!o.startsWith("[")&&!o.startsWith(".")&&o&&(o+="."),e=`{{ ${a+o} }}`}const s={value:"selection",itemPath:"item_path",parameterPath:"parameter_path"}[t.command];this.$telemetry.track("User copied ndv data",{node_type:this.activeNode.type,session_id:this.sessionId,run_index:this.runIndex,view:"json",copy_type:s,workflow_id:this.workflowsStore.workflowId,pane:this.paneType,in_execution_log:this.isReadOnlyRoute}),this.copyToClipboard(e)}}}),A="_actionsGroup_1ai92_5",G={actionsGroup:A},F={class:"el-dropdown-link"};function M(t,e,s,a,o,n){const h=p("n8n-icon-button"),m=p("el-dropdown-item"),f=p("el-dropdown-menu"),_=p("el-dropdown");return l(),N("div",{class:B(t.$style.actionsGroup)},[t.noSelection?(l(),P(h,{key:0,title:t.i18n.baseText("runData.copyToClipboard"),icon:"copy",type:"tertiary",circle:!1,onClick:e[0]||(e[0]=W=>t.handleCopyClick({command:"value"}))},null,8,["title"])):(l(),P(_,{key:1,trigger:"click",onCommand:t.handleCopyClick},{dropdown:i(()=>[r(f,null,{default:i(()=>[r(m,{command:{command:"value"}},{default:i(()=>[c(d(t.i18n.baseText("runData.copyValue")),1)]),_:1}),r(m,{command:{command:"itemPath"},divided:""},{default:i(()=>[c(d(t.i18n.baseText("runData.copyItemPath")),1)]),_:1}),r(m,{command:{command:"parameterPath"}},{default:i(()=>[c(d(t.i18n.baseText("runData.copyParameterPath")),1)]),_:1})]),_:1})]),default:i(()=>[V("span",F,[r(h,{title:t.i18n.baseText("runData.copyToClipboard"),icon:"copy",type:"tertiary",circle:!1},null,8,["title"])])]),_:1},8,["onCommand"]))],2)}const R={$style:G},kt=D(O,[["render",M],["__cssModules",R]]);export{kt as default};
2
- //# sourceMappingURL=RunDataJsonActions-25336578.js.map
1
+ import{m as g}from"./pinia-af9c3f71.js";import{j as w}from"./jsonpath-33f4a877.js";import{g as T,n as b,c as v}from"./index-ac03fd2d.js";import{p as J}from"./NodeView-ef40797d.js";import{gB as u,u as $,L as k,a4 as j,ek as C,as as S,gF as y,an as x,_ as D}from"./n8n-6b07beca.js";import"./@fortawesome/vue-fontawesome-237f4675.js";import{d as I,g as p,o as l,i as N,b as P,w as i,h as r,s as c,t as d,j as V,n as B}from"./vendor-f46c350a.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./lodash-es-bad8e3ee.js";import"./uuid-cf522c50.js";import"./luxon-19e1de07.js";import"./esprima-next-8c7e8ff9.js";import"./@vueuse/core-9fb50532.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/browser-ui-715581dc.js";import"./chart.js-58383f81.js";import"./flatted-8b14da7d.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./file-saver-5cec22b8.js";import"./vue-json-pretty-be89319b.js";import"./RunDataAi-8d5bd68e.js";import"./vue-markdown-render-f04fcdc7.js";import"./workflowActivate-c971eb19.js";const O=I({name:"run-data-json-actions",mixins:[T,b,J,v],props:{node:{type:Object},paneType:{type:String},sessionId:{type:String},currentOutputIndex:{type:Number},runIndex:{type:Number},displayMode:{type:String},distanceFromActive:{type:Number},selectedJsonPath:{type:String,default:u},jsonData:{type:Array,required:!0}},setup(){return{i18n:x(),...$()}},computed:{...g(j,k),activeNode(){return this.ndvStore.activeNode},noSelection(){return this.selectedJsonPath===u},normalisedJsonPath(){return this.noSelection?'[""]':this.selectedJsonPath}},methods:{getJsonValue(){let t=w.query(this.jsonData,`$${this.normalisedJsonPath}`)[0];this.noSelection&&(this.hasPinData?t=C(this.pinData):t=S(this.getNodeInputData(this.node,this.runIndex,this.currentOutputIndex)));let e="";return typeof t=="object"?e=JSON.stringify(t,null,2):e=t.toString(),e},getJsonItemPath(){const t=y(this.normalisedJsonPath);let e="",s="";const a=t.split("]"),o=a[0].slice(1);return s=a.slice(1).join("]"),e=`$item(${o}).$node["${this.node.name}"].json`,{path:s,startPath:e}},getJsonParameterPath(){const e=y(this.normalisedJsonPath).split("]").slice(1).join("]");let s=`$node["${this.node.name}"].json`;return this.distanceFromActive===1&&(s="$json"),{path:e,startPath:s}},handleCopyClick(t){let e;if(t.command==="value")e=this.getJsonValue(),this.showToast({title:this.i18n.baseText("runData.copyValue.toast"),message:"",type:"success",duration:2e3});else{let a="",o="";if(t.command==="itemPath"){const n=this.getJsonItemPath();a=n.startPath,o=n.path,this.showToast({title:this.i18n.baseText("runData.copyItemPath.toast"),message:"",type:"success",duration:2e3})}else if(t.command==="parameterPath"){const n=this.getJsonParameterPath();a=n.startPath,o=n.path,this.showToast({title:this.i18n.baseText("runData.copyParameterPath.toast"),message:"",type:"success",duration:2e3})}!o.startsWith("[")&&!o.startsWith(".")&&o&&(o+="."),e=`{{ ${a+o} }}`}const s={value:"selection",itemPath:"item_path",parameterPath:"parameter_path"}[t.command];this.$telemetry.track("User copied ndv data",{node_type:this.activeNode.type,session_id:this.sessionId,run_index:this.runIndex,view:"json",copy_type:s,workflow_id:this.workflowsStore.workflowId,pane:this.paneType,in_execution_log:this.isReadOnlyRoute}),this.copyToClipboard(e)}}}),A="_actionsGroup_1ai92_5",G={actionsGroup:A},F={class:"el-dropdown-link"};function M(t,e,s,a,o,n){const h=p("n8n-icon-button"),m=p("el-dropdown-item"),f=p("el-dropdown-menu"),_=p("el-dropdown");return l(),N("div",{class:B(t.$style.actionsGroup)},[t.noSelection?(l(),P(h,{key:0,title:t.i18n.baseText("runData.copyToClipboard"),icon:"copy",type:"tertiary",circle:!1,onClick:e[0]||(e[0]=W=>t.handleCopyClick({command:"value"}))},null,8,["title"])):(l(),P(_,{key:1,trigger:"click",onCommand:t.handleCopyClick},{dropdown:i(()=>[r(f,null,{default:i(()=>[r(m,{command:{command:"value"}},{default:i(()=>[c(d(t.i18n.baseText("runData.copyValue")),1)]),_:1}),r(m,{command:{command:"itemPath"},divided:""},{default:i(()=>[c(d(t.i18n.baseText("runData.copyItemPath")),1)]),_:1}),r(m,{command:{command:"parameterPath"}},{default:i(()=>[c(d(t.i18n.baseText("runData.copyParameterPath")),1)]),_:1})]),_:1})]),default:i(()=>[V("span",F,[r(h,{title:t.i18n.baseText("runData.copyToClipboard"),icon:"copy",type:"tertiary",circle:!1},null,8,["title"])])]),_:1},8,["onCommand"]))],2)}const R={$style:G},kt=D(O,[["render",M],["__cssModules",R]]);export{kt as default};
2
+ //# sourceMappingURL=RunDataJsonActions-6b0ffebb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunDataJsonActions-25336578.js","sources":["../../src/components/RunDataJsonActions.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.actionsGroup\">\n\t\t<n8n-icon-button\n\t\t\tv-if=\"noSelection\"\n\t\t\t:title=\"i18n.baseText('runData.copyToClipboard')\"\n\t\t\ticon=\"copy\"\n\t\t\ttype=\"tertiary\"\n\t\t\t:circle=\"false\"\n\t\t\t@click=\"handleCopyClick({ command: 'value' })\"\n\t\t/>\n\t\t<el-dropdown v-else trigger=\"click\" @command=\"handleCopyClick\">\n\t\t\t<span class=\"el-dropdown-link\">\n\t\t\t\t<n8n-icon-button\n\t\t\t\t\t:title=\"i18n.baseText('runData.copyToClipboard')\"\n\t\t\t\t\ticon=\"copy\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t:circle=\"false\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t<template #dropdown>\n\t\t\t\t<el-dropdown-menu>\n\t\t\t\t\t<el-dropdown-item :command=\"{ command: 'value' }\">\n\t\t\t\t\t\t{{ i18n.baseText('runData.copyValue') }}\n\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t<el-dropdown-item :command=\"{ command: 'itemPath' }\" divided>\n\t\t\t\t\t\t{{ i18n.baseText('runData.copyItemPath') }}\n\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t<el-dropdown-item :command=\"{ command: 'parameterPath' }\">\n\t\t\t\t\t\t{{ i18n.baseText('runData.copyParameterPath') }}\n\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t</el-dropdown-menu>\n\t\t\t</template>\n\t\t</el-dropdown>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { mapStores } from 'pinia';\nimport jp from 'jsonpath';\nimport type { INodeUi } from '@/Interface';\nimport type { IDataObject } from 'n8n-workflow';\nimport { copyPaste } from '@/mixins/copyPaste';\nimport { pinData } from '@/mixins/pinData';\nimport { nodeHelpers } from '@/mixins/nodeHelpers';\nimport { genericHelpers } from '@/mixins/genericHelpers';\nimport { clearJsonKey, convertPath, executionDataToJson } from '@/utils';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport { useI18n, useToast } from '@/composables';\nimport { nonExistingJsonPath } from '@/constants';\n\ntype JsonPathData = {\n\tpath: string;\n\tstartPath: string;\n};\n\nexport default defineComponent({\n\tname: 'run-data-json-actions',\n\tmixins: [genericHelpers, nodeHelpers, pinData, copyPaste],\n\n\tprops: {\n\t\tnode: {\n\t\t\ttype: Object as PropType<INodeUi>,\n\t\t},\n\t\tpaneType: {\n\t\t\ttype: String,\n\t\t},\n\t\tsessionId: {\n\t\t\ttype: String,\n\t\t},\n\t\tcurrentOutputIndex: {\n\t\t\ttype: Number,\n\t\t},\n\t\trunIndex: {\n\t\t\ttype: Number,\n\t\t},\n\t\tdisplayMode: {\n\t\t\ttype: String,\n\t\t},\n\t\tdistanceFromActive: {\n\t\t\ttype: Number,\n\t\t},\n\t\tselectedJsonPath: {\n\t\t\ttype: String,\n\t\t\tdefault: nonExistingJsonPath,\n\t\t},\n\t\tjsonData: {\n\t\t\ttype: Array as PropType<IDataObject[]>,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst i18n = useI18n();\n\n\t\treturn {\n\t\t\ti18n,\n\t\t\t...useToast(),\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useNDVStore, useWorkflowsStore),\n\t\tactiveNode(): INodeUi | null {\n\t\t\treturn this.ndvStore.activeNode;\n\t\t},\n\t\tnoSelection() {\n\t\t\treturn this.selectedJsonPath === nonExistingJsonPath;\n\t\t},\n\t\tnormalisedJsonPath(): string {\n\t\t\treturn this.noSelection ? '[\"\"]' : this.selectedJsonPath;\n\t\t},\n\t},\n\tmethods: {\n\t\tgetJsonValue(): string {\n\t\t\tlet selectedValue = jp.query(this.jsonData, `$${this.normalisedJsonPath}`)[0];\n\t\t\tif (this.noSelection) {\n\t\t\t\tif (this.hasPinData) {\n\t\t\t\t\tselectedValue = clearJsonKey(this.pinData as object);\n\t\t\t\t} else {\n\t\t\t\t\tselectedValue = executionDataToJson(\n\t\t\t\t\t\tthis.getNodeInputData(this.node, this.runIndex, this.currentOutputIndex),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet value = '';\n\t\t\tif (typeof selectedValue === 'object') {\n\t\t\t\tvalue = JSON.stringify(selectedValue, null, 2);\n\t\t\t} else {\n\t\t\t\tvalue = selectedValue.toString();\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tgetJsonItemPath(): JsonPathData {\n\t\t\tconst newPath = convertPath(this.normalisedJsonPath);\n\t\t\tlet startPath = '';\n\t\t\tlet path = '';\n\n\t\t\tconst pathParts = newPath.split(']');\n\t\t\tconst index = pathParts[0].slice(1);\n\t\t\tpath = pathParts.slice(1).join(']');\n\t\t\tstartPath = `$item(${index}).$node[\"${this.node!.name}\"].json`;\n\n\t\t\treturn { path, startPath };\n\t\t},\n\t\tgetJsonParameterPath(): JsonPathData {\n\t\t\tconst newPath = convertPath(this.normalisedJsonPath);\n\t\t\tconst path = newPath.split(']').slice(1).join(']');\n\t\t\tlet startPath = `$node[\"${this.node!.name}\"].json`;\n\n\t\t\tif (this.distanceFromActive === 1) {\n\t\t\t\tstartPath = '$json';\n\t\t\t}\n\n\t\t\treturn { path, startPath };\n\t\t},\n\t\thandleCopyClick(commandData: { command: string }) {\n\t\t\tlet value: string;\n\t\t\tif (commandData.command === 'value') {\n\t\t\t\tvalue = this.getJsonValue();\n\n\t\t\t\tthis.showToast({\n\t\t\t\t\ttitle: this.i18n.baseText('runData.copyValue.toast'),\n\t\t\t\t\tmessage: '',\n\t\t\t\t\ttype: 'success',\n\t\t\t\t\tduration: 2000,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlet startPath = '';\n\t\t\t\tlet path = '';\n\t\t\t\tif (commandData.command === 'itemPath') {\n\t\t\t\t\tconst jsonItemPath = this.getJsonItemPath();\n\t\t\t\t\tstartPath = jsonItemPath.startPath;\n\t\t\t\t\tpath = jsonItemPath.path;\n\n\t\t\t\t\tthis.showToast({\n\t\t\t\t\t\ttitle: this.i18n.baseText('runData.copyItemPath.toast'),\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\tduration: 2000,\n\t\t\t\t\t});\n\t\t\t\t} else if (commandData.command === 'parameterPath') {\n\t\t\t\t\tconst jsonParameterPath = this.getJsonParameterPath();\n\t\t\t\t\tstartPath = jsonParameterPath.startPath;\n\t\t\t\t\tpath = jsonParameterPath.path;\n\n\t\t\t\t\tthis.showToast({\n\t\t\t\t\t\ttitle: this.i18n.baseText('runData.copyParameterPath.toast'),\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\tduration: 2000,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (!path.startsWith('[') && !path.startsWith('.') && path) {\n\t\t\t\t\tpath += '.';\n\t\t\t\t}\n\t\t\t\tvalue = `{{ ${startPath + path} }}`;\n\t\t\t}\n\n\t\t\tconst copyType = {\n\t\t\t\tvalue: 'selection',\n\t\t\t\titemPath: 'item_path',\n\t\t\t\tparameterPath: 'parameter_path',\n\t\t\t}[commandData.command];\n\n\t\t\tthis.$telemetry.track('User copied ndv data', {\n\t\t\t\tnode_type: this.activeNode.type,\n\t\t\t\tsession_id: this.sessionId,\n\t\t\t\trun_index: this.runIndex,\n\t\t\t\tview: 'json',\n\t\t\t\tcopy_type: copyType,\n\t\t\t\tworkflow_id: this.workflowsStore.workflowId,\n\t\t\t\tpane: this.paneType,\n\t\t\t\tin_execution_log: this.isReadOnlyRoute,\n\t\t\t});\n\n\t\t\tthis.copyToClipboard(value);\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.actionsGroup {\n\tposition: sticky;\n\theight: 0;\n\toverflow: visible;\n\tz-index: 10;\n\ttop: 0;\n\tpadding-right: var(--spacing-s);\n\topacity: 0;\n\ttransition: opacity 0.3s ease;\n\ttext-align: right;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","genericHelpers","nodeHelpers","pinData","copyPaste","nonExistingJsonPath","useI18n","useToast","mapStores","useNDVStore","useWorkflowsStore","selectedValue","jp","clearJsonKey","executionDataToJson","value","newPath","convertPath","startPath","path","pathParts","index","commandData","jsonItemPath","jsonParameterPath","copyType","_resolveComponent","_normalizeClass","_ctx","_createBlock","_component_n8n_icon_button","_cache","$event","_openBlock","_component_el_dropdown","_withCtx","_createVNode","_component_el_dropdown_menu","_component_el_dropdown_item","_createElementVNode","_hoisted_1"],"mappings":"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"}
1
+ {"version":3,"file":"RunDataJsonActions-6b0ffebb.js","sources":["../../src/components/RunDataJsonActions.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.actionsGroup\">\n\t\t<n8n-icon-button\n\t\t\tv-if=\"noSelection\"\n\t\t\t:title=\"i18n.baseText('runData.copyToClipboard')\"\n\t\t\ticon=\"copy\"\n\t\t\ttype=\"tertiary\"\n\t\t\t:circle=\"false\"\n\t\t\t@click=\"handleCopyClick({ command: 'value' })\"\n\t\t/>\n\t\t<el-dropdown v-else trigger=\"click\" @command=\"handleCopyClick\">\n\t\t\t<span class=\"el-dropdown-link\">\n\t\t\t\t<n8n-icon-button\n\t\t\t\t\t:title=\"i18n.baseText('runData.copyToClipboard')\"\n\t\t\t\t\ticon=\"copy\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t:circle=\"false\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t<template #dropdown>\n\t\t\t\t<el-dropdown-menu>\n\t\t\t\t\t<el-dropdown-item :command=\"{ command: 'value' }\">\n\t\t\t\t\t\t{{ i18n.baseText('runData.copyValue') }}\n\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t<el-dropdown-item :command=\"{ command: 'itemPath' }\" divided>\n\t\t\t\t\t\t{{ i18n.baseText('runData.copyItemPath') }}\n\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t<el-dropdown-item :command=\"{ command: 'parameterPath' }\">\n\t\t\t\t\t\t{{ i18n.baseText('runData.copyParameterPath') }}\n\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t</el-dropdown-menu>\n\t\t\t</template>\n\t\t</el-dropdown>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { mapStores } from 'pinia';\nimport jp from 'jsonpath';\nimport type { INodeUi } from '@/Interface';\nimport type { IDataObject } from 'n8n-workflow';\nimport { copyPaste } from '@/mixins/copyPaste';\nimport { pinData } from '@/mixins/pinData';\nimport { nodeHelpers } from '@/mixins/nodeHelpers';\nimport { genericHelpers } from '@/mixins/genericHelpers';\nimport { clearJsonKey, convertPath, executionDataToJson } from '@/utils';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useNDVStore } from '@/stores/ndv.store';\nimport { useI18n, useToast } from '@/composables';\nimport { nonExistingJsonPath } from '@/constants';\n\ntype JsonPathData = {\n\tpath: string;\n\tstartPath: string;\n};\n\nexport default defineComponent({\n\tname: 'run-data-json-actions',\n\tmixins: [genericHelpers, nodeHelpers, pinData, copyPaste],\n\n\tprops: {\n\t\tnode: {\n\t\t\ttype: Object as PropType<INodeUi>,\n\t\t},\n\t\tpaneType: {\n\t\t\ttype: String,\n\t\t},\n\t\tsessionId: {\n\t\t\ttype: String,\n\t\t},\n\t\tcurrentOutputIndex: {\n\t\t\ttype: Number,\n\t\t},\n\t\trunIndex: {\n\t\t\ttype: Number,\n\t\t},\n\t\tdisplayMode: {\n\t\t\ttype: String,\n\t\t},\n\t\tdistanceFromActive: {\n\t\t\ttype: Number,\n\t\t},\n\t\tselectedJsonPath: {\n\t\t\ttype: String,\n\t\t\tdefault: nonExistingJsonPath,\n\t\t},\n\t\tjsonData: {\n\t\t\ttype: Array as PropType<IDataObject[]>,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst i18n = useI18n();\n\n\t\treturn {\n\t\t\ti18n,\n\t\t\t...useToast(),\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useNDVStore, useWorkflowsStore),\n\t\tactiveNode(): INodeUi | null {\n\t\t\treturn this.ndvStore.activeNode;\n\t\t},\n\t\tnoSelection() {\n\t\t\treturn this.selectedJsonPath === nonExistingJsonPath;\n\t\t},\n\t\tnormalisedJsonPath(): string {\n\t\t\treturn this.noSelection ? '[\"\"]' : this.selectedJsonPath;\n\t\t},\n\t},\n\tmethods: {\n\t\tgetJsonValue(): string {\n\t\t\tlet selectedValue = jp.query(this.jsonData, `$${this.normalisedJsonPath}`)[0];\n\t\t\tif (this.noSelection) {\n\t\t\t\tif (this.hasPinData) {\n\t\t\t\t\tselectedValue = clearJsonKey(this.pinData as object);\n\t\t\t\t} else {\n\t\t\t\t\tselectedValue = executionDataToJson(\n\t\t\t\t\t\tthis.getNodeInputData(this.node, this.runIndex, this.currentOutputIndex),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet value = '';\n\t\t\tif (typeof selectedValue === 'object') {\n\t\t\t\tvalue = JSON.stringify(selectedValue, null, 2);\n\t\t\t} else {\n\t\t\t\tvalue = selectedValue.toString();\n\t\t\t}\n\n\t\t\treturn value;\n\t\t},\n\t\tgetJsonItemPath(): JsonPathData {\n\t\t\tconst newPath = convertPath(this.normalisedJsonPath);\n\t\t\tlet startPath = '';\n\t\t\tlet path = '';\n\n\t\t\tconst pathParts = newPath.split(']');\n\t\t\tconst index = pathParts[0].slice(1);\n\t\t\tpath = pathParts.slice(1).join(']');\n\t\t\tstartPath = `$item(${index}).$node[\"${this.node!.name}\"].json`;\n\n\t\t\treturn { path, startPath };\n\t\t},\n\t\tgetJsonParameterPath(): JsonPathData {\n\t\t\tconst newPath = convertPath(this.normalisedJsonPath);\n\t\t\tconst path = newPath.split(']').slice(1).join(']');\n\t\t\tlet startPath = `$node[\"${this.node!.name}\"].json`;\n\n\t\t\tif (this.distanceFromActive === 1) {\n\t\t\t\tstartPath = '$json';\n\t\t\t}\n\n\t\t\treturn { path, startPath };\n\t\t},\n\t\thandleCopyClick(commandData: { command: string }) {\n\t\t\tlet value: string;\n\t\t\tif (commandData.command === 'value') {\n\t\t\t\tvalue = this.getJsonValue();\n\n\t\t\t\tthis.showToast({\n\t\t\t\t\ttitle: this.i18n.baseText('runData.copyValue.toast'),\n\t\t\t\t\tmessage: '',\n\t\t\t\t\ttype: 'success',\n\t\t\t\t\tduration: 2000,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlet startPath = '';\n\t\t\t\tlet path = '';\n\t\t\t\tif (commandData.command === 'itemPath') {\n\t\t\t\t\tconst jsonItemPath = this.getJsonItemPath();\n\t\t\t\t\tstartPath = jsonItemPath.startPath;\n\t\t\t\t\tpath = jsonItemPath.path;\n\n\t\t\t\t\tthis.showToast({\n\t\t\t\t\t\ttitle: this.i18n.baseText('runData.copyItemPath.toast'),\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\tduration: 2000,\n\t\t\t\t\t});\n\t\t\t\t} else if (commandData.command === 'parameterPath') {\n\t\t\t\t\tconst jsonParameterPath = this.getJsonParameterPath();\n\t\t\t\t\tstartPath = jsonParameterPath.startPath;\n\t\t\t\t\tpath = jsonParameterPath.path;\n\n\t\t\t\t\tthis.showToast({\n\t\t\t\t\t\ttitle: this.i18n.baseText('runData.copyParameterPath.toast'),\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t\tduration: 2000,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (!path.startsWith('[') && !path.startsWith('.') && path) {\n\t\t\t\t\tpath += '.';\n\t\t\t\t}\n\t\t\t\tvalue = `{{ ${startPath + path} }}`;\n\t\t\t}\n\n\t\t\tconst copyType = {\n\t\t\t\tvalue: 'selection',\n\t\t\t\titemPath: 'item_path',\n\t\t\t\tparameterPath: 'parameter_path',\n\t\t\t}[commandData.command];\n\n\t\t\tthis.$telemetry.track('User copied ndv data', {\n\t\t\t\tnode_type: this.activeNode.type,\n\t\t\t\tsession_id: this.sessionId,\n\t\t\t\trun_index: this.runIndex,\n\t\t\t\tview: 'json',\n\t\t\t\tcopy_type: copyType,\n\t\t\t\tworkflow_id: this.workflowsStore.workflowId,\n\t\t\t\tpane: this.paneType,\n\t\t\t\tin_execution_log: this.isReadOnlyRoute,\n\t\t\t});\n\n\t\t\tthis.copyToClipboard(value);\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.actionsGroup {\n\tposition: sticky;\n\theight: 0;\n\toverflow: visible;\n\tz-index: 10;\n\ttop: 0;\n\tpadding-right: var(--spacing-s);\n\topacity: 0;\n\ttransition: opacity 0.3s ease;\n\ttext-align: right;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","genericHelpers","nodeHelpers","pinData","copyPaste","nonExistingJsonPath","useI18n","useToast","mapStores","useNDVStore","useWorkflowsStore","selectedValue","jp","clearJsonKey","executionDataToJson","value","newPath","convertPath","startPath","path","pathParts","index","commandData","jsonItemPath","jsonParameterPath","copyType","_resolveComponent","_normalizeClass","_ctx","_createBlock","_component_n8n_icon_button","_cache","$event","_openBlock","_component_el_dropdown","_withCtx","_createVNode","_component_el_dropdown_menu","_component_el_dropdown_item","_createElementVNode","_hoisted_1"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{ae as E,gA as F,dQ as w,gz as z,gC as B,_ as M,a4 as H,cL as L,o as N,at as V,k as C,gl as R}from"./n8n-6b07beca.js";import{d as S,c as r,g as T,o as s,i as n,n as o,j as P,h as A,q as p,t as K,O as W,a9 as j,b as y,W as q,r as J,w as $,s as O,p as Q}from"./vendor-f46c350a.js";import{D as U}from"./NodeView-5651414a.js";import{M as G}from"./MappingPill-142c06bf.js";import"./@fortawesome/vue-fontawesome-237f4675.js";import"./lodash-es-bad8e3ee.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./pinia-af9c3f71.js";import"./flatted-8b14da7d.js";import"./@vueuse/core-9fb50532.js";import"./uuid-cf522c50.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./@jsplumb/browser-ui-715581dc.js";import"./index-1f0f487e.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./chart.js-58383f81.js";import"./file-saver-5cec22b8.js";import"./vue-json-pretty-be89319b.js";import"./RunDataAi-97c7f732.js";import"./vue-markdown-render-f04fcdc7.js";import"./workflowActivate-417a26ee.js";const X=["title"],Y=["data-value","data-name","data-path","data-depth"],Z=["innerHTML"],x=["innerHTML"],ee=["id"],ae=["for"],te=S({__name:"RunDataSchemaItem",props:{schema:{},level:{},parent:{},subKey:{},paneType:{},mappingEnabled:{type:Boolean},draggingPath:{},distanceFromActive:{},node:{},search:{}},setup(h){const a=h,l=r(()=>Array.isArray(a.schema.value)),i=r(()=>{var e;return((e=a.parent)==null?void 0:e.type)==="array"}),g=r(()=>a.level===0&&Array.isArray(a.schema.value)&&a.schema.value.every(e=>!Array.isArray(e.value))),d=r(()=>{const e=E(F(a.schema.key,a.search));return i.value?`[${e}]`:e}),v=r(()=>E(F(a.parent.key,a.search))),b=r(()=>i.value?`${a.schema.type}[${a.schema.key}]`:a.schema.key),u=r(()=>Array.isArray(a.schema.value)?"":w(a.schema.value,600,0)),t=e=>z({nodeName:a.node.name,distanceFromActive:a.distanceFromActive,path:e}),c=e=>`${e*.033}s`,m=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"}B(e)};return(e,_)=>{const D=T("font-awesome-icon"),I=T("run-data-schema-item",!0);return s(),n("div",{class:o(e.$style.item),"data-test-id":"run-data-schema-item"},[e.level>0||e.level===0&&!l.value?(s(),n("div",{key:0,title:e.schema.type,class:o({[e.$style.pill]:!0,[e.$style.mappable]:e.mappingEnabled,[e.$style.dragged]:e.draggingPath===e.schema.path})},[P("span",{class:o(e.$style.label),"data-value":t(e.schema.path),"data-name":b.value,"data-path":e.schema.path,"data-depth":e.level,"data-target":"mappable"},[A(D,{icon:m(e.schema.type),size:"sm"},null,8,["icon"]),i.value?(s(),n("span",{key:0,innerHTML:v.value},null,8,Z)):p("",!0),d.value?(s(),n("span",{key:1,class:o({[e.$style.arrayIndex]:i.value}),innerHTML:d.value},null,10,x)):p("",!0)],10,Y)],10,X)):p("",!0),u.value?(s(),n("span",{key:1,class:o(e.$style.text)},K(u.value),3)):p("",!0),e.level>0&&l.value?(s(),n("input",{key:2,id:e.subKey,type:"checkbox",checked:""},null,8,ee)):p("",!0),e.level>0&&l.value?(s(),n("label",{key:3,class:o(e.$style.toggle),for:e.subKey},[A(D,{icon:"angle-up"})],10,ae)):p("",!0),l.value?(s(),n("div",{key:4,class:o({[e.$style.sub]:!0,[e.$style.flat]:g.value})},[(s(!0),n(W,null,j(e.schema.value,(k,f)=>(s(),y(I,{key:`${k.type}-${e.level}-${f}`,schema:k,level:e.level+1,parent:e.schema,paneType:e.paneType,subKey:`${e.paneType}_${k.type}-${e.level}-${f}`,mappingEnabled:e.mappingEnabled,draggingPath:e.draggingPath,distanceFromActive:e.distanceFromActive,node:e.node,style:q({transitionDelay:c(f)}),search:e.search},null,8,["schema","level","parent","paneType","subKey","mappingEnabled","draggingPath","distanceFromActive","node","style","search"]))),128))],2)):p("",!0)],2)}}}),se="_item_dk8yb_5",ne="_sub_dk8yb_18",re="_toggle_dk8yb_24",oe="_flat_dk8yb_45",le="_pill_dk8yb_55",pe="_mappable_dk8yb_74",ie="_dragged_dk8yb_82",ce="_label_dk8yb_93",me="_arrayIndex_dk8yb_98",de="_text_dk8yb_104",ue={item:se,sub:ne,toggle:re,flat:oe,pill:le,mappable:pe,dragged:ie,label:ce,arrayIndex:me,text:de},ye={$style:ue},he=M(te,[["__cssModules",ye]]),ge=S({__name:"RunDataSchema",props:{data:{},mappingEnabled:{type:Boolean},distanceFromActive:{default:0},runIndex:{},totalRuns:{},paneType:{},node:{},search:{}},setup(h){const a=h,l=J(""),i=H(),{getSchemaForExecutionData:g}=V(),d=r(()=>g(a.data)),v=r(()=>L(a.data)),b=t=>{var c;(c=t==null?void 0:t.dataset)!=null&&c.path&&(l.value=t.dataset.path),i.resetMappingTelemetry()},u=t=>{l.value="",setTimeout(()=>{var e;const c=i.mappingTelemetry,m={src_node_type:(e=a.node)==null?void 0:e.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,...c};C("runDataJson.onDragEnd",m),R.track("User dragged data for mapping",m)},1e3)};return(t,c)=>{const m=T("n8n-info-tip");return s(),n("div",{class:o(t.$style.schemaWrapper)},[v.value?(s(),y(m,{key:0},{default:$(()=>[O(K(Q(N).baseText("dataMapping.schemaView.emptyData")),1)]),_:1})):(s(),y(U,{key:1,type:"mapping",targetDataKey:"mappable",disabled:!t.mappingEnabled,onDragstart:b,onDragend:u},{preview:$(({canDrop:e,el:_})=>[_?(s(),y(G,{key:0,html:_.outerHTML,"can-drop":e},null,8,["html","can-drop"])):p("",!0)]),default:$(()=>[P("div",{class:o(t.$style.schema)},[A(he,{schema:d.value,level:0,parent:null,paneType:t.paneType,subKey:`${d.value.type}-0-0`,mappingEnabled:t.mappingEnabled,draggingPath:l.value,distanceFromActive:t.distanceFromActive,node:t.node,search:t.search},null,8,["schema","paneType","subKey","mappingEnabled","draggingPath","distanceFromActive","node","search"])],2)]),_:1},8,["disabled"]))],2)}}}),ve="_schemaWrapper_czk1f_5",be="_schema_czk1f_5",_e={schemaWrapper:ve,schema:be},ke={$style:_e},na=M(ge,[["__cssModules",ke]]);export{na as default};
2
- //# sourceMappingURL=RunDataSchema-101b201c.js.map
1
+ import{ae as E,gA as F,dQ as w,gz as z,gC as B,_ as M,a4 as H,cL as L,o as N,at as V,k as C,gl as R}from"./n8n-6b07beca.js";import{d as S,c as r,g as T,o as s,i as n,n as o,j as P,h as A,q as p,t as K,O as W,a9 as j,b as y,W as q,r as J,w as $,s as O,p as Q}from"./vendor-f46c350a.js";import{D as U}from"./NodeView-ef40797d.js";import{M as G}from"./MappingPill-142c06bf.js";import"./@fortawesome/vue-fontawesome-237f4675.js";import"./lodash-es-bad8e3ee.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./pinia-af9c3f71.js";import"./flatted-8b14da7d.js";import"./@vueuse/core-9fb50532.js";import"./uuid-cf522c50.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./@jsplumb/browser-ui-715581dc.js";import"./index-ac03fd2d.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./chart.js-58383f81.js";import"./file-saver-5cec22b8.js";import"./vue-json-pretty-be89319b.js";import"./RunDataAi-8d5bd68e.js";import"./vue-markdown-render-f04fcdc7.js";import"./workflowActivate-c971eb19.js";const X=["title"],Y=["data-value","data-name","data-path","data-depth"],Z=["innerHTML"],x=["innerHTML"],ee=["id"],ae=["for"],te=S({__name:"RunDataSchemaItem",props:{schema:{},level:{},parent:{},subKey:{},paneType:{},mappingEnabled:{type:Boolean},draggingPath:{},distanceFromActive:{},node:{},search:{}},setup(h){const a=h,l=r(()=>Array.isArray(a.schema.value)),i=r(()=>{var e;return((e=a.parent)==null?void 0:e.type)==="array"}),g=r(()=>a.level===0&&Array.isArray(a.schema.value)&&a.schema.value.every(e=>!Array.isArray(e.value))),d=r(()=>{const e=E(F(a.schema.key,a.search));return i.value?`[${e}]`:e}),v=r(()=>E(F(a.parent.key,a.search))),b=r(()=>i.value?`${a.schema.type}[${a.schema.key}]`:a.schema.key),u=r(()=>Array.isArray(a.schema.value)?"":w(a.schema.value,600,0)),t=e=>z({nodeName:a.node.name,distanceFromActive:a.distanceFromActive,path:e}),c=e=>`${e*.033}s`,m=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"}B(e)};return(e,_)=>{const D=T("font-awesome-icon"),I=T("run-data-schema-item",!0);return s(),n("div",{class:o(e.$style.item),"data-test-id":"run-data-schema-item"},[e.level>0||e.level===0&&!l.value?(s(),n("div",{key:0,title:e.schema.type,class:o({[e.$style.pill]:!0,[e.$style.mappable]:e.mappingEnabled,[e.$style.dragged]:e.draggingPath===e.schema.path})},[P("span",{class:o(e.$style.label),"data-value":t(e.schema.path),"data-name":b.value,"data-path":e.schema.path,"data-depth":e.level,"data-target":"mappable"},[A(D,{icon:m(e.schema.type),size:"sm"},null,8,["icon"]),i.value?(s(),n("span",{key:0,innerHTML:v.value},null,8,Z)):p("",!0),d.value?(s(),n("span",{key:1,class:o({[e.$style.arrayIndex]:i.value}),innerHTML:d.value},null,10,x)):p("",!0)],10,Y)],10,X)):p("",!0),u.value?(s(),n("span",{key:1,class:o(e.$style.text)},K(u.value),3)):p("",!0),e.level>0&&l.value?(s(),n("input",{key:2,id:e.subKey,type:"checkbox",checked:""},null,8,ee)):p("",!0),e.level>0&&l.value?(s(),n("label",{key:3,class:o(e.$style.toggle),for:e.subKey},[A(D,{icon:"angle-up"})],10,ae)):p("",!0),l.value?(s(),n("div",{key:4,class:o({[e.$style.sub]:!0,[e.$style.flat]:g.value})},[(s(!0),n(W,null,j(e.schema.value,(k,f)=>(s(),y(I,{key:`${k.type}-${e.level}-${f}`,schema:k,level:e.level+1,parent:e.schema,paneType:e.paneType,subKey:`${e.paneType}_${k.type}-${e.level}-${f}`,mappingEnabled:e.mappingEnabled,draggingPath:e.draggingPath,distanceFromActive:e.distanceFromActive,node:e.node,style:q({transitionDelay:c(f)}),search:e.search},null,8,["schema","level","parent","paneType","subKey","mappingEnabled","draggingPath","distanceFromActive","node","style","search"]))),128))],2)):p("",!0)],2)}}}),se="_item_dk8yb_5",ne="_sub_dk8yb_18",re="_toggle_dk8yb_24",oe="_flat_dk8yb_45",le="_pill_dk8yb_55",pe="_mappable_dk8yb_74",ie="_dragged_dk8yb_82",ce="_label_dk8yb_93",me="_arrayIndex_dk8yb_98",de="_text_dk8yb_104",ue={item:se,sub:ne,toggle:re,flat:oe,pill:le,mappable:pe,dragged:ie,label:ce,arrayIndex:me,text:de},ye={$style:ue},he=M(te,[["__cssModules",ye]]),ge=S({__name:"RunDataSchema",props:{data:{},mappingEnabled:{type:Boolean},distanceFromActive:{default:0},runIndex:{},totalRuns:{},paneType:{},node:{},search:{}},setup(h){const a=h,l=J(""),i=H(),{getSchemaForExecutionData:g}=V(),d=r(()=>g(a.data)),v=r(()=>L(a.data)),b=t=>{var c;(c=t==null?void 0:t.dataset)!=null&&c.path&&(l.value=t.dataset.path),i.resetMappingTelemetry()},u=t=>{l.value="",setTimeout(()=>{var e;const c=i.mappingTelemetry,m={src_node_type:(e=a.node)==null?void 0:e.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,...c};C("runDataJson.onDragEnd",m),R.track("User dragged data for mapping",m)},1e3)};return(t,c)=>{const m=T("n8n-info-tip");return s(),n("div",{class:o(t.$style.schemaWrapper)},[v.value?(s(),y(m,{key:0},{default:$(()=>[O(K(Q(N).baseText("dataMapping.schemaView.emptyData")),1)]),_:1})):(s(),y(U,{key:1,type:"mapping",targetDataKey:"mappable",disabled:!t.mappingEnabled,onDragstart:b,onDragend:u},{preview:$(({canDrop:e,el:_})=>[_?(s(),y(G,{key:0,html:_.outerHTML,"can-drop":e},null,8,["html","can-drop"])):p("",!0)]),default:$(()=>[P("div",{class:o(t.$style.schema)},[A(he,{schema:d.value,level:0,parent:null,paneType:t.paneType,subKey:`${d.value.type}-0-0`,mappingEnabled:t.mappingEnabled,draggingPath:l.value,distanceFromActive:t.distanceFromActive,node:t.node,search:t.search},null,8,["schema","paneType","subKey","mappingEnabled","draggingPath","distanceFromActive","node","search"])],2)]),_:1},8,["disabled"]))],2)}}}),ve="_schemaWrapper_czk1f_5",be="_schema_czk1f_5",_e={schemaWrapper:ve,schema:be},ke={$style:_e},na=M(ge,[["__cssModules",ke]]);export{na as default};
2
+ //# sourceMappingURL=RunDataSchema-60c0baf0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunDataSchema-101b201c.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, highlightText, sanitizeHtml, 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\tsearch: string;\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\tconst highlightedKey = sanitizeHtml(highlightText(props.schema.key, props.search));\n\treturn isSchemaParentTypeArray.value ? `[${highlightedKey}]` : highlightedKey;\n});\nconst parentKey = computed((): string | undefined =>\n\tsanitizeHtml(highlightText(props.parent.key, props.search)),\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\" v-html=\"parentKey\" />\n\t\t\t\t<span v-if=\"key\" :class=\"{ [$style.arrayIndex]: isSchemaParentTypeArray }\" v-html=\"key\" />\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\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/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 { 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\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(() => isEmpty(props.data));\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 runExternalHook('runDataJson.onDragEnd', 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\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":["isSchemaValueArray","computed","props","isSchemaParentTypeArray","_a","isFlat","v","key","highlightedKey","sanitizeHtml","highlightText","parentKey","schemaName","text","shorten","getJsonParameterPath","path","getMappedExpression","transitionDelay","i","getIconBySchemaType","type","checkExhaustive","draggingPath","ref","ndvStore","useNDVStore","getSchemaForExecutionData","useDataSchema","schema","isDataEmpty","isEmpty","onDragStart","el","onDragEnd","mappingTelemetry","telemetryPayload","runExternalHook","telemetry"],"mappings":"u7DAqBMA,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,IAA0B,CACxC,MAAAO,EAAiBC,EAAaC,EAAcR,EAAM,OAAO,IAAKA,EAAM,MAAM,CAAC,EACjF,OAAOC,EAAwB,MAAQ,IAAIK,CAAc,IAAMA,CAAA,CAC/D,EACKG,EAAYV,EAAS,IAC1BQ,EAAaC,EAAcR,EAAM,OAAO,IAAKA,EAAM,MAAM,CAAC,CAAA,EAErDU,EAAaX,EAAS,IAC3BE,EAAwB,MAAQ,GAAGD,EAAM,OAAO,IAAI,IAAIA,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAAA,EAEtFW,EAAOZ,EAAS,IACrB,MAAM,QAAQC,EAAM,OAAO,KAAK,EAAI,GAAKY,EAAQZ,EAAM,OAAO,MAAO,IAAK,CAAC,CAAA,EAGtEa,EAAwBC,GAC7BC,EAAoB,CACnB,SAAUf,EAAM,KAAM,KACtB,mBAAoBA,EAAM,mBAC1B,KAAAc,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,iqEChDfE,EAAeC,EAAY,EAAE,EAC7BC,EAAWC,IACX,CAAE,0BAAAC,GAA8BC,IAEhCC,EAAS5B,EAAS,IAAM0B,EAA0BzB,EAAM,IAAI,CAAC,EAE7D4B,EAAc7B,EAAS,IAAM8B,EAAQ7B,EAAM,IAAI,CAAC,EAEhD8B,EAAeC,GAAoB,QACpC7B,EAAA6B,GAAA,YAAAA,EAAI,UAAJ,MAAA7B,EAAa,OACHmB,EAAA,MAAQU,EAAG,QAAQ,MAGjCR,EAAS,sBAAsB,CAAA,EAE1BS,EAAaD,GAAoB,CACtCV,EAAa,MAAQ,GAErB,WAAW,IAAM,OAChB,MAAMY,EAAmBV,EAAS,iBAC5BW,EAAmB,CACxB,eAAehC,EAAAF,EAAM,OAAN,YAAAE,EAAY,KAC3B,eAAgB6B,EAAG,QAAQ,MAAQ,GACnC,eAAgB/B,EAAM,mBACtB,cAAeA,EAAM,SACrB,eAAgBA,EAAM,UACtB,qBAAsB+B,EAAG,QAAQ,OAAS,EAC1C,SAAU,SACV,YAAaA,EACb,QAAS,GACT,GAAGE,CAAA,EAGCE,EAAgB,wBAAyBD,CAAgB,EAEpDE,EAAA,MAAM,gCAAiCF,CAAgB,GAC/D,GAAI,CAAA"}
1
+ {"version":3,"file":"RunDataSchema-60c0baf0.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, highlightText, sanitizeHtml, 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\tsearch: string;\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\tconst highlightedKey = sanitizeHtml(highlightText(props.schema.key, props.search));\n\treturn isSchemaParentTypeArray.value ? `[${highlightedKey}]` : highlightedKey;\n});\nconst parentKey = computed((): string | undefined =>\n\tsanitizeHtml(highlightText(props.parent.key, props.search)),\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\" v-html=\"parentKey\" />\n\t\t\t\t<span v-if=\"key\" :class=\"{ [$style.arrayIndex]: isSchemaParentTypeArray }\" v-html=\"key\" />\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\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/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 { 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\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(() => isEmpty(props.data));\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 runExternalHook('runDataJson.onDragEnd', 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\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":["isSchemaValueArray","computed","props","isSchemaParentTypeArray","_a","isFlat","v","key","highlightedKey","sanitizeHtml","highlightText","parentKey","schemaName","text","shorten","getJsonParameterPath","path","getMappedExpression","transitionDelay","i","getIconBySchemaType","type","checkExhaustive","draggingPath","ref","ndvStore","useNDVStore","getSchemaForExecutionData","useDataSchema","schema","isDataEmpty","isEmpty","onDragStart","el","onDragEnd","mappingTelemetry","telemetryPayload","runExternalHook","telemetry"],"mappings":"u7DAqBMA,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,IAA0B,CACxC,MAAAO,EAAiBC,EAAaC,EAAcR,EAAM,OAAO,IAAKA,EAAM,MAAM,CAAC,EACjF,OAAOC,EAAwB,MAAQ,IAAIK,CAAc,IAAMA,CAAA,CAC/D,EACKG,EAAYV,EAAS,IAC1BQ,EAAaC,EAAcR,EAAM,OAAO,IAAKA,EAAM,MAAM,CAAC,CAAA,EAErDU,EAAaX,EAAS,IAC3BE,EAAwB,MAAQ,GAAGD,EAAM,OAAO,IAAI,IAAIA,EAAM,OAAO,GAAG,IAAMA,EAAM,OAAO,GAAA,EAEtFW,EAAOZ,EAAS,IACrB,MAAM,QAAQC,EAAM,OAAO,KAAK,EAAI,GAAKY,EAAQZ,EAAM,OAAO,MAAO,IAAK,CAAC,CAAA,EAGtEa,EAAwBC,GAC7BC,EAAoB,CACnB,SAAUf,EAAM,KAAM,KACtB,mBAAoBA,EAAM,mBAC1B,KAAAc,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,iqEChDfE,EAAeC,EAAY,EAAE,EAC7BC,EAAWC,IACX,CAAE,0BAAAC,GAA8BC,IAEhCC,EAAS5B,EAAS,IAAM0B,EAA0BzB,EAAM,IAAI,CAAC,EAE7D4B,EAAc7B,EAAS,IAAM8B,EAAQ7B,EAAM,IAAI,CAAC,EAEhD8B,EAAeC,GAAoB,QACpC7B,EAAA6B,GAAA,YAAAA,EAAI,UAAJ,MAAA7B,EAAa,OACHmB,EAAA,MAAQU,EAAG,QAAQ,MAGjCR,EAAS,sBAAsB,CAAA,EAE1BS,EAAaD,GAAoB,CACtCV,EAAa,MAAQ,GAErB,WAAW,IAAM,OAChB,MAAMY,EAAmBV,EAAS,iBAC5BW,EAAmB,CACxB,eAAehC,EAAAF,EAAM,OAAN,YAAAE,EAAY,KAC3B,eAAgB6B,EAAG,QAAQ,MAAQ,GACnC,eAAgB/B,EAAM,mBACtB,cAAeA,EAAM,SACrB,eAAgBA,EAAM,UACtB,qBAAsB+B,EAAG,QAAQ,OAAS,EAC1C,SAAU,SACV,YAAaA,EACb,QAAS,GACT,GAAGE,CAAA,EAGCE,EAAgB,wBAAyBD,CAAgB,EAEpDE,EAAA,MAAM,gCAAiCF,CAAgB,GAC/D,GAAI,CAAA"}
@@ -1,3 +1,3 @@
1
- import{m as K}from"./pinia-af9c3f71.js";import{L as N,a4 as P,dQ as A,gy as I,gz as H,ae as j,gA as V,_ as O}from"./n8n-6b07beca.js";import{D as B}from"./NodeView-5651414a.js";import{e as F}from"./index-1f0f487e.js";import{M as W}from"./MappingPill-142c06bf.js";import{d as J,g as C,o as r,i as l,n as o,j as n,O as $,a9 as E,h as c,w as d,s as _,t as w,q as S,b as z}from"./vendor-f46c350a.js";import"./lodash-es-bad8e3ee.js";import"./@fortawesome/vue-fontawesome-237f4675.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./flatted-8b14da7d.js";import"./@vueuse/core-9fb50532.js";import"./uuid-cf522c50.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./@jsplumb/browser-ui-715581dc.js";import"./file-saver-5cec22b8.js";import"./vue-json-pretty-be89319b.js";import"./RunDataAi-97c7f732.js";import"./vue-markdown-render-f04fcdc7.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./chart.js-58383f81.js";import"./workflowActivate-417a26ee.js";const T=40,G=J({name:"run-data-table",mixins:[F],components:{Draggable:B,MappingPill:W},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},search:{type:String}},data(){return{activeColumn:-1,forceShowGrip:!1,draggedColumn:!1,draggingPath:null,hoveringPath:null,mappingHintVisible:!1,activeRow:null,columnLimit:T,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:{...K(P,N),hoveringItem(){return this.ndvStore.hoveringItem},pairedItemMappings(){return this.workflowsStore.workflowExecutionPairedItemMappings},tableData(){return this.convertToTable(this.inputData)},focusedMappableInput(){return this.ndvStore.focusedMappableInput}},methods:{shorten:A,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=I(this.node.name,this.runIndex||0,this.outputIndex||0,t);if(!this.hoveringItem||!this.pairedItemMappings[a])return!1;const g=I(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?H({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 H({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(`
1
+ import{m as K}from"./pinia-af9c3f71.js";import{L as N,a4 as P,dQ as A,gy as I,gz as H,ae as j,gA as V,_ as O}from"./n8n-6b07beca.js";import{D as B}from"./NodeView-ef40797d.js";import{e as F}from"./index-ac03fd2d.js";import{M as W}from"./MappingPill-142c06bf.js";import{d as J,g as C,o as r,i as l,n as o,j as n,O as $,a9 as E,h as c,w as d,s as _,t as w,q as S,b as z}from"./vendor-f46c350a.js";import"./lodash-es-bad8e3ee.js";import"./@fortawesome/vue-fontawesome-237f4675.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./flatted-8b14da7d.js";import"./@vueuse/core-9fb50532.js";import"./uuid-cf522c50.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./@jsplumb/browser-ui-715581dc.js";import"./file-saver-5cec22b8.js";import"./vue-json-pretty-be89319b.js";import"./RunDataAi-8d5bd68e.js";import"./vue-markdown-render-f04fcdc7.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./chart.js-58383f81.js";import"./workflowActivate-c971eb19.js";const T=40,G=J({name:"run-data-table",mixins:[F],components:{Draggable:B,MappingPill:W},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},search:{type:String}},data(){return{activeColumn:-1,forceShowGrip:!1,draggedColumn:!1,draggingPath:null,hoveringPath:null,mappingHintVisible:!1,activeRow:null,columnLimit:T,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:{...K(P,N),hoveringItem(){return this.ndvStore.hoveringItem},pairedItemMappings(){return this.workflowsStore.workflowExecutionPairedItemMappings},tableData(){return this.convertToTable(this.inputData)},focusedMappableInput(){return this.ndvStore.focusedMappableInput}},methods:{shorten:A,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=I(this.node.name,this.runIndex||0,this.outputIndex||0,t);if(!this.hoveringItem||!this.pairedItemMappings[a])return!1;const g=I(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?H({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 H({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():e},highlightSearchTerm(e){return j(V(this.getValueToRender(e),this.search))},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 g=this.ndvStore.mappingTelemetry,h={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",h),this.$telemetry.track("User dragged data for mapping",h)},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,h,u;const v={};return e.forEach(y=>{if(!y.hasOwnProperty("json"))return;u=y.json,h=[];const M=Object.keys(u||{});M.length>T?(this.columnLimitExceeded=!0,g=M.slice(0,T)):g=M,a.forEach(s=>{u.hasOwnProperty(s)?(h.push(u[s]),g.splice(g.indexOf(s),1),v[s]=v[s]||typeof u[s]=="object"&&Object.keys(u[s]||{}).length>0||!1):h.push(void 0)}),g.forEach(s=>{a.push(s),h.push(u[s]),v[s]=v[s]||typeof u[s]=="object"&&Object.keys(u[s]||{}).length>0||!1}),t.push(h)}),t.forEach(y=>{a.length>y.length&&y.push(...new Array(a.length-y.length))}),{hasJson:v,columns:a,data:t}},switchToJsonView(){this.$emit("displayModeChange","json")}},watch:{focusedMappableInput(e){setTimeout(()=>{this.forceShowGrip=!!this.focusedMappableInput},e?300:150)}}}),U="/%7B%7BBASE_PATH%7D%7D/static/data-mapping-gif.gif",Q="_dataDisplay_1krqo_5",X="_table_1krqo_18",Y="_nodeClass_1krqo_66",Z="_emptyCell_1krqo_70",x="_header_1krqo_74",ee="_draggableHeader_1krqo_86",te="_dragButton_1krqo_90",ae="_draggingHeader_1krqo_94",ne="_activeHeader_1krqo_98",oe="_dataKey_1krqo_107",se="_value_1krqo_116",re="_nestedValue_1krqo_120 _value_1krqo_116",ie="_mappable_1krqo_125",le="_empty_1krqo_70",de="_limitColWidth_1krqo_133",pe="_minColWidth_1krqo_137",ge="_hoveringKey_1krqo_141",me="_draggingKey_1krqo_145",he="_tableRightMargin_1krqo_149",ue="_hoveringRow_1krqo_157",ce="_warningTooltip_1krqo_162",ye={dataDisplay:Q,table:X,nodeClass:Y,emptyCell:Z,header:x,draggableHeader:ee,dragButton:te,draggingHeader:ae,activeHeader:ne,dataKey:oe,value:se,nestedValue:re,mappable:ie,empty:le,limitColWidth:de,minColWidth:pe,hoveringKey:ge,draggingKey:me,tableRightMargin:he,hoveringRow:ue,warningTooltip:ce},be=["data-row"],fe=n("img",{src:U},null,-1),ve=["innerHTML"],Ce=["data-test-id"],Me=["data-row","data-col"],De=["innerHTML"],we=["onMouseenter","data-name","data-value","data-depth"],$e=["innerHTML"],Ee={key:0};function _e(e,t,a,g,h,u){const v=C("n8n-info-tip"),y=C("MappingPill"),M=C("font-awesome-icon"),s=C("draggable"),k=C("n8n-tooltip"),R=C("i18n-t"),L=C("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($,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(v,null,{default:d(()=>[_(w(e.$locale.baseText("runData.emptyItemHint")),1)]),_:1})],40,be),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($,null,E(e.tableData.columns||[],(m,p)=>(r(),l("th",{key:m},[c(k,{placement:"bottom-start",disabled:!e.mappingEnabled,"show-after":1e3},{content:d(()=>[n("div",null,[fe,_(" "+w(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",{innerHTML:e.highlightSearchTerm(m||"")},null,8,ve),n("div",{class:o(e.$style.dragButton)},[c(M,{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(k,{placement:"bottom-end"},{content:d(()=>[n("div",null,[c(R,{tag:"span",keypath:"dataMapping.tableView.tableColumnsExceeded.tooltip"},{columnLimit:d(()=>[_(w(e.columnLimit),1)]),link:d(()=>[n("a",{onClick:t[2]||(t[2]=(...m)=>e.switchToJsonView&&e.switchToJsonView(...m))},w(e.$locale.baseText("dataMapping.tableView.tableColumnsExceeded.tooltip.link")),1)]),_:1})])]),default:d(()=>[n("span",null,[c(M,{class:o(e.$style.warningTooltip),icon:"exclamation-triangle"},null,8,["class"]),_(" "+w(e.$locale.baseText("dataMapping.tableView.tableColumnsExceeded")),1)])]),_:1})],2)):S("",!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($,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($,null,E(m,(i,b)=>(r(),l("td",{key:b,"data-row":p,"data-col":b,onMouseenter:t[4]||(t[4]=(...f)=>e.onMouseEnterCell&&e.onMouseEnterCell(...f)),onMouseleave:t[5]||(t[5]=(...f)=>e.onMouseLeaveCell&&e.onMouseLeaveCell(...f)),class:o(e.hasJsonInColumn(b)?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)}),innerHTML:e.highlightSearchTerm(i)},null,10,De)):(r(),z(L,{key:1,nodeClass:e.$style.nodeClass,value:i},{label:d(({label:f,path:D})=>[n("span",{onMouseenter:()=>e.onMouseEnterKey(D,b),onMouseleave:t[3]||(t[3]=(...q)=>e.onMouseLeaveKey&&e.onMouseLeaveKey(...q)),class:o({[e.$style.hoveringKey]:e.mappingEnabled&&e.isHovering(D,b),[e.$style.draggingKey]:e.isDraggingKey(D,b),[e.$style.dataKey]:!0,[e.$style.mappable]:e.mappingEnabled}),"data-target":"mappable","data-name":e.getCellPathName(D,b),"data-value":e.getCellExpression(D,b),"data-depth":D.length},w(f||e.$locale.baseText("runData.unnamedField")),43,we)]),value:d(({value:f})=>[n("span",{class:o({[e.$style.nestedValue]:!0,[e.$style.empty]:e.isEmpty(f)}),innerHTML:e.highlightSearchTerm(f)},null,10,$e)]),_:2},1032,["nodeClass","value"]))],42,Me))),128)),e.columnLimitExceeded?(r(),l("td",Ee)):S("",!0),n("td",{class:o(e.$style.tableRightMargin)},null,2)],10,Ce))),128))]),_:1},8,["disabled","onDragstart","onDragend"])],2))],2)}const Te={$style:ye},gt=O(G,[["render",_e],["__cssModules",Te]]);export{gt as default};
3
- //# sourceMappingURL=RunDataTable-17daf3ee.js.map
3
+ //# sourceMappingURL=RunDataTable-dcf4902d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunDataTable-17daf3ee.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 v-html=\"highlightSearchTerm(column || '')\" />\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\tv-html=\"highlightSearchTerm(data)\"\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\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\tv-html=\"highlightSearchTerm(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 { getPairedItemId, highlightText, sanitizeHtml, shorten } from '@/utils';\nimport type { GenericValue, IDataObject, INodeExecutionData } from 'n8n-workflow';\nimport Draggable from './Draggable.vue';\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\tsearch: {\n\t\t\ttype: String,\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): 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 value;\n\t\t},\n\t\thighlightSearchTerm(value: string): string {\n\t\t\treturn sanitizeHtml(highlightText(this.getValueToRender(value), this.search));\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}, 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","sanitizeHtml","highlightText","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","_hoisted_3","_component_i18n_t","_createTextVNode","_toDisplayString","_component_font_awesome_icon","_createCommentVNode","index2","_hoisted_6","_createBlock","_component_n8n_tree","label","_hoisted_7","_hoisted_5","_hoisted_9"],"mappings":"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"}
1
+ {"version":3,"file":"RunDataTable-dcf4902d.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 v-html=\"highlightSearchTerm(column || '')\" />\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\tv-html=\"highlightSearchTerm(data)\"\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\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\tv-html=\"highlightSearchTerm(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 { getPairedItemId, highlightText, sanitizeHtml, shorten } from '@/utils';\nimport type { GenericValue, IDataObject, INodeExecutionData } from 'n8n-workflow';\nimport Draggable from './Draggable.vue';\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\tsearch: {\n\t\t\ttype: String,\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): 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 value;\n\t\t},\n\t\thighlightSearchTerm(value: string): string {\n\t\t\treturn sanitizeHtml(highlightText(this.getValueToRender(value), this.search));\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}, 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","sanitizeHtml","highlightText","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","_hoisted_3","_component_i18n_t","_createTextVNode","_toDisplayString","_component_font_awesome_icon","_createCommentVNode","index2","_hoisted_6","_createBlock","_component_n8n_tree","label","_hoisted_7","_hoisted_5","_hoisted_9"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"./@fortawesome/vue-fontawesome-237f4675.js";import{u as w,R as k,n as g,bb as C,p as S,q as v,v as U,w as A,a1 as I,_ as K}from"./n8n-6b07beca.js";import{f as x}from"./index-1f0f487e.js";import{m as P}from"./pinia-af9c3f71.js";import{d as E,g as t,o as l,i as h,j as s,h as o,w as i,n,s as r,t as a,b as m,q as D,W as M}from"./vendor-f46c350a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./lodash-es-bad8e3ee.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./flatted-8b14da7d.js";import"./@vueuse/core-9fb50532.js";import"./uuid-cf522c50.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./@jsplumb/browser-ui-715581dc.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./chart.js-58383f81.js";const V=E({name:"SettingsApiView",components:{CopyInput:x},setup(){return{...w(),...k(),...g()}},data(){return{loading:!1,mounted:!1,apiKey:"",swaggerUIEnabled:!1,apiDocsURL:""}},mounted(){this.getApiKey();const e=this.rootStore.baseUrl,p=this.settingsStore.publicApiPath,c=this.settingsStore.publicApiLatestVersion;this.swaggerUIEnabled=this.settingsStore.isSwaggerUIEnabled,this.apiDocsURL=this.swaggerUIEnabled?`${e}${p}/v${c}/docs`:`https://${C}/api/api-reference/`},computed:{...P(A,U,v,S,g),currentUser(){return this.usersStore.currentUser},isTrialing(){return this.cloudPlanStore.userIsTrialing},isLoadingCloudPlans(){return this.cloudPlanStore.state.loadingPlan}},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")})===I&&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")}}}),z="_container_1teme_5",L="_header_1teme_9",B="_card_1teme_18",N="_hint_1teme_29",R={container:z,header:L,card:B,delete:"_delete_1teme_22",hint:N},O={key:0},q={class:"mb-s"},W=["textContent"],j=["textContent"];function F(e,p,c,H,J,Q){const b=t("n8n-heading"),y=t("i18n-t"),$=t("n8n-info-tip"),d=t("n8n-link"),f=t("CopyInput"),_=t("n8n-card"),T=t("n8n-text"),u=t("n8n-action-box");return l(),h("div",{class:n(e.$style.container)},[s("div",{class:n(e.$style.header)},[o(b,{size:"2xlarge"},{default:i(()=>[r(a(e.$locale.baseText("settings.api"))+" ",1),s("span",{style:M({fontSize:"var(--font-size-s)",color:"var(--color-text-light)"})}," ("+a(e.$locale.baseText("beta"))+") ",5)]),_:1})],2),e.apiKey?(l(),h("div",O,[s("p",q,[o($,{bold:!1},{default:i(()=>[o(y,{keypath:"settings.api.view.info",tag:"span"},{apiAction:i(()=>[s("a",{href:"https://docs.n8n.io/api",target:"_blank",textContent:a(e.$locale.baseText("settings.api.view.info.api"))},null,8,W)]),webhookAction:i(()=>[s("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})]),o(_,{class:n(["mb-4xs",e.$style.card])},{default:i(()=>[s("span",{class:n(e.$style.delete)},[o(d,{onClick:e.showDeleteModal,bold:!0},{default:i(()=>[r(a(e.$locale.baseText("generic.delete")),1)]),_:1},8,["onClick"])],2),s("div",null,[o(f,{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"),redactValue:!0,onCopy:e.onCopy},null,8,["label","value","copy-button-text","toast-title","onCopy"])])]),_:1},8,["class"]),s("div",{class:n(e.$style.hint)},[o(T,{size:"small"},{default:i(()=>[r(a(e.$locale.baseText(`settings.api.view.${e.swaggerUIEnabled?"tryapi":"more-details"}`)),1)]),_:1}),r(" "+a(" ")+" "),o(d,{to:e.apiDocsURL,newWindow:!0,size:"small"},{default:i(()=>[r(a(e.$locale.baseText(`settings.api.view.${e.swaggerUIEnabled?"apiPlayground":"external-docs"}`)),1)]),_:1},8,["to"])],2)])):e.isTrialing?(l(),m(u,{key:1,heading:e.$locale.baseText("settings.api.trial.upgradePlan.title"),description:e.$locale.baseText("settings.api.trial.upgradePlan.description"),buttonText:e.$locale.baseText("settings.api.trial.upgradePlan.cta"),"onClick:button":e.onUpgrade},null,8,["heading","description","buttonText","onClick:button"])):e.mounted&&!e.isLoadingCloudPlans?(l(),m(u,{key:2,buttonText: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,["buttonText","description","onClick:button"])):D("",!0)],2)}const G={$style:R},Ue=K(V,[["render",F],["__cssModules",G]]);export{Ue as default};
2
- //# sourceMappingURL=SettingsApiView-e4fc36d4.js.map
1
+ import"./@fortawesome/vue-fontawesome-237f4675.js";import{u as w,R as k,n as g,bb as C,p as S,q as v,v as U,w as A,a1 as I,_ as K}from"./n8n-6b07beca.js";import{f as x}from"./index-ac03fd2d.js";import{m as P}from"./pinia-af9c3f71.js";import{d as E,g as t,o as l,i as h,j as s,h as o,w as i,n,s as r,t as a,b as m,q as D,W as M}from"./vendor-f46c350a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./lodash-es-bad8e3ee.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./flatted-8b14da7d.js";import"./@vueuse/core-9fb50532.js";import"./uuid-cf522c50.js";import"./vue-i18n-cb04cc7a.js";import"./@jsplumb/util-d5a5fff8.js";import"./@jsplumb/core-8d347a89.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-5b4468a6.js";import"./@jsplumb/browser-ui-715581dc.js";import"./prettier-51497383.js";import"./codemirror-lang-html-n8n-2834c921.js";import"./@n8n/codemirror-lang-sql-c830a767.js";import"./@lezer/common-4a878264.js";import"./codemirror-lang-n8n-expression-53c11692.js";import"./fast-json-stable-stringify-2d2dc6c9.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-065a6dad.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-49fe6185.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";import"./chart.js-58383f81.js";const V=E({name:"SettingsApiView",components:{CopyInput:x},setup(){return{...w(),...k(),...g()}},data(){return{loading:!1,mounted:!1,apiKey:"",swaggerUIEnabled:!1,apiDocsURL:""}},mounted(){this.getApiKey();const e=this.rootStore.baseUrl,p=this.settingsStore.publicApiPath,c=this.settingsStore.publicApiLatestVersion;this.swaggerUIEnabled=this.settingsStore.isSwaggerUIEnabled,this.apiDocsURL=this.swaggerUIEnabled?`${e}${p}/v${c}/docs`:`https://${C}/api/api-reference/`},computed:{...P(A,U,v,S,g),currentUser(){return this.usersStore.currentUser},isTrialing(){return this.cloudPlanStore.userIsTrialing},isLoadingCloudPlans(){return this.cloudPlanStore.state.loadingPlan}},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")})===I&&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")}}}),z="_container_1teme_5",L="_header_1teme_9",B="_card_1teme_18",N="_hint_1teme_29",R={container:z,header:L,card:B,delete:"_delete_1teme_22",hint:N},O={key:0},q={class:"mb-s"},W=["textContent"],j=["textContent"];function F(e,p,c,H,J,Q){const b=t("n8n-heading"),y=t("i18n-t"),$=t("n8n-info-tip"),d=t("n8n-link"),f=t("CopyInput"),_=t("n8n-card"),T=t("n8n-text"),u=t("n8n-action-box");return l(),h("div",{class:n(e.$style.container)},[s("div",{class:n(e.$style.header)},[o(b,{size:"2xlarge"},{default:i(()=>[r(a(e.$locale.baseText("settings.api"))+" ",1),s("span",{style:M({fontSize:"var(--font-size-s)",color:"var(--color-text-light)"})}," ("+a(e.$locale.baseText("beta"))+") ",5)]),_:1})],2),e.apiKey?(l(),h("div",O,[s("p",q,[o($,{bold:!1},{default:i(()=>[o(y,{keypath:"settings.api.view.info",tag:"span"},{apiAction:i(()=>[s("a",{href:"https://docs.n8n.io/api",target:"_blank",textContent:a(e.$locale.baseText("settings.api.view.info.api"))},null,8,W)]),webhookAction:i(()=>[s("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})]),o(_,{class:n(["mb-4xs",e.$style.card])},{default:i(()=>[s("span",{class:n(e.$style.delete)},[o(d,{onClick:e.showDeleteModal,bold:!0},{default:i(()=>[r(a(e.$locale.baseText("generic.delete")),1)]),_:1},8,["onClick"])],2),s("div",null,[o(f,{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"),redactValue:!0,onCopy:e.onCopy},null,8,["label","value","copy-button-text","toast-title","onCopy"])])]),_:1},8,["class"]),s("div",{class:n(e.$style.hint)},[o(T,{size:"small"},{default:i(()=>[r(a(e.$locale.baseText(`settings.api.view.${e.swaggerUIEnabled?"tryapi":"more-details"}`)),1)]),_:1}),r(" "+a(" ")+" "),o(d,{to:e.apiDocsURL,newWindow:!0,size:"small"},{default:i(()=>[r(a(e.$locale.baseText(`settings.api.view.${e.swaggerUIEnabled?"apiPlayground":"external-docs"}`)),1)]),_:1},8,["to"])],2)])):e.isTrialing?(l(),m(u,{key:1,heading:e.$locale.baseText("settings.api.trial.upgradePlan.title"),description:e.$locale.baseText("settings.api.trial.upgradePlan.description"),buttonText:e.$locale.baseText("settings.api.trial.upgradePlan.cta"),"onClick:button":e.onUpgrade},null,8,["heading","description","buttonText","onClick:button"])):e.mounted&&!e.isLoadingCloudPlans?(l(),m(u,{key:2,buttonText: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,["buttonText","description","onClick:button"])):D("",!0)],2)}const G={$style:R},Ue=K(V,[["render",F],["__cssModules",G]]);export{Ue as default};
2
+ //# sourceMappingURL=SettingsApiView-667aa889.js.map