UNPKG

@modern-kit/utils

Version:
45 lines (40 loc) 1.51 kB
'use strict'; var fileConvertImageToBlob = require('../../file/convertImageToBlob/index.cjs'); var deviceIsClient = require('../../device/isClient/index.cjs'); var clipboardCopyClipboardText = require('../copyClipboardText/index.cjs'); require('../../device/isServer/index.cjs'); require('../copyFallbackClipboardText/index.cjs'); const copyFallbackImage = async (src) => { const response = await fetch(src); const textData = await response.text(); return clipboardCopyClipboardText.copyClipboardText(textData); }; async function copyClipboardImage(src, options) { if (!deviceIsClient.isClient()) { throw new Error("Cannot be executed unless it is a client environment."); } try { const hasNavigatorClipboard = "clipboard" in window.navigator; if (!hasNavigatorClipboard) { return copyFallbackImage(src); } const hasNavigatorClipboardWrite = "write" in window.navigator.clipboard; if (!hasNavigatorClipboardWrite) { return copyFallbackImage(src); } const toText = options?.toText ?? false; if (toText) { return copyFallbackImage(src); } const blobData = await fileConvertImageToBlob.convertImageToBlob(src, "png"); await navigator.clipboard.write([ new ClipboardItem({ [blobData.type]: blobData }) ]); return blobData; } catch (err) { console.error(`Failed to copy to clipboard. message: ${err.message}`); throw err; } } exports.copyClipboardImage = copyClipboardImage; //# sourceMappingURL=index.cjs.map