From 4906fafd980669cd91fc77d7f58d2e428155d70c Mon Sep 17 00:00:00 2001 From: Csaba Tuncsik Date: Thu, 29 Sep 2022 09:36:27 +0200 Subject: [PATCH] refactor(editor-ui): move json data view into its own component (#4158) * refactor(editor-ui): move json data view into its own component * fix(editor-ui): make JSON data component work again * fix(editor-ui): JSON data component type issues * fix(editor-ui): JSON data component prop 'inputData' * refactor(editor-ui): rename helper function * fix(editor-ui): add declaration to `vue-json-pretty` component * refactor(editor-ui): JSON mapping move more logic to new component * refactor(editor-ui): some cleanup in JSON mapping component * refactor(editor-ui): changing key mapping translation * refactor(editor-ui): add basic drag'n'drop functionality to JSON view * refactor(editor-ui): moving JSON view actions into separate components * fix(editor-ui): JSON view action copy default selected path * fix(editor-ui): refactor draggable to play nicer with other (3rd party) components * fix(editor-ui): improve draggable performance * fix(editor-ui): add disable user selection class to body * fix(editor-ui): reduce click handler cognitive load in JSON view copy actions * fix(editor-ui): JSON view mapped path * fix(editor-ui): remove unnecessary wrapper around RunDataTable.vue * fix(editor-ui): respect input node distance when json parameter path is copied * fix(editor-ui): JSON mapping property highlight * fix(editor-ui): block event only on mousemove for draggable to not select content * refactor(editor-ui): fixing prop types and organising imports * fix(editor-ui): JSON view use double quotes where appropriate * fix(editor-ui): fix new package additions after merge conflict * fix(editor-ui): fix package update after merge conflict * fix(editor-ui): JSON view prop names text break * fix(editor-ui): use kebab-case name for component * fix(editor-ui): calling convertPath on draggable node path --- package-lock.json | 229 +++++++++++- packages/editor-ui/package.json | 3 +- .../editor-ui/src/components/Draggable.vue | 87 ++--- .../src/components/PanelDragButton.vue | 5 +- packages/editor-ui/src/components/RunData.vue | 331 +++--------------- .../editor-ui/src/components/RunDataJson.vue | 291 +++++++++++++++ .../src/components/RunDataJsonActions.vue | 215 ++++++++++++ .../editor-ui/src/components/RunDataTable.vue | 35 +- packages/editor-ui/src/components/helpers.ts | 58 ++- .../src/declarations/vue-json-pretty.d.ts | 5 + .../src/plugins/i18n/locales/en.json | 2 +- 11 files changed, 902 insertions(+), 359 deletions(-) create mode 100644 packages/editor-ui/src/components/RunDataJson.vue create mode 100644 packages/editor-ui/src/components/RunDataJsonActions.vue create mode 100644 packages/editor-ui/src/declarations/vue-json-pretty.d.ts diff --git a/package-lock.json b/package-lock.json index 58157fcdba06e..f23d324e267bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26940,6 +26940,28 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/jsonschema": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", @@ -37423,6 +37445,90 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -40527,6 +40633,11 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, "node_modules/undertaker": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", @@ -42157,15 +42268,6 @@ "vue": ">=2" } }, - "node_modules/vue-json-pretty": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/vue-json-pretty/-/vue-json-pretty-1.7.1.tgz", - "integrity": "sha512-D7aHQ5XPooSAEndTkb/RvXXJdmuCjaj14IMRdJwO4q+yJMpzPv87FT2gz4Dt2mCr1EzFyat7z7Qv9R+l/1as+w==", - "engines": { - "node": ">= 10.0.0", - "npm": ">= 5.0.0" - } - }, "node_modules/vue-loader": { "version": "15.10.0", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.0.tgz", @@ -46784,6 +46886,7 @@ "file-saver": "^2.0.2", "flatted": "^3.2.4", "jquery": "^3.4.1", + "jsonpath": "^1.1.1", "jsplumb": "2.15.4", "lodash.camelcase": "^4.3.0", "lodash.debounce": "^4.0.8", @@ -46805,7 +46908,7 @@ "vue-agile": "^2.0.0", "vue-fragment": "1.5.1", "vue-i18n": "^8.26.7", - "vue-json-pretty": "1.7.1", + "vue-json-pretty": "1.9.2", "vue-prism-editor": "^0.3.0", "vue-router": "^3.0.6", "vue-template-compiler": "~2.6.11", @@ -47036,6 +47139,15 @@ "node": ">=10.12.0" } }, + "packages/editor-ui/node_modules/vue-json-pretty": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/vue-json-pretty/-/vue-json-pretty-1.9.2.tgz", + "integrity": "sha512-FHAYmZAazhVC6Wi+Zi9DVYha+oZb9uylJPGkl/yTYLxlqLMxmnaVC2R8ZwaYzt6TBGvkLe3Y2D2vgyJCDBJy1w==", + "engines": { + "node": ">= 10.0.0", + "npm": ">= 5.0.0" + } + }, "packages/editor-ui/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -69304,6 +69416,23 @@ "universalify": "^2.0.0" } }, + "jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "requires": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + }, + "dependencies": { + "esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==" + } + } + }, "jsonschema": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", @@ -71887,6 +72016,7 @@ "flatted": "^3.2.4", "jquery": "^3.4.1", "jshint": "^2.9.7", + "jsonpath": "^1.1.1", "jsplumb": "2.15.4", "lodash.camelcase": "^4.3.0", "lodash.debounce": "^4.0.8", @@ -71917,7 +72047,7 @@ "vue-agile": "^2.0.0", "vue-fragment": "1.5.1", "vue-i18n": "^8.26.7", - "vue-json-pretty": "1.7.1", + "vue-json-pretty": "1.9.2", "vue-prism-editor": "^0.3.0", "vue-router": "^3.0.6", "vue-template-compiler": "~2.6.11", @@ -72064,6 +72194,11 @@ "convert-source-map": "^1.6.0" } }, + "vue-json-pretty": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/vue-json-pretty/-/vue-json-pretty-1.9.2.tgz", + "integrity": "sha512-FHAYmZAazhVC6Wi+Zi9DVYha+oZb9uylJPGkl/yTYLxlqLMxmnaVC2R8ZwaYzt6TBGvkLe3Y2D2vgyJCDBJy1w==" + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -78553,6 +78688,68 @@ "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", "dev": true }, + "static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "requires": { + "escodegen": "^1.8.1" + }, + "dependencies": { + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -80834,6 +81031,11 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, "undertaker": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", @@ -82077,11 +82279,6 @@ "integrity": "sha512-hQN3mzLmWM33Ua2Oua5OgF8/BJjP6+T1Wzea5xHDRYCwVvJo2pxSJLhVqluaeBe3PB5vquMddceaKC4mhLe25A==", "dev": true }, - "vue-json-pretty": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/vue-json-pretty/-/vue-json-pretty-1.7.1.tgz", - "integrity": "sha512-D7aHQ5XPooSAEndTkb/RvXXJdmuCjaj14IMRdJwO4q+yJMpzPv87FT2gz4Dt2mCr1EzFyat7z7Qv9R+l/1as+w==" - }, "vue-loader": { "version": "15.10.0", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.0.tgz", diff --git a/packages/editor-ui/package.json b/packages/editor-ui/package.json index c87a24d279b91..a7caf40dbf1af 100644 --- a/packages/editor-ui/package.json +++ b/packages/editor-ui/package.json @@ -36,6 +36,7 @@ "file-saver": "^2.0.2", "flatted": "^3.2.4", "jquery": "^3.4.1", + "jsonpath": "^1.1.1", "jsplumb": "2.15.4", "lodash.camelcase": "^4.3.0", "lodash.debounce": "^4.0.8", @@ -57,7 +58,7 @@ "vue-agile": "^2.0.0", "vue-fragment": "1.5.1", "vue-i18n": "^8.26.7", - "vue-json-pretty": "1.7.1", + "vue-json-pretty": "1.9.2", "vue-prism-editor": "^0.3.0", "vue-router": "^3.0.6", "vue-template-compiler": "~2.6.11", diff --git a/packages/editor-ui/src/components/Draggable.vue b/packages/editor-ui/src/components/Draggable.vue index 7e1f771f848ee..a10d82da87307 100644 --- a/packages/editor-ui/src/components/Draggable.vue +++ b/packages/editor-ui/src/components/Draggable.vue @@ -27,6 +27,7 @@ import Vue from 'vue'; import Teleport from 'vue2-teleport'; export default Vue.extend({ + name: 'draggable', components: { Teleport, }, @@ -49,22 +50,22 @@ export default Vue.extend({ }, }, data() { + const draggablePosition = { + x: -100, + y: -100, + }; + return { isDragging: false, - draggablePosition: { - x: -100, - y: -100, - }, + draggablePosition, draggingEl: null as null | HTMLElement, + draggableStyle: { + transform: `translate(${draggablePosition.x}px, ${draggablePosition.y}px)`, + }, + animationFrameId: 0, }; }, computed: { - draggableStyle(): { top: string; left: string; } { - return { - top: `${this.draggablePosition.y}px`, - left: `${this.draggablePosition.x}px`, - }; - }, canDrop(): boolean { return this.$store.getters['ui/canDraggableDrop']; }, @@ -73,61 +74,65 @@ export default Vue.extend({ }, }, methods: { - onDragStart(e: DragEvent) { + setDraggableStyle() { + this.draggableStyle = { + transform: `translate(${this.draggablePosition.x}px, ${this.draggablePosition.y}px)`, + }; + }, + onDragStart(e: MouseEvent) { if (this.disabled) { return; } - const target = e.target as HTMLElement; - if (this.targetDataKey && target && target.dataset.target !== this.targetDataKey) { + this.draggingEl = e.target as HTMLElement; + if (this.targetDataKey && this.draggingEl && this.draggingEl.dataset.target !== this.targetDataKey) { return; } - this.draggingEl = target; - - e.preventDefault(); - e.stopPropagation(); - this.isDragging = true; - - const data = this.targetDataKey ? target.dataset.value : (this.data || ''); - this.$store.commit('ui/draggableStartDragging', {type: this.type, data }); - - this.$emit('dragstart', this.draggingEl); - document.body.style.cursor = 'grabbing'; + this.isDragging = false; + this.draggablePosition = { x: e.pageX, y: e.pageY }; + this.setDraggableStyle(); window.addEventListener('mousemove', this.onDrag); window.addEventListener('mouseup', this.onDragEnd); - - this.draggablePosition = { x: e.pageX, y: e.pageY }; }, onDrag(e: MouseEvent) { + e.preventDefault(); + e.stopPropagation(); + if (this.disabled) { return; } - e.preventDefault(); - e.stopPropagation(); + if(!this.isDragging) { + this.isDragging = true; - if (this.canDrop && this.stickyPosition) { - this.draggablePosition = { x: this.stickyPosition[0], y: this.stickyPosition[1]}; - } - else { - this.draggablePosition = { x: e.pageX, y: e.pageY }; + const data = this.targetDataKey && this.draggingEl ? this.draggingEl.dataset.value : (this.data || ''); + this.$store.commit('ui/draggableStartDragging', {type: this.type, data }); + + this.$emit('dragstart', this.draggingEl); + document.body.style.cursor = 'grabbing'; } - this.$emit('drag', this.draggablePosition); + this.animationFrameId = window.requestAnimationFrame(() => { + if (this.canDrop && this.stickyPosition) { + this.draggablePosition = { x: this.stickyPosition[0], y: this.stickyPosition[1]}; + } else { + this.draggablePosition = { x: e.pageX, y: e.pageY }; + } + this.setDraggableStyle(); + this.$emit('drag', this.draggablePosition); + }); }, - onDragEnd(e: MouseEvent) { + onDragEnd() { if (this.disabled) { return; } - e.preventDefault(); - e.stopPropagation(); - document.body.style.cursor = 'unset'; window.removeEventListener('mousemove', this.onDrag); window.removeEventListener('mouseup', this.onDragEnd); + window.cancelAnimationFrame(this.animationFrameId); setTimeout(() => { this.$emit('dragend', this.draggingEl); @@ -149,10 +154,12 @@ export default Vue.extend({ .draggable { position: fixed; z-index: 9999999; + top: 0; + left: 0; } .draggable-data-transfer { - width: 0px; - height: 0px; + width: 0; + height: 0; } diff --git a/packages/editor-ui/src/components/PanelDragButton.vue b/packages/editor-ui/src/components/PanelDragButton.vue index 81094fd8fd6ad..4eba8703ef3b9 100644 --- a/packages/editor-ui/src/components/PanelDragButton.vue +++ b/packages/editor-ui/src/components/PanelDragButton.vue @@ -32,11 +32,10 @@ + + + + diff --git a/packages/editor-ui/src/components/RunDataJsonActions.vue b/packages/editor-ui/src/components/RunDataJsonActions.vue new file mode 100644 index 0000000000000..e160cb25e554e --- /dev/null +++ b/packages/editor-ui/src/components/RunDataJsonActions.vue @@ -0,0 +1,215 @@ + + + + + diff --git a/packages/editor-ui/src/components/RunDataTable.vue b/packages/editor-ui/src/components/RunDataTable.vue index 13e3d0ad59315..1aecf1bd9db66 100644 --- a/packages/editor-ui/src/components/RunDataTable.vue +++ b/packages/editor-ui/src/components/RunDataTable.vue @@ -1,5 +1,5 @@ - + - 1 ? 'dataMapping.mapAllKeysToField' - : 'dataMapping.mapSpecificColumnToField', + : 'dataMapping.mapKeyToField', { interpolate: { name: shorten(getPathNameFromTarget(el) || '', 16, 2) }, }, @@ -148,7 +148,7 @@ - + @@ -156,11 +156,11 @@