n8n-editor-ui 1.9.2 → 1.9.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 (23) hide show
  1. package/.turbo/turbo-build.log +13 -13
  2. package/dist/assets/{CanvasControls-67948fa1.js → CanvasControls-b33c377a.js} +2 -2
  3. package/dist/assets/{CanvasControls-67948fa1.js.map → CanvasControls-b33c377a.js.map} +1 -1
  4. package/dist/assets/{FixedCollectionParameter-771c736b.js → FixedCollectionParameter-cf42963e.js} +2 -2
  5. package/dist/assets/{FixedCollectionParameter-771c736b.js.map → FixedCollectionParameter-cf42963e.js.map} +1 -1
  6. package/dist/assets/{NodeCreation-d8b71848.js → NodeCreation-281567a5.js} +2 -2
  7. package/dist/assets/{NodeCreation-d8b71848.js.map → NodeCreation-281567a5.js.map} +1 -1
  8. package/dist/assets/{NodeCreator-bfe4c2b6.js → NodeCreator-bda35007.js} +2 -2
  9. package/dist/assets/{NodeCreator-bfe4c2b6.js.map → NodeCreator-bda35007.js.map} +1 -1
  10. package/dist/assets/{RunDataJson-9a0b182a.js → RunDataJson-c3772308.js} +2 -2
  11. package/dist/assets/{RunDataJson-9a0b182a.js.map → RunDataJson-c3772308.js.map} +1 -1
  12. package/dist/assets/{RunDataJsonActions-3bff9b54.js → RunDataJsonActions-c9d79b6e.js} +2 -2
  13. package/dist/assets/{RunDataJsonActions-3bff9b54.js.map → RunDataJsonActions-c9d79b6e.js.map} +1 -1
  14. package/dist/assets/{RunDataSchema-ced2330b.js → RunDataSchema-efa7387d.js} +2 -2
  15. package/dist/assets/{RunDataSchema-ced2330b.js.map → RunDataSchema-efa7387d.js.map} +1 -1
  16. package/dist/assets/{RunDataTable-122b61e2.js → RunDataTable-8f060928.js} +2 -2
  17. package/dist/assets/{RunDataTable-122b61e2.js.map → RunDataTable-8f060928.js.map} +1 -1
  18. package/dist/assets/{index-ecf8497d.css → index-af6b1dd8.css} +1 -1
  19. package/dist/assets/{index-3a09e2e2.js → index-d51fa68e.js} +3 -3
  20. package/dist/assets/index-d51fa68e.js.map +1 -0
  21. package/dist/index.html +2 -2
  22. package/package.json +1 -1
  23. package/dist/assets/index-3a09e2e2.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
 
2
- > n8n-editor-ui@1.9.2 build /home/runner/work/n8n/n8n/packages/editor-ui
2
+ > n8n-editor-ui@1.9.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.4.7 building for production...
@@ -24,7 +24,7 @@ rendering chunks...
24
24
  computing gzip size...
25
25
  dist/assets/infisical-579b5f23.webp  1.56 kB
26
26
  dist/assets/hashicorp-8e552ff4.webp  1.60 kB
27
- dist/index.html  5.72 kB │ gzip: 1.67 kB
27
+ dist/index.html  5.72 kB │ gzip: 1.66 kB
28
28
  dist/assets/open-sans-latin-700-normal-d1a17abb.woff2  16.37 kB
29
29
  dist/assets/open-sans-latin-400-normal-b34551ae.woff2  16.74 kB
30
30
  dist/assets/open-sans-latin-600-normal-4ffc35ac.woff2  16.76 kB
@@ -46,7 +46,7 @@ computing gzip size...
46
46
  dist/assets/RunDataSchema-f2410c09.css  3.65 kB │ gzip: 0.98 kB
47
47
  dist/assets/NodeCreator-69549990.css  11.61 kB │ gzip: 2.53 kB
48
48
  dist/assets/n8n-dc7cfc9d.css  59.42 kB │ gzip: 9.13 kB
49
- dist/assets/index-ecf8497d.css  417.88 kB │ gzip: 59.69 kB
49
+ dist/assets/index-af6b1dd8.css  417.88 kB │ gzip: 59.69 kB
50
50
  dist/assets/xss-ba9b5ee6.js  0.07 kB │ gzip: 0.09 kB │ map: 0.10 kB
51
51
  dist/assets/MappingPill-1028970c.js  0.57 kB │ gzip: 0.38 kB │ map: 0.10 kB
52
52
  dist/assets/@fortawesome/free-regular-svg-icons-74cb85f8.js  0.67 kB │ gzip: 0.46 kB │ map: 170.48 kB
@@ -60,19 +60,19 @@ computing gzip size...
60
60
  dist/assets/copy-to-clipboard-fcd72098.js  2.27 kB │ gzip: 1.11 kB │ map: 7.16 kB
61
61
  dist/assets/file-saver-67c99cf2.js  2.64 kB │ gzip: 1.27 kB │ map: 5.91 kB
62
62
  dist/assets/v3-infinite-loading-8fbfd594.js  2.88 kB │ gzip: 1.37 kB │ map: 8.03 kB
63
- dist/assets/CanvasControls-67948fa1.js  3.00 kB │ gzip: 1.32 kB │ map: 3.38 kB
63
+ dist/assets/CanvasControls-b33c377a.js  3.00 kB │ gzip: 1.33 kB │ map: 3.38 kB
64
64
  dist/assets/dateformat-40ed026e.js  3.04 kB │ gzip: 1.59 kB │ map: 11.33 kB
65
65
  dist/assets/pinia-36ab6235.js  4.36 kB │ gzip: 2.18 kB │ map: 85.29 kB
66
- dist/assets/RunDataJsonActions-3bff9b54.js  5.10 kB │ gzip: 2.15 kB │ map: 10.72 kB
66
+ dist/assets/RunDataJsonActions-c9d79b6e.js  5.10 kB │ gzip: 2.15 kB │ map: 10.72 kB
67
67
  dist/assets/vue3-touch-events-ee55ce04.js  5.22 kB │ gzip: 1.73 kB │ map: 23.65 kB
68
68
  dist/assets/@vueuse/core-60457efe.js  5.24 kB │ gzip: 2.22 kB │ map: 297.50 kB
69
- dist/assets/NodeCreation-d8b71848.js  5.66 kB │ gzip: 2.10 kB │ map: 7.94 kB
70
- dist/assets/RunDataSchema-ced2330b.js  6.45 kB │ gzip: 2.70 kB │ map: 12.63 kB
71
- dist/assets/RunDataJson-9a0b182a.js  6.76 kB │ gzip: 2.51 kB │ map: 11.53 kB
69
+ dist/assets/NodeCreation-281567a5.js  5.66 kB │ gzip: 2.10 kB │ map: 7.94 kB
70
+ dist/assets/RunDataSchema-efa7387d.js  6.45 kB │ gzip: 2.70 kB │ map: 12.63 kB
71
+ dist/assets/RunDataJson-c3772308.js  6.76 kB │ gzip: 2.51 kB │ map: 11.53 kB
72
72
  dist/assets/@fortawesome/vue-fontawesome-f597912a.js  7.06 kB │ gzip: 2.62 kB │ map: 29.96 kB
73
- dist/assets/FixedCollectionParameter-771c736b.js  8.14 kB │ gzip: 2.79 kB │ map: 18.41 kB
73
+ dist/assets/FixedCollectionParameter-cf42963e.js  8.14 kB │ gzip: 2.78 kB │ map: 18.41 kB
74
74
  dist/assets/@jsplumb/util-98a92a84.js  9.69 kB │ gzip: 3.64 kB │ map: 44.96 kB
75
- dist/assets/RunDataTable-122b61e2.js  12.01 kB │ gzip: 4.31 kB │ map: 31.89 kB
75
+ dist/assets/RunDataTable-8f060928.js  12.01 kB │ gzip: 4.31 kB │ map: 31.89 kB
76
76
  dist/assets/vue-agile-35d18cd7.js  12.28 kB │ gzip: 3.56 kB │ map: 36.62 kB
77
77
  dist/assets/@jsplumb/connector-bezier-53998944.js  14.58 kB │ gzip: 5.10 kB │ map: 64.38 kB
78
78
  dist/assets/vue-json-pretty-38f00944.js  15.98 kB │ gzip: 5.35 kB │ map: 34.46 kB
@@ -81,7 +81,7 @@ computing gzip size...
81
81
  dist/assets/humanize-duration-d6635c4f.js  21.23 kB │ gzip: 6.56 kB │ map: 75.04 kB
82
82
  dist/assets/@fortawesome/fontawesome-svg-core-984d6dde.js  25.94 kB │ gzip: 8.94 kB │ map: 109.05 kB
83
83
  dist/assets/lodash-es-876af2e5.js  33.76 kB │ gzip: 12.75 kB │ map: 291.99 kB
84
- dist/assets/NodeCreator-bfe4c2b6.js  48.81 kB │ gzip: 16.03 kB │ map: 148.61 kB
84
+ dist/assets/NodeCreator-bda35007.js  48.81 kB │ gzip: 16.03 kB │ map: 148.61 kB
85
85
  dist/assets/vue-i18n-c3b0f366.js  54.37 kB │ gzip: 17.23 kB │ map: 322.00 kB
86
86
  dist/assets/luxon-19e1de07.js  63.53 kB │ gzip: 19.83 kB │ map: 344.93 kB
87
87
  dist/assets/@fortawesome/free-solid-svg-icons-d79f1537.js  71.93 kB │ gzip: 24.85 kB │ map: 736.35 kB
@@ -93,11 +93,11 @@ computing gzip size...
93
93
  dist/assets/codemirror-lang-html-n8n-4223f8c7.js  128.71 kB │ gzip: 48.24 kB │ map: 219.74 kB
94
94
  dist/assets/esprima-next-8c7e8ff9.js  134.74 kB │ gzip: 30.32 kB │ map: 437.15 kB
95
95
  dist/assets/@n8n/codemirror-lang-sql-9a304659.js  327.86 kB │ gzip: 108.30 kB │ map: 1,395.34 kB
96
- dist/assets/index-3a09e2e2.js 2,238.79 kB │ gzip: 608.24 kB │ map: 5,557.95 kB
96
+ dist/assets/index-d51fa68e.js 2,238.92 kB │ gzip: 608.27 kB │ map: 5,558.51 kB
97
97
  dist/assets/n8n-32ff1011.js 2,494.37 kB │ gzip: 754.49 kB │ map: 9,862.23 kB
98
98
  
99
99
  (!) Some chunks are larger than 500 kBs after minification. Consider:
100
100
  - Using dynamic import() to code-split the application
101
101
  - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
102
102
  - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
103
- ✓ built in 1m 14s
103
+ ✓ built in 1m 17s
@@ -1,2 +1,2 @@
1
- import{s as y}from"./pinia-36ab6235.js";import{b as k}from"./index-3a09e2e2.js";import{d as f,T as _,P as z,b as C,o as u,f as M,e as i,j as e,c as b,k as w,n as Z}from"./vendor-18a4b4e1.js";import{_ as v}from"./n8n-32ff1011.js";import"./axios-da559357.js";import"./flatted-8b14da7d.js";import"./@fortawesome/vue-fontawesome-f597912a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./vue-i18n-c3b0f366.js";import"./uuid-cf522c50.js";import"./dateformat-40ed026e.js";import"./lodash-es-876af2e5.js";import"./luxon-19e1de07.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/core-0a463c13.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-53998944.js";import"./@jsplumb/browser-ui-70b0a0d6.js";import"./@n8n/codemirror-lang-sql-9a304659.js";import"./codemirror-lang-n8n-expression-47e67c3a.js";import"./codemirror-lang-html-n8n-4223f8c7.js";import"./fast-json-stable-stringify-fb9de5ed.js";import"./prettier-51497383.js";import"./esprima-next-8c7e8ff9.js";import"./@vueuse/core-60457efe.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-338130ab.js";import"./file-saver-67c99cf2.js";import"./vue-json-pretty-38f00944.js";import"./humanize-duration-d6635c4f.js";import"./v3-infinite-loading-8fbfd594.js";import"./vue-agile-35d18cd7.js";import"./copy-to-clipboard-fcd72098.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-d79f1537.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";const g=f({__name:"CanvasControls",setup(E){const s=k(),{zoomToFit:m,zoomIn:a,zoomOut:l,resetZoom:p}=s,{nodeViewScale:d,isDemo:r}=y(s),c=o=>{const t=o.metaKey||o.ctrlKey;(o.key==="="||o.key==="+")&&!t?a():(o.key==="_"||o.key==="-")&&!t?l():o.key==="0"&&!t?p():o.key==="1"&&!t&&m()};return _(()=>{document.addEventListener("keydown",c)}),z(()=>{document.removeEventListener("keydown",c)}),(o,t)=>{const n=C("n8n-icon-button");return u(),M("div",{class:Z({[o.$style.zoomMenu]:!0,[o.$style.regularZoomMenu]:!e(r),[o.$style.demoZoomMenu]:e(r)})},[i(n,{onClick:e(m),type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomToFit"),icon:"expand","data-test-id":"zoom-to-fit"},null,8,["onClick","title"]),i(n,{onClick:e(a),type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomIn"),icon:"search-plus","data-test-id":"zoom-in-button"},null,8,["onClick","title"]),i(n,{onClick:e(l),type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomOut"),icon:"search-minus","data-test-id":"zoom-out-button"},null,8,["onClick","title"]),e(d)!==1&&!e(r)?(u(),b(n,{key:0,onClick:e(p),type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.resetZoom"),icon:"undo","data-test-id":"reset-zoom-button"},null,8,["onClick","title"])):w("",!0)],2)}}}),T="_zoomMenu_1ufow_5",$="_regularZoomMenu_1ufow_25",V="_demoZoomMenu_1ufow_30",B={zoomMenu:T,regularZoomMenu:$,demoZoomMenu:V},h={$style:B},ko=v(g,[["__cssModules",h]]);export{ko as default};
2
- //# sourceMappingURL=CanvasControls-67948fa1.js.map
1
+ import{s as y}from"./pinia-36ab6235.js";import{b as k}from"./index-d51fa68e.js";import{d as f,T as _,P as z,b as C,o as u,f as M,e as i,j as e,c as b,k as w,n as Z}from"./vendor-18a4b4e1.js";import{_ as v}from"./n8n-32ff1011.js";import"./axios-da559357.js";import"./flatted-8b14da7d.js";import"./@fortawesome/vue-fontawesome-f597912a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./vue-i18n-c3b0f366.js";import"./uuid-cf522c50.js";import"./dateformat-40ed026e.js";import"./lodash-es-876af2e5.js";import"./luxon-19e1de07.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/core-0a463c13.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-53998944.js";import"./@jsplumb/browser-ui-70b0a0d6.js";import"./@n8n/codemirror-lang-sql-9a304659.js";import"./codemirror-lang-n8n-expression-47e67c3a.js";import"./codemirror-lang-html-n8n-4223f8c7.js";import"./fast-json-stable-stringify-fb9de5ed.js";import"./prettier-51497383.js";import"./esprima-next-8c7e8ff9.js";import"./@vueuse/core-60457efe.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-338130ab.js";import"./file-saver-67c99cf2.js";import"./vue-json-pretty-38f00944.js";import"./humanize-duration-d6635c4f.js";import"./v3-infinite-loading-8fbfd594.js";import"./vue-agile-35d18cd7.js";import"./copy-to-clipboard-fcd72098.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-d79f1537.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";const g=f({__name:"CanvasControls",setup(E){const s=k(),{zoomToFit:m,zoomIn:a,zoomOut:l,resetZoom:p}=s,{nodeViewScale:d,isDemo:r}=y(s),c=o=>{const t=o.metaKey||o.ctrlKey;(o.key==="="||o.key==="+")&&!t?a():(o.key==="_"||o.key==="-")&&!t?l():o.key==="0"&&!t?p():o.key==="1"&&!t&&m()};return _(()=>{document.addEventListener("keydown",c)}),z(()=>{document.removeEventListener("keydown",c)}),(o,t)=>{const n=C("n8n-icon-button");return u(),M("div",{class:Z({[o.$style.zoomMenu]:!0,[o.$style.regularZoomMenu]:!e(r),[o.$style.demoZoomMenu]:e(r)})},[i(n,{onClick:e(m),type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomToFit"),icon:"expand","data-test-id":"zoom-to-fit"},null,8,["onClick","title"]),i(n,{onClick:e(a),type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomIn"),icon:"search-plus","data-test-id":"zoom-in-button"},null,8,["onClick","title"]),i(n,{onClick:e(l),type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.zoomOut"),icon:"search-minus","data-test-id":"zoom-out-button"},null,8,["onClick","title"]),e(d)!==1&&!e(r)?(u(),b(n,{key:0,onClick:e(p),type:"tertiary",size:"large",title:o.$locale.baseText("nodeView.resetZoom"),icon:"undo","data-test-id":"reset-zoom-button"},null,8,["onClick","title"])):w("",!0)],2)}}}),T="_zoomMenu_1ufow_5",$="_regularZoomMenu_1ufow_25",V="_demoZoomMenu_1ufow_30",B={zoomMenu:T,regularZoomMenu:$,demoZoomMenu:V},h={$style:B},ko=v(g,[["__cssModules",h]]);export{ko as default};
2
+ //# sourceMappingURL=CanvasControls-b33c377a.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasControls-67948fa1.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: var(--spacing-2xl);\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":"2/CAgDA,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-b33c377a.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: var(--spacing-2xl);\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":"2/CAgDA,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{e as h,a4 as P,h as R,_ as A}from"./n8n-32ff1011.js";import{g as C}from"./lodash-es-876af2e5.js";import{d as I,aE as S,b as p,o as l,f as n,e as m,w as f,l as j,t as B,k as r,M as y,a9 as b,c as d,g as k,aF as E,a4 as F}from"./vendor-18a4b4e1.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./@fortawesome/vue-fontawesome-f597912a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";const L=S(async()=>R(()=>import("./index-3a09e2e2.js").then(e=>e.a5),["assets/index-3a09e2e2.js","assets/vendor-18a4b4e1.js","assets/pinia-36ab6235.js","assets/n8n-32ff1011.js","assets/esprima-next-8c7e8ff9.js","assets/luxon-19e1de07.js","assets/lodash-es-876af2e5.js","assets/@fortawesome/vue-fontawesome-f597912a.js","assets/@fortawesome/fontawesome-svg-core-984d6dde.js","assets/n8n-dc7cfc9d.css","assets/axios-da559357.js","assets/flatted-8b14da7d.js","assets/vue-i18n-c3b0f366.js","assets/uuid-cf522c50.js","assets/dateformat-40ed026e.js","assets/@jsplumb/util-98a92a84.js","assets/@jsplumb/core-0a463c13.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-53998944.js","assets/@jsplumb/browser-ui-70b0a0d6.js","assets/@n8n/codemirror-lang-sql-9a304659.js","assets/codemirror-lang-n8n-expression-47e67c3a.js","assets/codemirror-lang-html-n8n-4223f8c7.js","assets/fast-json-stable-stringify-fb9de5ed.js","assets/prettier-51497383.js","assets/@vueuse/core-60457efe.js","assets/timeago.js-a9e71aec.js","assets/qrcode.vue-338130ab.js","assets/file-saver-67c99cf2.js","assets/vue-json-pretty-38f00944.js","assets/humanize-duration-d6635c4f.js","assets/v3-infinite-loading-8fbfd594.js","assets/vue-agile-35d18cd7.js","assets/vue-agile-d964f598.css","assets/copy-to-clipboard-fcd72098.js","assets/vue3-touch-events-ee55ce04.js","assets/@fortawesome/free-solid-svg-icons-d79f1537.js","assets/@fortawesome/free-regular-svg-icons-74cb85f8.js","assets/index-ecf8497d.css"])),U=I({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:L},data(){return{selectedOption:void 0,mutableValues:{}}},watch:{values:{handler(e){this.mutableValues=h(e)},deep:!0}},created(){this.mutableValues=h(this.values)},computed:{getPlaceholderText(){const e=this.$locale.nodeText().placeholder(this.parameter,this.path);return e||this.$locale.baseText("fixedCollectionParameter.choose")},getProperties(){const e=[];let t;for(const o of this.propertyNames)t=this.getOptionProperties(o),t!==void 0&&e.push(t);return e},multipleValues(){var e;return!!((e=this.parameter.typeOptions)!=null&&e.multipleValues)},parameterOptions(){return this.multipleValues&&P(this.parameter.options)?this.parameter.options:this.parameter.options.filter(e=>!this.propertyNames.includes(e.name))},propertyNames(){return Object.keys(this.mutableValues||{})},sortable(){var e;return!!((e=this.parameter.typeOptions)!=null&&e.sortable)}},methods:{deleteOption(e,t){const o=this.mutableValues[e];!o||o.length>1?this.$emit("valueChanged",{name:this.getPropertyPath(e,t),value:void 0}):this.$emit("valueChanged",{name:this.getPropertyPath(e),value:void 0})},getPropertyPath(e,t){return`${this.path}.${e}`+(t!==void 0?`[${t}]`:"")},getOptionProperties(e){if(P(this.parameter.options)){for(const t of this.parameter.options)if(t.name===e)return t}},moveOptionDown(e,t){Array.isArray(this.mutableValues[e])&&this.mutableValues[e].splice(t+1,0,this.mutableValues[e].splice(t,1)[0]);const o={name:this.getPropertyPath(e),value:this.mutableValues[e]};this.$emit("valueChanged",o)},moveOptionUp(e,t){var i;Array.isArray(this.mutableValues[e])&&((i=this.mutableValues)==null||i[e].splice(t-1,0,this.mutableValues[e].splice(t,1)[0]));const o={name:this.getPropertyPath(e),value:this.mutableValues[e]};this.$emit("valueChanged",o)},optionSelected(e){const t=this.getOptionProperties(e);if(t===void 0)return;const o=`${this.path}.${t.name}`,i={};for(const s of t.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]=C(this.nodeValues,`${this.path}.${s.name}`,[]),Array.isArray(s.default)?i[s.name].push(...h(s.default)):s.default!==""&&typeof s.default!="object"&&i[s.name].push(h(s.default))):i[s.name]=h(s.default);let c;this.multipleValues?(c=C(this.nodeValues,o,[]),c.push(i)):c=i;const V={name:o,value:c};this.$emit("valueChanged",V),this.selectedOption=void 0},valueChanged(e){this.$emit("valueChanged",e)}}});const q={key:0,class:"no-items-exist"},z={key:1},M={class:"parameter-item-wrapper"},N={key:0,class:"delete-option"},K={key:0,class:"sort-icon"},G={key:2,class:"parameter-item"},H={class:"parameter-item-wrapper"},J={key:0,class:"delete-option"},Q={key:1},W={key:1,class:"add-option"};function X(e,t,o,i,c,V){const s=p("n8n-text"),$=p("n8n-input-label"),v=p("font-awesome-icon"),g=p("parameter-input-list"),_=p("n8n-button"),w=p("n8n-option"),T=p("n8n-select");return l(),n("div",{onKeydown:t[2]||(t[2]=F(()=>{},["stop"])),class:"fixed-collection-parameter"},[e.getProperties.length===0?(l(),n("div",q,[m(s,{size:"small"},{default:f(()=>[j(B(e.$locale.baseText("fixedCollectionParameter.currentlyNoItemsExist")),1)]),_:1})])):r("",!0),(l(!0),n(y,null,b(e.getProperties,a=>(l(),n("div",{key:a.name,class:"fixed-collection-parameter-property"},[a.displayName!==""&&e.parameter.options&&e.parameter.options.length!==1?(l(),d($,{key:0,label:e.$locale.nodeText().inputLabelDisplayName(a,e.path),underline:!0,size:"small",color:"text-dark"},null,8,["label"])):r("",!0),e.multipleValues?(l(),n("div",z,[(l(!0),n(y,null,b(e.mutableValues[a.name],(D,u)=>(l(),n("div",{key:a.name+u,class:"parameter-item"},[k("div",M,[e.isReadOnly?r("",!0):(l(),n("div",N,[m(v,{icon:"trash",class:"reset-icon clickable",title:e.$locale.baseText("fixedCollectionParameter.deleteItem"),onClick:O=>e.deleteOption(a.name,u)},null,8,["title","onClick"]),e.sortable?(l(),n("div",K,[u!==0?(l(),d(v,{key:0,icon:"angle-up",class:"clickable",title:e.$locale.baseText("fixedCollectionParameter.moveUp"),onClick:O=>e.moveOptionUp(a.name,u)},null,8,["title","onClick"])):r("",!0),u!==e.mutableValues[a.name].length-1?(l(),d(v,{key:1,icon:"angle-down",class:"clickable",title:e.$locale.baseText("fixedCollectionParameter.moveDown"),onClick:O=>e.moveOptionDown(a.name,u)},null,8,["title","onClick"])):r("",!0)])):r("",!0)])),(l(),d(E,null,{default:f(()=>[m(g,{parameters:a.values,nodeValues:e.nodeValues,path:e.getPropertyPath(a.name,u),hideDelete:!0,isReadOnly:e.isReadOnly,onValueChanged:e.valueChanged},null,8,["parameters","nodeValues","path","isReadOnly","onValueChanged"])]),_:2},1024))])]))),128))])):(l(),n("div",G,[k("div",H,[e.isReadOnly?r("",!0):(l(),n("div",J,[m(v,{icon:"trash",class:"reset-icon clickable",title:e.$locale.baseText("fixedCollectionParameter.deleteItem"),onClick:D=>e.deleteOption(a.name)},null,8,["title","onClick"])])),m(g,{parameters:a.values,nodeValues:e.nodeValues,path:e.getPropertyPath(a.name),isReadOnly:e.isReadOnly,class:"parameter-item",onValueChanged:e.valueChanged,hideDelete:!0},null,8,["parameters","nodeValues","path","isReadOnly","onValueChanged"])])]))]))),128)),e.parameterOptions.length>0&&!e.isReadOnly?(l(),n("div",Q,[e.parameter.options.length===1?(l(),d(_,{key:0,type:"tertiary",block:"",onClick:t[0]||(t[0]=a=>e.optionSelected(e.parameter.options[0].name)),label:e.getPlaceholderText},null,8,["label"])):(l(),n("div",W,[m(T,{modelValue:e.selectedOption,"onUpdate:modelValue":[t[1]||(t[1]=a=>e.selectedOption=a),e.optionSelected],placeholder:e.getPlaceholderText,size:"small",filterable:""},{default:f(()=>[(l(!0),n(y,null,b(e.parameterOptions,a=>(l(),d(w,{key:a.name,label:e.$locale.nodeText().collectionOptionDisplayName(e.parameter,a,e.path),value:a.name},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","onUpdate:modelValue"])]))])):r("",!0)],32)}const se=A(U,[["render",X],["__scopeId","data-v-6c773ca7"]]);export{se as default};
2
- //# sourceMappingURL=FixedCollectionParameter-771c736b.js.map
1
+ import{e as h,a4 as P,h as R,_ as A}from"./n8n-32ff1011.js";import{g as C}from"./lodash-es-876af2e5.js";import{d as I,aE as S,b as p,o as l,f as n,e as m,w as f,l as j,t as B,k as r,M as y,a9 as b,c as d,g as k,aF as E,a4 as F}from"./vendor-18a4b4e1.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./@fortawesome/vue-fontawesome-f597912a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";const L=S(async()=>R(()=>import("./index-d51fa68e.js").then(e=>e.a5),["assets/index-d51fa68e.js","assets/vendor-18a4b4e1.js","assets/pinia-36ab6235.js","assets/n8n-32ff1011.js","assets/esprima-next-8c7e8ff9.js","assets/luxon-19e1de07.js","assets/lodash-es-876af2e5.js","assets/@fortawesome/vue-fontawesome-f597912a.js","assets/@fortawesome/fontawesome-svg-core-984d6dde.js","assets/n8n-dc7cfc9d.css","assets/axios-da559357.js","assets/flatted-8b14da7d.js","assets/vue-i18n-c3b0f366.js","assets/uuid-cf522c50.js","assets/dateformat-40ed026e.js","assets/@jsplumb/util-98a92a84.js","assets/@jsplumb/core-0a463c13.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-53998944.js","assets/@jsplumb/browser-ui-70b0a0d6.js","assets/@n8n/codemirror-lang-sql-9a304659.js","assets/codemirror-lang-n8n-expression-47e67c3a.js","assets/codemirror-lang-html-n8n-4223f8c7.js","assets/fast-json-stable-stringify-fb9de5ed.js","assets/prettier-51497383.js","assets/@vueuse/core-60457efe.js","assets/timeago.js-a9e71aec.js","assets/qrcode.vue-338130ab.js","assets/file-saver-67c99cf2.js","assets/vue-json-pretty-38f00944.js","assets/humanize-duration-d6635c4f.js","assets/v3-infinite-loading-8fbfd594.js","assets/vue-agile-35d18cd7.js","assets/vue-agile-d964f598.css","assets/copy-to-clipboard-fcd72098.js","assets/vue3-touch-events-ee55ce04.js","assets/@fortawesome/free-solid-svg-icons-d79f1537.js","assets/@fortawesome/free-regular-svg-icons-74cb85f8.js","assets/index-af6b1dd8.css"])),U=I({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:L},data(){return{selectedOption:void 0,mutableValues:{}}},watch:{values:{handler(e){this.mutableValues=h(e)},deep:!0}},created(){this.mutableValues=h(this.values)},computed:{getPlaceholderText(){const e=this.$locale.nodeText().placeholder(this.parameter,this.path);return e||this.$locale.baseText("fixedCollectionParameter.choose")},getProperties(){const e=[];let t;for(const o of this.propertyNames)t=this.getOptionProperties(o),t!==void 0&&e.push(t);return e},multipleValues(){var e;return!!((e=this.parameter.typeOptions)!=null&&e.multipleValues)},parameterOptions(){return this.multipleValues&&P(this.parameter.options)?this.parameter.options:this.parameter.options.filter(e=>!this.propertyNames.includes(e.name))},propertyNames(){return Object.keys(this.mutableValues||{})},sortable(){var e;return!!((e=this.parameter.typeOptions)!=null&&e.sortable)}},methods:{deleteOption(e,t){const o=this.mutableValues[e];!o||o.length>1?this.$emit("valueChanged",{name:this.getPropertyPath(e,t),value:void 0}):this.$emit("valueChanged",{name:this.getPropertyPath(e),value:void 0})},getPropertyPath(e,t){return`${this.path}.${e}`+(t!==void 0?`[${t}]`:"")},getOptionProperties(e){if(P(this.parameter.options)){for(const t of this.parameter.options)if(t.name===e)return t}},moveOptionDown(e,t){Array.isArray(this.mutableValues[e])&&this.mutableValues[e].splice(t+1,0,this.mutableValues[e].splice(t,1)[0]);const o={name:this.getPropertyPath(e),value:this.mutableValues[e]};this.$emit("valueChanged",o)},moveOptionUp(e,t){var i;Array.isArray(this.mutableValues[e])&&((i=this.mutableValues)==null||i[e].splice(t-1,0,this.mutableValues[e].splice(t,1)[0]));const o={name:this.getPropertyPath(e),value:this.mutableValues[e]};this.$emit("valueChanged",o)},optionSelected(e){const t=this.getOptionProperties(e);if(t===void 0)return;const o=`${this.path}.${t.name}`,i={};for(const s of t.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]=C(this.nodeValues,`${this.path}.${s.name}`,[]),Array.isArray(s.default)?i[s.name].push(...h(s.default)):s.default!==""&&typeof s.default!="object"&&i[s.name].push(h(s.default))):i[s.name]=h(s.default);let c;this.multipleValues?(c=C(this.nodeValues,o,[]),c.push(i)):c=i;const V={name:o,value:c};this.$emit("valueChanged",V),this.selectedOption=void 0},valueChanged(e){this.$emit("valueChanged",e)}}});const q={key:0,class:"no-items-exist"},z={key:1},M={class:"parameter-item-wrapper"},N={key:0,class:"delete-option"},K={key:0,class:"sort-icon"},G={key:2,class:"parameter-item"},H={class:"parameter-item-wrapper"},J={key:0,class:"delete-option"},Q={key:1},W={key:1,class:"add-option"};function X(e,t,o,i,c,V){const s=p("n8n-text"),$=p("n8n-input-label"),v=p("font-awesome-icon"),g=p("parameter-input-list"),_=p("n8n-button"),w=p("n8n-option"),T=p("n8n-select");return l(),n("div",{onKeydown:t[2]||(t[2]=F(()=>{},["stop"])),class:"fixed-collection-parameter"},[e.getProperties.length===0?(l(),n("div",q,[m(s,{size:"small"},{default:f(()=>[j(B(e.$locale.baseText("fixedCollectionParameter.currentlyNoItemsExist")),1)]),_:1})])):r("",!0),(l(!0),n(y,null,b(e.getProperties,a=>(l(),n("div",{key:a.name,class:"fixed-collection-parameter-property"},[a.displayName!==""&&e.parameter.options&&e.parameter.options.length!==1?(l(),d($,{key:0,label:e.$locale.nodeText().inputLabelDisplayName(a,e.path),underline:!0,size:"small",color:"text-dark"},null,8,["label"])):r("",!0),e.multipleValues?(l(),n("div",z,[(l(!0),n(y,null,b(e.mutableValues[a.name],(D,u)=>(l(),n("div",{key:a.name+u,class:"parameter-item"},[k("div",M,[e.isReadOnly?r("",!0):(l(),n("div",N,[m(v,{icon:"trash",class:"reset-icon clickable",title:e.$locale.baseText("fixedCollectionParameter.deleteItem"),onClick:O=>e.deleteOption(a.name,u)},null,8,["title","onClick"]),e.sortable?(l(),n("div",K,[u!==0?(l(),d(v,{key:0,icon:"angle-up",class:"clickable",title:e.$locale.baseText("fixedCollectionParameter.moveUp"),onClick:O=>e.moveOptionUp(a.name,u)},null,8,["title","onClick"])):r("",!0),u!==e.mutableValues[a.name].length-1?(l(),d(v,{key:1,icon:"angle-down",class:"clickable",title:e.$locale.baseText("fixedCollectionParameter.moveDown"),onClick:O=>e.moveOptionDown(a.name,u)},null,8,["title","onClick"])):r("",!0)])):r("",!0)])),(l(),d(E,null,{default:f(()=>[m(g,{parameters:a.values,nodeValues:e.nodeValues,path:e.getPropertyPath(a.name,u),hideDelete:!0,isReadOnly:e.isReadOnly,onValueChanged:e.valueChanged},null,8,["parameters","nodeValues","path","isReadOnly","onValueChanged"])]),_:2},1024))])]))),128))])):(l(),n("div",G,[k("div",H,[e.isReadOnly?r("",!0):(l(),n("div",J,[m(v,{icon:"trash",class:"reset-icon clickable",title:e.$locale.baseText("fixedCollectionParameter.deleteItem"),onClick:D=>e.deleteOption(a.name)},null,8,["title","onClick"])])),m(g,{parameters:a.values,nodeValues:e.nodeValues,path:e.getPropertyPath(a.name),isReadOnly:e.isReadOnly,class:"parameter-item",onValueChanged:e.valueChanged,hideDelete:!0},null,8,["parameters","nodeValues","path","isReadOnly","onValueChanged"])])]))]))),128)),e.parameterOptions.length>0&&!e.isReadOnly?(l(),n("div",Q,[e.parameter.options.length===1?(l(),d(_,{key:0,type:"tertiary",block:"",onClick:t[0]||(t[0]=a=>e.optionSelected(e.parameter.options[0].name)),label:e.getPlaceholderText},null,8,["label"])):(l(),n("div",W,[m(T,{modelValue:e.selectedOption,"onUpdate:modelValue":[t[1]||(t[1]=a=>e.selectedOption=a),e.optionSelected],placeholder:e.getPlaceholderText,size:"small",filterable:""},{default:f(()=>[(l(!0),n(y,null,b(e.parameterOptions,a=>(l(),d(w,{key:a.name,label:e.$locale.nodeText().collectionOptionDisplayName(e.parameter,a,e.path),value:a.name},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","onUpdate:modelValue"])]))])):r("",!0)],32)}const se=A(U,[["render",X],["__scopeId","data-v-6c773ca7"]]);export{se as default};
2
+ //# sourceMappingURL=FixedCollectionParameter-cf42963e.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["ParameterInputList","defineAsyncComponent","__vitePreload","_sfc_main","defineComponent","newValues","deepCopy","placeholder","returnProperties","tempProperties","name","_a","isINodePropertyCollectionList","option","optionName","index","currentOptionsOfSameType","parameterData","newParameterValue","optionParameter","get","newValue","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_10","_resolveComponent","_openBlock","_createElementBlock","_cache","_withModifiers","_ctx","_createVNode","_component_n8n_text","_withCtx","_createCommentVNode","_Fragment","_renderList","property","_createBlock","_component_n8n_input_label","_hoisted_2","value","_createElementVNode","_hoisted_3","_component_font_awesome_icon","$event","_Suspense","_component_parameter_input_list","_hoisted_7","_hoisted_9","_component_n8n_button","_component_n8n_select","item","_component_n8n_option"],"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<Suspense>\n\t\t\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t\t\t:path=\"getPropertyPath(property.name, index)\"\n\t\t\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Suspense>\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@update:modelValue=\"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 { defineAsyncComponent, defineComponent } from 'vue';\nimport type { 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\nconst ParameterInputList = defineAsyncComponent(async () => import('./ParameterInputList.vue'));\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,\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.fixed-collection-parameter {\n\tpadding-left: var(--spacing-s);\n\n\t:deep(.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-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"],"file":"assets/FixedCollectionParameter-771c736b.js"}
1
+ {"version":3,"mappings":"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","names":["ParameterInputList","defineAsyncComponent","__vitePreload","_sfc_main","defineComponent","newValues","deepCopy","placeholder","returnProperties","tempProperties","name","_a","isINodePropertyCollectionList","option","optionName","index","currentOptionsOfSameType","parameterData","newParameterValue","optionParameter","get","newValue","_hoisted_1","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_8","_hoisted_10","_resolveComponent","_openBlock","_createElementBlock","_cache","_withModifiers","_ctx","_createVNode","_component_n8n_text","_withCtx","_createCommentVNode","_Fragment","_renderList","property","_createBlock","_component_n8n_input_label","_hoisted_2","value","_createElementVNode","_hoisted_3","_component_font_awesome_icon","$event","_Suspense","_component_parameter_input_list","_hoisted_7","_hoisted_9","_component_n8n_button","_component_n8n_select","item","_component_n8n_option"],"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<Suspense>\n\t\t\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t\t\t:path=\"getPropertyPath(property.name, index)\"\n\t\t\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Suspense>\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@update:modelValue=\"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 { defineAsyncComponent, defineComponent } from 'vue';\nimport type { 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\nconst ParameterInputList = defineAsyncComponent(async () => import('./ParameterInputList.vue'));\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,\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.fixed-collection-parameter {\n\tpadding-left: var(--spacing-s);\n\n\t:deep(.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-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"],"file":"assets/FixedCollectionParameter-cf42963e.js"}
@@ -1,2 +1,2 @@
1
- import{h as v,_ as f}from"./n8n-32ff1011.js";import{u as _,N as B,g as S,D as k,a as b,S as T}from"./index-3a09e2e2.js";import{m as w}from"./pinia-36ab6235.js";import{d as E,aE as h,b as u,o as p,f as C,n as a,g as N,e as l,k as $,c as g,w as A,aF as D}from"./vendor-18a4b4e1.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./lodash-es-876af2e5.js";import"./@fortawesome/vue-fontawesome-f597912a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./axios-da559357.js";import"./flatted-8b14da7d.js";import"./vue-i18n-c3b0f366.js";import"./uuid-cf522c50.js";import"./dateformat-40ed026e.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/core-0a463c13.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-53998944.js";import"./@jsplumb/browser-ui-70b0a0d6.js";import"./@n8n/codemirror-lang-sql-9a304659.js";import"./codemirror-lang-n8n-expression-47e67c3a.js";import"./codemirror-lang-html-n8n-4223f8c7.js";import"./fast-json-stable-stringify-fb9de5ed.js";import"./prettier-51497383.js";import"./@vueuse/core-60457efe.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-338130ab.js";import"./file-saver-67c99cf2.js";import"./vue-json-pretty-38f00944.js";import"./humanize-duration-d6635c4f.js";import"./v3-infinite-loading-8fbfd594.js";import"./vue-agile-35d18cd7.js";import"./copy-to-clipboard-fcd72098.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-d79f1537.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";const I=h(async()=>v(()=>import("./NodeCreator-bfe4c2b6.js"),["assets/NodeCreator-bfe4c2b6.js","assets/index-3a09e2e2.js","assets/vendor-18a4b4e1.js","assets/pinia-36ab6235.js","assets/n8n-32ff1011.js","assets/esprima-next-8c7e8ff9.js","assets/luxon-19e1de07.js","assets/lodash-es-876af2e5.js","assets/@fortawesome/vue-fontawesome-f597912a.js","assets/@fortawesome/fontawesome-svg-core-984d6dde.js","assets/n8n-dc7cfc9d.css","assets/axios-da559357.js","assets/flatted-8b14da7d.js","assets/vue-i18n-c3b0f366.js","assets/uuid-cf522c50.js","assets/dateformat-40ed026e.js","assets/@jsplumb/util-98a92a84.js","assets/@jsplumb/core-0a463c13.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-53998944.js","assets/@jsplumb/browser-ui-70b0a0d6.js","assets/@n8n/codemirror-lang-sql-9a304659.js","assets/codemirror-lang-n8n-expression-47e67c3a.js","assets/codemirror-lang-html-n8n-4223f8c7.js","assets/fast-json-stable-stringify-fb9de5ed.js","assets/prettier-51497383.js","assets/@vueuse/core-60457efe.js","assets/timeago.js-a9e71aec.js","assets/qrcode.vue-338130ab.js","assets/file-saver-67c99cf2.js","assets/vue-json-pretty-38f00944.js","assets/humanize-duration-d6635c4f.js","assets/v3-infinite-loading-8fbfd594.js","assets/vue-agile-35d18cd7.js","assets/vue-agile-d964f598.css","assets/copy-to-clipboard-fcd72098.js","assets/vue3-touch-events-ee55ce04.js","assets/@fortawesome/free-solid-svg-icons-d79f1537.js","assets/@fortawesome/free-regular-svg-icons-74cb85f8.js","assets/index-ecf8497d.css","assets/NodeCreator-69549990.css"])),P=E({name:"node-creation",components:{NodeCreator:I},props:{nodeViewScale:{type:Number,required:!0},createNodeActive:{type:Boolean,default:!1}},data(){return{showStickyButton:!1}},computed:{...w(_)},methods:{onCreateMenuHoverIn(e){const t=e.target;this.showStickyButton=!0;const d=o=>{if(t){const r=t.getBoundingClientRect(),c=r.height,s=r.width,i=r.left,n=i+s,m=r.top,y=m+c;o.pageX>i&&o.pageX<n&&o.pageY>m&&o.pageY<y||(this.showStickyButton=!1,document.removeEventListener("mousemove",d,!1))}};document.addEventListener("mousemove",d,!1)},openNodeCreator(){this.$emit("toggleNodeCreator",{source:B.ADD_NODE_BUTTON,createNodeActive:!0})},addStickyNote(){document.activeElement&&document.activeElement.blur();const e=[...this.uiStore.nodeViewOffsetPosition],t=S(this.nodeViewScale,e);t[0]-=k/2,t[1]-=b/2,this.$emit("addNode",[{nodeTypeName:T,position:t}])},closeNodeCreator(){this.$emit("toggleNodeCreator",{createNodeActive:!1})},nodeTypeSelected(e){this.$emit("addNode",e.map(t=>({nodeTypeName:t}))),this.closeNodeCreator()}}}),O="_nodeButtonsWrapper_q5bvi_5",V="_addStickyButton_q5bvi_14",q="_visibleButton_q5bvi_21",H="_noEvents_q5bvi_26",L="_nodeCreatorButton_q5bvi_30",M="_nodeCreatorPlus_q5bvi_47",W={nodeButtonsWrapper:O,addStickyButton:V,visibleButton:q,noEvents:H,nodeCreatorButton:L,nodeCreatorPlus:M};function Y(e,t,d,o,r,c){const s=u("n8n-icon-button"),i=u("NodeCreator");return p(),C("div",null,[e.createNodeActive?$("",!0):(p(),C("div",{key:0,class:a([e.$style.nodeButtonsWrapper,e.showStickyButton?e.$style.noEvents:""]),onMouseenter:t[1]||(t[1]=(...n)=>e.onCreateMenuHoverIn&&e.onCreateMenuHoverIn(...n))},[N("div",{class:a(e.$style.nodeCreatorButton),"data-test-id":"node-creator-plus-button"},[l(s,{size:"xlarge",icon:"plus",type:"tertiary",class:a(e.$style.nodeCreatorPlus),onClick:e.openNodeCreator,title:e.$locale.baseText("nodeView.addNode")},null,8,["class","onClick","title"]),N("div",{class:a([e.$style.addStickyButton,e.showStickyButton?e.$style.visibleButton:""]),onClick:t[0]||(t[0]=(...n)=>e.addStickyNote&&e.addStickyNote(...n)),"data-test-id":"add-sticky-button"},[l(s,{type:"tertiary",icon:["far","note-sticky"],title:e.$locale.baseText("nodeView.addSticky")},null,8,["title"])],2)],2)],34)),(p(),g(D,null,{default:A(()=>[l(i,{active:e.createNodeActive,onNodeTypeSelected:e.nodeTypeSelected,onCloseNodeCreator:e.closeNodeCreator},null,8,["active","onNodeTypeSelected","onCloseNodeCreator"])]),_:1}))])}const F={$style:W},Ee=f(P,[["render",Y],["__cssModules",F]]);export{Ee as default};
2
- //# sourceMappingURL=NodeCreation-d8b71848.js.map
1
+ import{h as v,_ as f}from"./n8n-32ff1011.js";import{u as _,N as B,g as S,D as k,a as b,S as T}from"./index-d51fa68e.js";import{m as w}from"./pinia-36ab6235.js";import{d as E,aE as h,b as u,o as p,f as C,n as a,g as N,e as l,k as $,c as g,w as A,aF as D}from"./vendor-18a4b4e1.js";import"./esprima-next-8c7e8ff9.js";import"./luxon-19e1de07.js";import"./lodash-es-876af2e5.js";import"./@fortawesome/vue-fontawesome-f597912a.js";import"./@fortawesome/fontawesome-svg-core-984d6dde.js";import"./axios-da559357.js";import"./flatted-8b14da7d.js";import"./vue-i18n-c3b0f366.js";import"./uuid-cf522c50.js";import"./dateformat-40ed026e.js";import"./@jsplumb/util-98a92a84.js";import"./@jsplumb/core-0a463c13.js";import"./@jsplumb/common-fe415eb9.js";import"./@jsplumb/connector-bezier-53998944.js";import"./@jsplumb/browser-ui-70b0a0d6.js";import"./@n8n/codemirror-lang-sql-9a304659.js";import"./codemirror-lang-n8n-expression-47e67c3a.js";import"./codemirror-lang-html-n8n-4223f8c7.js";import"./fast-json-stable-stringify-fb9de5ed.js";import"./prettier-51497383.js";import"./@vueuse/core-60457efe.js";import"./timeago.js-a9e71aec.js";import"./qrcode.vue-338130ab.js";import"./file-saver-67c99cf2.js";import"./vue-json-pretty-38f00944.js";import"./humanize-duration-d6635c4f.js";import"./v3-infinite-loading-8fbfd594.js";import"./vue-agile-35d18cd7.js";import"./copy-to-clipboard-fcd72098.js";import"./vue3-touch-events-ee55ce04.js";import"./@fortawesome/free-solid-svg-icons-d79f1537.js";import"./@fortawesome/free-regular-svg-icons-74cb85f8.js";const I=h(async()=>v(()=>import("./NodeCreator-bda35007.js"),["assets/NodeCreator-bda35007.js","assets/index-d51fa68e.js","assets/vendor-18a4b4e1.js","assets/pinia-36ab6235.js","assets/n8n-32ff1011.js","assets/esprima-next-8c7e8ff9.js","assets/luxon-19e1de07.js","assets/lodash-es-876af2e5.js","assets/@fortawesome/vue-fontawesome-f597912a.js","assets/@fortawesome/fontawesome-svg-core-984d6dde.js","assets/n8n-dc7cfc9d.css","assets/axios-da559357.js","assets/flatted-8b14da7d.js","assets/vue-i18n-c3b0f366.js","assets/uuid-cf522c50.js","assets/dateformat-40ed026e.js","assets/@jsplumb/util-98a92a84.js","assets/@jsplumb/core-0a463c13.js","assets/@jsplumb/common-fe415eb9.js","assets/@jsplumb/connector-bezier-53998944.js","assets/@jsplumb/browser-ui-70b0a0d6.js","assets/@n8n/codemirror-lang-sql-9a304659.js","assets/codemirror-lang-n8n-expression-47e67c3a.js","assets/codemirror-lang-html-n8n-4223f8c7.js","assets/fast-json-stable-stringify-fb9de5ed.js","assets/prettier-51497383.js","assets/@vueuse/core-60457efe.js","assets/timeago.js-a9e71aec.js","assets/qrcode.vue-338130ab.js","assets/file-saver-67c99cf2.js","assets/vue-json-pretty-38f00944.js","assets/humanize-duration-d6635c4f.js","assets/v3-infinite-loading-8fbfd594.js","assets/vue-agile-35d18cd7.js","assets/vue-agile-d964f598.css","assets/copy-to-clipboard-fcd72098.js","assets/vue3-touch-events-ee55ce04.js","assets/@fortawesome/free-solid-svg-icons-d79f1537.js","assets/@fortawesome/free-regular-svg-icons-74cb85f8.js","assets/index-af6b1dd8.css","assets/NodeCreator-69549990.css"])),P=E({name:"node-creation",components:{NodeCreator:I},props:{nodeViewScale:{type:Number,required:!0},createNodeActive:{type:Boolean,default:!1}},data(){return{showStickyButton:!1}},computed:{...w(_)},methods:{onCreateMenuHoverIn(e){const t=e.target;this.showStickyButton=!0;const d=o=>{if(t){const r=t.getBoundingClientRect(),c=r.height,s=r.width,i=r.left,n=i+s,m=r.top,y=m+c;o.pageX>i&&o.pageX<n&&o.pageY>m&&o.pageY<y||(this.showStickyButton=!1,document.removeEventListener("mousemove",d,!1))}};document.addEventListener("mousemove",d,!1)},openNodeCreator(){this.$emit("toggleNodeCreator",{source:B.ADD_NODE_BUTTON,createNodeActive:!0})},addStickyNote(){document.activeElement&&document.activeElement.blur();const e=[...this.uiStore.nodeViewOffsetPosition],t=S(this.nodeViewScale,e);t[0]-=k/2,t[1]-=b/2,this.$emit("addNode",[{nodeTypeName:T,position:t}])},closeNodeCreator(){this.$emit("toggleNodeCreator",{createNodeActive:!1})},nodeTypeSelected(e){this.$emit("addNode",e.map(t=>({nodeTypeName:t}))),this.closeNodeCreator()}}}),O="_nodeButtonsWrapper_q5bvi_5",V="_addStickyButton_q5bvi_14",q="_visibleButton_q5bvi_21",H="_noEvents_q5bvi_26",L="_nodeCreatorButton_q5bvi_30",M="_nodeCreatorPlus_q5bvi_47",W={nodeButtonsWrapper:O,addStickyButton:V,visibleButton:q,noEvents:H,nodeCreatorButton:L,nodeCreatorPlus:M};function Y(e,t,d,o,r,c){const s=u("n8n-icon-button"),i=u("NodeCreator");return p(),C("div",null,[e.createNodeActive?$("",!0):(p(),C("div",{key:0,class:a([e.$style.nodeButtonsWrapper,e.showStickyButton?e.$style.noEvents:""]),onMouseenter:t[1]||(t[1]=(...n)=>e.onCreateMenuHoverIn&&e.onCreateMenuHoverIn(...n))},[N("div",{class:a(e.$style.nodeCreatorButton),"data-test-id":"node-creator-plus-button"},[l(s,{size:"xlarge",icon:"plus",type:"tertiary",class:a(e.$style.nodeCreatorPlus),onClick:e.openNodeCreator,title:e.$locale.baseText("nodeView.addNode")},null,8,["class","onClick","title"]),N("div",{class:a([e.$style.addStickyButton,e.showStickyButton?e.$style.visibleButton:""]),onClick:t[0]||(t[0]=(...n)=>e.addStickyNote&&e.addStickyNote(...n)),"data-test-id":"add-sticky-button"},[l(s,{type:"tertiary",icon:["far","note-sticky"],title:e.$locale.baseText("nodeView.addSticky")},null,8,["title"])],2)],2)],34)),(p(),g(D,null,{default:A(()=>[l(i,{active:e.createNodeActive,onNodeTypeSelected:e.nodeTypeSelected,onCloseNodeCreator:e.closeNodeCreator},null,8,["active","onNodeTypeSelected","onCloseNodeCreator"])]),_:1}))])}const F={$style:W},Ee=f(P,[["render",Y],["__cssModules",F]]);export{Ee as default};
2
+ //# sourceMappingURL=NodeCreation-281567a5.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"kgDAmDA,MAAMA,EAAcC,EACnB,eAAY,OAAO,2BAA+C,k9CACnE,EAEAC,EAAeC,EAAgB,CAC9B,KAAM,gBACN,WAAY,CACX,YAAAH,CACD,EACA,MAAO,CACN,cAAe,CACd,KAAM,OACN,SAAU,EACX,EACA,iBAAkB,CACjB,KAAM,QACN,QAAS,EACV,CACD,EACA,MAAO,CACC,OACN,iBAAkB,GAEpB,EACA,SAAU,CACT,GAAGI,EAAUC,CAAU,CACxB,EACA,QAAS,CACR,oBAAoBC,EAA0B,CAC7C,MAAMC,EAAiBD,EAAa,OAGpC,KAAK,iBAAmB,GAClB,MAAAE,EAAgBC,GAA+B,CACpD,GAAIF,EAAgB,CACb,MAAAG,EAAgBH,EAAe,wBAC/BI,EAAWD,EAAc,OACzBE,EAAWF,EAAc,MACzBG,EAAkBH,EAAc,KAChCI,EAAiBD,EAAkBD,EACnCG,EAAiBL,EAAc,IAC/BM,EAAgBD,EAAiBJ,EAEtCF,EAAe,MAAQI,GACvBJ,EAAe,MAAQK,GACvBL,EAAe,MAAQM,GACvBN,EAAe,MAAQO,IAEvB,KAAK,iBAAmB,GACf,6BAAoB,YAAaR,EAAc,EAAK,EAE/D,GAEQ,0BAAiB,YAAaA,EAAc,EAAK,CAC3D,EACA,iBAAkB,CACjB,KAAK,MAAM,oBAAqB,CAC/B,OAAQS,EAA0B,gBAClC,iBAAkB,GAClB,CACF,EACA,eAAgB,CACX,SAAS,eACX,SAAS,cAA8B,OAGzC,MAAMC,EAA2B,CAAC,GAAG,KAAK,QAAQ,sBAAsB,EAElEC,EAAWC,EAAqB,KAAK,cAAeF,CAAM,EACvDC,EAAA,CAAC,GAAKE,EAAuB,EAC7BF,EAAA,CAAC,GAAKG,EAAwB,EAEvC,KAAK,MAAM,UAAW,CACrB,CACC,aAAcC,EACd,SAAAJ,CACD,EACA,CACF,EACA,kBAAmB,CAClB,KAAK,MAAM,oBAAqB,CAAE,iBAAkB,EAAO,EAC5D,EACA,iBAAiBK,EAAyB,CACpC,WACJ,UACAA,EAAc,IAAKC,IAAkB,CAAE,aAAAA,CAAe,KAEvD,KAAK,iBAAiB,CACvB,CACD,CACD,CAAC,oVA5IAC,EAmCM,0BAlCLC,EA0BM,YAAAC,EAAA,iBAMHC,EAAA,QANGC,EAAA,IAxBI,MAAO,CACf,YAAAC,EAAA,CAAAH,EAAA,0BAAAA,EAAA,iBAAAA,EAAA,qBAED,aAoBMI,EAAA,KAAAA,EAAA,OAAAC,IAAAL,EAAA,qBAAAA,EAAA,uBAAAK,CAAA,KApB8CC,EAAA,aAAAH,EAAAH,EAAA,0BACnD,eAOE,+BALIO,EAAM,CACX,KAAK,SACJ,KAAK,OACL,gBACA,MAAOJ,EAAQH,EAAQ,gCAAAA,EAAA,gBAEzB,MAUMA,EAAA,sCATJ,KAAK,qBAAG,OAAO,GACVM,EAAA,OACN,QAAa,CAAmBN,EAAA,uBAAAA,EAAA,iBAAAA,EAAA,kCAAAI,EAAA,KAAAA,EAAA,OAAAC,IAAAL,EAAA,eAAAA,EAAA,iBAAAK,CAAA,GAEhC,eAIE,wBAFME,EAAsB,CAC5B,KAAK,+GAUP,QAAAL,IAAAM,EAAAC,EAAA,cAHAC,EAAQ,KAAAC,EACRC,EAAkB,CAClB,OAAAZ,EAAA,oCAAAA,EAAA","names":["NodeCreator","defineAsyncComponent","_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","_resolveComponent","_createElementBlock","_ctx","_createCommentVNode","_openBlock","_normalizeClass","_cache","args","_createElementVNode","_component_n8n_icon_button","_createBlock","_Suspense","_withCtx","_createVNode","_component_NodeCreator"],"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\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<Suspense>\n\t\t\t<NodeCreator\n\t\t\t\t:active=\"createNodeActive\"\n\t\t\t\t@nodeTypeSelected=\"nodeTypeSelected\"\n\t\t\t\t@closeNodeCreator=\"closeNodeCreator\"\n\t\t\t/>\n\t\t</Suspense>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineAsyncComponent, 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\nconst NodeCreator = defineAsyncComponent(\n\tasync () => import('@/components/Node/NodeCreator/NodeCreator.vue'),\n);\n\nexport default defineComponent({\n\tname: 'node-creation',\n\tcomponents: {\n\t\tNodeCreator,\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: absolute;\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: absolute;\n\ttext-align: center;\n\ttop: 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"],"file":"assets/NodeCreation-d8b71848.js"}
1
+ {"version":3,"mappings":"kgDAmDA,MAAMA,EAAcC,EACnB,eAAY,OAAO,2BAA+C,k9CACnE,EAEAC,EAAeC,EAAgB,CAC9B,KAAM,gBACN,WAAY,CACX,YAAAH,CACD,EACA,MAAO,CACN,cAAe,CACd,KAAM,OACN,SAAU,EACX,EACA,iBAAkB,CACjB,KAAM,QACN,QAAS,EACV,CACD,EACA,MAAO,CACC,OACN,iBAAkB,GAEpB,EACA,SAAU,CACT,GAAGI,EAAUC,CAAU,CACxB,EACA,QAAS,CACR,oBAAoBC,EAA0B,CAC7C,MAAMC,EAAiBD,EAAa,OAGpC,KAAK,iBAAmB,GAClB,MAAAE,EAAgBC,GAA+B,CACpD,GAAIF,EAAgB,CACb,MAAAG,EAAgBH,EAAe,wBAC/BI,EAAWD,EAAc,OACzBE,EAAWF,EAAc,MACzBG,EAAkBH,EAAc,KAChCI,EAAiBD,EAAkBD,EACnCG,EAAiBL,EAAc,IAC/BM,EAAgBD,EAAiBJ,EAEtCF,EAAe,MAAQI,GACvBJ,EAAe,MAAQK,GACvBL,EAAe,MAAQM,GACvBN,EAAe,MAAQO,IAEvB,KAAK,iBAAmB,GACf,6BAAoB,YAAaR,EAAc,EAAK,EAE/D,GAEQ,0BAAiB,YAAaA,EAAc,EAAK,CAC3D,EACA,iBAAkB,CACjB,KAAK,MAAM,oBAAqB,CAC/B,OAAQS,EAA0B,gBAClC,iBAAkB,GAClB,CACF,EACA,eAAgB,CACX,SAAS,eACX,SAAS,cAA8B,OAGzC,MAAMC,EAA2B,CAAC,GAAG,KAAK,QAAQ,sBAAsB,EAElEC,EAAWC,EAAqB,KAAK,cAAeF,CAAM,EACvDC,EAAA,CAAC,GAAKE,EAAuB,EAC7BF,EAAA,CAAC,GAAKG,EAAwB,EAEvC,KAAK,MAAM,UAAW,CACrB,CACC,aAAcC,EACd,SAAAJ,CACD,EACA,CACF,EACA,kBAAmB,CAClB,KAAK,MAAM,oBAAqB,CAAE,iBAAkB,EAAO,EAC5D,EACA,iBAAiBK,EAAyB,CACpC,WACJ,UACAA,EAAc,IAAKC,IAAkB,CAAE,aAAAA,CAAe,KAEvD,KAAK,iBAAiB,CACvB,CACD,CACD,CAAC,oVA5IAC,EAmCM,0BAlCLC,EA0BM,YAAAC,EAAA,iBAMHC,EAAA,QANGC,EAAA,IAxBI,MAAO,CACf,YAAAC,EAAA,CAAAH,EAAA,0BAAAA,EAAA,iBAAAA,EAAA,qBAED,aAoBMI,EAAA,KAAAA,EAAA,OAAAC,IAAAL,EAAA,qBAAAA,EAAA,uBAAAK,CAAA,KApB8CC,EAAA,aAAAH,EAAAH,EAAA,0BACnD,eAOE,+BALIO,EAAM,CACX,KAAK,SACJ,KAAK,OACL,gBACA,MAAOJ,EAAQH,EAAQ,gCAAAA,EAAA,gBAEzB,MAUMA,EAAA,sCATJ,KAAK,qBAAG,OAAO,GACVM,EAAA,OACN,QAAa,CAAmBN,EAAA,uBAAAA,EAAA,iBAAAA,EAAA,kCAAAI,EAAA,KAAAA,EAAA,OAAAC,IAAAL,EAAA,eAAAA,EAAA,iBAAAK,CAAA,GAEhC,eAIE,wBAFME,EAAsB,CAC5B,KAAK,+GAUP,QAAAL,IAAAM,EAAAC,EAAA,cAHAC,EAAQ,KAAAC,EACRC,EAAkB,CAClB,OAAAZ,EAAA,oCAAAA,EAAA","names":["NodeCreator","defineAsyncComponent","_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","_resolveComponent","_createElementBlock","_ctx","_createCommentVNode","_openBlock","_normalizeClass","_cache","args","_createElementVNode","_component_n8n_icon_button","_createBlock","_Suspense","_withCtx","_createVNode","_component_NodeCreator"],"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\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<Suspense>\n\t\t\t<NodeCreator\n\t\t\t\t:active=\"createNodeActive\"\n\t\t\t\t@nodeTypeSelected=\"nodeTypeSelected\"\n\t\t\t\t@closeNodeCreator=\"closeNodeCreator\"\n\t\t\t/>\n\t\t</Suspense>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineAsyncComponent, 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\nconst NodeCreator = defineAsyncComponent(\n\tasync () => import('@/components/Node/NodeCreator/NodeCreator.vue'),\n);\n\nexport default defineComponent({\n\tname: 'node-creation',\n\tcomponents: {\n\t\tNodeCreator,\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: absolute;\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: absolute;\n\ttext-align: center;\n\ttop: 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"],"file":"assets/NodeCreation-281567a5.js"}