diff --git a/src/components/LoadingDialog.vue b/src/components/LoadingDialog.vue new file mode 100644 index 0000000..190a6e6 --- /dev/null +++ b/src/components/LoadingDialog.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/src/lib/utils/clipboardIo.js b/src/lib/utils/clipboardIo.js index ab90263..f6620b7 100644 --- a/src/lib/utils/clipboardIo.js +++ b/src/lib/utils/clipboardIo.js @@ -9,22 +9,31 @@ async function _copyBlob (blob) { ]) } +async function _copyFromDataUrl (url) { + const blob = dataUrlToBlob(url) + await _copyBlob(blob) + Lib.notifier('Image copied to clipboard successfully', 'long') +} + +async function _copyCanvas (canvas) { + canvas.toBlob(async (blob) => { + await _copyBlob(blob) + Lib.notifier('Image copied to clipboard successfully', 'long') + }, 'image/png', 1) +} + export default { async copyCsv (str) { await navigator.clipboard.writeText(str) Lib.notifier('CSV copied to clipboard successfully', 'long') }, - async copyCanvas (canvas, type) { - canvas.toBlob(async (blob) => { - await _copyBlob(blob) - Lib.notifier('Image copied to clipboard successfully', 'long') - }, 'image/png', 1) - }, - - async copyFromDataUrl (url) { - const blob = dataUrlToBlob(url) - await _copyBlob(blob) - Lib.notifier('Image copied to clipboard successfully', 'long') + async copyImage (source) { + if (source instanceof HTMLCanvasElement) { + console.log('canvas') + return _copyCanvas(source) + } else { + return _copyFromDataUrl(source) + } } } diff --git a/src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue b/src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue index 1dc8a81..f6110dc 100644 --- a/src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue +++ b/src/views/Main/Workspace/Tabs/Tab/DataView/Chart/index.vue @@ -31,7 +31,6 @@ import PlotlyEditor from 'react-chart-editor' import chartHelper from '@/lib/chartHelper' import dereference from 'react-chart-editor/lib/lib/dereference' import fIo from '@/lib/utils/fileIo' -import cIo from '@/lib/utils/clipboardIo' export default { name: 'Chart', @@ -90,13 +89,12 @@ export default { return chartHelper.getOptionsForSave(this.state, this.dataSources) }, async saveAsPng () { - const url = await chartHelper.getImageDataUrl(this.$refs.plotlyEditor.$el, 'png') + const url = await this.prepareCopy() this.$emit('loadingImageCompleted') fIo.downloadFromUrl(url, 'chart') }, - async copyPngToClipboard () { - const url = await chartHelper.getImageDataUrl(this.$refs.plotlyEditor.$el, 'png') - cIo.copyFromDataUrl(url) + async prepareCopy () { + return await chartHelper.getImageDataUrl(this.$refs.plotlyEditor.$el, 'png') } } } diff --git a/src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue b/src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue index 953dcaa..f935e0a 100644 --- a/src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue +++ b/src/views/Main/Workspace/Tabs/Tab/DataView/Pivot/index.vue @@ -15,7 +15,6 @@