From adc436dd6faaca7cb2ec3e43892f2e89d1ef7b38 Mon Sep 17 00:00:00 2001 From: Iliyan Peychev Date: Sat, 14 Jan 2017 17:00:26 +0100 Subject: [PATCH] Add build files (auto-generated) Fixes #660 --- api/classes/ButtonLinkEdit.html | 24 +++++++-------- ...mponents_buttons_button-link-edit.jsx.html | 29 ++++++++++--------- dist/alloy-editor/alloy-editor-all-min.js | 2 +- dist/alloy-editor/alloy-editor-all.js | 29 ++++++++++--------- dist/alloy-editor/alloy-editor-core-min.js | 2 +- dist/alloy-editor/alloy-editor-core.js | 29 ++++++++++--------- .../alloy-editor-no-ckeditor-min.js | 2 +- dist/alloy-editor/alloy-editor-no-ckeditor.js | 29 ++++++++++--------- .../alloy-editor/alloy-editor-no-react-min.js | 2 +- dist/alloy-editor/alloy-editor-no-react.js | 29 ++++++++++--------- 10 files changed, 96 insertions(+), 81 deletions(-) diff --git a/api/classes/ButtonLinkEdit.html b/api/classes/ButtonLinkEdit.html index 59e7831400..483ca5bf87 100644 --- a/api/classes/ButtonLinkEdit.html +++ b/api/classes/ButtonLinkEdit.html @@ -415,7 +415,7 @@

_clearLink

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:236 + src/ui/react/src/components/buttons/button-link-edit.jsx:237

@@ -448,7 +448,7 @@

_focusLinkInput

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:250 + src/ui/react/src/components/buttons/button-link-edit.jsx:253

@@ -708,7 +708,7 @@

_handleKeyDown

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:271 + src/ui/react/src/components/buttons/button-link-edit.jsx:274

@@ -766,7 +766,7 @@

_handleLinkAutocompleteClick

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:331 + src/ui/react/src/components/buttons/button-link-edit.jsx:334

@@ -820,7 +820,7 @@

_handleLinkHrefChange

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:300 + src/ui/react/src/components/buttons/button-link-edit.jsx:303

@@ -874,7 +874,7 @@

_handleLinkTargetChange

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:315 + src/ui/react/src/components/buttons/button-link-edit.jsx:318

@@ -1008,7 +1008,7 @@

_isValidState

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:347 + src/ui/react/src/components/buttons/button-link-edit.jsx:350

@@ -1135,7 +1135,7 @@

_removeLink

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:366 + src/ui/react/src/components/buttons/button-link-edit.jsx:369

@@ -1166,7 +1166,7 @@

_setAutocompleteState

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:389 + src/ui/react/src/components/buttons/button-link-edit.jsx:392

@@ -1197,7 +1197,7 @@

_updateLink

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:401 + src/ui/react/src/components/buttons/button-link-edit.jsx:404

@@ -1405,7 +1405,7 @@

getInitialState

WidgetDropdown but overwritten in - src/ui/react/src/components/buttons/button-link-edit.jsx:139 + src/ui/react/src/components/buttons/button-link-edit.jsx:132

@@ -1696,7 +1696,7 @@

render

Defined in - src/ui/react/src/components/buttons/button-link-edit.jsx:162 + src/ui/react/src/components/buttons/button-link-edit.jsx:155

diff --git a/api/files/src_ui_react_src_components_buttons_button-link-edit.jsx.html b/api/files/src_ui_react_src_components_buttons_button-link-edit.jsx.html index 6b817ab3b6..27d06d746a 100644 --- a/api/files/src_ui_react_src_components_buttons_button-link-edit.jsx.html +++ b/api/files/src_ui_react_src_components_buttons_button-link-edit.jsx.html @@ -295,12 +295,6 @@

File src/ui/react/src/components/buttons/button-link-ed * @return {Object} The default properties. */ getDefaultProps: function() { - var inputProps = {}; - - if (!CKEDITOR.env.ie && AlloyEditor.Strings) { - inputProps.placeholder = AlloyEditor.Strings.editLink; - } - return { appendProtocol: true, autocompleteUrl: '', @@ -308,7 +302,6 @@

File src/ui/react/src/components/buttons/button-link-ed customIndexStart: true, defaultLinkTarget: '', descendants: '.ae-toolbar-element', - inputProps: inputProps, keys: { dismiss: [27], dismissNext: [39], @@ -350,10 +343,6 @@

File src/ui/react/src/components/buttons/button-link-ed * @return {Object} The content which should be rendered. */ render: function() { - var clearLinkStyle = { - opacity: this.state.linkHref ? 1 : 0 - }; - var targetSelector = { allowedTargets: this.props.allowedTargets, editor: this.props.editor, @@ -397,6 +386,18 @@

File src/ui/react/src/components/buttons/button-link-ed targetButtonEdit = <AlloyEditor.ButtonLinkTargetEdit {...targetSelector} />; } + var buttonClearLink; + + if (this.state.linkHref) { + buttonClearLink = <button aria-label={AlloyEditor.Strings.clearInput} className="ae-button ae-icon-remove" onClick={this._clearLink} title={AlloyEditor.Strings.clear}></button> + } + + var placeholderProp = {}; + + if (!CKEDITOR.env.ie && AlloyEditor.Strings) { + placeholderProp.placeholder = AlloyEditor.Strings.editLink; + } + return ( <div className="ae-container-edit-link"> <button aria-label={AlloyEditor.Strings.removeLink} className="ae-button" disabled={!this.state.element} onClick={this._removeLink} title={AlloyEditor.Strings.remove}> @@ -405,10 +406,10 @@

File src/ui/react/src/components/buttons/button-link-ed <div className="ae-container-input xxl"> {targetButtonEdit} <div className="ae-container-input flexible"> - <input className="ae-input" onChange={this._handleLinkHrefChange} onKeyDown={this._handleKeyDown} ref="linkInput" type="text" value={this.state.linkHref} {...this.props.inputProps}></input> + <input className="ae-input" onChange={this._handleLinkHrefChange} onKeyDown={this._handleKeyDown} { ...placeholderProp } ref="linkInput" type="text" value={this.state.linkHref}></input> {autocompleteDropdown} </div> - <button aria-label={AlloyEditor.Strings.clearInput} className="ae-button ae-icon-remove" onClick={this._clearLink} style={clearLinkStyle} title={AlloyEditor.Strings.clear}></button> + {buttonClearLink} </div> <button aria-label={AlloyEditor.Strings.confirm} className="ae-button" disabled={!this._isValidState()} onClick={this._updateLink} title={AlloyEditor.Strings.confirm}> <span className="ae-icon-ok"></span> @@ -429,6 +430,8 @@

File src/ui/react/src/components/buttons/button-link-ed this.setState({ linkHref: '' }); + + this._focusLinkInput(); }, /** diff --git a/dist/alloy-editor/alloy-editor-all-min.js b/dist/alloy-editor/alloy-editor-all-min.js index 8fbbae0895..1e4d9eaaee 100644 --- a/dist/alloy-editor/alloy-editor-all-min.js +++ b/dist/alloy-editor/alloy-editor-all-min.js @@ -876,7 +876,7 @@ e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapper "use strict";!function(){CKEDITOR.tools.debounce=CKEDITOR.tools.debounce||function(e,t,n,i){var o,a=function(){var a=n||this;clearTimeout(o);for(var r=[],s=arguments.length,l=0;l0?t.getRangeAt(0).getClientRects():[]),0===o.length)i=this.getCaretRegion();else{for(var d=0,u=o.length;dl&&(l=p.right),p.topr&&(r=p.bottom)}var m=new CKEDITOR.dom.window(window).getScrollPosition();if(i.bottom=m.y+r,i.left=m.x+s,i.right=m.x+l,i.top=m.y+c,o.length){var g=o[o.length-1],h=o[0];i.endRect={bottom:m.y+g.bottom,height:g.height,left:m.x+g.left,right:m.x+g.right,top:m.y+g.top,width:g.width},i.startRect={bottom:m.y+h.bottom,height:h.height,left:m.x+h.left,right:m.x+h.right,top:m.y+h.top,width:h.width}}}return i},getSelectionDirection:function(){var e=CKEDITOR.SELECTION_TOP_TO_BOTTOM,t=this.getSelection(),n=t.getNative();if(!n)return e;var i;if((i=n.anchorNode)&&i.compareDocumentPosition){var o=i.compareDocumentPosition(n.focusNode);(!o&&n.anchorOffset>n.focusOffset||o===Node.DOCUMENT_POSITION_PRECEDING)&&(e=CKEDITOR.SELECTION_BOTTOM_TO_TOP)}return e}},CKEDITOR.plugins.add("ae_selectionregion",{init:function(t){var n,i;i=Object.prototype.hasOwnProperty;for(n in e.prototype)i.call(e.prototype,n)&&"undefined"==typeof t[n]&&(t[n]=e.prototype[n])}}))}(),function(){function e(e){this._editor=e}var t={table:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1};e.HEADING_BOTH="Both",e.HEADING_COL="Column",e.HEADING_NONE="None",e.HEADING_ROW="Row",e.prototype={constructor:e,create:function(e){var t=this._editor,n=this._createElement("table");e=e||{};for(var i=n.append(this._createElement("tbody")),o=e.rows||1,a=e.cols||1,r=0;r0&&(CKEDITOR.env.webkit&&i[0].shrink(CKEDITOR.NODE_ELEMENT),e=this._editor.elementPath(i[0].getCommonAncestor(!0)).contains("table",1))}return e},isEditable:function(e){return CKEDITOR.env.ie&&e.is(t)?e.hasAttribute("contenteditable")?"false"!==e.getAttribute("contenteditable"):this.isEditable(e.getParent()):!e.isReadOnly()},getHeading:function(t){if(t=t||this.getFromSelection(),!t)return null;for(var n=null!==t.$.tHead,i=!0,o=0;o0;){var h=a.getFirst(),f=h.getChildCount();for(i=0;i0){var t=e.data.$.clipboardData.items[0];if(0===t.type.indexOf("image")){var n=t.getAsFile();this._processFile(n,e.listenerData.editor)}}},_preventEvent:function(e){e=new CKEDITOR.dom.event(e.data.$),e.preventDefault(),e.stopPropagation()},_processFile:function(e,t){var n=new FileReader;n.addEventListener("loadend",function(){var i=n.result,o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o);var a={el:o,file:e};t.fire("imageAdd",a)}),n.readAsDataURL(e)}})}(),function(){if(!CKEDITOR.plugins.get("ae_autolink")){/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/.test(navigator.userAgent)&&document.execCommand("AutoUrlDetect",!1,!1);var e=8,t=188,n=13,i=186,o=32,a=[t,n,i,o],r=/[^\s]+/gm,s=/(https?\:\/\/|www\.)(-\.)?([^(\s\/?\.#-)]+\.?)+(\b\/[^\s]*)?$/i;CKEDITOR.plugins.add("ae_autolink",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keyup",this._onKeyUp,this,{editor:e})}.bind(this))},_getLastWord:function(e){var t=e.getSelection().getRanges()[0],i=t.startOffset,o="";if(this._currentKeyCode===n){var a,s=t.startContainer.getPrevious();if(s){for(;!s.getLast;)s=s.getPrevious();for(a=s.getLast();a&&!a.getText();)a=a.getPrevious()}a&&a.$.href||(this._startContainer=a,o=a?a.getText():"",this._offset=o.length)}else this._startContainer=t.startContainer,o=this._startContainer.getText().substring(0,i-1),this._offset=i-1;var l="",c=o.match(r);return c&&(l=c.pop()),l},_isValidURL:function(e){return s.test(e)},_onKeyDown:function(t){var n=t.data.$,i=t.listenerData.editor,o=i.editable();o.removeListener("keydown",this._onKeyDown),n.keyCode===e&&(t.cancel(),t.data.preventDefault(),this._removeLink(i)),this._ckLink=null},_onKeyUp:function(e){var t=e.data.$;if(this._currentKeyCode=t.keyCode,a.indexOf(this._currentKeyCode)!==-1){var n=e.listenerData.editor,i=this._getLastWord(n);this._isValidURL(i)&&this._replaceContentByLink(n,i)}},_replaceContentByLink:function(e,t){var i=e.createRange(),o=CKEDITOR.dom.element.get(this._startContainer),a=this._offset;i.setStart(o,a-t.length),i.setEnd(o,a),i.select();var r=new CKEDITOR.Link(e);r.create(t),this._ckLink=r;var s=r.getFromSelection();if(e.fire("autolinkAdd",s),this._subscribeToKeyEvent(e),i=e.getSelection().getRanges()[0],this._currentKeyCode===n){var l=i.getNextEditableNode();i.setStart(l,0),i.setEnd(l,0)}else{var c=i.getNextNode();i.setStart(c,1),i.setEnd(c,1)}i.select()},_removeLink:function(e){var t=e.getSelection().getRanges()[0],n=t.startOffset,i=this._startContainer.getNext()||this._startContainer,o=e.createRange();o.setStart(i,0),o.setEndAfter(i),o.select(),this._ckLink.remove(),t.setEnd(t.startContainer,n),t.setStart(t.startContainer,n),t.select()},_subscribeToKeyEvent:function(e){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e},1)}})}}(),function(){if(!CKEDITOR.plugins.get("ae_autolist")){var e=8,t=32,n=[{regex:/^\*$/,type:"bulletedlist"},{regex:/^1\.$/,type:"numberedlist"}];CKEDITOR.plugins.add("ae_autolist",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e})}.bind(this))},_checkForBackspaceAndUndo:function(t){var n=t.listenerData.editor,i=t.data.$,o=n.editable();o.removeListener("keydown",this._checkForBackspaceAndUndo),i.keyCode===e&&(n.execCommand("undo"),n.insertHtml(t.listenerData.bullet+" "),t.data.preventDefault())},_getListConfig:function(e){for(var t=e.config.autolist||n,i=e.getSelection().getRanges()[0],o=i.endContainer.getText(),a=o.substring(0,i.startOffset),r=o.substring(i.startOffset,o.length),s=0,l=t.length,c=null;!c&&l>s;){var d=t[s];if(d.regex.test(a)){c={bullet:a,editor:e,text:r,type:d.type};break}s++}return c},_createList:function(e){var t=e.editor,n=t.getSelection().getRanges()[0];n.endContainer.setText(e.text),t.execCommand(e.type);var i=t.editable();i.attachListener(i,"keydown",this._checkForBackspaceAndUndo,this,{editor:t,bullet:e.bullet},1)},_onKeyDown:function(e){var n=e.data.$;if(n.keyCode===t){var i=this._getListConfig(e.listenerData.editor);i&&(e.data.preventDefault(),this._createList(i))}}})}}(),function(){function e(e){function n(){var t=e.getSelection();t&&(t.getType()!==CKEDITOR.SELECTION_NONE&&t.getStartElement().is("img")?i.event&&i.event.button&&0!==i.event.button||r.show(t.getStartElement().$):r.hide())}var i=e.window.$,o=e.document.$,a="undefined"==typeof d?null:d;e.config.imageScaleResize=e.config.imageScaleResize||"both";var r=new t(e,{imageScaleResize:e.config.imageScaleResize,snapToSize:a});o.addEventListener("mousedown",function(e){r.isHandle(e.target)&&r.initDrag(e)},!1),e.on("selectionChange",n),e.on("getData",function(e){var t=e.data.dataValue||"";t=t.replace(/
/i,""),t=t.replace(/\b(ckimgrsz)\b/g,""),e.data.dataValue=t}),e.on("beforeUndoImage",function(){r.hide()}),e.on("afterUndoImage",function(){n()}),e.on("blur",function(){r.hide()}),e.on("beforeModeUnload",function l(){e.removeListener("beforeModeUnload",l),r.hide()}),e.on("destroy",function(){var e=o.getElementById("ckimgrsz");e&&e.remove(),u&&o.execCommand("enableObjectResizing",!1,!0)});var s;e.window.on("resize",function(){clearTimeout(s),s=setTimeout(n,50)})}function t(e,t){this.editor=e,this.window=e.window.$,this.document=e.document.$,this.cfg=t||{},this.init()}function n(e,t){this.window=e,this.document=t,this.events={mousemove:o(this.mousemove,this),keydown:o(this.keydown,this),mouseup:o(this.mouseup,this)}}function i(e){for(var t=e.length,n=new Array(t),i=0;ii?t.height=Math.round(t.width/i):t.width=Math.round(t.height*i)}var o=this.cfg.snapToSize;if(o)for(var a=this.otherImages,r=0;r=15&&(u>=15||"auto"===u)?(f.setAttributes({width:d,height:u}),p=!0):p=!1}function l(){for(var i;i=T.pop();)i.removeListener();n.removeClass(C),o.removeClass("cke_image_resizing"),p&&(e.setData({height:u,width:d}),t.fire("saveSnapshot")),p=!1}var c,d,u,p,m,g,h,f=e.parts.image,y="right"==e.data.align?-1:1,E=a.data.$.screenX,b=a.data.$.screenY,v=f.$.clientWidth,R=f.$.clientHeight,T=[],C="cke_image_s"+(~y?"e":"w");t.fire("saveSnapshot"),r("mousemove",s,T),r("mouseup",l,T),n.addClass(C),o.addClass("cke_image_resizing")}),e.on("data",function(){o["right"==e.data.align?"addClass":"removeClass"]("cke_image_resizer_left")}),e.parts.image.on("click",function(){t._.editable.editor.getSelection().selectElement(this);var e=t._.editable.editor.getSelectionData();e&&t.fire("editorInteraction",{nativeEvent:event,selectionData:e})})}function s(e){var t={figcaption:!0,figure:{classes:"!"+e.config.image2_captionedClass},img:{attributes:"!src,alt,width,height"}};return t}function l(e){var t=e.config.image2_alignClasses,n={align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"},dimension:{requiredContent:"img[width,height]"}};return n}function c(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie")){var d={center:1,left:0,right:2},u={ both:"nwse-resize",height:"ns-resize",scale:"nwse-resize",width:"ew-resize"},p=/^\s*(\d+\%)\s*$/i,m='';CKEDITOR.plugins.add("ae_dragresize_ie",{hidpi:!0,icons:"image",init:function(t){var n=e(t);t.widgets.add("image",n)},onLoad:function(){CKEDITOR.addCss(".cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ns-resize{cursor: ns-resize;}.cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ew-resize{cursor: ew-resize;}.cke_image_nocaption{line-height:0}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:nwse-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}")},requires:"widget"}),CKEDITOR.plugins.image2={checkHasNaturalRatio:function(e){var t=e.$,n=this.getNatural(e);return Math.round(t.clientWidth/n.width*n.height)==t.clientHeight||Math.round(t.clientHeight/n.height*n.width)==t.clientWidth},getNatural:function(e){var t;if(e.$.naturalWidth)t={height:e.$.naturalHeigh,width:e.$.naturalWidth};else{var n=new Image;n.src=e.getAttribute("src"),t={height:n.heigh,width:n.width}}return t}}}}(),CKEDITOR.config.image2_captionedClass="image",function(){if(!CKEDITOR.plugins.get("ae_embed")){var e=/^https?/,t=/
',CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL='{url}',CKEDITOR.plugins.add("ae_embed",{requires:"widget",init:function(n){var i=new CKEDITOR.template(n.config.embedUrlTemplate||CKEDITOR.DEFAULT_AE_EMBED_URL_TPL),o=new CKEDITOR.template(n.config.embedWidgetTpl||CKEDITOR.DEFAULT_AE_EMBED_WIDGET_TPL),a=new CKEDITOR.template(n.config.embedLinkDefaultTpl||CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL),r=function(e,t){if("div"===e.name&&e.attributes["data-ae-embed-url"])return t.url=e.attributes["data-ae-embed-url"],!0};n.addCommand("embedUrl",{exec:function(e,t){e.insertHtml(o.output({url:t.url}))}}),n.widgets.add("ae_embed",{mask:!0,requiredContent:"div[data-ae-embed-url]",data:function(e){var n=this,o=e.data.url;o&&CKEDITOR.tools.jsonp(i,{url:encodeURIComponent(o)},function(e){e.html?t.test(e.html)?n.createATag(o):n.element.setHtml(e.html):n.createATag(o,currentSelection)},function(e){n.createATag(o,currentSelection)})},createATag:function(e){this.editor.execCommand("undo");var t=(this.editor.getSelection().getSelectedElement(),a.output({url:e}));this.editor.insertHtml(t),this.editor.fire("actionPerformed",this)},upcast:function(e,t){var i=n.config.embedWidgetUpcastFn||r;return i(e,t)}}),n.once("contentDom",function(){n.on("paste",function(t){var i=t.data.dataValue;e.test(i)&&(t.stop(),n.execCommand("embedUrl",{url:t.data.dataValue}))})}),n.on("selectionChange",function(e){var t=n.getSelection();if(t){var i=t.getSelectedElement();if(i){var o=i.findOne('[data-widget="ae_embed"]');if(o){var a=i.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,n.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}}),n.filter.addElementCallback(function(e){if("data-ae-embed-url"in e.attributes)return CKEDITOR.FILTER_SKIP_TREE})}})}}(),function(){if(!CKEDITOR.plugins.get("ae_imagealignment")){var e={CENTER:"center",LEFT:"left",RIGHT:"right"},t=[e.LEFT,e.RIGHT,e.CENTER],n=[{name:"display",value:"block"},{name:"margin-left",value:"50%"},{name:"transform",value:"translateX(-50%)",vendorPrefixes:["-ms-"]}],i=function(t){var i=t.getStyle("float");if(i&&"inherit"!==i&&"none"!==i||(i=t.getAttribute("align")),!i){var o=n.every(function(e){var n=t.getStyle(e.name)===e.value;return!n&&e.vendorPrefixes&&(n=e.vendorPrefixes.some(function(n){return t.getStyle(n+e.name)===e.value})),n});i=o?e.CENTER:null}return i},o=function(t,o){o===e.LEFT||o===e.RIGHT?(t.removeStyle("float"),o===i(t)&&t.removeAttribute("align")):o===e.CENTER&&n.forEach(function(e){t.removeStyle(e.name),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(n){t.removeStyle(n+e.name)})})},a=function(t,a){o(t,i(t)),a===e.LEFT||a===e.RIGHT?t.setStyle("float",a):a===e.CENTER&&n.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(n){t.setStyle(n+e.name,e.value)})})};CKEDITOR.plugins.add("ae_imagealignment",{afterInit:function(e){var n=this;t.forEach(function(t){var r=e.getCommand("justify"+t);r&&(r.on("exec",function(r){var s=e.getSelectionData();if(s&&AlloyEditor.SelectionTest.image({data:{selectionData:s}})){var l=s.element,c=i(l);c===t?o(l,t):a(l,t),r.cancel(),n.refreshCommands(e,new CKEDITOR.dom.elementPath(l))}}),r.on("refresh",function(e){var n={element:e.data.path.lastElement};if(AlloyEditor.SelectionTest.image({data:{selectionData:n}})){var o=i(n.element);this.setState(o===t?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.cancel()}}))})},refreshCommands:function(e,n){t.forEach(function(t){var i=e.getCommand("justify"+t);i&&i.refresh(e,n)})}})}}(),function(){CKEDITOR.plugins.get("ae_pasteimages")||CKEDITOR.plugins.add("ae_pasteimages",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"paste",this._onPaste,this,{editor:e})}.bind(this))},_onPaste:function(e){if(e.data.$.clipboardData){var t=e.data.$.clipboardData.items[0],n=e.listenerData.editor;if(0===t.type.indexOf("image")){var i=new FileReader,o=t.getAsFile();i.onload=function(e){var t=n.fire("beforeImageAdd",{imageFiles:o});if(t){var i=CKEDITOR.dom.element.createFromHtml('');n.insertElement(i);var a={el:i,file:o};n.fire("imageAdd",a)}}.bind(this),i.readAsDataURL(o)}}}})}(),function(){CKEDITOR.plugins.get("ae_placeholder")||CKEDITOR.plugins.add("ae_placeholder",{init:function(e){e.on("blur",this._checkEmptyData,this),e.on("change",this._checkEmptyData,this),e.on("focus",this._removePlaceholderClass,this),e.once("contentDom",this._checkEmptyData,this)},_checkEmptyData:function(e){var t=e.editor,n=t.editable();""===n.$.innerText.trim()?n.addClass(t.config.placeholderClass):n.removeClass(t.config.placeholderClass)},_removePlaceholderClass:function(e){var t=e.editor,n=new CKEDITOR.dom.element(t.element.$);n.removeClass(t.config.placeholderClass)}})}(),function(){CKEDITOR.plugins.get("ae_selectionkeystrokes")||CKEDITOR.plugins.add("ae_selectionkeystrokes",{requires:"ae_selectionregion",init:function(e){e.config.selectionKeystrokes&&e.config.selectionKeystrokes.forEach(function(t){var n=new CKEDITOR.command(e,{exec:function(e){e.fire("editorInteraction",{manualSelection:t.selection,nativeEvent:{},selectionData:e.getSelectionData()})}}),i="selectionKeystroke"+t.selection;e.addCommand(i,n),e.setKeystroke(t.keys,i)})}})}(),function(){function e(e){return CKEDITOR.env.ie?e.$.clientWidth:parseInt(e.getComputedStyle("width"),10)}function t(e,t){var n=e.getComputedStyle("border-"+t+"-width"),i={thin:"0px",medium:"1px",thick:"2px"};return n.indexOf("px")<0&&(n=n in i&&"none"!=e.getComputedStyle("border-style")?i[n]:0),parseInt(n,10)}function n(e){for(var t,n,i,o=e.$.rows,a=0,r=0,s=o.length;ra&&(a=t,n=i);return n}function i(e){for(var i=[],o=-1,a="rtl"===e.getComputedStyle("direction"),r=n(e),s=new CKEDITOR.dom.element(e.$.tBodies[0]),l=s.getDocumentPosition(),c=0,d=r.cells.length;c=o.x&&t<=o.x+o.width)return o}return null}function a(e){(e.data||e).preventDefault()}function r(n){function i(){p=null,y=0,h=0,m.removeListener("mouseup",d),g.removeListener("mousedown",c),g.removeListener("mousemove",u),m.getBody().setStyle("cursor","auto")}function o(){for(var t=p.index,n=CKEDITOR.tools.buildTableMap(p.table),i=[],o=[],r=Number.MAX_VALUE,s=r,l=p.rtl,c=0,d=n.length;c

',m),n.on("destroy",function(){g.remove()}),m.getDocumentElement().append(g),this.attachTo=function(e){h||(p=e,g.setStyles({width:l(e.width),height:l(e.height),left:l(e.x),top:l(e.y)}),g.on("mousedown",c,this),m.getBody().setStyle("cursor","col-resize"),g.show())};var T=this.move=function(e){if(!p)return 0;if(!h&&(ep.x+p.width))return i(),0;var t=e-Math.round(g.$.offsetWidth/2);if(h){if(t===v||t===R)return 1;t=Math.max(t,v),t=Math.min(t,R),y=t-f}return g.setStyle("left",l(t)),1}}function s(e){var t=e.data.getTarget();if("mouseout"===e.name){if(!t.is("table"))return;for(var n=new CKEDITOR.dom.element(e.data.$.relatedTarget||e.data.$.toElement);n&&n.$&&!n.equals(t)&&!n.is("body");)n=n.getParent();if(!n||n.equals(t))return}t.getAscendant("table",1).removeCustomData("_cke_table_pillars"),e.removeListener()}if(!CKEDITOR.plugins.get("ae_tableresize")){var l=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("ae_tableresize",{requires:"ae_tabletools",init:function(e){e.on("contentDom",function(){var t,n=e.editable();n.attachListener(n.isInline()?n:e.document,"mousemove",function(n){n=n.data;var l=n.getTarget();if(l.type===CKEDITOR.NODE_ELEMENT){var c=n.getPageOffset().x;if(t&&t.move(c))return void a(n);var d,u;if((l.is("table")||l.getAscendant("tbody",1))&&(d=l.getAscendant("table",1),e.editable().contains(d))){(u=d.getCustomData("_cke_table_pillars"))||(d.setCustomData("_cke_table_pillars",u=i(d)),d.on("mouseout",s),d.on("mousedown",s));var p=o(u,c);p&&(!t&&(t=new r(e)),t.attachTo(p))}}})})}})}}(),function(){function e(e){function t(e){i.length>0||e.type==CKEDITOR.NODE_ELEMENT&&y.test(e.getName())&&!e.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(o,e,"selected_cell",!0),i.push(e))}for(var n=e.getRanges(),i=[],o={},a=0;a1&&f&&h[b]==f[b]?(v=h[b],v.rowSpan+=1):(v=new CKEDITOR.dom.element(h[b]).clone(),v.removeAttribute("rowSpan"),v.appendBogus(),E.append(v),v=v.$),b+=v.colSpan-1}n?E.insertBefore(m):E.insertAfter(m)}function i(t){if(t instanceof CKEDITOR.dom.selection){for(var n=e(t),o=n[0],a=o.getAscendant("table"),r=CKEDITOR.tools.buildTableMap(a),s=n[0].getParent(),l=s.$.rowIndex,c=n[n.length-1],d=c.getParent().$.rowIndex+c.$.rowSpan-1,u=[],p=l;p<=d;p++){for(var m=r[p],g=new CKEDITOR.dom.element(a.$.rows[p]),h=0;h0?b[l-1]:null)||a.$.parentNode);for(p=u.length;p>=0;p--)i(u[p]);return v}return t instanceof CKEDITOR.dom.element&&(a=t.getAscendant("table"),1==a.$.rows.length?a.remove():t.remove()),null}function o(e,t){for(var n=e.getParent(),i=n.$.cells,o=0,a=0;an)&&(n=a)}return n}function r(t,n){for(var i=e(t),o=i[0],r=o.getAscendant("table"),s=a(i,1),l=a(i),c=n?s:l,d=CKEDITOR.tools.buildTableMap(r),u=[],p=[],m=d.length,g=0;g1&&p[g]==u[g]?(f=u[g],f.colSpan+=1):(f=new CKEDITOR.dom.element(u[g]).clone(),f.removeAttribute("colSpan"),f.appendBogus(),f[n?"insertBefore":"insertAfter"].call(f,new CKEDITOR.dom.element(u[g])),f=f.$),g+=f.rowSpan-1)}}function s(t){for(var n,i,o=e(t),a=o[0],r=o[o.length-1],s=a.getAscendant("table"),l=CKEDITOR.tools.buildTableMap(s),c=[],d=0,u=l.length;d=0;r--)c(i[r]);a?u(a,!0):o&&o.remove()}else if(n instanceof CKEDITOR.dom.element){var s=n.getParent();1==s.getChildCount()?s.remove():n.remove()}}function d(e){var t=e.getBogus();t&&t.remove(),e.trim()}function u(e,t){var n=e.getDocument(),i=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(i.focus(),n.focus());var o=new CKEDITOR.dom.range(n);o["moveToElementEdit"+(t?"End":"Start")](e)||(o.selectNodeContents(e),o.collapse(!t)),o.select(!0)}function p(e,t,n){var i=e[t];if("undefined"==typeof n)return i;for(var o=0;i&&o1&&(i+=o[t].rowSpan-1)}return n}function g(t,n,i){var o,a=e(t);if((n?1!=a.length:a.length<2)||(o=t.getCommonAncestor())&&o.type==CKEDITOR.NODE_ELEMENT&&o.is("table"))return!1;var r,s=a[0],l=s.getAscendant("table"),c=CKEDITOR.tools.buildTableMap(l),u=c.length,m=c[0].length,g=s.getParent().$.rowIndex,h=p(c,g,s);if(n){var f;try{var y=parseInt(s.getAttribute("rowspan"),10)||1,E=parseInt(s.getAttribute("colspan"),10)||1;f=c["up"==n?g-y:"down"==n?g+y:g]["left"==n?h-E:"right"==n?h+E:h]}catch(b){return!1}if(!f||s.$==f)return!1;a["up"==n||"left"==n?"unshift":"push"](new CKEDITOR.dom.element(f))}for(var v=s.getDocument(),R=g,T=0,C=0,_=!i&&new CKEDITOR.dom.documentFragment(v),A=0,I=0;I=m?s.removeAttribute("rowSpan"):s.$.rowSpan=T,T>=u?s.removeAttribute("colSpan"):s.$.colSpan=C;var N=new CKEDITOR.dom.nodeList(l.$.rows),B=N.count();for(I=B-1;I>=0;I--){var K=N.getItem(I);K.$.cells.length||(K.remove(),B++)}return s}function h(t,n){var i=e(t);if(i.length>1)return!1;if(n)return!0;var o,a,r,s,l=i[0],c=l.getParent(),d=c.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(d),m=c.$.rowIndex,g=p(u,m,l),h=l.$.rowSpan;if(h>1){a=Math.ceil(h/2),r=Math.floor(h/2),s=m+a;var f,y=new CKEDITOR.dom.element(d.$.rows[s]),E=p(u,s);o=l.clone();for(var b=0;bg){o.insertBefore(new CKEDITOR.dom.element(f));break}f=null}f||y.append(o)}else{r=a=1,y=c.clone(),y.insertAfter(c),y.append(o=l.clone());for(var v=p(u,m),R=0;R1)return!1;if(n)return!0;var o,a,r,s=i[0],l=s.getParent(),c=l.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(c),u=l.$.rowIndex,g=p(d,u,s),h=s.$.colSpan;if(h>1)a=Math.ceil(h/2),r=Math.floor(h/2);else{r=a=1;for(var f=m(d,g),y=0;y>>0),i=t(n,e);return new i}})}})}}(),function(){function e(){}function t(e,t,o){var a=AlloyEditor.Buttons[e];return i[o.name]=i[o.name]||{},i[o.name][e]=i[o.name][e]||t,a||(a=React.createClass(CKEDITOR.tools.merge(n,{displayName:e,propTypes:{editor:React.PropTypes.object.isRequired,tabIndex:React.PropTypes.number},statics:{key:e},render:function(){var t=this.props.editor.get("nativeEditor"),n=i[t.name][e].name||i[t.name][e].command||e,o="ae-button ae-button-bridge",a="ae-icon-"+n,r={},s=CKEDITOR.skin.getIconStyle(n);if(s){var l=s.split(";");r.backgroundImage=l[0].substring(l[0].indexOf(":")+1),r.backgroundPosition=l[1].substring(l[1].indexOf(":")+1),r.backgroundSize=l[2].substring(l[2].indexOf(":")+1)}var c;return this.props.expanded&&(c=this._getMenu()),React.createElement("div",{className:"ae-container ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":i[t.name][e].label,className:o,onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:i[t.name][e].label},React.createElement("span",{className:a,style:r})),c)},_getMenu:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getMenuItems())},_getMenuItems:function(){var e=this.props.editor.get("nativeEditor"),n=t.onMenu(),i=Object.keys(n).map(function(t){var i=e.getMenuItem(t);if(!i)return null;var o=i.definition||i,a=n[t],r="ae-toolbar-element "+(a===CKEDITOR.TRISTATE_ON?"active":""),s=a===CKEDITOR.TRISTATE_DISABLED,l=function(){o.command?e.execCommand(o.command):o.onClick&&o.onClick.apply(o)};return React.createElement("li",{key:i.name,role:"option"},React.createElement("button",{className:r,disabled:s,onClick:l},o.label))}.bind(this));return i}})),AlloyEditor.Buttons[e]=a),a}if(!CKEDITOR.plugins.get("ae_menubuttonbridge")){var n={toFeature:e},i={};CKEDITOR.plugins.get("menubutton")||(CKEDITOR.UI_MENU_BUTTON="menubutton",CKEDITOR.plugins.add("menubutton",{})),CKEDITOR.plugins.add("ae_menubuttonbridge",{requires:["ae_uibridge","ae_menubridge"],init:function(e){e.ui.addMenuButton=function(e,t){this.add(e,CKEDITOR.UI_MENUBUTTON,t)},e.ui.addHandler(CKEDITOR.UI_MENUBUTTON,{add:t,create:function(e){var n="buttonBridge"+(1e9*Math.random()>>>0),i=t(n,e);return new i}})}})}}(),function(){CKEDITOR.plugins.get("ae_menubridge")||CKEDITOR.plugins.add("ae_menubridge",{init:function(e){if(!CKEDITOR.plugins.get("menu")){for(var t=[],n=e._.menuGroups={},i=e._.menuItems={},o=0;o>>0),n=i(t,e);return new n}})}})}}(),function(){function e(){}if(!CKEDITOR.plugins.get("ae_richcombobridge")){var t={commit:e,createPanel:e,disable:e,enable:e,getState:e,hideGroup:e,hideItem:e,mark:e,showAll:e,startGroup:e,unmarkAll:e},n={},i=function(e,i,o){var a=AlloyEditor.Buttons[e];return n[o.name]=n[o.name]||{},n[o.name][e]=n[o.name][e]||i,n[o.name][e].currentValue=void 0,a||(a=React.createClass(CKEDITOR.tools.merge(t,{displayName:e,propTypes:{editor:React.PropTypes.object.isRequired},statics:{key:e},add:function(e,t,n){this._items.push({preview:t,title:n,value:e})},componentWillMount:function(){var t=this.props.editor.get("nativeEditor"),i=n[t.name][e];this._items=[],this.setValue=this._setValue,i.init&&i.init.call(this),i.onRender&&i.onRender.call(this)},componentWillUnmount:function(){this._cacheValue(this.state.value),this.setValue=this._cacheValue},getInitialState:function(){return{value:n[o.name][e].currentValue}},getValue:function(){return this.state.value},render:function(){var t,o=this.props.editor.get("nativeEditor"),a=n[o.name][e].currentValue||i.label;return this.props.expanded&&(t=this._getItemsList()),React.createElement("div",{className:"ae-container-dropdown ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":a,className:"ae-toolbar-element",onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:a},React.createElement("div",{className:"ae-container"},React.createElement("span",{className:"ae-container-dropdown-selected-item"},a),React.createElement("span",{className:"ae-icon-arrow"}))),t)},_cacheValue:function(t){var i=this.props.editor.get("nativeEditor");n[i.name][e].currentValue=t},_getItems:function(){var e=this,t=this._items.map(function(t){var n="ae-toolbar-element "+(t.value===this.state.value?"active":"");return React.createElement("li",{key:t.title,role:"option"},React.createElement("button",{className:n,dangerouslySetInnerHTML:{__html:t.preview},"data-value":t.value,onClick:e._onClick}))}.bind(this));return t},_getItemsList:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getItems())},_onClick:function(t){var i=this.props.editor.get("nativeEditor"),o=n[i.name][e];if(o.onClick){var a=t.currentTarget.getAttribute("data-value");o.onClick.call(this,a),n[i.name][e].currentValue=a,i.fire("actionPerformed",this)}},_setValue:function(e){this._cacheValue(e),this.setState({value:e})}})),AlloyEditor.Buttons[e]=a),a};CKEDITOR.plugins.get("richcombo")||(CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.plugins.add("richcombo",{})),CKEDITOR.plugins.add("ae_richcombobridge",{requires:["ae_uibridge"],init:function(e){e.ui.addRichCombo=function(e,t){this.add(e,CKEDITOR.UI_RICHCOMBO,t)},e.ui.addHandler(CKEDITOR.UI_RICHCOMBO,{add:i,create:function(e){var t="richComboBridge"+(1e9*Math.random()>>>0),n=i(t,e);return new n}})}})}}(),function(){CKEDITOR.plugins.get("ae_uibridge")||CKEDITOR.plugins.add("ae_uibridge",{beforeInit:function(e){var t=e.ui.add;e.ui.add=function(n,i,o){t.apply(this,arguments);var a=this._.handlers[i];a&&a.add&&a.add(n,o,e)}}})}();var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var e={isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isBoolean:function(e){return"boolean"==typeof e},isFunction:function(e){return"function"==typeof e},isNull:function(e){return null===e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isObject:function(t){var n="undefined"==typeof t?"undefined":_typeof(t);return t&&("object"===n||e.isFunction(t))},isString:function(e){return"string"==typeof e},mix:function(e,t){var n=Object.prototype.hasOwnProperty;for(var i in t)n.call(t,i)&&(e[i]=t[i])},toInt:function(e){return parseInt(e,10)}};AlloyEditor.Lang=e}(),function(){var e={extend:function(e,t,n,i){if(!t||!e)throw"extend failed, verify dependencies";var o=t.prototype,a=Object.create(o);return e.prototype=a,a.constructor=e,e.superclass=o,t!==Object&&o.constructor===Object.prototype.constructor&&(o.constructor=t),n&&AlloyEditor.Lang.mix(a,n),i&&AlloyEditor.Lang.mix(e,i),e}};AlloyEditor.OOP=e}(),function(){function e(e){this.__config__=e||{},this.__ATTRS__={}}e.prototype={constructor:e,get:function(e){var t=this.constructor.ATTRS[e];if(t){this._isInitialized(e)||this._init(e);var n=this.__ATTRS__[e];return t.getter&&(n=this._callStringOrFunction(t.getter,n)),n}},set:function(e,t){var n=this.constructor.ATTRS[e];n&&(this._isInitialized(e)||this._init(e),n.readOnly||n.writeOnce&&this._isInitialized(e)||n.validator&&!this._callStringOrFunction(n.validator,t)||(n.setter&&(t=this._callStringOrFunction(n.setter,t)), this.__ATTRS__[e]=t))},_callStringOrFunction:function(e,t){var n=null;return AlloyEditor.Lang.isArray(t)||(t=[t]),AlloyEditor.Lang.isString(e)&&AlloyEditor.Lang.isFunction(this[e])?n=this[e].apply(this,t):AlloyEditor.Lang.isFunction(e)&&(n=e.apply(this,t)),n},_init:function(e){var t,n=this.constructor.ATTRS[e],i=Object.prototype.hasOwnProperty.call(n,"value"),o=Object.prototype.hasOwnProperty.call(this.__config__,e);if(n.valueFn)t=this._callStringOrFunction(n.valueFn,t),this.__ATTRS__[e]=t;else if(n.readOnly)t=n.value;else if(n.writeOnce)if(o)t=this.__config__[e];else{if(!i)return;t=n.value}else o?t=this.__config__[e]:i&&(t=n.value);if(n.validator&&o&&!this._callStringOrFunction(n.validator,t)){if(!i)return;t=n.value}n.setter&&o&&(t=this._callStringOrFunction(n.setter,t)),this.__ATTRS__[e]=t},_isInitialized:function(e){return Object.prototype.hasOwnProperty.call(this.__ATTRS__,e)}},AlloyEditor.Attribute=e}(),function(){function e(t){e.superclass.constructor.call(this,t),this.init(t)}AlloyEditor.OOP.extend(e,AlloyEditor.Attribute,{init:function(e){this._callChain("initializer",e)},destroy:function(){this._callChain("destructor")},_callChain:function(e,t){for(var n=[],i=this.constructor;i;)AlloyEditor.Lang.isFunction(i.prototype[e])&&n.push(i.prototype[e]),i=i.superclass?i.superclass.constructor:null;n=n.reverse(),t=AlloyEditor.Lang.isArray(t)?t:[t];for(var o=0;o>>0).toString(),i=e.getCommand(n);i||(i=new CKEDITOR.command(e,{exec:function(e){var n=t.fn;AlloyEditor.Lang.isString(n)?this[n].call(this,e):AlloyEditor.Lang.isFunction(n)&&n.call(this,e)}.bind(this)}),e.addCommand(n,i)),this._defaultKeystrokeCommand=e.keystrokeHandler.keystrokes[t.keys],e.setKeystroke(t.keys,n)},componentWillUnmount:function(){this.props.editor.get("nativeEditor").setKeystroke(this.props.keystroke.keys,this._defaultKeystrokeCommand)}};AlloyEditor.ButtonKeystroke=e}(),function(){var e={propTypes:{editor:React.PropTypes.object.isRequired},mergeButtonCfgProps:function(e){e=e||this.props;var t=this.props.editor.get("nativeEditor"),n=t.config.buttonCfg||{},i=CKEDITOR.tools.merge(e,n[AlloyEditor.ButtonLinkEdit.key]);return i}};AlloyEditor.ButtonCfgProps=e}(),function(){var e={getStateClasses:function(){var e="";return AlloyEditor.Lang.isFunction(this.isActive)&&this.isActive()&&(e+="ae-button-pressed"),AlloyEditor.Lang.isFunction(this.isDisabled)&&this.isDisabled()&&(e+=" ae-button-disabled"),e}};AlloyEditor.ButtonStateClasses=e}(),function(){var e={propTypes:{style:React.PropTypes.oneOfType([React.PropTypes.object,React.PropTypes.string])},componentWillMount:function(){var e=AlloyEditor.Lang,t=this.props.style;if(e.isString(t)){for(var n=t.split("."),i=this.props.editor.get("nativeEditor").config,o=n.shift();o&&e.isObject(i)&&e.isObject(i[o]);)i=i[o],o=n.shift();e.isObject(i)&&(t=i)}this._style=new CKEDITOR.style(t)},componentWillUnmount:function(){this._style=null},getStyle:function(){return this._style},isActive:function(){var e,t=this.props.editor.get("nativeEditor"),n=t.elementPath();return e=this.getStyle().checkActive(n,t)}};AlloyEditor.ButtonStyle=e}(),function(){var e={getToolbarButtons:function(e,t){var n={},i=this.props.editor.get("nativeEditor"),o=i.config.buttonCfg||{},a=this.filterExclusive(e.filter(function(e){return e&&(AlloyEditor.Buttons[e]||AlloyEditor.Buttons[e.name])}).map(function(e){return AlloyEditor.Lang.isString(e)?(n[e]=o[e],e=AlloyEditor.Buttons[e]):AlloyEditor.Lang.isString(e.name)&&(n[AlloyEditor.Buttons[e.name].key]=CKEDITOR.tools.merge(o[e],e.cfg),e=AlloyEditor.Buttons[e.name]),e})).map(function(e){var i=this.mergeExclusiveProps({editor:this.props.editor,key:e.key,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return i=this.mergeDropdownProps(i,e.key),t&&(i=CKEDITOR.tools.merge(i,t)),i=CKEDITOR.tools.merge(i,n[e.key]),React.createElement(e,i)},this);return a}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):ReactDOM.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,t=1,n=-1,i=0,o=1,a=2,r={propTypes:{onDismiss:React.PropTypes.func,circular:React.PropTypes.bool.isRequired,focusFirstChild:React.PropTypes.bool,descendants:React.PropTypes.string.isRequired,keys:React.PropTypes.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===o&&this._moveFocus(t.direction),t.type===a&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:i};if(this.props.keys){var n=this._getFocusMoveDirection(e);n&&(t.direction=n,t.type=o);var r=this._getFocusDismissAction(e,n);r.dismiss&&(t.direction=r.direction,t.type=a)}return t},_getFocusDismissAction:function(e,i){var o={direction:i,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(o.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(o.dismiss=!0,o.direction=t),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(o.dismiss=!0,o.direction=n),o.dismiss||this.props.circular||!i||(o.dismiss=i===n&&0===this._activeDescendant||i===t&&this._activeDescendant===this._descendants.length-1)),o},_getFocusMoveDirection:function(i){var o=e;return this._isValidKey(i.keyCode,this.props.keys.next)&&(o=t),this._isValidKey(i.keyCode,this.props.keys.prev)&&(o=n),i.shifKey&&(o*=-1),o},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,n=this._descendants[this._activeDescendant];n.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),n=this._descendants[this._activeDescendant],n.setAttribute("tabIndex",0),n.focus()},_refresh:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),n=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?n.push(e):this._descendants.push(e)}.bind(this)),n=n.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=n.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:React.PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,n=e.nativeEvent,i={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return i.x&&i.y?(s=this._getXPoint(t,i.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(i.y,t.region.top):Math.max(i.y,this._getYPoint(t,n))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,n):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var n,i=e.region,o=i.startRect?i.startRect.left:i.left,a=i.endRect?i.endRect.right:i.right;if(ot)n=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);n=rt.width&&(n-=e.left+e.width-t.width),i<0&&(i=0),{x:n,y:i}},getWidgetXYPoint:function(e,t,n){var i=ReactDOM.findDOMNode(this),o=this.props.gutter;return n===CKEDITOR.SELECTION_TOP_TO_BOTTOM||n===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-i.offsetWidth/2,t=n===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-i.offsetHeight-o.top):n!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&n!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=n===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+i.offsetHeight/2:e-3*i.offsetHeight/2-o.left,t=t-o.top-i.offsetHeight/2),e<0&&(e=0),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var n=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));n.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0}),n.removeClass("alloy-editor-invisible"),this._animate(function(){n.addClass("ae-toolbar-transition"),n.addClass("alloy-editor-visible"),n.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})})},show:function(){var e=ReactDOM.findDOMNode(this);if(!this.isVisible()&&e){var t=this.getInteractionPoint();if(t){var n,i,o,a,r=new CKEDITOR.dom.element(e);if(n=o=parseFloat(r.getStyle("left")),i=a=parseFloat(r.getStyle("top")),this.props.constrainToViewport){var s=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:n,top:i,width:parseFloat(e.offsetWidth)});n=s.x,i=s.y}a=t.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom:this.props.selectionData.region.top,this.moveToPoint([o,a],[n,i])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var n=this.getWidgetXYPoint(e.x,e.y,e.direction);new CKEDITOR.dom.element(t).setStyles({left:n[0]+"px",top:n[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=React.createClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=React.createClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),n=t.getContext("2d"),i=this._videoHeight,o=this.props.videoWidth;if(o&&i){t.width=o,t.height=i,n.drawImage(e,0,0,o,i);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),n=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var i=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(i)&&(i=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",i),n.setAttribute("width",this.props.videoWidth),n.setAttribute("height",i),this._videoHeight=i}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=React.createClass({displayName:"ButtonCamera",propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),n=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":n,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:n},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=React.createClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=React.createClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:React.PropTypes.string.isRequired,icon:React.PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.description)},_getClassName:function(){var e="ae-toolbar-element";return this.props.icon&&(e+=" ae-icon-"+this.props.icon),e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=React.createClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:React.PropTypes.arrayOf(React.PropTypes.object),editor:React.PropTypes.object.isRequired,listId:React.PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,n=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),editor:n}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=React.createClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,n=React.createClass({displayName:"ButtonEmbedEdit",propTypes:{editor:React.PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),n=t.getSelection();if(n){var i=n.getSelectedElement();i&&(e=i.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(n){if(n.keyCode!==e&&n.keyCode!==t||n.preventDefault(),n.keyCode===e)this._embedLink();else if(n.keyCode===t){var i=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),i.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[n.key]=AlloyEditor.ButtonEmbedEdit=n}(),function(){var e=React.createClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=React.createClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=React.createClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2 -},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=React.createClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=React.createClass({displayName:"ButtonImage",propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,n=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),i=t.fire("beforeImageAdd",{imageFiles:n});if(i){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:n};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(n),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=React.createClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=React.createClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=React.createClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:React.PropTypes.func,autocompleteSelected:React.PropTypes.bool,term:React.PropTypes.string,setAutocompleteState:React.PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var n=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:n,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:n};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(n),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=React.createClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=React.createClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=React.createClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:React.PropTypes.func,autocompleteSelected:React.PropTypes.bool,term:React.PropTypes.string,setAutocompleteState:React.PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var n=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:n,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t=0?r=r+"-"+a:n.indexOf(r)===-1&&(r="en"),CKEDITOR.scriptLoader.load(t.getUrl("lang/alloy-editor/"+r+".js"),function(e){e&&t.fire("languageResourcesLoaded")},this)}},getUrl:function(e){var n=t.getBasePath();return e.indexOf(":/")===-1&&0!==e.indexOf("/")&&(e=n+e),CKEDITOR.timestamp&&"/"!==e.charAt(e.length-1)&&!/[&?]t=/.test(e)&&(e+=(e.indexOf("?")>=0?"&":"?")+"t="+CKEDITOR.timestamp),e},implementEventTarget:function(){t.fire||t.on||CKEDITOR.event.implementOn(t)},regexBasePath:/(^|.*[\\\/])(?:alloy-editor[^\/]+|alloy-editor)\.js(?:\?.*|;.*)?$/i,Buttons:{},Toolbars:{}};"undefined"!=typeof module&&"object"===e(module.exports)&&(module.exports=t),"undefined"!=typeof window?window.AlloyEditor=t:"undefined"!=typeof global?global.AlloyEditor=t:"undefined"!=typeof self?self.AlloyEditor=t:this.AlloyEditor=t}();var t=function(){return(0,eval)("this").React}();"undefined"==typeof t&&(t=AlloyEditor.React);var n=function(){return(0,eval)("this").ReactDOM}();if("undefined"==typeof t&&(n=AlloyEditor.ReactDOM),"undefined"!=typeof window){!function(){CKEDITOR.tools.debounce=CKEDITOR.tools.debounce||function(e,t,n,i){var o,r=function(){var r=n||this;clearTimeout(o);for(var a=[],s=arguments.length,l=0;l0?t.getRangeAt(0).getClientRects():[]),0===o.length)i=this.getCaretRegion();else{for(var c=0,u=o.length;cl&&(l=p.right),p.topa&&(a=p.bottom)}var m=new CKEDITOR.dom.window(window).getScrollPosition();if(i.bottom=m.y+a,i.left=m.x+s,i.right=m.x+l,i.top=m.y+d,o.length){var g=o[o.length-1],h=o[0];i.endRect={bottom:m.y+g.bottom,height:g.height,left:m.x+g.left,right:m.x+g.right,top:m.y+g.top,width:g.width},i.startRect={bottom:m.y+h.bottom,height:h.height,left:m.x+h.left,right:m.x+h.right,top:m.y+h.top,width:h.width}}}return i},getSelectionDirection:function(){var e=CKEDITOR.SELECTION_TOP_TO_BOTTOM,t=this.getSelection(),n=t.getNative();if(!n)return e;var i;if((i=n.anchorNode)&&i.compareDocumentPosition){var o=i.compareDocumentPosition(n.focusNode);(!o&&n.anchorOffset>n.focusOffset||o===Node.DOCUMENT_POSITION_PRECEDING)&&(e=CKEDITOR.SELECTION_BOTTOM_TO_TOP)}return e}},CKEDITOR.plugins.add("ae_selectionregion",{init:function(t){var n,i;i=Object.prototype.hasOwnProperty;for(n in e.prototype)i.call(e.prototype,n)&&"undefined"==typeof t[n]&&(t[n]=e.prototype[n])}}))}(),function(){function e(e){this._editor=e}var t={table:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1};e.HEADING_BOTH="Both",e.HEADING_COL="Column",e.HEADING_NONE="None",e.HEADING_ROW="Row",e.prototype={constructor:e,create:function(e){var t=this._editor,n=this._createElement("table");e=e||{};for(var i=n.append(this._createElement("tbody")),o=e.rows||1,r=e.cols||1,a=0;a0&&(CKEDITOR.env.webkit&&i[0].shrink(CKEDITOR.NODE_ELEMENT),e=this._editor.elementPath(i[0].getCommonAncestor(!0)).contains("table",1))}return e},isEditable:function(e){return CKEDITOR.env.ie&&e.is(t)?e.hasAttribute("contenteditable")?"false"!==e.getAttribute("contenteditable"):this.isEditable(e.getParent()):!e.isReadOnly()},getHeading:function(t){if(t=t||this.getFromSelection(),!t)return null;for(var n=null!==t.$.tHead,i=!0,o=0;o0;){var h=r.getFirst(),f=h.getChildCount();for(i=0;i0){var t=e.data.$.clipboardData.items[0];if(0===t.type.indexOf("image")){var n=t.getAsFile();this._processFile(n,e.listenerData.editor)}}},_preventEvent:function(e){e=new CKEDITOR.dom.event(e.data.$),e.preventDefault(),e.stopPropagation()},_processFile:function(e,t){var n=new FileReader;n.addEventListener("loadend",function(){var i=n.result,o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o);var r={el:o,file:e};t.fire("imageAdd",r)}),n.readAsDataURL(e)}})}(),function(){if(!CKEDITOR.plugins.get("ae_autolink")){/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/.test(navigator.userAgent)&&document.execCommand("AutoUrlDetect",!1,!1);var e=8,t=188,n=13,i=186,o=32,r=[t,n,i,o],a=/[^\s]+/gm,s=/(https?\:\/\/|www\.)(-\.)?([^(\s\/?\.#-)]+\.?)+(\b\/[^\s]*)?$/i;CKEDITOR.plugins.add("ae_autolink",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keyup",this._onKeyUp,this,{editor:e})}.bind(this))},_getLastWord:function(e){var t=e.getSelection().getRanges()[0],i=t.startOffset,o="";if(this._currentKeyCode===n){var r,s=t.startContainer.getPrevious();if(s){for(;!s.getLast;)s=s.getPrevious();for(r=s.getLast();r&&!r.getText();)r=r.getPrevious()}r&&r.$.href||(this._startContainer=r,o=r?r.getText():"",this._offset=o.length)}else this._startContainer=t.startContainer,o=this._startContainer.getText().substring(0,i-1),this._offset=i-1;var l="",d=o.match(a);return d&&(l=d.pop()),l},_isValidURL:function(e){return s.test(e)},_onKeyDown:function(t){var n=t.data.$,i=t.listenerData.editor,o=i.editable();o.removeListener("keydown",this._onKeyDown),n.keyCode===e&&(t.cancel(),t.data.preventDefault(),this._removeLink(i)),this._ckLink=null},_onKeyUp:function(e){var t=e.data.$;if(this._currentKeyCode=t.keyCode,r.indexOf(this._currentKeyCode)!==-1){var n=e.listenerData.editor,i=this._getLastWord(n);this._isValidURL(i)&&this._replaceContentByLink(n,i)}},_replaceContentByLink:function(e,t){var i=e.createRange(),o=CKEDITOR.dom.element.get(this._startContainer),r=this._offset;i.setStart(o,r-t.length),i.setEnd(o,r),i.select();var a=new CKEDITOR.Link(e);a.create(t),this._ckLink=a;var s=a.getFromSelection();if(e.fire("autolinkAdd",s),this._subscribeToKeyEvent(e),i=e.getSelection().getRanges()[0],this._currentKeyCode===n){var l=i.getNextEditableNode();i.setStart(l,0),i.setEnd(l,0)}else{var d=i.getNextNode();i.setStart(d,1),i.setEnd(d,1)}i.select()},_removeLink:function(e){var t=e.getSelection().getRanges()[0],n=t.startOffset,i=this._startContainer.getNext()||this._startContainer,o=e.createRange();o.setStart(i,0),o.setEndAfter(i),o.select(),this._ckLink.remove(),t.setEnd(t.startContainer,n),t.setStart(t.startContainer,n),t.select()},_subscribeToKeyEvent:function(e){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e},1)}})}}(),function(){if(!CKEDITOR.plugins.get("ae_autolist")){var e=8,t=32,n=[{regex:/^\*$/,type:"bulletedlist"},{regex:/^1\.$/,type:"numberedlist"}];CKEDITOR.plugins.add("ae_autolist",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e})}.bind(this))},_checkForBackspaceAndUndo:function(t){var n=t.listenerData.editor,i=t.data.$,o=n.editable();o.removeListener("keydown",this._checkForBackspaceAndUndo),i.keyCode===e&&(n.execCommand("undo"),n.insertHtml(t.listenerData.bullet+" "),t.data.preventDefault())},_getListConfig:function(e){for(var t=e.config.autolist||n,i=e.getSelection().getRanges()[0],o=i.endContainer.getText(),r=o.substring(0,i.startOffset),a=o.substring(i.startOffset,o.length),s=0,l=t.length,d=null;!d&&l>s;){var c=t[s];if(c.regex.test(r)){d={bullet:r,editor:e,text:a,type:c.type};break}s++}return d},_createList:function(e){var t=e.editor,n=t.getSelection().getRanges()[0];n.endContainer.setText(e.text),t.execCommand(e.type);var i=t.editable();i.attachListener(i,"keydown",this._checkForBackspaceAndUndo,this,{editor:t,bullet:e.bullet},1)},_onKeyDown:function(e){var n=e.data.$;if(n.keyCode===t){var i=this._getListConfig(e.listenerData.editor);i&&(e.data.preventDefault(),this._createList(i))}}})}}(),function(){function e(e){function n(){var t=e.getSelection();t&&(t.getType()!==CKEDITOR.SELECTION_NONE&&t.getStartElement().is("img")?i.event&&i.event.button&&0!==i.event.button||a.show(t.getStartElement().$):a.hide())}var i=e.window.$,o=e.document.$,r="undefined"==typeof c?null:c;e.config.imageScaleResize=e.config.imageScaleResize||"both";var a=new t(e,{imageScaleResize:e.config.imageScaleResize,snapToSize:r});o.addEventListener("mousedown",function(e){a.isHandle(e.target)&&a.initDrag(e)},!1),e.on("selectionChange",n),e.on("getData",function(e){var t=e.data.dataValue||"";t=t.replace(/
/i,""),t=t.replace(/\b(ckimgrsz)\b/g,""),e.data.dataValue=t}),e.on("beforeUndoImage",function(){a.hide()}),e.on("afterUndoImage",function(){n()}),e.on("blur",function(){a.hide()}),e.on("beforeModeUnload",function l(){e.removeListener("beforeModeUnload",l),a.hide()}),e.on("destroy",function(){var e=o.getElementById("ckimgrsz");e&&e.remove(),u&&o.execCommand("enableObjectResizing",!1,!0)});var s;e.window.on("resize",function(){clearTimeout(s),s=setTimeout(n,50)})}function t(e,t){this.editor=e,this.window=e.window.$,this.document=e.document.$,this.cfg=t||{},this.init()}function n(e,t){this.window=e,this.document=t,this.events={mousemove:o(this.mousemove,this),keydown:o(this.keydown,this),mouseup:o(this.mouseup,this)}}function i(e){for(var t=e.length,n=new Array(t),i=0;ii?t.height=Math.round(t.width/i):t.width=Math.round(t.height*i)}var o=this.cfg.snapToSize;if(o)for(var r=this.otherImages,a=0;a=15&&(u>=15||"auto"===u)?(f.setAttributes({width:c,height:u}),p=!0):p=!1}function l(){for(var i;i=C.pop();)i.removeListener();n.removeClass(A),o.removeClass("cke_image_resizing"),p&&(e.setData({height:u,width:c}),t.fire("saveSnapshot")),p=!1}var d,c,u,p,m,g,h,f=e.parts.image,y="right"==e.data.align?-1:1,E=r.data.$.screenX,b=r.data.$.screenY,v=f.$.clientWidth,T=f.$.clientHeight,C=[],A="cke_image_s"+(~y?"e":"w");t.fire("saveSnapshot"),a("mousemove",s,C),a("mouseup",l,C),n.addClass(A),o.addClass("cke_image_resizing")}),e.on("data",function(){o["right"==e.data.align?"addClass":"removeClass"]("cke_image_resizer_left")}),e.parts.image.on("click",function(){t._.editable.editor.getSelection().selectElement(this);var e=t._.editable.editor.getSelectionData();e&&t.fire("editorInteraction",{nativeEvent:event,selectionData:e})})}function s(e){var t={figcaption:!0,figure:{classes:"!"+e.config.image2_captionedClass},img:{attributes:"!src,alt,width,height"}};return t}function l(e){var t=e.config.image2_alignClasses,n={align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"},dimension:{requiredContent:"img[width,height]"}};return n}function d(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie")){var c={center:1,left:0,right:2},u={both:"nwse-resize",height:"ns-resize",scale:"nwse-resize",width:"ew-resize"},p=/^\s*(\d+\%)\s*$/i,m='';CKEDITOR.plugins.add("ae_dragresize_ie",{hidpi:!0,icons:"image",init:function(t){var n=e(t);t.widgets.add("image",n)},onLoad:function(){CKEDITOR.addCss(".cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ns-resize{cursor: ns-resize;}.cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ew-resize{cursor: ew-resize;}.cke_image_nocaption{line-height:0}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:nwse-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}")},requires:"widget"}),CKEDITOR.plugins.image2={checkHasNaturalRatio:function(e){var t=e.$,n=this.getNatural(e);return Math.round(t.clientWidth/n.width*n.height)==t.clientHeight||Math.round(t.clientHeight/n.height*n.width)==t.clientWidth},getNatural:function(e){var t;if(e.$.naturalWidth)t={height:e.$.naturalHeigh,width:e.$.naturalWidth};else{var n=new Image;n.src=e.getAttribute("src"),t={height:n.heigh,width:n.width}}return t}}}}(),CKEDITOR.config.image2_captionedClass="image",function(){if(!CKEDITOR.plugins.get("ae_embed")){var e=/^https?/,t=/
',CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL='{url}',CKEDITOR.plugins.add("ae_embed",{requires:"widget",init:function(n){var i=new CKEDITOR.template(n.config.embedUrlTemplate||CKEDITOR.DEFAULT_AE_EMBED_URL_TPL),o=new CKEDITOR.template(n.config.embedWidgetTpl||CKEDITOR.DEFAULT_AE_EMBED_WIDGET_TPL),r=new CKEDITOR.template(n.config.embedLinkDefaultTpl||CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL),a=function(e,t){if("div"===e.name&&e.attributes["data-ae-embed-url"])return t.url=e.attributes["data-ae-embed-url"],!0};n.addCommand("embedUrl",{exec:function(e,t){e.insertHtml(o.output({url:t.url}))}}),n.widgets.add("ae_embed",{mask:!0,requiredContent:"div[data-ae-embed-url]",data:function(e){var n=this,o=e.data.url;o&&CKEDITOR.tools.jsonp(i,{url:encodeURIComponent(o)},function(e){e.html?t.test(e.html)?n.createATag(o):n.element.setHtml(e.html):n.createATag(o,currentSelection)},function(e){n.createATag(o,currentSelection)})},createATag:function(e){this.editor.execCommand("undo");var t=(this.editor.getSelection().getSelectedElement(),r.output({url:e}));this.editor.insertHtml(t),this.editor.fire("actionPerformed",this)},upcast:function(e,t){var i=n.config.embedWidgetUpcastFn||a;return i(e,t)}}),n.once("contentDom",function(){n.on("paste",function(t){var i=t.data.dataValue;e.test(i)&&(t.stop(),n.execCommand("embedUrl",{url:t.data.dataValue}))})}),n.on("selectionChange",function(e){var t=n.getSelection();if(t){var i=t.getSelectedElement();if(i){var o=i.findOne('[data-widget="ae_embed"]');if(o){var r=i.getClientRect(),a=new CKEDITOR.dom.window(window).getScrollPosition();r.left-=a.x,r.top+=a.y,r.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,n.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:r}})}}}}),n.filter.addElementCallback(function(e){if("data-ae-embed-url"in e.attributes)return CKEDITOR.FILTER_SKIP_TREE})}})}}(),function(){if(!CKEDITOR.plugins.get("ae_imagealignment")){var e={CENTER:"center",LEFT:"left",RIGHT:"right"},t=[e.LEFT,e.RIGHT,e.CENTER],n=[{name:"display",value:"block"},{name:"margin-left",value:"50%"},{name:"transform",value:"translateX(-50%)",vendorPrefixes:["-ms-"]}],i=function(t){var i=t.getStyle("float");if(i&&"inherit"!==i&&"none"!==i||(i=t.getAttribute("align")),!i){var o=n.every(function(e){var n=t.getStyle(e.name)===e.value;return!n&&e.vendorPrefixes&&(n=e.vendorPrefixes.some(function(n){return t.getStyle(n+e.name)===e.value})),n});i=o?e.CENTER:null}return i},o=function(t,o){o===e.LEFT||o===e.RIGHT?(t.removeStyle("float"),o===i(t)&&t.removeAttribute("align")):o===e.CENTER&&n.forEach(function(e){t.removeStyle(e.name),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(n){t.removeStyle(n+e.name)})})},r=function(t,r){o(t,i(t)),r===e.LEFT||r===e.RIGHT?t.setStyle("float",r):r===e.CENTER&&n.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(n){t.setStyle(n+e.name,e.value)})})};CKEDITOR.plugins.add("ae_imagealignment",{afterInit:function(e){var n=this;t.forEach(function(t){var a=e.getCommand("justify"+t);a&&(a.on("exec",function(a){var s=e.getSelectionData();if(s&&AlloyEditor.SelectionTest.image({data:{selectionData:s}})){var l=s.element,d=i(l);d===t?o(l,t):r(l,t),a.cancel(),n.refreshCommands(e,new CKEDITOR.dom.elementPath(l))}}),a.on("refresh",function(e){var n={element:e.data.path.lastElement};if(AlloyEditor.SelectionTest.image({data:{selectionData:n}})){var o=i(n.element);this.setState(o===t?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.cancel()}}))})},refreshCommands:function(e,n){t.forEach(function(t){var i=e.getCommand("justify"+t);i&&i.refresh(e,n)})}})}}(),function(){CKEDITOR.plugins.get("ae_pasteimages")||CKEDITOR.plugins.add("ae_pasteimages",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"paste",this._onPaste,this,{editor:e})}.bind(this))},_onPaste:function(e){if(e.data.$.clipboardData){var t=e.data.$.clipboardData.items[0],n=e.listenerData.editor;if(0===t.type.indexOf("image")){var i=new FileReader,o=t.getAsFile();i.onload=function(e){var t=n.fire("beforeImageAdd",{imageFiles:o});if(t){var i=CKEDITOR.dom.element.createFromHtml('');n.insertElement(i);var r={el:i,file:o};n.fire("imageAdd",r)}}.bind(this),i.readAsDataURL(o)}}}})}(),function(){CKEDITOR.plugins.get("ae_placeholder")||CKEDITOR.plugins.add("ae_placeholder",{init:function(e){e.on("blur",this._checkEmptyData,this),e.on("change",this._checkEmptyData,this),e.on("focus",this._removePlaceholderClass,this),e.once("contentDom",this._checkEmptyData,this)},_checkEmptyData:function(e){var t=e.editor,n=t.editable();""===n.$.innerText.trim()?n.addClass(t.config.placeholderClass):n.removeClass(t.config.placeholderClass)},_removePlaceholderClass:function(e){var t=e.editor,n=new CKEDITOR.dom.element(t.element.$);n.removeClass(t.config.placeholderClass)}})}(),function(){CKEDITOR.plugins.get("ae_selectionkeystrokes")||CKEDITOR.plugins.add("ae_selectionkeystrokes",{requires:"ae_selectionregion",init:function(e){e.config.selectionKeystrokes&&e.config.selectionKeystrokes.forEach(function(t){var n=new CKEDITOR.command(e,{exec:function(e){e.fire("editorInteraction",{manualSelection:t.selection,nativeEvent:{},selectionData:e.getSelectionData()})}}),i="selectionKeystroke"+t.selection;e.addCommand(i,n),e.setKeystroke(t.keys,i)})}})}(),function(){function e(e){return CKEDITOR.env.ie?e.$.clientWidth:parseInt(e.getComputedStyle("width"),10)}function t(e,t){var n=e.getComputedStyle("border-"+t+"-width"),i={thin:"0px",medium:"1px",thick:"2px"};return n.indexOf("px")<0&&(n=n in i&&"none"!=e.getComputedStyle("border-style")?i[n]:0),parseInt(n,10)}function n(e){for(var t,n,i,o=e.$.rows,r=0,a=0,s=o.length;ar&&(r=t,n=i);return n}function i(e){for(var i=[],o=-1,r="rtl"===e.getComputedStyle("direction"),a=n(e),s=new CKEDITOR.dom.element(e.$.tBodies[0]),l=s.getDocumentPosition(),d=0,c=a.cells.length;d=o.x&&t<=o.x+o.width)return o}return null}function r(e){(e.data||e).preventDefault()}function a(n){function i(){p=null,y=0,h=0,m.removeListener("mouseup",c),g.removeListener("mousedown",d),g.removeListener("mousemove",u),m.getBody().setStyle("cursor","auto")}function o(){for(var t=p.index,n=CKEDITOR.tools.buildTableMap(p.table),i=[],o=[],a=Number.MAX_VALUE,s=a,l=p.rtl,d=0,c=n.length;d
',m),n.on("destroy",function(){g.remove()}),m.getDocumentElement().append(g),this.attachTo=function(e){h||(p=e,g.setStyles({width:l(e.width),height:l(e.height),left:l(e.x),top:l(e.y)}),g.on("mousedown",d,this),m.getBody().setStyle("cursor","col-resize"),g.show())};var C=this.move=function(e){if(!p)return 0;if(!h&&(ep.x+p.width))return i(),0;var t=e-Math.round(g.$.offsetWidth/2);if(h){if(t===v||t===T)return 1;t=Math.max(t,v),t=Math.min(t,T),y=t-f}return g.setStyle("left",l(t)),1}}function s(e){var t=e.data.getTarget();if("mouseout"===e.name){if(!t.is("table"))return;for(var n=new CKEDITOR.dom.element(e.data.$.relatedTarget||e.data.$.toElement);n&&n.$&&!n.equals(t)&&!n.is("body");)n=n.getParent();if(!n||n.equals(t))return}t.getAscendant("table",1).removeCustomData("_cke_table_pillars"),e.removeListener()}if(!CKEDITOR.plugins.get("ae_tableresize")){var l=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("ae_tableresize",{requires:"ae_tabletools",init:function(e){e.on("contentDom",function(){var t,n=e.editable();n.attachListener(n.isInline()?n:e.document,"mousemove",function(n){n=n.data;var l=n.getTarget();if(l.type===CKEDITOR.NODE_ELEMENT){var d=n.getPageOffset().x;if(t&&t.move(d))return void r(n);var c,u;if((l.is("table")||l.getAscendant("tbody",1))&&(c=l.getAscendant("table",1),e.editable().contains(c))){(u=c.getCustomData("_cke_table_pillars"))||(c.setCustomData("_cke_table_pillars",u=i(c)),c.on("mouseout",s),c.on("mousedown",s));var p=o(u,d);p&&(!t&&(t=new a(e)),t.attachTo(p))}}})})}})}}(),function(){function e(e){function t(e){i.length>0||e.type==CKEDITOR.NODE_ELEMENT&&y.test(e.getName())&&!e.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(o,e,"selected_cell",!0),i.push(e))}for(var n=e.getRanges(),i=[],o={},r=0;r1&&f&&h[b]==f[b]?(v=h[b],v.rowSpan+=1):(v=new CKEDITOR.dom.element(h[b]).clone(),v.removeAttribute("rowSpan"),v.appendBogus(),E.append(v),v=v.$),b+=v.colSpan-1}n?E.insertBefore(m):E.insertAfter(m)}function i(t){if(t instanceof CKEDITOR.dom.selection){for(var n=e(t),o=n[0],r=o.getAscendant("table"),a=CKEDITOR.tools.buildTableMap(r),s=n[0].getParent(),l=s.$.rowIndex,d=n[n.length-1],c=d.getParent().$.rowIndex+d.$.rowSpan-1,u=[],p=l;p<=c;p++){for(var m=a[p],g=new CKEDITOR.dom.element(r.$.rows[p]),h=0;h0?b[l-1]:null)||r.$.parentNode);for(p=u.length;p>=0;p--)i(u[p]);return v}return t instanceof CKEDITOR.dom.element&&(r=t.getAscendant("table"),1==r.$.rows.length?r.remove():t.remove()),null}function o(e,t){for(var n=e.getParent(),i=n.$.cells,o=0,r=0;rn)&&(n=r)}return n}function a(t,n){for(var i=e(t),o=i[0],a=o.getAscendant("table"),s=r(i,1),l=r(i),d=n?s:l,c=CKEDITOR.tools.buildTableMap(a),u=[],p=[],m=c.length,g=0;g1&&p[g]==u[g]?(f=u[g],f.colSpan+=1):(f=new CKEDITOR.dom.element(u[g]).clone(),f.removeAttribute("colSpan"),f.appendBogus(),f[n?"insertBefore":"insertAfter"].call(f,new CKEDITOR.dom.element(u[g])),f=f.$),g+=f.rowSpan-1)}}function s(t){for(var n,i,o=e(t),r=o[0],a=o[o.length-1],s=r.getAscendant("table"),l=CKEDITOR.tools.buildTableMap(s),d=[],c=0,u=l.length;c=0;a--)d(i[a]);r?u(r,!0):o&&o.remove()}else if(n instanceof CKEDITOR.dom.element){var s=n.getParent();1==s.getChildCount()?s.remove():n.remove()}}function c(e){var t=e.getBogus();t&&t.remove(),e.trim()}function u(e,t){var n=e.getDocument(),i=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(i.focus(),n.focus());var o=new CKEDITOR.dom.range(n);o["moveToElementEdit"+(t?"End":"Start")](e)||(o.selectNodeContents(e),o.collapse(!t)),o.select(!0)}function p(e,t,n){var i=e[t];if("undefined"==typeof n)return i;for(var o=0;i&&o1&&(i+=o[t].rowSpan-1)}return n}function g(t,n,i){var o,r=e(t);if((n?1!=r.length:r.length<2)||(o=t.getCommonAncestor())&&o.type==CKEDITOR.NODE_ELEMENT&&o.is("table"))return!1;var a,s=r[0],l=s.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(l),u=d.length,m=d[0].length,g=s.getParent().$.rowIndex,h=p(d,g,s);if(n){var f;try{var y=parseInt(s.getAttribute("rowspan"),10)||1,E=parseInt(s.getAttribute("colspan"),10)||1;f=d["up"==n?g-y:"down"==n?g+y:g]["left"==n?h-E:"right"==n?h+E:h]}catch(b){return!1}if(!f||s.$==f)return!1;r["up"==n||"left"==n?"unshift":"push"](new CKEDITOR.dom.element(f))}for(var v=s.getDocument(),T=g,C=0,A=0,_=!i&&new CKEDITOR.dom.documentFragment(v),I=0,S=0;S=m?s.removeAttribute("rowSpan"):s.$.rowSpan=C,C>=u?s.removeAttribute("colSpan"):s.$.colSpan=A;var N=new CKEDITOR.dom.nodeList(l.$.rows),B=N.count();for(S=B-1;S>=0;S--){var K=N.getItem(S);K.$.cells.length||(K.remove(),B++)}return s}function h(t,n){var i=e(t);if(i.length>1)return!1;if(n)return!0;var o,r,a,s,l=i[0],d=l.getParent(),c=d.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(c),m=d.$.rowIndex,g=p(u,m,l),h=l.$.rowSpan;if(h>1){r=Math.ceil(h/2),a=Math.floor(h/2),s=m+r;var f,y=new CKEDITOR.dom.element(c.$.rows[s]),E=p(u,s);o=l.clone();for(var b=0;bg){o.insertBefore(new CKEDITOR.dom.element(f));break}f=null}f||y.append(o)}else{a=r=1,y=d.clone(),y.insertAfter(d),y.append(o=l.clone());for(var v=p(u,m),T=0;T1)return!1;if(n)return!0;var o,r,a,s=i[0],l=s.getParent(),d=l.getAscendant("table"),c=CKEDITOR.tools.buildTableMap(d),u=l.$.rowIndex,g=p(c,u,s),h=s.$.colSpan;if(h>1)r=Math.ceil(h/2),a=Math.floor(h/2);else{a=r=1;for(var f=m(c,g),y=0;y>>0),i=n(t,e);return new i}})}})}}(),function(){function e(){}function n(e,n,r){var a=AlloyEditor.Buttons[e];return o[r.name]=o[r.name]||{},o[r.name][e]=o[r.name][e]||n,a||(a=t.createClass(CKEDITOR.tools.merge(i,{displayName:e,propTypes:{editor:t.PropTypes.object.isRequired,tabIndex:t.PropTypes.number},statics:{key:e},render:function(){var n=this.props.editor.get("nativeEditor"),i=o[n.name][e].name||o[n.name][e].command||e,r="ae-button ae-button-bridge",a="ae-icon-"+i,s={},l=CKEDITOR.skin.getIconStyle(i);if(l){var d=l.split(";");s.backgroundImage=d[0].substring(d[0].indexOf(":")+1),s.backgroundPosition=d[1].substring(d[1].indexOf(":")+1),s.backgroundSize=d[2].substring(d[2].indexOf(":")+1)}var c;return this.props.expanded&&(c=this._getMenu()),t.createElement("div",{className:"ae-container ae-has-dropdown"},t.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":o[n.name][e].label,className:r,onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:o[n.name][e].label},t.createElement("span",{className:a,style:s})),c)},_getMenu:function(){return t.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getMenuItems())},_getMenuItems:function(){var e=this.props.editor.get("nativeEditor"),i=n.onMenu(),o=Object.keys(i).map(function(n){var o=e.getMenuItem(n);if(!o)return null;var r=o.definition||o,a=i[n],s="ae-toolbar-element "+(a===CKEDITOR.TRISTATE_ON?"active":""),l=a===CKEDITOR.TRISTATE_DISABLED,d=function(){r.command?e.execCommand(r.command):r.onClick&&r.onClick.apply(r)};return t.createElement("li",{key:o.name,role:"option"},t.createElement("button",{className:s,disabled:l,onClick:d},r.label))}.bind(this));return o}})),AlloyEditor.Buttons[e]=a),a}if(!CKEDITOR.plugins.get("ae_menubuttonbridge")){var i={toFeature:e},o={};CKEDITOR.plugins.get("menubutton")||(CKEDITOR.UI_MENU_BUTTON="menubutton",CKEDITOR.plugins.add("menubutton",{})),CKEDITOR.plugins.add("ae_menubuttonbridge",{requires:["ae_uibridge","ae_menubridge"],init:function(e){e.ui.addMenuButton=function(e,t){this.add(e,CKEDITOR.UI_MENUBUTTON,t)},e.ui.addHandler(CKEDITOR.UI_MENUBUTTON,{add:n,create:function(e){var t="buttonBridge"+(1e9*Math.random()>>>0),i=n(t,e);return new i}})}})}}(),function(){CKEDITOR.plugins.get("ae_menubridge")||CKEDITOR.plugins.add("ae_menubridge",{init:function(e){if(!CKEDITOR.plugins.get("menu")){for(var t=[],n=e._.menuGroups={},i=e._.menuItems={},o=0;o>>0),n=o(t,e);return new n}})}})}}(),function(){function e(){}if(!CKEDITOR.plugins.get("ae_richcombobridge")){var n={commit:e,createPanel:e,disable:e,enable:e,getState:e,hideGroup:e,hideItem:e,mark:e,showAll:e,startGroup:e,unmarkAll:e},i={},o=function(e,o,r){var a=AlloyEditor.Buttons[e];return i[r.name]=i[r.name]||{},i[r.name][e]=i[r.name][e]||o,i[r.name][e].currentValue=void 0,a||(a=t.createClass(CKEDITOR.tools.merge(n,{displayName:e,propTypes:{editor:t.PropTypes.object.isRequired},statics:{key:e},add:function(e,t,n){this._items.push({preview:t,title:n,value:e})},componentWillMount:function(){var t=this.props.editor.get("nativeEditor"),n=i[t.name][e];this._items=[],this.setValue=this._setValue,n.init&&n.init.call(this),n.onRender&&n.onRender.call(this)},componentWillUnmount:function(){this._cacheValue(this.state.value),this.setValue=this._cacheValue},getInitialState:function(){return{value:i[r.name][e].currentValue}},getValue:function(){return this.state.value},render:function(){var n,r=this.props.editor.get("nativeEditor"),a=i[r.name][e].currentValue||o.label;return this.props.expanded&&(n=this._getItemsList()),t.createElement("div",{className:"ae-container-dropdown ae-has-dropdown"},t.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":a,className:"ae-toolbar-element",onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:a},t.createElement("div",{className:"ae-container"},t.createElement("span",{className:"ae-container-dropdown-selected-item"},a),t.createElement("span",{className:"ae-icon-arrow"}))),n)},_cacheValue:function(t){var n=this.props.editor.get("nativeEditor");i[n.name][e].currentValue=t},_getItems:function(){var e=this,n=this._items.map(function(n){var i="ae-toolbar-element "+(n.value===this.state.value?"active":"");return t.createElement("li",{key:n.title,role:"option"},t.createElement("button",{className:i,dangerouslySetInnerHTML:{__html:n.preview},"data-value":n.value,onClick:e._onClick}))}.bind(this));return n},_getItemsList:function(){return t.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getItems())},_onClick:function(t){var n=this.props.editor.get("nativeEditor"),o=i[n.name][e];if(o.onClick){var r=t.currentTarget.getAttribute("data-value");o.onClick.call(this,r),i[n.name][e].currentValue=r,n.fire("actionPerformed",this); }},_setValue:function(e){this._cacheValue(e),this.setState({value:e})}})),AlloyEditor.Buttons[e]=a),a};CKEDITOR.plugins.get("richcombo")||(CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.plugins.add("richcombo",{})),CKEDITOR.plugins.add("ae_richcombobridge",{requires:["ae_uibridge"],init:function(e){e.ui.addRichCombo=function(e,t){this.add(e,CKEDITOR.UI_RICHCOMBO,t)},e.ui.addHandler(CKEDITOR.UI_RICHCOMBO,{add:o,create:function(e){var t="richComboBridge"+(1e9*Math.random()>>>0),n=o(t,e);return new n}})}})}}(),function(){CKEDITOR.plugins.get("ae_uibridge")||CKEDITOR.plugins.add("ae_uibridge",{beforeInit:function(e){var t=e.ui.add;e.ui.add=function(n,i,o){t.apply(this,arguments);var r=this._.handlers[i];r&&r.add&&r.add(n,o,e)}}})}();var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var t={isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isBoolean:function(e){return"boolean"==typeof e},isFunction:function(e){return"function"==typeof e},isNull:function(e){return null===e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isObject:function(n){var i="undefined"==typeof n?"undefined":e(n);return n&&("object"===i||t.isFunction(n))},isString:function(e){return"string"==typeof e},mix:function(e,t){var n=Object.prototype.hasOwnProperty;for(var i in t)n.call(t,i)&&(e[i]=t[i])},toInt:function(e){return parseInt(e,10)}};AlloyEditor.Lang=t}(),function(){var e={extend:function(e,t,n,i){if(!t||!e)throw"extend failed, verify dependencies";var o=t.prototype,r=Object.create(o);return e.prototype=r,r.constructor=e,e.superclass=o,t!==Object&&o.constructor===Object.prototype.constructor&&(o.constructor=t),n&&AlloyEditor.Lang.mix(r,n),i&&AlloyEditor.Lang.mix(e,i),e}};AlloyEditor.OOP=e}(),function(){function e(e){this.__config__=e||{},this.__ATTRS__={}}e.prototype={constructor:e,get:function(e){var t=this.constructor.ATTRS[e];if(t){this._isInitialized(e)||this._init(e);var n=this.__ATTRS__[e];return t.getter&&(n=this._callStringOrFunction(t.getter,n)),n}},set:function(e,t){var n=this.constructor.ATTRS[e];n&&(this._isInitialized(e)||this._init(e),n.readOnly||n.writeOnce&&this._isInitialized(e)||n.validator&&!this._callStringOrFunction(n.validator,t)||(n.setter&&(t=this._callStringOrFunction(n.setter,t)),this.__ATTRS__[e]=t))},_callStringOrFunction:function(e,t){var n=null;return AlloyEditor.Lang.isArray(t)||(t=[t]),AlloyEditor.Lang.isString(e)&&AlloyEditor.Lang.isFunction(this[e])?n=this[e].apply(this,t):AlloyEditor.Lang.isFunction(e)&&(n=e.apply(this,t)),n},_init:function(e){var t,n=this.constructor.ATTRS[e],i=Object.prototype.hasOwnProperty.call(n,"value"),o=Object.prototype.hasOwnProperty.call(this.__config__,e);if(n.valueFn)t=this._callStringOrFunction(n.valueFn,t),this.__ATTRS__[e]=t;else if(n.readOnly)t=n.value;else if(n.writeOnce)if(o)t=this.__config__[e];else{if(!i)return;t=n.value}else o?t=this.__config__[e]:i&&(t=n.value);if(n.validator&&o&&!this._callStringOrFunction(n.validator,t)){if(!i)return;t=n.value}n.setter&&o&&(t=this._callStringOrFunction(n.setter,t)),this.__ATTRS__[e]=t},_isInitialized:function(e){return Object.prototype.hasOwnProperty.call(this.__ATTRS__,e)}},AlloyEditor.Attribute=e}(),function(){function e(t){e.superclass.constructor.call(this,t),this.init(t)}AlloyEditor.OOP.extend(e,AlloyEditor.Attribute,{init:function(e){this._callChain("initializer",e)},destroy:function(){this._callChain("destructor")},_callChain:function(e,t){for(var n=[],i=this.constructor;i;)AlloyEditor.Lang.isFunction(i.prototype[e])&&n.push(i.prototype[e]),i=i.superclass?i.superclass.constructor:null;n=n.reverse(),t=AlloyEditor.Lang.isArray(t)?t:[t];for(var o=0;o>>0).toString(),i=e.getCommand(n);i||(i=new CKEDITOR.command(e,{exec:function(e){var n=t.fn;AlloyEditor.Lang.isString(n)?this[n].call(this,e):AlloyEditor.Lang.isFunction(n)&&n.call(this,e)}.bind(this)}),e.addCommand(n,i)),this._defaultKeystrokeCommand=e.keystrokeHandler.keystrokes[t.keys],e.setKeystroke(t.keys,n)},componentWillUnmount:function(){this.props.editor.get("nativeEditor").setKeystroke(this.props.keystroke.keys,this._defaultKeystrokeCommand)}};AlloyEditor.ButtonKeystroke=e}(),function(){var e={propTypes:{editor:t.PropTypes.object.isRequired},mergeButtonCfgProps:function(e){e=e||this.props;var t=this.props.editor.get("nativeEditor"),n=t.config.buttonCfg||{},i=CKEDITOR.tools.merge(e,n[AlloyEditor.ButtonLinkEdit.key]);return i}};AlloyEditor.ButtonCfgProps=e}(),function(){var e={getStateClasses:function(){var e="";return AlloyEditor.Lang.isFunction(this.isActive)&&this.isActive()&&(e+="ae-button-pressed"),AlloyEditor.Lang.isFunction(this.isDisabled)&&this.isDisabled()&&(e+=" ae-button-disabled"),e}};AlloyEditor.ButtonStateClasses=e}(),function(){var e={propTypes:{style:t.PropTypes.oneOfType([t.PropTypes.object,t.PropTypes.string])},componentWillMount:function(){var e=AlloyEditor.Lang,t=this.props.style;if(e.isString(t)){for(var n=t.split("."),i=this.props.editor.get("nativeEditor").config,o=n.shift();o&&e.isObject(i)&&e.isObject(i[o]);)i=i[o],o=n.shift();e.isObject(i)&&(t=i)}this._style=new CKEDITOR.style(t)},componentWillUnmount:function(){this._style=null},getStyle:function(){return this._style},isActive:function(){var e,t=this.props.editor.get("nativeEditor"),n=t.elementPath();return e=this.getStyle().checkActive(n,t)}};AlloyEditor.ButtonStyle=e}(),function(){var e={getToolbarButtons:function(e,n){var i={},o=this.props.editor.get("nativeEditor"),r=o.config.buttonCfg||{},a=this.filterExclusive(e.filter(function(e){return e&&(AlloyEditor.Buttons[e]||AlloyEditor.Buttons[e.name])}).map(function(e){return AlloyEditor.Lang.isString(e)?(i[e]=r[e],e=AlloyEditor.Buttons[e]):AlloyEditor.Lang.isString(e.name)&&(i[AlloyEditor.Buttons[e.name].key]=CKEDITOR.tools.merge(r[e],e.cfg),e=AlloyEditor.Buttons[e.name]),e})).map(function(e){var o=this.mergeExclusiveProps({editor:this.props.editor,key:e.key,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return o=this.mergeDropdownProps(o,e.key),n&&(o=CKEDITOR.tools.merge(o,n)),o=CKEDITOR.tools.merge(o,i[e.key]),t.createElement(e,o)},this);return a}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):n.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,i=1,o=-1,r=0,a=1,s=2,l={propTypes:{onDismiss:t.PropTypes.func,circular:t.PropTypes.bool.isRequired,focusFirstChild:t.PropTypes.bool,descendants:t.PropTypes.string.isRequired,keys:t.PropTypes.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===a&&this._moveFocus(t.direction),t.type===s&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:r};if(this.props.keys){var n=this._getFocusMoveDirection(e);n&&(t.direction=n,t.type=a);var i=this._getFocusDismissAction(e,n);i.dismiss&&(t.direction=i.direction,t.type=s)}return t},_getFocusDismissAction:function(e,t){var n={direction:t,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(n.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(n.dismiss=!0,n.direction=i),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(n.dismiss=!0,n.direction=o),n.dismiss||this.props.circular||!t||(n.dismiss=t===o&&0===this._activeDescendant||t===i&&this._activeDescendant===this._descendants.length-1)),n},_getFocusMoveDirection:function(t){var n=e;return this._isValidKey(t.keyCode,this.props.keys.next)&&(n=i),this._isValidKey(t.keyCode,this.props.keys.prev)&&(n=o),t.shifKey&&(n*=-1),n},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,n=this._descendants[this._activeDescendant];n.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),n=this._descendants[this._activeDescendant],n.setAttribute("tabIndex",0),n.focus()},_refresh:function(){var e=n.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),i=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?i.push(e):this._descendants.push(e)}.bind(this)),i=i.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=i.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=l}(),function(){var e={propTypes:{editorEvent:t.PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,n=e.nativeEvent,i={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,r=t.region.endRect,a=t.region.startRect;r&&a&&a.top===r.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return i.x&&i.y?(s=this._getXPoint(t,i.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(i.y,t.region.top):Math.max(i.y,this._getYPoint(t,n))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,n):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var n,i=e.region,o=i.startRect?i.startRect.left:i.left,r=i.endRect?i.endRect.right:i.right;if(ot)n=t;else{var a=Math.abs(o-t),s=Math.abs(r-t);n=at.width&&(n-=e.left+e.width-t.width),i<0&&(i=0),{x:n,y:i}},getWidgetXYPoint:function(e,t,i){var o=n.findDOMNode(this),r=this.props.gutter;return i===CKEDITOR.SELECTION_TOP_TO_BOTTOM||i===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-r.left-o.offsetWidth/2,t=i===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+r.top:t-o.offsetHeight-r.top):i!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&i!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=i===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+r.left+o.offsetHeight/2:e-3*o.offsetHeight/2-r.left,t=t-r.top-o.offsetHeight/2),e<0&&(e=0),t<0&&(t=0),[e,t]},isVisible:function(){var e=n.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var i=new CKEDITOR.dom.element(n.findDOMNode(this));i.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0}),i.removeClass("alloy-editor-invisible"),this._animate(function(){i.addClass("ae-toolbar-transition"),i.addClass("alloy-editor-visible"),i.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})})},show:function(){var e=n.findDOMNode(this);if(!this.isVisible()&&e){var t=this.getInteractionPoint();if(t){var i,o,r,a,s=new CKEDITOR.dom.element(e);if(i=r=parseFloat(s.getStyle("left")),o=a=parseFloat(s.getStyle("top")),this.props.constrainToViewport){var l=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:i,top:o,width:parseFloat(e.offsetWidth)});i=l.x,o=l.y}a=t.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom:this.props.selectionData.region.top,this.moveToPoint([r,a],[i,o])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=n.findDOMNode(this);if(e&&t){var i=this.getWidgetXYPoint(e.x,e.y,e.direction);new CKEDITOR.dom.element(t).setStyles({left:i[0]+"px",top:i[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=t.createClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},t.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=t.createClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){n.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),t.createElement("div",{className:"ae-camera"},t.createElement("video",{ref:"videoContainer"},"Video stream not available."),t.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),t.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=n.findDOMNode(this.refs.videoContainer),t=n.findDOMNode(this.refs.canvasContainer),i=t.getContext("2d"),o=this._videoHeight,r=this.props.videoWidth;if(r&&o){t.width=r,t.height=o,i.drawImage(e,0,0,r,o);var a=t.toDataURL("image/png"),s=CKEDITOR.dom.element.createFromHtml(''),l=this.props.editor.get("nativeEditor");l.insertElement(s),this.props.cancelExclusive(),l.fire("actionPerformed",this),l.fire("imageCameraAdd",s)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=n.findDOMNode(this.refs.videoContainer),i=n.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var n=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(n)&&(n=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",n),i.setAttribute("width",this.props.videoWidth),i.setAttribute("height",n),this._videoHeight=n}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),n.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=t.createClass({displayName:"ButtonCamera",propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return t.createElement(AlloyEditor.ButtonCameraImage,this.props);var n=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),i=n?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return t.createElement("button",{"aria-label":i,className:"ae-button","data-type":"button-image-camera",disabled:n,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:i},t.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=t.createClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},t.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=t.createClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:t.PropTypes.string.isRequired,icon:t.PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){return t.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.description)},_getClassName:function(){var e="ae-toolbar-element";return this.props.icon&&(e+=" ae-icon-"+this.props.icon),e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=t.createClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:t.PropTypes.arrayOf(t.PropTypes.object),editor:t.PropTypes.object.isRequired,listId:t.PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){n.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return t.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},t.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var n,i=this.props.editor;return e&&e.length&&(n=e.map(function(e){return t.createElement("li",{key:e.command,role:"option"},t.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),editor:i}))})),n}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=t.createClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return t.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},t.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,i=27,o=t.createClass({displayName:"ButtonEmbedEdit",propTypes:{editor:t.PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),n=t.getSelection();if(n){var i=n.getSelectedElement();i&&(e=i.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return t.createElement("div",{className:"ae-container-edit-link"},t.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},t.createElement("span",{className:"ae-icon-bin"})),t.createElement("div",{className:"ae-container-input xxl"},t.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),t.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),t.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},t.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){n.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(t){if(t.keyCode!==e&&t.keyCode!==i||t.preventDefault(),t.keyCode===e)this._embedLink();else if(t.keyCode===i){var n=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),n.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[o.key]=AlloyEditor.ButtonEmbedEdit=o}(),function(){var e=t.createClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number -},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?t.createElement(AlloyEditor.ButtonEmbedEdit,this.props):t.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},t.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=t.createClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},t.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=t.createClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2},t.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=t.createClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return t.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},t.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=t.createClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},t.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=t.createClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},t.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=t.createClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},t.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=t.createClass({displayName:"ButtonImage",propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return t.createElement("div",null,t.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},t.createElement("span",{className:"ae-icon-image"})),t.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){n.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=n.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,i=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),n=t.fire("beforeImageAdd",{imageFiles:i});if(n){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var r={el:o,file:i};t.fire("imageAdd",r)}}.bind(this),t.readAsDataURL(i),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=t.createClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},t.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=t.createClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},t.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=t.createClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:t.PropTypes.func,autocompleteSelected:t.PropTypes.bool,term:t.PropTypes.string,setAutocompleteState:t.PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?t.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var n=this.props.handleLinkAutocompleteClick;return e.map(function(e){var i=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return t.createElement("li",{key:e.url,role:"option"},t.createElement("button",{className:i,onClick:n,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var i=Object.assign||function(e){for(var t=1;t');t.insertElement(o),t.fire("actionPerformed",this);var r={el:o,file:i};t.fire("imageAdd",r)}}.bind(this),t.readAsDataURL(i),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=t.createClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},t.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=t.createClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:t.PropTypes.object.isRequired,label:t.PropTypes.string,tabIndex:t.PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return t.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},t.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=t.createClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:t.PropTypes.func,autocompleteSelected:t.PropTypes.bool,term:t.PropTypes.string,setAutocompleteState:t.PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?t.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var n=this.props.handleLinkAutocompleteClick;return e.map(function(e){var i=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return t.createElement("li",{key:e.url,role:"option"},t.createElement("button",{className:i,onClick:n,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var i=Object.assign||function(e){for(var t=1;t0?t.getRangeAt(0).getClientRects():[]),0===o.length)i=this.getCaretRegion();else{for(var d=0,u=o.length;dl&&(l=p.right),p.topr&&(r=p.bottom)}var m=new CKEDITOR.dom.window(window).getScrollPosition();if(i.bottom=m.y+r,i.left=m.x+s,i.right=m.x+l,i.top=m.y+c,o.length){var g=o[o.length-1],h=o[0];i.endRect={bottom:m.y+g.bottom,height:g.height,left:m.x+g.left,right:m.x+g.right,top:m.y+g.top,width:g.width},i.startRect={bottom:m.y+h.bottom,height:h.height,left:m.x+h.left,right:m.x+h.right,top:m.y+h.top,width:h.width}}}return i},getSelectionDirection:function(){var e=CKEDITOR.SELECTION_TOP_TO_BOTTOM,t=this.getSelection(),n=t.getNative();if(!n)return e;var i;if((i=n.anchorNode)&&i.compareDocumentPosition){var o=i.compareDocumentPosition(n.focusNode);(!o&&n.anchorOffset>n.focusOffset||o===Node.DOCUMENT_POSITION_PRECEDING)&&(e=CKEDITOR.SELECTION_BOTTOM_TO_TOP)}return e}},CKEDITOR.plugins.add("ae_selectionregion",{init:function(t){var n,i;i=Object.prototype.hasOwnProperty;for(n in e.prototype)i.call(e.prototype,n)&&"undefined"==typeof t[n]&&(t[n]=e.prototype[n])}}))}(),function(){function e(e){this._editor=e}var t={table:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1};e.HEADING_BOTH="Both",e.HEADING_COL="Column",e.HEADING_NONE="None",e.HEADING_ROW="Row",e.prototype={constructor:e,create:function(e){var t=this._editor,n=this._createElement("table");e=e||{};for(var i=n.append(this._createElement("tbody")),o=e.rows||1,a=e.cols||1,r=0;r0&&(CKEDITOR.env.webkit&&i[0].shrink(CKEDITOR.NODE_ELEMENT),e=this._editor.elementPath(i[0].getCommonAncestor(!0)).contains("table",1))}return e},isEditable:function(e){return CKEDITOR.env.ie&&e.is(t)?e.hasAttribute("contenteditable")?"false"!==e.getAttribute("contenteditable"):this.isEditable(e.getParent()):!e.isReadOnly()},getHeading:function(t){if(t=t||this.getFromSelection(),!t)return null;for(var n=null!==t.$.tHead,i=!0,o=0;o0;){var h=a.getFirst(),f=h.getChildCount();for(i=0;i0){var t=e.data.$.clipboardData.items[0];if(0===t.type.indexOf("image")){var n=t.getAsFile();this._processFile(n,e.listenerData.editor)}}},_preventEvent:function(e){e=new CKEDITOR.dom.event(e.data.$),e.preventDefault(),e.stopPropagation()},_processFile:function(e,t){var n=new FileReader;n.addEventListener("loadend",function(){var i=n.result,o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o);var a={el:o,file:e};t.fire("imageAdd",a)}),n.readAsDataURL(e)}})}(),function(){if(!CKEDITOR.plugins.get("ae_autolink")){/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/.test(navigator.userAgent)&&document.execCommand("AutoUrlDetect",!1,!1);var e=8,t=188,n=13,i=186,o=32,a=[t,n,i,o],r=/[^\s]+/gm,s=/(https?\:\/\/|www\.)(-\.)?([^(\s\/?\.#-)]+\.?)+(\b\/[^\s]*)?$/i;CKEDITOR.plugins.add("ae_autolink",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keyup",this._onKeyUp,this,{editor:e})}.bind(this))},_getLastWord:function(e){var t=e.getSelection().getRanges()[0],i=t.startOffset,o="";if(this._currentKeyCode===n){var a,s=t.startContainer.getPrevious();if(s){for(;!s.getLast;)s=s.getPrevious();for(a=s.getLast();a&&!a.getText();)a=a.getPrevious()}a&&a.$.href||(this._startContainer=a,o=a?a.getText():"",this._offset=o.length)}else this._startContainer=t.startContainer,o=this._startContainer.getText().substring(0,i-1),this._offset=i-1;var l="",c=o.match(r);return c&&(l=c.pop()),l},_isValidURL:function(e){return s.test(e)},_onKeyDown:function(t){var n=t.data.$,i=t.listenerData.editor,o=i.editable();o.removeListener("keydown",this._onKeyDown),n.keyCode===e&&(t.cancel(),t.data.preventDefault(),this._removeLink(i)),this._ckLink=null},_onKeyUp:function(e){var t=e.data.$;if(this._currentKeyCode=t.keyCode,a.indexOf(this._currentKeyCode)!==-1){var n=e.listenerData.editor,i=this._getLastWord(n);this._isValidURL(i)&&this._replaceContentByLink(n,i)}},_replaceContentByLink:function(e,t){var i=e.createRange(),o=CKEDITOR.dom.element.get(this._startContainer),a=this._offset;i.setStart(o,a-t.length),i.setEnd(o,a),i.select();var r=new CKEDITOR.Link(e);r.create(t),this._ckLink=r;var s=r.getFromSelection();if(e.fire("autolinkAdd",s),this._subscribeToKeyEvent(e),i=e.getSelection().getRanges()[0],this._currentKeyCode===n){var l=i.getNextEditableNode();i.setStart(l,0),i.setEnd(l,0)}else{var c=i.getNextNode();i.setStart(c,1),i.setEnd(c,1)}i.select()},_removeLink:function(e){var t=e.getSelection().getRanges()[0],n=t.startOffset,i=this._startContainer.getNext()||this._startContainer,o=e.createRange();o.setStart(i,0),o.setEndAfter(i),o.select(),this._ckLink.remove(),t.setEnd(t.startContainer,n),t.setStart(t.startContainer,n),t.select()},_subscribeToKeyEvent:function(e){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e},1)}})}}(),function(){if(!CKEDITOR.plugins.get("ae_autolist")){var e=8,t=32,n=[{regex:/^\*$/,type:"bulletedlist"},{regex:/^1\.$/,type:"numberedlist"}];CKEDITOR.plugins.add("ae_autolist",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e})}.bind(this))},_checkForBackspaceAndUndo:function(t){var n=t.listenerData.editor,i=t.data.$,o=n.editable();o.removeListener("keydown",this._checkForBackspaceAndUndo),i.keyCode===e&&(n.execCommand("undo"),n.insertHtml(t.listenerData.bullet+" "),t.data.preventDefault())},_getListConfig:function(e){for(var t=e.config.autolist||n,i=e.getSelection().getRanges()[0],o=i.endContainer.getText(),a=o.substring(0,i.startOffset),r=o.substring(i.startOffset,o.length),s=0,l=t.length,c=null;!c&&l>s;){var d=t[s];if(d.regex.test(a)){c={bullet:a,editor:e,text:r,type:d.type};break}s++}return c},_createList:function(e){var t=e.editor,n=t.getSelection().getRanges()[0];n.endContainer.setText(e.text),t.execCommand(e.type);var i=t.editable();i.attachListener(i,"keydown",this._checkForBackspaceAndUndo,this,{editor:t,bullet:e.bullet},1)},_onKeyDown:function(e){var n=e.data.$;if(n.keyCode===t){var i=this._getListConfig(e.listenerData.editor);i&&(e.data.preventDefault(),this._createList(i))}}})}}(),function(){function e(e){function n(){var t=e.getSelection();t&&(t.getType()!==CKEDITOR.SELECTION_NONE&&t.getStartElement().is("img")?i.event&&i.event.button&&0!==i.event.button||r.show(t.getStartElement().$):r.hide())}var i=e.window.$,o=e.document.$,a="undefined"==typeof d?null:d;e.config.imageScaleResize=e.config.imageScaleResize||"both";var r=new t(e,{imageScaleResize:e.config.imageScaleResize,snapToSize:a});o.addEventListener("mousedown",function(e){r.isHandle(e.target)&&r.initDrag(e)},!1),e.on("selectionChange",n),e.on("getData",function(e){var t=e.data.dataValue||"";t=t.replace(/
/i,""),t=t.replace(/\b(ckimgrsz)\b/g,""),e.data.dataValue=t}),e.on("beforeUndoImage",function(){r.hide()}),e.on("afterUndoImage",function(){n()}),e.on("blur",function(){r.hide()}),e.on("beforeModeUnload",function l(){e.removeListener("beforeModeUnload",l),r.hide()}),e.on("destroy",function(){var e=o.getElementById("ckimgrsz");e&&e.remove(),u&&o.execCommand("enableObjectResizing",!1,!0)});var s;e.window.on("resize",function(){clearTimeout(s),s=setTimeout(n,50)})}function t(e,t){this.editor=e,this.window=e.window.$,this.document=e.document.$,this.cfg=t||{},this.init()}function n(e,t){this.window=e,this.document=t,this.events={mousemove:o(this.mousemove,this),keydown:o(this.keydown,this),mouseup:o(this.mouseup,this)}}function i(e){for(var t=e.length,n=new Array(t),i=0;ii?t.height=Math.round(t.width/i):t.width=Math.round(t.height*i)}var o=this.cfg.snapToSize;if(o)for(var a=this.otherImages,r=0;r=15&&(u>=15||"auto"===u)?(f.setAttributes({width:d,height:u}),p=!0):p=!1}function l(){for(var i;i=T.pop();)i.removeListener();n.removeClass(C),o.removeClass("cke_image_resizing"),p&&(e.setData({height:u,width:d}),t.fire("saveSnapshot")),p=!1}var c,d,u,p,m,g,h,f=e.parts.image,y="right"==e.data.align?-1:1,E=a.data.$.screenX,b=a.data.$.screenY,v=f.$.clientWidth,R=f.$.clientHeight,T=[],C="cke_image_s"+(~y?"e":"w");t.fire("saveSnapshot"),r("mousemove",s,T),r("mouseup",l,T),n.addClass(C),o.addClass("cke_image_resizing")}),e.on("data",function(){o["right"==e.data.align?"addClass":"removeClass"]("cke_image_resizer_left")}),e.parts.image.on("click",function(){t._.editable.editor.getSelection().selectElement(this);var e=t._.editable.editor.getSelectionData();e&&t.fire("editorInteraction",{nativeEvent:event,selectionData:e})})}function s(e){var t={figcaption:!0,figure:{classes:"!"+e.config.image2_captionedClass},img:{attributes:"!src,alt,width,height"}};return t}function l(e){var t=e.config.image2_alignClasses,n={align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"},dimension:{requiredContent:"img[width,height]"}};return n}function c(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie")){var d={center:1,left:0,right:2},u={ both:"nwse-resize",height:"ns-resize",scale:"nwse-resize",width:"ew-resize"},p=/^\s*(\d+\%)\s*$/i,m='';CKEDITOR.plugins.add("ae_dragresize_ie",{hidpi:!0,icons:"image",init:function(t){var n=e(t);t.widgets.add("image",n)},onLoad:function(){CKEDITOR.addCss(".cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ns-resize{cursor: ns-resize;}.cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ew-resize{cursor: ew-resize;}.cke_image_nocaption{line-height:0}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:nwse-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}")},requires:"widget"}),CKEDITOR.plugins.image2={checkHasNaturalRatio:function(e){var t=e.$,n=this.getNatural(e);return Math.round(t.clientWidth/n.width*n.height)==t.clientHeight||Math.round(t.clientHeight/n.height*n.width)==t.clientWidth},getNatural:function(e){var t;if(e.$.naturalWidth)t={height:e.$.naturalHeigh,width:e.$.naturalWidth};else{var n=new Image;n.src=e.getAttribute("src"),t={height:n.heigh,width:n.width}}return t}}}}(),CKEDITOR.config.image2_captionedClass="image",function(){if(!CKEDITOR.plugins.get("ae_embed")){var e=/^https?/,t=/
',CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL='{url}',CKEDITOR.plugins.add("ae_embed",{requires:"widget",init:function(n){var i=new CKEDITOR.template(n.config.embedUrlTemplate||CKEDITOR.DEFAULT_AE_EMBED_URL_TPL),o=new CKEDITOR.template(n.config.embedWidgetTpl||CKEDITOR.DEFAULT_AE_EMBED_WIDGET_TPL),a=new CKEDITOR.template(n.config.embedLinkDefaultTpl||CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL),r=function(e,t){if("div"===e.name&&e.attributes["data-ae-embed-url"])return t.url=e.attributes["data-ae-embed-url"],!0};n.addCommand("embedUrl",{exec:function(e,t){e.insertHtml(o.output({url:t.url}))}}),n.widgets.add("ae_embed",{mask:!0,requiredContent:"div[data-ae-embed-url]",data:function(e){var n=this,o=e.data.url;o&&CKEDITOR.tools.jsonp(i,{url:encodeURIComponent(o)},function(e){e.html?t.test(e.html)?n.createATag(o):n.element.setHtml(e.html):n.createATag(o,currentSelection)},function(e){n.createATag(o,currentSelection)})},createATag:function(e){this.editor.execCommand("undo");var t=(this.editor.getSelection().getSelectedElement(),a.output({url:e}));this.editor.insertHtml(t),this.editor.fire("actionPerformed",this)},upcast:function(e,t){var i=n.config.embedWidgetUpcastFn||r;return i(e,t)}}),n.once("contentDom",function(){n.on("paste",function(t){var i=t.data.dataValue;e.test(i)&&(t.stop(),n.execCommand("embedUrl",{url:t.data.dataValue}))})}),n.on("selectionChange",function(e){var t=n.getSelection();if(t){var i=t.getSelectedElement();if(i){var o=i.findOne('[data-widget="ae_embed"]');if(o){var a=i.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,n.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}}),n.filter.addElementCallback(function(e){if("data-ae-embed-url"in e.attributes)return CKEDITOR.FILTER_SKIP_TREE})}})}}(),function(){if(!CKEDITOR.plugins.get("ae_imagealignment")){var e={CENTER:"center",LEFT:"left",RIGHT:"right"},t=[e.LEFT,e.RIGHT,e.CENTER],n=[{name:"display",value:"block"},{name:"margin-left",value:"50%"},{name:"transform",value:"translateX(-50%)",vendorPrefixes:["-ms-"]}],i=function(t){var i=t.getStyle("float");if(i&&"inherit"!==i&&"none"!==i||(i=t.getAttribute("align")),!i){var o=n.every(function(e){var n=t.getStyle(e.name)===e.value;return!n&&e.vendorPrefixes&&(n=e.vendorPrefixes.some(function(n){return t.getStyle(n+e.name)===e.value})),n});i=o?e.CENTER:null}return i},o=function(t,o){o===e.LEFT||o===e.RIGHT?(t.removeStyle("float"),o===i(t)&&t.removeAttribute("align")):o===e.CENTER&&n.forEach(function(e){t.removeStyle(e.name),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(n){t.removeStyle(n+e.name)})})},a=function(t,a){o(t,i(t)),a===e.LEFT||a===e.RIGHT?t.setStyle("float",a):a===e.CENTER&&n.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(n){t.setStyle(n+e.name,e.value)})})};CKEDITOR.plugins.add("ae_imagealignment",{afterInit:function(e){var n=this;t.forEach(function(t){var r=e.getCommand("justify"+t);r&&(r.on("exec",function(r){var s=e.getSelectionData();if(s&&AlloyEditor.SelectionTest.image({data:{selectionData:s}})){var l=s.element,c=i(l);c===t?o(l,t):a(l,t),r.cancel(),n.refreshCommands(e,new CKEDITOR.dom.elementPath(l))}}),r.on("refresh",function(e){var n={element:e.data.path.lastElement};if(AlloyEditor.SelectionTest.image({data:{selectionData:n}})){var o=i(n.element);this.setState(o===t?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.cancel()}}))})},refreshCommands:function(e,n){t.forEach(function(t){var i=e.getCommand("justify"+t);i&&i.refresh(e,n)})}})}}(),function(){CKEDITOR.plugins.get("ae_pasteimages")||CKEDITOR.plugins.add("ae_pasteimages",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"paste",this._onPaste,this,{editor:e})}.bind(this))},_onPaste:function(e){if(e.data.$.clipboardData){var t=e.data.$.clipboardData.items[0],n=e.listenerData.editor;if(0===t.type.indexOf("image")){var i=new FileReader,o=t.getAsFile();i.onload=function(e){var t=n.fire("beforeImageAdd",{imageFiles:o});if(t){var i=CKEDITOR.dom.element.createFromHtml('');n.insertElement(i);var a={el:i,file:o};n.fire("imageAdd",a)}}.bind(this),i.readAsDataURL(o)}}}})}(),function(){CKEDITOR.plugins.get("ae_placeholder")||CKEDITOR.plugins.add("ae_placeholder",{init:function(e){e.on("blur",this._checkEmptyData,this),e.on("change",this._checkEmptyData,this),e.on("focus",this._removePlaceholderClass,this),e.once("contentDom",this._checkEmptyData,this)},_checkEmptyData:function(e){var t=e.editor,n=t.editable();""===n.$.innerText.trim()?n.addClass(t.config.placeholderClass):n.removeClass(t.config.placeholderClass)},_removePlaceholderClass:function(e){var t=e.editor,n=new CKEDITOR.dom.element(t.element.$);n.removeClass(t.config.placeholderClass)}})}(),function(){CKEDITOR.plugins.get("ae_selectionkeystrokes")||CKEDITOR.plugins.add("ae_selectionkeystrokes",{requires:"ae_selectionregion",init:function(e){e.config.selectionKeystrokes&&e.config.selectionKeystrokes.forEach(function(t){var n=new CKEDITOR.command(e,{exec:function(e){e.fire("editorInteraction",{manualSelection:t.selection,nativeEvent:{},selectionData:e.getSelectionData()})}}),i="selectionKeystroke"+t.selection;e.addCommand(i,n),e.setKeystroke(t.keys,i)})}})}(),function(){function e(e){return CKEDITOR.env.ie?e.$.clientWidth:parseInt(e.getComputedStyle("width"),10)}function t(e,t){var n=e.getComputedStyle("border-"+t+"-width"),i={thin:"0px",medium:"1px",thick:"2px"};return n.indexOf("px")<0&&(n=n in i&&"none"!=e.getComputedStyle("border-style")?i[n]:0),parseInt(n,10)}function n(e){for(var t,n,i,o=e.$.rows,a=0,r=0,s=o.length;ra&&(a=t,n=i);return n}function i(e){for(var i=[],o=-1,a="rtl"===e.getComputedStyle("direction"),r=n(e),s=new CKEDITOR.dom.element(e.$.tBodies[0]),l=s.getDocumentPosition(),c=0,d=r.cells.length;c=o.x&&t<=o.x+o.width)return o}return null}function a(e){(e.data||e).preventDefault()}function r(n){function i(){p=null,y=0,h=0,m.removeListener("mouseup",d),g.removeListener("mousedown",c),g.removeListener("mousemove",u),m.getBody().setStyle("cursor","auto")}function o(){for(var t=p.index,n=CKEDITOR.tools.buildTableMap(p.table),i=[],o=[],r=Number.MAX_VALUE,s=r,l=p.rtl,c=0,d=n.length;c
',m),n.on("destroy",function(){g.remove()}),m.getDocumentElement().append(g),this.attachTo=function(e){h||(p=e,g.setStyles({width:l(e.width),height:l(e.height),left:l(e.x),top:l(e.y)}),g.on("mousedown",c,this),m.getBody().setStyle("cursor","col-resize"),g.show())};var T=this.move=function(e){if(!p)return 0;if(!h&&(ep.x+p.width))return i(),0;var t=e-Math.round(g.$.offsetWidth/2);if(h){if(t===v||t===R)return 1;t=Math.max(t,v),t=Math.min(t,R),y=t-f}return g.setStyle("left",l(t)),1}}function s(e){var t=e.data.getTarget();if("mouseout"===e.name){if(!t.is("table"))return;for(var n=new CKEDITOR.dom.element(e.data.$.relatedTarget||e.data.$.toElement);n&&n.$&&!n.equals(t)&&!n.is("body");)n=n.getParent();if(!n||n.equals(t))return}t.getAscendant("table",1).removeCustomData("_cke_table_pillars"),e.removeListener()}if(!CKEDITOR.plugins.get("ae_tableresize")){var l=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("ae_tableresize",{requires:"ae_tabletools",init:function(e){e.on("contentDom",function(){var t,n=e.editable();n.attachListener(n.isInline()?n:e.document,"mousemove",function(n){n=n.data;var l=n.getTarget();if(l.type===CKEDITOR.NODE_ELEMENT){var c=n.getPageOffset().x;if(t&&t.move(c))return void a(n);var d,u;if((l.is("table")||l.getAscendant("tbody",1))&&(d=l.getAscendant("table",1),e.editable().contains(d))){(u=d.getCustomData("_cke_table_pillars"))||(d.setCustomData("_cke_table_pillars",u=i(d)),d.on("mouseout",s),d.on("mousedown",s));var p=o(u,c);p&&(!t&&(t=new r(e)),t.attachTo(p))}}})})}})}}(),function(){function e(e){function t(e){i.length>0||e.type==CKEDITOR.NODE_ELEMENT&&y.test(e.getName())&&!e.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(o,e,"selected_cell",!0),i.push(e))}for(var n=e.getRanges(),i=[],o={},a=0;a1&&f&&h[b]==f[b]?(v=h[b],v.rowSpan+=1):(v=new CKEDITOR.dom.element(h[b]).clone(),v.removeAttribute("rowSpan"),v.appendBogus(),E.append(v),v=v.$),b+=v.colSpan-1}n?E.insertBefore(m):E.insertAfter(m)}function i(t){if(t instanceof CKEDITOR.dom.selection){for(var n=e(t),o=n[0],a=o.getAscendant("table"),r=CKEDITOR.tools.buildTableMap(a),s=n[0].getParent(),l=s.$.rowIndex,c=n[n.length-1],d=c.getParent().$.rowIndex+c.$.rowSpan-1,u=[],p=l;p<=d;p++){for(var m=r[p],g=new CKEDITOR.dom.element(a.$.rows[p]),h=0;h0?b[l-1]:null)||a.$.parentNode);for(p=u.length;p>=0;p--)i(u[p]);return v}return t instanceof CKEDITOR.dom.element&&(a=t.getAscendant("table"),1==a.$.rows.length?a.remove():t.remove()),null}function o(e,t){for(var n=e.getParent(),i=n.$.cells,o=0,a=0;an)&&(n=a)}return n}function r(t,n){for(var i=e(t),o=i[0],r=o.getAscendant("table"),s=a(i,1),l=a(i),c=n?s:l,d=CKEDITOR.tools.buildTableMap(r),u=[],p=[],m=d.length,g=0;g1&&p[g]==u[g]?(f=u[g],f.colSpan+=1):(f=new CKEDITOR.dom.element(u[g]).clone(),f.removeAttribute("colSpan"),f.appendBogus(),f[n?"insertBefore":"insertAfter"].call(f,new CKEDITOR.dom.element(u[g])),f=f.$),g+=f.rowSpan-1)}}function s(t){for(var n,i,o=e(t),a=o[0],r=o[o.length-1],s=a.getAscendant("table"),l=CKEDITOR.tools.buildTableMap(s),c=[],d=0,u=l.length;d=0;r--)c(i[r]);a?u(a,!0):o&&o.remove()}else if(n instanceof CKEDITOR.dom.element){var s=n.getParent();1==s.getChildCount()?s.remove():n.remove()}}function d(e){var t=e.getBogus();t&&t.remove(),e.trim()}function u(e,t){var n=e.getDocument(),i=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(i.focus(),n.focus());var o=new CKEDITOR.dom.range(n);o["moveToElementEdit"+(t?"End":"Start")](e)||(o.selectNodeContents(e),o.collapse(!t)),o.select(!0)}function p(e,t,n){var i=e[t];if("undefined"==typeof n)return i;for(var o=0;i&&o1&&(i+=o[t].rowSpan-1)}return n}function g(t,n,i){var o,a=e(t);if((n?1!=a.length:a.length<2)||(o=t.getCommonAncestor())&&o.type==CKEDITOR.NODE_ELEMENT&&o.is("table"))return!1;var r,s=a[0],l=s.getAscendant("table"),c=CKEDITOR.tools.buildTableMap(l),u=c.length,m=c[0].length,g=s.getParent().$.rowIndex,h=p(c,g,s);if(n){var f;try{var y=parseInt(s.getAttribute("rowspan"),10)||1,E=parseInt(s.getAttribute("colspan"),10)||1;f=c["up"==n?g-y:"down"==n?g+y:g]["left"==n?h-E:"right"==n?h+E:h]}catch(b){return!1}if(!f||s.$==f)return!1;a["up"==n||"left"==n?"unshift":"push"](new CKEDITOR.dom.element(f))}for(var v=s.getDocument(),R=g,T=0,C=0,_=!i&&new CKEDITOR.dom.documentFragment(v),A=0,I=0;I=m?s.removeAttribute("rowSpan"):s.$.rowSpan=T,T>=u?s.removeAttribute("colSpan"):s.$.colSpan=C;var N=new CKEDITOR.dom.nodeList(l.$.rows),B=N.count();for(I=B-1;I>=0;I--){var K=N.getItem(I);K.$.cells.length||(K.remove(),B++)}return s}function h(t,n){var i=e(t);if(i.length>1)return!1;if(n)return!0;var o,a,r,s,l=i[0],c=l.getParent(),d=c.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(d),m=c.$.rowIndex,g=p(u,m,l),h=l.$.rowSpan;if(h>1){a=Math.ceil(h/2),r=Math.floor(h/2),s=m+a;var f,y=new CKEDITOR.dom.element(d.$.rows[s]),E=p(u,s);o=l.clone();for(var b=0;bg){o.insertBefore(new CKEDITOR.dom.element(f));break}f=null}f||y.append(o)}else{r=a=1,y=c.clone(),y.insertAfter(c),y.append(o=l.clone());for(var v=p(u,m),R=0;R1)return!1;if(n)return!0;var o,a,r,s=i[0],l=s.getParent(),c=l.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(c),u=l.$.rowIndex,g=p(d,u,s),h=s.$.colSpan;if(h>1)a=Math.ceil(h/2),r=Math.floor(h/2);else{r=a=1;for(var f=m(d,g),y=0;y>>0),i=t(n,e);return new i}})}})}}(),function(){function e(){}function t(e,t,o){var a=AlloyEditor.Buttons[e];return i[o.name]=i[o.name]||{},i[o.name][e]=i[o.name][e]||t,a||(a=React.createClass(CKEDITOR.tools.merge(n,{displayName:e,propTypes:{editor:React.PropTypes.object.isRequired,tabIndex:React.PropTypes.number},statics:{key:e},render:function(){var t=this.props.editor.get("nativeEditor"),n=i[t.name][e].name||i[t.name][e].command||e,o="ae-button ae-button-bridge",a="ae-icon-"+n,r={},s=CKEDITOR.skin.getIconStyle(n);if(s){var l=s.split(";");r.backgroundImage=l[0].substring(l[0].indexOf(":")+1),r.backgroundPosition=l[1].substring(l[1].indexOf(":")+1),r.backgroundSize=l[2].substring(l[2].indexOf(":")+1)}var c;return this.props.expanded&&(c=this._getMenu()),React.createElement("div",{className:"ae-container ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":i[t.name][e].label,className:o,onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:i[t.name][e].label},React.createElement("span",{className:a,style:r})),c)},_getMenu:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getMenuItems())},_getMenuItems:function(){var e=this.props.editor.get("nativeEditor"),n=t.onMenu(),i=Object.keys(n).map(function(t){var i=e.getMenuItem(t);if(!i)return null;var o=i.definition||i,a=n[t],r="ae-toolbar-element "+(a===CKEDITOR.TRISTATE_ON?"active":""),s=a===CKEDITOR.TRISTATE_DISABLED,l=function(){o.command?e.execCommand(o.command):o.onClick&&o.onClick.apply(o)};return React.createElement("li",{key:i.name,role:"option"},React.createElement("button",{className:r,disabled:s,onClick:l},o.label))}.bind(this));return i}})),AlloyEditor.Buttons[e]=a),a}if(!CKEDITOR.plugins.get("ae_menubuttonbridge")){var n={toFeature:e},i={};CKEDITOR.plugins.get("menubutton")||(CKEDITOR.UI_MENU_BUTTON="menubutton",CKEDITOR.plugins.add("menubutton",{})),CKEDITOR.plugins.add("ae_menubuttonbridge",{requires:["ae_uibridge","ae_menubridge"],init:function(e){e.ui.addMenuButton=function(e,t){this.add(e,CKEDITOR.UI_MENUBUTTON,t)},e.ui.addHandler(CKEDITOR.UI_MENUBUTTON,{add:t,create:function(e){var n="buttonBridge"+(1e9*Math.random()>>>0),i=t(n,e);return new i}})}})}}(),function(){CKEDITOR.plugins.get("ae_menubridge")||CKEDITOR.plugins.add("ae_menubridge",{init:function(e){if(!CKEDITOR.plugins.get("menu")){for(var t=[],n=e._.menuGroups={},i=e._.menuItems={},o=0;o>>0),n=i(t,e);return new n}})}})}}(),function(){function e(){}if(!CKEDITOR.plugins.get("ae_richcombobridge")){var t={commit:e,createPanel:e,disable:e,enable:e,getState:e,hideGroup:e,hideItem:e,mark:e,showAll:e,startGroup:e,unmarkAll:e},n={},i=function(e,i,o){var a=AlloyEditor.Buttons[e];return n[o.name]=n[o.name]||{},n[o.name][e]=n[o.name][e]||i,n[o.name][e].currentValue=void 0,a||(a=React.createClass(CKEDITOR.tools.merge(t,{displayName:e,propTypes:{editor:React.PropTypes.object.isRequired},statics:{key:e},add:function(e,t,n){this._items.push({preview:t,title:n,value:e})},componentWillMount:function(){var t=this.props.editor.get("nativeEditor"),i=n[t.name][e];this._items=[],this.setValue=this._setValue,i.init&&i.init.call(this),i.onRender&&i.onRender.call(this)},componentWillUnmount:function(){this._cacheValue(this.state.value),this.setValue=this._cacheValue},getInitialState:function(){return{value:n[o.name][e].currentValue}},getValue:function(){return this.state.value},render:function(){var t,o=this.props.editor.get("nativeEditor"),a=n[o.name][e].currentValue||i.label;return this.props.expanded&&(t=this._getItemsList()),React.createElement("div",{className:"ae-container-dropdown ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":a,className:"ae-toolbar-element",onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:a},React.createElement("div",{className:"ae-container"},React.createElement("span",{className:"ae-container-dropdown-selected-item"},a),React.createElement("span",{className:"ae-icon-arrow"}))),t)},_cacheValue:function(t){var i=this.props.editor.get("nativeEditor");n[i.name][e].currentValue=t},_getItems:function(){var e=this,t=this._items.map(function(t){var n="ae-toolbar-element "+(t.value===this.state.value?"active":"");return React.createElement("li",{key:t.title,role:"option"},React.createElement("button",{className:n,dangerouslySetInnerHTML:{__html:t.preview},"data-value":t.value,onClick:e._onClick}))}.bind(this));return t},_getItemsList:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getItems())},_onClick:function(t){var i=this.props.editor.get("nativeEditor"),o=n[i.name][e];if(o.onClick){var a=t.currentTarget.getAttribute("data-value");o.onClick.call(this,a),n[i.name][e].currentValue=a,i.fire("actionPerformed",this)}},_setValue:function(e){this._cacheValue(e),this.setState({value:e})}})),AlloyEditor.Buttons[e]=a),a};CKEDITOR.plugins.get("richcombo")||(CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.plugins.add("richcombo",{})),CKEDITOR.plugins.add("ae_richcombobridge",{requires:["ae_uibridge"],init:function(e){e.ui.addRichCombo=function(e,t){this.add(e,CKEDITOR.UI_RICHCOMBO,t)},e.ui.addHandler(CKEDITOR.UI_RICHCOMBO,{add:i,create:function(e){var t="richComboBridge"+(1e9*Math.random()>>>0),n=i(t,e);return new n}})}})}}(),function(){CKEDITOR.plugins.get("ae_uibridge")||CKEDITOR.plugins.add("ae_uibridge",{beforeInit:function(e){var t=e.ui.add;e.ui.add=function(n,i,o){t.apply(this,arguments);var a=this._.handlers[i];a&&a.add&&a.add(n,o,e)}}})}();var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var e={isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isBoolean:function(e){return"boolean"==typeof e},isFunction:function(e){return"function"==typeof e},isNull:function(e){return null===e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isObject:function(t){var n="undefined"==typeof t?"undefined":_typeof(t);return t&&("object"===n||e.isFunction(t))},isString:function(e){return"string"==typeof e},mix:function(e,t){var n=Object.prototype.hasOwnProperty;for(var i in t)n.call(t,i)&&(e[i]=t[i])},toInt:function(e){return parseInt(e,10)}};AlloyEditor.Lang=e}(),function(){var e={extend:function(e,t,n,i){if(!t||!e)throw"extend failed, verify dependencies";var o=t.prototype,a=Object.create(o);return e.prototype=a,a.constructor=e,e.superclass=o,t!==Object&&o.constructor===Object.prototype.constructor&&(o.constructor=t),n&&AlloyEditor.Lang.mix(a,n),i&&AlloyEditor.Lang.mix(e,i),e}};AlloyEditor.OOP=e}(),function(){function e(e){this.__config__=e||{},this.__ATTRS__={}}e.prototype={constructor:e,get:function(e){var t=this.constructor.ATTRS[e];if(t){this._isInitialized(e)||this._init(e);var n=this.__ATTRS__[e];return t.getter&&(n=this._callStringOrFunction(t.getter,n)),n}},set:function(e,t){var n=this.constructor.ATTRS[e];n&&(this._isInitialized(e)||this._init(e),n.readOnly||n.writeOnce&&this._isInitialized(e)||n.validator&&!this._callStringOrFunction(n.validator,t)||(n.setter&&(t=this._callStringOrFunction(n.setter,t)), this.__ATTRS__[e]=t))},_callStringOrFunction:function(e,t){var n=null;return AlloyEditor.Lang.isArray(t)||(t=[t]),AlloyEditor.Lang.isString(e)&&AlloyEditor.Lang.isFunction(this[e])?n=this[e].apply(this,t):AlloyEditor.Lang.isFunction(e)&&(n=e.apply(this,t)),n},_init:function(e){var t,n=this.constructor.ATTRS[e],i=Object.prototype.hasOwnProperty.call(n,"value"),o=Object.prototype.hasOwnProperty.call(this.__config__,e);if(n.valueFn)t=this._callStringOrFunction(n.valueFn,t),this.__ATTRS__[e]=t;else if(n.readOnly)t=n.value;else if(n.writeOnce)if(o)t=this.__config__[e];else{if(!i)return;t=n.value}else o?t=this.__config__[e]:i&&(t=n.value);if(n.validator&&o&&!this._callStringOrFunction(n.validator,t)){if(!i)return;t=n.value}n.setter&&o&&(t=this._callStringOrFunction(n.setter,t)),this.__ATTRS__[e]=t},_isInitialized:function(e){return Object.prototype.hasOwnProperty.call(this.__ATTRS__,e)}},AlloyEditor.Attribute=e}(),function(){function e(t){e.superclass.constructor.call(this,t),this.init(t)}AlloyEditor.OOP.extend(e,AlloyEditor.Attribute,{init:function(e){this._callChain("initializer",e)},destroy:function(){this._callChain("destructor")},_callChain:function(e,t){for(var n=[],i=this.constructor;i;)AlloyEditor.Lang.isFunction(i.prototype[e])&&n.push(i.prototype[e]),i=i.superclass?i.superclass.constructor:null;n=n.reverse(),t=AlloyEditor.Lang.isArray(t)?t:[t];for(var o=0;o>>0).toString(),i=e.getCommand(n);i||(i=new CKEDITOR.command(e,{exec:function(e){var n=t.fn;AlloyEditor.Lang.isString(n)?this[n].call(this,e):AlloyEditor.Lang.isFunction(n)&&n.call(this,e)}.bind(this)}),e.addCommand(n,i)),this._defaultKeystrokeCommand=e.keystrokeHandler.keystrokes[t.keys],e.setKeystroke(t.keys,n)},componentWillUnmount:function(){this.props.editor.get("nativeEditor").setKeystroke(this.props.keystroke.keys,this._defaultKeystrokeCommand)}};AlloyEditor.ButtonKeystroke=e}(),function(){var e={propTypes:{editor:React.PropTypes.object.isRequired},mergeButtonCfgProps:function(e){e=e||this.props;var t=this.props.editor.get("nativeEditor"),n=t.config.buttonCfg||{},i=CKEDITOR.tools.merge(e,n[AlloyEditor.ButtonLinkEdit.key]);return i}};AlloyEditor.ButtonCfgProps=e}(),function(){var e={getStateClasses:function(){var e="";return AlloyEditor.Lang.isFunction(this.isActive)&&this.isActive()&&(e+="ae-button-pressed"),AlloyEditor.Lang.isFunction(this.isDisabled)&&this.isDisabled()&&(e+=" ae-button-disabled"),e}};AlloyEditor.ButtonStateClasses=e}(),function(){var e={propTypes:{style:React.PropTypes.oneOfType([React.PropTypes.object,React.PropTypes.string])},componentWillMount:function(){var e=AlloyEditor.Lang,t=this.props.style;if(e.isString(t)){for(var n=t.split("."),i=this.props.editor.get("nativeEditor").config,o=n.shift();o&&e.isObject(i)&&e.isObject(i[o]);)i=i[o],o=n.shift();e.isObject(i)&&(t=i)}this._style=new CKEDITOR.style(t)},componentWillUnmount:function(){this._style=null},getStyle:function(){return this._style},isActive:function(){var e,t=this.props.editor.get("nativeEditor"),n=t.elementPath();return e=this.getStyle().checkActive(n,t)}};AlloyEditor.ButtonStyle=e}(),function(){var e={getToolbarButtons:function(e,t){var n={},i=this.props.editor.get("nativeEditor"),o=i.config.buttonCfg||{},a=this.filterExclusive(e.filter(function(e){return e&&(AlloyEditor.Buttons[e]||AlloyEditor.Buttons[e.name])}).map(function(e){return AlloyEditor.Lang.isString(e)?(n[e]=o[e],e=AlloyEditor.Buttons[e]):AlloyEditor.Lang.isString(e.name)&&(n[AlloyEditor.Buttons[e.name].key]=CKEDITOR.tools.merge(o[e],e.cfg),e=AlloyEditor.Buttons[e.name]),e})).map(function(e){var i=this.mergeExclusiveProps({editor:this.props.editor,key:e.key,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return i=this.mergeDropdownProps(i,e.key),t&&(i=CKEDITOR.tools.merge(i,t)),i=CKEDITOR.tools.merge(i,n[e.key]),React.createElement(e,i)},this);return a}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):ReactDOM.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,t=1,n=-1,i=0,o=1,a=2,r={propTypes:{onDismiss:React.PropTypes.func,circular:React.PropTypes.bool.isRequired,focusFirstChild:React.PropTypes.bool,descendants:React.PropTypes.string.isRequired,keys:React.PropTypes.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===o&&this._moveFocus(t.direction),t.type===a&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:i};if(this.props.keys){var n=this._getFocusMoveDirection(e);n&&(t.direction=n,t.type=o);var r=this._getFocusDismissAction(e,n);r.dismiss&&(t.direction=r.direction,t.type=a)}return t},_getFocusDismissAction:function(e,i){var o={direction:i,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(o.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(o.dismiss=!0,o.direction=t),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(o.dismiss=!0,o.direction=n),o.dismiss||this.props.circular||!i||(o.dismiss=i===n&&0===this._activeDescendant||i===t&&this._activeDescendant===this._descendants.length-1)),o},_getFocusMoveDirection:function(i){var o=e;return this._isValidKey(i.keyCode,this.props.keys.next)&&(o=t),this._isValidKey(i.keyCode,this.props.keys.prev)&&(o=n),i.shifKey&&(o*=-1),o},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,n=this._descendants[this._activeDescendant];n.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),n=this._descendants[this._activeDescendant],n.setAttribute("tabIndex",0),n.focus()},_refresh:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),n=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?n.push(e):this._descendants.push(e)}.bind(this)),n=n.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=n.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:React.PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,n=e.nativeEvent,i={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return i.x&&i.y?(s=this._getXPoint(t,i.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(i.y,t.region.top):Math.max(i.y,this._getYPoint(t,n))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,n):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var n,i=e.region,o=i.startRect?i.startRect.left:i.left,a=i.endRect?i.endRect.right:i.right;if(ot)n=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);n=rt.width&&(n-=e.left+e.width-t.width),i<0&&(i=0),{x:n,y:i}},getWidgetXYPoint:function(e,t,n){var i=ReactDOM.findDOMNode(this),o=this.props.gutter;return n===CKEDITOR.SELECTION_TOP_TO_BOTTOM||n===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-i.offsetWidth/2,t=n===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-i.offsetHeight-o.top):n!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&n!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=n===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+i.offsetHeight/2:e-3*i.offsetHeight/2-o.left,t=t-o.top-i.offsetHeight/2),e<0&&(e=0),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var n=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));n.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0}),n.removeClass("alloy-editor-invisible"),this._animate(function(){n.addClass("ae-toolbar-transition"),n.addClass("alloy-editor-visible"),n.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})})},show:function(){var e=ReactDOM.findDOMNode(this);if(!this.isVisible()&&e){var t=this.getInteractionPoint();if(t){var n,i,o,a,r=new CKEDITOR.dom.element(e);if(n=o=parseFloat(r.getStyle("left")),i=a=parseFloat(r.getStyle("top")),this.props.constrainToViewport){var s=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:n,top:i,width:parseFloat(e.offsetWidth)});n=s.x,i=s.y}a=t.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom:this.props.selectionData.region.top,this.moveToPoint([o,a],[n,i])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var n=this.getWidgetXYPoint(e.x,e.y,e.direction);new CKEDITOR.dom.element(t).setStyles({left:n[0]+"px",top:n[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=React.createClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=React.createClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),n=t.getContext("2d"),i=this._videoHeight,o=this.props.videoWidth;if(o&&i){t.width=o,t.height=i,n.drawImage(e,0,0,o,i);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),n=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var i=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(i)&&(i=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",i),n.setAttribute("width",this.props.videoWidth),n.setAttribute("height",i),this._videoHeight=i}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=React.createClass({displayName:"ButtonCamera",propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),n=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":n,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:n},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=React.createClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=React.createClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:React.PropTypes.string.isRequired,icon:React.PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.description)},_getClassName:function(){var e="ae-toolbar-element";return this.props.icon&&(e+=" ae-icon-"+this.props.icon),e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=React.createClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:React.PropTypes.arrayOf(React.PropTypes.object),editor:React.PropTypes.object.isRequired,listId:React.PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,n=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),editor:n}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=React.createClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,n=React.createClass({displayName:"ButtonEmbedEdit",propTypes:{editor:React.PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),n=t.getSelection();if(n){var i=n.getSelectedElement();i&&(e=i.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(n){if(n.keyCode!==e&&n.keyCode!==t||n.preventDefault(),n.keyCode===e)this._embedLink();else if(n.keyCode===t){var i=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),i.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[n.key]=AlloyEditor.ButtonEmbedEdit=n}(),function(){var e=React.createClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=React.createClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=React.createClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2 -},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=React.createClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=React.createClass({displayName:"ButtonImage",propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,n=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),i=t.fire("beforeImageAdd",{imageFiles:n});if(i){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:n};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(n),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=React.createClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=React.createClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=React.createClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:React.PropTypes.func,autocompleteSelected:React.PropTypes.bool,term:React.PropTypes.string,setAutocompleteState:React.PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var n=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:n,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:n};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(n),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=React.createClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=React.createClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=React.createClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:React.PropTypes.func,autocompleteSelected:React.PropTypes.bool,term:React.PropTypes.string,setAutocompleteState:React.PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var n=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:n,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t0?t.getRangeAt(0).getClientRects():[]),0===o.length)i=this.getCaretRegion();else{for(var d=0,u=o.length;dl&&(l=p.right),p.topr&&(r=p.bottom)}var m=new CKEDITOR.dom.window(window).getScrollPosition();if(i.bottom=m.y+r,i.left=m.x+s,i.right=m.x+l,i.top=m.y+c,o.length){var g=o[o.length-1],h=o[0];i.endRect={bottom:m.y+g.bottom,height:g.height,left:m.x+g.left,right:m.x+g.right,top:m.y+g.top,width:g.width},i.startRect={bottom:m.y+h.bottom,height:h.height,left:m.x+h.left,right:m.x+h.right,top:m.y+h.top,width:h.width}}}return i},getSelectionDirection:function(){var e=CKEDITOR.SELECTION_TOP_TO_BOTTOM,t=this.getSelection(),n=t.getNative();if(!n)return e;var i;if((i=n.anchorNode)&&i.compareDocumentPosition){var o=i.compareDocumentPosition(n.focusNode);(!o&&n.anchorOffset>n.focusOffset||o===Node.DOCUMENT_POSITION_PRECEDING)&&(e=CKEDITOR.SELECTION_BOTTOM_TO_TOP)}return e}},CKEDITOR.plugins.add("ae_selectionregion",{init:function(t){var n,i;i=Object.prototype.hasOwnProperty;for(n in e.prototype)i.call(e.prototype,n)&&"undefined"==typeof t[n]&&(t[n]=e.prototype[n])}}))}(),function(){function e(e){this._editor=e}var t={table:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1};e.HEADING_BOTH="Both",e.HEADING_COL="Column",e.HEADING_NONE="None",e.HEADING_ROW="Row",e.prototype={constructor:e,create:function(e){var t=this._editor,n=this._createElement("table");e=e||{};for(var i=n.append(this._createElement("tbody")),o=e.rows||1,a=e.cols||1,r=0;r0&&(CKEDITOR.env.webkit&&i[0].shrink(CKEDITOR.NODE_ELEMENT),e=this._editor.elementPath(i[0].getCommonAncestor(!0)).contains("table",1))}return e},isEditable:function(e){return CKEDITOR.env.ie&&e.is(t)?e.hasAttribute("contenteditable")?"false"!==e.getAttribute("contenteditable"):this.isEditable(e.getParent()):!e.isReadOnly()},getHeading:function(t){if(t=t||this.getFromSelection(),!t)return null;for(var n=null!==t.$.tHead,i=!0,o=0;o0;){var h=a.getFirst(),f=h.getChildCount();for(i=0;i0){var t=e.data.$.clipboardData.items[0];if(0===t.type.indexOf("image")){var n=t.getAsFile();this._processFile(n,e.listenerData.editor)}}},_preventEvent:function(e){e=new CKEDITOR.dom.event(e.data.$),e.preventDefault(),e.stopPropagation()},_processFile:function(e,t){var n=new FileReader;n.addEventListener("loadend",function(){var i=n.result,o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o);var a={el:o,file:e};t.fire("imageAdd",a)}),n.readAsDataURL(e)}})}(),function(){if(!CKEDITOR.plugins.get("ae_autolink")){/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/.test(navigator.userAgent)&&document.execCommand("AutoUrlDetect",!1,!1);var e=8,t=188,n=13,i=186,o=32,a=[t,n,i,o],r=/[^\s]+/gm,s=/(https?\:\/\/|www\.)(-\.)?([^(\s\/?\.#-)]+\.?)+(\b\/[^\s]*)?$/i;CKEDITOR.plugins.add("ae_autolink",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keyup",this._onKeyUp,this,{editor:e})}.bind(this))},_getLastWord:function(e){var t=e.getSelection().getRanges()[0],i=t.startOffset,o="";if(this._currentKeyCode===n){var a,s=t.startContainer.getPrevious();if(s){for(;!s.getLast;)s=s.getPrevious();for(a=s.getLast();a&&!a.getText();)a=a.getPrevious()}a&&a.$.href||(this._startContainer=a,o=a?a.getText():"",this._offset=o.length)}else this._startContainer=t.startContainer,o=this._startContainer.getText().substring(0,i-1),this._offset=i-1;var l="",c=o.match(r);return c&&(l=c.pop()),l},_isValidURL:function(e){return s.test(e)},_onKeyDown:function(t){var n=t.data.$,i=t.listenerData.editor,o=i.editable();o.removeListener("keydown",this._onKeyDown),n.keyCode===e&&(t.cancel(),t.data.preventDefault(),this._removeLink(i)),this._ckLink=null},_onKeyUp:function(e){var t=e.data.$;if(this._currentKeyCode=t.keyCode,a.indexOf(this._currentKeyCode)!==-1){var n=e.listenerData.editor,i=this._getLastWord(n);this._isValidURL(i)&&this._replaceContentByLink(n,i)}},_replaceContentByLink:function(e,t){var i=e.createRange(),o=CKEDITOR.dom.element.get(this._startContainer),a=this._offset;i.setStart(o,a-t.length),i.setEnd(o,a),i.select();var r=new CKEDITOR.Link(e);r.create(t),this._ckLink=r;var s=r.getFromSelection();if(e.fire("autolinkAdd",s),this._subscribeToKeyEvent(e),i=e.getSelection().getRanges()[0],this._currentKeyCode===n){var l=i.getNextEditableNode();i.setStart(l,0),i.setEnd(l,0)}else{var c=i.getNextNode();i.setStart(c,1),i.setEnd(c,1)}i.select()},_removeLink:function(e){var t=e.getSelection().getRanges()[0],n=t.startOffset,i=this._startContainer.getNext()||this._startContainer,o=e.createRange();o.setStart(i,0),o.setEndAfter(i),o.select(),this._ckLink.remove(),t.setEnd(t.startContainer,n),t.setStart(t.startContainer,n),t.select()},_subscribeToKeyEvent:function(e){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e},1)}})}}(),function(){if(!CKEDITOR.plugins.get("ae_autolist")){var e=8,t=32,n=[{regex:/^\*$/,type:"bulletedlist"},{regex:/^1\.$/,type:"numberedlist"}];CKEDITOR.plugins.add("ae_autolist",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"keydown",this._onKeyDown,this,{editor:e})}.bind(this))},_checkForBackspaceAndUndo:function(t){var n=t.listenerData.editor,i=t.data.$,o=n.editable();o.removeListener("keydown",this._checkForBackspaceAndUndo),i.keyCode===e&&(n.execCommand("undo"),n.insertHtml(t.listenerData.bullet+" "),t.data.preventDefault())},_getListConfig:function(e){for(var t=e.config.autolist||n,i=e.getSelection().getRanges()[0],o=i.endContainer.getText(),a=o.substring(0,i.startOffset),r=o.substring(i.startOffset,o.length),s=0,l=t.length,c=null;!c&&l>s;){var d=t[s];if(d.regex.test(a)){c={bullet:a,editor:e,text:r,type:d.type};break}s++}return c},_createList:function(e){var t=e.editor,n=t.getSelection().getRanges()[0];n.endContainer.setText(e.text),t.execCommand(e.type);var i=t.editable();i.attachListener(i,"keydown",this._checkForBackspaceAndUndo,this,{editor:t,bullet:e.bullet},1)},_onKeyDown:function(e){var n=e.data.$;if(n.keyCode===t){var i=this._getListConfig(e.listenerData.editor);i&&(e.data.preventDefault(),this._createList(i))}}})}}(),function(){function e(e){function n(){var t=e.getSelection();t&&(t.getType()!==CKEDITOR.SELECTION_NONE&&t.getStartElement().is("img")?i.event&&i.event.button&&0!==i.event.button||r.show(t.getStartElement().$):r.hide())}var i=e.window.$,o=e.document.$,a="undefined"==typeof d?null:d;e.config.imageScaleResize=e.config.imageScaleResize||"both";var r=new t(e,{imageScaleResize:e.config.imageScaleResize,snapToSize:a});o.addEventListener("mousedown",function(e){r.isHandle(e.target)&&r.initDrag(e)},!1),e.on("selectionChange",n),e.on("getData",function(e){var t=e.data.dataValue||"";t=t.replace(/
/i,""),t=t.replace(/\b(ckimgrsz)\b/g,""),e.data.dataValue=t}),e.on("beforeUndoImage",function(){r.hide()}),e.on("afterUndoImage",function(){n()}),e.on("blur",function(){r.hide()}),e.on("beforeModeUnload",function l(){e.removeListener("beforeModeUnload",l),r.hide()}),e.on("destroy",function(){var e=o.getElementById("ckimgrsz");e&&e.remove(),u&&o.execCommand("enableObjectResizing",!1,!0)});var s;e.window.on("resize",function(){clearTimeout(s),s=setTimeout(n,50)})}function t(e,t){this.editor=e,this.window=e.window.$,this.document=e.document.$,this.cfg=t||{},this.init()}function n(e,t){this.window=e,this.document=t,this.events={mousemove:o(this.mousemove,this),keydown:o(this.keydown,this),mouseup:o(this.mouseup,this)}}function i(e){for(var t=e.length,n=new Array(t),i=0;ii?t.height=Math.round(t.width/i):t.width=Math.round(t.height*i)}var o=this.cfg.snapToSize;if(o)for(var a=this.otherImages,r=0;r=15&&(u>=15||"auto"===u)?(f.setAttributes({width:d,height:u}),p=!0):p=!1}function l(){for(var i;i=T.pop();)i.removeListener();n.removeClass(C),o.removeClass("cke_image_resizing"),p&&(e.setData({height:u,width:d}),t.fire("saveSnapshot")),p=!1}var c,d,u,p,m,g,h,f=e.parts.image,y="right"==e.data.align?-1:1,E=a.data.$.screenX,b=a.data.$.screenY,v=f.$.clientWidth,R=f.$.clientHeight,T=[],C="cke_image_s"+(~y?"e":"w");t.fire("saveSnapshot"),r("mousemove",s,T),r("mouseup",l,T),n.addClass(C),o.addClass("cke_image_resizing")}),e.on("data",function(){o["right"==e.data.align?"addClass":"removeClass"]("cke_image_resizer_left")}),e.parts.image.on("click",function(){t._.editable.editor.getSelection().selectElement(this);var e=t._.editable.editor.getSelectionData();e&&t.fire("editorInteraction",{nativeEvent:event,selectionData:e})})}function s(e){var t={figcaption:!0,figure:{classes:"!"+e.config.image2_captionedClass},img:{attributes:"!src,alt,width,height"}};return t}function l(e){var t=e.config.image2_alignClasses,n={align:{requiredContent:"img"+(t?"("+t[0]+")":"{float}")},caption:{requiredContent:"figcaption"},dimension:{requiredContent:"img[width,height]"}};return n}function c(e){return e.data.hasCaption?e.element:e.parts.image}if(!CKEDITOR.plugins.get("ae_dragresize_ie")){var d={center:1,left:0,right:2},u={ both:"nwse-resize",height:"ns-resize",scale:"nwse-resize",width:"ew-resize"},p=/^\s*(\d+\%)\s*$/i,m='';CKEDITOR.plugins.add("ae_dragresize_ie",{hidpi:!0,icons:"image",init:function(t){var n=e(t);t.widgets.add("image",n)},onLoad:function(){CKEDITOR.addCss(".cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ns-resize{cursor: ns-resize;}.cke_image_resizer_nwse-resize{cursor: nwse-resize;}.cke_image_resizer_ew-resize{cursor: ew-resize;}.cke_image_nocaption{line-height:0}.cke_image_resizer{display:none;position:absolute;width:10px;height:10px;bottom:-5px;right:-5px;background:#000;outline:1px solid #fff;line-height:0;cursor:nwse-resize;}.cke_image_resizer_wrapper{position:relative;display:inline-block;line-height:0;}.cke_widget_wrapper:hover .cke_image_resizer,.cke_image_resizer.cke_image_resizing{display:block}")},requires:"widget"}),CKEDITOR.plugins.image2={checkHasNaturalRatio:function(e){var t=e.$,n=this.getNatural(e);return Math.round(t.clientWidth/n.width*n.height)==t.clientHeight||Math.round(t.clientHeight/n.height*n.width)==t.clientWidth},getNatural:function(e){var t;if(e.$.naturalWidth)t={height:e.$.naturalHeigh,width:e.$.naturalWidth};else{var n=new Image;n.src=e.getAttribute("src"),t={height:n.heigh,width:n.width}}return t}}}}(),CKEDITOR.config.image2_captionedClass="image",function(){if(!CKEDITOR.plugins.get("ae_embed")){var e=/^https?/,t=/
',CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL='{url}',CKEDITOR.plugins.add("ae_embed",{requires:"widget",init:function(n){var i=new CKEDITOR.template(n.config.embedUrlTemplate||CKEDITOR.DEFAULT_AE_EMBED_URL_TPL),o=new CKEDITOR.template(n.config.embedWidgetTpl||CKEDITOR.DEFAULT_AE_EMBED_WIDGET_TPL),a=new CKEDITOR.template(n.config.embedLinkDefaultTpl||CKEDITOR.DEFAULT_AE_EMBED_DEFAULT_LINK_TPL),r=function(e,t){if("div"===e.name&&e.attributes["data-ae-embed-url"])return t.url=e.attributes["data-ae-embed-url"],!0};n.addCommand("embedUrl",{exec:function(e,t){e.insertHtml(o.output({url:t.url}))}}),n.widgets.add("ae_embed",{mask:!0,requiredContent:"div[data-ae-embed-url]",data:function(e){var n=this,o=e.data.url;o&&CKEDITOR.tools.jsonp(i,{url:encodeURIComponent(o)},function(e){e.html?t.test(e.html)?n.createATag(o):n.element.setHtml(e.html):n.createATag(o,currentSelection)},function(e){n.createATag(o,currentSelection)})},createATag:function(e){this.editor.execCommand("undo");var t=(this.editor.getSelection().getSelectedElement(),a.output({url:e}));this.editor.insertHtml(t),this.editor.fire("actionPerformed",this)},upcast:function(e,t){var i=n.config.embedWidgetUpcastFn||r;return i(e,t)}}),n.once("contentDom",function(){n.on("paste",function(t){var i=t.data.dataValue;e.test(i)&&(t.stop(),n.execCommand("embedUrl",{url:t.data.dataValue}))})}),n.on("selectionChange",function(e){var t=n.getSelection();if(t){var i=t.getSelectedElement();if(i){var o=i.findOne('[data-widget="ae_embed"]');if(o){var a=i.getClientRect(),r=new CKEDITOR.dom.window(window).getScrollPosition();a.left-=r.x,a.top+=r.y,a.direction=CKEDITOR.SELECTION_BOTTOM_TO_TOP,n.fire("editorInteraction",{nativeEvent:{},selectionData:{element:o,region:a}})}}}}),n.filter.addElementCallback(function(e){if("data-ae-embed-url"in e.attributes)return CKEDITOR.FILTER_SKIP_TREE})}})}}(),function(){if(!CKEDITOR.plugins.get("ae_imagealignment")){var e={CENTER:"center",LEFT:"left",RIGHT:"right"},t=[e.LEFT,e.RIGHT,e.CENTER],n=[{name:"display",value:"block"},{name:"margin-left",value:"50%"},{name:"transform",value:"translateX(-50%)",vendorPrefixes:["-ms-"]}],i=function(t){var i=t.getStyle("float");if(i&&"inherit"!==i&&"none"!==i||(i=t.getAttribute("align")),!i){var o=n.every(function(e){var n=t.getStyle(e.name)===e.value;return!n&&e.vendorPrefixes&&(n=e.vendorPrefixes.some(function(n){return t.getStyle(n+e.name)===e.value})),n});i=o?e.CENTER:null}return i},o=function(t,o){o===e.LEFT||o===e.RIGHT?(t.removeStyle("float"),o===i(t)&&t.removeAttribute("align")):o===e.CENTER&&n.forEach(function(e){t.removeStyle(e.name),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(n){t.removeStyle(n+e.name)})})},a=function(t,a){o(t,i(t)),a===e.LEFT||a===e.RIGHT?t.setStyle("float",a):a===e.CENTER&&n.forEach(function(e){t.setStyle(e.name,e.value),e.vendorPrefixes&&e.vendorPrefixes.forEach(function(n){t.setStyle(n+e.name,e.value)})})};CKEDITOR.plugins.add("ae_imagealignment",{afterInit:function(e){var n=this;t.forEach(function(t){var r=e.getCommand("justify"+t);r&&(r.on("exec",function(r){var s=e.getSelectionData();if(s&&AlloyEditor.SelectionTest.image({data:{selectionData:s}})){var l=s.element,c=i(l);c===t?o(l,t):a(l,t),r.cancel(),n.refreshCommands(e,new CKEDITOR.dom.elementPath(l))}}),r.on("refresh",function(e){var n={element:e.data.path.lastElement};if(AlloyEditor.SelectionTest.image({data:{selectionData:n}})){var o=i(n.element);this.setState(o===t?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),e.cancel()}}))})},refreshCommands:function(e,n){t.forEach(function(t){var i=e.getCommand("justify"+t);i&&i.refresh(e,n)})}})}}(),function(){CKEDITOR.plugins.get("ae_pasteimages")||CKEDITOR.plugins.add("ae_pasteimages",{init:function(e){e.once("contentDom",function(){var t=e.editable();t.attachListener(t,"paste",this._onPaste,this,{editor:e})}.bind(this))},_onPaste:function(e){if(e.data.$.clipboardData){var t=e.data.$.clipboardData.items[0],n=e.listenerData.editor;if(0===t.type.indexOf("image")){var i=new FileReader,o=t.getAsFile();i.onload=function(e){var t=n.fire("beforeImageAdd",{imageFiles:o});if(t){var i=CKEDITOR.dom.element.createFromHtml('');n.insertElement(i);var a={el:i,file:o};n.fire("imageAdd",a)}}.bind(this),i.readAsDataURL(o)}}}})}(),function(){CKEDITOR.plugins.get("ae_placeholder")||CKEDITOR.plugins.add("ae_placeholder",{init:function(e){e.on("blur",this._checkEmptyData,this),e.on("change",this._checkEmptyData,this),e.on("focus",this._removePlaceholderClass,this),e.once("contentDom",this._checkEmptyData,this)},_checkEmptyData:function(e){var t=e.editor,n=t.editable();""===n.$.innerText.trim()?n.addClass(t.config.placeholderClass):n.removeClass(t.config.placeholderClass)},_removePlaceholderClass:function(e){var t=e.editor,n=new CKEDITOR.dom.element(t.element.$);n.removeClass(t.config.placeholderClass)}})}(),function(){CKEDITOR.plugins.get("ae_selectionkeystrokes")||CKEDITOR.plugins.add("ae_selectionkeystrokes",{requires:"ae_selectionregion",init:function(e){e.config.selectionKeystrokes&&e.config.selectionKeystrokes.forEach(function(t){var n=new CKEDITOR.command(e,{exec:function(e){e.fire("editorInteraction",{manualSelection:t.selection,nativeEvent:{},selectionData:e.getSelectionData()})}}),i="selectionKeystroke"+t.selection;e.addCommand(i,n),e.setKeystroke(t.keys,i)})}})}(),function(){function e(e){return CKEDITOR.env.ie?e.$.clientWidth:parseInt(e.getComputedStyle("width"),10)}function t(e,t){var n=e.getComputedStyle("border-"+t+"-width"),i={thin:"0px",medium:"1px",thick:"2px"};return n.indexOf("px")<0&&(n=n in i&&"none"!=e.getComputedStyle("border-style")?i[n]:0),parseInt(n,10)}function n(e){for(var t,n,i,o=e.$.rows,a=0,r=0,s=o.length;ra&&(a=t,n=i);return n}function i(e){for(var i=[],o=-1,a="rtl"===e.getComputedStyle("direction"),r=n(e),s=new CKEDITOR.dom.element(e.$.tBodies[0]),l=s.getDocumentPosition(),c=0,d=r.cells.length;c=o.x&&t<=o.x+o.width)return o}return null}function a(e){(e.data||e).preventDefault()}function r(n){function i(){p=null,y=0,h=0,m.removeListener("mouseup",d),g.removeListener("mousedown",c),g.removeListener("mousemove",u),m.getBody().setStyle("cursor","auto")}function o(){for(var t=p.index,n=CKEDITOR.tools.buildTableMap(p.table),i=[],o=[],r=Number.MAX_VALUE,s=r,l=p.rtl,c=0,d=n.length;c
',m),n.on("destroy",function(){g.remove()}),m.getDocumentElement().append(g),this.attachTo=function(e){h||(p=e,g.setStyles({width:l(e.width),height:l(e.height),left:l(e.x),top:l(e.y)}),g.on("mousedown",c,this),m.getBody().setStyle("cursor","col-resize"),g.show())};var T=this.move=function(e){if(!p)return 0;if(!h&&(ep.x+p.width))return i(),0;var t=e-Math.round(g.$.offsetWidth/2);if(h){if(t===v||t===R)return 1;t=Math.max(t,v),t=Math.min(t,R),y=t-f}return g.setStyle("left",l(t)),1}}function s(e){var t=e.data.getTarget();if("mouseout"===e.name){if(!t.is("table"))return;for(var n=new CKEDITOR.dom.element(e.data.$.relatedTarget||e.data.$.toElement);n&&n.$&&!n.equals(t)&&!n.is("body");)n=n.getParent();if(!n||n.equals(t))return}t.getAscendant("table",1).removeCustomData("_cke_table_pillars"),e.removeListener()}if(!CKEDITOR.plugins.get("ae_tableresize")){var l=CKEDITOR.tools.cssLength;CKEDITOR.plugins.add("ae_tableresize",{requires:"ae_tabletools",init:function(e){e.on("contentDom",function(){var t,n=e.editable();n.attachListener(n.isInline()?n:e.document,"mousemove",function(n){n=n.data;var l=n.getTarget();if(l.type===CKEDITOR.NODE_ELEMENT){var c=n.getPageOffset().x;if(t&&t.move(c))return void a(n);var d,u;if((l.is("table")||l.getAscendant("tbody",1))&&(d=l.getAscendant("table",1),e.editable().contains(d))){(u=d.getCustomData("_cke_table_pillars"))||(d.setCustomData("_cke_table_pillars",u=i(d)),d.on("mouseout",s),d.on("mousedown",s));var p=o(u,c);p&&(!t&&(t=new r(e)),t.attachTo(p))}}})})}})}}(),function(){function e(e){function t(e){i.length>0||e.type==CKEDITOR.NODE_ELEMENT&&y.test(e.getName())&&!e.getCustomData("selected_cell")&&(CKEDITOR.dom.element.setMarker(o,e,"selected_cell",!0),i.push(e))}for(var n=e.getRanges(),i=[],o={},a=0;a1&&f&&h[b]==f[b]?(v=h[b],v.rowSpan+=1):(v=new CKEDITOR.dom.element(h[b]).clone(),v.removeAttribute("rowSpan"),v.appendBogus(),E.append(v),v=v.$),b+=v.colSpan-1}n?E.insertBefore(m):E.insertAfter(m)}function i(t){if(t instanceof CKEDITOR.dom.selection){for(var n=e(t),o=n[0],a=o.getAscendant("table"),r=CKEDITOR.tools.buildTableMap(a),s=n[0].getParent(),l=s.$.rowIndex,c=n[n.length-1],d=c.getParent().$.rowIndex+c.$.rowSpan-1,u=[],p=l;p<=d;p++){for(var m=r[p],g=new CKEDITOR.dom.element(a.$.rows[p]),h=0;h0?b[l-1]:null)||a.$.parentNode);for(p=u.length;p>=0;p--)i(u[p]);return v}return t instanceof CKEDITOR.dom.element&&(a=t.getAscendant("table"),1==a.$.rows.length?a.remove():t.remove()),null}function o(e,t){for(var n=e.getParent(),i=n.$.cells,o=0,a=0;an)&&(n=a)}return n}function r(t,n){for(var i=e(t),o=i[0],r=o.getAscendant("table"),s=a(i,1),l=a(i),c=n?s:l,d=CKEDITOR.tools.buildTableMap(r),u=[],p=[],m=d.length,g=0;g1&&p[g]==u[g]?(f=u[g],f.colSpan+=1):(f=new CKEDITOR.dom.element(u[g]).clone(),f.removeAttribute("colSpan"),f.appendBogus(),f[n?"insertBefore":"insertAfter"].call(f,new CKEDITOR.dom.element(u[g])),f=f.$),g+=f.rowSpan-1)}}function s(t){for(var n,i,o=e(t),a=o[0],r=o[o.length-1],s=a.getAscendant("table"),l=CKEDITOR.tools.buildTableMap(s),c=[],d=0,u=l.length;d=0;r--)c(i[r]);a?u(a,!0):o&&o.remove()}else if(n instanceof CKEDITOR.dom.element){var s=n.getParent();1==s.getChildCount()?s.remove():n.remove()}}function d(e){var t=e.getBogus();t&&t.remove(),e.trim()}function u(e,t){var n=e.getDocument(),i=CKEDITOR.document;CKEDITOR.env.ie&&10==CKEDITOR.env.version&&(i.focus(),n.focus());var o=new CKEDITOR.dom.range(n);o["moveToElementEdit"+(t?"End":"Start")](e)||(o.selectNodeContents(e),o.collapse(!t)),o.select(!0)}function p(e,t,n){var i=e[t];if("undefined"==typeof n)return i;for(var o=0;i&&o1&&(i+=o[t].rowSpan-1)}return n}function g(t,n,i){var o,a=e(t);if((n?1!=a.length:a.length<2)||(o=t.getCommonAncestor())&&o.type==CKEDITOR.NODE_ELEMENT&&o.is("table"))return!1;var r,s=a[0],l=s.getAscendant("table"),c=CKEDITOR.tools.buildTableMap(l),u=c.length,m=c[0].length,g=s.getParent().$.rowIndex,h=p(c,g,s);if(n){var f;try{var y=parseInt(s.getAttribute("rowspan"),10)||1,E=parseInt(s.getAttribute("colspan"),10)||1;f=c["up"==n?g-y:"down"==n?g+y:g]["left"==n?h-E:"right"==n?h+E:h]}catch(b){return!1}if(!f||s.$==f)return!1;a["up"==n||"left"==n?"unshift":"push"](new CKEDITOR.dom.element(f))}for(var v=s.getDocument(),R=g,T=0,C=0,_=!i&&new CKEDITOR.dom.documentFragment(v),A=0,I=0;I=m?s.removeAttribute("rowSpan"):s.$.rowSpan=T,T>=u?s.removeAttribute("colSpan"):s.$.colSpan=C;var N=new CKEDITOR.dom.nodeList(l.$.rows),B=N.count();for(I=B-1;I>=0;I--){var K=N.getItem(I);K.$.cells.length||(K.remove(),B++)}return s}function h(t,n){var i=e(t);if(i.length>1)return!1;if(n)return!0;var o,a,r,s,l=i[0],c=l.getParent(),d=c.getAscendant("table"),u=CKEDITOR.tools.buildTableMap(d),m=c.$.rowIndex,g=p(u,m,l),h=l.$.rowSpan;if(h>1){a=Math.ceil(h/2),r=Math.floor(h/2),s=m+a;var f,y=new CKEDITOR.dom.element(d.$.rows[s]),E=p(u,s);o=l.clone();for(var b=0;bg){o.insertBefore(new CKEDITOR.dom.element(f));break}f=null}f||y.append(o)}else{r=a=1,y=c.clone(),y.insertAfter(c),y.append(o=l.clone());for(var v=p(u,m),R=0;R1)return!1;if(n)return!0;var o,a,r,s=i[0],l=s.getParent(),c=l.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(c),u=l.$.rowIndex,g=p(d,u,s),h=s.$.colSpan;if(h>1)a=Math.ceil(h/2),r=Math.floor(h/2);else{r=a=1;for(var f=m(d,g),y=0;y>>0),i=t(n,e);return new i}})}})}}(),function(){function e(){}function t(e,t,o){var a=AlloyEditor.Buttons[e];return i[o.name]=i[o.name]||{},i[o.name][e]=i[o.name][e]||t,a||(a=React.createClass(CKEDITOR.tools.merge(n,{displayName:e,propTypes:{editor:React.PropTypes.object.isRequired,tabIndex:React.PropTypes.number},statics:{key:e},render:function(){var t=this.props.editor.get("nativeEditor"),n=i[t.name][e].name||i[t.name][e].command||e,o="ae-button ae-button-bridge",a="ae-icon-"+n,r={},s=CKEDITOR.skin.getIconStyle(n);if(s){var l=s.split(";");r.backgroundImage=l[0].substring(l[0].indexOf(":")+1),r.backgroundPosition=l[1].substring(l[1].indexOf(":")+1),r.backgroundSize=l[2].substring(l[2].indexOf(":")+1)}var c;return this.props.expanded&&(c=this._getMenu()),React.createElement("div",{className:"ae-container ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":i[t.name][e].label,className:o,onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:i[t.name][e].label},React.createElement("span",{className:a,style:r})),c)},_getMenu:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getMenuItems())},_getMenuItems:function(){var e=this.props.editor.get("nativeEditor"),n=t.onMenu(),i=Object.keys(n).map(function(t){var i=e.getMenuItem(t);if(!i)return null;var o=i.definition||i,a=n[t],r="ae-toolbar-element "+(a===CKEDITOR.TRISTATE_ON?"active":""),s=a===CKEDITOR.TRISTATE_DISABLED,l=function(){o.command?e.execCommand(o.command):o.onClick&&o.onClick.apply(o)};return React.createElement("li",{key:i.name,role:"option"},React.createElement("button",{className:r,disabled:s,onClick:l},o.label))}.bind(this));return i}})),AlloyEditor.Buttons[e]=a),a}if(!CKEDITOR.plugins.get("ae_menubuttonbridge")){var n={toFeature:e},i={};CKEDITOR.plugins.get("menubutton")||(CKEDITOR.UI_MENU_BUTTON="menubutton",CKEDITOR.plugins.add("menubutton",{})),CKEDITOR.plugins.add("ae_menubuttonbridge",{requires:["ae_uibridge","ae_menubridge"],init:function(e){e.ui.addMenuButton=function(e,t){this.add(e,CKEDITOR.UI_MENUBUTTON,t)},e.ui.addHandler(CKEDITOR.UI_MENUBUTTON,{add:t,create:function(e){var n="buttonBridge"+(1e9*Math.random()>>>0),i=t(n,e);return new i}})}})}}(),function(){CKEDITOR.plugins.get("ae_menubridge")||CKEDITOR.plugins.add("ae_menubridge",{init:function(e){if(!CKEDITOR.plugins.get("menu")){for(var t=[],n=e._.menuGroups={},i=e._.menuItems={},o=0;o>>0),n=i(t,e);return new n}})}})}}(),function(){function e(){}if(!CKEDITOR.plugins.get("ae_richcombobridge")){var t={commit:e,createPanel:e,disable:e,enable:e,getState:e,hideGroup:e,hideItem:e,mark:e,showAll:e,startGroup:e,unmarkAll:e},n={},i=function(e,i,o){var a=AlloyEditor.Buttons[e];return n[o.name]=n[o.name]||{},n[o.name][e]=n[o.name][e]||i,n[o.name][e].currentValue=void 0,a||(a=React.createClass(CKEDITOR.tools.merge(t,{displayName:e,propTypes:{editor:React.PropTypes.object.isRequired},statics:{key:e},add:function(e,t,n){this._items.push({preview:t,title:n,value:e})},componentWillMount:function(){var t=this.props.editor.get("nativeEditor"),i=n[t.name][e];this._items=[],this.setValue=this._setValue,i.init&&i.init.call(this),i.onRender&&i.onRender.call(this)},componentWillUnmount:function(){this._cacheValue(this.state.value),this.setValue=this._cacheValue},getInitialState:function(){return{value:n[o.name][e].currentValue}},getValue:function(){return this.state.value},render:function(){var t,o=this.props.editor.get("nativeEditor"),a=n[o.name][e].currentValue||i.label;return this.props.expanded&&(t=this._getItemsList()),React.createElement("div",{className:"ae-container-dropdown ae-has-dropdown"},React.createElement("button",{"aria-expanded":this.props.expanded,"aria-label":a,className:"ae-toolbar-element",onClick:this.props.toggleDropdown,role:"combobox",tabIndex:this.props.tabIndex,title:a},React.createElement("div",{className:"ae-container"},React.createElement("span",{className:"ae-container-dropdown-selected-item"},a),React.createElement("span",{className:"ae-icon-arrow"}))),t)},_cacheValue:function(t){var i=this.props.editor.get("nativeEditor");n[i.name][e].currentValue=t},_getItems:function(){var e=this,t=this._items.map(function(t){var n="ae-toolbar-element "+(t.value===this.state.value?"active":"");return React.createElement("li",{key:t.title,role:"option"},React.createElement("button",{className:n,dangerouslySetInnerHTML:{__html:t.preview},"data-value":t.value,onClick:e._onClick}))}.bind(this));return t},_getItemsList:function(){return React.createElement(AlloyEditor.ButtonDropdown,{onDismiss:this.props.toggleDropdown},this._getItems())},_onClick:function(t){var i=this.props.editor.get("nativeEditor"),o=n[i.name][e];if(o.onClick){var a=t.currentTarget.getAttribute("data-value");o.onClick.call(this,a),n[i.name][e].currentValue=a,i.fire("actionPerformed",this)}},_setValue:function(e){this._cacheValue(e),this.setState({value:e})}})),AlloyEditor.Buttons[e]=a),a};CKEDITOR.plugins.get("richcombo")||(CKEDITOR.UI_RICHCOMBO="richcombo",CKEDITOR.plugins.add("richcombo",{})),CKEDITOR.plugins.add("ae_richcombobridge",{requires:["ae_uibridge"],init:function(e){e.ui.addRichCombo=function(e,t){this.add(e,CKEDITOR.UI_RICHCOMBO,t)},e.ui.addHandler(CKEDITOR.UI_RICHCOMBO,{add:i,create:function(e){var t="richComboBridge"+(1e9*Math.random()>>>0),n=i(t,e);return new n}})}})}}(),function(){CKEDITOR.plugins.get("ae_uibridge")||CKEDITOR.plugins.add("ae_uibridge",{beforeInit:function(e){var t=e.ui.add;e.ui.add=function(n,i,o){t.apply(this,arguments);var a=this._.handlers[i];a&&a.add&&a.add(n,o,e)}}})}();var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){var e={isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},isBoolean:function(e){return"boolean"==typeof e},isFunction:function(e){return"function"==typeof e},isNull:function(e){return null===e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isObject:function(t){var n="undefined"==typeof t?"undefined":_typeof(t);return t&&("object"===n||e.isFunction(t))},isString:function(e){return"string"==typeof e},mix:function(e,t){var n=Object.prototype.hasOwnProperty;for(var i in t)n.call(t,i)&&(e[i]=t[i])},toInt:function(e){return parseInt(e,10)}};AlloyEditor.Lang=e}(),function(){var e={extend:function(e,t,n,i){if(!t||!e)throw"extend failed, verify dependencies";var o=t.prototype,a=Object.create(o);return e.prototype=a,a.constructor=e,e.superclass=o,t!==Object&&o.constructor===Object.prototype.constructor&&(o.constructor=t),n&&AlloyEditor.Lang.mix(a,n),i&&AlloyEditor.Lang.mix(e,i),e}};AlloyEditor.OOP=e}(),function(){function e(e){this.__config__=e||{},this.__ATTRS__={}}e.prototype={constructor:e,get:function(e){var t=this.constructor.ATTRS[e];if(t){this._isInitialized(e)||this._init(e);var n=this.__ATTRS__[e];return t.getter&&(n=this._callStringOrFunction(t.getter,n)),n}},set:function(e,t){var n=this.constructor.ATTRS[e];n&&(this._isInitialized(e)||this._init(e),n.readOnly||n.writeOnce&&this._isInitialized(e)||n.validator&&!this._callStringOrFunction(n.validator,t)||(n.setter&&(t=this._callStringOrFunction(n.setter,t)), this.__ATTRS__[e]=t))},_callStringOrFunction:function(e,t){var n=null;return AlloyEditor.Lang.isArray(t)||(t=[t]),AlloyEditor.Lang.isString(e)&&AlloyEditor.Lang.isFunction(this[e])?n=this[e].apply(this,t):AlloyEditor.Lang.isFunction(e)&&(n=e.apply(this,t)),n},_init:function(e){var t,n=this.constructor.ATTRS[e],i=Object.prototype.hasOwnProperty.call(n,"value"),o=Object.prototype.hasOwnProperty.call(this.__config__,e);if(n.valueFn)t=this._callStringOrFunction(n.valueFn,t),this.__ATTRS__[e]=t;else if(n.readOnly)t=n.value;else if(n.writeOnce)if(o)t=this.__config__[e];else{if(!i)return;t=n.value}else o?t=this.__config__[e]:i&&(t=n.value);if(n.validator&&o&&!this._callStringOrFunction(n.validator,t)){if(!i)return;t=n.value}n.setter&&o&&(t=this._callStringOrFunction(n.setter,t)),this.__ATTRS__[e]=t},_isInitialized:function(e){return Object.prototype.hasOwnProperty.call(this.__ATTRS__,e)}},AlloyEditor.Attribute=e}(),function(){function e(t){e.superclass.constructor.call(this,t),this.init(t)}AlloyEditor.OOP.extend(e,AlloyEditor.Attribute,{init:function(e){this._callChain("initializer",e)},destroy:function(){this._callChain("destructor")},_callChain:function(e,t){for(var n=[],i=this.constructor;i;)AlloyEditor.Lang.isFunction(i.prototype[e])&&n.push(i.prototype[e]),i=i.superclass?i.superclass.constructor:null;n=n.reverse(),t=AlloyEditor.Lang.isArray(t)?t:[t];for(var o=0;o>>0).toString(),i=e.getCommand(n);i||(i=new CKEDITOR.command(e,{exec:function(e){var n=t.fn;AlloyEditor.Lang.isString(n)?this[n].call(this,e):AlloyEditor.Lang.isFunction(n)&&n.call(this,e)}.bind(this)}),e.addCommand(n,i)),this._defaultKeystrokeCommand=e.keystrokeHandler.keystrokes[t.keys],e.setKeystroke(t.keys,n)},componentWillUnmount:function(){this.props.editor.get("nativeEditor").setKeystroke(this.props.keystroke.keys,this._defaultKeystrokeCommand)}};AlloyEditor.ButtonKeystroke=e}(),function(){var e={propTypes:{editor:React.PropTypes.object.isRequired},mergeButtonCfgProps:function(e){e=e||this.props;var t=this.props.editor.get("nativeEditor"),n=t.config.buttonCfg||{},i=CKEDITOR.tools.merge(e,n[AlloyEditor.ButtonLinkEdit.key]);return i}};AlloyEditor.ButtonCfgProps=e}(),function(){var e={getStateClasses:function(){var e="";return AlloyEditor.Lang.isFunction(this.isActive)&&this.isActive()&&(e+="ae-button-pressed"),AlloyEditor.Lang.isFunction(this.isDisabled)&&this.isDisabled()&&(e+=" ae-button-disabled"),e}};AlloyEditor.ButtonStateClasses=e}(),function(){var e={propTypes:{style:React.PropTypes.oneOfType([React.PropTypes.object,React.PropTypes.string])},componentWillMount:function(){var e=AlloyEditor.Lang,t=this.props.style;if(e.isString(t)){for(var n=t.split("."),i=this.props.editor.get("nativeEditor").config,o=n.shift();o&&e.isObject(i)&&e.isObject(i[o]);)i=i[o],o=n.shift();e.isObject(i)&&(t=i)}this._style=new CKEDITOR.style(t)},componentWillUnmount:function(){this._style=null},getStyle:function(){return this._style},isActive:function(){var e,t=this.props.editor.get("nativeEditor"),n=t.elementPath();return e=this.getStyle().checkActive(n,t)}};AlloyEditor.ButtonStyle=e}(),function(){var e={getToolbarButtons:function(e,t){var n={},i=this.props.editor.get("nativeEditor"),o=i.config.buttonCfg||{},a=this.filterExclusive(e.filter(function(e){return e&&(AlloyEditor.Buttons[e]||AlloyEditor.Buttons[e.name])}).map(function(e){return AlloyEditor.Lang.isString(e)?(n[e]=o[e],e=AlloyEditor.Buttons[e]):AlloyEditor.Lang.isString(e.name)&&(n[AlloyEditor.Buttons[e.name].key]=CKEDITOR.tools.merge(o[e],e.cfg),e=AlloyEditor.Buttons[e.name]),e})).map(function(e){var i=this.mergeExclusiveProps({editor:this.props.editor,key:e.key,tabKey:e.key,tabIndex:this.props.trigger&&this.props.trigger.props.tabKey===e.key?0:-1,trigger:this.props.trigger},e.key);return i=this.mergeDropdownProps(i,e.key),t&&(i=CKEDITOR.tools.merge(i,t)),i=CKEDITOR.tools.merge(i,n[e.key]),React.createElement(e,i)},this);return a}};AlloyEditor.ToolbarButtons=e}(),function(){var e={getArrowBoxClasses:function(){var e="ae-arrow-box";return AlloyEditor.Lang.isFunction(this.getInteractionPoint)&&this.getInteractionPoint()&&(e+=this.getInteractionPoint().direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?" ae-arrow-box-top":" ae-arrow-box-bottom"),e}};AlloyEditor.WidgetArrowBox=e}(),function(){var e={componentWillReceiveProps:function(e){this.setState({dropdownTrigger:null,itemDropdown:null})},getInitialState:function(){return{dropdownTrigger:null,itemDropdown:null}},mergeDropdownProps:function(e,t){return CKEDITOR.tools.merge(e,{expanded:this.state.itemDropdown===t,tabIndex:this.state.dropdownTrigger===t?0:-1,toggleDropdown:this.toggleDropdown.bind(this,t)})},toggleDropdown:function(e,t){this.setState({dropdownTrigger:e,itemDropdown:e!==this.state.itemDropdown?e:null},function(){this.state.itemDropdown||(this.moveFocus?this.moveFocus(t):ReactDOM.findDOMNode(this).focus())})}};AlloyEditor.WidgetDropdown=e}(),function(){var e={cancelExclusive:function(e){this.state.itemExclusive===e&&this.setState({itemExclusive:null})},componentWillReceiveProps:function(e){this.setState({itemExclusive:null})},filterExclusive:function(e){return e.filter(function(e){return this.state.itemExclusive?this.state.itemExclusive===e.key?e:void 0:e}.bind(this))},mergeExclusiveProps:function(e,t){return CKEDITOR.tools.merge(e,{cancelExclusive:this.cancelExclusive.bind(this,t),renderExclusive:this.state.itemExclusive===t,requestExclusive:this.requestExclusive.bind(this,t)})},requestExclusive:function(e){this.setState({itemExclusive:e})}};AlloyEditor.WidgetExclusive=e}(),function(){var e=0,t=1,n=-1,i=0,o=1,a=2,r={propTypes:{onDismiss:React.PropTypes.func,circular:React.PropTypes.bool.isRequired,focusFirstChild:React.PropTypes.bool,descendants:React.PropTypes.string.isRequired,keys:React.PropTypes.object.isRequired},componentDidMount:function(){this._refresh()},componentDidUpdate:function(){this._refresh()},focus:function(e){if((!e||this._isValidTarget(e.target))&&this._descendants){var t=this._descendants[this._activeDescendant];document.activeElement===t||this.props.focusFirstChild||this._descendants.indexOf(document.activeElement)===-1&&t.focus(),e&&(e.stopPropagation(),e.preventDefault())}},handleKey:function(e){if(this._isValidTarget(e.target)&&this._descendants){var t=this._getFocusAction(e);t.type&&(e.stopPropagation(),e.preventDefault(),t.type===o&&this._moveFocus(t.direction),t.type===a&&this.props.onDismiss(t.direction))}},moveFocus:function(e){e=AlloyEditor.Lang.isNumber(e)?e:0,this._moveFocus(e)},_getFocusAction:function(e){var t={type:i};if(this.props.keys){var n=this._getFocusMoveDirection(e);n&&(t.direction=n,t.type=o);var r=this._getFocusDismissAction(e,n);r.dismiss&&(t.direction=r.direction,t.type=a)}return t},_getFocusDismissAction:function(e,i){var o={direction:i,dismiss:!1};return this.props.onDismiss&&(this._isValidKey(e.keyCode,this.props.keys.dismiss)&&(o.dismiss=!0),this._isValidKey(e.keyCode,this.props.keys.dismissNext)&&(o.dismiss=!0,o.direction=t),this._isValidKey(e.keyCode,this.props.keys.dismissPrev)&&(o.dismiss=!0,o.direction=n),o.dismiss||this.props.circular||!i||(o.dismiss=i===n&&0===this._activeDescendant||i===t&&this._activeDescendant===this._descendants.length-1)),o},_getFocusMoveDirection:function(i){var o=e;return this._isValidKey(i.keyCode,this.props.keys.next)&&(o=t),this._isValidKey(i.keyCode,this.props.keys.prev)&&(o=n),i.shifKey&&(o*=-1),o},_isValidKey:function(e,t){return AlloyEditor.Lang.isArray(t)?t.indexOf(e)!==-1:e===t},_isValidTarget:function(e){var t=e.tagName.toLowerCase();return"input"!==t&&"select"!==t&&"textarea"!==t},_moveFocus:function(e){var t=this._descendants.length,n=this._descendants[this._activeDescendant];n.setAttribute("tabIndex",-1),this._activeDescendant+=e,this.props.circular?this._activeDescendant=(this._activeDescendant%t+t)%t:this._activeDescendant=Math.max(Math.min(this._activeDescendant,t-1),0),n=this._descendants[this._activeDescendant],n.setAttribute("tabIndex",0),n.focus()},_refresh:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=e.querySelectorAll(this.props.descendants),n=[];this._descendants=[],Array.prototype.slice.call(t).forEach(function(e){var t=e.getAttribute("data-tabindex");t?n.push(e):this._descendants.push(e)}.bind(this)),n=n.sort(function(e,t){return AlloyEditor.Lang.toInt(e.getAttribute("data-tabindex"))>AlloyEditor.Lang.toInt(t.getAttribute("data-tabindex"))}),this._descendants=n.concat(this._descendants),this._activeDescendant=0,this._descendants.some(function(e,t){if("0"===e.getAttribute("tabindex"))return this._activeDescendant=t,this.focus(),!0}.bind(this))}}};AlloyEditor.WidgetFocusManager=r}(),function(){var e={propTypes:{editorEvent:React.PropTypes.object},getInteractionPoint:function(){var e=this.props.editorEvent?this.props.editorEvent.data:null;if(e){var t=e.selectionData,n=e.nativeEvent,i={x:e.nativeEvent.pageX,y:t.region.top},o=t.region.direction,a=t.region.endRect,r=t.region.startRect;a&&r&&r.top===a.top&&(o=CKEDITOR.SELECTION_BOTTOM_TO_TOP);var s,l;return i.x&&i.y?(s=this._getXPoint(t,i.x),l=o===CKEDITOR.SELECTION_BOTTOM_TO_TOP?Math.min(i.y,t.region.top):Math.max(i.y,this._getYPoint(t,n))):(s=t.region.left+t.region.width/2,l=o===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this._getYPoint(t,n):t.region.top),{direction:o,x:s,y:l}}},_getXPoint:function(e,t){var n,i=e.region,o=i.startRect?i.startRect.left:i.left,a=i.endRect?i.endRect.right:i.right;if(ot)n=t;else{var r=Math.abs(o-t),s=Math.abs(a-t);n=rt.width&&(n-=e.left+e.width-t.width),i<0&&(i=0),{x:n,y:i}},getWidgetXYPoint:function(e,t,n){var i=ReactDOM.findDOMNode(this),o=this.props.gutter;return n===CKEDITOR.SELECTION_TOP_TO_BOTTOM||n===CKEDITOR.SELECTION_BOTTOM_TO_TOP?(e=e-o.left-i.offsetWidth/2,t=n===CKEDITOR.SELECTION_TOP_TO_BOTTOM?t+o.top:t-i.offsetHeight-o.top):n!==CKEDITOR.SELECTION_LEFT_TO_RIGHT&&n!==CKEDITOR.SELECTION_RIGHT_TO_LEFT||(e=n===CKEDITOR.SELECTION_LEFT_TO_RIGHT?e+o.left+i.offsetHeight/2:e-3*i.offsetHeight/2-o.left,t=t-o.top-i.offsetHeight/2),e<0&&(e=0),t<0&&(t=0),[e,t]},isVisible:function(){var e=ReactDOM.findDOMNode(this);if(e){var t=new CKEDITOR.dom.element(e);return t.hasClass("alloy-editor-visible")}return!1},moveToPoint:function(e,t){var n=new CKEDITOR.dom.element(ReactDOM.findDOMNode(this));n.setStyles({left:e[0]+"px",top:e[1]+"px",opacity:0}),n.removeClass("alloy-editor-invisible"),this._animate(function(){n.addClass("ae-toolbar-transition"),n.addClass("alloy-editor-visible"),n.setStyles({left:t[0]+"px",top:t[1]+"px",opacity:1})})},show:function(){var e=ReactDOM.findDOMNode(this);if(!this.isVisible()&&e){var t=this.getInteractionPoint();if(t){var n,i,o,a,r=new CKEDITOR.dom.element(e);if(n=o=parseFloat(r.getStyle("left")),i=a=parseFloat(r.getStyle("top")),this.props.constrainToViewport){var s=this.getConstrainedPosition({height:parseFloat(e.offsetHeight),left:n,top:i,width:parseFloat(e.offsetWidth)});n=s.x,i=s.y}a=t.direction===CKEDITOR.SELECTION_TOP_TO_BOTTOM?this.props.selectionData.region.bottom:this.props.selectionData.region.top,this.moveToPoint([o,a],[n,i])}}},updatePosition:function(){var e=this.getInteractionPoint(),t=ReactDOM.findDOMNode(this);if(e&&t){var n=this.getWidgetXYPoint(e.x,e.y,e.direction);new CKEDITOR.dom.element(t).setStyles({left:n[0]+"px",top:n[1]+"px"})}},_animate:function(e){window.requestAnimationFrame?this._animationFrameId=window.requestAnimationFrame(e):e()}};AlloyEditor.WidgetPosition=e}(),function(){var e=React.createClass({displayName:"ButtonBold",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"bold"},getDefaultProps:function(){return{command:"bold",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+66},style:"coreStyles_bold"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.bold,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-bold",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.bold},React.createElement("span",{className:"ae-icon-bold"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonBold=e}(),function(){var e=React.createClass({displayName:"ButtonCameraImage",statics:{key:"cameraImage"},getDefaultProps:function(){return{videoWidth:320}},componentDidMount:function(){ReactDOM.findDOMNode(this.refs.buttonTakePhoto).focus()},componentWillUnmount:function(){this._stream&&(this._stream.stop?this._stream.stop():this._stream.getVideoTracks&&this._stream.getVideoTracks().forEach(function(e){e.stop()}),this._stream=null)},render:function(){var e=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return e.call(navigator,{video:!0,audio:!1},this._handleStreamSuccess,this._handleStreamError),React.createElement("div",{className:"ae-camera"},React.createElement("video",{ref:"videoContainer"},"Video stream not available."),React.createElement("button",{className:"ae-camera-shoot",onClick:this.takePhoto,ref:"buttonTakePhoto"},"Take photo"),React.createElement("canvas",{className:"ae-camera-canvas",ref:"canvasContainer"}))},takePhoto:function(){var e=ReactDOM.findDOMNode(this.refs.videoContainer),t=ReactDOM.findDOMNode(this.refs.canvasContainer),n=t.getContext("2d"),i=this._videoHeight,o=this.props.videoWidth;if(o&&i){t.width=o,t.height=i,n.drawImage(e,0,0,o,i);var a=t.toDataURL("image/png"),r=CKEDITOR.dom.element.createFromHtml(''),s=this.props.editor.get("nativeEditor");s.insertElement(r),this.props.cancelExclusive(),s.fire("actionPerformed",this),s.fire("imageCameraAdd",r)}},_handleStreamError:function(e){window.alert("An error occurred! "+e)},_handleStreamSuccess:function(e){var t=ReactDOM.findDOMNode(this.refs.videoContainer),n=ReactDOM.findDOMNode(this.refs.canvasContainer);t.addEventListener("canplay",function(e){var i=t.videoHeight/(t.videoWidth/this.props.videoWidth);isNaN(i)&&(i=this.props.videoWidth/(4/3)),t.setAttribute("width",this.props.videoWidth),t.setAttribute("height",i),n.setAttribute("width",this.props.videoWidth),n.setAttribute("height",i),this._videoHeight=i}.bind(this),!1),this._stream=e,navigator.mozGetUserMedia?t.mozSrcObject=e:t.src=(window.URL||window.webkitURL).createObjectURL(e),t.play(),ReactDOM.findDOMNode(this.refs.buttonTakePhoto).disabled=!1}});AlloyEditor.ButtonCameraImage=e}(),function(){var e=React.createClass({displayName:"ButtonCamera",propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"camera"},render:function(){if(this.props.renderExclusive)return React.createElement(AlloyEditor.ButtonCameraImage,this.props);var t=!(navigator.getUserMedia||navigator.webkitGetUserMedia&&"https"===location.protocol||navigator.mozGetUserMedia||navigator.msGetUserMedia),n=t?AlloyEditor.Strings.cameraDisabled:AlloyEditor.Strings.camera;return React.createElement("button",{"aria-label":n,className:"ae-button","data-type":"button-image-camera",disabled:t,onClick:this.props.requestExclusive.bind(e.key),tabIndex:this.props.tabIndex,title:n},React.createElement("span",{className:"ae-icon-camera"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCamera=e}(),function(){var e=React.createClass({displayName:"ButtonCode",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"code"},getDefaultProps:function(){return{style:{element:"pre"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.code,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-code",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.code},React.createElement("span",{className:"ae-icon-code"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonCode=e}(),function(){var e=React.createClass({displayName:"ButtonCommandListItem",mixins:[AlloyEditor.ButtonCommand],propTypes:{description:React.PropTypes.string.isRequired,icon:React.PropTypes.string},statics:{key:"buttonCommandListItem"},render:function(){return React.createElement("button",{"aria-label":this.props.description,className:this._getClassName(),onClick:this.execCommand,tabIndex:this.props.tabIndex},this.props.description)},_getClassName:function(){var e="ae-toolbar-element";return this.props.icon&&(e+=" ae-icon-"+this.props.icon),e}});AlloyEditor.ButtonCommandListItem=e}(),function(){var e=React.createClass({displayName:"ButtonCommandsList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{commands:React.PropTypes.arrayOf(React.PropTypes.object),editor:React.PropTypes.object.isRequired,listId:React.PropTypes.string},statics:{key:"buttonCommandsList"},componentDidMount:function(){ReactDOM.findDOMNode(this).focus()},getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",id:this.props.listId,role:"listbox"},this._renderActions(this.props.commands)))},_renderActions:function(e){var t,n=this.props.editor;return e&&e.length&&(t=e.map(function(e){return React.createElement("li",{key:e.command,role:"option"},React.createElement(AlloyEditor.ButtonCommandListItem,{command:e.command,description:"string"==typeof e.label?e.label:e.label(),editor:n}))})),t}});AlloyEditor.ButtonCommandsList=e}(),function(){var e=React.createClass({displayName:"ButtonDropdown",mixins:[AlloyEditor.WidgetFocusManager],getDefaultProps:function(){return{circular:!1,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},statics:{key:"dropdown"},render:function(){return React.createElement("div",{className:"ae-dropdown ae-arrow-box ae-arrow-box-top-left",onFocus:this.focus,onKeyDown:this.handleKey,tabIndex:"0"},React.createElement("ul",{className:"ae-listbox",role:"listbox"},this.props.children))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonDropdown=e}(),function(){var e=13,t=27,n=React.createClass({displayName:"ButtonEmbedEdit",propTypes:{editor:React.PropTypes.object.isRequired},statics:{key:"embedEdit"},componentDidMount:function(){(this.props.renderExclusive||this.props.manualSelection)&&(window.requestAnimationFrame?window.requestAnimationFrame(this._focusLinkInput):setTimeout(this._focusLinkInput,0))},componentWillReceiveProps:function(e){this.replaceState(this.getInitialState())},getInitialState:function(){var e,t=this.props.editor.get("nativeEditor"),n=t.getSelection();if(n){var i=n.getSelectedElement();i&&(e=i.findOne('[data-widget="ae_embed"]'))}var o=e?e.getAttribute("data-ae-embed-url"):"";return{element:e,initialLink:{href:o},linkHref:o}},render:function(){var e={opacity:this.state.linkHref?1:0};return React.createElement("div",{className:"ae-container-edit-link"},React.createElement("button",{"aria-label":AlloyEditor.Strings.deleteEmbed,className:"ae-button","data-type":"button-embed-remove",disabled:!this.state.element,onClick:this._removeEmbed,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.deleteEmbed},React.createElement("span",{className:"ae-icon-bin"})),React.createElement("div",{className:"ae-container-input xxl"},React.createElement("input",{className:"ae-input",onChange:this._handleLinkHrefChange,onKeyDown:this._handleKeyDown,placeholder:AlloyEditor.Strings.editLink,ref:"linkInput",type:"text",value:this.state.linkHref}),React.createElement("button",{"aria-label":AlloyEditor.Strings.clearInput,className:"ae-button ae-icon-remove",onClick:this._clearLink,style:e,title:AlloyEditor.Strings.clear})),React.createElement("button",{"aria-label":AlloyEditor.Strings.confirm,className:"ae-button",disabled:!this._isValidState(),onClick:this._embedLink,title:AlloyEditor.Strings.confirm},React.createElement("span",{className:"ae-icon-ok"})))},_clearLink:function(){this.setState({linkHref:""})},_embedLink:function(){var e=this.props.editor.get("nativeEditor");e.execCommand("embedUrl",{url:this.state.linkHref}),this.props.cancelExclusive()},_focusLinkInput:function(){ReactDOM.findDOMNode(this.refs.linkInput).focus()},_handleKeyDown:function(n){if(n.keyCode!==e&&n.keyCode!==t||n.preventDefault(),n.keyCode===e)this._embedLink();else if(n.keyCode===t){var i=this.props.editor.get("nativeEditor");this.props.cancelExclusive(),i.fire("actionPerformed",this)}},_handleLinkHrefChange:function(e){this.setState({linkHref:e.target.value})},_isValidState:function(){var e=this.state.linkHref&&this.state.linkHref!==this.state.initialLink.href;return e},_removeEmbed:function(){var e=this.props.editor.get("nativeEditor"),t=this.state.element.getAscendant(function(e){return e.hasClass("cke_widget_wrapper")});t.remove(),e.fire("actionPerformed",this)}});AlloyEditor.Buttons[n.key]=AlloyEditor.ButtonEmbedEdit=n}(),function(){var e=React.createClass({displayName:"ButtonEmbed",mixins:[AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"embed"},getDefaultProps:function(){return{keystroke:{fn:"_requestExclusive",keys:CKEDITOR.CTRL+CKEDITOR.SHIFT+76}}},render:function(){return this.props.renderExclusive?React.createElement(AlloyEditor.ButtonEmbedEdit,this.props):React.createElement("button",{"aria-label":AlloyEditor.Strings.link,className:"ae-button","data-type":"button-embed",onClick:this._requestExclusive,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.link},React.createElement("span",{className:"ae-icon-add"}))},_requestExclusive:function(){this.props.requestExclusive(e.key)}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonEmbed=e}(),function(){var e=React.createClass({displayName:"ButtonH1",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"h1"},getDefaultProps:function(){return{style:{element:"h1"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h1,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h1",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h1},React.createElement("span",{className:"ae-icon-h1"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH1=e}(),function(){var e=React.createClass({displayName:"ButtonH2",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonActionStyle],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"h2"},getDefaultProps:function(){return{style:{element:"h2"}}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.h2,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-h2",onClick:this.applyStyle,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.h2 -},React.createElement("span",{className:"ae-icon-h2"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonH2=e}(),function(){var e=React.createClass({displayName:"ButtonHline",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonCommand],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"hline"},getDefaultProps:function(){return{command:"horizontalrule",style:{element:"hr"}}},render:function(){return React.createElement("button",{"aria-label":AlloyEditor.Strings.horizontalrule,className:"ae-button","data-type":"button-hline",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.horizontalrule},React.createElement("span",{className:"ae-icon-separator"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonHline=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignCenter",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageCenter"},getDefaultProps:function(){return{command:"justifycenter"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignCenter,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-center",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignCenter},React.createElement("span",{className:"ae-icon-align-center"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignCenter=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignLeft",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageLeft"},getDefaultProps:function(){return{command:"justifyleft"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignLeft,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-left",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignLeft},React.createElement("span",{className:"ae-icon-align-left"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignLeft=e}(),function(){var e=React.createClass({displayName:"ButtonImageAlignRight",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"imageRight"},getDefaultProps:function(){return{command:"justifyright"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.alignRight,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-image-align-right",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.alignRight},React.createElement("span",{className:"ae-icon-align-right"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImageAlignRight=e}(),function(){var e=React.createClass({displayName:"ButtonImage",propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"image"},render:function(){var e={display:"none"};return React.createElement("div",null,React.createElement("button",{"aria-label":AlloyEditor.Strings.image,className:"ae-button","data-type":"button-image",onClick:this.handleClick,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.image},React.createElement("span",{className:"ae-icon-image"})),React.createElement("input",{accept:"image/*",onChange:this._onInputChange,ref:"fileInput",style:e,type:"file"}))},handleClick:function(e){ReactDOM.findDOMNode(this.refs.fileInput).click()},_onInputChange:function(){var e=ReactDOM.findDOMNode(this.refs.fileInput);if(e.files.length){var t=new FileReader,n=e.files[0];t.onload=function(e){var t=this.props.editor.get("nativeEditor"),i=t.fire("beforeImageAdd",{imageFiles:n});if(i){var o=CKEDITOR.dom.element.createFromHtml('');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:n};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(n),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=React.createClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=React.createClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=React.createClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:React.PropTypes.func,autocompleteSelected:React.PropTypes.bool,term:React.PropTypes.string,setAutocompleteState:React.PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var n=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:n,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t');t.insertElement(o),t.fire("actionPerformed",this);var a={el:o,file:n};t.fire("imageAdd",a)}}.bind(this),t.readAsDataURL(n),e.value=""}}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonImage=e}(),function(){var e=React.createClass({displayName:"ButtonIndentBlock",mixins:[AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonCommandActive],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"indentBlock"},getDefaultProps:function(){return{command:"indent"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.indent,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-indent-block",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.indent},React.createElement("span",{className:"ae-icon-indent-block"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonIndentBlock=e}(),function(){var e=React.createClass({displayName:"ButtonItalic",mixins:[AlloyEditor.ButtonStyle,AlloyEditor.ButtonStateClasses,AlloyEditor.ButtonCommand,AlloyEditor.ButtonKeystroke],propTypes:{editor:React.PropTypes.object.isRequired,label:React.PropTypes.string,tabIndex:React.PropTypes.number},statics:{key:"italic"},getDefaultProps:function(){return{command:"italic",keystroke:{fn:"execCommand",keys:CKEDITOR.CTRL+73},style:"coreStyles_italic"}},render:function(){var e="ae-button "+this.getStateClasses();return React.createElement("button",{"aria-label":AlloyEditor.Strings.italic,"aria-pressed":e.indexOf("pressed")!==-1,className:e,"data-type":"button-italic",onClick:this.execCommand,tabIndex:this.props.tabIndex,title:AlloyEditor.Strings.italic},React.createElement("span",{className:"ae-icon-italic"}))}});AlloyEditor.Buttons[e.key]=AlloyEditor.ButtonItalic=e}(),function(){var e=React.createClass({displayName:"ButtonLinkAutocompleteList",mixins:[AlloyEditor.WidgetFocusManager],propTypes:{data:React.PropTypes.func,autocompleteSelected:React.PropTypes.bool,term:React.PropTypes.string,setAutocompleteState:React.PropTypes.func},statics:{key:"buttonLinkAutocompleteList"},componentWillReceiveProps:function(e){e.term&&e.term===this.props.term||(clearTimeout(this._timeout),e.term?this._timeout=setTimeout(this._updateItems,this.props.delay):this.setState({items:[]})),e.autocompleteSelected&&(setTimeout(this.focus,0),this.props.setAutocompleteState({selected:!1}))},componentWillUnmount:function(){clearTimeout(this._timeout)},getDefaultProps:function(){return{circular:!1,data:[],delay:100,descendants:".ae-toolbar-element",keys:{dismiss:[27],dismissNext:[39],dismissPrev:[37],next:[40],prev:[38]}}},getInitialState:function(){return{items:[]}},render:function(){return this.props.expanded&&this.state.items.length?React.createElement(AlloyEditor.ButtonDropdown,null,this._renderAutocompleteItems(this.state.items)):null},shouldComponentUpdate:function(e,t){return e.expanded!==this.props.expanded||e.term!==this.props.term||t.items!==this.state.items},_renderAutocompleteItems:function(e){e=e||[];var t=this.props.handleLinkAutocompleteClick;return e.map(function(e){var n=this.props.term===e.url?"ae-toolbar-element active":"ae-toolbar-element";return React.createElement("li",{key:e.url,role:"option"},React.createElement("button",{className:n,onClick:t,"data-value":e.url},e.title))}.bind(this))},_updateItems:function(){var e=this;if(this.props.term){var t=Promise.resolve(this.props.data(this.props.term));t.then(function(t){t.length&&!e.props.expanded&&e.props.toggleDropdown(),e.setState({items:t})})}}});AlloyEditor.ButtonLinkAutocompleteList=e}();var _extends=Object.assign||function(e){for(var t=1;t