1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-06 18:18:53 +08:00
Files
sqliteviz/src/lib/utils/clipboardIo.js
2021-08-28 19:07:10 +02:00

39 lines
930 B
JavaScript

import Lib from 'plotly.js/src/lib'
import dataUrlToBlob from 'dataurl-to-blob'
async function _copyBlob (blob) {
await navigator.clipboard.write([
new ClipboardItem({ // eslint-disable-line no-undef
[blob.type]: 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 copyImage (source) {
if (source instanceof HTMLCanvasElement) {
return _copyCanvas(source)
} else {
return _copyFromDataUrl(source)
}
}
}