UNPKG

exec-copy

Version:

Copy text to clipboard using execCommand('copy') on Web browser

26 lines (25 loc) 3.57 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = copy; function copy(str, onError) { if (typeof str !== 'string') return; if (!window || !document) return; var textarea = document.createElement('textarea'); document.body.appendChild(textarea); textarea.setAttribute('readonly', true); textarea.style.position = 'absolute'; textarea.style.left = '-1000px'; textarea.style.top = (window.scrollY || document.body.scrollTop) + 'px'; textarea.value = str; textarea.focus(); textarea.setSelectionRange(0, str.length); var result = typeof document.execCommand === 'function' && document.execCommand('copy'); document.body.removeChild(textarea); if (!result) { if (typeof onError === 'function') onError(str);else window.prompt('Copy', str); // fallback } return result; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJjb3B5Iiwic3RyIiwib25FcnJvciIsIndpbmRvdyIsImRvY3VtZW50IiwidGV4dGFyZWEiLCJjcmVhdGVFbGVtZW50IiwiYm9keSIsImFwcGVuZENoaWxkIiwic2V0QXR0cmlidXRlIiwic3R5bGUiLCJwb3NpdGlvbiIsImxlZnQiLCJ0b3AiLCJzY3JvbGxZIiwic2Nyb2xsVG9wIiwidmFsdWUiLCJmb2N1cyIsInNldFNlbGVjdGlvblJhbmdlIiwibGVuZ3RoIiwicmVzdWx0IiwiZXhlY0NvbW1hbmQiLCJyZW1vdmVDaGlsZCIsInByb21wdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBQXdCQSxJO0FBQVQsU0FBU0EsSUFBVCxDQUFlQyxHQUFmLEVBQW9CQyxPQUFwQixFQUE2QjtBQUMxQyxNQUFJLE9BQU9ELEdBQVAsS0FBZSxRQUFuQixFQUE2QjtBQUM3QixNQUFJLENBQUNFLE1BQUQsSUFBVyxDQUFDQyxRQUFoQixFQUEwQjtBQUMxQixNQUFNQyxXQUFXRCxTQUFTRSxhQUFULENBQXVCLFVBQXZCLENBQWpCO0FBQ0FGLFdBQVNHLElBQVQsQ0FBY0MsV0FBZCxDQUEwQkgsUUFBMUI7QUFDQUEsV0FBU0ksWUFBVCxDQUFzQixVQUF0QixFQUFrQyxJQUFsQztBQUNBSixXQUFTSyxLQUFULENBQWVDLFFBQWYsR0FBMEIsVUFBMUI7QUFDQU4sV0FBU0ssS0FBVCxDQUFlRSxJQUFmLEdBQXNCLFNBQXRCO0FBQ0FQLFdBQVNLLEtBQVQsQ0FBZUcsR0FBZixHQUFxQixDQUFDVixPQUFPVyxPQUFQLElBQWtCVixTQUFTRyxJQUFULENBQWNRLFNBQWpDLElBQThDLElBQW5FO0FBQ0FWLFdBQVNXLEtBQVQsR0FBaUJmLEdBQWpCO0FBQ0FJLFdBQVNZLEtBQVQ7QUFDQVosV0FBU2EsaUJBQVQsQ0FBMkIsQ0FBM0IsRUFBOEJqQixJQUFJa0IsTUFBbEM7QUFDQSxNQUFNQyxTQUNFLE9BQU9oQixTQUFTaUIsV0FBaEIsS0FBZ0MsVUFBaEMsSUFDQWpCLFNBQVNpQixXQUFULENBQXFCLE1BQXJCLENBRlI7QUFHQWpCLFdBQVNHLElBQVQsQ0FBY2UsV0FBZCxDQUEwQmpCLFFBQTFCO0FBQ0EsTUFBSSxDQUFDZSxNQUFMLEVBQWE7QUFDWCxRQUFJLE9BQU9sQixPQUFQLEtBQW1CLFVBQXZCLEVBQW1DQSxRQUFRRCxHQUFSLEVBQW5DLEtBQ0tFLE9BQU9vQixNQUFQLENBQWMsTUFBZCxFQUFzQnRCLEdBQXRCLEVBRk0sQ0FFcUI7QUFDakM7QUFDRCxTQUFPbUIsTUFBUDtBQUNEIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29weSAoc3RyLCBvbkVycm9yKSB7XG4gIGlmICh0eXBlb2Ygc3RyICE9PSAnc3RyaW5nJykgcmV0dXJuXG4gIGlmICghd2luZG93IHx8ICFkb2N1bWVudCkgcmV0dXJuXG4gIGNvbnN0IHRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKVxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRleHRhcmVhKVxuICB0ZXh0YXJlYS5zZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5JywgdHJ1ZSlcbiAgdGV4dGFyZWEuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnXG4gIHRleHRhcmVhLnN0eWxlLmxlZnQgPSAnLTEwMDBweCdcbiAgdGV4dGFyZWEuc3R5bGUudG9wID0gKHdpbmRvdy5zY3JvbGxZIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wKSArICdweCdcbiAgdGV4dGFyZWEudmFsdWUgPSBzdHJcbiAgdGV4dGFyZWEuZm9jdXMoKVxuICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZSgwLCBzdHIubGVuZ3RoKVxuICBjb25zdCByZXN1bHQgPVxuICAgICAgICAgIHR5cGVvZiBkb2N1bWVudC5leGVjQ29tbWFuZCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5JylcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXh0YXJlYSlcbiAgaWYgKCFyZXN1bHQpIHtcbiAgICBpZiAodHlwZW9mIG9uRXJyb3IgPT09ICdmdW5jdGlvbicpIG9uRXJyb3Ioc3RyKVxuICAgIGVsc2Ugd2luZG93LnByb21wdCgnQ29weScsIHN0cikgLy8gZmFsbGJhY2tcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXX0=