/* Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ CKEDITOR.dialog.add("cellProperties", function(g) { function k(a) { return { isSpacer: !0, type: "html", html: "\x26nbsp;", requiredContent: a ? a : void 0 }; } function r() { return { type: "vbox", padding: 0, children: [] }; } function t(a) { return { requiredContent: "td{" + a + "}", type: "hbox", widths: ["70%", "30%"], children: [ { type: "text", id: a, width: "100px", label: d[a], validate: n.number(c["invalid" + CKEDITOR.tools.capitalize(a)]), onLoad: function() { var b = this.getDialog() .getContentElement("info", a + "Type") .getElement(), e = this.getInputElement(), c = e.getAttribute("aria-labelledby"); e.setAttribute("aria-labelledby", [c, b.$.id].join(" ")); }, setup: f(function(b) { var e = parseFloat(b.getAttribute(a), 10); b = parseFloat(b.getStyle(a), 10); if (!isNaN(b)) return b; if (!isNaN(e)) return e; }), commit: function(b) { var e = parseFloat(this.getValue(), 10), c = this.getDialog().getValueOf("info", a + "Type") || u(b, a); isNaN(e) ? b.removeStyle(a) : b.setStyle(a, e + c); b.removeAttribute(a); }, default: "" }, { type: "select", id: a + "Type", label: g.lang.table[a + "Unit"], labelStyle: "visibility:hidden;display:block;width:0;overflow:hidden", default: "px", items: [[p.widthPx, "px"], [p.widthPc, "%"]], setup: f(function(b) { return u(b, a); }) } ] }; } function f(a) { return function(b) { for (var e = a(b[0]), c = 1; c < b.length; c++) if (a(b[c]) !== e) { e = null; break; } "undefined" != typeof e && (this.setValue(e), CKEDITOR.env.gecko && "select" == this.type && !e && (this.getInputElement().$.selectedIndex = -1)); }; } function u(a, b) { var c = /^(\d+(?:\.\d+)?)(px|%)$/.exec(a.getStyle(b) || a.getAttribute(b)); if (c) return c[2]; } var p = g.lang.table, c = p.cell, d = g.lang.common, n = CKEDITOR.dialog.validate, w = "rtl" == g.lang.dir, l = g.plugins.colordialog, q = [ t("width"), t("height"), k(["td{width}", "td{height}"]), { type: "select", id: "wordWrap", requiredContent: "td{white-space}", label: c.wordWrap, default: "yes", items: [[c.yes, "yes"], [c.no, "no"]], setup: f(function(a) { var b = a.getAttribute("noWrap"); if ("nowrap" == a.getStyle("white-space") || b) return "no"; }), commit: function(a) { "no" == this.getValue() ? a.setStyle("white-space", "nowrap") : a.removeStyle("white-space"); a.removeAttribute("noWrap"); } }, k("td{white-space}"), { type: "select", id: "hAlign", requiredContent: "td{text-align}", label: c.hAlign, default: "", items: [ [d.notSet, ""], [d.left, "left"], [d.center, "center"], [d.right, "right"], [d.justify, "justify"] ], setup: f(function(a) { var b = a.getAttribute("align"); return a.getStyle("text-align") || b || ""; }), commit: function(a) { var b = this.getValue(); b ? a.setStyle("text-align", b) : a.removeStyle("text-align"); a.removeAttribute("align"); } }, { type: "select", id: "vAlign", requiredContent: "td{vertical-align}", label: c.vAlign, default: "", items: [ [d.notSet, ""], [d.alignTop, "top"], [d.alignMiddle, "middle"], [d.alignBottom, "bottom"], [c.alignBaseline, "baseline"] ], setup: f(function(a) { var b = a.getAttribute("vAlign"); a = a.getStyle("vertical-align"); switch (a) { case "top": case "middle": case "bottom": case "baseline": break; default: a = ""; } return a || b || ""; }), commit: function(a) { var b = this.getValue(); b ? a.setStyle("vertical-align", b) : a.removeStyle("vertical-align"); a.removeAttribute("vAlign"); } }, k(["td{text-align}", "td{vertical-align}"]), { type: "select", id: "cellType", requiredContent: "th", label: c.cellType, default: "td", items: [[c.data, "td"], [c.header, "th"]], setup: f(function(a) { return a.getName(); }), commit: function(a) { a.renameNode(this.getValue()); } }, k("th"), { type: "text", id: "rowSpan", requiredContent: "td[rowspan]", label: c.rowSpan, default: "", validate: n.integer(c.invalidRowSpan), setup: f(function(a) { if ((a = parseInt(a.getAttribute("rowSpan"), 10)) && 1 != a) return a; }), commit: function(a) { var b = parseInt(this.getValue(), 10); b && 1 != b ? a.setAttribute("rowSpan", this.getValue()) : a.removeAttribute("rowSpan"); } }, { type: "text", id: "colSpan", requiredContent: "td[colspan]", label: c.colSpan, default: "", validate: n.integer(c.invalidColSpan), setup: f(function(a) { if ((a = parseInt(a.getAttribute("colSpan"), 10)) && 1 != a) return a; }), commit: function(a) { var b = parseInt(this.getValue(), 10); b && 1 != b ? a.setAttribute("colSpan", this.getValue()) : a.removeAttribute("colSpan"); } }, k(["td[colspan]", "td[rowspan]"]), { type: "hbox", padding: 0, widths: l ? ["60%", "40%"] : ["100%"], requiredContent: "td{background-color}", children: (function() { var a = [ { type: "text", id: "bgColor", label: c.bgColor, default: "", setup: f(function(a) { var c = a.getAttribute("bgColor"); return a.getStyle("background-color") || c; }), commit: function(a) { this.getValue() ? a.setStyle("background-color", this.getValue()) : a.removeStyle("background-color"); a.removeAttribute("bgColor"); } } ]; l && a.push({ type: "button", id: "bgColorChoose", class: "colorChooser", label: c.chooseColor, onLoad: function() { this.getElement() .getParent() .setStyle("vertical-align", "bottom"); }, onClick: function() { g.getColorFromDialog(function(a) { a && this.getDialog() .getContentElement("info", "bgColor") .setValue(a); this.focus(); }, this); } }); return a; })() }, { type: "hbox", padding: 0, widths: l ? ["60%", "40%"] : ["100%"], requiredContent: "td{border-color}", children: (function() { var a = [ { type: "text", id: "borderColor", label: c.borderColor, default: "", setup: f(function(a) { var c = a.getAttribute("borderColor"); return a.getStyle("border-color") || c; }), commit: function(a) { this.getValue() ? a.setStyle("border-color", this.getValue()) : a.removeStyle("border-color"); a.removeAttribute("borderColor"); } } ]; l && a.push({ type: "button", id: "borderColorChoose", class: "colorChooser", label: c.chooseColor, style: (w ? "margin-right" : "margin-left") + ": 10px", onLoad: function() { this.getElement() .getParent() .setStyle("vertical-align", "bottom"); }, onClick: function() { g.getColorFromDialog(function(a) { a && this.getDialog() .getContentElement("info", "borderColor") .setValue(a); this.focus(); }, this); } }); return a; })() } ], m = 0, v = -1, h = [r()], q = CKEDITOR.tools.array.filter(q, function(a) { var b = a.requiredContent; delete a.requiredContent; (b = g.filter.check(b)) && !a.isSpacer && m++; return b; }); 5 < m && (h = h.concat([k(), r()])); CKEDITOR.tools.array.forEach(q, function(a) { a.isSpacer || v++; 5 < m && v >= m / 2 ? h[2].children.push(a) : h[0].children.push(a); }); CKEDITOR.tools.array.forEach(h, function(a) { a.isSpacer || ((a = a.children), a[a.length - 1].isSpacer && a.pop()); }); return { title: c.title, minWidth: 1 === h.length ? 205 : 410, minHeight: 50, contents: [ { id: "info", label: c.title, accessKey: "I", elements: [ { type: "hbox", widths: 1 === h.length ? ["100%"] : ["40%", "5%", "40%"], children: h } ] } ], onShow: function() { this.cells = CKEDITOR.plugins.tabletools.getSelectedCells( this._.editor.getSelection() ); this.setupContent(this.cells); }, onOk: function() { for ( var a = this._.editor.getSelection(), b = a.createBookmarks(), c = this.cells, d = 0; d < c.length; d++ ) this.commitContent(c[d]); this._.editor.forceNextSelectionCheck(); a.selectBookmarks(b); this._.editor.selectionChange(); }, onLoad: function() { var a = {}; this.foreach(function(b) { b.setup && b.commit && ((b.setup = CKEDITOR.tools.override(b.setup, function(c) { return function() { c.apply(this, arguments); a[b.id] = b.getValue(); }; })), (b.commit = CKEDITOR.tools.override(b.commit, function(c) { return function() { a[b.id] !== b.getValue() && c.apply(this, arguments); }; }))); }); } }; });