-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjquery.codemirror.min.js
1 lines (1 loc) · 1.84 KB
/
jquery.codemirror.min.js
1
!function(t){t.fn.codemirrorInit=function(e,r){t(this).init.prototype=t.extend({},t(this).init.prototype,{codemirror:function(){var e=this;return{setValue:function(r){for(var o=0;o<e.length;o++)t.data(e[o],"codemirror").setValue(r)},getValue:function(){if(this.length>1)throw new Error("Only one DOM element can be selected");return t.data(e[0],"codemirror").getValue()},setOption:function(r,o){t.each(e,function(e,n){t.data(n,"codemirror").setOption(r,o)})},setOptions:function(r){t.each(e,function(e,o){t.each(r,function(e,r){t.data(o,"codemirror").setOption(e,r)})})}}}});var o={mode:"text/html",lineNumbers:!0,lineWrapping:!0};function n(e,r){return t(e).is("["+r+"]")?r:t(e).is("["+r+"-config]")?r+"-config":null}function i(e){if(void 0===e)return{};var r=!0;try{t.parseJSON(e)}catch(t){r=!1}return r?t.parseJSON(e):{}}return this.each(function(){var a,c,d=t.extend({},o,e),s=i(null===(c=n(a=this,"codemirror"))?void 0:t(a).attr(c)),u=t.extend({},d,s);t.data(this,"codemirror",CodeMirror(this,u));var p,l,h=t.extend({},r,i(null===(l=n(p=this,"jquery-codemirror"))?void 0:t(p).attr(l)));t(this).children(".CodeMirror").css(h);var f=t("<div>"),m=t("<div>"),v=t('<div title="Copy to clipboard">');t(this).prepend(f.addClass("codemirror-buttons-wrapper").append(m.addClass("codemirror-buttons").append(v.addClass("codemirror-button").addClass("copy-to-clipboard")))),f.css("pointer-events","none"),v.css("pointer-events","auto"),t(this).mouseenter(function(){t(this).children(".codemirror-buttons-wrapper").first().show()}),t(this).mouseleave(function(){t(this).children(".codemirror-buttons-wrapper").first().hide()}),t(this).find(".copy-to-clipboard").click(function(){var e,r;e=t(this).parent().parent().parent().codemirror().getValue(),r=t("<textarea>"),t("body").append(r.css({opacity:0,zIndex:-9999})),r.val(e).select(),document.execCommand("copy"),r.remove()})})}}(jQuery);