clipboardjs.js (925B)
1 var Clipboard = require('clipboard/dist/clipboard.js'); 2 new Clipboard('.copy', { 3 target: function(trigger) { 4 if(trigger.classList.contains('copy-toggle')){ 5 return trigger.previousElementSibling; 6 } 7 return trigger.nextElementSibling; 8 } 9 }).on('success', function(e) { 10 successMessage(e.trigger, 'Copied!'); 11 e.clearSelection(); 12 }).on('error', function(e) { 13 successMessage(e.trigger, fallbackMessage(e.action)); 14 }); 15 16 function successMessage(elem, msg) { 17 elem.setAttribute('class', 'copied bg-primary-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2'); 18 elem.setAttribute('aria-label', msg); 19 } 20 21 function fallbackMessage(elem, action) { 22 var actionMsg = ''; 23 var actionKey = (action === 'cut' ? 'X' : 'C'); 24 if (isMac) { 25 actionMsg = 'Press ⌘-' + actionKey; 26 } else { 27 actionMsg = 'Press Ctrl-' + actionKey; 28 } 29 return actionMsg; 30 }