Liferay.Loader.define("dynamic-data-mapping-form-field-type$liferay-ckeditor@4.18.0-liferay.1/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier", ['module', 'exports', 'require'], function (module, exports, require) {
  var define = undefined;
  var global = window;
  {
    "function" != typeof Object.create && function () {
      var a = function () {};Object.create = function (b) {
        if (1 < arguments.length) throw Error("Second argument not supported");if (null === b) throw Error("Cannot set a null [[Prototype]]");if ("object" != typeof b) throw TypeError("Argument must be an object");a.prototype = b;return new a();
      };
    }();
    CKEDITOR.plugins.add("toolbarconfiguratorarea", { afterInit: function (a) {
        a.addMode("wysiwyg", function (b) {
          var c = CKEDITOR.dom.element.createFromHtml('\x3cdiv class\x3d"cke_wysiwyg_div cke_reset" hidefocus\x3d"true"\x3e\x3c/div\x3e');a.ui.space("contents").append(c);c = a.editable(c);c.detach = CKEDITOR.tools.override(c.detach, function (b) {
            return function () {
              b.apply(this, arguments);this.remove();
            };
          });a.setData(a.getData(1), b);a.fire("contentDom");
        });a.dataProcessor.toHtml = function (b) {
          return b;
        };a.dataProcessor.toDataFormat = function (b) {
          return b;
        };
      } });Object.keys || (Object.keys = function () {
      var a = Object.prototype.hasOwnProperty,
          b = !{ toString: null }.propertyIsEnumerable("toString"),
          c = "toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "),
          e = c.length;return function (d) {
        if ("object" !== typeof d && ("function" !== typeof d || null === d)) throw new TypeError("Object.keys called on non-object");var g = [],
            f;for (f in d) a.call(d, f) && g.push(f);if (b) for (f = 0; f < e; f++) a.call(d, c[f]) && g.push(c[f]);return g;
      };
    }());
    (function () {
      function a(b, c) {
        this.cfg = c || {};this.hidden = !1;this.editorId = b;this.fullToolbarEditor = new ToolbarConfigurator.FullToolbarEditor();this.actualConfig = this.originalConfig = this.mainContainer = null;this.isEditableVisible = this.waitForReady = !1;this.toolbarContainer = null;this.toolbarButtons = [];
      }ToolbarConfigurator.AbstractToolbarModifier = a;a.prototype.setConfig = function (b) {
        this._onInit(void 0, b, !0);
      };a.prototype.init = function (b) {
        var c = this;this.mainContainer = new CKEDITOR.dom.element("div");if (null !== this.fullToolbarEditor.editorInstance) throw "Only one instance of ToolbarModifier is allowed";this.editorInstance || this._createEditor(!1);this.editorInstance.once("loaded", function () {
          c.fullToolbarEditor.init(function () {
            c._onInit(b);if ("function" == typeof c.onRefresh) c.onRefresh();
          }, c.editorInstance.config);
        });return this.mainContainer;
      };a.prototype._onInit = function (b, c) {
        this.originalConfig = this.editorInstance.config;this.actualConfig = c ? JSON.parse(c) : JSON.parse(JSON.stringify(this.originalConfig));if (!this.actualConfig.toolbarGroups && !this.actualConfig.toolbar) {
          for (var a = this.actualConfig, d = this.editorInstance.toolbar, g = [], f = d.length, k = 0; k < f; k++) {
            var h = d[k];"string" == typeof h ? g.push(h) : g.push({ name: h.name, groups: h.groups ? h.groups.slice() : [] });
          }a.toolbarGroups = g;
        }"function" === typeof b && b(this.mainContainer);
      };a.prototype._createModifier = function () {
        this.mainContainer.addClass("unselectable");this.modifyContainer && this.modifyContainer.remove();this.modifyContainer = new CKEDITOR.dom.element("div");this.modifyContainer.addClass("toolbarModifier");
        this.mainContainer.append(this.modifyContainer);return this.mainContainer;
      };a.prototype.getEditableArea = function () {
        return this.editorInstance.container.findOne("#" + this.editorInstance.id + "_contents");
      };a.prototype._hideEditable = function () {
        var b = this.getEditableArea();this.isEditableVisible = !1;this.lastEditableAreaHeight = b.getStyle("height");b.setStyle("height", "0");
      };a.prototype._showEditable = function () {
        this.isEditableVisible = !0;this.getEditableArea().setStyle("height", this.lastEditableAreaHeight || "auto");
      };
      a.prototype._toggleEditable = function () {
        this.isEditableVisible ? this._hideEditable() : this._showEditable();
      };a.prototype._refreshEditor = function () {
        function b() {
          c.editorInstance.destroy();c._createEditor(!0, c.getActualConfig());c.waitForReady = !1;
        }var c = this,
            a = this.editorInstance.status;this.waitForReady || ("unloaded" == a || "loaded" == a ? (this.waitForReady = !0, this.editorInstance.once("instanceReady", function () {
          b();
        }, this)) : b());
      };a.prototype._createEditor = function (b, c) {
        function e() {}var d = this;this.editorInstance = CKEDITOR.replace(this.editorId);this.editorInstance.on("configLoaded", function () {
          var b = d.editorInstance.config;c && CKEDITOR.tools.extend(b, c, !0);a.extendPluginsConfig(b);
        });this.editorInstance.on("uiSpace", function (b) {
          "top" != b.data.space && b.stop();
        }, null, null, -999);this.editorInstance.once("loaded", function () {
          var c = d.editorInstance.ui.instances,
              a;for (a in c) c[a] && (c[a].click = e, c[a].onClick = e);d.isEditableVisible || d._hideEditable();d.currentActive && d.currentActive.name && d._highlightGroup(d.currentActive.name);
          d.hidden ? d.hideUI() : d.showUI();if (b && "function" === typeof d.onRefresh) d.onRefresh();
        });
      };a.prototype.getActualConfig = function () {
        return JSON.parse(JSON.stringify(this.actualConfig));
      };a.prototype._createToolbar = function () {
        if (this.toolbarButtons.length) {
          this.toolbarContainer = new CKEDITOR.dom.element("div");this.toolbarContainer.addClass("toolbar");for (var b = this.toolbarButtons.length, c = 0; c < b; c += 1) this._createToolbarBtn(this.toolbarButtons[c]);
        }
      };a.prototype._createToolbarBtn = function (b) {
        var c = ToolbarConfigurator.FullToolbarEditor.createButton("string" === typeof b.text ? b.text : b.text.inactive, b.cssClass);this.toolbarContainer.append(c);c.data("group", b.group);c.addClass(b.position);c.on("click", function () {
          b.clickCallback.call(this, c, b);
        }, this);return c;
      };a.prototype._fixGroups = function (b) {
        b = b.toolbarGroups || [];for (var c = b.length, a = 0; a < c; a += 1) {
          var d = b[a];"/" == d ? (d = b[a] = {}, d.type = "separator", d.name = "separator" + CKEDITOR.tools.getNextNumber()) : (d.groups = d.groups || [], -1 == CKEDITOR.tools.indexOf(d.groups, d.name) && (this.editorInstance.ui.addToolbarGroup(d.name, d.groups[d.groups.length - 1], d.name), d.groups.push(d.name)), this._fixSubgroups(d));
        }
      };a.prototype._fixSubgroups = function (b) {
        b = b.groups;for (var c = b.length, a = 0; a < c; a += 1) {
          var d = b[a];b[a] = { name: d, totalBtns: ToolbarConfigurator.ToolbarModifier.getTotalSubGroupButtonsNumber(d, this.fullToolbarEditor) };
        }
      };a.stringifyJSONintoOneLine = function (b, a) {
        a = a || {};var e = JSON.stringify(b, null, ""),
            e = e.replace(/\n/g, "");a.addSpaces && (e = e.replace(/(\{|:|,|\[|\])/g, function (a) {
          return a + " ";
        }), e = e.replace(/(\])/g, function (a) {
          return " " + a;
        }));a.noQuotesOnKey && (e = e.replace(/"(\w*)":/g, function (a, b) {
          return b + ":";
        }));a.singleQuotes && (e = e.replace(/\"/g, "'"));return e;
      };a.prototype.hideUI = function () {
        this.hidden = !0;this.mainContainer.hide();this.editorInstance.container && this.editorInstance.container.hide();
      };a.prototype.showUI = function () {
        this.hidden = !1;this.mainContainer.show();this.editorInstance.container && this.editorInstance.container.show();
      };a.extendPluginsConfig = function (a) {
        var c = a.extraPlugins;a.extraPlugins = (c ? c + "," : "") + "toolbarconfiguratorarea";
      };
    })();
  }
});
//# sourceMappingURL=abstracttoolbarmodifier.js.map