summernote.min.js
63.6 KB
/**
* Super simple wysiwyg editor on Bootstrap v0.6.0
* http://hackerwins.github.io/summernote/
* summernote.js
* Copyright 2013-2014 Alan Hong. and other contributors
* summernote may be freely distributed under the MIT license./
* Date: 2014-12-17T19:43Z
*/
(function(e){if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(window.jQuery)}})(function(e){if("function"!==typeof Array.prototype.reduce){Array.prototype.reduce=function(e,t){var n,r,i=this.length>>>0,s=false;if(1<arguments.length){r=t;s=true}for(n=0;i>n;++n){if(this.hasOwnProperty(n)){if(s){r=e(r,this[n],n,this)}else{r=this[n];s=true}}}if(!s){throw new TypeError("Reduce of empty array with no initial value")}return r}}if("function"!==typeof Array.prototype.filter){Array.prototype.filter=function(e){if(this===void 0||this===null){throw new TypeError}var t=Object(this);var n=t.length>>>0;if(typeof e!=="function"){throw new TypeError}var r=[];var i=arguments.length>=2?arguments[1]:void 0;for(var s=0;s<n;s++){if(s in t){var o=t[s];if(e.call(i,o,s,t)){r.push(o)}}}return r}}var t=typeof define==="function"&&define.amd;var n=function(t){var n=t==="Comic Sans MS"?"Courier New":"Comic Sans MS";var r=e("<div>").css({position:"absolute",left:"-9999px",top:"-9999px",fontSize:"200px"}).text("mmmmmmmmmwwwwwww").appendTo(document.body);var i=r.css("fontFamily",n).width();var s=r.css("fontFamily",t+","+n).width();r.remove();return i!==s};var r={isMac:navigator.appVersion.indexOf("Mac")>-1,isMSIE:navigator.userAgent.indexOf("MSIE")>-1||navigator.userAgent.indexOf("Trident")>-1,isFF:navigator.userAgent.indexOf("Firefox")>-1,jqueryVersion:parseFloat(e.fn.jquery),isSupportAmd:t,hasCodeMirror:t?require.specified("CodeMirror"):!!window.CodeMirror,isFontInstalled:n,isW3CRangeSupport:!!document.createRange};var i=function(){var t=function(e){return function(t){return e===t}};var n=function(e,t){return e===t};var r=function(e){return function(t,n){return t[e]===n[e]}};var i=function(){return true};var s=function(){return false};var o=function(e){return function(){return!e.apply(e,arguments)}};var u=function(e,t){return function(n){return e(n)&&t(n)}};var a=function(e){return e};var f=0;var l=function(e){var t=++f+"";return e?e+t:t};var c=function(t){var n=e(document);return{top:t.top+n.scrollTop(),left:t.left+n.scrollLeft(),width:t.right-t.left,height:t.bottom-t.top}};var h=function(e){var t={};for(var n in e){if(e.hasOwnProperty(n)){t[e[n]]=n}}return t};return{eq:t,eq2:n,peq2:r,ok:i,fail:s,self:a,not:o,and:u,uniqueId:l,rect2bnd:c,invertObject:h}}();var s=function(){var t=function(e){return e[0]};var n=function(e){return e[e.length-1]};var r=function(e){return e.slice(0,e.length-1)};var s=function(e){return e.slice(1)};var o=function(e,t){for(var n=0,r=e.length;n<r;n++){var i=e[n];if(t(i)){return i}}};var u=function(e,t){for(var n=0,r=e.length;n<r;n++){if(!t(e[n])){return false}}return true};var a=function(t,n){return e.inArray(n,t)!==-1};var f=function(e,t){t=t||i.self;return e.reduce(function(e,n){return e+t(n)},0)};var l=function(e){var t=[],n=-1,r=e.length;while(++n<r){t[n]=e[n]}return t};var c=function(e,r){if(!e.length){return[]}var i=s(e);return i.reduce(function(e,t){var i=n(e);if(r(n(i),t)){i[i.length]=t}else{e[e.length]=[t]}return e},[[t(e)]])};var h=function(e){var t=[];for(var n=0,r=e.length;n<r;n++){if(e[n]){t.push(e[n])}}return t};var p=function(e){var t=[];for(var n=0,r=e.length;n<r;n++){if(!a(t,e[n])){t.push(e[n])}}return t};var d=function(e,t){var n=e.indexOf(t);if(n===-1){return null}return e[n+1]};var v=function(e,t){var n=e.indexOf(t);if(n===-1){return null}return e[n-1]};return{head:t,last:n,initial:r,tail:s,prev:v,next:d,find:o,contains:a,all:u,sum:f,from:l,clusterBy:c,compact:h,unique:p}}();var o=String.fromCharCode(160);var u="";var a=function(){var t=function(t){return t&&e(t).hasClass("note-editable")};var n=function(t){return t&&e(t).hasClass("note-control-sizing")};var f=function(t){var n;if(t.hasClass("note-air-editor")){var r=s.last(t.attr("id").split("-"));n=function(t){return function(){return e(t+r)}};return{editor:function(){return t},editable:function(){return t},popover:n("#note-popover-"),handle:n("#note-handle-"),dialog:n("#note-dialog-")}}else{n=function(e){return function(){return t.find(e)}};return{editor:function(){return t},dropzone:n(".note-dropzone"),toolbar:n(".note-toolbar"),editable:n(".note-editable"),codable:n(".note-codable"),statusbar:n(".note-statusbar"),popover:n(".note-popover"),handle:n(".note-handle"),dialog:n(".note-dialog")}}};var l=function(e){e=e.toUpperCase();return function(t){return t&&t.nodeName.toUpperCase()===e}};var c=function(e){return e&&e.nodeType===3};var h=function(e){return e&&/^BR|^IMG|^HR/.test(e.nodeName.toUpperCase())};var p=function(e){if(t(e)){return false}return e&&/^DIV|^P|^LI|^H[1-7]/.test(e.nodeName.toUpperCase())};var d=l("LI");var v=function(e){return p(e)&&!d(e)};var m=function(e){return!w(e)&&!g(e)&&!p(e)};var g=function(e){return e&&/^UL|^OL/.test(e.nodeName.toUpperCase())};var y=function(e){return e&&/^TD|^TH/.test(e.nodeName.toUpperCase())};var b=l("BLOCKQUOTE");var w=function(e){return y(e)||b(e)||t(e)};var E=l("A");var S=function(e){return m(e)&&!!A(e,p)};var x=function(e){return m(e)&&!A(e,p)};var T=l("BODY");var N=r.isMSIE?" ":"<br>";var C=function(e){if(c(e)){return e.nodeValue.length}return e.childNodes.length};var k=function(e){var t=C(e);if(t===0){return true}else if(!a.isText(e)&&t===1&&e.innerHTML===N){return true}return false};var L=function(e){if(!h(e)&&!C(e)){e.innerHTML=N}};var A=function(e,n){while(e){if(n(e)){return e}if(t(e)){break}e=e.parentNode}return null};var O=function(e,n){n=n||i.fail;var r=[];A(e,function(e){if(!t(e)){r.push(e)}return n(e)});return r};var M=function(e,t){var n=O(e);return s.last(n.filter(t))};var _=function(t,n){var r=O(t);for(var i=n;i;i=i.parentNode){if(e.inArray(i,r)>-1){return i}}return null};var D=function(e,t){t=t||i.fail;var n=[];while(e){if(t(e)){break}n.push(e);e=e.previousSibling}return n};var P=function(e,t){t=t||i.fail;var n=[];while(e){if(t(e)){break}n.push(e);e=e.nextSibling}return n};var H=function(e,t){var n=[];t=t||i.ok;(function r(i){if(e!==i&&t(i)){n.push(i)}for(var s=0,o=i.childNodes.length;s<o;s++){r(i.childNodes[s])}})(e);return n};var B=function(t,n){var r=t.parentNode;var i=e("<"+n+">")[0];r.insertBefore(i,t);i.appendChild(t);return i};var j=function(e,t){var n=t.nextSibling,r=t.parentNode;if(n){r.insertBefore(e,n)}else{r.appendChild(e)}return e};var F=function(t,n){e.each(n,function(e,n){t.appendChild(n)});return t};var I=function(e){return e.offset===0};var q=function(e){return e.offset===C(e.node)};var R=function(e){return I(e)||q(e)};var U=function(e,t){while(e&&e!==t){if(W(e)!==0){return false}e=e.parentNode}return true};var z=function(e,t){while(e&&e!==t){if(W(e)!==C(e.parentNode)-1){return false}e=e.parentNode}return true};var W=function(e){var t=0;while(e=e.previousSibling){t+=1}return t};var X=function(e){return!!(e&&e.childNodes&&e.childNodes.length)};var V=function(e,n){var r,i;if(e.offset===0){if(t(e.node)){return null}r=e.node.parentNode;i=W(e.node)}else if(X(e.node)){r=e.node.childNodes[e.offset-1];i=C(r)}else{r=e.node;i=n?0:e.offset-1}return{node:r,offset:i}};var J=function(e,n){var r,i;if(C(e.node)===e.offset){if(t(e.node)){return null}r=e.node.parentNode;i=W(e.node)+1}else if(X(e.node)){r=e.node.childNodes[e.offset];i=0}else{r=e.node;i=n?C(e.node):e.offset+1}return{node:r,offset:i}};var K=function(e,t){return e.node===t.node&&e.offset===t.offset};var Q=function(e){if(c(e.node)||!X(e.node)||k(e.node)){return true}var t=e.node.childNodes[e.offset-1];var n=e.node.childNodes[e.offset];if((!t||h(t))&&(!n||h(n))){return true}return false};var G=function(e,t){while(e){if(t(e)){return e}e=V(e)}return null};var Y=function(e,t){while(e){if(t(e)){return e}e=J(e)}return null};var Z=function(e,t,n,r){var i=e;while(i){n(i);if(K(i,t)){break}var s=r&&e.node!==i.node&&t.node!==i.node;i=J(i,s)}};var et=function(t,n){var r=O(n,i.eq(t));return e.map(r,W).reverse()};var tt=function(e,t){var n=e;for(var r=0,i=t.length;r<i;r++){if(n.childNodes.length<=t[r]){n=n.childNodes[n.childNodes.length-1]}else{n=n.childNodes[t[r]]}}return n};var nt=function(e,t){if(c(e.node)){if(I(e)){return e.node}else if(q(e)){return e.node.nextSibling}return e.node.splitText(e.offset)}var n=e.node.childNodes[e.offset];var r=j(e.node.cloneNode(false),e.node);F(r,P(n));if(!t){L(e.node);L(r)}return r};var rt=function(e,t,n){var r=O(t.node,i.eq(e));if(!r.length){return null}else if(r.length===1){return nt(t,n)}return r.reduce(function(e,r){var i=j(r.cloneNode(false),r);if(e===t.node){e=nt(t,n)}F(i,P(e));if(!n){L(r);L(i)}return i})};var it=function(e){return document.createElement(e)};var st=function(e){return document.createTextNode(e)};var ot=function(e,t){if(!e||!e.parentNode){return}if(e.removeNode){return e.removeNode(t)}var n=e.parentNode;if(!t){var r=[];var i,s;for(i=0,s=e.childNodes.length;i<s;i++){r.push(e.childNodes[i])}for(i=0,s=r.length;i<s;i++){n.insertBefore(r[i],e)}}n.removeChild(e)};var ut=function(e,n){while(e){if(t(e)||!n(e)){break}var r=e.parentNode;ot(e);e=r}};var at=function(e,t){if(e.nodeName.toUpperCase()===t.toUpperCase()){return e}var n=it(t);if(e.style.cssText){n.style.cssText=e.style.cssText}F(n,s.from(e.childNodes));j(n,e);ot(e);return n};var ft=l("TEXTAREA");var lt=function(t,n){var r=ft(t[0])?t.val():t.html();if(n){var i=/<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g;r=r.replace(i,function(e,t,n){n=n.toUpperCase();var r=/^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(n)&&!!t;var i=/^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(n);return e+(r||i?"\n":"")});r=e.trim(r)}return r};var ct=function(e){var t=e.val();return t.replace(/[\n\r]/g,"")};return{NBSP_CHAR:o,ZERO_WIDTH_NBSP_CHAR:u,blank:N,emptyPara:"<p>"+N+"</p>",isEditable:t,isControlSizing:n,buildLayoutInfo:f,isText:c,isPara:p,isPurePara:v,isInline:m,isBodyInline:x,isBody:T,isParaInline:S,isList:g,isTable:l("TABLE"),isCell:y,isBlockquote:b,isBodyContainer:w,isAnchor:E,isDiv:l("DIV"),isLi:d,isSpan:l("SPAN"),isB:l("B"),isU:l("U"),isS:l("S"),isI:l("I"),isImg:l("IMG"),isTextarea:ft,isEmpty:k,isEmptyAnchor:i.and(E,k),nodeLength:C,isLeftEdgePoint:I,isRightEdgePoint:q,isEdgePoint:R,isLeftEdgeOf:U,isRightEdgeOf:z,prevPoint:V,nextPoint:J,isSamePoint:K,isVisiblePoint:Q,prevPointUntil:G,nextPointUntil:Y,walkPoint:Z,ancestor:A,listAncestor:O,lastAncestor:M,listNext:P,listPrev:D,listDescendant:H,commonAncestor:_,wrap:B,insertAfter:j,appendChildNodes:F,position:W,hasChildren:X,makeOffsetPath:et,fromOffsetPath:tt,splitTree:rt,create:it,createText:st,remove:ot,removeWhile:ut,replace:at,html:lt,value:ct}}();var f=function(){var t=function(e,t){var n=e.parentElement(),r;var i=document.body.createTextRange(),o;var u=s.from(n.childNodes);for(r=0;r<u.length;r++){if(a.isText(u[r])){continue}i.moveToElementText(u[r]);if(i.compareEndPoints("StartToStart",e)>=0){break}o=u[r]}if(r!==0&&a.isText(u[r-1])){var f=document.body.createTextRange(),l=null;f.moveToElementText(o||n);f.collapse(!o);l=o?o.nextSibling:n.firstChild;var c=e.duplicate();c.setEndPoint("StartToStart",f);var h=c.text.replace(/[\r\n]/g,"").length;while(h>l.nodeValue.length&&l.nextSibling){h-=l.nodeValue.length;l=l.nextSibling}var p=l.nodeValue;if(t&&l.nextSibling&&a.isText(l.nextSibling)&&h===l.nodeValue.length){h-=l.nodeValue.length;l=l.nextSibling}n=l;r=h}return{cont:n,offset:r}};var n=function(e){var t=function(e,n){var r,o;if(a.isText(e)){var u=a.listPrev(e,i.not(a.isText));var f=s.last(u).previousSibling;r=f||e.parentNode;n+=s.sum(s.tail(u),a.nodeLength);o=!f}else{r=e.childNodes[n]||e;if(a.isText(r)){return t(r,0)}n=0;o=false}return{node:r,collapseToStart:o,offset:n}};var n=document.body.createTextRange();var r=t(e.node,e.offset);n.moveToElementText(r.node);n.collapse(r.collapseToStart);n.moveStart("character",r.offset);return n};var o=function(t,u,f,l){this.sc=t;this.so=u;this.ec=f;this.eo=l;var c=function(){if(r.isW3CRangeSupport){var e=document.createRange();e.setStart(t,u);e.setEnd(f,l);return e}else{var i=n({node:t,offset:u});i.setEndPoint("EndToEnd",n({node:f,offset:l}));return i}};this.getPoints=function(){return{sc:t,so:u,ec:f,eo:l}};this.getStartPoint=function(){return{node:t,offset:u}};this.getEndPoint=function(){return{node:f,offset:l}};this.select=function(){var e=c();if(r.isW3CRangeSupport){var t=document.getSelection();if(t.rangeCount>0){t.removeAllRanges()}t.addRange(e)}else{e.select()}};this.normalize=function(){var e=function(e){if(!a.isVisiblePoint(e)){if(a.isLeftEdgePoint(e)){e=a.nextPointUntil(e,a.isVisiblePoint)}else if(a.isRightEdgePoint(e)){e=a.prevPointUntil(e,a.isVisiblePoint)}}return e};var t=e(this.getStartPoint());var n=e(this.getStartPoint());return new o(t.node,t.offset,n.node,n.offset)};this.nodes=function(e,t){e=e||i.ok;var n=t&&t.includeAncestor;var r=t&&t.fullyContains;var o=this.getStartPoint();var u=this.getEndPoint();var f=[];var l=[];a.walkPoint(o,u,function(t){if(a.isEditable(t.node)){return}var i;if(r){if(a.isLeftEdgePoint(t)){l.push(t.node)}if(a.isRightEdgePoint(t)&&s.contains(l,t.node)){i=t.node}}else if(n){i=a.ancestor(t.node,e)}else{i=t.node}if(i&&e(i)){f.push(i)}},true);return s.unique(f)};this.commonAncestor=function(){return a.commonAncestor(t,f)};this.expand=function(e){var n=a.ancestor(t,e);var r=a.ancestor(f,e);if(!n&&!r){return new o(t,u,f,l)}var i=this.getPoints();if(n){i.sc=n;i.so=0}if(r){i.ec=r;i.eo=a.nodeLength(r)}return new o(i.sc,i.so,i.ec,i.eo)};this.collapse=function(e){if(e){return new o(t,u,t,u)}else{return new o(f,l,f,l)}};this.splitText=function(){var e=t===f;var n=this.getPoints();if(a.isText(f)&&!a.isEdgePoint(this.getEndPoint())){f.splitText(l)}if(a.isText(t)&&!a.isEdgePoint(this.getStartPoint())){n.sc=t.splitText(u);n.so=0;if(e){n.ec=n.sc;n.eo=l-u}}return new o(n.sc,n.so,n.ec,n.eo)};this.deleteContents=function(){if(this.isCollapsed()){return this}var t=this.splitText();var n=t.nodes(null,{fullyContains:true});var r=a.prevPointUntil(t.getStartPoint(),function(e){return!s.contains(n,e.node)});var i=[];e.each(n,function(e,t){var n=t.parentNode;if(r.node!==n&&a.nodeLength(n)===1){i.push(n)}a.remove(t,false)});e.each(i,function(e,t){a.remove(t,false)});return new o(r.node,r.offset,r.node,r.offset)};var h=function(e){return function(){var n=a.ancestor(t,e);return!!n&&n===a.ancestor(f,e)}};this.isOnEditable=h(a.isEditable);this.isOnList=h(a.isList);this.isOnAnchor=h(a.isAnchor);this.isOnCell=h(a.isCell);this.isLeftEdgeOf=function(e){if(!a.isLeftEdgePoint(this.getStartPoint())){return false}var t=a.ancestor(this.sc,e);return t&&a.isLeftEdgeOf(this.sc,t)};this.isCollapsed=function(){return t===f&&u===l};this.wrapBodyInlineWithPara=function(){if(a.isBodyContainer(t)&&a.isEmpty(t)){t.innerHTML=a.emptyPara;return new o(t.firstChild,0)}if(a.isParaInline(t)||a.isPara(t)){return this.normalize()}var e;if(a.isInline(t)){var n=a.listAncestor(t,i.not(a.isInline));e=s.last(n);if(!a.isInline(e)){e=n[n.length-2]||t.childNodes[u]}}else{e=t.childNodes[u-1]}var r=a.listPrev(e,a.isParaInline).reverse();r=r.concat(a.listNext(e.nextSibling,a.isParaInline));if(r.length){var f=a.wrap(s.head(r),"p");a.appendChildNodes(f,s.tail(r))}return this.normalize()};this.insertNode=function(e,t){var n=this.wrapBodyInlineWithPara();var r=n.getStartPoint();var i,o,u;if(t){o=a.isPara(r.node)?r.node:r.node.parentNode;if(a.isPara(r.node)){u=r.node.childNodes[r.offset]}else{u=a.splitTree(r.node,r)}}else{var f=a.listAncestor(r.node,a.isBodyContainer);var l=s.last(f)||r.node;if(a.isBodyContainer(l)){i=f[f.length-2];o=l}else{i=l;o=i.parentNode}u=i&&a.splitTree(i,r)}if(u){u.parentNode.insertBefore(e,u)}else{o.appendChild(e)}return e};this.toString=function(){var e=c();return r.isW3CRangeSupport?e.toString():e.text};this.bookmark=function(e){return{s:{path:a.makeOffsetPath(e,t),offset:u},e:{path:a.makeOffsetPath(e,f),offset:l}}};this.getClientRects=function(){var e=c();return e.getClientRects()}};return{create:function(e,n,i,s){if(!arguments.length){if(r.isW3CRangeSupport){var u=document.getSelection();if(u.rangeCount===0){return null}else if(a.isBody(u.anchorNode)){return null}var f=u.getRangeAt(0);e=f.startContainer;n=f.startOffset;i=f.endContainer;s=f.endOffset}else{var l=document.selection.createRange();var c=l.duplicate();c.collapse(false);var h=l;h.collapse(true);var p=t(h,true),d=t(c,false);if(a.isText(p.node)&&a.isLeftEdgePoint(p)&&a.isTextNode(d.node)&&a.isRightEdgePoint(d)&&d.node.nextSibling===p.node){p=d}e=p.cont;n=p.offset;i=d.cont;s=d.offset}}else if(arguments.length===2){i=e;s=n}return new o(e,n,i,s)},createFromNode:function(e){return this.create(e,0,e,1)},createFromBookmark:function(e,t){var n=a.fromOffsetPath(e,t.s.path);var r=t.s.offset;var i=a.fromOffsetPath(e,t.e.path);var s=t.e.offset;return new o(n,r,i,s)}}}();var l={version:"0.6.0",options:{width:null,height:null,minHeight:null,maxHeight:null,focus:false,tabsize:4,styleWithSpan:true,disableLinkTarget:false,disableDragAndDrop:false,disableResizeEditor:false,shortcuts:true,placeholder:false,codemirror:{mode:"text/html",htmlMode:true,lineNumbers:true},lang:"en-US",direction:null,toolbar:[["style",["style"]],["font",["bold","italic","underline","clear"]],["fontname",["fontname"]],["color",["color"]],["para",["ul","ol","paragraph"]],["height",["height"]],["table",["table"]],["insert",["link","picture","hr"]],["view",["fullscreen","codeview"]],["help",["help"]]],airMode:false,airPopover:[["color",["color"]],["font",["bold","underline","clear"]],["para",["ul","paragraph"]],["table",["table"]],["insert",["link","picture"]]],styleTags:["p","blockquote","pre","h1","h2","h3","h4","h5","h6"],defaultFontName:"Helvetica Neue",fontNames:["Arial","Arial Black","Comic Sans MS","Courier New","Helvetica Neue","Impact","Lucida Grande","Tahoma","Times New Roman","Verdana"],colors:[["#000000","#424242","#636363","#9C9C94","#CEC6CE","#EFEFEF","#F7F7F7","#FFFFFF"],["#FF0000","#FF9C00","#FFFF00","#00FF00","#00FFFF","#0000FF","#9C00FF","#FF00FF"],["#F7C6CE","#FFE7CE","#FFEFC6","#D6EFD6","#CEDEE7","#CEE7F7","#D6D6E7","#E7D6DE"],["#E79C9C","#FFC69C","#FFE79C","#B5D6A5","#A5C6CE","#9CC6EF","#B5A5D6","#D6A5BD"],["#E76363","#F7AD6B","#FFD663","#94BD7B","#73A5AD","#6BADDE","#8C7BC6","#C67BA5"],["#CE0000","#E79439","#EFC631","#6BA54A","#4A7B8C","#3984C6","#634AA5","#A54A7B"],["#9C0000","#B56308","#BD9400","#397B21","#104A5A","#085294","#311873","#731842"],["#630000","#7B3900","#846300","#295218","#083139","#003163","#21104A","#4A1031"]],lineHeights:["1.0","1.2","1.4","1.5","1.6","1.8","2.0","3.0"],insertTableMaxSize:{col:10,row:10},maximumImageFileSize:null,oninit:null,onfocus:null,onblur:null,onenter:null,onkeyup:null,onkeydown:null,onImageUpload:null,onImageUploadError:null,onToolbarClick:null,onsubmit:null,onCreateLink:function(e){if(e.indexOf("@")!==-1&&e.indexOf(":")===-1){e="mailto:"+e}else if(e.indexOf("://")===-1){e="http://"+e}return e},keyMap:{pc:{ENTER:"insertParagraph","CTRL+Z":"undo","CTRL+Y":"redo",TAB:"tab","SHIFT+TAB":"untab","CTRL+B":"bold","CTRL+I":"italic","CTRL+U":"underline","CTRL+SHIFT+S":"strikethrough","CTRL+BACKSLASH":"removeFormat","CTRL+SHIFT+L":"justifyLeft","CTRL+SHIFT+E":"justifyCenter","CTRL+SHIFT+R":"justifyRight","CTRL+SHIFT+J":"justifyFull","CTRL+SHIFT+NUM7":"insertUnorderedList","CTRL+SHIFT+NUM8":"insertOrderedList","CTRL+LEFTBRACKET":"outdent","CTRL+RIGHTBRACKET":"indent","CTRL+NUM0":"formatPara","CTRL+NUM1":"formatH1","CTRL+NUM2":"formatH2","CTRL+NUM3":"formatH3","CTRL+NUM4":"formatH4","CTRL+NUM5":"formatH5","CTRL+NUM6":"formatH6","CTRL+ENTER":"insertHorizontalRule","CTRL+K":"showLinkDialog"},mac:{ENTER:"insertParagraph","CMD+Z":"undo","CMD+SHIFT+Z":"redo",TAB:"tab","SHIFT+TAB":"untab","CMD+B":"bold","CMD+I":"italic","CMD+U":"underline","CMD+SHIFT+S":"strikethrough","CMD+BACKSLASH":"removeFormat","CMD+SHIFT+L":"justifyLeft","CMD+SHIFT+E":"justifyCenter","CMD+SHIFT+R":"justifyRight","CMD+SHIFT+J":"justifyFull","CMD+SHIFT+NUM7":"insertUnorderedList","CMD+SHIFT+NUM8":"insertOrderedList","CMD+LEFTBRACKET":"outdent","CMD+RIGHTBRACKET":"indent","CMD+NUM0":"formatPara","CMD+NUM1":"formatH1","CMD+NUM2":"formatH2","CMD+NUM3":"formatH3","CMD+NUM4":"formatH4","CMD+NUM5":"formatH5","CMD+NUM6":"formatH6","CMD+ENTER":"insertHorizontalRule","CMD+K":"showLinkDialog"}}},lang:{"en-US":{font:{bold:"Bold",italic:"Italic",underline:"Underline",clear:"Remove Font Style",height:"Line Height",name:"Font Family"},image:{image:"Picture",insert:"Insert Image",resizeFull:"Resize Full",resizeHalf:"Resize Half",resizeQuarter:"Resize Quarter",floatLeft:"Float Left",floatRight:"Float Right",floatNone:"Float None",shapeRounded:"Shape: Rounded",shapeCircle:"Shape: Circle",shapeThumbnail:"Shape: Thumbnail",shapeNone:"Shape: None",dragImageHere:"Drag image here",dropImage:"Drop image",selectFromFiles:"Select from files",maximumFileSize:"Maximum file size",maximumFileSizeError:"Maximum file size exceeded.",url:"Image URL",remove:"Remove Image"},link:{link:"Link",insert:"Insert Link",unlink:"Unlink",edit:"Edit",textToDisplay:"Text to display",url:"To what URL should this link go?",openInNewWindow:"Open in new window"},table:{table:"Table"},hr:{insert:"Insert Horizontal Rule"},style:{style:"Style",normal:"Normal",blockquote:"Quote",pre:"Code",h1:"Header 1",h2:"Header 2",h3:"Header 3",h4:"Header 4",h5:"Header 5",h6:"Header 6"},lists:{unordered:"Unordered list",ordered:"Ordered list"},options:{help:"Help",fullscreen:"Full Screen",codeview:"Code View"},paragraph:{paragraph:"Paragraph",outdent:"Outdent",indent:"Indent",left:"Align left",center:"Align center",right:"Align right",justify:"Justify full"},color:{recent:"Recent Color",more:"More Color",background:"Background Color",foreground:"Foreground Color",transparent:"Transparent",setTransparent:"Set transparent",reset:"Reset",resetToDefault:"Reset to default"},shortcut:{shortcuts:"Keyboard shortcuts",close:"Close",textFormatting:"Text formatting",action:"Action",paragraphFormatting:"Paragraph formatting",documentStyle:"Document Style",extraKeys:"Extra keys"},history:{undo:"Undo",redo:"Redo"}}}};var c=function(){var t=function(t){return e.Deferred(function(n){e.extend(new FileReader,{onload:function(e){var t=e.target.result;n.resolve(t)},onerror:function(){n.reject(this)}}).readAsDataURL(t)}).promise()};var n=function(t,n){return e.Deferred(function(r){e("<img>").one("load",function(){r.resolve(e(this))}).one("error abort",function(){r.reject(e(this).detach())}).css({display:"none"}).appendTo(document.body).attr("src",t).attr("data-filename",n)}).promise()};return{readFileAsDataURL:t,createImage:n}}();var h={isEdit:function(e){return s.contains([8,9,13,32],e)},nameFromCode:{8:"BACKSPACE",9:"TAB",13:"ENTER",32:"SPACE",48:"NUM0",49:"NUM1",50:"NUM2",51:"NUM3",52:"NUM4",53:"NUM5",54:"NUM6",55:"NUM7",56:"NUM8",66:"B",69:"E",73:"I",74:"J",75:"K",76:"L",82:"R",83:"S",85:"U",89:"Y",90:"Z",191:"SLASH",219:"LEFTBRACKET",220:"BACKSLASH",221:"RIGHTBRACKET"}};var p=function(){var t=function(t,n){if(r.jqueryVersion<1.9){var i={};e.each(n,function(e,n){i[n]=t.css(n)});return i}return t.css.call(t,n)};this.stylePara=function(t,n){e.each(t.nodes(a.isPara,{includeAncestor:true}),function(t,r){e(r).css(n)})};this.current=function(n,r){var i=e(a.isText(n.sc)?n.sc.parentNode:n.sc);var s=["font-family","font-size","text-align","list-style-type","line-height"];var o=t(i,s)||{};o["font-size"]=parseInt(o["font-size"],10);o["font-bold"]=document.queryCommandState("bold")?"bold":"normal";o["font-italic"]=document.queryCommandState("italic")?"italic":"normal";o["font-underline"]=document.queryCommandState("underline")?"underline":"normal";o["font-strikethrough"]=document.queryCommandState("strikeThrough")?"strikethrough":"normal";o["font-superscript"]=document.queryCommandState("superscript")?"superscript":"normal";o["font-subscript"]=document.queryCommandState("subscript")?"subscript":"normal";if(!n.isOnList()){o["list-style"]="none"}else{var u=["circle","disc","disc-leading-zero","square"];var f=e.inArray(o["list-style-type"],u)>-1;o["list-style"]=f?"unordered":"ordered"}var l=a.ancestor(n.sc,a.isPara);if(l&&l.style["line-height"]){o["line-height"]=l.style.lineHeight}else{var c=parseInt(o["line-height"],10)/parseInt(o["font-size"],10);o["line-height"]=c.toFixed(1)}o.image=a.isImg(r)&&r;o.anchor=n.isOnAnchor()&&a.ancestor(n.sc,a.isAnchor);o.ancestors=a.listAncestor(n.sc,a.isEditable);o.range=n;return o}};var d=function(){this.insertTab=function(e,t,n){var r=a.createText((new Array(n+1)).join(a.NBSP_CHAR));t=t.deleteContents();t.insertNode(r,true);t=f.create(r,n);t.select()};this.insertParagraph=function(){var t=f.create();t=t.deleteContents();t=t.wrapBodyInlineWithPara();var n=a.ancestor(t.sc,a.isPara);var r;if(n){r=a.splitTree(n,t.getStartPoint());var i=a.listDescendant(n,a.isEmptyAnchor);i=i.concat(a.listDescendant(r,a.isEmptyAnchor));e.each(i,function(e,t){a.remove(t)})}else{var s=t.sc.childNodes[t.so];r=e(a.emptyPara)[0];if(s){t.sc.insertBefore(r,s)}else{t.sc.appendChild(r)}}f.create(r,0).normalize().select()}};var v=function(){this.tab=function(e,t){var n=a.ancestor(e.commonAncestor(),a.isCell);var r=a.ancestor(n,a.isTable);var i=a.listDescendant(r,a.isCell);var o=s[t?"prev":"next"](i,n);if(o){f.create(o,0).select()}};this.createTable=function(t,n){var r=[],i;for(var s=0;s<t;s++){r.push("<td>"+a.blank+"</td>")}i=r.join("");var o=[],u;for(var f=0;f<n;f++){o.push("<tr>"+i+"</tr>")}u=o.join("");return e('<table class="table table-bordered">'+u+"</table>")[0]}};var m=function(){this.insertOrderedList=function(){this.toggleList("OL")};this.insertUnorderedList=function(){this.toggleList("UL")};this.indent=function(){var t=this;var n=f.create().wrapBodyInlineWithPara();var r=n.nodes(a.isPara,{includeAncestor:true});var o=s.clusterBy(r,i.peq2("parentNode"));e.each(o,function(n,r){var i=s.head(r);if(a.isLi(i)){t.wrapList(r,i.parentNode.nodeName)}else{e.each(r,function(t,n){e(n).css("marginLeft",function(e,t){return(parseInt(t,10)||0)+25})})}});n.select()};this.outdent=function(){var t=this;var n=f.create().wrapBodyInlineWithPara();var r=n.nodes(a.isPara,{includeAncestor:true});var o=s.clusterBy(r,i.peq2("parentNode"));e.each(o,function(n,r){var i=s.head(r);if(a.isLi(i)){t.releaseList([r])}else{e.each(r,function(t,n){e(n).css("marginLeft",function(e,t){t=parseInt(t,10)||0;return t>25?t-25:""})})}});n.select()};this.toggleList=function(t){var n=this;var r=f.create().wrapBodyInlineWithPara();var o=r.nodes(a.isPara,{includeAncestor:true});var u=s.clusterBy(o,i.peq2("parentNode"));if(s.find(o,a.isPurePara)){e.each(u,function(e,r){n.wrapList(r,t)})}else{var l=r.nodes(a.isList,{includeAncestor:true}).filter(function(n){return!e.nodeName(n,t)});if(l.length){e.each(l,function(e,n){a.replace(n,t)})}else{this.releaseList(u,true)}}r.select()};this.wrapList=function(t,n){var r=s.head(t);var i=s.last(t);var o=a.isList(r.previousSibling)&&r.previousSibling;var u=a.isList(i.nextSibling)&&i.nextSibling;var f=o||a.insertAfter(a.create(n||"UL"),i);t=e.map(t,function(e){return a.isPurePara(e)?a.replace(e,"LI"):e});a.appendChildNodes(f,t);if(u){a.appendChildNodes(f,s.from(u.childNodes));a.remove(u)}};this.releaseList=function(t,n){var r=[];e.each(t,function(t,i){var o=s.head(i);var u=s.last(i);var f=n?a.lastAncestor(o,a.isList):o.parentNode;var l=f.childNodes.length>1?a.splitTree(f,{node:u.parentNode,offset:a.position(u)+1},true):null;var c=a.splitTree(f,{node:o.parentNode,offset:a.position(o)},true);i=n?a.listDescendant(c,a.isLi):s.from(c.childNodes).filter(a.isLi);if(n||!a.isList(f.parentNode)){i=e.map(i,function(e){return a.replace(e,"P")})}e.each(s.from(i).reverse(),function(e,t){a.insertAfter(t,f)});var h=s.compact([f,c,l]);e.each(h,function(t,n){var r=[n].concat(a.listDescendant(n,a.isList));e.each(r.reverse(),function(e,t){if(!a.nodeLength(t)){a.remove(t,true)}})});r=r.concat(i)});return r}};var g=function(){var t=new p;var n=new v;var i=new d;var o=new m;this.createRange=function(e){e.focus();return f.create()};this.saveRange=function(e,t){e.focus();e.data("range",f.create());if(t){f.create().collapse().select()}};this.saveNode=function(e){var t=[];for(var n=0,r=e[0].childNodes.length;n<r;n++){t.push(e[0].childNodes[n])}e.data("childNodes",t)};this.restoreRange=function(e){var t=e.data("range");if(t){t.select();e.focus()}};this.restoreNode=function(e){e.html("");var t=e.data("childNodes");for(var n=0,r=t.length;n<r;n++){e[0].appendChild(t[n])}};this.currentStyle=function(e){var n=f.create();return n?n.isOnEditable()&&t.current(n,e):false};var u=this.triggerOnChange=function(e){var t=e.data("callbacks").onChange;if(t){t(e.html(),e)}};this.undo=function(e){e.data("NoteHistory").undo();u(e)};this.redo=function(e){e.data("NoteHistory").redo();u(e)};var l=this.afterCommand=function(e){e.data("NoteHistory").recordUndo();u(e)};var h=["bold","italic","underline","strikethrough","superscript","subscript","justifyLeft","justifyCenter","justifyRight","justifyFull","formatBlock","removeFormat","backColor","foreColor","insertHorizontalRule","fontName"];for(var g=0,y=h.length;g<y;g++){this[h[g]]=function(e){return function(t,n){document.execCommand(e,false,n);l(t)}}(h[g])}this.tab=function(e,t){var r=f.create();if(r.isCollapsed()&&r.isOnCell()){n.tab(r)}else{i.insertTab(e,r,t.tabsize);l(e)}};this.untab=function(){var e=f.create();if(e.isCollapsed()&&e.isOnCell()){n.tab(e,true)}};this.insertParagraph=function(e){i.insertParagraph(e);l(e)};this.insertOrderedList=function(e){o.insertOrderedList(e);l(e)};this.insertUnorderedList=function(e){o.insertUnorderedList(e);l(e)};this.indent=function(e){o.indent(e);l(e)};this.outdent=function(e){o.outdent(e);l(e)};this.insertImage=function(e,t,n){c.createImage(t,n).then(function(t){t.css({display:"",width:Math.min(e.width(),t.width())});f.create().insertNode(t[0]);l(e)}).fail(function(){var t=e.data("callbacks");if(t.onImageUploadError){t.onImageUploadError()}})};this.insertNode=function(e,t,n){f.create().insertNode(t,n);l(e)};this.insertText=function(e,t){var n=this.createRange(e).insertNode(a.createText(t),true);f.create(n,a.nodeLength(n)).select();l(e)};this.formatBlock=function(e,t){t=r.isMSIE?"<"+t+">":t;document.execCommand("FormatBlock",false,t);l(e)};this.formatPara=function(e){this.formatBlock(e,"P");l(e)};for(var g=1;g<=6;g++){this["formatH"+g]=function(e){return function(t){this.formatBlock(t,"H"+e)}}(g)}this.fontSize=function(e,t){document.execCommand("fontSize",false,3);if(r.isFF){e.find("font[size=3]").removeAttr("size").css("font-size",t+"px")}else{e.find("span").filter(function(){return this.style.fontSize==="medium"}).css("font-size",t+"px")}l(e)};this.lineHeight=function(e,n){t.stylePara(f.create(),{lineHeight:n});l(e)};this.unlink=function(e){var t=f.create();if(t.isOnAnchor()){var n=a.ancestor(t.sc,a.isAnchor);t=f.createFromNode(n);t.select();document.execCommand("unlink");l(e)}};this.createLink=function(t,n,r){var i=n.url;var s=n.text;var o=n.newWindow;var u=n.range;if(r.onCreateLink){i=r.onCreateLink(i)}u=u.deleteContents();var a=u.insertNode(e("<A>"+s+"</A>")[0],true);e(a).attr({href:i,target:o?"_blank":""});f.createFromNode(a).select();l(t)};this.getLinkInfo=function(t){t.focus();var n=f.create().expand(a.isAnchor);var r=e(s.head(n.nodes(a.isAnchor)));return{range:n,text:n.toString(),isNewWindow:r.length?r.attr("target")==="_blank":true,url:r.length?r.attr("href"):""}};this.color=function(e,t){var n=JSON.parse(t);var r=n.foreColor,i=n.backColor;if(r){document.execCommand("foreColor",false,r)}if(i){document.execCommand("backColor",false,i)}l(e)};this.insertTable=function(e,t){var r=t.split("x");var i=f.create();i=i.deleteContents();i.insertNode(n.createTable(r[0],r[1]));l(e)};this.floatMe=function(e,t,n){n.css("float",t);l(e)};this.imageShape=function(e,t,n){n.removeClass("img-rounded img-circle img-thumbnail");if(t){n.addClass(t)}l(e)};this.resize=function(e,t,n){n.css({width:t*100+"%",height:""});l(e)};this.resizeTo=function(e,t,n){var r;if(n){var i=e.y/e.x;var s=t.data("ratio");r={width:s>i?e.x:e.y/s,height:s>i?e.x*s:e.y}}else{r={width:e.x,height:e.y}}t.css(r)};this.removeMedia=function(e,t,n){n.detach();l(e)}};var y=function(e){var t=[],n=-1;var r=e[0];var i=function(){var t=f.create();var n={s:{path:[0],offset:0},e:{path:[0],offset:0}};return{contents:e.html(),bookmark:t?t.bookmark(r):n}};var s=function(t){if(t.contents!==null){e.html(t.contents)}if(t.bookmark!==null){f.createFromBookmark(r,t.bookmark).select()}};this.undo=function(){if(0<n){n--;s(t[n])}};this.redo=function(){if(t.length-1>n){n++;s(t[n])}};this.recordUndo=function(){n++;if(t.length>n){t=t.slice(0,n)}t.push(i())};this.recordUndo()};var b=function(){this.update=function(t,n){var r=function(t,n){t.find(".dropdown-menu li a").each(function(){var t=e(this).data("value")+""===n+"";this.className=t?"checked":""})};var i=function(e,n){var r=t.find(e);r.toggleClass("active",n())};var o=t.find(".note-fontname");if(o.length){var u=n["font-family"];if(!!u){u=s.head(u.split(","));u=u.replace(/\'/g,"");o.find(".note-current-fontname").text(u);r(o,u)}}var a=t.find(".note-fontsize");a.find(".note-current-fontsize").text(n["font-size"]);r(a,parseFloat(n["font-size"]));var f=t.find(".note-height");r(f,parseFloat(n["line-height"]));i('button[data-event="bold"]',function(){return n["font-bold"]==="bold"});i('button[data-event="italic"]',function(){return n["font-italic"]==="italic"});i('button[data-event="underline"]',function(){return n["font-underline"]==="underline"});i('button[data-event="strikethrough"]',function(){return n["font-strikethrough"]==="strikethrough"});i('button[data-event="superscript"]',function(){return n["font-superscript"]==="superscript"});i('button[data-event="subscript"]',function(){return n["font-subscript"]==="subscript"});i('button[data-event="justifyLeft"]',function(){return n["text-align"]==="left"||n["text-align"]==="start"});i('button[data-event="justifyCenter"]',function(){return n["text-align"]==="center"});i('button[data-event="justifyRight"]',function(){return n["text-align"]==="right"});i('button[data-event="justifyFull"]',function(){return n["text-align"]==="justify"});i('button[data-event="insertUnorderedList"]',function(){return n["list-style"]==="unordered"});i('button[data-event="insertOrderedList"]',function(){return n["list-style"]==="ordered"})};this.updateRecentColor=function(t,n,r){var i=e(t).closest(".note-color");var s=i.find(".note-recent-color");var o=JSON.parse(s.attr("data-value"));o[n]=r;s.attr("data-value",JSON.stringify(o));var u=n==="backColor"?"background-color":"color";s.find("i").css(u,r)}};var w=function(){var e=new b;this.update=function(t,n){e.update(t,n)};this.updateRecentColor=function(t,n,r){e.updateRecentColor(t,n,r)};this.activate=function(e){e.find("button").not('button[data-event="codeview"]').removeClass("disabled")};this.deactivate=function(e){e.find("button").not('button[data-event="codeview"]').addClass("disabled")};this.updateFullscreen=function(e,t){var n=e.find('button[data-event="fullscreen"]');n.toggleClass("active",t)};this.updateCodeview=function(e,t){var n=e.find('button[data-event="codeview"]');n.toggleClass("active",t)}};var E=function(){var t=new b;var n=function(t,n){var r=e(t);var i=n?r.offset():r.position();var s=r.outerHeight(true);return{left:i.left,top:i.top+s}};var r=function(e,t){e.css({display:"block",left:t.left,top:t.top})};var o=20;this.update=function(u,a,f){t.update(u,a);var l=u.find(".note-link-popover");if(a.anchor){var c=l.find("a");var h=e(a.anchor).attr("href");c.attr("href",h).html(h);r(l,n(a.anchor,f))}else{l.hide()}var p=u.find(".note-image-popover");if(a.image){r(p,n(a.image,f))}else{p.hide()}var d=u.find(".note-air-popover");if(f&&!a.range.isCollapsed()){var v=i.rect2bnd(s.last(a.range.getClientRects()));r(d,{left:Math.max(v.left+v.width/2-o,0),top:v.top+v.height})}else{d.hide()}};this.updateRecentColor=function(e,t,n){e.updateRecentColor(e,t,n)};this.hide=function(e){e.children().hide()}};var S=function(){this.update=function(t,n,r){var i=t.find(".note-control-selection");if(n.image){var s=e(n.image);var o=r?s.offset():s.position();var u={w:s.outerWidth(true),h:s.outerHeight(true)};i.css({display:"block",left:o.left,top:o.top,width:u.w,height:u.h}).data("target",n.image);var a=u.w+"x"+u.h;i.find(".note-control-selection-info").text(a)}else{i.hide()}};this.hide=function(e){e.children().hide()}};var x=function(){var t=function(e,t){e.toggleClass("disabled",!t);e.attr("disabled",!t)};this.showImageDialog=function(n,r){return e.Deferred(function(e){var n=r.find(".note-image-dialog");var i=r.find(".note-image-input"),s=r.find(".note-image-url"),o=r.find(".note-image-btn");n.one("shown.bs.modal",function(){i.replaceWith(i.clone().on("change",function(){e.resolve(this.files||this.value);n.modal("hide")}).val(""));o.click(function(t){t.preventDefault();e.resolve(s.val());n.modal("hide")});s.on("keyup paste",function(e){var n;if(e.type==="paste"){n=e.originalEvent.clipboardData.getData("text")}else{n=s.val()}t(o,n)}).val("").trigger("focus")}).one("hidden.bs.modal",function(){i.off("change");s.off("keyup paste");o.off("click");if(e.state()==="pending"){e.reject()}}).modal("show")})};this.showLinkDialog=function(n,r,i){return e.Deferred(function(e){var n=r.find(".note-link-dialog");var s=n.find(".note-link-text"),o=n.find(".note-link-url"),u=n.find(".note-link-btn"),a=n.find("input[type=checkbox]");n.one("shown.bs.modal",function(){s.val(i.text);s.on("input",function(){i.text=s.val()});if(!i.url){i.url=i.text;t(u,i.text)}o.on("input",function(){t(u,o.val());if(!i.text){s.val(o.val())}}).val(i.url).trigger("focus").trigger("select");a.prop("checked",i.newWindow);u.one("click",function(t){t.preventDefault();e.resolve({range:i.range,url:o.val(),text:s.val(),newWindow:a.is(":checked")});n.modal("hide")})}).one("hidden.bs.modal",function(){s.off("input");o.off("input");u.off("click");if(e.state()==="pending"){e.reject()}}).modal("show")}).promise()};this.showHelpDialog=function(t,n){return e.Deferred(function(e){var t=n.find(".note-help-dialog");t.one("hidden.bs.modal",function(){e.resolve()}).modal("show")}).promise()}};var T;if(r.hasCodeMirror){if(r.isSupportAmd){require(["CodeMirror"],function(e){T=e})}else{T=window.CodeMirror}}var N=function(){var t=e(window);var n=e(document);var i=e("html, body");var o=new g;var u=new w,f=new E;var l=new S,p=new x;this.getEditor=function(){return o};var d=function(t){var n=e(t).closest(".note-editor, .note-air-editor, .note-air-layout");if(!n.length){return null}var r;if(n.is(".note-editor, .note-air-editor")){r=n}else{r=e("#note-editor-"+s.last(n.attr("id").split("-")))}return a.buildLayoutInfo(r)};var v=function(t,n){var r=t.editor(),i=t.editable();var s=i.data("callbacks");var u=r.data("options");if(s.onImageUpload){s.onImageUpload(n,o,i)}else{e.each(n,function(e,t){var n=t.name;if(u.maximumImageFileSize&&u.maximumImageFileSize<t.size){if(s.onImageUploadError){s.onImageUploadError(u.langInfo.image.maximumFileSizeError)}else{alert(u.langInfo.image.maximumFileSizeError)}}else{c.readFileAsDataURL(t).then(function(e){o.insertImage(i,e,n)}).fail(function(){if(s.onImageUploadError){s.onImageUploadError()}})}})}};var m={showLinkDialog:function(e){var t=e.editor(),n=e.dialog(),r=e.editable(),i=o.getLinkInfo(r);var s=t.data("options");o.saveRange(r);p.showLinkDialog(r,n,i).then(function(t){o.restoreRange(r);o.createLink(r,t,s);f.hide(e.popover())}).fail(function(){o.restoreRange(r)})},showImageDialog:function(e){var t=e.dialog(),n=e.editable();o.saveRange(n);p.showImageDialog(n,t).then(function(t){o.restoreRange(n);if(typeof t==="string"){o.insertImage(n,t)}else{v(e,t)}}).fail(function(){o.restoreRange(n)})},showHelpDialog:function(e){var t=e.dialog(),n=e.editable();o.saveRange(n,true);p.showHelpDialog(n,t).then(function(){o.restoreRange(n)})},fullscreen:function(e){var n=e.editor(),r=e.toolbar(),s=e.editable(),o=e.codable();var a=function(e){s.css("height",e.h);o.css("height",e.h);if(o.data("cmeditor")){o.data("cmeditor").setsize(null,e.h)}};n.toggleClass("fullscreen");var f=n.hasClass("fullscreen");if(f){s.data("orgheight",s.css("height"));t.on("resize",function(){a({h:t.height()-r.outerHeight()})}).trigger("resize");i.css("overflow","hidden")}else{t.off("resize");a({h:s.data("orgheight")});i.css("overflow","visible")}u.updateFullscreen(r,f)},codeview:function(e){var t=e.editor(),n=e.toolbar(),i=e.editable(),s=e.codable(),o=e.popover(),c=e.handle();var h=t.data("options");var p,d;t.toggleClass("codeview");var v=t.hasClass("codeview");if(v){s.val(a.html(i,true));s.height(i.height());u.deactivate(n);f.hide(o);l.hide(c);s.focus();if(r.hasCodeMirror){p=T.fromTextArea(s[0],h.codemirror);if(h.codemirror.tern){d=new T.TernServer(h.codemirror.tern);p.ternServer=d;p.on("cursorActivity",function(e){d.updateArgHints(e)})}p.setSize(null,i.outerHeight());s.data("cmEditor",p)}}else{if(r.hasCodeMirror){p=s.data("cmEditor");s.val(p.getValue());p.toTextArea()}i.html(a.value(s)||a.emptyPara);i.height(h.height?s.height():"auto");u.activate(n);i.focus()}u.updateCodeview(e.toolbar(),v)}};var b=function(e){if(a.isImg(e.target)){e.preventDefault()}};var N=function(e){setTimeout(function(){var t=d(e.currentTarget||e.target);var n=o.currentStyle(e.target);if(!n){return}var r=t.editor().data("options").airMode;if(!r){u.update(t.toolbar(),n)}f.update(t.popover(),n,r);l.update(t.handle(),n,r)},0)};var C=function(e){var t=d(e.currentTarget||e.target);f.hide(t.popover());l.hide(t.handle())};var k=function(e){var t=e.originalEvent.clipboardData;var n=d(e.currentTarget||e.target);var r=n.editable();if(!t||!t.items||!t.items.length){var i=r.data("callbacks");if(!i.onImageUpload){return}o.saveNode(r);o.saveRange(r);r.html("");setTimeout(function(){var e=r.find("img");var t=e[0].src;var i=atob(t.split(",")[1]);var s=new Uint8Array(i.length);for(var u=0;u<i.length;u++){s[u]=i.charCodeAt(u)}var a=new Blob([s],{type:"image/png"});a.name="clipboard.png";o.restoreNode(r);o.restoreRange(r);v(n,[a]);o.afterCommand(r)},0);return}var u=s.head(t.items);var a=u.kind==="file"&&u.type.indexOf("image/")!==-1;if(a){v(n,[u.getAsFile()])}o.afterCommand(r)};var L=function(t){if(a.isControlSizing(t.target)){t.preventDefault();t.stopPropagation();var r=d(t.target),i=r.handle(),s=r.popover(),u=r.editable(),c=r.editor();var h=i.find(".note-control-selection").data("target"),p=e(h),v=p.offset(),m=n.scrollTop();var g=c.data("options").airMode;n.on("mousemove",function(e){o.resizeTo({x:e.clientX-v.left,y:e.clientY-(v.top-m)},p,!e.shiftKey);l.update(i,{image:h},g);f.update(s,{image:h},g)}).one("mouseup",function(){n.off("mousemove");o.afterCommand(u)});if(!p.data("ratio")){p.data("ratio",p.height()/p.width())}}};var A=function(t){var n=e(t.target).closest("[data-event]");if(n.length){t.preventDefault()}};var O=function(t){var n=e(t.target).closest("[data-event]");if(n.length){var r=n.attr("data-event"),i=n.attr("data-value"),a=n.attr("data-hide");var l=d(t.target);t.preventDefault();var c;if(e.inArray(r,["resize","floatMe","removeMedia","imageShape"])!==-1){var h=l.handle().find(".note-control-selection");c=e(h.data("target"))}if(a){n.parents(".popover").hide()}if(o[r]){var p=l.editable();p.trigger("focus");o[r](p,i,c)}else if(m[r]){m[r].call(this,l)}else if(e.isFunction(e.summernote.pluginEvents[r])){e.summernote.pluginEvents[r](l,i,c)}if(e.inArray(r,["backColor","foreColor"])!==-1){var v=l.editor().data("options",v);var g=v.airMode?f:u;g.updateRecentColor(s.head(n),r,i)}N(t)}};var M=24;var _=function(e){e.preventDefault();e.stopPropagation();var t=d(e.target).editable();var r=t.offset().top-n.scrollTop();var i=d(e.currentTarget||e.target);var s=i.editor().data("options");n.on("mousemove",function(e){var n=e.clientY-(r+M);n=s.minHeight>0?Math.max(n,s.minHeight):n;n=s.maxHeight>0?Math.min(n,s.maxHeight):n;t.height(n)}).one("mouseup",function(){n.off("mousemove")})};var D=18;var P=function(t,n){var r=e(t.target.parentNode);var i=r.next();var s=r.find(".note-dimension-picker-mousecatcher");var o=r.find(".note-dimension-picker-highlighted");var u=r.find(".note-dimension-picker-unhighlighted");var a;if(t.offsetX===undefined){var f=e(t.target).offset();a={x:t.pageX-f.left,y:t.pageY-f.top}}else{a={x:t.offsetX,y:t.offsetY}}var l={c:Math.ceil(a.x/D)||1,r:Math.ceil(a.y/D)||1};o.css({width:l.c+"em",height:l.r+"em"});s.attr("data-value",l.c+"x"+l.r);if(3<l.c&&l.c<n.insertTableMaxSize.col){u.css({width:l.c+1+"em"})}if(3<l.r&&l.r<n.insertTableMaxSize.row){u.css({height:l.r+1+"em"})}i.html(l.c+" x "+l.r)};var H=function(e,t){if(t.disableDragAndDrop){n.on("drop",function(e){e.preventDefault()})}else{B(e,t)}};var B=function(t,r){var i=e(),s=t.dropzone,o=t.dropzone.find(".note-dropzone-message");n.on("dragenter",function(e){var n=t.editor.hasClass("codeview");if(!n&&!i.length){t.editor.addClass("dragover");s.width(t.editor.width());s.height(t.editor.height());o.text(r.langInfo.image.dragImageHere)}i=i.add(e.target)}).on("dragleave",function(e){i=i.not(e.target);if(!i.length){t.editor.removeClass("dragover")}}).on("drop",function(){i=e();t.editor.removeClass("dragover")});s.on("dragenter",function(){s.addClass("hover");o.text(r.langInfo.image.dropImage)}).on("dragleave",function(){s.removeClass("hover");o.text(r.langInfo.image.dragImageHere)});s.on("drop",function(e){e.preventDefault();var t=e.originalEvent.dataTransfer;if(t&&t.files){var n=d(e.currentTarget||e.target);n.editable().focus();v(n,t.files)}}).on("dragover",false)};this.bindKeyMap=function(t,n){var r=t.editor;var i=t.editable;t=d(i);i.on("keydown",function(s){var u=[];if(s.metaKey){u.push("CMD")}if(s.ctrlKey&&!s.altKey){u.push("CTRL")}if(s.shiftKey){u.push("SHIFT")}var a=h.nameFromCode[s.keyCode];if(a){u.push(a)}var f=n[u.join("+")];if(f){s.preventDefault();if(o[f]){o[f](i,r.data("options"))}else if(m[f]){m[f].call(this,t)}else if(e.summernote.plugins[f]){var l=e.summernote.plugins[f];if(e.isFunction(l.event)){l.event(s,o,t)}}}else if(h.isEdit(s.keyCode)){o.afterCommand(i)}})};this.attach=function(e,t){if(t.shortcuts){this.bindKeyMap(e,t.keyMap[r.isMac?"mac":"pc"])}e.editable.on("mousedown",b);e.editable.on("keyup mouseup",N);e.editable.on("scroll",C);e.editable.on("paste",k);e.handle.on("mousedown",L);e.popover.on("click",O);e.popover.on("mousedown",A);if(!t.airMode){H(e,t);e.toolbar.on("click",O);e.toolbar.on("mousedown",A);if(!t.disableResizeEditor){e.statusbar.on("mousedown",_)}}var n=t.airMode?e.popover:e.toolbar;var i=n.find(".note-dimension-picker-mousecatcher");i.css({width:t.insertTableMaxSize.col+"em",height:t.insertTableMaxSize.row+"em"}).on("mousemove",function(e){P(e,t)});e.editor.data("options",t);if(!r.isMSIE){setTimeout(function(){document.execCommand("styleWithCSS",0,t.styleWithSpan)},0)}var s=new y(e.editable);e.editable.data("NoteHistory",s);if(t.onenter){e.editable.keypress(function(e){if(e.keyCode===h.ENTER){t.onenter(e)}})}if(t.onfocus){e.editable.focus(t.onfocus)}if(t.onblur){e.editable.blur(t.onblur)}if(t.onkeyup){e.editable.keyup(t.onkeyup)}if(t.onkeydown){e.editable.keydown(t.onkeydown)}if(t.onpaste){e.editable.on("paste",t.onpaste)}if(t.onToolbarClick){e.toolbar.click(t.onToolbarClick)}if(t.onChange){var u=function(){o.triggerOnChange(e.editable)};if(r.isMSIE){var a="DOMCharacterDataModified DOMSubtreeModified DOMNodeInserted";e.editable.on(a,u)}else{e.editable.on("input",u)}}e.editable.data("callbacks",{onChange:t.onChange,onAutoSave:t.onAutoSave,onImageUpload:t.onImageUpload,onImageUploadError:t.onImageUploadError,onFileUpload:t.onFileUpload,onFileUploadError:t.onFileUpload})};this.detach=function(e,t){e.editable.off();e.popover.off();e.handle.off();e.dialog.off();if(!t.airMode){e.dropzone.off();e.toolbar.off();e.statusbar.off()}}};var C=function(){var t=function(e,t){var n=t.event;var r=t.value;var i=t.title;var s=t.className;var o=t.dropdown;var u=t.hide;return'<button type="button"'+' class="btn btn-transparent btn-sm btn-small'+(s?" "+s:"")+(o?" dropdown-toggle":"")+'"'+(o?' data-toggle="dropdown"':"")+(i?' title="'+i+'"':"")+(n?' data-event="'+n+'"':"")+(r?" data-value='"+r+"'":"")+(u?" data-hide='"+u+"'":"")+' tabindex="-1">'+e+(o?' <span class="caret"></span>':"")+"</button>"+(o||"")};var n=function(e,n){var r='<i class="'+e+'"></i>';return t(r,n)};var s=function(e,t){return'<div class="'+e+' popover bottom in" style="display: none;">'+'<div class="arrow"></div>'+'<div class="popover-content">'+t+"</div>"+"</div>"};var o=function(e,t,n,r){return'<div class="'+e+' modal" aria-hidden="false">'+'<div class="modal-dialog">'+'<div class="modal-content">'+(t?'<div class="modal-header">'+'<button type="button" class="close" aria-hidden="true" tabindex="-1">×</button>'+'<h4 class="modal-title">'+t+"</h4>"+"</div>":"")+'<form class="note-modal-form">'+'<div class="modal-body">'+n+"</div>"+(r?'<div class="modal-footer">'+r+"</div>":"")+"</form>"+"</div>"+"</div>"+"</div>"};var u={picture:function(e){return n("fa fa-picture-o",{event:"showImageDialog",title:e.image.image,hide:true})},link:function(e){return n("fa fa-link",{event:"showLinkDialog",title:e.link.link,hide:true})},table:function(e){var t='<ul class="note-table dropdown-menu">'+'<div class="note-dimension-picker">'+'<div class="note-dimension-picker-mousecatcher" data-event="insertTable" data-value="1x1"></div>'+'<div class="note-dimension-picker-highlighted"></div>'+'<div class="note-dimension-picker-unhighlighted"></div>'+"</div>"+'<div class="note-dimension-display"> 1 x 1 </div>'+"</ul>";return n("fa fa-table",{title:e.table.table,dropdown:t})},style:function(e,t){var r=t.styleTags.reduce(function(t,n){var r=e.style[n==="p"?"normal":n];return t+'<li><a data-event="formatBlock" href="#" data-value="'+n+'">'+(n==="p"||n==="pre"?r:"<"+n+">"+r+"</"+n+">")+"</a></li>"},"");return n("fa fa-magic",{title:e.style.style,dropdown:'<ul class="dropdown-menu">'+r+"</ul>"})},fontname:function(e,n){var i=n.fontNames.reduce(function(e,t){if(!r.isFontInstalled(t)){return e}return e+'<li><a data-event="fontName" href="#" data-value="'+t+'">'+'<i class="fa fa-check"></i> '+t+"</a></li>"},"");var s='<span class="note-current-fontname">'+n.defaultFontName+"</span>";return t(s,{title:e.font.name,dropdown:'<ul class="dropdown-menu">'+i+"</ul>"})},color:function(e){var n='<i class="fa fa-font" style="color:black;background-color:yellow;"></i>';var r=t(n,{className:"note-recent-color",title:e.color.recent,event:"color",value:'{"backColor":"yellow"}'});var i='<ul class="dropdown-menu">'+"<li>"+'<div class="btn-group">'+'<div class="note-palette-title">'+e.color.background+"</div>"+'<div class="note-color-reset" data-event="backColor"'+' data-value="inherit" title="'+e.color.transparent+'">'+e.color.setTransparent+"</div>"+'<div class="note-color-palette" data-target-event="backColor"></div>'+"</div>"+'<div class="btn-group">'+'<div class="note-palette-title">'+e.color.foreground+"</div>"+'<div class="note-color-reset" data-event="foreColor" data-value="inherit" title="'+e.color.reset+'">'+e.color.resetToDefault+"</div>"+'<div class="note-color-palette" data-target-event="foreColor"></div>'+"</div>"+"</li>"+"</ul>";var s=t("",{title:e.color.more,dropdown:i});return r+s},bold:function(e){return n("fa fa-bold",{event:"bold",title:e.font.bold})},italic:function(e){return n("fa fa-italic",{event:"italic",title:e.font.italic})},underline:function(e){return n("fa fa-underline",{event:"underline",title:e.font.underline})},clear:function(e){return n("fa fa-eraser",{event:"removeFormat",title:e.font.clear})},ul:function(e){return n("fa fa-list-ul",{event:"insertUnorderedList",title:e.lists.unordered})},ol:function(e){return n("fa fa-list-ol",{event:"insertOrderedList",title:e.lists.ordered})},paragraph:function(e){var t=n("fa fa-align-left",{title:e.paragraph.left,event:"justifyLeft"});var r=n("fa fa-align-center",{title:e.paragraph.center,event:"justifyCenter"});var i=n("fa fa-align-right",{title:e.paragraph.right,event:"justifyRight"});var s=n("fa fa-align-justify",{title:e.paragraph.justify,event:"justifyFull"});var o=n("fa fa-outdent",{title:e.paragraph.outdent,event:"outdent"});var u=n("fa fa-indent",{title:e.paragraph.indent,event:"indent"});var a='<div class="dropdown-menu">'+'<div class="note-align btn-group">'+t+r+i+s+"</div>"+'<div class="note-list btn-group">'+u+o+"</div>"+"</div>";return n("fa fa-align-left",{title:e.paragraph.paragraph,dropdown:a})},height:function(e,t){var r=t.lineHeights.reduce(function(e,t){return e+'<li><a data-event="lineHeight" href="#" data-value="'+parseFloat(t)+'">'+'<i class="fa fa-check"></i> '+t+"</a></li>"},"");return n("fa fa-text-height",{title:e.font.height,dropdown:'<ul class="dropdown-menu">'+r+"</ul>"})},help:function(e){return n("fa fa-question",{event:"showHelpDialog",title:e.options.help,hide:true})},fullscreen:function(e){return n("fa fa-arrows-alt",{event:"fullscreen",title:e.options.fullscreen})},codeview:function(e){return n("fa fa-code",{event:"codeview",title:e.options.codeview})},undo:function(e){return n("fa fa-undo",{event:"undo",title:e.history.undo})},redo:function(e){return n("fa fa-repeat",{event:"redo",title:e.history.redo})},hr:function(e){return n("fa fa-minus",{event:"insertHorizontalRule",title:e.hr.insert})}};var f=function(e,r){var i=function(){var t=n("fa fa-edit",{title:e.link.edit,event:"showLinkDialog",hide:true});var r=n("fa fa-unlink",{title:e.link.unlink,event:"unlink"});var i='<a href="http://www.google.com" target="_blank">www.google.com</a> '+'<div class="note-insert btn-group">'+t+r+"</div>";return s("note-link-popover",i)};var o=function(){var r=t('<span class="note-fontsize-10">100%</span>',{title:e.image.resizeFull,event:"resize",value:"1"});var i=t('<span class="note-fontsize-10">50%</span>',{title:e.image.resizeHalf,event:"resize",value:"0.5"});var o=t('<span class="note-fontsize-10">25%</span>',{title:e.image.resizeQuarter,event:"resize",value:"0.25"});var u=n("fa fa-align-left",{title:e.image.floatLeft,event:"floatMe",value:"left"});var a=n("fa fa-align-right",{title:e.image.floatRight,event:"floatMe",value:"right"});var f=n("fa fa-align-justify",{title:e.image.floatNone,event:"floatMe",value:"none"});var l=n("fa fa-square",{title:e.image.shapeRounded,event:"imageShape",value:"img-rounded"});var c=n("fa fa-circle-o",{title:e.image.shapeCircle,event:"imageShape",value:"img-circle"});var h=n("fa fa-picture-o",{title:e.image.shapeThumbnail,event:"imageShape",value:"img-thumbnail"});var p=n("fa fa-times",{title:e.image.shapeNone,event:"imageShape",value:""});var d=n("fa fa-trash-o",{title:e.image.remove,event:"removeMedia",value:"none"});var v='<div class="btn-group">'+r+i+o+"</div>"+'<div class="btn-group">'+u+a+f+"</div>"+'<div class="btn-group">'+l+c+h+p+"</div>"+'<div class="btn-group">'+d+"</div>";return s("note-image-popover",v)};var a=function(){var t="";for(var n=0,i=r.airPopover.length;n<i;n++){var o=r.airPopover[n];t+='<div class="note-'+o[0]+' btn-group">';for(var a=0,f=o[1].length;a<f;a++){t+=u[o[1][a]](e,r)}t+="</div>"}return s("note-air-popover",t)};return'<div class="note-popover">'+i()+o()+(r.airMode?a():"")+"</div>"};var l=function(){return'<div class="note-handle">'+'<div class="note-control-selection">'+'<div class="note-control-selection-bg"></div>'+'<div class="note-control-holder note-control-nw"></div>'+'<div class="note-control-holder note-control-ne"></div>'+'<div class="note-control-holder note-control-sw"></div>'+'<div class="note-control-sizing note-control-se"></div>'+'<div class="note-control-selection-info"></div>'+"</div>"+"</div>"};var c=function(e,t){var n="note-shortcut-col col-xs-6 note-shortcut-";var r=[];for(var i in t){r.push('<div class="'+n+'key">'+t[i].kbd+"</div>"+'<div class="'+n+'name">'+t[i].text+"</div>")}return'<div class="note-shortcut-row row"><div class="'+n+'title col-xs-offset-6">'+e+"</div></div>"+'<div class="note-shortcut-row row">'+r.join('</div><div class="note-shortcut-row row">')+"</div>"};var h=function(e){var t=[{kbd:"⌘ + B",text:e.font.bold},{kbd:"⌘ + I",text:e.font.italic},{kbd:"⌘ + U",text:e.font.underline},{kbd:"⌘ + \\",text:e.font.clear}];return c(e.shortcut.textFormatting,t)};var p=function(e){var t=[{kbd:"⌘ + Z",text:e.history.undo},{kbd:"⌘ + ⇧ + Z",text:e.history.redo},{kbd:"⌘ + ]",text:e.paragraph.indent},{kbd:"⌘ + [",text:e.paragraph.outdent},{kbd:"⌘ + ENTER",text:e.hr.insert}];return c(e.shortcut.action,t)};var d=function(e){var t=[{kbd:"⌘ + ⇧ + L",text:e.paragraph.left},{kbd:"⌘ + ⇧ + E",text:e.paragraph.center},{kbd:"⌘ + ⇧ + R",text:e.paragraph.right},{kbd:"⌘ + ⇧ + J",text:e.paragraph.justify},{kbd:"⌘ + ⇧ + NUM7",text:e.lists.ordered},{kbd:"⌘ + ⇧ + NUM8",text:e.lists.unordered}];return c(e.shortcut.paragraphFormatting,t)};var v=function(e){var t=[{kbd:"⌘ + NUM0",text:e.style.normal},{kbd:"⌘ + NUM1",text:e.style.h1},{kbd:"⌘ + NUM2",text:e.style.h2},{kbd:"⌘ + NUM3",text:e.style.h3},{kbd:"⌘ + NUM4",text:e.style.h4},{kbd:"⌘ + NUM5",text:e.style.h5},{kbd:"⌘ + NUM6",text:e.style.h6}];return c(e.shortcut.documentStyle,t)};var m=function(e,t){var n=t.extraKeys;var r=[];for(var i in n){if(n.hasOwnProperty(i)){r.push({kbd:i,text:n[i]})}}return c(e.shortcut.extraKeys,r)};var g=function(e,t){var n='class="note-shortcut note-shortcut-col col-sm-6 col-xs-12"';var r=["<div "+n+">"+p(e,t)+"</div>"+"<div "+n+">"+h(e,t)+"</div>","<div "+n+">"+v(e,t)+"</div>"+"<div "+n+">"+d(e,t)+"</div>"];if(t.extraKeys){r.push("<div "+n+">"+m(e,t)+"</div>")}return'<div class="note-shortcut-row row">'+r.join('</div><div class="note-shortcut-row row">')+"</div>"};var y=function(e){return e.replace(/⌘/g,"Ctrl").replace(/⇧/g,"Shift")};var b={image:function(e,t){var n="";if(t.maximumImageFileSize){var r=Math.floor(Math.log(t.maximumImageFileSize)/Math.log(1024));var i=(t.maximumImageFileSize/Math.pow(1024,r)).toFixed(2)*1+" "+" KMGTP"[r]+"B";n="<small>"+e.image.maximumFileSize+" : "+i+"</small>"}var s='<div class="form-group row-fluid note-group-select-from-files">'+"<label>"+e.image.selectFromFiles+"</label>"+'<input class="note-image-input" type="file" name="files" accept="image/*" multiple="multiple" />'+n+"</div>"+'<div class="form-group row-fluid">'+"<label>"+e.image.url+"</label>"+'<input class="note-image-url form-control span12" type="text" />'+"</div>";var u='<button href="#" class="btn btn-primary note-image-btn disabled" disabled>'+e.image.insert+"</button>";return o("note-image-dialog",e.image.insert,s,u)},link:function(e,t){var n='<div class="form-group row-fluid">'+"<label>"+e.link.textToDisplay+"</label>"+'<input class="note-link-text form-control span12" type="text" />'+"</div>"+'<div class="form-group row-fluid">'+"<label>"+e.link.url+"</label>"+'<input class="note-link-url form-control span12" type="text" />'+"</div>"+(!t.disableLinkTarget?'<div class="checkbox">'+"<label>"+'<input type="checkbox" checked> '+e.link.openInNewWindow+"</label>"+"</div>":"");var r='<button href="#" class="btn btn-primary note-link-btn disabled" disabled>'+e.link.insert+"</button>";return o("note-link-dialog",e.link.insert,n,r)},help:function(e,t){var n='<a class="modal-close pull-right" aria-hidden="true" tabindex="-1">'+e.shortcut.close+"</a>"+'<div class="title">'+e.shortcut.shortcuts+"</div>"+(r.isMac?g(e,t):y(g(e,t)))+'<p class="text-center">'+'<a href="//hackerwins.github.io/summernote/" target="_blank">Summernote 0.6.0</a> · '+'<a href="//github.com/HackerWins/summernote" target="_blank">Project</a> · '+'<a href="//github.com/HackerWins/summernote/issues" target="_blank">Issues</a>'+"</p>";return o("note-help-dialog","",n,"")}};var w=function(t,n){var r="";e.each(b,function(e,i){r+=i(t,n)});return'<div class="note-dialog">'+r+"</div>"};var E=function(){return'<div class="note-resizebar">'+'<div class="note-icon-bar"></div>'+'<div class="note-icon-bar"></div>'+'<div class="note-icon-bar"></div>'+"</div>"};var S=function(e){if(r.isMac){e=e.replace("CMD","⌘").replace("SHIFT","⇧")}return e.replace("BACKSLASH","\\").replace("SLASH","/").replace("LEFTBRACKET","[").replace("RIGHTBRACKET","]")};var x=function(t,n,r){var s=i.invertObject(n);var o=t.find("button");o.each(function(t,n){var r=e(n);var i=s[r.data("event")];if(i){r.attr("title",function(e,t){return t+" ("+S(i)+")"})}}).tooltip({container:"body",trigger:"hover",placement:r||"top"}).on("click",function(){e(this).tooltip("hide")})};var T=function(t,n){var r=n.colors;t.find(".note-color-palette").each(function(){var t=e(this),n=t.attr("data-target-event");var i=[];for(var s=0,o=r.length;s<o;s++){var u=r[s];var a=[];for(var f=0,l=u.length;f<l;f++){var c=u[f];a.push(['<button type="button" class="note-color-btn" style="background-color:',c,';" data-event="',n,'" data-value="',c,'" title="',c,'" data-toggle="button" tabindex="-1"></button>'].join(""))}i.push('<div class="note-color-row">'+a.join("")+"</div>")}t.html(i.join(""))})};this.createLayoutByAirMode=function(t,n){var s=n.langInfo;var o=n.keyMap[r.isMac?"mac":"pc"];var u=i.uniqueId();t.addClass("note-air-editor note-editable");t.attr({id:"note-editor-"+u,contentEditable:true});var a=document.body;var c=e(f(s,n));c.addClass("note-air-layout");c.attr("id","note-popover-"+u);c.appendTo(a);x(c,o);T(c,n);var h=e(l());h.addClass("note-air-layout");h.attr("id","note-handle-"+u);h.appendTo(a);var p=e(w(s,n));p.addClass("note-air-layout");p.attr("id","note-dialog-"+u);p.find("button.close, a.modal-close").click(function(){e(this).closest(".modal").modal("hide")});p.appendTo(a)};this.createLayoutByFrame=function(t,n){var i=n.langInfo;var s=e('<div class="note-editor"></div>');if(n.width){s.width(n.width)}if(n.height>0){e('<div class="note-statusbar">'+(n.disableResizeEditor?"":E())+"</div>").prependTo(s)}var o=!t.is(":disabled");var c=e('<div class="note-editable" contentEditable="'+o+'"></div>').prependTo(s);if(n.height){c.height(n.height)}if(n.direction){c.attr("dir",n.direction)}if(n.placeholder){c.attr("data-placeholder",n.placeholder)}c.html(a.html(t));e('<textarea class="note-codable"></textarea>').prependTo(s);var h="";for(var p=0,d=n.toolbar.length;p<d;p++){var v=n.toolbar[p][0];var m=n.toolbar[p][1];h+='<div class="note-'+v+' btn-group">';for(var g=0,y=m.length;g<y;g++){var b=u[m[g]];if(!e.isFunction(b)){continue}h+=b(i,n)}h+="</div>"}h='<div class="note-toolbar btn-toolbar">'+h+"</div>";var S=e(h).prependTo(s);var N=n.keyMap[r.isMac?"mac":"pc"];T(S,n);x(S,N,"bottom");var C=e(f(i,n)).prependTo(s);T(C,n);x(C,N);e(l()).prependTo(s);var k=e(w(i,n)).prependTo(s);k.find("button.close, a.modal-close").click(function(){e(this).closest(".modal").modal("hide")});e('<div class="note-dropzone"><div class="note-dropzone-message"></div></div>').prependTo(s);s.insertAfter(t);t.hide()};this.noteEditorFromHolder=function(t){if(t.hasClass("note-air-editor")){return t}else if(t.next().hasClass("note-editor")){return t.next()}else{return e()}};this.createLayout=function(e,t){if(this.noteEditorFromHolder(e).length){return}if(t.airMode){this.createLayoutByAirMode(e,t)}else{this.createLayoutByFrame(e,t)}};this.layoutInfoFromHolder=function(e){var t=this.noteEditorFromHolder(e);if(!t.length){return}var n=a.buildLayoutInfo(t);for(var r in n){if(n.hasOwnProperty(r)){n[r]=n[r].call()}}return n};this.removeLayout=function(e,t,n){if(n.airMode){e.removeClass("note-air-editor note-editable").removeAttr("id contentEditable");t.popover.remove();t.handle.remove();t.dialog.remove()}else{e.html(t.editable.html());t.editor.remove();e.show()}};this.getTemplate=function(){return{button:t,iconButton:n,dialog:o}};this.addButtonInfo=function(e,t){u[e]=t};this.addDialogInfo=function(e,t){b[e]=t}};e.summernote=e.summernote||{};e.extend(e.summernote,l);var k=new C;var L=new N;e.extend(e.summernote,{renderer:k,eventHandler:L,core:{agent:r,dom:a,range:f},pluginEvents:{}});e.summernote.addPlugin=function(t){if(t.buttons){e.each(t.buttons,function(e,t){k.addButtonInfo(e,t)})}if(t.dialogs){e.each(t.dialogs,function(e,t){k.addDialogInfo(e,t)})}if(t.events){e.each(t.events,function(t,n){e.summernote.pluginEvents[t]=n})}if(t.langs){e.each(t.langs,function(t,n){if(e.summernote.lang[t]){e.extend(e.summernote.lang[t],n)}})}if(t.options){e.extend(e.summernote.options,t.options)}};e.fn.extend({summernote:function(t){t=e.extend({},e.summernote.options,t);t.langInfo=e.extend(true,{},e.summernote.lang["en-US"],e.summernote.lang[t.lang]);this.each(function(n,r){var i=e(r);k.createLayout(i,t);var s=k.layoutInfoFromHolder(i);L.attach(s,t);if(a.isTextarea(i[0])){i.closest("form").submit(function(){var e=i.code();i.val(e);if(t.onsubmit){t.onsubmit(e)}})}});if(this.first().length&&t.focus){var n=k.layoutInfoFromHolder(this.first());n.editable.focus()}if(this.length&&t.oninit){t.oninit()}return this},code:function(t){if(t===undefined){var n=this.first();if(!n.length){return}var i=k.layoutInfoFromHolder(n);if(!!(i&&i.editable)){var s=i.editor.hasClass("codeview");if(s&&r.hasCodeMirror){i.codable.data("cmEditor").save()}return s?i.codable.val():i.editable.html()}return a.isTextarea(n[0])?n.val():n.html()}this.each(function(n,r){var i=k.layoutInfoFromHolder(e(r));if(i&&i.editable){i.editable.html(t)}});return this},destroy:function(){this.each(function(t,n){var r=e(n);var i=k.layoutInfoFromHolder(r);if(!i||!i.editable){return}var s=i.editor.data("options");L.detach(i,s);k.removeLayout(r,i,s)});return this}})})