File "markdownarea.min.js"

Full Path: /var/www/vhosts/hogsandbbqs.co.uk/httpdocs/vendor/uikit.v2.6/js/addons/markdownarea.min.js
File size: 8.05 KB
MIME-type: text/plain
Charset: utf-8

/*! UIkit 2.6.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */

!function(a){"function"==typeof define&&define.amd&&define("uikit-markdownarea",["uikit"],function(){return jQuery.UIkit.markdownarea||a(window,window.jQuery,window.jQuery.UIkit)}),window&&window.jQuery&&window.jQuery.UIkit&&a(window,window.jQuery,window.jQuery.UIkit)}(function(a,b,c){var d=function(a,c){var e=b(a);e.data("markdownarea")||(this.element=e,this.options=b.extend({},d.defaults,c),this.marked=this.options.marked||marked,this.CodeMirror=this.options.CodeMirror||CodeMirror,this.marked.setOptions({gfm:!0,tables:!0,breaks:!0,pedantic:!0,sanitize:!1,smartLists:!0,smartypants:!1,langPrefix:"lang-"}),this.init(),this.element.data("markdownarea",this))};b.extend(d.prototype,{init:function(){var a=this,e=d.template;e=e.replace(/\{\:lblPreview\}/g,this.options.lblPreview),e=e.replace(/\{\:lblCodeview\}/g,this.options.lblCodeview),this.markdownarea=b(e),this.content=this.markdownarea.find(".uk-markdownarea-content"),this.toolbar=this.markdownarea.find(".uk-markdownarea-toolbar"),this.preview=this.markdownarea.find(".uk-markdownarea-preview").children().eq(0),this.code=this.markdownarea.find(".uk-markdownarea-code"),this.element.before(this.markdownarea).appendTo(this.code),this.editor=this.CodeMirror.fromTextArea(this.element[0],this.options.codemirror),this.editor.markdownarea=this,this.editor.on("change",function(){var b=function(){var b=a.editor.getValue();a.currentvalue=String(b),a.element.trigger("markdownarea-before",[a]),a.applyPlugins(),a.marked(a.currentvalue,function(b,c){if(b)throw b;a.preview.html(c),a.element.val(a.editor.getValue()).trigger("markdownarea-update",[a])})};return b(),c.Utils.debounce(b,150)}()),this.code.find(".CodeMirror").css("height",this.options.height),this._buildtoolbar(),this.fit(),b(window).on("resize",c.Utils.debounce(function(){a.fit()},200));var f=a.preview.parent(),g=this.code.find(".CodeMirror-sizer"),h=this.code.find(".CodeMirror-scroll").on("scroll",c.Utils.debounce(function(){if("tab"!=a.markdownarea.attr("data-mode")){var b=g.height()-h.height(),c=f[0].scrollHeight-f.height(),d=c/b,e=h.scrollTop()*d;f.scrollTop(e)}},10));this.markdownarea.on("click",".uk-markdown-button-markdown, .uk-markdown-button-preview",function(c){c.preventDefault(),"tab"==a.markdownarea.attr("data-mode")&&(a.markdownarea.find(".uk-markdown-button-markdown, .uk-markdown-button-preview").removeClass("uk-active").filter(this).addClass("uk-active"),a.activetab=b(this).hasClass("uk-markdown-button-markdown")?"code":"preview",a.markdownarea.attr("data-active-tab",a.activetab))}),this.preview.parent().css("height",this.code.height())},applyPlugins:function(){var a=this,b=Object.keys(d.plugins),c=d.plugins;if(this.markers={},b.length){var e=this.currentvalue.split("\n");b.forEach(function(a){this.markers[a]=[]},this);for(var f=0,g=e.length;g>f;f++)!function(d){b.forEach(function(b){var f=0;e[d]=e[d].replace(c[b].identifier,function(){var e=c[b].cb({area:a,found:arguments,line:d,pos:f++,uid:[b,d,f,(new Date).getTime()+"RAND"+Math.ceil(1e5*Math.random())].join("-"),replace:function(a){var b=this.area.editor.getLine(this.line),c=b.indexOf(this.found[0]);end=c+this.found[0].length,this.area.editor.replaceRange(a,{line:this.line,ch:c},{line:this.line,ch:end})}});return e})})}(f);this.currentvalue=e.join("\n")}},_buildtoolbar:function(){if(this.options.toolbar&&this.options.toolbar.length){var a=this,c=[];this.options.toolbar.forEach(function(b){if(d.commands[b]){var e=d.commands[b].title?d.commands[b].title:b;c.push('<li><a data-markdownarea-cmd="'+b+'" title="'+e+'" data-uk-tooltip>'+d.commands[b].label+"</a></li>"),d.commands[b].shortcut&&a.registerShortcut(d.commands[b].shortcut,d.commands[b].action)}}),this.toolbar.html(c.join("\n")),this.markdownarea.on("click","a[data-markdownarea-cmd]",function(){var c=b(this).data("markdownareaCmd");!c||!d.commands[c]||a.activetab&&"code"!=a.activetab&&"fullscreen"!=c||d.commands[c].action.apply(a,[a.editor])})}},fit:function(){var a=this.options.mode;"split"==a&&this.markdownarea.width()<this.options.maxsplitsize&&(a="tab"),"tab"==a&&(this.activetab||(this.activetab="code",this.markdownarea.attr("data-active-tab",this.activetab)),this.markdownarea.find(".uk-markdown-button-markdown, .uk-markdown-button-preview").removeClass("uk-active").filter("code"==this.activetab?".uk-markdown-button-markdown":".uk-markdown-button-preview").addClass("uk-active")),this.editor.refresh(),this.preview.parent().css("height",this.code.height()),this.markdownarea.attr("data-mode",a)},registerShortcut:function(a,c){var d=this;a=b.isArray(a)?a:[a];for(var e=0,f=a.length;f>e;e++){var g={};g[a[e]]=function(){c.apply(d,[d.editor])},d.editor.addKeyMap(g)}},getMode:function(){var a=this.editor.getDoc().getCursor();return this.editor.getTokenAt(a).state.base.htmlState?"html":"markdown"}}),b.fn.markdownarea=function(a){return this.each(function(){var c=b(this);if(!c.data("markdownarea")){new d(c,a)}})};var e=function(a,b){var c=b.getSelection(),d=a.replace("$1",c);b.replaceSelection(d,"end")};return d.commands={fullscreen:{title:"Fullscreen",label:'<i class="uk-icon-expand"></i>',action:function(a){a.markdownarea.markdownarea.toggleClass("uk-markdownarea-fullscreen");var b=a.getWrapperElement();if(a.markdownarea.markdownarea.hasClass("uk-markdownarea-fullscreen"))a.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:b.style.width,height:b.style.height},b.style.width="",b.style.height=a.markdownarea.content.height()+"px",document.documentElement.style.overflow="hidden";else{document.documentElement.style.overflow="";var c=a.state.fullScreenRestore;b.style.width=c.width,b.style.height=c.height,window.scrollTo(c.scrollLeft,c.scrollTop)}a.refresh(),a.markdownarea.preview.parent().css("height",a.markdownarea.code.height())}},bold:{title:"Bold",label:'<i class="uk-icon-bold"></i>',shortcut:["Ctrl-B","Cmd-B"],action:function(a){e("html"==this.getMode()?"<strong>$1</strong>":"**$1**",a)}},italic:{title:"Italic",label:'<i class="uk-icon-italic"></i>',action:function(a){e("html"==this.getMode()?"<em>$1</em>":"*$1*",a)}},strike:{title:"Strikethrough",label:'<i class="uk-icon-strikethrough"></i>',action:function(a){e("html"==this.getMode()?"<del>$1</del>":"~~$1~~",a)}},blockquote:{title:"Blockquote",label:'<i class="uk-icon-quote-right"></i>',action:function(a){e("html"==this.getMode()?"<blockquote><p>$1</p></blockquote>":"> $1",a)}},link:{title:"Link",label:'<i class="uk-icon-link"></i>',action:function(a){e("html"==this.getMode()?'<a href="http://">$1</a>':"[$1](http://)",a)}},picture:{title:"Picture",label:'<i class="uk-icon-picture-o"></i>',action:function(a){e("html"==this.getMode()?'<img src="http://" alt="$1">':"![$1](http://)",a)}},listUl:{title:"Unordered List",label:'<i class="uk-icon-list-ul"></i>',action:function(a){"markdown"==this.getMode()&&e("* $1",a)}},listOl:{title:"Ordered List",label:'<i class="uk-icon-list-ol"></i>',action:function(a){"markdown"==this.getMode()&&e("1. $1",a)}}},d.defaults={mode:"split",height:500,maxsplitsize:1e3,codemirror:{mode:"gfm",tabMode:"indent",tabindex:"2",lineWrapping:!0,dragDrop:!1,autoCloseTags:!0,matchTags:!0},toolbar:["bold","italic","strike","link","picture","blockquote","listUl","listOl"],lblPreview:"Preview",lblCodeview:"Markdown"},d.template='<div class="uk-markdownarea uk-clearfix" data-mode="split"><div class="uk-markdownarea-navbar"><ul class="uk-markdownarea-navbar-nav uk-markdownarea-toolbar"></ul><div class="uk-markdownarea-navbar-flip"><ul class="uk-markdownarea-navbar-nav"><li class="uk-markdown-button-markdown"><a>{:lblCodeview}</a></li><li class="uk-markdown-button-preview"><a>{:lblPreview}</a></li><li><a data-markdownarea-cmd="fullscreen"><i class="uk-icon-expand"></i></a></li></ul></div></div><div class="uk-markdownarea-content"><div class="uk-markdownarea-code"></div><div class="uk-markdownarea-preview"><div></div></div></div></div>',d.plugins={},d.addPlugin=function(a,b,c){d.plugins[a]={identifier:b,cb:c}},c.markdownarea=d,b(function(){b("textarea[data-uk-markdownarea]").each(function(){var a,e=b(this);e.data("markdownarea")||(a=new d(e,c.Utils.options(e.attr("data-uk-markdownarea"))))})}),d});