UNPKG

vue-poster-editor

Version:

A poster editor based on Vue.js

81 lines (67 loc) 2.25 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _utils = require('./utils'); var _utils2 = _interopRequireDefault(_utils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function PasteImage(successCall, failCall) { function createImage(imageData, loaded) { var image = new Image(); image.crossOrigin = 'Anonymous'; image.onload = function () { loaded(this); }; image.src = imageData; return image; }; function doCopy(e) { if (_utils2.default.isEditable(e.target)) { return; } e.clipboardData.setData('text/plain', ''); e.preventDefault(); } function doCut(e) { return doCopy(e); } function doPaste(e) { if (_utils2.default.isEditable(e.target)) { return; }; if (e.clipboardData) { var items = e.clipboardData.items; var pasteImg = false; if (items) { [].slice.call(items).forEach(function (item) { if (item && item.type.indexOf('image') !== -1) { var blob = item.getAsFile(); var reader = new FileReader(); reader.onload = function (e) { createImage(e.target.result, successCall); }; reader.readAsDataURL(blob); e.preventDefault(); pasteImg = true; } }); } if (!pasteImg) { failCall(); } } } this.destroy = function () { document.removeEventListener('copy', doCopy, false); document.removeEventListener('cut', doCut, false); document.removeEventListener('paste', doPaste, false); }; this.init = function () { document.addEventListener('copy', doCopy, false); document.addEventListener('cut', doCut, false); document.addEventListener('paste', doPaste, false); }; this.init(); } exports.default = PasteImage; module.exports = exports['default'];