: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
var backspaceDelete = function (editor, isForward) {
return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor);
var setup = function (editor) {
editor.on('keydown', function (e) {
if (e.keyCode === global$3.BACKSPACE) {
if (backspaceDelete(editor, false)) {
} else if (e.keyCode === global$3.DELETE) {
if (backspaceDelete(editor, true)) {
backspaceDelete: backspaceDelete
var get = function (editor) {
backspaceDelete: function (isForward) {
Delete.backspaceDelete(editor, isForward);
var queryListCommandState = function (editor, listName) {
var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL');
return parentList && parentList.nodeName === listName;
var register = function (editor) {
editor.on('BeforeExecCommand', function (e) {
var cmd = e.command.toLowerCase();
indentListSelection(editor);
} else if (cmd === 'outdent') {
outdentListSelection(editor);
editor.addCommand('InsertUnorderedList', function (ui, detail) {
ToggleList.toggleList(editor, 'UL', detail);
editor.addCommand('InsertOrderedList', function (ui, detail) {
ToggleList.toggleList(editor, 'OL', detail);
editor.addCommand('InsertDefinitionList', function (ui, detail) {
ToggleList.toggleList(editor, 'DL', detail);
editor.addCommand('RemoveList', function () {
flattenListSelection(editor);
editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));
editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));
editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));
var Commands = { register: register };
var shouldIndentOnTab = function (editor) {
return editor.getParam('lists_indent_on_tab', true);
var Settings = { shouldIndentOnTab: shouldIndentOnTab };
var setupTabKey = function (editor) {
editor.on('keydown', function (e) {
if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) {
editor.undoManager.transact(function () {
if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {
var setup$1 = function (editor) {
if (Settings.shouldIndentOnTab(editor)) {
var Keyboard = { setup: setup$1 };
var findIndex = function (list, predicate) {
for (var index = 0; index < list.length; index++) {
var element = list[index];
if (predicate(element)) {
var listState = function (editor, listName) {
editor.on('NodeChange', function (e) {
var tableCellIndex = findIndex(e.parents, NodeType.isTableCellNode);
var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;
var lists = global$5.grep(parents, NodeType.isListNode);
ctrl.active(lists.length > 0 && lists[0].nodeName === listName);
var register$1 = function (editor) {
var hasPlugin = function (editor, plugin) {
var plugins = editor.settings.plugins ? editor.settings.plugins : '';
return global$5.inArray(plugins.split(/[ ,]/), plugin) !== -1;
if (!hasPlugin(editor, 'advlist')) {
editor.addButton('numlist', {
cmd: 'InsertOrderedList',
onPostRender: listState(editor, 'OL')
editor.addButton('bullist', {
cmd: 'InsertUnorderedList',
onPostRender: listState(editor, 'UL')
editor.addButton('indent', {
title: 'Increase indent',
var Buttons = { register: register$1 };
global.add('lists', function (editor) {
Buttons.register(editor);
Commands.register(editor);