/*! ContentTools v1.6.9 by Anthony Blackshaw (https://github.com/anthonyjb) */ (function(){var a;a={},a.Machine=function(){function a(a){this.context=a,this._stateTransitions={},this._stateTransitionsAny={},this._defaultTransition=null,this._initialState=null,this._currentState=null}return a.prototype.addTransition=function(a,b,c,d){return c||(c=b),this._stateTransitions[[a,b]]=[c,d]},a.prototype.addTransitions=function(a,b,c,d){var e,f,g,h;for(c||(c=b),h=[],f=0,g=a.length;f-1;for(d=0;d<=this.length()-a.length();){for(c=!0,h=a.characters,e=f=0,g=h.length;ff;c=b<=f?++g:--g)a=d.characters[c],a.addTags.apply(a,e);return d},a.prototype.hasTags=function(){var a,b,c,d,e,f,g,h;for(d=2<=arguments.length?A.call(arguments,0,e=arguments.length-1):(e=0,[]),c=arguments[e++],void 0!==c&&"boolean"!=typeof c&&(d.push(c),c=!1),b=!1,h=this.characters,f=0,g=h.length;f0&&a._tags[0].selfClosing()&&(e+=a._tags[0].head()),e+=a.c()}for(w=h.reverse(),s=0,r=w.length;s0)for(f=this.charAt(a-1),g=f.tags(),f.isTag()&&g.shift(),"string"!=typeof b&&(h=h.copy()),q=h.characters,k=0,n=q.length;k0&&a._tags[0].selfClosing()&&e<3||e<2)){k=[],G=a._runLengthMap;for(n in G)i=G[n],k.push(i);for(k.sort(j),H=a._tags.slice(),B=0,y=H.length;B0&&c>b)break;if(-1===(f=this.indexOf(a,h)))break;g.push(f),h=f+1}for(g.push(this.length()),j=[],e=k=0,l=g.length-2;0<=l?k<=l:k>=l;e=0<=l?++k:--k)i=g[e],e>0&&(i+=1),d=g[e+1],j.push(this.slice(i,d));return j},a.prototype.startsWith=function(a){var b,c,d,e,f;if("string"==typeof a)return this.text().slice(0,a.length)===a;for(f=a.characters,c=d=0,e=f.length;df;c=b<=f?++g:--g)a=d.characters[c],a.removeTags.apply(a,e);return d},a.prototype.copy=function(){var a,b;return b=new r.String("",this._preserveWhitespace),b.characters=function(){var b,c,d,e;for(d=this.characters,e=[],b=0,c=d.length;b",x,n,function(){return this._pushTag()}),this.fsm.addTransitions([" ","\n"],y),this.fsm.addTransition(">",y,n,function(){return this._pushTag()}),this.fsm.addTransitions([" ","\n"],j),this.fsm.addTransition("/",j,y,function(){return this.selfClosing=!0}),this.fsm.addTransition(">",j,n,function(){return this._pushTag()}),this.fsm.addTransitions(a,j,g,function(){return this._back()}),this.fsm.addTransitions(u,v,null,function(a){return this.tagName+=a}),this.fsm.addTransitions([" ","\n"],v,w),this.fsm.addTransition(">",v,n,function(){return this._popTag()}),this.fsm.addTransitions([" ","\n"],w),this.fsm.addTransition(">",w,n,function(){return this._popTag()}),this.fsm.addTransitions(h,g,null,function(a){return this.attributeName+=a}),this.fsm.addTransitions([" ","\n"],g,i),this.fsm.addTransition("=",g,c),this.fsm.addTransitions([" ","\n"],i),this.fsm.addTransition("=",i,c),this.fsm.addTransitions(">",g,j,function(){return this._pushAttribute(),this._back()}),this.fsm.addTransitionAny(i,j,function(){return this._pushAttribute(),this._back()}),this.fsm.addTransitions([" ","\n"],c),this.fsm.addTransition("'",c,m),this.fsm.addTransition('"',c,k),this.fsm.addTransitions(b.concat(["&"],c,l,function(){return this._back()})),this.fsm.addTransition(" ",l,j,function(){return this._pushAttribute()}),this.fsm.addTransitions(["/",">"],l,j,function(){return this._back(),this._pushAttribute()}),this.fsm.addTransition("&",l,e),this.fsm.addTransitionAny(l,null,function(a){return this.attributeValue+=a}),this.fsm.addTransition("'",m,j,function(){return this._pushAttribute()}),this.fsm.addTransition("&",m,f),this.fsm.addTransitionAny(m,null,function(a){return this.attributeValue+=a}),this.fsm.addTransition('"',k,j,function(){return this._pushAttribute()}),this.fsm.addTransition("&",k,d),this.fsm.addTransitionAny(k,null,function(a){return this.attributeValue+=a}),this.fsm.addTransitions(q,e,null,function(a){return this.entity+=a}),this.fsm.addTransitions(q,f,function(a){return this.entity+=a}),this.fsm.addTransitions(q,d,null,function(a){return this.entity+=a}),this.fsm.addTransition(";",e,l,function(){return this.attributeValue+="&"+this.entity+";",this.entity=""}),this.fsm.addTransition(";",f,m,function(){return this.attributeValue+="&"+this.entity+";",this.entity=""}),this.fsm.addTransition(";",d,k,function(){return this.attributeValue+="&"+this.entity+";",this.entity=""})}return z.prototype._back=function(){return this.head--},z.prototype._pushAttribute=function(){return this.attributes[this.attributeName]=this.attributeValue,this.attributeName="",this.attributeValue=""},z.prototype._pushChar=function(a){var b,c;return b=new r.Character(a,this.tags),this._preserveWhitespace?void this.string.characters.push(b):!this.string.length()||b.isTag()||b.isEntity()||!b.isWhitespace()||(c=this.string.characters[this.string.length()-1],!c.isWhitespace()||c.isTag()||c.isEntity())?this.string.characters.push(b):void 0},z.prototype._pushTag=function(){var a,b;return a=new r.Tag(this.tagName,this.attributes),this.tags.push(a),a.selfClosing()&&(this._pushChar(""),this.tags.pop(),!this.selfClosed&&(b=this.tagName,B.call(r.Tag.SELF_CLOSING,b)>=0)&&this.fsm.reset()),this.tagName="",this.selfClosed=!1,this.attributes={}},z.prototype._popTag=function(){for(var a,b;;)if(b=this.tags.pop(),this.string.length()&&(a=this.string.characters[this.string.length()-1],a.isTag()||a.isEntity()||!a.isWhitespace()||a.removeTags(b)),b.name()===this.tagName.toLowerCase())break;return this.tagName=""},z.prototype.parse=function(a,b){var c,d;for(this._preserveWhitespace=b,this.reset(),a=this.preprocess(a),this.fsm.parser=this;this.head> "+d)}this.head++}return this.string},z.prototype.preprocess=function(a){return a=a.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),a=a.replace(//g,""),this._preserveWhitespace||(a=a.replace(/\s+/g," ")),a},z.prototype.reset=function(){return this.fsm.reset(),this.head=0,this.string=new r.String,this.entity="",this.tags=[],this.tagName="",this.selfClosing=!1,this.attributes={},this.attributeName="",this.attributeValue=""},z}(),r.Tag=function(){function a(a,b){var c,d;this._name=a.toLowerCase(),this._selfClosing=!0===r.Tag.SELF_CLOSING[this._name],this._head=null,this._attributes={};for(c in b)d=b[c],this._attributes[c]=d}return a.SELF_CLOSING={area:!0,base:!0,br:!0,hr:!0,img:!0,input:!0,"link meta":!0,wbr:!0},a.prototype.head=function(){var a,b,c,d;if(!this._head){a=[],d=this._attributes;for(b in d)c=d[b],c?a.push(b+'="'+c+'"'):a.push(""+b);a.sort(),a.unshift(this._name),this._head="<"+a.join(" ")+">"}return this._head},a.prototype.name=function(){return this._name},a.prototype.selfClosing=function(){return this._selfClosing},a.prototype.tail=function(){return this._selfClosing?"":""},a.prototype.attr=function(a,b){return void 0===b?this._attributes[a]:(this._attributes[a]=b,this._head=null)},a.prototype.removeAttr=function(a){if(void 0!==this._attributes[a])return delete this._attributes[a],this._head=null},a.prototype.copy=function(){return new r.Tag(this._name,this._attributes)},a}(),r.Character=function(){function a(a,b){this._c=a,a.length>1&&(this._c=a.toLowerCase()),this._tags=[],this.addTags.apply(this,b)}return a.prototype.c=function(){return this._c},a.prototype.isEntity=function(){return this._c.length>1},a.prototype.isTag=function(a){return!(0===this._tags.length||!this._tags[0].selfClosing())&&(!a||this._tags[0].name()===a)},a.prototype.isWhitespace=function(){var a;return" "===(a=this._c)||"\n"===a||" "===a||this.isTag("br")},a.prototype.tags=function(){var a;return function(){var b,c,d,e;for(d=this._tags,e=[],b=0,c=d.length;b0;)switch(d=f.shift(),d.nodeType){case Node.TEXT_NODE:if(d.textContent.length>=e)return[d,e];e-=d.textContent.length;break;case Node.ELEMENT_NODE:if(i=d.nodeName.toLowerCase(),g.call(b,i)>=0){if(0===e)return[d,0];e=Math.max(0,e-1)}else d.childNodes&&Array.prototype.unshift.apply(f,function(){var a,b,c,e;for(c=d.childNodes,e=[],a=0,b=c.length;a0;){if((h=d.shift())===c)return i=h.nodeName.toLowerCase(),g.call(b,i)>=0?f+1:f;switch(h.nodeType){case Node.TEXT_NODE:f+=h.textContent.length;break;case Node.ELEMENT_NODE:j=h.nodeName.toLowerCase(),g.call(b,j)>=0?f+=1:h.childNodes&&Array.prototype.unshift.apply(d,function(){var a,b,c,d;for(c=h.childNodes,d=[],a=0,b=c.length;a=0&&(l=1);break}if(c.collapsed)return[k,l,k,l];if(f===a)for(f=e[e.length-1],h=f.textContent.length,j=o=0,q=e.length;o-1)?(f.splice(e,1),f.length?a.setAttribute("class",f.join(" ")):a.removeAttribute("class")):void 0)}},"undefined"!=typeof window&&(window.ContentEdit=a),"undefined"!=typeof module&&module.exports&&(module.exports=a),c=function(){function b(){this._tagNames={}}return b.prototype.register=function(){var a,b,c,d,f,g;for(a=arguments[0],c=2<=arguments.length?e.call(arguments,1):[],g=[],d=0,f=c.length;d0)return this.children[0];for(f=[this].concat(this.parents()),d=0,e=f.length;d=0||(this.prototype[b]=c);return this},b.fromDOMElement=function(a){throw new Error("`fromDOMElement` not implemented")},b}(),a.NodeCollection=function(b){function c(){c.__super__.constructor.call(this),this.children=[]}return h(c,b),c.prototype.descendants=function(){var a,b,c;for(a=[],c=this.children.slice();c.length>0;)b=c.shift(),a.push(b),b.children&&b.children.length>0&&(c=b.children.slice().concat(c));return a},c.prototype.isMounted=function(){return!1},c.prototype.type=function(){return"NodeCollection"},c.prototype.attach=function(b,c){return b.parent()&&b.parent().detach(b),b._parent=this,void 0!==c?this.children.splice(c,0,b):this.children.push(b),b.mount&&this.isMounted()&&b.mount(),this.taint(),a.Root.get().trigger("attach",this,b)},c.prototype.commit=function(){var b,c,d,e;for(e=this.descendants(),c=0,d=e.length;c-1))},c.prototype.merge=function(a){return!(!this.can("merge")||!this.can("remove"))&&(this.constructor.mergers[a.type()]?this.constructor.mergers[a.type()](a,this):a.constructor.mergers[this.type()]?a.constructor.mergers[this.type()](a,this):void 0)},c.prototype.mount=function(){var b;return this._domElement||(this._domElement=document.createElement(this.tagName())),b=this.nextSibling(),b?this.parent().domElement().insertBefore(this._domElement,b.domElement()):this.isFixed()?(this.parent().domElement().parentNode.replaceChild(this._domElement,this.parent().domElement()),this.parent()._domElement=this._domElement):this.parent().domElement().appendChild(this._domElement),this._addDOMEventListeners(),this._addCSSClass("ce-element"),this._addCSSClass("ce-element--type-"+this.cssTypeName()),this.isFocused()&&this._addCSSClass("ce-element--focused"),a.Root.get().trigger("mount",this)},c.prototype.removeAttr=function(a){if(a=a.toLowerCase(),this._attributes[a])return delete this._attributes[a],this.isMounted()&&"class"!==a.toLowerCase()&&this._domElement.removeAttribute(a),this.taint()},c.prototype.removeCSSClass=function(a){var b,c,d;if(this.hasCSSClass(a))return d=function(){var a,c,d,e;for(d=this.attr("class").split(" "),e=[],a=0,c=d.length;a-1&&d.splice(c,1),d.length?this.attr("class",d.join(" ")):this.removeAttr("class"),this._removeCSSClass(a),this.taint()},c.prototype.tagName=function(a){return void 0===a?this._tagName:(this._tagName=a.toLowerCase(),this.isMounted()&&(this.unmount(),this.mount()),this.taint())},c.prototype.unmount=function(){return this._removeDOMEventListeners(),this.isFixed()?(this._removeCSSClass("ce-element"),this._removeCSSClass("ce-element--type-"+this.cssTypeName()),void this._removeCSSClass("ce-element--focused")):(this._domElement.parentNode&&this._domElement.parentNode.removeChild(this._domElement),this._domElement=null,a.Root.get().trigger("unmount",this))},c.prototype._addDOMEventListeners=function(){var a,b,c,d;this._domEventHandlers={dragstart:function(a){return function(a){return a.preventDefault()}}(),focus:function(a){return function(a){return a.preventDefault()}}(),keydown:function(a){return function(b){return a._onKeyDown(b)}}(this),keyup:function(a){return function(b){return a._onKeyUp(b)}}(this),mousedown:function(a){return function(b){if(0===b.button)return a._onMouseDown(b)}}(this),mousemove:function(a){return function(b){return a._onMouseMove(b)}}(this),mouseover:function(a){return function(b){return a._onMouseOver(b)}}(this),mouseout:function(a){return function(b){return a._onMouseOut(b)}}(this),mouseup:function(a){return function(b){if(0===b.button)return a._onMouseUp(b)}}(this),dragover:function(a){return function(a){return a.preventDefault()}}(),drop:function(a){return function(b){return a._onNativeDrop(b)}}(this),paste:function(a){return function(b){return a._onPaste(b)}}(this)},c=this._domEventHandlers,d=[];for(b in c)a=c[b],d.push(this._domElement.addEventListener(b,a));return d},c.prototype._onKeyDown=function(a){},c.prototype._onKeyUp=function(a){},c.prototype._onMouseDown=function(a){if(this.focus)return this.focus(!0)},c.prototype._onMouseMove=function(a){return this._onOver(a)},c.prototype._onMouseOver=function(a){return this._onOver(a)},c.prototype._onMouseOut=function(b){var c;if(this._removeCSSClass("ce-element--over"),c=a.Root.get(),c.dragging())return this._removeCSSClass("ce-element--drop"),this._removeCSSClass("ce-element--drop-above"),this._removeCSSClass("ce-element--drop-below"),this._removeCSSClass("ce-element--drop-center"),this._removeCSSClass("ce-element--drop-left"),this._removeCSSClass("ce-element--drop-right"),c._dropTarget=null},c.prototype._onMouseUp=function(a){return this._ieMouseDownEchoed=!1},c.prototype._onNativeDrop=function(b){return b.preventDefault(),b.stopPropagation(),a.Root.get().trigger("native-drop",this,b)},c.prototype._onPaste=function(b){return b.preventDefault(),b.stopPropagation(),a.Root.get().trigger("paste",this,b)},c.prototype._onOver=function(b){var c,d;if(this._addCSSClass("ce-element--over"),d=a.Root.get(),(c=d.dragging())&&c!==this&&!d._dropTarget&&this.can("drop")&&(this.constructor.droppers[c.type()]||c.constructor.droppers[this.type()]))return this._addCSSClass("ce-element--drop"),d._dropTarget=this},c.prototype._removeDOMEventListeners=function(){var a,b,c,d;c=this._domEventHandlers,d=[];for(b in c)a=c[b],d.push(this._domElement.removeEventListener(b,a));return d},c.prototype._addCSSClass=function(b){if(this.isMounted())return a.addCSSClass(this._domElement,b)},c.prototype._attributesToString=function(){return Object.getOwnPropertyNames(this._attributes).length>0?" "+a.attributesToString(this._attributes):""},c.prototype._removeCSSClass=function(b){if(this.isMounted())return a.removeCSSClass(this._domElement,b)},c.droppers={},c.mergers={},c.placements=["above","below"],c.getDOMElementAttributes=function(a){var b,c,d,e,f;if(!a.hasAttributes())return{};for(c={},f=a.attributes,d=0,e=f.length;da.HELPER_CHAR_LIMIT&&(d=d.substr(0,a.HELPER_CHAR_LIMIT)),b.innerHTML=d,b},c.prototype.detach=function(b){if(a.NodeCollection.prototype.detach.call(this,b),0===this.children.length&&this.parent())return this.parent().detach(this)},c.prototype.html=function(b){var c,d,e,f;return null==b&&(b=""),e=function(){var c,e,f,g;for(f=this.children,g=[],c=0,e=f.length;c"+f+e.join(f)+f+b+"")},c.prototype.mount=function(){var a,b,d,e,f,g,h,i;this._domElement=document.createElement(this._tagName),g=this._attributes;for(b in g)d=g[b],this._domElement.setAttribute(b,d);for(c.__super__.mount.call(this),h=this.children,i=[],e=0,f=h.length;ef.height-e&&(d=["bottom","left"]):b>f.width-e&&(cf.height-e&&(d=["bottom","right"])),d},c.prototype._getSizeInfo=function(){var a;return a=this.size(),"w "+a[0]+" × h "+a[1]},c}(a.Element),a.Region=function(b){function c(a){c.__super__.constructor.call(this),this._domElement=a,this.setContent(a)}return h(c,b),c.prototype.domElement=function(){return this._domElement},c.prototype.isMounted=function(){return!0},c.prototype.type=function(){return"Region"},c.prototype.html=function(b){var c,d;return null==b&&(b=""),d=a.LINE_ENDINGS,function(){var a,d,e,f;for(e=this.children,f=[],a=0,d=e.length;ae.width-a.DROP_EDGE_SIZE&&(d="right"),f="above",c>e.height/2&&(f="below"),[f,d]):null},c.prototype._onDrag=function(a){var b,c,d;if(ContentSelect.Range.unselectAll(),this._draggingDOMElement.style.left=a.pageX+"px",this._draggingDOMElement.style.top=a.pageY+"px",this._dropTarget&&(b=this._getDropPlacement(a.clientX,a.clientY),this._dropTarget._removeCSSClass("ce-element--drop-above"),this._dropTarget._removeCSSClass("ce-element--drop-below"),this._dropTarget._removeCSSClass("ce-element--drop-center"),this._dropTarget._removeCSSClass("ce-element--drop-left"),this._dropTarget._removeCSSClass("ce-element--drop-right"),c=b[0],f.call(this._dragging.constructor.placements,c)>=0&&this._dropTarget._addCSSClass("ce-element--drop-"+b[0]),d=b[1],f.call(this._dragging.constructor.placements,d)>=0))return this._dropTarget._addCSSClass("ce-element--drop-"+b[1])},c.prototype._onStopDragging=function(a){var b;return b=this._getDropPlacement(a.clientX,a.clientY),this._dragging.drop(this._dropTarget,b),this.cancelDragging()},c.prototype.startResizing=function(b,c,d,e,f){var g,h;if(!this._resizing)return this._resizing=b,this._resizingInit={corner:c,fixed:f,origin:[d,e],size:b.size()},this._resizing._addCSSClass("ce-element--resizing"),h=this._resizing.parent().domElement(),g=document.createElement("div"),g.setAttribute("class","ce-measure"),h.appendChild(g),this._resizingParentWidth=g.getBoundingClientRect().width,h.removeChild(g),document.addEventListener("mousemove",this._onResize),document.addEventListener("mouseup",this._onStopResizing),a.addCSSClass(document.body,"ce--resizing")},c.prototype._onResize=function(a){var b,c,d,e;return ContentSelect.Range.unselectAll(),d=this._resizingInit.origin[0]-a.clientX,"right"===this._resizingInit.corner[1]&&(d=-d),c=this._resizingInit.size[0]+d,c=Math.min(c,this._resizingParentWidth),this._resizingInit.fixed?b=c*this._resizing.aspectRatio():(e=this._resizingInit.origin[1]-a.clientY,"bottom"===this._resizingInit.corner[0]&&(e=-e),b=this._resizingInit.size[1]+e),this._resizing.size([c,b])},c.prototype._onStopResizing=function(b){return document.removeEventListener("mousemove",this._onResize),document.removeEventListener("mouseup",this._onStopResizing),this._resizing._removeCSSClass("ce-element--resizing"),this._resizing=null,this._resizingInit=null,this._resizingParentWidth=null,a.removeCSSClass(document.body,"ce--resizing")},c}(a.Node),a.Root=function(){function a(){}var c;return c=null,a.get=function(){return null!=c?c:c=new b},a}(),a.Static=function(b){function c(a,b,d){c.__super__.constructor.call(this,a,b),this._content=d}return h(c,b),c.prototype.cssTypeName=function(){return"static"},c.prototype.type=function(){return"Static"},c.prototype.typeName=function(){return"Static"},c.prototype.createDraggingDOMElement=function(){var b,d;if(this.isMounted())return b=c.__super__.createDraggingDOMElement.call(this),d=this._domElement.textContent,d.length>a.HELPER_CHAR_LIMIT&&(d=d.substr(0,a.HELPER_CHAR_LIMIT)),b.innerHTML=d,b},c.prototype.html=function(a){return null==a&&(a=""),HTMLString.Tag.SELF_CLOSING[this._tagName]?a+"<"+this._tagName+this._attributesToString()+">":a+"<"+this._tagName+this._attributesToString()+">"+this._content+a+""},c.prototype.mount=function(){var a,b,d;this._domElement=document.createElement(this._tagName),d=this._attributes;for(a in d)b=d[a],this._domElement.setAttribute(a,b);return this._domElement.innerHTML=this._content,c.__super__.mount.call(this)},c.prototype.blur=void 0,c.prototype.focus=void 0,c.prototype._onMouseDown=function(a){if(c.__super__._onMouseDown.call(this,a),void 0!==this.attr("data-ce-moveable"))return clearTimeout(this._dragTimeout),this._dragTimeout=setTimeout(function(b){return function(){return b.drag(a.pageX,a.pageY)}}(this),150)},c.prototype._onMouseOver=function(a){return c.__super__._onMouseOver.call(this,a),this._removeCSSClass("ce-element--over")},c.prototype._onMouseUp=function(a){if(c.__super__._onMouseUp.call(this,a),this._dragTimeout)return clearTimeout(this._dragTimeout)},c.droppers={Static:a.Element._dropVert},c.fromDOMElement=function(a){return new this(a.tagName,this.getDOMElementAttributes(a),a.innerHTML)},c}(a.Element),a.TagNames.get().register(a.Static,"static"),a.Text=function(b){function c(b,d,e){c.__super__.constructor.call(this,b,d),e instanceof HTMLString.String?this.content=e:a.TRIM_WHITESPACE?this.content=new HTMLString.String(e).trim():this.content=new HTMLString.String(e,!0)}return h(c,b),c.prototype.cssTypeName=function(){return"text"},c.prototype.type=function(){return"Text"},c.prototype.typeName=function(){return"Text"},c.prototype.blur=function(){return this.isMounted()&&this._syncContent(),this.content.isWhitespace()&&this.can("remove")?this.parent()&&this.parent().detach(this):this.isMounted()&&(document.documentMode||/Edge/.test(navigator.userAgent)||this._domElement.blur(),this._domElement.removeAttribute("contenteditable")),c.__super__.blur.call(this)},c.prototype.createDraggingDOMElement=function(){var b,d;if(this.isMounted())return b=c.__super__.createDraggingDOMElement.call(this),d=HTMLString.String.encode(this._domElement.textContent),d.length>a.HELPER_CHAR_LIMIT&&(d=d.substr(0,a.HELPER_CHAR_LIMIT)),b.innerHTML=d,b},c.prototype.drag=function(a,b){return this.storeState(),this._domElement.removeAttribute("contenteditable"),c.__super__.drag.call(this,a,b)},c.prototype.drop=function(a,b){return c.__super__.drop.call(this,a,b),this.restoreState()},c.prototype.focus=function(a){return this.isMounted()&&this._domElement.setAttribute("contenteditable",""),c.__super__.focus.call(this,a)},c.prototype.html=function(b){var c,d,e;return null==b&&(b=""),(!this._lastCached||this._lastCached"+e+b+a.INDENT+this._cached+e+b+""},c.prototype.mount=function(){var a,b,d;this._domElement=document.createElement(this._tagName),d=this._attributes;for(a in d)b=d[a],this._domElement.setAttribute(a,b);return this.updateInnerHTML(),c.__super__.mount.call(this)},c.prototype.restoreState=function(){if(this._savedSelection)return this.isMounted()&&this.isFocused()?(this._domElement.setAttribute("contenteditable",""),this._addCSSClass("ce-element--focused"),document.activeElement!==this.domElement()&&this.domElement().focus(),this._savedSelection.select(this._domElement),this._savedSelection=void 0):void(this._savedSelection=void 0)},c.prototype.selection=function(a){return void 0===a?this.isMounted()?ContentSelect.Range.query(this._domElement):new ContentSelect.Range(0,0):a.select(this._domElement)},c.prototype.storeState=function(){if(this.isMounted()&&this.isFocused())return this._savedSelection=ContentSelect.Range.query(this._domElement)},c.prototype.unmount=function(){return this._domElement.removeAttribute("contenteditable"),c.__super__.unmount.call(this)},c.prototype.updateInnerHTML=function(){return this._domElement.innerHTML=this.content.html(),ContentSelect.Range.prepareElement(this._domElement),this._flagIfEmpty()},c.prototype._onKeyDown=function(a){switch(a.keyCode){case 40:return this._keyDown(a);case 37:return this._keyLeft(a);case 39:return this._keyRight(a);case 38:return this._keyUp(a);case 9:return this._keyTab(a);case 8:return this._keyBack(a);case 46:return this._keyDelete(a);case 13:return this._keyReturn(a)}},c.prototype._onKeyUp=function(a){return c.__super__._onKeyUp.call(this,a),this._syncContent()},c.prototype._onMouseDown=function(b){if(c.__super__._onMouseDown.call(this,b),clearTimeout(this._dragTimeout),this._dragTimeout=setTimeout(function(a){return function(){return a.drag(b.pageX,b.pageY)}}(this),a.DRAG_HOLD_DURATION),0===this.content.length()&&a.Root.get().focused()===this)return b.preventDefault(),document.activeElement!==this._domElement&&this._domElement.focus(),new ContentSelect.Range(0,0).select(this._domElement)},c.prototype._onMouseMove=function(a){return this._dragTimeout&&clearTimeout(this._dragTimeout),c.__super__._onMouseMove.call(this,a)},c.prototype._onMouseOut=function(a){return this._dragTimeout&&clearTimeout(this._dragTimeout),c.__super__._onMouseOut.call(this,a)},c.prototype._onMouseUp=function(a){return this._dragTimeout&&clearTimeout(this._dragTimeout),c.__super__._onMouseUp.call(this,a)},c.prototype._keyBack=function(a){var b,c;if(c=ContentSelect.Range.query(this._domElement),0===c.get()[0]&&c.isCollapsed())return a.preventDefault(),b=this.previousContent(),this._syncContent(),b?b.merge(this):void 0},c.prototype._keyDelete=function(a){var b,c;if(c=ContentSelect.Range.query(this._domElement),this._atEnd(c)&&c.isCollapsed())return a.preventDefault(),b=this.nextContent(),b?this.merge(b):void 0},c.prototype._keyDown=function(a){return this._keyRight(a)},c.prototype._keyLeft=function(b){var c,d;if(d=ContentSelect.Range.query(this._domElement),0===d.get()[0]&&d.isCollapsed())return b.preventDefault(),c=this.previousContent(),c?(c.focus(),d=new ContentSelect.Range(c.content.length(),c.content.length()),d.select(c.domElement())):a.Root.get().trigger("previous-region",this.closest(function(a){return"Fixture"===a.type()||"Region"===a.type()}))},c.prototype._keyReturn=function(b){var c,d,e,f,g,h;if(b.preventDefault(),!(this.content.isWhitespace()&&!b.shiftKey^a.PREFER_LINE_BREAKS)){if(f=ContentSelect.Range.query(this._domElement),h=this.content.substring(0,f.get()[0]),g=this.content.substring(f.get()[1]),b.shiftKey^a.PREFER_LINE_BREAKS)return d=f.get()[0],e="
",this.content.length()===d&&(0!==this.content.length()&&this.content.characters[d-1].isTag("br")||(e="

")),this.content=this.content.insert(d,new HTMLString.String(e,!0),!0),this.updateInnerHTML(),d+=1,f=new ContentSelect.Range(d,d),f.select(this.domElement()),void this.taint();if(this.can("spawn"))return this.content=h.trim(),this.updateInnerHTML(),c=new this.constructor("p",{},g.trim()),this.parent().attach(c,this.parent().children.indexOf(this)+1),h.length()?(c.focus(),f=new ContentSelect.Range(0,0),f.select(c.domElement())):(f=new ContentSelect.Range(0,h.length()),f.select(this._domElement)),this.taint()}},c.prototype._keyRight=function(b){var c,d;if(d=ContentSelect.Range.query(this._domElement),this._atEnd(d)&&d.isCollapsed())return b.preventDefault(),c=this.nextContent(),c?(c.focus(),d=new ContentSelect.Range(0,0),d.select(c.domElement())):a.Root.get().trigger("next-region",this.closest(function(a){return"Fixture"===a.type()||"Region"===a.type()}))},c.prototype._keyTab=function(b){if(b.preventDefault(),this.isFixed())return b.shiftKey?a.Root.get().trigger("previous-region",this.closest(function(a){return"Fixture"===a.type()||"Region"===a.type()})):a.Root.get().trigger("next-region",this.closest(function(a){return"Fixture"===a.type()||"Region"===a.type()}))},c.prototype._keyUp=function(a){return this._keyLeft(a)},c.prototype._atEnd=function(a){return a.get()[0]>=this.content.length()},c.prototype._flagIfEmpty=function(){return 0===this.content.length()?this._addCSSClass("ce-element--empty"):this._removeCSSClass("ce-element--empty")},c.prototype._syncContent=function(a){var b,c;return c=this.content.html(),this.content=new HTMLString.String(this._domElement.innerHTML,this.content.preserveWhitespace()),b=this.content.html(),c!==b&&this.taint(),this._flagIfEmpty()},c.droppers={Static:a.Element._dropVert,Text:a.Element._dropVert},c.mergers={Text:function(a,b){var c;return c=b.content.length(),a.content.length()&&(b.content=b.content.concat(a.content)),b.isMounted()&&b.updateInnerHTML(),b.focus(),new ContentSelect.Range(c,c).select(b._domElement),a.parent()&&a.parent().detach(a),b.taint()}},c.fromDOMElement=function(a){return new this(a.tagName,this.getDOMElementAttributes(a),a.innerHTML.replace(/^\s+|\s+$/g,""))},c}(a.Element),a.TagNames.get().register(a.Text,"address","blockquote","h1","h2","h3","h4","h5","h6","p"),a.PreText=function(b){function c(b,c,d){d instanceof HTMLString.String?this.content=d:this.content=new HTMLString.String(d,!0),a.Element.call(this,b,c)}return h(c,b),c.TAB_INDENT=" ",c.prototype.cssTypeName=function(){return"pre-text"},c.prototype.type=function(){return"PreText"},c.prototype.typeName=function(){return"Preformatted"},c.prototype.blur=function(){return this.isMounted()&&(this._domElement.innerHTML=this.content.html()),c.__super__.blur.call(this)},c.prototype.html=function(a){var b;return null==a&&(a=""),(!this._lastCached||this._lastCached"+this._cached+""},c.prototype.updateInnerHTML=function(){var a;return a=this.content.html(),this._domElement.innerHTML=a,this._ensureEndZWS(),ContentSelect.Range.prepareElement(this._domElement),this._flagIfEmpty()},c.prototype._keyBack=function(a){var b;return b=ContentSelect.Range.query(this._domElement),b.get()[0]<=this.content.length()?c.__super__._keyBack.call(this,a):(b.set(this.content.length(),this.content.length()),b.select(this._domElement))},c.prototype._keyReturn=function(a){var b,c,d,e;return a.preventDefault(),c=ContentSelect.Range.query(this._domElement),b=c.get()[0]+1,0===c.get()[0]&&c.isCollapsed()?this.content=new HTMLString.String("\n",!0).concat(this.content):this._atEnd(c)&&c.isCollapsed()?this.content=this.content.concat(new HTMLString.String("\n",!0)):0===c.get()[0]&&c.get()[1]===this.content.length()?(this.content=new HTMLString.String("\n",!0),b=0):(e=this.content.substring(0,c.get()[0]),d=this.content.substring(c.get()[1]),this.content=e.concat(new HTMLString.String("\n",!0),d)),this.updateInnerHTML(),c.set(b,b),c.select(this._domElement),this.taint()},c.prototype._keyTab=function(b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B;for(b.preventDefault(),c=this.content.length(),k=a.PreText.TAB_INDENT,j=k.length,o=this.content.split("\n"),p=this.selection().get(),p[0]=Math.min(p[0],c),p[1]=Math.min(p[1],c),e=0,s=-1,f=-1,h=v=0,z=o.length;v-1&&f>-1));h=++v)e+=n;if(s===f)j-=(p[0]-e)%j,i=new HTMLString.String(Array(j+1).join(" "),!0),u=o[s].substring(0,p[0]-e),t=o[s].substring(p[1]-e),o[s]=u.concat(i,t),r=j;else if(b.shiftKey){for(g=0,h=w=s;s<=f?w<=f:w>=f;h=s<=f?++w:--w){for(B=o[h].characters.slice(),l=x=0,A=B.length;xj-1))&&d.isWhitespace();l=++x)o[h].characters.shift();h===s&&(g=l)}r=Math.max(-j,-g)}else{for(i=new HTMLString.String(k,!0),h=y=s;s<=f?y<=f:y>=f;h=s<=f?++y:--y)o[h]=i.concat(o[h]);r=j}return this.content=HTMLString.String.join(new HTMLString.String("\n",!0),o),this.updateInnerHTML(),q=this.content.length()-c,new ContentSelect.Range(p[0]+r,p[1]+q).select(this._domElement)},c.prototype._syncContent=function(a){var b,c;return this._ensureEndZWS(),c=this.content.html(),this.content=new HTMLString.String(this._domElement.innerHTML.replace(/\u200B$/g,""),this.content.preserveWhitespace()),b=this.content.html(),c!==b&&this.taint(),this._flagIfEmpty()},c.prototype._ensureEndZWS=function(){var a,b;if(this._domElement.lastChild&&(a=this._domElement.innerHTML,!("​"===a[a.length-1]&&a.indexOf("​")-1&&(b._domElement.innerHTML=a.replace(/\u200B/g,"")),b._domElement.lastChild.textContent+="​"}}(this),this._savedSelection?b():(this.storeState(),b(),this.restoreState())},c.droppers={PreText:a.Element._dropVert,Static:a.Element._dropVert,Text:a.Element._dropVert},c.mergers={},c.fromDOMElement=function(a){return new this(a.tagName,this.getDOMElementAttributes(a),a.innerHTML)},c}(a.Text),a.TagNames.get().register(a.PreText,"pre"),a.Image=function(b){function c(a,b){var d;c.__super__.constructor.call(this,"img",a),this.a=b||null,d=this.size(),this._aspectRatio=d[1]/d[0]}return h(c,b),c.prototype.cssTypeName=function(){return"image"},c.prototype.type=function(){return"Image"},c.prototype.typeName=function(){return"Image"},c.prototype.createDraggingDOMElement=function(){var a;if(this.isMounted())return a=c.__super__.createDraggingDOMElement.call(this),a.style.backgroundImage="url('"+this._attributes.src+"')",a},c.prototype.html=function(b){var c,d,e;return null==b&&(b=""),d=b+"",this.a?(e=a.LINE_ENDINGS,c=a.attributesToString(this.a),c+=' data-ce-tag="img"',b+""+e+a.INDENT+d+e+b+""):d},c.prototype.mount=function(){var a,b;return this._domElement=document.createElement("div"),a="",this.a&&this.a.class&&(a+=" "+this.a.class),this._attributes.class&&(a+=" "+this._attributes.class),this._domElement.setAttribute("class",a),b=this._attributes.style?this._attributes.style:"",b+="background-image:url('"+this._attributes.src+"');",this._attributes.width&&(b+="width:"+this._attributes.width+"px;"),this._attributes.height&&(b+="height:"+this._attributes.height+"px;"),this._domElement.setAttribute("style",b),c.__super__.mount.call(this)},c.prototype.unmount=function(){var a,b;return this.isFixed()&&(b=document.createElement("div"),b.innerHTML=this.html(),a=b.querySelector("a, img"),this._domElement.parentNode.replaceChild(a,this._domElement),this._domElement=a),c.__super__.unmount.call(this)},c.droppers={Image:a.Element._dropBoth,PreText:a.Element._dropBoth,Static:a.Element._dropBoth,Text:a.Element._dropBoth},c.placements=["above","below","left","right","center"],c.fromDOMElement=function(a){var b,c,d,e,f,g,h,i,j;if(b=null,"a"===a.tagName.toLowerCase()){ for(b=this.getDOMElementAttributes(a),f=function(){var b,c,e,f;for(e=a.childNodes,f=[],b=0,c=e.length;b",b+"<"+this.tagName()+" "+d+">"+f+a.INDENT+e+f+b+""},c.prototype.mount=function(){var a,b,d,e,f,g;this._domElement=document.createElement(this.tagName()),g=this._attributes;for(b in g)f=g[b],"alt"!==b&&"style"!==b&&this._domElement.setAttribute(b,f);return a="",this.a&&this.a.class&&(a+=" "+this.a.class),this._attributes.class&&(a+=" "+this._attributes.class),this._domElement.setAttribute("class",a),d=this._attributes.style?this._attributes.style:"",e=document.createElement("div"),e.setAttribute("style",d.trim()),e.style.backgroundImage=null,d=e.getAttribute("style"),d=[d.trim(),"background-image:url('"+this.src()+"');"].join(" "),this._domElement.setAttribute("style",d.trim()),c.__super__.mount.call(this)},c.prototype.src=function(a){return void 0===a?this._src:(this._src=a,this.isMounted()&&(this.unmount(),this.mount()),this.taint())},c.prototype.unmount=function(){var a,b;return this.isFixed()?(b=document.createElement("div"),b.innerHTML=this.html(),a=b.firstElementChild,this._domElement.parentNode.replaceChild(a,this._domElement),this._domElement=a,this.parent()._domElement=this._domElement):c.__super__.unmount.call(this)},c.prototype._attributesToString=function(){var b,c,d,e,f,g;this._attributes.style?(d=this._attributes.style?this._attributes.style:"",e=document.createElement("div"),e.setAttribute("style",d.trim()),e.style.backgroundImage=null,d=e.getAttribute("style"),d=[d.trim(),"background-image:url('"+this.src()+"');"].join(" "),this._attributes.style=d.trim()):this._attributes.style="background-image:url('"+this.src()+"');",b={},g=this._attributes;for(c in g)f=g[c],"alt"!==c&&(b[c]=f);return" "+a.attributesToString(b)},c.droppers={ImageFixture:a.Element._dropVert,Image:a.Element._dropVert,PreText:a.Element._dropVert,Text:a.Element._dropVert},c.fromDOMElement=function(a){var b,c,d,e,f,g,h,i;for(a.tagName,c=this.getDOMElementAttributes(a),g="",b="",f=function(){var b,c,e,f;for(e=a.childNodes,f=[],b=0,c=e.length;b80&&(a=a.substr(0,80)+"..."),a},c.prototype.createDraggingDOMElement=function(){var a;if(this.isMounted())return a=c.__super__.createDraggingDOMElement.call(this),a.innerHTML=this._title(),a},c.prototype.html=function(b){var c,d,e,f,g,h,i;if(null==b&&(b=""),d=a.LINE_ENDINGS,"video"===this.tagName()){for(f=[],i=this.sources,g=0,h=i.length;g");return b+""+d+f.join(d)+d+b+""}return b+"<"+this._tagName+this._attributesToString()+">"},c.prototype.mount=function(){var a;return this._domElement=document.createElement("div"),this.a&&this.a.class?this._domElement.setAttribute("class",this.a.class):this._attributes.class&&this._domElement.setAttribute("class",this._attributes.class),a=this._attributes.style?this._attributes.style:"",this._attributes.width&&(a+="width:"+this._attributes.width+"px;"),this._attributes.height&&(a+="height:"+this._attributes.height+"px;"),this._domElement.setAttribute("style",a),this._domElement.setAttribute("data-ce-title",this._title()),c.__super__.mount.call(this)},c.prototype.unmount=function(){var a,b;return this.isFixed()&&(b=document.createElement("div"),b.innerHTML=this.html(),a=b.querySelector("iframe"),this._domElement.parentNode.replaceChild(a,this._domElement),this._domElement=a),c.__super__.unmount.call(this)},c.droppers={Image:a.Element._dropBoth,PreText:a.Element._dropBoth,Static:a.Element._dropBoth,Text:a.Element._dropBoth,Video:a.Element._dropBoth},c.placements=["above","below","left","right","center"],c.fromDOMElement=function(a){var b,c,d,e,f,g;for(d=function(){var c,d,e,f;for(e=a.childNodes,f=[],c=0,d=e.length;c0?this.children[0]:null},c.prototype.type=function(){return"ListItem"},c.prototype.html=function(b){var c;return null==b&&(b=""),c=[b+""],this.listItemText()&&c.push(this.listItemText().html(b+a.INDENT)),this.list()&&c.push(this.list().html(b+a.INDENT)),c.push(b+""),c.join(a.LINE_ENDINGS)},c.prototype.indent=function(){var b;if(this.can("indent")&&0!==this.parent().children.indexOf(this))return b=this.previousSibling(),b.list()||b.attach(new a.List(b.parent().tagName())),this.listItemText().storeState(),this.parent().detach(this),b.list().attach(this),this.listItemText().restoreState()},c.prototype.remove=function(){var a,b,c,d,e,f;if(this.parent()){if(c=this.parent().children.indexOf(this),this.list())for(f=this.list().children.slice(),b=d=0,e=f.length;d0)for(i._getChild("tbody")||i.attach(new a.TableSection("tbody")),l=0,n=f.length;l0)return!1;return!0},c.prototype.type=function(){return"TableRow"},c.prototype.typeName=function(){return"Table row"},c.prototype._onMouseOver=function(a){return c.__super__._onMouseOver.call(this,a),this._removeCSSClass("ce-element--over")},c.droppers={TableRow:a.Element._dropVert},c.fromDOMElement=function(b){var c,d,e,f,g,h,i;for(f=new this(this.getDOMElementAttributes(b)),e=function(){var a,d,e,f;for(e=b.childNodes,f=[],a=0,d=e.length;a0?this.children[0]:null},c.prototype.type=function(){return"TableCell"},c.prototype.html=function(b){var c;return null==b&&(b=""),c=[b+"<"+this.tagName()+this._attributesToString()+">"],this.tableCellText()&&c.push(this.tableCellText().html(b+a.INDENT)),c.push(b+""),c.join(a.LINE_ENDINGS)},c.prototype._onMouseOver=function(a){return c.__super__._onMouseOver.call(this,a),this._removeCSSClass("ce-element--over")},c.prototype._addDOMEventListeners=function(){},c.prototype._removeDOMEventListners=function(){},c.fromDOMElement=function(b){var c,d;return c=new this(b.tagName,this.getDOMElementAttributes(b)),d=new a.TableCellText(b.innerHTML.replace(/^\s+|\s+$/g,"")),c.attach(d),c},c}(a.ElementCollection),a.TableCellText=function(b){function c(a){c.__super__.constructor.call(this,"div",{},a)}return h(c,b),c.prototype.cssTypeName=function(){return"table-cell-text"},c.prototype.type=function(){return"TableCellText"},c.prototype._isInFirstRow=function(){var a,b,c,d;return a=this.parent(),b=a.parent(),c=b.parent(),d=c.parent(),c===d.firstSection()&&b===c.children[0]},c.prototype._isInLastRow=function(){var a,b,c,d;return a=this.parent(),b=a.parent(),c=b.parent(),d=c.parent(),c===d.lastSection()&&b===c.children[c.children.length-1]},c.prototype._isLastInSection=function(){var a,b,c;return a=this.parent(),b=a.parent(),c=b.parent(),b===c.children[c.children.length-1]&&a===b.children[b.children.length-1]},c.prototype.blur=function(){return this.isMounted()&&(this._domElement.blur(),this._domElement.removeAttribute("contenteditable")),a.Element.prototype.blur.call(this)},c.prototype.can=function(a,b){if(b)throw new Error("Cannot set behaviour for ListItemText");return this.parent().can(a)},c.prototype.html=function(b){var c;return null==b&&(b=""),(!this._lastCached||this._lastCached0&&d.setAttribute("class",a.join(" ")),b)for(e in b)f=b[e],d.setAttribute(e,f);return c&&(d.innerHTML=c),d},a}(),b.WidgetUI=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}return g(b,a),b.prototype.attach=function(a,c){if(b.__super__.attach.call(this,a,c),!this.isMounted())return a.mount()},b.prototype.detach=function(a){if(b.__super__.detach.call(this,a),this.isMounted())return a.unmount()},b.prototype.detatch=function(a){return console.log("Please call detach, detatch will be removed in release 1.4.x"),this.detach(a)},b.prototype.show=function(){var a;return this._hideTimeout&&(clearTimeout(this._hideTimeout),this._hideTimeout=null,this.unmount()),this.isMounted()||this.mount(),a=function(a){return function(){return a.addCSSClass("ct-widget--active"),a._showTimeout=null}}(this),this._showTimeout=setTimeout(a,100)},b.prototype.hide=function(){var a;if(this._showTimeout&&(clearTimeout(this._showTimeout),this._showTimeout=null),this.removeCSSClass("ct-widget--active"),a=function(b){return function(){return b._hideTimeout=null,window.getComputedStyle?parseFloat(window.getComputedStyle(b._domElement).opacity)<.01?b.unmount():b._hideTimeout=setTimeout(a,250):void b.unmount()}}(this),this.isMounted())return this._hideTimeout=setTimeout(a,250)},b}(b.ComponentUI),b.AnchoredComponentUI=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}return g(b,a),b.prototype.mount=function(a,b){return null==b&&(b=null),a.insertBefore(this._domElement,b),this._addDOMEventListeners()},b}(b.ComponentUI),b.Event=function(){function a(a,b){this._name=a,this._detail=b,this._timeStamp=Date.now(),this._defaultPrevented=!1,this._propagationStopped=!1}return a.prototype.defaultPrevented=function(){return this._defaultPrevented},a.prototype.detail=function(){return this._detail},a.prototype.name=function(){return this._name},a.prototype.propagationStopped=function(){return this._propagationStopped},a.prototype.timeStamp=function(){return this._timeStamp},a.prototype.preventDefault=function(){return this._defaultPrevented=!0},a.prototype.stopImmediatePropagation=function(){return this._propagationStopped=!0},a}(),b.FlashUI=function(a){function c(a){c.__super__.constructor.call(this),this.mount(a)}return g(c,a),c.prototype.mount=function(a){var d;return this._domElement=this.constructor.createDiv(["ct-flash","ct-flash--active","ct-flash--"+a,"ct-widget","ct-widget--active"]),c.__super__.mount.call(this,b.EditorApp.get().domElement()),d=function(a){return function(){return window.getComputedStyle?parseFloat(window.getComputedStyle(a._domElement).opacity)<.01?a.unmount():setTimeout(d,250):void a.unmount()}}(this),setTimeout(d,250)},c}(b.AnchoredComponentUI),b.IgnitionUI=function(a){function b(){b.__super__.constructor.call(this),this._revertToState="ready",this._state="ready"}return g(b,a),b.prototype.busy=function(a){if(this.dispatchEvent(this.createEvent("busy",{busy:a}))){if(a===("busy"===this._state))return;return a?(this._revertToState=this._state,this.state("busy")):this.state(this._revertToState)}},b.prototype.cancel=function(){if(this.dispatchEvent(this.createEvent("cancel")))return this.state("ready")},b.prototype.confirm=function(){if(this.dispatchEvent(this.createEvent("confirm")))return this.state("ready")},b.prototype.edit=function(){if(this.dispatchEvent(this.createEvent("edit")))return this.state("editing")},b.prototype.mount=function(){return b.__super__.mount.call(this),this._domElement=this.constructor.createDiv(["ct-widget","ct-ignition","ct-ignition--ready"]),this.parent().domElement().appendChild(this._domElement),this._domEdit=this.constructor.createDiv(["ct-ignition__button","ct-ignition__button--edit"]),this._domElement.appendChild(this._domEdit),this._domConfirm=this.constructor.createDiv(["ct-ignition__button","ct-ignition__button--confirm"]),this._domElement.appendChild(this._domConfirm),this._domCancel=this.constructor.createDiv(["ct-ignition__button","ct-ignition__button--cancel"]),this._domElement.appendChild(this._domCancel),this._domBusy=this.constructor.createDiv(["ct-ignition__button","ct-ignition__button--busy"]),this._domElement.appendChild(this._domBusy),this._addDOMEventListeners()},b.prototype.state=function(a){if(void 0===a)return this._state;if(this._state!==a&&this.dispatchEvent(this.createEvent("statechange",{state:a})))return this._state=a,this.removeCSSClass("ct-ignition--busy"),this.removeCSSClass("ct-ignition--editing"),this.removeCSSClass("ct-ignition--ready"), "busy"===this._state?this.addCSSClass("ct-ignition--busy"):"editing"===this._state?this.addCSSClass("ct-ignition--editing"):"ready"===this._state?this.addCSSClass("ct-ignition--ready"):void 0},b.prototype.unmount=function(){return b.__super__.unmount.call(this),this._domEdit=null,this._domConfirm=null,this._domCancel=null},b.prototype._addDOMEventListeners=function(){return this._domEdit.addEventListener("click",function(a){return function(b){return b.preventDefault(),a.edit()}}(this)),this._domConfirm.addEventListener("click",function(a){return function(b){return b.preventDefault(),a.confirm()}}(this)),this._domCancel.addEventListener("click",function(a){return function(b){return b.preventDefault(),a.cancel()}}(this))},b}(b.WidgetUI),b.InspectorUI=function(a){function c(){c.__super__.constructor.call(this),this._tagUIs=[]}return g(c,a),c.prototype.mount=function(){return this._domElement=this.constructor.createDiv(["ct-widget","ct-inspector"]),this.parent().domElement().appendChild(this._domElement),this._domTags=this.constructor.createDiv(["ct-inspector__tags","ct-tags"]),this._domElement.appendChild(this._domTags),this._domCounter=this.constructor.createDiv(["ct-inspector__counter"]),this._domElement.appendChild(this._domCounter),this.updateCounter(),this._addDOMEventListeners(),this._handleFocusChange=function(a){return function(){return a.updateTags()}}(this),ContentEdit.Root.get().bind("blur",this._handleFocusChange),ContentEdit.Root.get().bind("focus",this._handleFocusChange),ContentEdit.Root.get().bind("mount",this._handleFocusChange)},c.prototype.unmount=function(){return c.__super__.unmount.call(this),this._domTags=null,ContentEdit.Root.get().unbind("blur",this._handleFocusChange),ContentEdit.Root.get().unbind("focus",this._handleFocusChange),ContentEdit.Root.get().unbind("mount",this._handleFocusChange)},c.prototype.updateCounter=function(){var a,c,d,e,f,g,h,i,j,k,l;if(this.isMounted()){for(c="",l=b.EditorApp.get().orderedRegions(),j=0,k=l.length;j]*>/gi,""),c=c.replace(/[\u200B]+/,""),c=c.replace(/['";:,.?¿\-!¡]+/g,""),i=(c.match(/\S+/g)||[]).length,i=i.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),(d=ContentEdit.Root.get().focused())&&"PreText"===d.type()&&d.selection().isCollapsed())?(e=0,a=1,h=d.content.substring(0,d.selection().get()[0]),f=h.text().split("\n"),e=f.length,a=f[f.length-1].length+1,e=e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),a=a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","),this._domCounter.textContent=i+" / "+e+":"+a):void(this._domCounter.textContent=i)}},c.prototype.updateTags=function(){var a,c,d,e,f,g,h,i,j;for(a=ContentEdit.Root.get().focused(),i=this._tagUIs,e=0,g=i.length;ewindow.innerWidth&&(this._domElement.style.left=window.innerWidth-a.width+"px"),a.top+a.height>window.innerHeight&&(this._domElement.style.top=window.innerHeight-a.height+"px"),a.left<0&&(this._domElement.style.left="0px"),a.top<0&&(this._domElement.style.top="0px"),a=this._domElement.getBoundingClientRect(),window.localStorage.setItem("ct-toolbox-position",a.left+","+a.top)},c.prototype._removeDOMEventListeners=function(){return this.isMounted()&&this._domGrip.removeEventListener("mousedown",this._onStartDragging),window.removeEventListener("keydown",this._handleKeyDown),window.removeEventListener("resize",this._handleResize),clearInterval(this._updateToolsInterval)},c.prototype._onDrag=function(a){return ContentSelect.Range.unselectAll(),this._domElement.style.left=a.clientX-this._draggingOffset.x+"px",this._domElement.style.top=a.clientY-this._draggingOffset.y+"px"},c.prototype._onStartDragging=function(a){var b;if(a.preventDefault(),!this.isDragging())return this._dragging=!0,this.addCSSClass("ct-toolbox--dragging"),b=this._domElement.getBoundingClientRect(),this._draggingOffset={x:a.clientX-b.left,y:a.clientY-b.top},document.addEventListener("mousemove",this._onDrag),document.addEventListener("mouseup",this._onStopDragging),ContentEdit.addCSSClass(document.body,"ce--dragging")},c.prototype._onStopDragging=function(a){if(this.isDragging())return this._contain(),document.removeEventListener("mousemove",this._onDrag),document.removeEventListener("mouseup",this._onStopDragging),this._draggingOffset=null,this._dragging=!1,this.removeCSSClass("ct-toolbox--dragging"),ContentEdit.removeCSSClass(document.body,"ce--dragging")},c}(b.WidgetUI),b.ToolUI=function(a){function b(a){this._onMouseUp=h(this._onMouseUp,this),this._onMouseLeave=h(this._onMouseLeave,this),this._onMouseDown=h(this._onMouseDown,this),this._addDOMEventListeners=h(this._addDOMEventListeners,this),b.__super__.constructor.call(this),this.tool=a,this._mouseDown=!1,this._disabled=!1}return g(b,a),b.prototype.apply=function(a,b){var c,d;if(this.tool.canApply(a,b))return d={element:a,selection:b},c=function(a){return function(b){if(b)return a.dispatchEvent(a.createEvent("applied",d))}}(this),this.dispatchEvent(this.createEvent("apply",d))?this.tool.apply(a,b,c):void 0},b.prototype.disabled=function(a){if(void 0===a)return this._disabled;if(this._disabled!==a)return this._disabled=a,a?(this._mouseDown=!1,this.addCSSClass("ct-tool--disabled"),this.removeCSSClass("ct-tool--applied")):this.removeCSSClass("ct-tool--disabled")},b.prototype.mount=function(a,c){return null==c&&(c=null),this._domElement=this.constructor.createDiv(["ct-tool","ct-tool--"+this.tool.icon]),this._domElement.setAttribute("data-ct-tooltip",ContentEdit._(this.tool.label)),b.__super__.mount.call(this,a,c)},b.prototype.update=function(a,b){return(!this.tool.requiresElement||a&&a.isMounted())&&this.tool.canApply(a,b)?(this.disabled(!1),this.tool.isApplied(a,b)?this.addCSSClass("ct-tool--applied"):this.removeCSSClass("ct-tool--applied")):void this.disabled(!0)},b.prototype._addDOMEventListeners=function(){return this._domElement.addEventListener("mousedown",this._onMouseDown),this._domElement.addEventListener("mouseleave",this._onMouseLeave),this._domElement.addEventListener("mouseup",this._onMouseUp)},b.prototype._onMouseDown=function(a){if(a.preventDefault(),!this.disabled())return this._mouseDown=!0,this.addCSSClass("ct-tool--down")},b.prototype._onMouseLeave=function(a){return this._mouseDown=!1,this.removeCSSClass("ct-tool--down")},b.prototype._onMouseUp=function(a){var b,c;if(this._mouseDown){if(b=ContentEdit.Root.get().focused(),this.tool.requiresElement&&(!b||!b.isMounted()))return;c=null,b&&b.selection&&(c=b.selection()),this.apply(b,c)}return this._mouseDown=!1,this.removeCSSClass("ct-tool--down")},b}(b.AnchoredComponentUI),b.AnchoredDialogUI=function(a){function b(){b.__super__.constructor.call(this),this._position=[0,0]}return g(b,a),b.prototype.mount=function(){return this._domElement=this.constructor.createDiv(["ct-widget","ct-anchored-dialog"]),this.parent().domElement().appendChild(this._domElement),this._contain(),this._domElement.style.top=this._position[1]+"px",this._domElement.style.left=this._position[0]+"px"},b.prototype.position=function(a){return void 0===a?this._position.slice():(this._position=a.slice(),this.isMounted()?(this._contain(),this._domElement.style.top=this._position[1]+"px",this._domElement.style.left=this._position[0]+"px"):void 0)},b.prototype._contain=function(){var a,b,c;if(this.isMounted())return c=this._domElement.getBoundingClientRect(),a=c.width/2+5,b=document.documentElement.clientWidth||document.body.clientWidth,this._position[0]+a>b&&(this._position[0]=b-a),this._position[0]-1,head:c.indexOf("ct-section--applied")>-1},this.dispatchEvent(this.createEvent("save",a))},b.prototype.unmount=function(){return b.__super__.unmount.call(this),this._domBodyInput=null,this._domBodySection=null,this._domApply=null,this._domHeadSection=null,this._domHeadSwitch=null,this._domFootSection=null,this._domFootSwitch=null},b.prototype._addDOMEventListeners=function(){var a;return b.__super__._addDOMEventListeners.call(this),a=function(a){return a.preventDefault(),this.getAttribute("class").indexOf("ct-section--applied")>-1?ContentEdit.removeCSSClass(this,"ct-section--applied"):ContentEdit.addCSSClass(this,"ct-section--applied")},this._domHeadSection.addEventListener("click",a),this._domFootSection.addEventListener("click",a),this._domBodySection.addEventListener("click",function(a){return function(b){return a._domBodyInput.focus()}}(this)),this._domBodyInput.addEventListener("input",function(a){return function(b){var c;return c=/^[1-9]\d{0,1}$/.test(b.target.value),c?(ContentEdit.removeCSSClass(a._domBodyInput,"ct-section__input--invalid"),ContentEdit.removeCSSClass(a._domApply,"ct-control--muted")):(ContentEdit.addCSSClass(a._domBodyInput,"ct-section__input--invalid"),ContentEdit.addCSSClass(a._domApply,"ct-control--muted"))}}(this)),this._domApply.addEventListener("click",function(a){return function(b){var c;if(b.preventDefault(),c=a._domApply.getAttribute("class"),-1===c.indexOf("ct-control--muted"))return a.save()}}(this))},b}(b.DialogUI),b.VideoDialog=function(a){function c(){c.__super__.constructor.call(this,"Insert video")}return g(c,a),c.prototype.clearPreview=function(){if(this._domPreview)return this._domPreview.parentNode.removeChild(this._domPreview),this._domPreview=void 0},c.prototype.mount=function(){var a;return c.__super__.mount.call(this),ContentEdit.addCSSClass(this._domElement,"ct-video-dialog"),ContentEdit.addCSSClass(this._domView,"ct-video-dialog__preview"),a=this.constructor.createDiv(["ct-control-group"]),this._domControls.appendChild(a),this._domInput=document.createElement("input"),this._domInput.setAttribute("class","ct-video-dialog__input"),this._domInput.setAttribute("name","url"),this._domInput.setAttribute("placeholder",ContentEdit._("Paste YouTube or Vimeo URL")+"..."),this._domInput.setAttribute("type","text"),a.appendChild(this._domInput),this._domButton=this.constructor.createDiv(["ct-control","ct-control--text","ct-control--insert","ct-control--muted"]),this._domButton.textContent=ContentEdit._("Insert"),a.appendChild(this._domButton),this._addDOMEventListeners()},c.prototype.preview=function(a){return this.clearPreview(),this._domPreview=document.createElement("iframe"),this._domPreview.setAttribute("frameborder","0"),this._domPreview.setAttribute("height","100%"),this._domPreview.setAttribute("src",a),this._domPreview.setAttribute("width","100%"),this._domView.appendChild(this._domPreview)},c.prototype.save=function(){var a,c;return c=this._domInput.value.trim(),a=b.getEmbedVideoURL(c),a?this.dispatchEvent(this.createEvent("save",{url:a})):this.dispatchEvent(this.createEvent("save",{url:c}))},c.prototype.show=function(){return c.__super__.show.call(this),this._domInput.focus()},c.prototype.unmount=function(){return this.isMounted()&&this._domInput.blur(),c.__super__.unmount.call(this),this._domButton=null,this._domInput=null,this._domPreview=null},c.prototype._addDOMEventListeners=function(){return c.__super__._addDOMEventListeners.call(this),this._domInput.addEventListener("input",function(a){return function(c){var d;return c.target.value?ContentEdit.removeCSSClass(a._domButton,"ct-control--muted"):ContentEdit.addCSSClass(a._domButton,"ct-control--muted"),a._updatePreviewTimeout&&clearTimeout(a._updatePreviewTimeout),d=function(){var c,d;return d=a._domInput.value.trim(),c=b.getEmbedVideoURL(d),c?a.preview(c):a.clearPreview()},a._updatePreviewTimeout=setTimeout(d,500)}}(this)),this._domInput.addEventListener("keypress",function(a){return function(b){if(13===b.keyCode)return a.save()}}(this)),this._domButton.addEventListener("click",function(a){return function(b){var c;if(b.preventDefault(),c=a._domButton.getAttribute("class"),-1===c.indexOf("ct-control--muted"))return a.save()}}(this))},c}(b.DialogUI),b.HTMLCleaner=function(){function a(a,b){this.tagWhitelist=a||this.constructor.DEFAULT_TAG_WHITELIST,this.attributeWhitelist=b||this.constructor.DEFAULT_ATTRIBUTE_WHITELIST}return a.DEFAULT_ATTRIBUTE_WHITELIST={a:["href"],td:["colspan"]},a.DEFAULT_TAG_WHITELIST=["a","address","b","blockquote","code","del","em","h1","h2","h3","h4","h5","h6","i","ins","li","ol","p","pre","strong","sup","table","tbody","td","tfoot","th","thead","tr","u","ul","#text"],a.NO_CONTENT_TAGS=["head","meta","style","script","title"],a.prototype.clean=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;for(j=document.implementation.createHTMLDocument(),m=j.createElement("div"),m.innerHTML=a,k=function(){var a,b,c,e;for(c=m.childNodes,e=[],a=0,b=c.length;a0;)if(f=k.shift(),g=f.nodeName.toLowerCase(),this.tagWhitelist.indexOf(g)<0){if(this.constructor.NO_CONTENT_TAGS.indexOf(g)>-1){f.remove();continue}for(r=f.childNodes,n=0,p=r.length;n=f.length-1)){for(b=f[e+1],d=null,i=b.descendants(),g=0,h=i.length;g-1&&l.indexOf(n)>-1){if(l.indexOf(j)>-1&&l.indexOf(n)>-1?c=new HTMLString.String(A.innerHTML):(console.log(A.textContent),c=new HTMLString.String(HTMLString.String.encode(A.textContent))),a.content)return v=a.selection(),g=v.get()[0]+c.length(),z=a.content.substring(0,v.get()[0]),y=a.content.substring(v.get()[1]),t=a.content.substring(v.get()[0],v.get()[1]),t.length()&&(d=t.characters[0],x=d.tags(),d.isTag()&&x.shift(),x.length>=1&&(c=c.format.apply(c,[0,c.length()].concat(i.call(x))))),a.content=z.concat(c),a.content=a.content.concat(y,!1),a.updateInnerHTML(),a.taint(),v.set(g,g),void a.selection(v);A.innerHTML="

"+c.html()+"

"}if(q=a,"Region"!==a.parent().type()&&(a=a.closest(function(a){return"Region"===a.parent().type()})),s=a.parent(),l.indexOf(j)>-1&&l.indexOf(n)>-1){for(m=A.createElement("p");A.childNodes.length>0;)m.appendChild(A.childNodes[0]);A.appendChild(m)}for(k=0,o=q,G=A.childNodes,C=0,E=G.length;C=1&&(b=b.format.apply(b,[0,b.length()].concat(i.call(t))))),a.content=v.concat(b),a.content=a.content.concat(u,!1),a.updateInnerHTML(),a.taint(),r.set(d,d),a.selection(r)}},c.prototype.revert=function(){var a;if(this.dispatchEvent(this.createEvent("revert")))return!(b.CANCEL_MESSAGE&&(a=ContentEdit._(b.CANCEL_MESSAGE),ContentEdit.Root.get().lastModified()>this._rootLastModified&&!window.confirm(a)))&&(this.revertToSnapshot(this.history.goTo(0),!1),!0)},c.prototype.revertToSnapshot=function(a,b){var c,d,e,f,g,h,i,j,k,l;null==b&&(b=!0),d=[],j=this._regions;for(e in j){for(f=j[e],k=f.children,h=0,i=k.length;h-1?l.push(this._orderedRegions.splice(f,1)):l.push(void 0));return l},c}(b.ComponentUI),b.EditorApp=function(){function a(){}var c;return c=null,a.get=function(){var a;return a=b.EditorApp.getCls(),null!=c?c:c=new a},a.getCls=function(){return e},a}(),b.History=function(){function a(a){this._lastSnapshotTaken=null,this._regions={},this.replaceRegions(a),this._snapshotIndex=-1,this._snapshots=[],this._store()}return a.prototype.canRedo=function(){return this._snapshotIndex0},a.prototype.index=function(){return this._snapshotIndex},a.prototype.length=function(){return this._snapshots.length},a.prototype.snapshot=function(){return this._snapshots[this._snapshotIndex]},a.prototype.goTo=function(a){return this._snapshotIndex=Math.min(this._snapshots.length-1,Math.max(0,a)),this.snapshot()},a.prototype.redo=function(){return this.goTo(this._snapshotIndex+1)},a.prototype.replaceRegions=function(a){var b,c,d;this._regions={},d=[];for(b in a)c=a[b],d.push(this._regions[b]=c);return d},a.prototype.restoreSelection=function(a){var b,c;if(a.selected)return c=this._regions[a.selected.region],b=c.descendants()[a.selected.element],b.focus(),b.selection&&a.selected.selection?b.selection(a.selected.selection):void 0},a.prototype.stopWatching=function(){if(this._watchInterval&&clearInterval(this._watchInterval),this._delayedStoreTimeout)return clearTimeout(this._delayedStoreTimeout)},a.prototype.undo=function(){return this.goTo(this._snapshotIndex-1)},a.prototype.watch=function(){var a;return this._lastSnapshotTaken=Date.now(),a=function(a){return function(){var b,c;if(null!==(c=ContentEdit.Root.get().lastModified())&&c>a._lastSnapshotTaken){if(a._delayedStoreRequested===c)return;return a._delayedStoreTimeout&&clearTimeout(a._delayedStoreTimeout),b=function(){return a._lastSnapshotTaken=c,a._store()},a._delayedStoreRequested=c,a._delayedStoreTimeout=setTimeout(b,500)}}}(this),this._watchInterval=setInterval(a,50)},a.prototype._store=function(){var a,b,c,d,e,f,g;e={regions:{},regionModifieds:{},rootModified:ContentEdit.Root.get().lastModified(),selected:null},f=this._regions;for(b in f)d=f[b],e.regions[b]=d.html(),e.regionModifieds[b]=d.lastModified();if(a=ContentEdit.Root.get().focused()){if(e.selected={},!(d=a.closest(function(a){return"Region"===a.type()||"Fixture"===a.type()})))return;g=this._regions;for(b in g)if(c=g[b],d===c){e.selected.region=b;break}e.selected.element=d.descendants().indexOf(a),a.selection&&(e.selected.selection=a.selection())}return this._snapshotIndex0&&g[r-1].hasTags("a");)r-=1;for(;j-1){a.addCSSClass(e);break}a.a=null}a.unmount(),a.mount()}else a.isFixed()&&"a"===a.tagName()?a.attr("href",g.href):(a.content=a.content.unformat(k,s,"a"),g.href&&(c=new HTMLString.Tag("a",g),a.content=a.content.format(k,s,c),a.content.optimize()),a.updateInnerHTML());return a.taint(),m.dispatchEvent(m.createEvent("click"))}),e.attach(m),e.attach(h),m.show(),h.show()}},c}(b.Tools.Bold),b.Tools.Heading=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"heading"),c.label="Heading",c.icon="heading",c.tagName="h1",c.canApply=function(a,b){return!a.isFixed()&&(void 0!==a.content&&-1!==["Text","PreText"].indexOf(a.type()))},c.isApplied=function(a,b){return!!a.content&&(-1!==["Text","PreText"].indexOf(a.type())&&a.tagName()===this.tagName)},c.apply=function(a,b,c){var d,e,f,g,h;if(h={tool:this,element:a,selection:b},this.dispatchEditorEvent("tool-apply",h))return a.storeState(),"PreText"===a.type()?(d=a.content.html().replace(/ /g," "),g=new ContentEdit.Text(this.tagName,{},d),f=a.parent(),e=f.children.indexOf(a),f.detach(a),f.attach(g,e),a.blur(),g.focus(),g.selection(b)):(a.removeAttr("class"),a.tagName()===this.tagName?a.tagName("p"):a.tagName(this.tagName),a.restoreState()),this.dispatchEditorEvent("tool-applied",h),c(!0)},c}(b.Tool),b.Tools.Subheading=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"subheading"),c.label="Subheading",c.icon="subheading",c.tagName="h2",c}(b.Tools.Heading),b.Tools.Paragraph=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"paragraph"),c.label="Paragraph",c.icon="paragraph",c.tagName="p",c.canApply=function(a,b){return!a.isFixed()&&void 0!==a},c.apply=function(a,d,e){var f,g,h,i;return f=this.editor().ctrlDown(),b.Tools.Heading.canApply(a)&&!f?c.__super__.constructor.apply.call(this,a,d,e):(i={tool:this,element:a,selection:d},this.dispatchEditorEvent("tool-apply",i)?("Region"!==a.parent().type()&&(a=a.closest(function(a){return"Region"===a.parent().type()})),h=a.parent(),g=new ContentEdit.Text("p"),h.attach(g,h.children.indexOf(a)+1),g.focus(),e(!0),this.dispatchEditorEvent("tool-applied",i)):void 0)},c}(b.Tools.Heading),b.Tools.Preformatted=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"preformatted"),c.label="Preformatted",c.icon="preformatted",c.tagName="pre",c.apply=function(a,c,d){var e,f,g,h,i;if(i={tool:this,element:a,selection:c},this.dispatchEditorEvent("tool-apply",i))return"PreText"===a.type()?void b.Tools.Paragraph.apply(a,c,d):(h=a.content.text(),g=new ContentEdit.PreText("pre",{},HTMLString.String.encode(h)),f=a.parent(),e=f.children.indexOf(a),f.detach(a),f.attach(g,e),a.blur(),g.focus(),g.selection(c),d(!0),this.dispatchEditorEvent("tool-applied",i))},c}(b.Tools.Heading),b.Tools.AlignLeft=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"align-left"),c.label="Align left",c.icon="align-left",c.className="text-left",c.canApply=function(a,b){return void 0!==a.content},c.isApplied=function(a,b){var c;return!!this.canApply(a)&&("ListItemText"!==(c=a.type())&&"TableCellText"!==c||(a=a.parent()),a.hasCSSClass(this.className))},c.apply=function(a,c,d){var e,f,g,h,i,j;if(g={tool:this,element:a,selection:c},this.dispatchEditorEvent("tool-apply",g)){for("ListItemText"!==(j=a.type())&&"TableCellText"!==j||(a=a.parent()),e=[b.Tools.AlignLeft.className,b.Tools.AlignCenter.className,b.Tools.AlignRight.className],h=0,i=e.length;h0;h=g<=0?++a:--a)c=i.children[i.children.length-1],b.push(i.detach(c));return b}()):g>0?m.push(function(){var a,b;for(b=[],h=a=0;0<=g?ag;h=0<=g?++a:--a)c=new ContentEdit.TableCell(d),i.attach(c),e=new ContentEdit.TableCellText(""),b.push(c.attach(e));return b}()):m.push(void 0);return m},c._createTable=function(a){var b,c,d,e;return e=new ContentEdit.Table,a.head&&(d=this._createTableSection("thead","th",a.columns),e.attach(d)),b=this._createTableSection("tbody","td",a.columns),e.attach(b),a.foot&&(c=this._createTableSection("tfoot","td",a.columns),e.attach(c)),e},c._createTableSection=function(a,b,c){var d,e,f,g,h;for(g=new ContentEdit.TableSection(a),f=new ContentEdit.TableRow,g.attach(f),h=0;0<=c?hc;0<=c?++h:--h)d=new ContentEdit.TableCell(b),f.attach(d),e=new ContentEdit.TableCellText(""),d.attach(e);return g},c._updateTable=function(a,b){var c,d,e,f,g,h,i;if(!a.head&&b.thead()&&b.detach(b.thead()),!a.foot&&b.tfoot()&&b.detach(b.tfoot()),c=b.firstSection().children[0].children.length,a.columns!==c)for(i=b.children,g=0,h=i.length;g0},c.apply=function(a,b,c){var d;if(d={tool:this,element:a,selection:b},this.dispatchEditorEvent("tool-apply",d))return a.parent().indent(),c(!0),this.dispatchEditorEvent("tool-applied",d)},c}(b.Tool),b.Tools.Unindent=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"unindent"),c.label="Unindent",c.icon="unindent",c.canApply=function(a,b){return"ListItem"===a.parent().type()},c.apply=function(a,b,c){var d;if(d={tool:this,element:a,selection:b},this.dispatchEditorEvent("tool-apply",d))return a.parent().unindent(),c(!0),this.dispatchEditorEvent("tool-applied",d)},c}(b.Tool),b.Tools.LineBreak=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"line-break"),c.label="Line break",c.icon="line-break",c.canApply=function(a,b){return a.content},c.apply=function(a,b,c){var d,e,f,g,h;if(h={tool:this,element:a,selection:b},this.dispatchEditorEvent("tool-apply",h))return e=b.get()[0]+1,g=a.content.substring(0,b.get()[0]),f=a.content.substring(b.get()[1]),d=new HTMLString.String("
",a.content.preserveWhitespace()),a.content=g.concat(d,f),a.updateInnerHTML(),a.taint(),b.set(e,e),a.selection(b),c(!0),this.dispatchEditorEvent("tool-applied",h)},c}(b.Tool),b.Tools.Image=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"image"),c.label="Image",c.icon="image",c.canApply=function(a,b){return!a.isFixed()||"ImageFixture"===a.type()},c.apply=function(a,c,d){var e,f,g,h;if(h={tool:this,element:a,selection:c},this.dispatchEditorEvent("tool-apply",h))return a.storeState&&a.storeState(),e=b.EditorApp.get(),g=new b.ModalUI,f=new b.ImageDialog,f.addEventListener("cancel",function(b){return function(){return g.hide(),f.hide(),a.restoreState&&a.restoreState(),d(!1)}}()),f.addEventListener("save",function(b){return function(c){var e,i,j,k,l,m,n,o;return e=c.detail(),l=e.imageURL,k=e.imageSize,j=e.imageAttrs,j||(j={}),j.height=k[1],j.src=l,j.width=k[0],"ImageFixture"===a.type()?a.src(l):(i=new ContentEdit.Image(j),o=b._insertAt(a),n=o[0],m=o[1],n.parent().attach(i,m),i.focus()),g.hide(),f.hide(),d(!0),b.dispatchEditorEvent("tool-applied",h)}}(this)),e.attach(g),e.attach(f),g.show(),f.show()},c}(b.Tool),b.Tools.Video=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"video"),c.label="Video",c.icon="video",c.canApply=function(a,b){return!a.isFixed()},c.apply=function(a,c,d){var e,f,g,h;if(h={tool:this,element:a,selection:c},this.dispatchEditorEvent("tool-apply",h))return a.storeState&&a.storeState(),e=b.EditorApp.get(),g=new b.ModalUI,f=new b.VideoDialog,f.addEventListener("cancel",function(b){return function(){return g.hide(),f.hide(),a.restoreState&&a.restoreState(),d(!1)}}()),f.addEventListener("save",function(c){return function(e){var i,j,k,l,m,n;if(l=e.detail().url,l?(m=new ContentEdit.Video("iframe",{frameborder:0,height:b.DEFAULT_VIDEO_HEIGHT,src:l,width:b.DEFAULT_VIDEO_WIDTH}),n=c._insertAt(a),k=n[0],j=n[1],k.parent().attach(m,j),m.focus()):a.restoreState&&a.restoreState(),g.hide(),f.hide(),i=""!==l,d(i),i)return c.dispatchEditorEvent("tool-applied",h)}}(this)),e.attach(g),e.attach(f),g.show(),f.show()},c}(b.Tool),b.Tools.Undo=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"undo"),c.label="Undo",c.icon="undo",c.requiresElement=!1,c.canApply=function(a,c){var d;return d=b.EditorApp.get(),d.history&&d.history.canUndo()},c.apply=function(a,b,c){var d,e,f;if(f={tool:this,element:a,selection:b},this.dispatchEditorEvent("tool-apply",f))return d=this.editor(),d.history.stopWatching(),e=d.history.undo(),d.revertToSnapshot(e),d.history.watch(),this.dispatchEditorEvent("tool-applied",f)},c}(b.Tool),b.Tools.Redo=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"redo"),c.label="Redo",c.icon="redo",c.requiresElement=!1,c.canApply=function(a,c){var d;return d=b.EditorApp.get(),d.history&&d.history.canRedo()},c.apply=function(a,c,d){var e,f,g;if(g={tool:this,element:a,selection:c},this.dispatchEditorEvent("tool-apply",g))return e=b.EditorApp.get(),e.history.stopWatching(),f=e.history.redo(),e.revertToSnapshot(f),e.history.watch(),this.dispatchEditorEvent("tool-applied",g)},c}(b.Tool),b.Tools.Remove=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),b.ToolShelf.stow(c,"remove"),c.label="Remove",c.icon="remove",c.canApply=function(a,b){return!a.isFixed()},c.apply=function(a,b,c){var d,e,f,g,h;if(h={tool:this,element:a,selection:b},this.dispatchEditorEvent("tool-apply",h)){if(d=this.editor(),a.blur(),a.nextContent()?a.nextContent().focus():a.previousContent()&&a.previousContent().focus(),!a.isMounted())return c(!0),void this.dispatchEditorEvent("tool-applied",h);switch(a.type()){case"ListItemText":d.ctrlDown()?(e=a.closest(function(a){return"Region"===a.parent().type()}),e.parent().detach(e)):a.parent().parent().detach(a.parent());break;case"TableCellText":d.ctrlDown()?(g=a.closest(function(a){return"Table"===a.type()}),g.parent().detach(g)):(f=a.parent().parent(),f.parent().detach(f));break;default:a.parent().detach(a)}return c(!0),this.dispatchEditorEvent("tool-applied",h)}},c}(b.Tool)}.call(this);