: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
var textcolor = (function () {
var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
var getCurrentColor = function (editor, format) {
editor.dom.getParents(editor.selection.getStart(), function (elm) {
if (value = elm.style[format === 'forecolor' ? 'color' : 'background-color']) {
color = color ? color : value;
var mapColors = function (colorMap) {
for (i = 0; i < colorMap.length; i += 2) {
var applyFormat = function (editor, format, value) {
editor.undoManager.transact(function () {
editor.formatter.apply(format, { value: value });
var removeFormat = function (editor, format) {
editor.undoManager.transact(function () {
editor.formatter.remove(format, { value: null }, null, true);
getCurrentColor: getCurrentColor,
applyFormat: applyFormat,
removeFormat: removeFormat
var register = function (editor) {
editor.addCommand('mceApplyTextcolor', function (format, value) {
TextColor.applyFormat(editor, format, value);
editor.addCommand('mceRemoveTextcolor', function (format) {
TextColor.removeFormat(editor, format);
var Commands = { register: register };
var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');
var getTextColorMap = function (editor) {
return editor.getParam('textcolor_map', defaultColorMap);
var getForeColorMap = function (editor) {
return editor.getParam('forecolor_map', getTextColorMap(editor));
var getBackColorMap = function (editor) {
return editor.getParam('backcolor_map', getTextColorMap(editor));
var getTextColorRows = function (editor) {
return editor.getParam('textcolor_rows', 5);
var getTextColorCols = function (editor) {
return editor.getParam('textcolor_cols', 8);
var getForeColorRows = function (editor) {
return editor.getParam('forecolor_rows', getTextColorRows(editor));
var getBackColorRows = function (editor) {
return editor.getParam('backcolor_rows', getTextColorRows(editor));
var getForeColorCols = function (editor) {
return editor.getParam('forecolor_cols', getTextColorCols(editor));
var getBackColorCols = function (editor) {
return editor.getParam('backcolor_cols', getTextColorCols(editor));
var getColorPickerCallback = function (editor) {
return editor.getParam('color_picker_callback', null);
var hasColorPicker = function (editor) {
return typeof getColorPickerCallback(editor) === 'function';
getForeColorMap: getForeColorMap,
getBackColorMap: getBackColorMap,
getForeColorRows: getForeColorRows,
getBackColorRows: getBackColorRows,
getForeColorCols: getForeColorCols,
getBackColorCols: getBackColorCols,
getColorPickerCallback: getColorPickerCallback,
hasColorPicker: hasColorPicker
var global$3 = tinymce.util.Tools.resolve('tinymce.util.I18n');
var getHtml = function (cols, rows, colorMap, hasColorPicker) {
var colors, color, html, last, x, y, i, count = 0;
var id = global$1.DOM.uniqueId('mcearia');
var getColorCellHtml = function (color, title) {
var isNoColor = color === 'transparent';
return '<td class="mce-grid-cell' + (isNoColor ? ' mce-colorbtn-trans' : '') + '">' + '<div id="' + id + '-' + count++ + '"' + ' data-mce-color="' + (color ? color : '') + '"' + ' role="option"' + ' tabIndex="-1"' + ' style="' + (color ? 'background-color: ' + color : '') + '"' + ' title="' + global$3.translate(title) + '">' + (isNoColor ? '×' : '') + '</div>' + '</td>';
colors = TextColor.mapColors(colorMap);
text: global$3.translate('No color'),
html = '<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>';
last = colors.length - 1;
for (y = 0; y < rows; y++) {
for (x = 0; x < cols; x++) {
html += getColorCellHtml(color.color, color.text);
html += '<tr>' + '<td colspan="' + cols + '" class="mce-custom-color-btn">' + '<div id="' + id + '-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" ' + 'role="button" tabindex="-1" aria-labelledby="' + id + '-c" style="width: 100%">' + '<button type="button" role="presentation" tabindex="-1">' + global$3.translate('Custom...') + '</button>' + '</div>' + '</td>' + '</tr>';
for (x = 0; x < cols; x++) {
html += getColorCellHtml('', 'Custom color');
html += '</tbody></table>';
var ColorPickerHtml = { getHtml: getHtml };
var setDivColor = function setDivColor(div, value) {
div.style.background = value;
div.setAttribute('data-mce-color', value);
var onButtonClick = function (editor) {
editor.execCommand('mceApplyTextcolor', ctrl.settings.format, ctrl._color);
editor.execCommand('mceRemoveTextcolor', ctrl.settings.format);
var onPanelClick = function (editor, cols) {
var buttonCtrl = this.parent();
var currentColor = TextColor.getCurrentColor(editor, buttonCtrl.settings.format);
var selectColor = function (value) {
editor.execCommand('mceApplyTextcolor', buttonCtrl.settings.format, value);
var resetColor = function () {
editor.execCommand('mceRemoveTextcolor', buttonCtrl.settings.format);
if (global$1.DOM.getParent(e.target, '.mce-custom-color-btn')) {
var colorPickerCallback = Settings.getColorPickerCallback(editor);
colorPickerCallback.call(editor, function (value) {
var tableElm = buttonCtrl.panel.getEl().getElementsByTagName('table')[0];
var customColorCells, div, i;
customColorCells = global$2.map(tableElm.rows[tableElm.rows.length - 1].childNodes, function (elm) {
for (i = 0; i < customColorCells.length; i++) {
div = customColorCells[i];
if (!div.getAttribute('data-mce-color')) {
for (i = 0; i < cols - 1; i++) {
setDivColor(customColorCells[i], customColorCells[i + 1].getAttribute('data-mce-color'));
value = e.target.getAttribute('data-mce-color');
global$1.DOM.get(this.lastId).setAttribute('aria-selected', 'false');
e.target.setAttribute('aria-selected', true);
this.lastId = e.target.id;
if (value === 'transparent') {
} else if (value !== null) {
var renderColorPicker = function (editor, foreColor) {
var cols = foreColor ? Settings.getForeColorCols(editor) : Settings.getBackColorCols(editor);
var rows = foreColor ? Settings.getForeColorRows(editor) : Settings.getBackColorRows(editor);
var colorMap = foreColor ? Settings.getForeColorMap(editor) : Settings.getBackColorMap(editor);
var hasColorPicker = Settings.hasColorPicker(editor);
return ColorPickerHtml.getHtml(cols, rows, colorMap, hasColorPicker);
var register$1 = function (editor) {
editor.addButton('forecolor', {
html: renderColorPicker(editor, true),
onclick: onPanelClick(editor, Settings.getForeColorCols(editor))
onclick: onButtonClick(editor)
editor.addButton('backcolor', {
tooltip: 'Background color',
html: renderColorPicker(editor, false),
onclick: onPanelClick(editor, Settings.getBackColorCols(editor))
onclick: onButtonClick(editor)
var Buttons = { register: register$1 };
global.add('textcolor', function (editor) {
Commands.register(editor);
Buttons.register(editor);