n8n-editor-ui 0.196.2 → 0.196.3

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 (27) hide show
  1. package/.turbo/turbo-build.log +13 -13
  2. package/dist/assets/{CanvasControls-f75f0803.js → CanvasControls-1a78c463.js} +2 -2
  3. package/dist/assets/{CanvasControls-f75f0803.js.map → CanvasControls-1a78c463.js.map} +1 -1
  4. package/dist/assets/{FixedCollectionParameter-6533c166.js → FixedCollectionParameter-0747136c.js} +2 -2
  5. package/dist/assets/{FixedCollectionParameter-6533c166.js.map → FixedCollectionParameter-0747136c.js.map} +1 -1
  6. package/dist/assets/{NodeCreation-4c4e97ea.js → NodeCreation-2c394518.js} +2 -2
  7. package/dist/assets/{NodeCreation-4c4e97ea.js.map → NodeCreation-2c394518.js.map} +1 -1
  8. package/dist/assets/{NodeCreator-4934b9cd.js → NodeCreator-028ea9e4.js} +2 -2
  9. package/dist/assets/{NodeCreator-4934b9cd.js.map → NodeCreator-028ea9e4.js.map} +1 -1
  10. package/dist/assets/{ParameterInputList-d2ecf7b1.js → ParameterInputList-518bddf7.js} +3 -3
  11. package/dist/assets/ParameterInputList-518bddf7.js.map +1 -0
  12. package/dist/assets/{ParameterInputList-0e58617e.css → ParameterInputList-84269d73.css} +1 -1
  13. package/dist/assets/{RunDataJson-2eaed8ed.js → RunDataJson-9fc64fa8.js} +2 -2
  14. package/dist/assets/{RunDataJson-2eaed8ed.js.map → RunDataJson-9fc64fa8.js.map} +1 -1
  15. package/dist/assets/{RunDataJsonActions-a473f607.js → RunDataJsonActions-8ce9514c.js} +2 -2
  16. package/dist/assets/RunDataJsonActions-8ce9514c.js.map +1 -0
  17. package/dist/assets/{RunDataSchema-90f626cd.js → RunDataSchema-03b43582.js} +2 -2
  18. package/dist/assets/{RunDataSchema-90f626cd.js.map → RunDataSchema-03b43582.js.map} +1 -1
  19. package/dist/assets/{RunDataTable-19d4e489.js → RunDataTable-5ea4bb6a.js} +2 -2
  20. package/dist/assets/{RunDataTable-19d4e489.js.map → RunDataTable-5ea4bb6a.js.map} +1 -1
  21. package/dist/assets/{index-f0107aae.css → index-77337f42.css} +1 -1
  22. package/dist/assets/{index-a94320f4.js → index-8d844e9c.js} +4 -4
  23. package/dist/assets/{index-a94320f4.js.map → index-8d844e9c.js.map} +1 -1
  24. package/dist/index.html +4 -4
  25. package/package.json +1 -1
  26. package/dist/assets/ParameterInputList-d2ecf7b1.js.map +0 -1
  27. package/dist/assets/RunDataJsonActions-a473f607.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
 
2
- > n8n-editor-ui@0.196.2 build /home/runner/work/n8n/n8n/packages/editor-ui
2
+ > n8n-editor-ui@0.196.3 build /home/runner/work/n8n/n8n/packages/editor-ui
3
3
  > cross-env VUE_APP_PUBLIC_PATH="/{{BASE_PATH}}/" NODE_OPTIONS="--max-old-space-size=8192" vite build
4
4
 
5
5
  vite v4.0.4 building for production...
@@ -26,9 +26,9 @@ computing gzip size...
26
26
  dist/assets/RunDataTable-085a10fc.css  2.96 kB │ gzip: 0.93 kB
27
27
  dist/assets/RunDataSchema-db860d81.css  3.63 kB │ gzip: 0.96 kB
28
28
  dist/assets/NodeCreator-a6bdb8af.css  11.46 kB │ gzip: 2.48 kB
29
- dist/assets/ParameterInputList-0e58617e.css  17.02 kB │ gzip: 3.54 kB
29
+ dist/assets/ParameterInputList-84269d73.css  17.02 kB │ gzip: 3.54 kB
30
30
  dist/assets/n8n-7c013534.css  55.33 kB │ gzip: 8.73 kB
31
- dist/assets/index-f0107aae.css  376.98 kB │ gzip: 53.65 kB
31
+ dist/assets/index-77337f42.css  376.98 kB │ gzip: 53.65 kB
32
32
  dist/assets/xss-d680945f.js  0.07 kB │ gzip: 0.09 kB │ map: 0.10 kB
33
33
  dist/assets/@fortawesome/free-regular-svg-icons-74cb85f8.js  0.67 kB │ gzip: 0.46 kB │ map: 170.46 kB
34
34
  dist/assets/MappingPill-f2cb777b.js  0.69 kB │ gzip: 0.44 kB │ map: 0.10 kB
@@ -42,21 +42,21 @@ computing gzip size...
42
42
  dist/assets/vue-fragment-f3d0cc79.js  2.14 kB │ gzip: 0.93 kB │ map: 5.21 kB
43
43
  dist/assets/@jsplumb/common-fe415eb9.js  2.16 kB │ gzip: 0.92 kB │ map: 7.69 kB
44
44
  dist/assets/copy-to-clipboard-fcf36459.js  2.22 kB │ gzip: 1.07 kB │ map: 7.13 kB
45
- dist/assets/CanvasControls-f75f0803.js  2.63 kB │ gzip: 1.15 kB │ map: 3.37 kB
45
+ dist/assets/CanvasControls-1a78c463.js  2.63 kB │ gzip: 1.15 kB │ map: 3.37 kB
46
46
  dist/assets/file-saver-96a53892.js  2.69 kB │ gzip: 1.29 kB │ map: 5.87 kB
47
- dist/assets/RunDataJsonActions-a473f607.js  2.92 kB │ gzip: 1.25 kB │ map: 0.11 kB
47
+ dist/assets/RunDataJsonActions-8ce9514c.js  2.92 kB │ gzip: 1.26 kB │ map: 0.11 kB
48
48
  dist/assets/dateformat-ef117725.js  3.02 kB │ gzip: 1.58 kB │ map: 11.30 kB
49
49
  dist/assets/vue2-touch-events-0d54de8b.js  4.63 kB │ gzip: 1.60 kB │ map: 20.13 kB
50
- dist/assets/NodeCreation-4c4e97ea.js  5.05 kB │ gzip: 1.99 kB │ map: 6.00 kB
51
- dist/assets/RunDataSchema-90f626cd.js  6.81 kB │ gzip: 2.81 kB │ map: 12.68 kB
50
+ dist/assets/NodeCreation-2c394518.js  5.05 kB │ gzip: 1.99 kB │ map: 6.00 kB
51
+ dist/assets/RunDataSchema-03b43582.js  6.81 kB │ gzip: 2.81 kB │ map: 12.68 kB
52
52
  dist/assets/@fortawesome/vue-fontawesome-6ff4768c.js  6.97 kB │ gzip: 2.62 kB │ map: 29.37 kB
53
53
  dist/assets/vue2-teleport-53e66c3b.js  7.62 kB │ gzip: 2.85 kB │ map: 21.12 kB
54
54
  dist/assets/canvas-confetti-60b90aac.js  7.74 kB │ gzip: 3.19 kB │ map: 29.95 kB
55
- dist/assets/FixedCollectionParameter-6533c166.js  7.76 kB │ gzip: 2.36 kB │ map: 13.43 kB
56
- dist/assets/RunDataJson-2eaed8ed.js  8.08 kB │ gzip: 3.18 kB │ map: 16.56 kB
55
+ dist/assets/FixedCollectionParameter-0747136c.js  7.76 kB │ gzip: 2.36 kB │ map: 13.43 kB
56
+ dist/assets/RunDataJson-9fc64fa8.js  8.08 kB │ gzip: 3.19 kB │ map: 16.56 kB
57
57
  dist/assets/@jsplumb/util-98a92a84.js  9.69 kB │ gzip: 3.64 kB │ map: 44.93 kB
58
58
  dist/assets/lodash-es-cf5c89de.js  9.92 kB │ gzip: 4.48 kB │ map: 82.90 kB
59
- dist/assets/RunDataTable-19d4e489.js  11.75 kB │ gzip: 4.15 kB │ map: 26.92 kB
59
+ dist/assets/RunDataTable-5ea4bb6a.js  11.75 kB │ gzip: 4.15 kB │ map: 26.92 kB
60
60
  dist/assets/vue-agile-3b0cf40b.js  12.33 kB │ gzip: 3.45 kB │ map: 34.72 kB
61
61
  dist/assets/@jsplumb/connector-bezier-d45391a7.js  14.58 kB │ gzip: 5.10 kB │ map: 64.36 kB
62
62
  dist/assets/vue-json-pretty-85edff2f.js  17.51 kB │ gzip: 5.88 kB │ map: 37.75 kB
@@ -66,7 +66,7 @@ computing gzip size...
66
66
  dist/assets/vue-infinite-loading-b4ce7fbc.js  24.05 kB │ gzip: 7.21 kB │ map: 42.82 kB
67
67
  dist/assets/@fortawesome/fontawesome-svg-core-895e0d0e.js  25.96 kB │ gzip: 8.94 kB │ map: 109.02 kB
68
68
  dist/assets/vue-i18n-10a642e3.js  28.09 kB │ gzip: 8.50 kB │ map: 107.03 kB
69
- dist/assets/NodeCreator-4934b9cd.js  54.15 kB │ gzip: 16.64 kB │ map: 144.18 kB
69
+ dist/assets/NodeCreator-028ea9e4.js  54.15 kB │ gzip: 16.64 kB │ map: 144.18 kB
70
70
  dist/assets/luxon-19e1de07.js  63.53 kB │ gzip: 19.83 kB │ map: 344.43 kB
71
71
  dist/assets/@fortawesome/free-solid-svg-icons-b1aba512.js  69.74 kB │ gzip: 24.35 kB │ map: 735.83 kB
72
72
  dist/assets/jsonpath-d0246d26.js  82.37 kB │ gzip: 27.38 kB │ map: 343.79 kB
@@ -77,8 +77,8 @@ computing gzip size...
77
77
  dist/assets/en-77d75caa.js  137.48 kB │ gzip: 33.43 kB │ map: 0.10 kB
78
78
  dist/assets/codemirror-lang-html-n8n-37d68e46.js  434.28 kB │ gzip: 147.62 kB │ map: 1,564.34 kB
79
79
  dist/assets/prettier-e1f05f3a.js  444.47 kB │ gzip: 134.27 kB │ map: 978.65 kB
80
- dist/assets/index-a94320f4.js  740.15 kB │ gzip: 183.63 kB │ map: 1,609.42 kB
81
- dist/assets/ParameterInputList-d2ecf7b1.js 1,106.93 kB │ gzip: 323.65 kB │ map: 2,883.05 kB
80
+ dist/assets/index-8d844e9c.js  740.19 kB │ gzip: 183.64 kB │ map: 1,609.49 kB
81
+ dist/assets/ParameterInputList-518bddf7.js 1,106.97 kB │ gzip: 323.66 kB │ map: 2,883.30 kB
82
82
  dist/assets/n8n-c6c703ae.js 2,360.25 kB │ gzip: 685.59 kB │ map: 8,674.10 kB
83
83
  
84
84
  (!) Some chunks are larger than 500 kBs after minification. Consider:
@@ -1,2 +1,2 @@
1
- import{d as p,e as d,A as _}from"./vendor-ef27a93a.js";import{s as y}from"./pinia-b59d62eb.js";import{f}from"./ParameterInputList-d2ecf7b1.js";import{y as z}from"./n8n-c6c703ae.js";import"./axios-ae7c9370.js";import"./flatted-8b14da7d.js";import"./vue-i18n-10a642e3.js";import"./en-77d75caa.js";import"./dateformat-ef117725.js";import"./lodash-es-cf5c89de.js";import"./@jsplumb/browser-ui-810abb53.js";import"./@jsplumb/core-cbeafece.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-d45391a7.js";import"./uuid-cf522c50.js";import"./luxon-19e1de07.js";import"./codemirror-lang-html-n8n-37d68e46.js";import"./codemirror-lang-n8n-expression-7bdf8ad0.js";import"./fast-json-stable-stringify-0e965c3b.js";import"./esprima-next-8c7e8ff9.js";import"./prettier-e1f05f3a.js";import"./@fortawesome/fontawesome-svg-core-895e0d0e.js";const v=p({__name:"CanvasControls",setup(i){const o=f(),{zoomToFit:t,zoomIn:e,zoomOut:m,resetZoom:a}=o,{nodeViewScale:l,isDemo:u}=y(o),r=n=>{const s=n.metaKey||n.ctrlKey;(n.key==="="||n.key==="+")&&!s?e():(n.key==="_"||n.key==="-")&&!s?m():n.key==="0"&&!s?a():n.key==="1"&&!s&&t()};return d(()=>{document.addEventListener("keydown",r)}),_(()=>{document.removeEventListener("keydown",r)}),{__sfc:!0,canvasStore:o,zoomToFit:t,zoomIn:e,zoomOut:m,resetZoom:a,nodeViewScale:l,isDemo:u,keyDown:r}}}),M="_zoomMenu_clwd7_1",k="_regularZoomMenu_clwd7_21",w="_demoZoomMenu_clwd7_26",b={zoomMenu:M,regularZoomMenu:k,demoZoomMenu:w};var Z=function(){var o=this,t=o._self._c,e=o._self._setupProxy;return t("div",{class:{[o.$style.zoomMenu]:!0,[o.$style.regularZoomMenu]:!e.isDemo,[o.$style.demoZoomMenu]:e.isDemo}},[t("n8n-icon-button",{attrs:{type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomToFit"),icon:"expand","data-test-id":"zoom-to-fit"},on:{click:e.zoomToFit}}),t("n8n-icon-button",{attrs:{type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomIn"),icon:"search-plus","data-test-id":"zoom-in-button"},on:{click:e.zoomIn}}),t("n8n-icon-button",{attrs:{type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomOut"),icon:"search-minus","data-test-id":"zoom-out-button"},on:{click:e.zoomOut}}),e.nodeViewScale!==1&&!e.isDemo?t("n8n-icon-button",{attrs:{type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.resetZoom"),icon:"undo","data-test-id":"reset-zoom-button"},on:{click:e.resetZoom}}):o._e()],1)},x=[];const c={$style:b};function g(i){for(var o in c)this[o]=c[o]}var C=z(v,Z,x,!1,g,null,null,null);const Q=C.exports;export{Q as default};
2
- //# sourceMappingURL=CanvasControls-f75f0803.js.map
1
+ import{d as p,e as d,A as _}from"./vendor-ef27a93a.js";import{s as y}from"./pinia-b59d62eb.js";import{f}from"./ParameterInputList-518bddf7.js";import{y as z}from"./n8n-c6c703ae.js";import"./axios-ae7c9370.js";import"./flatted-8b14da7d.js";import"./vue-i18n-10a642e3.js";import"./en-77d75caa.js";import"./dateformat-ef117725.js";import"./lodash-es-cf5c89de.js";import"./@jsplumb/browser-ui-810abb53.js";import"./@jsplumb/core-cbeafece.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-d45391a7.js";import"./uuid-cf522c50.js";import"./luxon-19e1de07.js";import"./codemirror-lang-html-n8n-37d68e46.js";import"./codemirror-lang-n8n-expression-7bdf8ad0.js";import"./fast-json-stable-stringify-0e965c3b.js";import"./esprima-next-8c7e8ff9.js";import"./prettier-e1f05f3a.js";import"./@fortawesome/fontawesome-svg-core-895e0d0e.js";const v=p({__name:"CanvasControls",setup(i){const o=f(),{zoomToFit:t,zoomIn:e,zoomOut:m,resetZoom:a}=o,{nodeViewScale:l,isDemo:u}=y(o),r=n=>{const s=n.metaKey||n.ctrlKey;(n.key==="="||n.key==="+")&&!s?e():(n.key==="_"||n.key==="-")&&!s?m():n.key==="0"&&!s?a():n.key==="1"&&!s&&t()};return d(()=>{document.addEventListener("keydown",r)}),_(()=>{document.removeEventListener("keydown",r)}),{__sfc:!0,canvasStore:o,zoomToFit:t,zoomIn:e,zoomOut:m,resetZoom:a,nodeViewScale:l,isDemo:u,keyDown:r}}}),M="_zoomMenu_clwd7_1",k="_regularZoomMenu_clwd7_21",w="_demoZoomMenu_clwd7_26",b={zoomMenu:M,regularZoomMenu:k,demoZoomMenu:w};var Z=function(){var o=this,t=o._self._c,e=o._self._setupProxy;return t("div",{class:{[o.$style.zoomMenu]:!0,[o.$style.regularZoomMenu]:!e.isDemo,[o.$style.demoZoomMenu]:e.isDemo}},[t("n8n-icon-button",{attrs:{type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomToFit"),icon:"expand","data-test-id":"zoom-to-fit"},on:{click:e.zoomToFit}}),t("n8n-icon-button",{attrs:{type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomIn"),icon:"search-plus","data-test-id":"zoom-in-button"},on:{click:e.zoomIn}}),t("n8n-icon-button",{attrs:{type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomOut"),icon:"search-minus","data-test-id":"zoom-out-button"},on:{click:e.zoomOut}}),e.nodeViewScale!==1&&!e.isDemo?t("n8n-icon-button",{attrs:{type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.resetZoom"),icon:"undo","data-test-id":"reset-zoom-button"},on:{click:e.resetZoom}}):o._e()],1)},x=[];const c={$style:b};function g(i){for(var o in c)this[o]=c[o]}var C=z(v,Z,x,!1,g,null,null,null);const Q=C.exports;export{Q as default};
2
+ //# sourceMappingURL=CanvasControls-1a78c463.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasControls-f75f0803.js","sources":["../../src/components/CanvasControls.vue"],"sourcesContent":["<template>\n\t<div\n\t\t:class=\"{\n\t\t\t[$style.zoomMenu]: true,\n\t\t\t[$style.regularZoomMenu]: !isDemo,\n\t\t\t[$style.demoZoomMenu]: isDemo,\n\t\t}\"\n\t>\n\t\t<n8n-icon-button\n\t\t\t@click=\"zoomToFit\"\n\t\t\ttype=\"tertiary\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"$locale.baseText('nodeView.zoomToFit')\"\n\t\t\ticon=\"expand\"\n\t\t\tdata-test-id=\"zoom-to-fit\"\n\t\t/>\n\t\t<n8n-icon-button\n\t\t\t@click=\"zoomIn\"\n\t\t\ttype=\"tertiary\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"$locale.baseText('nodeView.zoomIn')\"\n\t\t\ticon=\"search-plus\"\n\t\t\tdata-test-id=\"zoom-in-button\"\n\t\t/>\n\t\t<n8n-icon-button\n\t\t\t@click=\"zoomOut\"\n\t\t\ttype=\"tertiary\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"$locale.baseText('nodeView.zoomOut')\"\n\t\t\ticon=\"search-minus\"\n\t\t\tdata-test-id=\"zoom-out-button\"\n\t\t/>\n\t\t<n8n-icon-button\n\t\t\tv-if=\"nodeViewScale !== 1 && !isDemo\"\n\t\t\t@click=\"resetZoom\"\n\t\t\ttype=\"tertiary\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"$locale.baseText('nodeView.resetZoom')\"\n\t\t\ticon=\"undo\"\n\t\t\tdata-test-id=\"reset-zoom-button\"\n\t\t/>\n\t</div>\n</template>\n<script lang=\"ts\" setup>\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { useCanvasStore } from '@/stores/canvas.store';\n\nconst canvasStore = useCanvasStore();\nconst { zoomToFit, zoomIn, zoomOut, resetZoom } = canvasStore;\nconst { nodeViewScale, isDemo } = storeToRefs(canvasStore);\n\nconst keyDown = (e: KeyboardEvent) => {\n\tconst isCtrlKeyPressed = e.metaKey || e.ctrlKey;\n\tif ((e.key === '=' || e.key === '+') && !isCtrlKeyPressed) {\n\t\tzoomIn();\n\t} else if ((e.key === '_' || e.key === '-') && !isCtrlKeyPressed) {\n\t\tzoomOut();\n\t} else if (e.key === '0' && !isCtrlKeyPressed) {\n\t\tresetZoom();\n\t} else if (e.key === '1' && !isCtrlKeyPressed) {\n\t\tzoomToFit();\n\t}\n};\n\nonBeforeMount(() => {\n\tdocument.addEventListener('keydown', keyDown);\n});\n\nonBeforeUnmount(() => {\n\tdocument.removeEventListener('keydown', keyDown);\n});\n</script>\n\n<style lang=\"scss\" module>\n.zoomMenu {\n\tposition: absolute;\n\twidth: 210px;\n\tbottom: 108px;\n\tleft: 35px;\n\tline-height: 25px;\n\tcolor: #444;\n\tpadding-right: 5px;\n\n\tbutton {\n\t\tborder: var(--border-base);\n\t}\n\n\t> * {\n\t\t+ * {\n\t\t\tmargin-left: var(--spacing-3xs);\n\t\t}\n\n\t\t&:hover {\n\t\t\ttransform: scale(1.1);\n\t\t}\n\t}\n}\n\n.regularZoomMenu {\n\t@media (max-width: $breakpoint-2xs) {\n\t\tbottom: 90px;\n\t}\n}\n\n.demoZoomMenu {\n\tleft: 10px;\n\tbottom: 10px;\n}\n</style>\n"],"names":["canvasStore","useCanvasStore","zoomToFit","zoomIn","zoomOut","resetZoom","nodeViewScale","isDemo","storeToRefs","keyDown","e","isCtrlKeyPressed","onBeforeMount","onBeforeUnmount"],"mappings":"k6BAgDA,MAAMA,EAAcC,IACd,CAAE,UAAAC,EAAW,OAAAC,EAAQ,QAAAC,EAAS,UAAAC,GAAcL,EAC5C,CAAE,cAAAM,EAAe,OAAAC,CAAO,EAAIC,EAAYR,CAAW,EAEnDS,EAAWC,GAAqB,CAC/B,MAAAC,EAAmBD,EAAE,SAAWA,EAAE,SACnCA,EAAE,MAAQ,KAAOA,EAAE,MAAQ,MAAQ,CAACC,EACjCR,KACIO,EAAE,MAAQ,KAAOA,EAAE,MAAQ,MAAQ,CAACC,EACvCP,IACEM,EAAE,MAAQ,KAAO,CAACC,EAClBN,IACAK,EAAE,MAAQ,KAAO,CAACC,GAClBT,GACX,EAGD,OAAAU,EAAc,IAAM,CACV,SAAA,iBAAiB,UAAWH,CAAO,CAAA,CAC5C,EAEDI,EAAgB,IAAM,CACZ,SAAA,oBAAoB,UAAWJ,CAAO,CAAA,CAC/C"}
1
+ {"version":3,"file":"CanvasControls-1a78c463.js","sources":["../../src/components/CanvasControls.vue"],"sourcesContent":["<template>\n\t<div\n\t\t:class=\"{\n\t\t\t[$style.zoomMenu]: true,\n\t\t\t[$style.regularZoomMenu]: !isDemo,\n\t\t\t[$style.demoZoomMenu]: isDemo,\n\t\t}\"\n\t>\n\t\t<n8n-icon-button\n\t\t\t@click=\"zoomToFit\"\n\t\t\ttype=\"tertiary\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"$locale.baseText('nodeView.zoomToFit')\"\n\t\t\ticon=\"expand\"\n\t\t\tdata-test-id=\"zoom-to-fit\"\n\t\t/>\n\t\t<n8n-icon-button\n\t\t\t@click=\"zoomIn\"\n\t\t\ttype=\"tertiary\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"$locale.baseText('nodeView.zoomIn')\"\n\t\t\ticon=\"search-plus\"\n\t\t\tdata-test-id=\"zoom-in-button\"\n\t\t/>\n\t\t<n8n-icon-button\n\t\t\t@click=\"zoomOut\"\n\t\t\ttype=\"tertiary\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"$locale.baseText('nodeView.zoomOut')\"\n\t\t\ticon=\"search-minus\"\n\t\t\tdata-test-id=\"zoom-out-button\"\n\t\t/>\n\t\t<n8n-icon-button\n\t\t\tv-if=\"nodeViewScale !== 1 && !isDemo\"\n\t\t\t@click=\"resetZoom\"\n\t\t\ttype=\"tertiary\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"$locale.baseText('nodeView.resetZoom')\"\n\t\t\ticon=\"undo\"\n\t\t\tdata-test-id=\"reset-zoom-button\"\n\t\t/>\n\t</div>\n</template>\n<script lang=\"ts\" setup>\nimport { onBeforeMount, onBeforeUnmount } from 'vue';\nimport { storeToRefs } from 'pinia';\nimport { useCanvasStore } from '@/stores/canvas.store';\n\nconst canvasStore = useCanvasStore();\nconst { zoomToFit, zoomIn, zoomOut, resetZoom } = canvasStore;\nconst { nodeViewScale, isDemo } = storeToRefs(canvasStore);\n\nconst keyDown = (e: KeyboardEvent) => {\n\tconst isCtrlKeyPressed = e.metaKey || e.ctrlKey;\n\tif ((e.key === '=' || e.key === '+') && !isCtrlKeyPressed) {\n\t\tzoomIn();\n\t} else if ((e.key === '_' || e.key === '-') && !isCtrlKeyPressed) {\n\t\tzoomOut();\n\t} else if (e.key === '0' && !isCtrlKeyPressed) {\n\t\tresetZoom();\n\t} else if (e.key === '1' && !isCtrlKeyPressed) {\n\t\tzoomToFit();\n\t}\n};\n\nonBeforeMount(() => {\n\tdocument.addEventListener('keydown', keyDown);\n});\n\nonBeforeUnmount(() => {\n\tdocument.removeEventListener('keydown', keyDown);\n});\n</script>\n\n<style lang=\"scss\" module>\n.zoomMenu {\n\tposition: absolute;\n\twidth: 210px;\n\tbottom: 108px;\n\tleft: 35px;\n\tline-height: 25px;\n\tcolor: #444;\n\tpadding-right: 5px;\n\n\tbutton {\n\t\tborder: var(--border-base);\n\t}\n\n\t> * {\n\t\t+ * {\n\t\t\tmargin-left: var(--spacing-3xs);\n\t\t}\n\n\t\t&:hover {\n\t\t\ttransform: scale(1.1);\n\t\t}\n\t}\n}\n\n.regularZoomMenu {\n\t@media (max-width: $breakpoint-2xs) {\n\t\tbottom: 90px;\n\t}\n}\n\n.demoZoomMenu {\n\tleft: 10px;\n\tbottom: 10px;\n}\n</style>\n"],"names":["canvasStore","useCanvasStore","zoomToFit","zoomIn","zoomOut","resetZoom","nodeViewScale","isDemo","storeToRefs","keyDown","e","isCtrlKeyPressed","onBeforeMount","onBeforeUnmount"],"mappings":"k6BAgDA,MAAMA,EAAcC,IACd,CAAE,UAAAC,EAAW,OAAAC,EAAQ,QAAAC,EAAS,UAAAC,GAAcL,EAC5C,CAAE,cAAAM,EAAe,OAAAC,CAAO,EAAIC,EAAYR,CAAW,EAEnDS,EAAWC,GAAqB,CAC/B,MAAAC,EAAmBD,EAAE,SAAWA,EAAE,SACnCA,EAAE,MAAQ,KAAOA,EAAE,MAAQ,MAAQ,CAACC,EACjCR,KACIO,EAAE,MAAQ,KAAOA,EAAE,MAAQ,MAAQ,CAACC,EACvCP,IACEM,EAAE,MAAQ,KAAO,CAACC,EAClBN,IACAK,EAAE,MAAQ,KAAO,CAACC,GAClBT,GACX,EAGD,OAAAU,EAAc,IAAM,CACV,SAAA,iBAAiB,UAAWH,CAAO,CAAA,CAC5C,EAEDI,EAAgB,IAAM,CACZ,SAAA,oBAAoB,UAAWJ,CAAO,CAAA,CAC/C"}
@@ -1,2 +1,2 @@
1
- import{cL as m}from"./ParameterInputList-d2ecf7b1.js";import{d as u}from"./vendor-ef27a93a.js";import{D as o,a8 as n,m as p,y as c}from"./n8n-c6c703ae.js";import"./pinia-b59d62eb.js";import"./axios-ae7c9370.js";import"./flatted-8b14da7d.js";import"./vue-i18n-10a642e3.js";import"./en-77d75caa.js";import"./dateformat-ef117725.js";import"./lodash-es-cf5c89de.js";import"./@jsplumb/browser-ui-810abb53.js";import"./@jsplumb/core-cbeafece.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-d45391a7.js";import"./uuid-cf522c50.js";import"./luxon-19e1de07.js";import"./codemirror-lang-html-n8n-37d68e46.js";import"./codemirror-lang-n8n-expression-7bdf8ad0.js";import"./fast-json-stable-stringify-0e965c3b.js";import"./esprima-next-8c7e8ff9.js";import"./prettier-e1f05f3a.js";import"./@fortawesome/fontawesome-svg-core-895e0d0e.js";const d=u({name:"FixedCollectionParameter",props:{nodeValues:{type:Object,required:!0},parameter:{type:Object,required:!0},path:{type:String,required:!0},values:{type:Object,default:()=>({})},isReadOnly:{type:Boolean,default:!1}},components:{ParameterInputList:async()=>m(()=>import("./ParameterInputList-d2ecf7b1.js").then(t=>t.el),["assets/ParameterInputList-d2ecf7b1.js","assets/vendor-ef27a93a.js","assets/pinia-b59d62eb.js","assets/n8n-c6c703ae.js","assets/@fortawesome/fontawesome-svg-core-895e0d0e.js","assets/luxon-19e1de07.js","assets/esprima-next-8c7e8ff9.js","assets/n8n-7c013534.css","assets/axios-ae7c9370.js","assets/flatted-8b14da7d.js","assets/vue-i18n-10a642e3.js","assets/en-77d75caa.js","assets/dateformat-ef117725.js","assets/lodash-es-cf5c89de.js","assets/@jsplumb/browser-ui-810abb53.js","assets/@jsplumb/core-cbeafece.js","assets/@jsplumb/util-98a92a84.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-d45391a7.js","assets/uuid-cf522c50.js","assets/codemirror-lang-html-n8n-37d68e46.js","assets/codemirror-lang-n8n-expression-7bdf8ad0.js","assets/fast-json-stable-stringify-0e965c3b.js","assets/prettier-e1f05f3a.js","assets/ParameterInputList-0e58617e.css"])},data(){return{selectedOption:void 0,mutableValues:{}}},watch:{values:{handler(t){this.mutableValues=o(t)},deep:!0}},created(){this.mutableValues=o(this.values)},computed:{getPlaceholderText(){const t=this.$locale.nodeText().placeholder(this.parameter,this.path);return t||this.$locale.baseText("fixedCollectionParameter.choose")},getProperties(){const t=[];let e;for(const a of this.propertyNames)e=this.getOptionProperties(a),e!==void 0&&t.push(e);return t},multipleValues(){var t;return!!((t=this.parameter.typeOptions)!=null&&t.multipleValues)},parameterOptions(){return this.multipleValues&&n(this.parameter.options)?this.parameter.options:this.parameter.options.filter(t=>!this.propertyNames.includes(t.name))},propertyNames(){return Object.keys(this.mutableValues||{})},sortable(){var t;return!!((t=this.parameter.typeOptions)!=null&&t.sortable)}},methods:{deleteOption(t,e){const a=this.mutableValues[t];!a||a.length>1?this.$emit("valueChanged",{name:this.getPropertyPath(t,e),value:void 0}):this.$emit("valueChanged",{name:this.getPropertyPath(t),value:void 0})},getPropertyPath(t,e){return`${this.path}.${t}`+(e!==void 0?`[${e}]`:"")},getOptionProperties(t){if(n(this.parameter.options)){for(const e of this.parameter.options)if(e.name===t)return e}},moveOptionDown(t,e){Array.isArray(this.mutableValues[t])&&this.mutableValues[t].splice(e+1,0,this.mutableValues[t].splice(e,1)[0]);const a={name:this.getPropertyPath(t),value:this.mutableValues[t]};this.$emit("valueChanged",a)},moveOptionUp(t,e){var i;Array.isArray(this.mutableValues[t])&&((i=this.mutableValues)==null||i[t].splice(e-1,0,this.mutableValues[t].splice(e,1)[0]));const a={name:this.getPropertyPath(t),value:this.mutableValues[t]};this.$emit("valueChanged",a)},optionSelected(t){const e=this.getOptionProperties(t);if(e===void 0)return;const a=`${this.path}.${e.name}`,i={};for(const s of e.values)s.type==="fixedCollection"&&s.typeOptions!==void 0&&s.typeOptions.multipleValues===!0?i[s.name]={}:s.typeOptions!==void 0&&s.typeOptions.multipleValues===!0?(i[s.name]=p(this.nodeValues,`${this.path}.${s.name}`,[]),Array.isArray(s.default)?i[s.name].push(...o(s.default)):s.default!==""&&typeof s.default!="object"&&i[s.name].push(o(s.default))):i[s.name]=o(s.default);let r;this.multipleValues?(r=p(this.nodeValues,a,[]),r.push(i)):r=i;const l={name:a,value:r};this.$emit("valueChanged",l),this.selectedOption=void 0},valueChanged(t){this.$emit("valueChanged",t)}}});var h=function(){var e=this,a=e._self._c;return e._self._setupProxy,a("div",{staticClass:"fixed-collection-parameter",on:{keydown:function(i){i.stopPropagation()}}},[e.getProperties.length===0?a("div",{staticClass:"no-items-exist"},[a("n8n-text",{attrs:{size:"small"}},[e._v(e._s(e.$locale.baseText("fixedCollectionParameter.currentlyNoItemsExist")))])],1):e._e(),e._l(e.getProperties,function(i){return a("div",{key:i.name,staticClass:"fixed-collection-parameter-property"},[i.displayName!==""&&e.parameter.options&&e.parameter.options.length!==1?a("n8n-input-label",{attrs:{label:e.$locale.nodeText().inputLabelDisplayName(i,e.path),underline:!0,size:"small",color:"text-dark"}}):e._e(),e.multipleValues?a("div",e._l(e.mutableValues[i.name],function(r,l){return a("div",{key:i.name+l,staticClass:"parameter-item"},[a("div",{staticClass:"parameter-item-wrapper"},[e.isReadOnly?e._e():a("div",{staticClass:"delete-option"},[a("font-awesome-icon",{staticClass:"reset-icon clickable",attrs:{icon:"trash",title:e.$locale.baseText("fixedCollectionParameter.deleteItem")},on:{click:function(s){return e.deleteOption(i.name,l)}}}),e.sortable?a("div",{staticClass:"sort-icon"},[l!==0?a("font-awesome-icon",{staticClass:"clickable",attrs:{icon:"angle-up",title:e.$locale.baseText("fixedCollectionParameter.moveUp")},on:{click:function(s){return e.moveOptionUp(i.name,l)}}}):e._e(),l!==e.mutableValues[i.name].length-1?a("font-awesome-icon",{staticClass:"clickable",attrs:{icon:"angle-down",title:e.$locale.baseText("fixedCollectionParameter.moveDown")},on:{click:function(s){return e.moveOptionDown(i.name,l)}}}):e._e()],1):e._e()],1),a("parameter-input-list",{attrs:{parameters:i.values,nodeValues:e.nodeValues,path:e.getPropertyPath(i.name,l),hideDelete:!0,isReadOnly:e.isReadOnly},on:{valueChanged:e.valueChanged}})],1)])}),0):a("div",{staticClass:"parameter-item"},[a("div",{staticClass:"parameter-item-wrapper"},[e.isReadOnly?e._e():a("div",{staticClass:"delete-option"},[a("font-awesome-icon",{staticClass:"reset-icon clickable",attrs:{icon:"trash",title:e.$locale.baseText("fixedCollectionParameter.deleteItem")},on:{click:function(r){return e.deleteOption(i.name)}}})],1),a("parameter-input-list",{staticClass:"parameter-item",attrs:{parameters:i.values,nodeValues:e.nodeValues,path:e.getPropertyPath(i.name),isReadOnly:e.isReadOnly,hideDelete:!0},on:{valueChanged:e.valueChanged}})],1)])],1)}),e.parameterOptions.length>0&&!e.isReadOnly?a("div",[e.parameter.options.length===1?a("n8n-button",{attrs:{type:"tertiary",block:"",label:e.getPlaceholderText},on:{click:function(i){return e.optionSelected(e.parameter.options[0].name)}}}):a("div",{staticClass:"add-option"},[a("n8n-select",{attrs:{placeholder:e.getPlaceholderText,size:"small",filterable:""},on:{change:e.optionSelected},model:{value:e.selectedOption,callback:function(i){e.selectedOption=i},expression:"selectedOption"}},e._l(e.parameterOptions,function(i){return a("n8n-option",{key:i.name,attrs:{label:e.$locale.nodeText().collectionOptionDisplayName(e.parameter,i,e.path),value:i.name}})}),1)],1)],1):e._e()],2)},v=[],f=c(d,h,v,!1,null,"a31e0198",null,null);const E=f.exports;export{E as default};
2
- //# sourceMappingURL=FixedCollectionParameter-6533c166.js.map
1
+ import{cL as m}from"./ParameterInputList-518bddf7.js";import{d as u}from"./vendor-ef27a93a.js";import{D as o,a8 as n,m as p,y as c}from"./n8n-c6c703ae.js";import"./pinia-b59d62eb.js";import"./axios-ae7c9370.js";import"./flatted-8b14da7d.js";import"./vue-i18n-10a642e3.js";import"./en-77d75caa.js";import"./dateformat-ef117725.js";import"./lodash-es-cf5c89de.js";import"./@jsplumb/browser-ui-810abb53.js";import"./@jsplumb/core-cbeafece.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-d45391a7.js";import"./uuid-cf522c50.js";import"./luxon-19e1de07.js";import"./codemirror-lang-html-n8n-37d68e46.js";import"./codemirror-lang-n8n-expression-7bdf8ad0.js";import"./fast-json-stable-stringify-0e965c3b.js";import"./esprima-next-8c7e8ff9.js";import"./prettier-e1f05f3a.js";import"./@fortawesome/fontawesome-svg-core-895e0d0e.js";const d=u({name:"FixedCollectionParameter",props:{nodeValues:{type:Object,required:!0},parameter:{type:Object,required:!0},path:{type:String,required:!0},values:{type:Object,default:()=>({})},isReadOnly:{type:Boolean,default:!1}},components:{ParameterInputList:async()=>m(()=>import("./ParameterInputList-518bddf7.js").then(t=>t.el),["assets/ParameterInputList-518bddf7.js","assets/vendor-ef27a93a.js","assets/pinia-b59d62eb.js","assets/n8n-c6c703ae.js","assets/@fortawesome/fontawesome-svg-core-895e0d0e.js","assets/luxon-19e1de07.js","assets/esprima-next-8c7e8ff9.js","assets/n8n-7c013534.css","assets/axios-ae7c9370.js","assets/flatted-8b14da7d.js","assets/vue-i18n-10a642e3.js","assets/en-77d75caa.js","assets/dateformat-ef117725.js","assets/lodash-es-cf5c89de.js","assets/@jsplumb/browser-ui-810abb53.js","assets/@jsplumb/core-cbeafece.js","assets/@jsplumb/util-98a92a84.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-d45391a7.js","assets/uuid-cf522c50.js","assets/codemirror-lang-html-n8n-37d68e46.js","assets/codemirror-lang-n8n-expression-7bdf8ad0.js","assets/fast-json-stable-stringify-0e965c3b.js","assets/prettier-e1f05f3a.js","assets/ParameterInputList-84269d73.css"])},data(){return{selectedOption:void 0,mutableValues:{}}},watch:{values:{handler(t){this.mutableValues=o(t)},deep:!0}},created(){this.mutableValues=o(this.values)},computed:{getPlaceholderText(){const t=this.$locale.nodeText().placeholder(this.parameter,this.path);return t||this.$locale.baseText("fixedCollectionParameter.choose")},getProperties(){const t=[];let e;for(const a of this.propertyNames)e=this.getOptionProperties(a),e!==void 0&&t.push(e);return t},multipleValues(){var t;return!!((t=this.parameter.typeOptions)!=null&&t.multipleValues)},parameterOptions(){return this.multipleValues&&n(this.parameter.options)?this.parameter.options:this.parameter.options.filter(t=>!this.propertyNames.includes(t.name))},propertyNames(){return Object.keys(this.mutableValues||{})},sortable(){var t;return!!((t=this.parameter.typeOptions)!=null&&t.sortable)}},methods:{deleteOption(t,e){const a=this.mutableValues[t];!a||a.length>1?this.$emit("valueChanged",{name:this.getPropertyPath(t,e),value:void 0}):this.$emit("valueChanged",{name:this.getPropertyPath(t),value:void 0})},getPropertyPath(t,e){return`${this.path}.${t}`+(e!==void 0?`[${e}]`:"")},getOptionProperties(t){if(n(this.parameter.options)){for(const e of this.parameter.options)if(e.name===t)return e}},moveOptionDown(t,e){Array.isArray(this.mutableValues[t])&&this.mutableValues[t].splice(e+1,0,this.mutableValues[t].splice(e,1)[0]);const a={name:this.getPropertyPath(t),value:this.mutableValues[t]};this.$emit("valueChanged",a)},moveOptionUp(t,e){var i;Array.isArray(this.mutableValues[t])&&((i=this.mutableValues)==null||i[t].splice(e-1,0,this.mutableValues[t].splice(e,1)[0]));const a={name:this.getPropertyPath(t),value:this.mutableValues[t]};this.$emit("valueChanged",a)},optionSelected(t){const e=this.getOptionProperties(t);if(e===void 0)return;const a=`${this.path}.${e.name}`,i={};for(const s of e.values)s.type==="fixedCollection"&&s.typeOptions!==void 0&&s.typeOptions.multipleValues===!0?i[s.name]={}:s.typeOptions!==void 0&&s.typeOptions.multipleValues===!0?(i[s.name]=p(this.nodeValues,`${this.path}.${s.name}`,[]),Array.isArray(s.default)?i[s.name].push(...o(s.default)):s.default!==""&&typeof s.default!="object"&&i[s.name].push(o(s.default))):i[s.name]=o(s.default);let r;this.multipleValues?(r=p(this.nodeValues,a,[]),r.push(i)):r=i;const l={name:a,value:r};this.$emit("valueChanged",l),this.selectedOption=void 0},valueChanged(t){this.$emit("valueChanged",t)}}});var h=function(){var e=this,a=e._self._c;return e._self._setupProxy,a("div",{staticClass:"fixed-collection-parameter",on:{keydown:function(i){i.stopPropagation()}}},[e.getProperties.length===0?a("div",{staticClass:"no-items-exist"},[a("n8n-text",{attrs:{size:"small"}},[e._v(e._s(e.$locale.baseText("fixedCollectionParameter.currentlyNoItemsExist")))])],1):e._e(),e._l(e.getProperties,function(i){return a("div",{key:i.name,staticClass:"fixed-collection-parameter-property"},[i.displayName!==""&&e.parameter.options&&e.parameter.options.length!==1?a("n8n-input-label",{attrs:{label:e.$locale.nodeText().inputLabelDisplayName(i,e.path),underline:!0,size:"small",color:"text-dark"}}):e._e(),e.multipleValues?a("div",e._l(e.mutableValues[i.name],function(r,l){return a("div",{key:i.name+l,staticClass:"parameter-item"},[a("div",{staticClass:"parameter-item-wrapper"},[e.isReadOnly?e._e():a("div",{staticClass:"delete-option"},[a("font-awesome-icon",{staticClass:"reset-icon clickable",attrs:{icon:"trash",title:e.$locale.baseText("fixedCollectionParameter.deleteItem")},on:{click:function(s){return e.deleteOption(i.name,l)}}}),e.sortable?a("div",{staticClass:"sort-icon"},[l!==0?a("font-awesome-icon",{staticClass:"clickable",attrs:{icon:"angle-up",title:e.$locale.baseText("fixedCollectionParameter.moveUp")},on:{click:function(s){return e.moveOptionUp(i.name,l)}}}):e._e(),l!==e.mutableValues[i.name].length-1?a("font-awesome-icon",{staticClass:"clickable",attrs:{icon:"angle-down",title:e.$locale.baseText("fixedCollectionParameter.moveDown")},on:{click:function(s){return e.moveOptionDown(i.name,l)}}}):e._e()],1):e._e()],1),a("parameter-input-list",{attrs:{parameters:i.values,nodeValues:e.nodeValues,path:e.getPropertyPath(i.name,l),hideDelete:!0,isReadOnly:e.isReadOnly},on:{valueChanged:e.valueChanged}})],1)])}),0):a("div",{staticClass:"parameter-item"},[a("div",{staticClass:"parameter-item-wrapper"},[e.isReadOnly?e._e():a("div",{staticClass:"delete-option"},[a("font-awesome-icon",{staticClass:"reset-icon clickable",attrs:{icon:"trash",title:e.$locale.baseText("fixedCollectionParameter.deleteItem")},on:{click:function(r){return e.deleteOption(i.name)}}})],1),a("parameter-input-list",{staticClass:"parameter-item",attrs:{parameters:i.values,nodeValues:e.nodeValues,path:e.getPropertyPath(i.name),isReadOnly:e.isReadOnly,hideDelete:!0},on:{valueChanged:e.valueChanged}})],1)])],1)}),e.parameterOptions.length>0&&!e.isReadOnly?a("div",[e.parameter.options.length===1?a("n8n-button",{attrs:{type:"tertiary",block:"",label:e.getPlaceholderText},on:{click:function(i){return e.optionSelected(e.parameter.options[0].name)}}}):a("div",{staticClass:"add-option"},[a("n8n-select",{attrs:{placeholder:e.getPlaceholderText,size:"small",filterable:""},on:{change:e.optionSelected},model:{value:e.selectedOption,callback:function(i){e.selectedOption=i},expression:"selectedOption"}},e._l(e.parameterOptions,function(i){return a("n8n-option",{key:i.name,attrs:{label:e.$locale.nodeText().collectionOptionDisplayName(e.parameter,i,e.path),value:i.name}})}),1)],1)],1):e._e()],2)},v=[],f=c(d,h,v,!1,null,"a31e0198",null,null);const E=f.exports;export{E as default};
2
+ //# sourceMappingURL=FixedCollectionParameter-0747136c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FixedCollectionParameter-6533c166.js","sources":["../../src/components/FixedCollectionParameter.vue"],"sourcesContent":["<template>\n\t<div @keydown.stop class=\"fixed-collection-parameter\">\n\t\t<div v-if=\"getProperties.length === 0\" class=\"no-items-exist\">\n\t\t\t<n8n-text size=\"small\">{{\n\t\t\t\t$locale.baseText('fixedCollectionParameter.currentlyNoItemsExist')\n\t\t\t}}</n8n-text>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-for=\"property in getProperties\"\n\t\t\t:key=\"property.name\"\n\t\t\tclass=\"fixed-collection-parameter-property\"\n\t\t>\n\t\t\t<n8n-input-label\n\t\t\t\tv-if=\"property.displayName !== '' && parameter.options && parameter.options.length !== 1\"\n\t\t\t\t:label=\"$locale.nodeText().inputLabelDisplayName(property, path)\"\n\t\t\t\t:underline=\"true\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tcolor=\"text-dark\"\n\t\t\t/>\n\t\t\t<div v-if=\"multipleValues\">\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(value, index) in mutableValues[property.name]\"\n\t\t\t\t\t:key=\"property.name + index\"\n\t\t\t\t\tclass=\"parameter-item\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"parameter-item-wrapper\">\n\t\t\t\t\t\t<div class=\"delete-option\" v-if=\"!isReadOnly\">\n\t\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\t\tclass=\"reset-icon clickable\"\n\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.deleteItem')\"\n\t\t\t\t\t\t\t\t@click=\"deleteOption(property.name, index)\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div v-if=\"sortable\" class=\"sort-icon\">\n\t\t\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\t\t\tv-if=\"index !== 0\"\n\t\t\t\t\t\t\t\t\ticon=\"angle-up\"\n\t\t\t\t\t\t\t\t\tclass=\"clickable\"\n\t\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.moveUp')\"\n\t\t\t\t\t\t\t\t\t@click=\"moveOptionUp(property.name, index)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\t\t\tv-if=\"index !== mutableValues[property.name].length - 1\"\n\t\t\t\t\t\t\t\t\ticon=\"angle-down\"\n\t\t\t\t\t\t\t\t\tclass=\"clickable\"\n\t\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.moveDown')\"\n\t\t\t\t\t\t\t\t\t@click=\"moveOptionDown(property.name, index)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t\t:path=\"getPropertyPath(property.name, index)\"\n\t\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else class=\"parameter-item\">\n\t\t\t\t<div class=\"parameter-item-wrapper\">\n\t\t\t\t\t<div class=\"delete-option\" v-if=\"!isReadOnly\">\n\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\tclass=\"reset-icon clickable\"\n\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.deleteItem')\"\n\t\t\t\t\t\t\t@click=\"deleteOption(property.name)\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t:path=\"getPropertyPath(property.name)\"\n\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\tclass=\"parameter-item\"\n\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div v-if=\"parameterOptions.length > 0 && !isReadOnly\">\n\t\t\t<n8n-button\n\t\t\t\tv-if=\"parameter.options.length === 1\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tblock\n\t\t\t\t@click=\"optionSelected(parameter.options[0].name)\"\n\t\t\t\t:label=\"getPlaceholderText\"\n\t\t\t/>\n\t\t\t<div v-else class=\"add-option\">\n\t\t\t\t<n8n-select\n\t\t\t\t\tv-model=\"selectedOption\"\n\t\t\t\t\t:placeholder=\"getPlaceholderText\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t@change=\"optionSelected\"\n\t\t\t\t\tfilterable\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"item in parameterOptions\"\n\t\t\t\t\t\t:key=\"item.name\"\n\t\t\t\t\t\t:label=\"$locale.nodeText().collectionOptionDisplayName(parameter, item, path)\"\n\t\t\t\t\t\t:value=\"item.name\"\n\t\t\t\t\t></n8n-option>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { Component, PropType } from 'vue';\nimport type { IUpdateInformation } from '@/Interface';\n\nimport type {\n\tINodeParameters,\n\tINodeProperties,\n\tINodePropertyCollection,\n\tNodeParameterValue,\n} from 'n8n-workflow';\nimport { deepCopy, isINodePropertyCollectionList } from 'n8n-workflow';\n\nimport { get } from 'lodash-es';\n\nexport default defineComponent({\n\tname: 'FixedCollectionParameter',\n\tprops: {\n\t\tnodeValues: {\n\t\t\ttype: Object as PropType<Record<string, INodeParameters[]>>,\n\t\t\trequired: true,\n\t\t},\n\t\tparameter: {\n\t\t\ttype: Object as PropType<INodeProperties>,\n\t\t\trequired: true,\n\t\t},\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvalues: {\n\t\t\ttype: Object as PropType<Record<string, INodeParameters[]>>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tisReadOnly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomponents: {\n\t\tParameterInputList: async () => import('./ParameterInputList.vue') as Promise<Component>,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: undefined,\n\t\t\tmutableValues: {} as Record<string, INodeParameters[]>,\n\t\t};\n\t},\n\twatch: {\n\t\tvalues: {\n\t\t\thandler(newValues: Record<string, INodeParameters[]>) {\n\t\t\t\tthis.mutableValues = deepCopy(newValues);\n\t\t\t},\n\t\t\tdeep: true,\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.mutableValues = deepCopy(this.values);\n\t},\n\tcomputed: {\n\t\tgetPlaceholderText(): string {\n\t\t\tconst placeholder = this.$locale.nodeText().placeholder(this.parameter, this.path);\n\t\t\treturn placeholder ? placeholder : this.$locale.baseText('fixedCollectionParameter.choose');\n\t\t},\n\t\tgetProperties(): INodePropertyCollection[] {\n\t\t\tconst returnProperties = [];\n\t\t\tlet tempProperties;\n\t\t\tfor (const name of this.propertyNames) {\n\t\t\t\ttempProperties = this.getOptionProperties(name);\n\t\t\t\tif (tempProperties !== undefined) {\n\t\t\t\t\treturnProperties.push(tempProperties);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn returnProperties;\n\t\t},\n\t\tmultipleValues(): boolean {\n\t\t\treturn !!this.parameter.typeOptions?.multipleValues;\n\t\t},\n\n\t\tparameterOptions(): INodePropertyCollection[] {\n\t\t\tif (this.multipleValues && isINodePropertyCollectionList(this.parameter.options)) {\n\t\t\t\treturn this.parameter.options;\n\t\t\t}\n\n\t\t\treturn (this.parameter.options as INodePropertyCollection[]).filter((option) => {\n\t\t\t\treturn !this.propertyNames.includes(option.name);\n\t\t\t});\n\t\t},\n\t\tpropertyNames(): string[] {\n\t\t\treturn Object.keys(this.mutableValues || {});\n\t\t},\n\t\tsortable(): boolean {\n\t\t\treturn !!this.parameter.typeOptions?.sortable;\n\t\t},\n\t},\n\tmethods: {\n\t\tdeleteOption(optionName: string, index?: number) {\n\t\t\tconst currentOptionsOfSameType = this.mutableValues[optionName];\n\t\t\tif (!currentOptionsOfSameType || currentOptionsOfSameType.length > 1) {\n\t\t\t\t// it's not the only option of this type, so just remove it.\n\t\t\t\tthis.$emit('valueChanged', {\n\t\t\t\t\tname: this.getPropertyPath(optionName, index),\n\t\t\t\t\tvalue: undefined,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// it's the only option, so remove the whole type\n\t\t\t\tthis.$emit('valueChanged', {\n\t\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\t\tvalue: undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetPropertyPath(name: string, index?: number) {\n\t\t\treturn `${this.path}.${name}` + (index !== undefined ? `[${index}]` : '');\n\t\t},\n\t\tgetOptionProperties(optionName: string): INodePropertyCollection | undefined {\n\t\t\tif (isINodePropertyCollectionList(this.parameter.options)) {\n\t\t\t\tfor (const option of this.parameter.options) {\n\t\t\t\t\tif (option.name === optionName) {\n\t\t\t\t\t\treturn option;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tmoveOptionDown(optionName: string, index: number) {\n\t\t\tif (Array.isArray(this.mutableValues[optionName])) {\n\t\t\t\tthis.mutableValues[optionName].splice(\n\t\t\t\t\tindex + 1,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.mutableValues[optionName].splice(index, 1)[0],\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\tvalue: this.mutableValues[optionName],\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t\tmoveOptionUp(optionName: string, index: number) {\n\t\t\tif (Array.isArray(this.mutableValues[optionName])) {\n\t\t\t\tthis.mutableValues?.[optionName].splice(\n\t\t\t\t\tindex - 1,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.mutableValues[optionName].splice(index, 1)[0],\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\tvalue: this.mutableValues[optionName],\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t\toptionSelected(optionName: string) {\n\t\t\tconst option = this.getOptionProperties(optionName);\n\t\t\tif (option === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst name = `${this.path}.${option.name}`;\n\n\t\t\tconst newParameterValue: INodeParameters = {};\n\n\t\t\tfor (const optionParameter of option.values) {\n\t\t\t\tif (\n\t\t\t\t\toptionParameter.type === 'fixedCollection' &&\n\t\t\t\t\toptionParameter.typeOptions !== undefined &&\n\t\t\t\t\toptionParameter.typeOptions.multipleValues === true\n\t\t\t\t) {\n\t\t\t\t\tnewParameterValue[optionParameter.name] = {};\n\t\t\t\t} else if (\n\t\t\t\t\toptionParameter.typeOptions !== undefined &&\n\t\t\t\t\toptionParameter.typeOptions.multipleValues === true\n\t\t\t\t) {\n\t\t\t\t\t// Multiple values are allowed so append option to array\n\t\t\t\t\tnewParameterValue[optionParameter.name] = get(\n\t\t\t\t\t\tthis.nodeValues,\n\t\t\t\t\t\t`${this.path}.${optionParameter.name}`,\n\t\t\t\t\t\t[],\n\t\t\t\t\t);\n\t\t\t\t\tif (Array.isArray(optionParameter.default)) {\n\t\t\t\t\t\t(newParameterValue[optionParameter.name] as INodeParameters[]).push(\n\t\t\t\t\t\t\t...deepCopy(optionParameter.default as INodeParameters[]),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\toptionParameter.default !== '' &&\n\t\t\t\t\t\ttypeof optionParameter.default !== 'object'\n\t\t\t\t\t) {\n\t\t\t\t\t\t(newParameterValue[optionParameter.name] as NodeParameterValue[]).push(\n\t\t\t\t\t\t\tdeepCopy(optionParameter.default),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Add a new option\n\t\t\t\t\tnewParameterValue[optionParameter.name] = deepCopy(optionParameter.default);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet newValue;\n\t\t\tif (this.multipleValues) {\n\t\t\t\tnewValue = get(this.nodeValues, name, [] as INodeParameters[]);\n\n\t\t\t\tnewValue.push(newParameterValue);\n\t\t\t} else {\n\t\t\t\tnewValue = newParameterValue;\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname,\n\t\t\t\tvalue: newValue,\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t\tthis.selectedOption = undefined;\n\t\t},\n\t\tvalueChanged(parameterData: IUpdateInformation) {\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t},\n});\n</script>\n\n<style scoped lang=\"scss\">\n::v-deep {\n\t.button {\n\t\t--button-background-color: var(--color-background-base);\n\t\t--button-border-color: var(--color-foreground-base);\n\t}\n}\n\n.fixed-collection-parameter {\n\tpadding-left: var(--spacing-s);\n}\n\n.fixed-collection-parameter-property {\n\tmargin: var(--spacing-xs) 0;\n}\n\n.delete-option {\n\tdisplay: none;\n\tposition: absolute;\n\tz-index: 999;\n\tcolor: #f56c6c;\n\tleft: 0;\n\ttop: 0.5em;\n\twidth: 15px;\n\theight: 100%;\n}\n\n.parameter-item:hover > .parameter-item-wrapper > .delete-option {\n\tdisplay: block;\n}\n\n.parameter-item {\n\tposition: relative;\n\tpadding: 0 0 0 1em;\n\n\t+ .parameter-item {\n\t\t.parameter-item-wrapper {\n\t\t\tborder-top: 1px dashed #999;\n\n\t\t\t.delete-option {\n\t\t\t\ttop: 14px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.no-items-exist {\n\tmargin: var(--spacing-xs) 0;\n}\n\n.sort-icon {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-left: 1px;\n\tmargin-top: 0.5em;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","__vitePreload","n","newValues","deepCopy","placeholder","returnProperties","tempProperties","name","_a","isINodePropertyCollectionList","option","optionName","index","currentOptionsOfSameType","parameterData","newParameterValue","optionParameter","get","newValue"],"mappings":"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"}
1
+ {"version":3,"file":"FixedCollectionParameter-0747136c.js","sources":["../../src/components/FixedCollectionParameter.vue"],"sourcesContent":["<template>\n\t<div @keydown.stop class=\"fixed-collection-parameter\">\n\t\t<div v-if=\"getProperties.length === 0\" class=\"no-items-exist\">\n\t\t\t<n8n-text size=\"small\">{{\n\t\t\t\t$locale.baseText('fixedCollectionParameter.currentlyNoItemsExist')\n\t\t\t}}</n8n-text>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-for=\"property in getProperties\"\n\t\t\t:key=\"property.name\"\n\t\t\tclass=\"fixed-collection-parameter-property\"\n\t\t>\n\t\t\t<n8n-input-label\n\t\t\t\tv-if=\"property.displayName !== '' && parameter.options && parameter.options.length !== 1\"\n\t\t\t\t:label=\"$locale.nodeText().inputLabelDisplayName(property, path)\"\n\t\t\t\t:underline=\"true\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tcolor=\"text-dark\"\n\t\t\t/>\n\t\t\t<div v-if=\"multipleValues\">\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(value, index) in mutableValues[property.name]\"\n\t\t\t\t\t:key=\"property.name + index\"\n\t\t\t\t\tclass=\"parameter-item\"\n\t\t\t\t>\n\t\t\t\t\t<div class=\"parameter-item-wrapper\">\n\t\t\t\t\t\t<div class=\"delete-option\" v-if=\"!isReadOnly\">\n\t\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\t\tclass=\"reset-icon clickable\"\n\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.deleteItem')\"\n\t\t\t\t\t\t\t\t@click=\"deleteOption(property.name, index)\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div v-if=\"sortable\" class=\"sort-icon\">\n\t\t\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\t\t\tv-if=\"index !== 0\"\n\t\t\t\t\t\t\t\t\ticon=\"angle-up\"\n\t\t\t\t\t\t\t\t\tclass=\"clickable\"\n\t\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.moveUp')\"\n\t\t\t\t\t\t\t\t\t@click=\"moveOptionUp(property.name, index)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\t\t\tv-if=\"index !== mutableValues[property.name].length - 1\"\n\t\t\t\t\t\t\t\t\ticon=\"angle-down\"\n\t\t\t\t\t\t\t\t\tclass=\"clickable\"\n\t\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.moveDown')\"\n\t\t\t\t\t\t\t\t\t@click=\"moveOptionDown(property.name, index)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t\t:path=\"getPropertyPath(property.name, index)\"\n\t\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else class=\"parameter-item\">\n\t\t\t\t<div class=\"parameter-item-wrapper\">\n\t\t\t\t\t<div class=\"delete-option\" v-if=\"!isReadOnly\">\n\t\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\tclass=\"reset-icon clickable\"\n\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.deleteItem')\"\n\t\t\t\t\t\t\t@click=\"deleteOption(property.name)\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t:path=\"getPropertyPath(property.name)\"\n\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\tclass=\"parameter-item\"\n\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div v-if=\"parameterOptions.length > 0 && !isReadOnly\">\n\t\t\t<n8n-button\n\t\t\t\tv-if=\"parameter.options.length === 1\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tblock\n\t\t\t\t@click=\"optionSelected(parameter.options[0].name)\"\n\t\t\t\t:label=\"getPlaceholderText\"\n\t\t\t/>\n\t\t\t<div v-else class=\"add-option\">\n\t\t\t\t<n8n-select\n\t\t\t\t\tv-model=\"selectedOption\"\n\t\t\t\t\t:placeholder=\"getPlaceholderText\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t@change=\"optionSelected\"\n\t\t\t\t\tfilterable\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"item in parameterOptions\"\n\t\t\t\t\t\t:key=\"item.name\"\n\t\t\t\t\t\t:label=\"$locale.nodeText().collectionOptionDisplayName(parameter, item, path)\"\n\t\t\t\t\t\t:value=\"item.name\"\n\t\t\t\t\t></n8n-option>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { Component, PropType } from 'vue';\nimport type { IUpdateInformation } from '@/Interface';\n\nimport type {\n\tINodeParameters,\n\tINodeProperties,\n\tINodePropertyCollection,\n\tNodeParameterValue,\n} from 'n8n-workflow';\nimport { deepCopy, isINodePropertyCollectionList } from 'n8n-workflow';\n\nimport { get } from 'lodash-es';\n\nexport default defineComponent({\n\tname: 'FixedCollectionParameter',\n\tprops: {\n\t\tnodeValues: {\n\t\t\ttype: Object as PropType<Record<string, INodeParameters[]>>,\n\t\t\trequired: true,\n\t\t},\n\t\tparameter: {\n\t\t\ttype: Object as PropType<INodeProperties>,\n\t\t\trequired: true,\n\t\t},\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvalues: {\n\t\t\ttype: Object as PropType<Record<string, INodeParameters[]>>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tisReadOnly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomponents: {\n\t\tParameterInputList: async () => import('./ParameterInputList.vue') as Promise<Component>,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: undefined,\n\t\t\tmutableValues: {} as Record<string, INodeParameters[]>,\n\t\t};\n\t},\n\twatch: {\n\t\tvalues: {\n\t\t\thandler(newValues: Record<string, INodeParameters[]>) {\n\t\t\t\tthis.mutableValues = deepCopy(newValues);\n\t\t\t},\n\t\t\tdeep: true,\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.mutableValues = deepCopy(this.values);\n\t},\n\tcomputed: {\n\t\tgetPlaceholderText(): string {\n\t\t\tconst placeholder = this.$locale.nodeText().placeholder(this.parameter, this.path);\n\t\t\treturn placeholder ? placeholder : this.$locale.baseText('fixedCollectionParameter.choose');\n\t\t},\n\t\tgetProperties(): INodePropertyCollection[] {\n\t\t\tconst returnProperties = [];\n\t\t\tlet tempProperties;\n\t\t\tfor (const name of this.propertyNames) {\n\t\t\t\ttempProperties = this.getOptionProperties(name);\n\t\t\t\tif (tempProperties !== undefined) {\n\t\t\t\t\treturnProperties.push(tempProperties);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn returnProperties;\n\t\t},\n\t\tmultipleValues(): boolean {\n\t\t\treturn !!this.parameter.typeOptions?.multipleValues;\n\t\t},\n\n\t\tparameterOptions(): INodePropertyCollection[] {\n\t\t\tif (this.multipleValues && isINodePropertyCollectionList(this.parameter.options)) {\n\t\t\t\treturn this.parameter.options;\n\t\t\t}\n\n\t\t\treturn (this.parameter.options as INodePropertyCollection[]).filter((option) => {\n\t\t\t\treturn !this.propertyNames.includes(option.name);\n\t\t\t});\n\t\t},\n\t\tpropertyNames(): string[] {\n\t\t\treturn Object.keys(this.mutableValues || {});\n\t\t},\n\t\tsortable(): boolean {\n\t\t\treturn !!this.parameter.typeOptions?.sortable;\n\t\t},\n\t},\n\tmethods: {\n\t\tdeleteOption(optionName: string, index?: number) {\n\t\t\tconst currentOptionsOfSameType = this.mutableValues[optionName];\n\t\t\tif (!currentOptionsOfSameType || currentOptionsOfSameType.length > 1) {\n\t\t\t\t// it's not the only option of this type, so just remove it.\n\t\t\t\tthis.$emit('valueChanged', {\n\t\t\t\t\tname: this.getPropertyPath(optionName, index),\n\t\t\t\t\tvalue: undefined,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// it's the only option, so remove the whole type\n\t\t\t\tthis.$emit('valueChanged', {\n\t\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\t\tvalue: undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetPropertyPath(name: string, index?: number) {\n\t\t\treturn `${this.path}.${name}` + (index !== undefined ? `[${index}]` : '');\n\t\t},\n\t\tgetOptionProperties(optionName: string): INodePropertyCollection | undefined {\n\t\t\tif (isINodePropertyCollectionList(this.parameter.options)) {\n\t\t\t\tfor (const option of this.parameter.options) {\n\t\t\t\t\tif (option.name === optionName) {\n\t\t\t\t\t\treturn option;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tmoveOptionDown(optionName: string, index: number) {\n\t\t\tif (Array.isArray(this.mutableValues[optionName])) {\n\t\t\t\tthis.mutableValues[optionName].splice(\n\t\t\t\t\tindex + 1,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.mutableValues[optionName].splice(index, 1)[0],\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\tvalue: this.mutableValues[optionName],\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t\tmoveOptionUp(optionName: string, index: number) {\n\t\t\tif (Array.isArray(this.mutableValues[optionName])) {\n\t\t\t\tthis.mutableValues?.[optionName].splice(\n\t\t\t\t\tindex - 1,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.mutableValues[optionName].splice(index, 1)[0],\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\tvalue: this.mutableValues[optionName],\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t\toptionSelected(optionName: string) {\n\t\t\tconst option = this.getOptionProperties(optionName);\n\t\t\tif (option === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst name = `${this.path}.${option.name}`;\n\n\t\t\tconst newParameterValue: INodeParameters = {};\n\n\t\t\tfor (const optionParameter of option.values) {\n\t\t\t\tif (\n\t\t\t\t\toptionParameter.type === 'fixedCollection' &&\n\t\t\t\t\toptionParameter.typeOptions !== undefined &&\n\t\t\t\t\toptionParameter.typeOptions.multipleValues === true\n\t\t\t\t) {\n\t\t\t\t\tnewParameterValue[optionParameter.name] = {};\n\t\t\t\t} else if (\n\t\t\t\t\toptionParameter.typeOptions !== undefined &&\n\t\t\t\t\toptionParameter.typeOptions.multipleValues === true\n\t\t\t\t) {\n\t\t\t\t\t// Multiple values are allowed so append option to array\n\t\t\t\t\tnewParameterValue[optionParameter.name] = get(\n\t\t\t\t\t\tthis.nodeValues,\n\t\t\t\t\t\t`${this.path}.${optionParameter.name}`,\n\t\t\t\t\t\t[],\n\t\t\t\t\t);\n\t\t\t\t\tif (Array.isArray(optionParameter.default)) {\n\t\t\t\t\t\t(newParameterValue[optionParameter.name] as INodeParameters[]).push(\n\t\t\t\t\t\t\t...deepCopy(optionParameter.default as INodeParameters[]),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\toptionParameter.default !== '' &&\n\t\t\t\t\t\ttypeof optionParameter.default !== 'object'\n\t\t\t\t\t) {\n\t\t\t\t\t\t(newParameterValue[optionParameter.name] as NodeParameterValue[]).push(\n\t\t\t\t\t\t\tdeepCopy(optionParameter.default),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Add a new option\n\t\t\t\t\tnewParameterValue[optionParameter.name] = deepCopy(optionParameter.default);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet newValue;\n\t\t\tif (this.multipleValues) {\n\t\t\t\tnewValue = get(this.nodeValues, name, [] as INodeParameters[]);\n\n\t\t\t\tnewValue.push(newParameterValue);\n\t\t\t} else {\n\t\t\t\tnewValue = newParameterValue;\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname,\n\t\t\t\tvalue: newValue,\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t\tthis.selectedOption = undefined;\n\t\t},\n\t\tvalueChanged(parameterData: IUpdateInformation) {\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t},\n});\n</script>\n\n<style scoped lang=\"scss\">\n::v-deep {\n\t.button {\n\t\t--button-background-color: var(--color-background-base);\n\t\t--button-border-color: var(--color-foreground-base);\n\t}\n}\n\n.fixed-collection-parameter {\n\tpadding-left: var(--spacing-s);\n}\n\n.fixed-collection-parameter-property {\n\tmargin: var(--spacing-xs) 0;\n}\n\n.delete-option {\n\tdisplay: none;\n\tposition: absolute;\n\tz-index: 999;\n\tcolor: #f56c6c;\n\tleft: 0;\n\ttop: 0.5em;\n\twidth: 15px;\n\theight: 100%;\n}\n\n.parameter-item:hover > .parameter-item-wrapper > .delete-option {\n\tdisplay: block;\n}\n\n.parameter-item {\n\tposition: relative;\n\tpadding: 0 0 0 1em;\n\n\t+ .parameter-item {\n\t\t.parameter-item-wrapper {\n\t\t\tborder-top: 1px dashed #999;\n\n\t\t\t.delete-option {\n\t\t\t\ttop: 14px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.no-items-exist {\n\tmargin: var(--spacing-xs) 0;\n}\n\n.sort-icon {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin-left: 1px;\n\tmargin-top: 0.5em;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","__vitePreload","n","newValues","deepCopy","placeholder","returnProperties","tempProperties","name","_a","isINodePropertyCollectionList","option","optionName","index","currentOptionsOfSameType","parameterData","newParameterValue","optionParameter","get","newValue"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{cL as u,b as m,d8 as _,e0 as y,e1 as f,e2 as v,cj as C}from"./ParameterInputList-d2ecf7b1.js";import{d as N}from"./vendor-ef27a93a.js";import{m as S}from"./pinia-b59d62eb.js";import{y as B}from"./n8n-c6c703ae.js";import"./axios-ae7c9370.js";import"./flatted-8b14da7d.js";import"./vue-i18n-10a642e3.js";import"./en-77d75caa.js";import"./dateformat-ef117725.js";import"./lodash-es-cf5c89de.js";import"./@jsplumb/browser-ui-810abb53.js";import"./@jsplumb/core-cbeafece.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-d45391a7.js";import"./uuid-cf522c50.js";import"./luxon-19e1de07.js";import"./codemirror-lang-html-n8n-37d68e46.js";import"./codemirror-lang-n8n-expression-7bdf8ad0.js";import"./fast-json-stable-stringify-0e965c3b.js";import"./esprima-next-8c7e8ff9.js";import"./prettier-e1f05f3a.js";import"./@fortawesome/fontawesome-svg-core-895e0d0e.js";const k=N({name:"node-creation",components:{NodeCreator:async()=>u(()=>import("./NodeCreator-4934b9cd.js"),["assets/NodeCreator-4934b9cd.js","assets/vendor-ef27a93a.js","assets/ParameterInputList-d2ecf7b1.js","assets/pinia-b59d62eb.js","assets/n8n-c6c703ae.js","assets/@fortawesome/fontawesome-svg-core-895e0d0e.js","assets/luxon-19e1de07.js","assets/esprima-next-8c7e8ff9.js","assets/n8n-7c013534.css","assets/axios-ae7c9370.js","assets/flatted-8b14da7d.js","assets/vue-i18n-10a642e3.js","assets/en-77d75caa.js","assets/dateformat-ef117725.js","assets/lodash-es-cf5c89de.js","assets/@jsplumb/browser-ui-810abb53.js","assets/@jsplumb/core-cbeafece.js","assets/@jsplumb/util-98a92a84.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-d45391a7.js","assets/uuid-cf522c50.js","assets/codemirror-lang-html-n8n-37d68e46.js","assets/codemirror-lang-n8n-expression-7bdf8ad0.js","assets/fast-json-stable-stringify-0e965c3b.js","assets/prettier-e1f05f3a.js","assets/ParameterInputList-0e58617e.css","assets/index-a94320f4.js","assets/@fortawesome/free-solid-svg-icons-b1aba512.js","assets/@fortawesome/free-regular-svg-icons-74cb85f8.js","assets/@fortawesome/vue-fontawesome-6ff4768c.js","assets/vue2-touch-events-0d54de8b.js","assets/v-click-outside-5594479c.js","assets/vue-fragment-f3d0cc79.js","assets/vue-agile-3b0cf40b.js","assets/vue-agile-d964f598.css","assets/timeago.js-a9e71aec.js","assets/canvas-confetti-60b90aac.js","assets/file-saver-96a53892.js","assets/vue2-teleport-53e66c3b.js","assets/vue-json-pretty-85edff2f.js","assets/humanize-duration-3471cd08.js","assets/vue-infinite-loading-b4ce7fbc.js","assets/copy-to-clipboard-fcf36459.js","assets/index-f0107aae.css","assets/NodeCreator-a6bdb8af.css"])},props:{nodeViewScale:{type:Number,required:!0},createNodeActive:{type:Boolean,default:!1}},data(){return{showStickyButton:!1}},computed:{...S(m)},methods:{onCreateMenuHoverIn(o){const t=o.target;this.showStickyButton=!0;const e=r=>{if(t){const n=t.getBoundingClientRect(),c=n.height,d=n.width,s=n.left,p=s+d,a=n.top,l=a+c;r.pageX>s&&r.pageX<p&&r.pageY>a&&r.pageY<l||(this.showStickyButton=!1,document.removeEventListener("mousemove",e,!1))}};document.addEventListener("mousemove",e,!1)},openNodeCreator(){this.$emit("toggleNodeCreator",{source:_.ADD_NODE_BUTTON,createNodeActive:!0})},addStickyNote(){document.activeElement&&document.activeElement.blur();const o=[...this.uiStore.nodeViewOffsetPosition],t=y(this.nodeViewScale,o);t[0]-=f/2,t[1]-=v/2,this.$emit("addNode",[{nodeTypeName:C,position:t}])},closeNodeCreator(){this.$emit("toggleNodeCreator",{createNodeActive:!1})},nodeTypeSelected(o){this.$emit("addNode",o.map(t=>({nodeTypeName:t}))),this.closeNodeCreator()}}}),h="_nodeButtonsWrapper_tk7cm_1",T="_addStickyButton_tk7cm_10",w="_visibleButton_tk7cm_17",E="_noEvents_tk7cm_22",b="_nodeCreatorButton_tk7cm_26",g="_nodeCreatorPlus_tk7cm_43",$={nodeButtonsWrapper:h,addStickyButton:T,visibleButton:w,noEvents:E,nodeCreatorButton:b,nodeCreatorPlus:g};var P=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",[t.createNodeActive?t._e():e("div",{class:[t.$style.nodeButtonsWrapper,t.showStickyButton?t.$style.noEvents:""],on:{mouseenter:t.onCreateMenuHoverIn}},[e("div",{class:t.$style.nodeCreatorButton,attrs:{"data-test-id":"node-creator-plus-button"}},[e("n8n-icon-button",{class:t.$style.nodeCreatorPlus,attrs:{size:"xlarge",icon:"plus",type:"tertiary",title:t.$locale.baseText("nodeView.addNode")},on:{click:t.openNodeCreator}}),e("div",{class:[t.$style.addStickyButton,t.showStickyButton?t.$style.visibleButton:""],attrs:{"data-test-id":"add-sticky-button"},on:{click:t.addStickyNote}},[e("n8n-icon-button",{attrs:{size:"medium",type:"tertiary",icon:["far","note-sticky"],title:t.$locale.baseText("nodeView.addSticky")}})],1)],1)]),e("node-creator",{attrs:{active:t.createNodeActive},on:{nodeTypeSelected:t.nodeTypeSelected,closeNodeCreator:t.closeNodeCreator}})],1)},A=[];const i={$style:$};function D(o){for(var t in i)this[t]=i[t]}var I=B(k,P,A,!1,D,null,null,null);const nt=I.exports;export{nt as default};
2
- //# sourceMappingURL=NodeCreation-4c4e97ea.js.map
1
+ import{cL as u,b as m,d8 as _,e0 as y,e1 as f,e2 as v,cj as C}from"./ParameterInputList-518bddf7.js";import{d as N}from"./vendor-ef27a93a.js";import{m as S}from"./pinia-b59d62eb.js";import{y as B}from"./n8n-c6c703ae.js";import"./axios-ae7c9370.js";import"./flatted-8b14da7d.js";import"./vue-i18n-10a642e3.js";import"./en-77d75caa.js";import"./dateformat-ef117725.js";import"./lodash-es-cf5c89de.js";import"./@jsplumb/browser-ui-810abb53.js";import"./@jsplumb/core-cbeafece.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-d45391a7.js";import"./uuid-cf522c50.js";import"./luxon-19e1de07.js";import"./codemirror-lang-html-n8n-37d68e46.js";import"./codemirror-lang-n8n-expression-7bdf8ad0.js";import"./fast-json-stable-stringify-0e965c3b.js";import"./esprima-next-8c7e8ff9.js";import"./prettier-e1f05f3a.js";import"./@fortawesome/fontawesome-svg-core-895e0d0e.js";const k=N({name:"node-creation",components:{NodeCreator:async()=>u(()=>import("./NodeCreator-028ea9e4.js"),["assets/NodeCreator-028ea9e4.js","assets/vendor-ef27a93a.js","assets/ParameterInputList-518bddf7.js","assets/pinia-b59d62eb.js","assets/n8n-c6c703ae.js","assets/@fortawesome/fontawesome-svg-core-895e0d0e.js","assets/luxon-19e1de07.js","assets/esprima-next-8c7e8ff9.js","assets/n8n-7c013534.css","assets/axios-ae7c9370.js","assets/flatted-8b14da7d.js","assets/vue-i18n-10a642e3.js","assets/en-77d75caa.js","assets/dateformat-ef117725.js","assets/lodash-es-cf5c89de.js","assets/@jsplumb/browser-ui-810abb53.js","assets/@jsplumb/core-cbeafece.js","assets/@jsplumb/util-98a92a84.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-d45391a7.js","assets/uuid-cf522c50.js","assets/codemirror-lang-html-n8n-37d68e46.js","assets/codemirror-lang-n8n-expression-7bdf8ad0.js","assets/fast-json-stable-stringify-0e965c3b.js","assets/prettier-e1f05f3a.js","assets/ParameterInputList-84269d73.css","assets/index-8d844e9c.js","assets/@fortawesome/free-solid-svg-icons-b1aba512.js","assets/@fortawesome/free-regular-svg-icons-74cb85f8.js","assets/@fortawesome/vue-fontawesome-6ff4768c.js","assets/vue2-touch-events-0d54de8b.js","assets/v-click-outside-5594479c.js","assets/vue-fragment-f3d0cc79.js","assets/vue-agile-3b0cf40b.js","assets/vue-agile-d964f598.css","assets/timeago.js-a9e71aec.js","assets/canvas-confetti-60b90aac.js","assets/file-saver-96a53892.js","assets/vue2-teleport-53e66c3b.js","assets/vue-json-pretty-85edff2f.js","assets/humanize-duration-3471cd08.js","assets/vue-infinite-loading-b4ce7fbc.js","assets/copy-to-clipboard-fcf36459.js","assets/index-77337f42.css","assets/NodeCreator-a6bdb8af.css"])},props:{nodeViewScale:{type:Number,required:!0},createNodeActive:{type:Boolean,default:!1}},data(){return{showStickyButton:!1}},computed:{...S(m)},methods:{onCreateMenuHoverIn(o){const t=o.target;this.showStickyButton=!0;const e=r=>{if(t){const n=t.getBoundingClientRect(),c=n.height,d=n.width,s=n.left,p=s+d,a=n.top,l=a+c;r.pageX>s&&r.pageX<p&&r.pageY>a&&r.pageY<l||(this.showStickyButton=!1,document.removeEventListener("mousemove",e,!1))}};document.addEventListener("mousemove",e,!1)},openNodeCreator(){this.$emit("toggleNodeCreator",{source:_.ADD_NODE_BUTTON,createNodeActive:!0})},addStickyNote(){document.activeElement&&document.activeElement.blur();const o=[...this.uiStore.nodeViewOffsetPosition],t=y(this.nodeViewScale,o);t[0]-=f/2,t[1]-=v/2,this.$emit("addNode",[{nodeTypeName:C,position:t}])},closeNodeCreator(){this.$emit("toggleNodeCreator",{createNodeActive:!1})},nodeTypeSelected(o){this.$emit("addNode",o.map(t=>({nodeTypeName:t}))),this.closeNodeCreator()}}}),h="_nodeButtonsWrapper_tk7cm_1",T="_addStickyButton_tk7cm_10",w="_visibleButton_tk7cm_17",E="_noEvents_tk7cm_22",b="_nodeCreatorButton_tk7cm_26",g="_nodeCreatorPlus_tk7cm_43",$={nodeButtonsWrapper:h,addStickyButton:T,visibleButton:w,noEvents:E,nodeCreatorButton:b,nodeCreatorPlus:g};var P=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("div",[t.createNodeActive?t._e():e("div",{class:[t.$style.nodeButtonsWrapper,t.showStickyButton?t.$style.noEvents:""],on:{mouseenter:t.onCreateMenuHoverIn}},[e("div",{class:t.$style.nodeCreatorButton,attrs:{"data-test-id":"node-creator-plus-button"}},[e("n8n-icon-button",{class:t.$style.nodeCreatorPlus,attrs:{size:"xlarge",icon:"plus",type:"tertiary",title:t.$locale.baseText("nodeView.addNode")},on:{click:t.openNodeCreator}}),e("div",{class:[t.$style.addStickyButton,t.showStickyButton?t.$style.visibleButton:""],attrs:{"data-test-id":"add-sticky-button"},on:{click:t.addStickyNote}},[e("n8n-icon-button",{attrs:{size:"medium",type:"tertiary",icon:["far","note-sticky"],title:t.$locale.baseText("nodeView.addSticky")}})],1)],1)]),e("node-creator",{attrs:{active:t.createNodeActive},on:{nodeTypeSelected:t.nodeTypeSelected,closeNodeCreator:t.closeNodeCreator}})],1)},A=[];const i={$style:$};function D(o){for(var t in i)this[t]=i[t]}var I=B(k,P,A,!1,D,null,null,null);const nt=I.exports;export{nt as default};
2
+ //# sourceMappingURL=NodeCreation-2c394518.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeCreation-4c4e97ea.js","sources":["../../src/components/Node/NodeCreation.vue"],"sourcesContent":["<template>\n\t<div>\n\t\t<div\n\t\t\tv-if=\"!createNodeActive\"\n\t\t\t:class=\"[$style.nodeButtonsWrapper, showStickyButton ? $style.noEvents : '']\"\n\t\t\t@mouseenter=\"onCreateMenuHoverIn\"\n\t\t>\n\t\t\t<div :class=\"$style.nodeCreatorButton\" data-test-id=\"node-creator-plus-button\">\n\t\t\t\t<n8n-icon-button\n\t\t\t\t\tsize=\"xlarge\"\n\t\t\t\t\ticon=\"plus\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t:class=\"$style.nodeCreatorPlus\"\n\t\t\t\t\t@click=\"openNodeCreator\"\n\t\t\t\t\t:title=\"$locale.baseText('nodeView.addNode')\"\n\t\t\t\t/>\n\t\t\t\t<div\n\t\t\t\t\t:class=\"[$style.addStickyButton, showStickyButton ? $style.visibleButton : '']\"\n\t\t\t\t\t@click=\"addStickyNote\"\n\t\t\t\t\tdata-test-id=\"add-sticky-button\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t:icon=\"['far', 'note-sticky']\"\n\t\t\t\t\t\t:title=\"$locale.baseText('nodeView.addSticky')\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<node-creator\n\t\t\t:active=\"createNodeActive\"\n\t\t\t@nodeTypeSelected=\"nodeTypeSelected\"\n\t\t\t@closeNodeCreator=\"closeNodeCreator\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { getMidCanvasPosition } from '@/utils/nodeViewUtils';\nimport {\n\tDEFAULT_STICKY_HEIGHT,\n\tDEFAULT_STICKY_WIDTH,\n\tNODE_CREATOR_OPEN_SOURCES,\n\tSTICKY_NODE_TYPE,\n} from '@/constants';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\n\nexport default defineComponent({\n\tname: 'node-creation',\n\tcomponents: {\n\t\tNodeCreator: async () => import('@/components/Node/NodeCreator/NodeCreator.vue'),\n\t},\n\tprops: {\n\t\tnodeViewScale: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tcreateNodeActive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowStickyButton: false,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore),\n\t},\n\tmethods: {\n\t\tonCreateMenuHoverIn(mouseinEvent: MouseEvent) {\n\t\t\tconst buttonsWrapper = mouseinEvent.target as Element;\n\n\t\t\t// Once the popup menu is hovered, it's pointer events are disabled so it's not interfering with element underneath it.\n\t\t\tthis.showStickyButton = true;\n\t\t\tconst moveCallback = (mousemoveEvent: MouseEvent) => {\n\t\t\t\tif (buttonsWrapper) {\n\t\t\t\t\tconst wrapperBounds = buttonsWrapper.getBoundingClientRect();\n\t\t\t\t\tconst wrapperH = wrapperBounds.height;\n\t\t\t\t\tconst wrapperW = wrapperBounds.width;\n\t\t\t\t\tconst wrapperLeftNear = wrapperBounds.left;\n\t\t\t\t\tconst wrapperLeftFar = wrapperLeftNear + wrapperW;\n\t\t\t\t\tconst wrapperTopNear = wrapperBounds.top;\n\t\t\t\t\tconst wrapperTopFar = wrapperTopNear + wrapperH;\n\t\t\t\t\tconst inside =\n\t\t\t\t\t\tmousemoveEvent.pageX > wrapperLeftNear &&\n\t\t\t\t\t\tmousemoveEvent.pageX < wrapperLeftFar &&\n\t\t\t\t\t\tmousemoveEvent.pageY > wrapperTopNear &&\n\t\t\t\t\t\tmousemoveEvent.pageY < wrapperTopFar;\n\t\t\t\t\tif (!inside) {\n\t\t\t\t\t\tthis.showStickyButton = false;\n\t\t\t\t\t\tdocument.removeEventListener('mousemove', moveCallback, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tdocument.addEventListener('mousemove', moveCallback, false);\n\t\t},\n\t\topenNodeCreator() {\n\t\t\tthis.$emit('toggleNodeCreator', {\n\t\t\t\tsource: NODE_CREATOR_OPEN_SOURCES.ADD_NODE_BUTTON,\n\t\t\t\tcreateNodeActive: true,\n\t\t\t});\n\t\t},\n\t\taddStickyNote() {\n\t\t\tif (document.activeElement) {\n\t\t\t\t(document.activeElement as HTMLElement).blur();\n\t\t\t}\n\n\t\t\tconst offset: [number, number] = [...this.uiStore.nodeViewOffsetPosition];\n\n\t\t\tconst position = getMidCanvasPosition(this.nodeViewScale, offset);\n\t\t\tposition[0] -= DEFAULT_STICKY_WIDTH / 2;\n\t\t\tposition[1] -= DEFAULT_STICKY_HEIGHT / 2;\n\n\t\t\tthis.$emit('addNode', [\n\t\t\t\t{\n\t\t\t\t\tnodeTypeName: STICKY_NODE_TYPE,\n\t\t\t\t\tposition,\n\t\t\t\t},\n\t\t\t]);\n\t\t},\n\t\tcloseNodeCreator() {\n\t\t\tthis.$emit('toggleNodeCreator', { createNodeActive: false });\n\t\t},\n\t\tnodeTypeSelected(nodeTypeNames: string[]) {\n\t\t\tthis.$emit(\n\t\t\t\t'addNode',\n\t\t\t\tnodeTypeNames.map((nodeTypeName) => ({ nodeTypeName })),\n\t\t\t);\n\t\t\tthis.closeNodeCreator();\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.nodeButtonsWrapper {\n\tposition: fixed;\n\twidth: 150px;\n\theight: 200px;\n\ttop: 0;\n\tright: 0;\n\tdisplay: flex;\n}\n\n.addStickyButton {\n\tmargin-top: var(--spacing-2xs);\n\topacity: 0;\n\ttransition: 0.1s;\n\ttransition-timing-function: linear;\n}\n\n.visibleButton {\n\topacity: 1;\n\tpointer-events: all;\n}\n\n.noEvents {\n\tpointer-events: none;\n}\n\n.nodeCreatorButton {\n\tposition: fixed;\n\ttext-align: center;\n\ttop: calc(#{$header-height} + var(--spacing-s));\n\tright: var(--spacing-s);\n\tpointer-events: all !important;\n\n\tbutton {\n\t\tborder-color: var(--color-foreground-xdark);\n\t\tcolor: var(--color-foreground-xdark);\n\n\t\t&:hover {\n\t\t\tborder-color: var(--color-primary);\n\t\t\tcolor: var(--color-primary);\n\t\t\tbackground: var(--color-background-xlight);\n\t\t}\n\t}\n}\n.nodeCreatorPlus {\n\tborder-width: 2px;\n\tborder-radius: var(--border-radius-base);\n\twidth: 36px;\n\theight: 36px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","mapStores","useUIStore","mouseinEvent","buttonsWrapper","moveCallback","mousemoveEvent","wrapperBounds","wrapperH","wrapperW","wrapperLeftNear","wrapperLeftFar","wrapperTopNear","wrapperTopFar","NODE_CREATOR_OPEN_SOURCES","offset","position","getMidCanvasPosition","DEFAULT_STICKY_WIDTH","DEFAULT_STICKY_HEIGHT","STICKY_NODE_TYPE","nodeTypeNames","nodeTypeName"],"mappings":"65BAkDA,MAAAA,EAAAC,EAAA,CACA,KAAA,gBACA,WAAA,CACA,YAAA,eAAA,OAAA,2BAAA,EAAA,kBAAA,CACA,EACA,MAAA,CACA,cAAA,CACA,KAAA,OACA,SAAA,EACA,EACA,iBAAA,CACA,KAAA,QACA,QAAA,EACA,CACA,EACA,MAAA,CACA,MAAA,CACA,iBAAA,EAAA,CAEA,EACA,SAAA,CACA,GAAAC,EAAAC,CAAA,CACA,EACA,QAAA,CACA,oBAAAC,EAAA,CACA,MAAAC,EAAAD,EAAA,OAGA,KAAA,iBAAA,GACA,MAAAE,EAAAC,GAAA,CACA,GAAAF,EAAA,CACA,MAAAG,EAAAH,EAAA,wBACAI,EAAAD,EAAA,OACAE,EAAAF,EAAA,MACAG,EAAAH,EAAA,KACAI,EAAAD,EAAAD,EACAG,EAAAL,EAAA,IACAM,EAAAD,EAAAJ,EAEAF,EAAA,MAAAI,GACAJ,EAAA,MAAAK,GACAL,EAAA,MAAAM,GACAN,EAAA,MAAAO,IAEA,KAAA,iBAAA,GACA,SAAA,oBAAA,YAAAR,EAAA,EAAA,EAEA,CAAA,EAEA,SAAA,iBAAA,YAAAA,EAAA,EAAA,CACA,EACA,iBAAA,CACA,KAAA,MAAA,oBAAA,CACA,OAAAS,EAAA,gBACA,iBAAA,EAAA,CACA,CACA,EACA,eAAA,CACA,SAAA,eACA,SAAA,cAAA,OAGA,MAAAC,EAAA,CAAA,GAAA,KAAA,QAAA,sBAAA,EAEAC,EAAAC,EAAA,KAAA,cAAAF,CAAA,EACAC,EAAA,CAAA,GAAAE,EAAA,EACAF,EAAA,CAAA,GAAAG,EAAA,EAEA,KAAA,MAAA,UAAA,CACA,CACA,aAAAC,EACA,SAAAJ,CACA,CAAA,CACA,CACA,EACA,kBAAA,CACA,KAAA,MAAA,oBAAA,CAAA,iBAAA,EAAA,CAAA,CACA,EACA,iBAAAK,EAAA,CACA,KAAA,MACA,UACAA,EAAA,IAAAC,IAAA,CAAA,aAAAA,CAAA,EAAA,CAAA,EAEA,KAAA,iBAAA,CACA,CACA,CACA,CAAA"}
1
+ {"version":3,"file":"NodeCreation-2c394518.js","sources":["../../src/components/Node/NodeCreation.vue"],"sourcesContent":["<template>\n\t<div>\n\t\t<div\n\t\t\tv-if=\"!createNodeActive\"\n\t\t\t:class=\"[$style.nodeButtonsWrapper, showStickyButton ? $style.noEvents : '']\"\n\t\t\t@mouseenter=\"onCreateMenuHoverIn\"\n\t\t>\n\t\t\t<div :class=\"$style.nodeCreatorButton\" data-test-id=\"node-creator-plus-button\">\n\t\t\t\t<n8n-icon-button\n\t\t\t\t\tsize=\"xlarge\"\n\t\t\t\t\ticon=\"plus\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t:class=\"$style.nodeCreatorPlus\"\n\t\t\t\t\t@click=\"openNodeCreator\"\n\t\t\t\t\t:title=\"$locale.baseText('nodeView.addNode')\"\n\t\t\t\t/>\n\t\t\t\t<div\n\t\t\t\t\t:class=\"[$style.addStickyButton, showStickyButton ? $style.visibleButton : '']\"\n\t\t\t\t\t@click=\"addStickyNote\"\n\t\t\t\t\tdata-test-id=\"add-sticky-button\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t:icon=\"['far', 'note-sticky']\"\n\t\t\t\t\t\t:title=\"$locale.baseText('nodeView.addSticky')\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<node-creator\n\t\t\t:active=\"createNodeActive\"\n\t\t\t@nodeTypeSelected=\"nodeTypeSelected\"\n\t\t\t@closeNodeCreator=\"closeNodeCreator\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { getMidCanvasPosition } from '@/utils/nodeViewUtils';\nimport {\n\tDEFAULT_STICKY_HEIGHT,\n\tDEFAULT_STICKY_WIDTH,\n\tNODE_CREATOR_OPEN_SOURCES,\n\tSTICKY_NODE_TYPE,\n} from '@/constants';\nimport { mapStores } from 'pinia';\nimport { useUIStore } from '@/stores/ui.store';\n\nexport default defineComponent({\n\tname: 'node-creation',\n\tcomponents: {\n\t\tNodeCreator: async () => import('@/components/Node/NodeCreator/NodeCreator.vue'),\n\t},\n\tprops: {\n\t\tnodeViewScale: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tcreateNodeActive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tshowStickyButton: false,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore),\n\t},\n\tmethods: {\n\t\tonCreateMenuHoverIn(mouseinEvent: MouseEvent) {\n\t\t\tconst buttonsWrapper = mouseinEvent.target as Element;\n\n\t\t\t// Once the popup menu is hovered, it's pointer events are disabled so it's not interfering with element underneath it.\n\t\t\tthis.showStickyButton = true;\n\t\t\tconst moveCallback = (mousemoveEvent: MouseEvent) => {\n\t\t\t\tif (buttonsWrapper) {\n\t\t\t\t\tconst wrapperBounds = buttonsWrapper.getBoundingClientRect();\n\t\t\t\t\tconst wrapperH = wrapperBounds.height;\n\t\t\t\t\tconst wrapperW = wrapperBounds.width;\n\t\t\t\t\tconst wrapperLeftNear = wrapperBounds.left;\n\t\t\t\t\tconst wrapperLeftFar = wrapperLeftNear + wrapperW;\n\t\t\t\t\tconst wrapperTopNear = wrapperBounds.top;\n\t\t\t\t\tconst wrapperTopFar = wrapperTopNear + wrapperH;\n\t\t\t\t\tconst inside =\n\t\t\t\t\t\tmousemoveEvent.pageX > wrapperLeftNear &&\n\t\t\t\t\t\tmousemoveEvent.pageX < wrapperLeftFar &&\n\t\t\t\t\t\tmousemoveEvent.pageY > wrapperTopNear &&\n\t\t\t\t\t\tmousemoveEvent.pageY < wrapperTopFar;\n\t\t\t\t\tif (!inside) {\n\t\t\t\t\t\tthis.showStickyButton = false;\n\t\t\t\t\t\tdocument.removeEventListener('mousemove', moveCallback, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\tdocument.addEventListener('mousemove', moveCallback, false);\n\t\t},\n\t\topenNodeCreator() {\n\t\t\tthis.$emit('toggleNodeCreator', {\n\t\t\t\tsource: NODE_CREATOR_OPEN_SOURCES.ADD_NODE_BUTTON,\n\t\t\t\tcreateNodeActive: true,\n\t\t\t});\n\t\t},\n\t\taddStickyNote() {\n\t\t\tif (document.activeElement) {\n\t\t\t\t(document.activeElement as HTMLElement).blur();\n\t\t\t}\n\n\t\t\tconst offset: [number, number] = [...this.uiStore.nodeViewOffsetPosition];\n\n\t\t\tconst position = getMidCanvasPosition(this.nodeViewScale, offset);\n\t\t\tposition[0] -= DEFAULT_STICKY_WIDTH / 2;\n\t\t\tposition[1] -= DEFAULT_STICKY_HEIGHT / 2;\n\n\t\t\tthis.$emit('addNode', [\n\t\t\t\t{\n\t\t\t\t\tnodeTypeName: STICKY_NODE_TYPE,\n\t\t\t\t\tposition,\n\t\t\t\t},\n\t\t\t]);\n\t\t},\n\t\tcloseNodeCreator() {\n\t\t\tthis.$emit('toggleNodeCreator', { createNodeActive: false });\n\t\t},\n\t\tnodeTypeSelected(nodeTypeNames: string[]) {\n\t\t\tthis.$emit(\n\t\t\t\t'addNode',\n\t\t\t\tnodeTypeNames.map((nodeTypeName) => ({ nodeTypeName })),\n\t\t\t);\n\t\t\tthis.closeNodeCreator();\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\" module>\n.nodeButtonsWrapper {\n\tposition: fixed;\n\twidth: 150px;\n\theight: 200px;\n\ttop: 0;\n\tright: 0;\n\tdisplay: flex;\n}\n\n.addStickyButton {\n\tmargin-top: var(--spacing-2xs);\n\topacity: 0;\n\ttransition: 0.1s;\n\ttransition-timing-function: linear;\n}\n\n.visibleButton {\n\topacity: 1;\n\tpointer-events: all;\n}\n\n.noEvents {\n\tpointer-events: none;\n}\n\n.nodeCreatorButton {\n\tposition: fixed;\n\ttext-align: center;\n\ttop: calc(#{$header-height} + var(--spacing-s));\n\tright: var(--spacing-s);\n\tpointer-events: all !important;\n\n\tbutton {\n\t\tborder-color: var(--color-foreground-xdark);\n\t\tcolor: var(--color-foreground-xdark);\n\n\t\t&:hover {\n\t\t\tborder-color: var(--color-primary);\n\t\t\tcolor: var(--color-primary);\n\t\t\tbackground: var(--color-background-xlight);\n\t\t}\n\t}\n}\n.nodeCreatorPlus {\n\tborder-width: 2px;\n\tborder-radius: var(--border-radius-base);\n\twidth: 36px;\n\theight: 36px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","mapStores","useUIStore","mouseinEvent","buttonsWrapper","moveCallback","mousemoveEvent","wrapperBounds","wrapperH","wrapperW","wrapperLeftNear","wrapperLeftFar","wrapperTopNear","wrapperTopFar","NODE_CREATOR_OPEN_SOURCES","offset","position","getMidCanvasPosition","DEFAULT_STICKY_WIDTH","DEFAULT_STICKY_HEIGHT","STICKY_NODE_TYPE","nodeTypeNames","nodeTypeName"],"mappings":"65BAkDA,MAAAA,EAAAC,EAAA,CACA,KAAA,gBACA,WAAA,CACA,YAAA,eAAA,OAAA,2BAAA,EAAA,kBAAA,CACA,EACA,MAAA,CACA,cAAA,CACA,KAAA,OACA,SAAA,EACA,EACA,iBAAA,CACA,KAAA,QACA,QAAA,EACA,CACA,EACA,MAAA,CACA,MAAA,CACA,iBAAA,EAAA,CAEA,EACA,SAAA,CACA,GAAAC,EAAAC,CAAA,CACA,EACA,QAAA,CACA,oBAAAC,EAAA,CACA,MAAAC,EAAAD,EAAA,OAGA,KAAA,iBAAA,GACA,MAAAE,EAAAC,GAAA,CACA,GAAAF,EAAA,CACA,MAAAG,EAAAH,EAAA,wBACAI,EAAAD,EAAA,OACAE,EAAAF,EAAA,MACAG,EAAAH,EAAA,KACAI,EAAAD,EAAAD,EACAG,EAAAL,EAAA,IACAM,EAAAD,EAAAJ,EAEAF,EAAA,MAAAI,GACAJ,EAAA,MAAAK,GACAL,EAAA,MAAAM,GACAN,EAAA,MAAAO,IAEA,KAAA,iBAAA,GACA,SAAA,oBAAA,YAAAR,EAAA,EAAA,EAEA,CAAA,EAEA,SAAA,iBAAA,YAAAA,EAAA,EAAA,CACA,EACA,iBAAA,CACA,KAAA,MAAA,oBAAA,CACA,OAAAS,EAAA,gBACA,iBAAA,EAAA,CACA,CACA,EACA,eAAA,CACA,SAAA,eACA,SAAA,cAAA,OAGA,MAAAC,EAAA,CAAA,GAAA,KAAA,QAAA,sBAAA,EAEAC,EAAAC,EAAA,KAAA,cAAAF,CAAA,EACAC,EAAA,CAAA,GAAAE,EAAA,EACAF,EAAA,CAAA,GAAAG,EAAA,EAEA,KAAA,MAAA,UAAA,CACA,CACA,aAAAC,EACA,SAAAJ,CACA,CAAA,CACA,CACA,EACA,kBAAA,CACA,KAAA,MAAA,oBAAA,CAAA,iBAAA,EAAA,CAAA,CACA,EACA,iBAAAK,EAAA,CACA,KAAA,MACA,UACAA,EAAA,IAAAC,IAAA,CAAA,aAAAA,CAAA,EAAA,CAAA,EAEA,KAAA,iBAAA,CACA,CACA,CACA,CAAA"}