0byt3m1n1
Path:
/
home
/
mgatv524
/
medcenter.mgaplay.com.br
/
web
/
dist
/
vendor
/
ckeditor
/
samples
/
toolbarconfigurator
/
js
/
[
Home
]
File: toolbartextmodifier.js
!function(){function t(t){o.call(this,t),this.hintContainer=this.codeContainer=null}var o=ToolbarConfigurator.AbstractToolbarModifier,e=ToolbarConfigurator.FullToolbarEditor;ToolbarConfigurator.ToolbarTextModifier=t,t.prototype=Object.create(o.prototype),t.prototype._onInit=function(t,e){o.prototype._onInit.call(this,void 0,e),this._createModifier(e?this.actualConfig:void 0),"function"==typeof t&&t(this.mainContainer)},t.prototype._createModifier=function(t){function r(t){if(null!==(r=i(t)).charsBetween){var o=s.getUnusedButtonsArray(s.actualConfig.toolbar,!0,r.charsBetween),e=t.getCursor(),r=CodeMirror.Pos(e.line,e.ch-r.charsBetween.length),a=t.getTokenAt(e);if("{"===t.getTokenAt({line:e.line,ch:a.start}).string&&(o=["name"]),0!==o.length)return new n(r,e,o)}}function n(t,o,e){this.from=t,this.to=o,this.list=e,this._handlers=[]}function i(t,o){var e={};e.cur=t.getCursor(),e.tok=t.getTokenAt(e.cur),e.char=o||e.tok.string.charAt(e.tok.string.length-1);var r=(r=t.getRange(CodeMirror.Pos(e.cur.line,0),e.cur).split("").reverse().join("")).replace(/(['|"]\w*['|"])/g,"");return e.charsBetween=r.match(/(^\w*)(['|"])/),e.charsBetween&&(e.endChar=e.charsBetween[2],e.charsBetween=e.charsBetween[1].split("").reverse().join("")),e}function a(t){return setTimeout((function(){t.state.completionActive||CodeMirror.showHint(t,r,{hintsClass:"toolbar-modifier",completeSingle:!1})}),100),CodeMirror.Pass}var s=this;this._createToolbar(),this.toolbarContainer&&this.mainContainer.append(this.toolbarContainer),o.prototype._createModifier.call(this),this._setupActualConfig(t),t=this.actualConfig.toolbar,t=["CKEDITOR.editorConfig = function( config ) {\n",t=CKEDITOR.tools.isArray(t)?"\tconfig.toolbar = [\n\t\t"+e.map(t,(function(t){return o.stringifyJSONintoOneLine(t,{addSpaces:!0,noQuotesOnKey:!0,singleQuotes:!0})})).join(",\n\t\t")+"\n\t];":"config.toolbar = [];","\n};"].join("");var l=new CKEDITOR.dom.element("div");l.addClass("codemirror-wrapper"),this.modifyContainer.append(l),this.codeContainer=CodeMirror(l.$,{mode:{name:"javascript",json:!0},lineNumbers:!1,lineWrapping:!0,viewportMargin:1/0,value:t,smartIndent:!1,indentWithTabs:!0,indentUnit:4,tabSize:4,theme:"neo",extraKeys:{Left:a,Right:a,"'''":a,"'\"'":a,Backspace:a,Delete:a,"Shift-Tab":"indentLess"}}),this.codeContainer.on("endCompletion",(function(t,o){var e=i(t);void 0!==o&&t.replaceSelection(e.endChar)})),this.codeContainer.on("change",(function(){var t=s.codeContainer.getValue();null!==(t=s._evaluateValue(t))?(s.actualConfig.toolbar=t.toolbar?t.toolbar:s.actualConfig.toolbar,s._fillHintByUnusedElements(),s._refreshEditor(),s.mainContainer.removeClass("invalid")):s.mainContainer.addClass("invalid")})),this.hintContainer=new CKEDITOR.dom.element("div"),this.hintContainer.addClass("toolbarModifier-hints"),this._fillHintByUnusedElements(),this.hintContainer.insertBefore(l)},t.prototype._fillHintByUnusedElements=function(){var t=this.getUnusedButtonsArray(this.actualConfig.toolbar,!0),o=(t=this.groupButtonNamesByGroup(t),e.map(t,(function(t){var o=e.map(t.buttons,(function(t){return"<code>"+t+"</code> "})).join("");return["<dt><code>",t.name,"</code></dt><dd>",o,"</dd>"].join("")})).join(" ")),r='<dt class="list-header">Toolbar group</dt><dd class="list-header">Unused items</dd>';t.length||(r="<p>All items are in use.</p>"),this.codeContainer.refresh(),this.hintContainer.setHtml("<h3>Unused toolbar items</h3><dl>"+r+o+"</dl>")},t.prototype.getToolbarGroupByButtonName=function(t){var o,e=this.fullToolbarEditor.buttonNamesByGroup;for(o in e)for(var r=e[o],n=r.length;n--;)if(t===r[n])return o;return null},t.prototype.getUnusedButtonsArray=function(o,r,n){r=!0===r;var i=t.mapToolbarCfgToElementsList(o);return o=Object.keys(this.fullToolbarEditor.editorInstance.ui.items),o=e.filter(o,(function(t){var o="-"===t;return t=void 0===n||0===t.toLowerCase().indexOf(n.toLowerCase()),!o&&t})),o=e.filter(o,(function(t){return-1==CKEDITOR.tools.indexOf(i,t)})),r&&o.sort(),o},t.prototype.groupButtonNamesByGroup=function(t){var o,r=[],n=JSON.parse(JSON.stringify(this.fullToolbarEditor.buttonNamesByGroup));for(o in n){var i=n[o];(i=e.filter(i,(function(o){return-1!==CKEDITOR.tools.indexOf(t,o)}))).length&&r.push({name:o,buttons:i})}return r},t.mapToolbarCfgToElementsList=function(t){function o(t){return"-"!==t}for(var r=[],n=t.length,i=0;i<n;i+=1)t[i]&&"string"!=typeof t[i]&&(r=r.concat(e.filter(t[i].items,o)));return r},t.prototype._setupActualConfig=function(t){t=t||this.editorInstance.config,CKEDITOR.tools.isArray(t.toolbar)||(t.toolbarGroups||(t.toolbarGroups=this.fullToolbarEditor.getFullToolbarGroupsConfig(!0)),this._fixGroups(t),t.toolbar=this._mapToolbarGroupsToToolbar(t.toolbarGroups,this.actualConfig.removeButtons),this.actualConfig.toolbar=t.toolbar,this.actualConfig.removeButtons="")},t.prototype._mapToolbarGroupsToToolbar=function(t,o){o="string"==typeof(o=o||this.editorInstance.config.removedBtns)?o.split(","):[];for(var e=t.length;e--;){var r=this._mapToolbarSubgroup(t[e],o);"separator"===t[e].type?t[e]="/":CKEDITOR.tools.isArray(r)&&0===r.length?t.splice(e,1):t[e]="string"==typeof r?r:{name:t[e].name,items:r}}return t},t.prototype._mapToolbarSubgroup=function(t,o){if("string"==typeof t)return t;for(var e=t.groups?t.groups.length:0,r=[],n=0;n<e;n+=1){var i=t.groups[n],a=(i=this.fullToolbarEditor.buttonsByGroup["string"==typeof i?i:i.name]||[],(i=this._mapButtonsToButtonsNames(i,o)).length);r=r.concat(i),a&&r.push("-")}return"-"==r[r.length-1]&&r.pop(),r},t.prototype._mapButtonsToButtonsNames=function(t,o){for(var e=t.length;e--;){var r="string"==typeof(r=t[e])?r:this.fullToolbarEditor.getCamelCasedButtonName(r.name);-1!==CKEDITOR.tools.indexOf(o,r)?t.splice(e,1):t[e]=r}return t},t.prototype._evaluateValue=function(t){var o;try{var e={};Function("var CKEDITOR = {}; "+t+"; return CKEDITOR;")().editorConfig(e);for(var r=(o=e).toolbar.length;r--;)o.toolbar[r]||o.toolbar.splice(r,1)}catch(t){o=null}return o},t.prototype.mapToolbarToToolbarGroups=function(t){function o(t,o){t=t.slice();for(var e=o.length;e--;){var r=t.indexOf(o[e]);-1!==r&&t.splice(r,1)}return t}for(var e={},r=[],n=[],i=(r=t.length,0);i<r;i++)if("/"===t[i])n.push("/");else{var a=t[i].items,s={};s.name=t[i].name,s.groups=[];for(var l=a.length,u=0;u<l;u++){var c=a[u];if("-"!==c){var f=this.getToolbarGroupByButtonName(c);-1===s.groups.indexOf(f)&&s.groups.push(f),e[f]=e[f]||{},(f=e[f].buttons=e[f].buttons||{})[c]=f[c]||{used:0,origin:s.name},f[c].used++}}n.push(s)}return r=function(t,e){var r,n=[];for(r in t){var i=t[r],a=e[r].slice();n=n.concat(o(a,Object.keys(i.buttons)))}return n}(e,this.fullToolbarEditor.buttonNamesByGroup),{toolbarGroups:n,removeButtons:r.join(",")}}}();