/** * Super simple wysiwyg editor v0.7.1 * http://summernote.org/ * * summernote.js * Copyright 2013-2015 Alan Hong. and other contributors * summernote may be freely distributed under the MIT license./ * * * MODIFIED: Adding support for CodeMirror callbacks. * If we've got any callbacks for code mirror, register them. * Line 4670 * * Date: 2015-12-31T12:09Z */ !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):e(window.jQuery)}(function(e){"use strict";var t,n=function(){var t=function(e){return function(t){return e===t}},n=function(e,t){return e===t},o=function(e){return function(t,n){return t[e]===n[e]}},i=function(){return!0},r=function(){return!1},a=function(e){return function(){return!e.apply(e,arguments)}},s=function(e,t){return function(n){return e(n)&&t(n)}},l=function(e){return e},c=0,d=function(e){var t=++c+"";return e?e+t:t},u=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}},f=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t},h=function(e,t){return t=t||"",t+e.split(".").map(function(e){return e.substring(0,1).toUpperCase()+e.substring(1)}).join("")};return{eq:t,eq2:n,peq2:o,ok:i,fail:r,self:l,not:a,and:s,uniqueId:d,rect2bnd:u,invertObject:f,namespaceToCamel:h}}(),o=function(){var t=function(e){return e[0]},o=function(e){return e[e.length-1]},i=function(e){return e.slice(0,e.length-1)},r=function(e){return e.slice(1)},a=function(e,t){for(var n=0,o=e.length;o>n;n++){var i=e[n];if(t(i))return i}},s=function(e,t){for(var n=0,o=e.length;o>n;n++)if(!t(e[n]))return!1;return!0},l=function(t,n){return e.inArray(n,t)},c=function(e,t){return-1!==l(e,t)},d=function(e,t){return t=t||n.self,e.reduce(function(e,n){return e+t(n)},0)},u=function(e){for(var t=[],n=-1,o=e.length;++nn;n++)e[n]&&t.push(e[n]);return t},p=function(e){for(var t=[],n=0,o=e.length;o>n;n++)c(t,e[n])||t.push(e[n]);return t},g=function(e,t){var n=l(e,t);return-1===n?null:e[n+1]},v=function(e,t){var n=l(e,t);return-1===n?null:e[n-1]};return{head:t,last:o,initial:i,tail:r,prev:v,next:g,find:a,contains:c,all:s,sum:d,from:u,isEmpty:f,clusterBy:h,compact:m,unique:p}}(),i="function"==typeof define&&define.amd,r=function(t){var n="Comic Sans MS"===t?"Courier New":"Comic Sans MS",o=e("
").css({position:"absolute",left:"-9999px",top:"-9999px",fontSize:"200px"}).text("mmmmmmmmmwwwwwww").appendTo(document.body),i=o.css("fontFamily",n).width(),r=o.css("fontFamily",t+","+n).width();return o.remove(),i!==r},a=navigator.userAgent,s=/MSIE|Trident/i.test(a);if(s){var l=/MSIE (\d+[.]\d+)/.exec(a);l&&(t=parseFloat(l[1])),l=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(a),l&&(t=parseFloat(l[1]))}var c={isMac:navigator.appVersion.indexOf("Mac")>-1,isMSIE:s,isFF:/firefox/i.test(a),isWebkit:/webkit/i.test(a),isSafari:/safari/i.test(a),browserVersion:t,jqueryVersion:parseFloat(e.fn.jquery),isSupportAmd:i,hasCodeMirror:i?require.specified("codemirror"):!!window.CodeMirror,isFontInstalled:r,isW3CRangeSupport:!!document.createRange},d=String.fromCharCode(160),u="\ufeff",f=function(){var t=function(t){return t&&e(t).hasClass("note-editable")},i=function(t){return t&&e(t).hasClass("note-control-sizing")},r=function(e){return e=e.toUpperCase(),function(t){return t&&t.nodeName.toUpperCase()===e}},a=function(e){return e&&3===e.nodeType},s=function(e){return e&&1===e.nodeType},l=function(e){return e&&/^BR|^IMG|^HR|^IFRAME|^BUTTON/.test(e.nodeName.toUpperCase())},h=function(e){return t(e)?!1:e&&/^DIV|^P|^LI|^H[1-7]/.test(e.nodeName.toUpperCase())},m=function(e){return e&&/^H[1-7]/.test(e.nodeName.toUpperCase())},p=r("PRE"),g=r("LI"),v=function(e){return h(e)&&!g(e)},b=r("TABLE"),k=function(e){return!(T(e)||y(e)||C(e)||h(e)||b(e)||N(e))},y=function(e){return e&&/^UL|^OL/.test(e.nodeName.toUpperCase())},C=r("HR"),w=function(e){return e&&/^TD|^TH/.test(e.nodeName.toUpperCase())},N=r("BLOCKQUOTE"),T=function(e){return w(e)||N(e)||t(e)},I=r("A"),E=function(e){return k(e)&&!!D(e,h)},S=function(e){return k(e)&&!D(e,h)},H=r("BODY"),x=function(e,t){return e.nextSibling===t||e.previousSibling===t},P=function(e,t){t=t||n.ok;var o=[];return e.previousSibling&&t(e.previousSibling)&&o.push(e.previousSibling),o.push(e),e.nextSibling&&t(e.nextSibling)&&o.push(e.nextSibling),o},R=c.isMSIE&&c.browserVersion<11?" ":"
",L=function(e){return a(e)?e.nodeValue.length:e.childNodes.length},F=function(e){var t=L(e);return 0===t?!0:a(e)||1!==t||e.innerHTML!==R?o.all(e.childNodes,a)&&""===e.innerHTML?!0:!1:!0},A=function(e){l(e)||L(e)||(e.innerHTML=R)},D=function(e,n){for(;e;){if(n(e))return e;if(t(e))break;e=e.parentNode}return null},M=function(e,n){for(e=e.parentNode;e&&1===L(e);){if(n(e))return e;if(t(e))break;e=e.parentNode}return null},z=function(e,o){o=o||n.fail;var i=[];return D(e,function(e){return t(e)||i.push(e),o(e)}),i},B=function(e,t){var n=z(e);return o.last(n.filter(t))},U=function(t,n){for(var o=z(t),i=n;i;i=i.parentNode)if(e.inArray(i,o)>-1)return i;return null},$=function(e,t){t=t||n.fail;for(var o=[];e&&!t(e);)o.push(e),e=e.previousSibling;return o},O=function(e,t){t=t||n.fail;for(var o=[];e&&!t(e);)o.push(e),e=e.nextSibling;return o},j=function(e,t){var o=[];return t=t||n.ok,function i(n){e!==n&&t(n)&&o.push(n);for(var r=0,a=n.childNodes.length;a>r;r++)i(n.childNodes[r])}(e),o},K=function(t,n){var o=t.parentNode,i=e("<"+n+">")[0];return o.insertBefore(i,t),i.appendChild(t),i},V=function(e,t){var n=t.nextSibling,o=t.parentNode;return n?o.insertBefore(e,n):o.appendChild(e),e},W=function(t,n){return e.each(n,function(e,n){t.appendChild(n)}),t},q=function(e){return 0===e.offset},_=function(e){return e.offset===L(e.node)},G=function(e){return q(e)||_(e)},Y=function(e,t){for(;e&&e!==t;){if(0!==X(e))return!1;e=e.parentNode}return!0},Z=function(e,t){for(;e&&e!==t;){if(X(e)!==L(e.parentNode)-1)return!1;e=e.parentNode}return!0},J=function(e,t){return q(e)&&Y(e.node,t)},Q=function(e,t){return _(e)&&Z(e.node,t)},X=function(e){for(var t=0;e=e.previousSibling;)t+=1;return t},ee=function(e){return!!(e&&e.childNodes&&e.childNodes.length)},te=function(e,n){var o,i;if(0===e.offset){if(t(e.node))return null;o=e.node.parentNode,i=X(e.node)}else ee(e.node)?(o=e.node.childNodes[e.offset-1],i=L(o)):(o=e.node,i=n?0:e.offset-1);return{node:o,offset:i}},ne=function(e,n){var o,i;if(L(e.node)===e.offset){if(t(e.node))return null;o=e.node.parentNode,i=X(e.node)+1}else ee(e.node)?(o=e.node.childNodes[e.offset],i=0):(o=e.node,i=n?L(e.node):e.offset+1);return{node:o,offset:i}},oe=function(e,t){return e.node===t.node&&e.offset===t.offset},ie=function(e){if(a(e.node)||!ee(e.node)||F(e.node))return!0;var t=e.node.childNodes[e.offset-1],n=e.node.childNodes[e.offset];return t&&!l(t)||n&&!l(n)?!1:!0},re=function(e,t){for(;e;){if(t(e))return e;e=te(e)}return null},ae=function(e,t){for(;e;){if(t(e))return e;e=ne(e)}return null},se=function(e){if(!a(e.node))return!1;var t=e.node.nodeValue.charAt(e.offset-1);return t&&" "!==t&&t!==d},le=function(e,t,n,o){for(var i=e;i&&(n(i),!oe(i,t));){var r=o&&e.node!==i.node&&t.node!==i.node;i=ne(i,r)}},ce=function(e,t){var o=z(t,n.eq(e));return o.map(X).reverse()},de=function(e,t){for(var n=e,o=0,i=t.length;i>o;o++)n=n.childNodes.length<=t[o]?n.childNodes[n.childNodes.length-1]:n.childNodes[t[o]];return n},ue=function(e,t){var n=t&&t.isSkipPaddingBlankHTML,o=t&&t.isNotSplitEdgePoint;if(G(e)&&(a(e.node)||o)){if(q(e))return e.node;if(_(e))return e.node.nextSibling}if(a(e.node))return e.node.splitText(e.offset);var i=e.node.childNodes[e.offset],r=V(e.node.cloneNode(!1),e.node);return W(r,O(i)),n||(A(e.node),A(r)),r},fe=function(e,t,o){var i=z(t.node,n.eq(e));return i.length?1===i.length?ue(t,o):i.reduce(function(e,n){return e===t.node&&(e=ue(t,o)),ue({node:n,offset:e?f.position(e):L(n)},o)}):null},he=function(e,t){var n,i,r=t?h:T,a=z(e.node,r),s=o.last(a)||e.node;r(s)?(n=a[a.length-2],i=s):(n=s,i=n.parentNode);var l=n&&fe(n,e,{isSkipPaddingBlankHTML:t,isNotSplitEdgePoint:t});return l||i!==e.node||(l=e.node.childNodes[e.offset]),{rightNode:l,container:i}},me=function(e){return document.createElement(e)},pe=function(e){return document.createTextNode(e)},ge=function(e,t){if(e&&e.parentNode){if(e.removeNode)return e.removeNode(t);var n=e.parentNode;if(!t){var o,i,r=[];for(o=0,i=e.childNodes.length;i>o;o++)r.push(e.childNodes[o]);for(o=0,i=r.length;i>o;o++)n.insertBefore(r[o],e)}n.removeChild(e)}},ve=function(e,n){for(;e&&!t(e)&&n(e);){var o=e.parentNode;ge(e),e=o}},be=function(e,t){if(e.nodeName.toUpperCase()===t.toUpperCase())return e;var n=me(t);return e.style.cssText&&(n.style.cssText=e.style.cssText),W(n,o.from(e.childNodes)),V(n,e),ge(e),n},ke=r("TEXTAREA"),ye=function(e,t){var n=ke(e[0])?e.val():e.html();return t?n.replace(/[\n\r]/g,""):n},Ce=function(t,n){var o=ye(t);if(n){var i=/<(\/?)(\b(?!!)[^>\s]*)(.*?)(\s*\/?>)/g;o=o.replace(i,function(e,t,n){n=n.toUpperCase();var o=/^DIV|^TD|^TH|^P|^LI|^H[1-7]/.test(n)&&!!t,i=/^BLOCKQUOTE|^TABLE|^TBODY|^TR|^HR|^UL|^OL/.test(n);return e+(o||i?"\n":"")}),o=e.trim(o)}return o},we=function(t){var n=e(t),o=n.offset(),i=n.outerHeight(!0);return{left:o.left,top:o.top+i}},Ne=function(e,t){Object.keys(t).forEach(function(n){e.on(n,t[n])})},Te=function(e,t){Object.keys(t).forEach(function(n){e.off(n,t[n])})};return{NBSP_CHAR:d,ZERO_WIDTH_NBSP_CHAR:u,blank:R,emptyPara:"

"+R+"

",makePredByNodeName:r,isEditable:t,isControlSizing:i,isText:a,isElement:s,isVoid:l,isPara:h,isPurePara:v,isHeading:m,isInline:k,isBlock:n.not(k),isBodyInline:S,isBody:H,isParaInline:E,isPre:p,isList:y,isTable:b,isCell:w,isBlockquote:N,isBodyContainer:T,isAnchor:I,isDiv:r("DIV"),isLi:g,isBR:r("BR"),isSpan:r("SPAN"),isB:r("B"),isU:r("U"),isS:r("S"),isI:r("I"),isImg:r("IMG"),isTextarea:ke,isEmpty:F,isEmptyAnchor:n.and(I,F),isClosestSibling:x,withClosestSiblings:P,nodeLength:L,isLeftEdgePoint:q,isRightEdgePoint:_,isEdgePoint:G,isLeftEdgeOf:Y,isRightEdgeOf:Z,isLeftEdgePointOf:J,isRightEdgePointOf:Q,prevPoint:te,nextPoint:ne,isSamePoint:oe,isVisiblePoint:ie,prevPointUntil:re,nextPointUntil:ae,isCharPoint:se,walkPoint:le,ancestor:D,singleChildAncestor:M,listAncestor:z,lastAncestor:B,listNext:O,listPrev:$,listDescendant:j,commonAncestor:U,wrap:K,insertAfter:V,appendChildNodes:W,position:X,hasChildren:ee,makeOffsetPath:ce,fromOffsetPath:de,splitTree:fe,splitPoint:he,create:me,createText:pe,remove:ge,removeWhile:ve,replace:be,html:Ce,value:ye,posFromPlaceholder:we,attachEvents:Ne,detachEvents:Te}}(),h=function(t,i){var r=this,a=e.summernote.ui;return this.memos={},this.modules={},this.layoutInfo={},this.options=i,this.initialize=function(){return this.layoutInfo=a.createLayout(t,i),this._initialize(),t.hide(),this},this.destroy=function(){this._destroy(),t.removeData("summernote"),a.removeLayout(t,this.layoutInfo)},this.reset=function(){this.code(f.emptyPara),this._destroy(),this._initialize()},this._initialize=function(){var t=e.extend({},this.options.buttons);Object.keys(t).forEach(function(e){r.memo("button."+e,t[e])});var n=e.extend({},this.options.modules,e.summernote.plugins||{});Object.keys(n).forEach(function(e){r.module(e,n[e],!0)}),Object.keys(this.modules).forEach(function(e){r.initializeModule(e)})},this._destroy=function(){Object.keys(this.modules).reverse().forEach(function(e){r.removeModule(e)}),Object.keys(this.memos).forEach(function(e){r.removeMemo(e)})},this.code=function(e){var n=this.invoke("codeview.isActivated");return void 0===e?(this.invoke("codeview.sync"),n?this.layoutInfo.codable.val():this.layoutInfo.editable.html()):(n?this.layoutInfo.codable.val(e):this.layoutInfo.editable.html(e),t.val(e),this.triggerEvent("change",e),void 0)},this.isDisabled=function(){return"false"===this.layoutInfo.editable.attr("contenteditable")},this.enable=function(){this.layoutInfo.editable.attr("contenteditable",!0),this.invoke("toolbar.activate",!0)},this.disable=function(){this.invoke("codeview.isActivated")&&this.invoke("codeview.deactivate"),this.layoutInfo.editable.attr("contenteditable",!1),this.invoke("toolbar.deactivate",!0)},this.triggerEvent=function(){var e=o.head(arguments),i=o.tail(o.from(arguments)),r=this.options.callbacks[n.namespaceToCamel(e,"on")];r&&r.apply(t[0],i),t.trigger("summernote."+e,i)},this.initializeModule=function(e){var o=this.modules[e];o.shouldInitialize=o.shouldInitialize||n.ok,o.shouldInitialize()&&(o.initialize&&o.initialize(),o.events&&f.attachEvents(t,o.events))},this.module=function(e,t,n){return 1===arguments.length?this.modules[e]:(this.modules[e]=new t(this),void(n||this.initializeModule(e)))},this.removeModule=function(e){var n=this.modules[e];n.shouldInitialize()&&(n.events&&f.detachEvents(t,n.events),n.destroy&&n.destroy()),delete this.modules[e]},this.memo=function(e,t){return 1===arguments.length?this.memos[e]:void(this.memos[e]=t)},this.removeMemo=function(e){this.memos[e]&&this.memos[e].destroy&&this.memos[e].destroy(),delete this.memos[e]},this.createInvokeHandler=function(t,n){return function(o){o.preventDefault(),r.invoke(t,n||e(o.target).data("value")||e(o.currentTarget).data("value"))}},this.invoke=function(){var e=o.head(arguments),t=o.tail(o.from(arguments)),n=e.split("."),i=n.length>1,r=i&&o.head(n),a=i?o.last(n):o.head(n),s=this.modules[r||"editor"];return!r&&this[a]?this[a].apply(this,t):s&&s[a]&&s.shouldInitialize()?s[a].apply(s,t):void 0},this.initialize()};e.summernote=e.summernote||{lang:{}},e.fn.extend({summernote:function(){var t=e.type(o.head(arguments)),n="string"===t,i="object"===t,r=i?o.head(arguments):{};r=e.extend({},e.summernote.options,r),r.langInfo=e.extend(!0,{},e.summernote.lang["en-US"],e.summernote.lang[r.lang]),this.each(function(t,n){var o=e(n);if(!o.data("summernote")){var i=new h(o,r);o.data("summernote",i),o.data("summernote").triggerEvent("init",i.layoutInfo)}});var a=this.first();if(a.length){var s=a.data("summernote");if(n)return s.invoke.apply(s,o.from(arguments));r.focus&&s.invoke("editor.focus")}return this}});var m=function(t,n,o,i){this.render=function(r){var a=e(t);if(o&&o.contents&&a.html(o.contents),o&&o.className&&a.addClass(o.className),o&&o.data&&e.each(o.data,function(e,t){a.attr("data-"+e,t)}),o&&o.click&&a.on("click",o.click),n){var s=a.find(".note-children-container");n.forEach(function(e){e.render(s.length?s:a)})}return i&&i(a,o),o&&o.callback&&o.callback(a),r&&r.append(a),a}},p={create:function(t,n){return function(){var o=e.isArray(arguments[0])?arguments[0]:[],i="object"==typeof arguments[1]?arguments[1]:arguments[0];return i&&i.children&&(o=i.children),new m(t,o,i,n)}}},g=p.create('
'),v=p.create('
'),b=p.create('
'),k=p.create('