diff --git a/package.json b/package.json index 0701703aeb..55954509ce 100755 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "license": "MIT", "readmeFilename": "README.md", "optionalDependencies": { - "clipboard": "^1.7.1" + "clipboard": "^2.0.0" }, "devDependencies": { "chai": "^2.3.0", diff --git a/plugins/copy-to-clipboard/prism-copy-to-clipboard.js b/plugins/copy-to-clipboard/prism-copy-to-clipboard.js index 44bb22a76e..0b185f4734 100644 --- a/plugins/copy-to-clipboard/prism-copy-to-clipboard.js +++ b/plugins/copy-to-clipboard/prism-copy-to-clipboard.js @@ -9,33 +9,29 @@ return; } - var Clipboard = window.Clipboard || undefined; + var ClipboardJS = window.ClipboardJS || undefined; - if (Clipboard && /(native code)/.test(Clipboard.toString())) { - Clipboard = undefined; - } - - if (!Clipboard && typeof require === 'function') { - Clipboard = require('clipboard'); + if (!ClipboardJS && typeof require === 'function') { + ClipboardJS = require('clipboard'); } var callbacks = []; - if (!Clipboard) { + if (!ClipboardJS) { var script = document.createElement('script'); var head = document.querySelector('head'); script.onload = function() { - Clipboard = window.Clipboard; + ClipboardJS = window.ClipboardJS; - if (Clipboard) { + if (ClipboardJS) { while (callbacks.length) { callbacks.pop()(); } } }; - script.src = 'https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js'; + script.src = 'https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js'; head.appendChild(script); } @@ -43,7 +39,7 @@ var linkCopy = document.createElement('a'); linkCopy.textContent = 'Copy'; - if (!Clipboard) { + if (!ClipboardJS) { callbacks.push(registerClipboard); } else { registerClipboard(); @@ -52,7 +48,7 @@ return linkCopy; function registerClipboard() { - var clip = new Clipboard(linkCopy, { + var clip = new ClipboardJS(linkCopy, { 'text': function () { return env.code; } diff --git a/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js b/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js index e594607974..aa5742db56 100644 --- a/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js +++ b/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js @@ -1 +1 @@ -!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."),void 0;var o=window.Clipboard||void 0;o&&/(native code)/.test(o.toString())&&(o=void 0),o||"function"!=typeof require||(o=require("clipboard"));var t=[];if(!o){var e=document.createElement("script"),n=document.querySelector("head");e.onload=function(){if(o=window.Clipboard)for(;t.length;)t.pop()()},e.src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js",n.appendChild(e)}Prism.plugins.toolbar.registerButton("copy-to-clipboard",function(e){function n(){var t=new o(i,{text:function(){return e.code}});t.on("success",function(){i.textContent="Copied!",r()}),t.on("error",function(){i.textContent="Press Ctrl+C to copy",r()})}function r(){setTimeout(function(){i.textContent="Copy"},5e3)}var i=document.createElement("a");return i.textContent="Copy",o?n():t.push(n),i})}}(); \ No newline at end of file +!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."),void 0;var o=window.ClipboardJS||void 0;o||"function"!=typeof require||(o=require("clipboard"));var e=[];if(!o){var t=document.createElement("script"),n=document.querySelector("head");t.onload=function(){if(o=window.ClipboardJS)for(;e.length;)e.pop()()},t.src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js",n.appendChild(t)}Prism.plugins.toolbar.registerButton("copy-to-clipboard",function(t){function n(){var e=new o(i,{text:function(){return t.code}});e.on("success",function(){i.textContent="Copied!",r()}),e.on("error",function(){i.textContent="Press Ctrl+C to copy",r()})}function r(){setTimeout(function(){i.textContent="Copy"},5e3)}var i=document.createElement("a");return i.textContent="Copy",o?n():e.push(n),i})}}(); \ No newline at end of file