0byt3m1n1
Path:
/
home
/
mgatv524
/
medcenter.mgaplay.com.br
/
web
/
dist
/
vendor
/
ckeditor
/
samples
/
toolbarconfigurator
/
js
/
[
Home
]
File: toolbarmodifier.js
(function(){function d(t,e){l.call(this,t,e),this.actualConfig=this.originalConfig=this.removedButtons=null,this.emptyVisible=!1,this.state="edit",this.toolbarButtons=[{text:{active:"Hide empty toolbar groups",inactive:"Show empty toolbar groups"},group:"edit",position:"left",cssClass:"button-a-soft",clickCallback:function(t,e){t[t.hasClass("button-a-background")?"removeClass":"addClass"]("button-a-background"),this._toggleVisibilityEmptyElements(),this.emptyVisible?t.setText(e.text.active):t.setText(e.text.inactive)}},{text:"Add row separator",group:"edit",position:"left",cssClass:"button-a-soft",clickCallback:function(){this._addSeparator()}},{text:"Select config",group:"config",position:"left",cssClass:"button-a-soft",clickCallback:function(){this.configContainer.findOne("textarea").$.select()}},{text:"Back to configurator",group:"config",position:"right",cssClass:"button-a-background",clickCallback:function(){if("paste"===this.state){var t=this.configContainer.findOne("textarea").getValue();(t=d.evaluateToolbarGroupsConfig(t))?this.setConfig(t):alert("Your pasted config is wrong.")}this.state="edit",this._showConfigurationTool(),this.showToolbarBtnsByGroupName(this.state)}},{text:'Get toolbar <span class="highlight">config</span>',group:"edit",position:"right",cssClass:"button-a-background icon-pos-left icon-download",clickCallback:function(){this.state="config",this._showConfig(),this.showToolbarBtnsByGroupName(this.state)}}],this.cachedActiveElement=null}var l=ToolbarConfigurator.AbstractToolbarModifier;ToolbarConfigurator.ToolbarModifier=d,d.prototype=Object.create(ToolbarConfigurator.AbstractToolbarModifier.prototype),d.prototype.getActualConfig=function(){var t=l.prototype.getActualConfig.call(this);if(t.toolbarGroups)for(var e=t.toolbarGroups.length,o=0;o<e;o+=1)t.toolbarGroups[o]=d.parseGroupToConfigValue(t.toolbarGroups[o]);return t},d.prototype._onInit=function(t,e,o){o=!0===o,l.prototype._onInit.call(this,void 0,e),this.removedButtons=[],o?this.removedButtons=this.actualConfig.removeButtons?this.actualConfig.removeButtons.split(","):[]:"removeButtons"in this.originalConfig?this.removedButtons=this.originalConfig.removeButtons?this.originalConfig.removeButtons.split(","):[]:(this.originalConfig.removeButtons="",this.removedButtons=[]),this.actualConfig.toolbarGroups||(this.actualConfig.toolbarGroups=this.fullToolbarEditor.getFullToolbarGroupsConfig()),this._fixGroups(this.actualConfig),this._calculateTotalBtns(),this._createModifier(),this._refreshMoveBtnsAvalibility(),this._refreshBtnTabIndexes(),"function"==typeof t&&t(this.mainContainer)},d.prototype._showConfigurationTool=function(){this.configContainer.addClass("hidden"),this.modifyContainer.removeClass("hidden")},d.prototype._showConfig=function(){var t,e,o=this.getActualConfig();if(o.toolbarGroups){t=o.toolbarGroups;for(var n=this.cfg.trimEmptyGroups,r=[],i=t.length,a=0;a<i;a++){var s=t[a];if("/"===s)r.push("'/'");else{if(n)for(var u=s.groups.length;u--;)0===d.getTotalSubGroupButtonsNumber(s.groups[u],this.fullToolbarEditor)&&s.groups.splice(u,1);n&&0===s.groups.length||r.push(l.stringifyJSONintoOneLine(s,{addSpaces:!0,noQuotesOnKey:!0,singleQuotes:!0}))}}t="\n\t\t"+r.join(",\n\t\t")}o.removeButtons&&(e=o.removeButtons),o=['<textarea class="configCode" readonly>CKEDITOR.editorConfig = function( config ) {\n',t?"\tconfig.toolbarGroups = ["+t+"\n\t];":"",e?"\n\n":"",e?"\tconfig.removeButtons = '"+e+"';":"","\n};</textarea>"].join(""),this.modifyContainer.addClass("hidden"),this.configContainer.removeClass("hidden"),this.configContainer.setHtml(o)},d.prototype._toggleVisibilityEmptyElements=function(){this.modifyContainer.hasClass("empty-visible")?(this.modifyContainer.removeClass("empty-visible"),this.emptyVisible=!1):(this.modifyContainer.addClass("empty-visible"),this.emptyVisible=!0),this._refreshMoveBtnsAvalibility()},d.prototype._createModifier=function(){function t(){e._highlightGroup(this.data("name"))}var e=this;l.prototype._createModifier.call(this),this.modifyContainer.setHtml(this._toolbarConfigToListString());var o=this.modifyContainer.find('li[data-type="group"]');this.modifyContainer.on("mouseleave",(function(){this._dehighlightActiveToolGroup()}),this);for(var n=o.count(),r=0;r<n;r+=1)o.getItem(r).on("mouseenter",t);return CKEDITOR.document.on("keypress",(function(t){t=32===(t=t.data.$.keyCode)||13===t;var o=new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);o.getAscendant((function(t){return t.$===e.mainContainer.$}))&&t&&"button"===o.data("type")&&o.findOne("input").$.click()})),this.modifyContainer.on("click",(function(t){var o=t.data.$,n=new CKEDITOR.dom.element(o.target||o.srcElement);if(t=d.getGroupOrSeparatorLiAncestor(n)){if(e.cachedActiveElement=document.activeElement,n.$ instanceof HTMLInputElement)e._handleCheckboxClicked(n);else if(n.$ instanceof HTMLButtonElement&&(o.preventDefault?o.preventDefault():o.returnValue=!1,(o=e._handleAnchorClicked(n.$))&&"remove"==o.action))return;o=t.data("type"),t=t.data("name"),e._setActiveElement(o,t),e.cachedActiveElement&&e.cachedActiveElement.focus()}})),this.toolbarContainer||(this._createToolbar(),this.toolbarContainer.insertBefore(this.mainContainer.getChildren().getItem(0))),this.showToolbarBtnsByGroupName("edit"),this.configContainer||(this.configContainer=new CKEDITOR.dom.element("div"),this.configContainer.addClass("configContainer"),this.configContainer.addClass("hidden"),this.mainContainer.append(this.configContainer)),this.mainContainer},d.prototype.showToolbarBtnsByGroupName=function(t){if(this.toolbarContainer)for(var e=this.toolbarContainer.find("button"),o=e.count(),n=0;n<o;n+=1){var r=e.getItem(n);r.data("group")==t?r.removeClass("hidden"):r.addClass("hidden")}},d.parseGroupToConfigValue=function(t){if("separator"==t.type)return"/";var e=t.groups,o=e.length;delete t.totalBtns;for(var n=0;n<o;n+=1)e[n]=e[n].name;return t},d.getGroupOrSeparatorLiAncestor=function(t){return t.$ instanceof HTMLLIElement&&"group"==t.data("type")?t:d.getFirstAncestor(t,(function(t){return"group"==(t=t.data("type"))||"separator"==t}))},d.prototype._setActiveElement=function(t,e){if(this.currentActive&&this.currentActive.elem.removeClass("active"),null===t)this._dehighlightActiveToolGroup(),this.currentActive=null;else{var o=this.mainContainer.findOne('ul[data-type=table-body] li[data-type="'+t+'"][data-name="'+e+'"]');o.addClass("active"),this.currentActive={type:t,name:e,elem:o},"group"==t&&this._highlightGroup(e),"separator"==t&&this._dehighlightActiveToolGroup()}},d.prototype.getActiveToolGroup=function(){return this.editorInstance.container?this.editorInstance.container.findOne(".cke_toolgroup.active, .cke_toolbar.active"):null},d.prototype._dehighlightActiveToolGroup=function(){var t=this.getActiveToolGroup();t&&t.removeClass("active"),this.editorInstance.container&&this.editorInstance.container.removeClass("some-toolbar-active")},d.prototype._highlightGroup=function(t){this.editorInstance.container&&(t=this.getFirstEnabledButtonInGroup(t),t=this.editorInstance.container.findOne(".cke_button__"+t+", .cke_combo__"+t),this._dehighlightActiveToolGroup(),this.editorInstance.container&&this.editorInstance.container.addClass("some-toolbar-active"),t&&(t=d.getFirstAncestor(t,(function(t){return t.hasClass("cke_toolbar")})))&&t.addClass("active"))},d.prototype.getFirstEnabledButtonInGroup=function(t){var e=this.actualConfig.toolbarGroups;if(e=e[t=this.getGroupIndex(t)],-1===t)return null;t=e.groups?e.groups.length:0;for(var o=0;o<t;o+=1){var n=this.getFirstEnabledButtonInSubgroup(e.groups[o].name);if(n)return n}return null},d.prototype.getFirstEnabledButtonInSubgroup=function(t){for(var e=(t=this.fullToolbarEditor.buttonsByGroup[t])?t.length:0,o=0;o<e;o+=1){var n=t[o].name;if(!this.isButtonRemoved(n))return n}return null},d.prototype._handleCheckboxClicked=function(t){var e=t.getAscendant("li").data("name");t.$.checked?this._removeButtonFromRemoved(e):this._addButtonToRemoved(e)},d.prototype._handleAnchorClicked=function(t){var e,o,n=(t=new CKEDITOR.dom.element(t)).getAscendant("li"),r=n.getAscendant("ul"),i=n.data("type"),a=n.data("name"),s=t.data("direction"),l="up"===s?n.getPrevious():n.getNext();if(t.hasClass("disabled"))return null;if(t.hasClass("remove"))return n.remove(),this._removeSeparator(n.data("name")),this._setActiveElement(null),{action:"remove"};if(!t.hasClass("move")||!l)return{action:null};for("group"!==i&&"separator"!==i||(e=this._moveGroup(s,a)),"subgroup"===i&&(e=n.getAscendant("li").data("name"),e=this._moveSubgroup(s,e,a)),"up"===s&&n.insertBefore(r.getChild(e)),"down"===s&&n.insertAfter(r.getChild(e));n="up"===s?n.getPrevious():n.getNext();)if(this.emptyVisible||!n.hasClass("empty")){o=n;break}return o||(o='[data-direction="'+("up"===s?"down":"up")+'"]',this.cachedActiveElement=t.getParent().findOne(o)),this._refreshMoveBtnsAvalibility(),this._refreshBtnTabIndexes(),{action:"move"}},d.prototype._refreshMoveBtnsAvalibility=function(){function t(t){var o=t.count();for(r=0;r<o;r+=1)e._disableElementsInList(t.getItem(r))}for(var e=this,o=this.mainContainer.find("ul[data-type=table-body] li > p > span > button.move.disabled"),n=o.count(),r=0;r<n;r+=1)o.getItem(r).removeClass("disabled");t(this.mainContainer.find("ul[data-type=table-body]")),t(this.mainContainer.find("ul[data-type=table-body] > li > ul"))},d.prototype._refreshBtnTabIndexes=function(){for(var t=this.mainContainer.find('[data-tab="true"]'),e=t.count(),o=0;o<e;o++){var n=t.getItem(o),r=n.hasClass("disabled");n.setAttribute("tabindex",r?-1:o)}},d.prototype._disableElementsInList=function(t){function e(t){return!t.hasClass("empty")}if(t.getChildren().count()){var o;if(this.emptyVisible?(o=t.getFirst(),t=t.getLast()):(o=t.getFirst(e),t=t.getLast(e)),o)var n=o.findOne('p button[data-direction="up"]');if(t)var r=t.findOne('p button[data-direction="down"]');n&&(n.addClass("disabled"),n.setAttribute("tabindex","-1")),r&&(r.addClass("disabled"),r.setAttribute("tabindex","-1"))}},d.prototype.getGroupIndex=function(t){for(var e=this.actualConfig.toolbarGroups,o=e.length,n=0;n<o;n+=1)if(e[n].name===t)return n;return-1},d.prototype._addSeparator=function(){var t=this._determineSeparatorToAddIndex(),e=d.createSeparatorLiteral(),o=CKEDITOR.dom.element.createFromHtml(d.getToolbarSeparatorString(e));this.actualConfig.toolbarGroups.splice(t,0,e),o.insertBefore(this.modifyContainer.findOne("ul[data-type=table-body]").getChild(t)),this._setActiveElement("separator",e.name),this._refreshMoveBtnsAvalibility(),this._refreshBtnTabIndexes(),this._refreshEditor()},d.prototype._removeSeparator=function(t){var e=CKEDITOR.tools.indexOf(this.actualConfig.toolbarGroups,(function(e){return"separator"==e.type&&e.name==t}));this.actualConfig.toolbarGroups.splice(e,1),this._refreshMoveBtnsAvalibility(),this._refreshBtnTabIndexes(),this._refreshEditor()},d.prototype._determineSeparatorToAddIndex=function(){return this.currentActive?("group"==this.currentActive.elem.data("type")||"separator"==this.currentActive.elem.data("type")?this.currentActive.elem:this.currentActive.elem.getAscendant("li")).getIndex():0},d.prototype._moveElement=function(t,e,o){return o=this.emptyVisible?"down"==o?e+1:e-1:d.getFirstElementIndexWith(t,e,o,(function(t){return t.totalBtns||"separator"==t.type})),d.moveTo(o-e,t,e)},d.prototype._moveGroup=function(t,e){var o=this.getGroupIndex(e);return o=this._moveElement(this.actualConfig.toolbarGroups,o,t),this._refreshMoveBtnsAvalibility(),this._refreshBtnTabIndexes(),this._refreshEditor(),o},d.prototype._moveSubgroup=function(t,e,o){e=this.getGroupIndex(e),e=this.actualConfig.toolbarGroups[e];var n=CKEDITOR.tools.indexOf(e.groups,(function(t){return t.name==o}));return t=this._moveElement(e.groups,n,t),this._refreshEditor(),t},d.prototype._calculateTotalBtns=function(){for(var t=this.actualConfig.toolbarGroups,e=t.length;e--;){var o=t[e],n=d.getTotalGroupButtonsNumber(o,this.fullToolbarEditor);"separator"!=o.type&&(o.totalBtns=n)}},d.prototype._addButtonToRemoved=function(t){if(-1!=CKEDITOR.tools.indexOf(this.removedButtons,t))throw"Button already added to removed";this.removedButtons.push(t),this.actualConfig.removeButtons=this.removedButtons.join(","),this._refreshEditor()},d.prototype._removeButtonFromRemoved=function(t){if(-1===(t=CKEDITOR.tools.indexOf(this.removedButtons,t)))throw"Trying to remove button from removed, but not found";this.removedButtons.splice(t,1),this.actualConfig.removeButtons=this.removedButtons.join(","),this._refreshEditor()},d.parseGroupToConfigValue=function(t){if("separator"==t.type)return"/";var e=t.groups,o=e.length;delete t.totalBtns;for(var n=0;n<o;n+=1)e[n]=e[n].name;return t},d.getGroupOrSeparatorLiAncestor=function(t){return t.$ instanceof HTMLLIElement&&"group"==t.data("type")?t:d.getFirstAncestor(t,(function(t){return"group"==(t=t.data("type"))||"separator"==t}))},d.createSeparatorLiteral=function(){return{type:"separator",name:"separator"+CKEDITOR.tools.getNextNumber()}},d.prototype._toolbarConfigToListString=function(){for(var t=this.actualConfig.toolbarGroups||[],e='<ul data-type="table-body">',o=t.length,n=0;n<o;n+=1){var r=t[n];e="separator"===r.type?e+d.getToolbarSeparatorString(r):e+this._getToolbarGroupString(r)}return e+="</ul>",d.getToolbarHeaderString()+e},d.prototype._getToolbarGroupString=function(t){var e,o=t.groups;e=""+['<li data-type="group" data-name="',t.name,'" ',t.totalBtns?"":'class="empty"',">"].join(""),e+=d.getToolbarElementPreString(t)+"<ul>",t=o.length;for(var n=0;n<t;n+=1){var r=o[n];e+=this._getToolbarSubgroupString(r,this.fullToolbarEditor.buttonsByGroup[r.name])}return e+"</ul></li>"},d.getToolbarSeparatorString=function(t){return['<li data-type="',t.type,'" data-name="',t.name,'">',d.getToolbarElementPreString("row separator"),"</li>"].join("")},d.getToolbarHeaderString=function(){return'<ul data-type="table-header"><li data-type="header"><p>Toolbars</p><ul><li><p>Toolbar groups</p><p>Toolbar group items</p></li></ul></li></ul>'},d.getFirstAncestor=function(t,e){for(var o=t.getParents(),n=o.length;n--;)if(e(o[n]))return o[n];return null},d.getFirstElementIndexWith=function(t,e,o,n){for(;"up"===o?e--:++e<t.length;)if(n(t[e]))return e;return-1},d.moveTo=function(t,e,o){var n;return-1!==o&&(n=e.splice(o,1)[0]),t=o+t,e.splice(t,0,n),t},d.getTotalSubGroupButtonsNumber=function(t,e){var o=e.buttonsByGroup["string"==typeof t?t:t.name];return o?o.length:0},d.getTotalGroupButtonsNumber=function(t,e){for(var o=0,n=t.groups,r=n?n.length:0,i=0;i<r;i+=1)o+=d.getTotalSubGroupButtonsNumber(n[i],e);return o},d.prototype._getToolbarSubgroupString=function(t,e){var o;o=""+['<li data-type="subgroup" data-name="',t.name,'" ',t.totalBtns?"":'class="empty" ',">"].join(""),o+=d.getToolbarElementPreString(t.name),o+="<ul>";for(var n=e?e.length:0,r=0;r<n;r+=1)o+=this.getButtonString(e[r]);return o+"</ul></li>"},d.prototype._getConfigButtonName=function(t){var e,o=this.fullToolbarEditor.editorInstance.ui.items;for(e in o)if(o[e].name==t)return e;return null},d.prototype.isButtonRemoved=function(t){return-1!=CKEDITOR.tools.indexOf(this.removedButtons,this._getConfigButtonName(t))},d.prototype.getButtonString=function(t){var e=this.isButtonRemoved(t.name)?"":'checked="checked"';return['<li data-tab="true" data-type="button" data-name="',this._getConfigButtonName(t.name),'"><label title="',t.label,'" ><input tabindex="-1"type="checkbox"',e,"/>",t.$.getOuterHtml(),"</label></li>"].join("")},d.getToolbarElementPreString=function(t){return['<p><span><button title="Move element upward" data-tab="true" data-direction="up" class="move icon-up-big"></button><button title="Move element downward" data-tab="true" data-direction="down" class="move icon-down-big"></button>',"row separator"==(t=t.name?t.name:t)?'<button title="Remove element" data-tab="true" class="remove icon-trash"></button>':"",t,"</span></p>"].join("")},d.evaluateToolbarGroupsConfig=function(a){return function(a){var c={},d;try{d=eval("("+a+")")}catch(f){try{d=eval(a)}catch(t){return null}}return c.toolbarGroups&&"number"==typeof c.toolbarGroups.length?JSON.stringify(c):d&&"number"==typeof d.length?JSON.stringify({toolbarGroups:d}):d&&d.toolbarGroups?JSON.stringify(d):null}(a)}})();