index.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. "use strict";
  2. var __importDefault = (this && this.__importDefault) || function (mod) {
  3. return (mod && mod.__esModule) ? mod : { "default": mod };
  4. };
  5. Object.defineProperty(exports, "__esModule", { value: true });
  6. const clipboard_1 = __importDefault(require("clipboard"));
  7. exports.default = (opts) => {
  8. // default appendToBody true
  9. const appendToBody = (opts === null || opts === void 0 ? void 0 : opts.appendToBody) === undefined ? true : opts.appendToBody;
  10. return {
  11. toClipboard(text, container) {
  12. return new Promise((resolve, reject) => {
  13. // make fake element
  14. const fakeEl = document.createElement('button');
  15. // setup a new Clipboard.js
  16. const clipboard = new clipboard_1.default(fakeEl, {
  17. text: () => text,
  18. action: () => 'copy',
  19. container: container !== undefined ? container : document.body
  20. });
  21. clipboard.on('success', (e) => {
  22. clipboard.destroy();
  23. resolve(e);
  24. });
  25. clipboard.on('error', (e) => {
  26. clipboard.destroy();
  27. reject(e);
  28. });
  29. // appendToBody fixes IE
  30. if (appendToBody)
  31. document.body.appendChild(fakeEl);
  32. // simulate click
  33. fakeEl.click();
  34. // remove from body if appended
  35. if (appendToBody)
  36. document.body.removeChild(fakeEl);
  37. });
  38. }
  39. };
  40. };
  41. //# sourceMappingURL=index.js.map