: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
elementRect = global$6.clamp(elementRect, contentAreaRect);
relRect = global$6.relativePosition(panelRect, elementRect, relPos);
movePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect));
contentAreaRect.h += panelRect.h;
elementRect = global$6.intersect(contentAreaRect, elementRect);
relPos = global$6.findBestRelativePosition(panelRect, elementRect, contentAreaRect, [
relRect = global$6.relativePosition(panelRect, elementRect, relPos);
movePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect));
movePanelTo(panel, userConstrain(handler, elementRect.x, elementRect.y, elementRect, contentAreaRect, panelRect));
togglePositionClass(panel, relPos, function (pos1, pos2) {
var repositionHandler = function (show) {
var execute = function () {
reposition(findFrontMostMatch(editor.selection.getNode()), show);
global$7.requestAnimationFrame(execute);
var bindScrollEvent = function (panel) {
var reposition_1 = repositionHandler(true);
var uiContainer_1 = UiContainer.getUiContainer(panel);
scrollContainer = editor.selection.getScrollContainer() || editor.getWin();
DOM.bind(scrollContainer, 'scroll', reposition_1);
DOM.bind(uiContainer_1, 'scroll', reposition_1);
editor.on('remove', function () {
DOM.unbind(scrollContainer, 'scroll', reposition_1);
DOM.unbind(uiContainer_1, 'scroll', reposition_1);
var showContextToolbar = function (match) {
if (match.toolbar.panel) {
match.toolbar.panel.show();
panel = global$4.create({
classes: 'tinymce tinymce-inline arrow',
ariaLabel: 'Inline toolbar',
items: Toolbar.createToolbar(editor, match.toolbar.items),
UiContainer.setUiContainer(editor, panel);
match.toolbar.panel = panel;
panel.renderTo().reflow();
var hideAllContextToolbars = function () {
global$2.each(getContextToolbars(), function (toolbar) {
var findFrontMostMatch = function (targetElm) {
var i, y, parentsAndSelf;
var toolbars = getContextToolbars();
parentsAndSelf = editor.$(targetElm).parents().add(targetElm);
for (i = parentsAndSelf.length - 1; i >= 0; i--) {
for (y = toolbars.length - 1; y >= 0; y--) {
if (toolbars[y].predicate(parentsAndSelf[i])) {
element: parentsAndSelf[i]
editor.on('click keyup setContent ObjectResized', function (e) {
if (e.type === 'setcontent' && !e.selection) {
global$7.setEditorTimeout(editor, function () {
match = findFrontMostMatch(editor.selection.getNode());
hideAllContextToolbars();
showContextToolbar(match);
hideAllContextToolbars();
editor.on('blur hide contextmenu', hideAllContextToolbars);
editor.on('ObjectResizeStart', function () {
var match = findFrontMostMatch(editor.selection.getNode());
if (match && match.toolbar.panel) {
match.toolbar.panel.hide();
editor.on('ResizeEditor ResizeWindow', repositionHandler(true));
editor.on('nodeChange', repositionHandler(false));
editor.on('remove', function () {
global$2.each(getContextToolbars(), function (toolbar) {
editor.contextToolbars = {};
editor.shortcuts.add('ctrl+F9', '', function () {
var match = findFrontMostMatch(editor.selection.getNode());
if (match && match.toolbar.panel) {
match.toolbar.panel.items()[0].focus();
var ContextToolbars = { addContextualToolbars: addContextualToolbars };
var typeOf = function (x) {
if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
var isType = function (type) {
return function (value) {
return typeOf(value) === type;
var isArray = isType('array');
var isFunction = isType('function');
var isNumber = isType('number');
var nativeSlice = Array.prototype.slice;
var nativeIndexOf = Array.prototype.indexOf;
var nativePush = Array.prototype.push;
var rawIndexOf = function (ts, t) {
return nativeIndexOf.call(ts, t);
var indexOf = function (xs, x) {
var r = rawIndexOf(xs, x);
return r === -1 ? Option.none() : Option.some(r);
var exists = function (xs, pred) {
for (var i = 0, len = xs.length; i < len; i++) {
var map = function (xs, f) {
for (var i = 0; i < len; i++) {
var each = function (xs, f) {
for (var i = 0, len = xs.length; i < len; i++) {
var filter = function (xs, pred) {
for (var i = 0, len = xs.length; i < len; i++) {
var foldl = function (xs, f, acc) {
var find = function (xs, pred) {
for (var i = 0, len = xs.length; i < len; i++) {
var findIndex = function (xs, pred) {
for (var i = 0, len = xs.length; i < len; i++) {
var flatten = function (xs) {
for (var i = 0, len = xs.length; i < len; ++i) {
throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
nativePush.apply(r, xs[i]);
var from$1 = isFunction(Array.from) ? Array.from : function (x) {
return nativeSlice.call(x);
items: 'newdocument restoredraft | preview | print'
items: 'undo redo | cut copy paste pastetext | selectall'
items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen'
items: 'image link media template codesample inserttable | charmap hr | pagebreak nonbreaking anchor toc | insertdatetime'
items: 'bold italic underline strikethrough superscript subscript codeformat | blockformats align | removeformat'
items: 'spellchecker spellcheckerlanguage | a11ycheck code'
table: { title: 'Table' },
var delimiterMenuNamePair = function () {
var createMenuNameItemPair = function (name, item) {
return name === '|' ? delimiterMenuNamePair() : menuItem;
var hasItemName = function (namedMenuItems, name) {
return findIndex(namedMenuItems, function (namedMenuItem) {
return namedMenuItem.name === name;
var isSeparator = function (namedMenuItem) {
return namedMenuItem && namedMenuItem.item.text === '|';
var cleanupMenu = function (namedMenuItems, removedMenuItems) {
var menuItemsPass1 = filter(namedMenuItems, function (namedMenuItem) {
return removedMenuItems.hasOwnProperty(namedMenuItem.name) === false;
var menuItemsPass2 = filter(menuItemsPass1, function (namedMenuItem, i) {
return !isSeparator(namedMenuItem) || !isSeparator(menuItemsPass1[i - 1]);
return filter(menuItemsPass2, function (namedMenuItem, i) {
return !isSeparator(namedMenuItem) || i > 0 && i < menuItemsPass2.length - 1;
var createMenu = function (editorMenuItems, menus, removedMenuItems, context) {
var menuButton, menu, namedMenuItems, isUserDefined;
menu = defaultMenus[context];
menuButton = { text: menu.title };
global$2.each((menu.items || '').split(/[ ,]/), function (name) {
var namedMenuItem = createMenuNameItemPair(name, editorMenuItems[name]);
namedMenuItems.push(namedMenuItem);
global$2.each(editorMenuItems, function (item, name) {
if (item.context === context && !hasItemName(namedMenuItems, name)) {
if (item.separator === 'before') {
namedMenuItems.push(delimiterMenuNamePair());
if (item.prependToContext) {
namedMenuItems.unshift(createMenuNameItemPair(name, item));
namedMenuItems.push(createMenuNameItemPair(name, item));
if (item.separator === 'after') {
namedMenuItems.push(delimiterMenuNamePair());
menuButton.menu = map(cleanupMenu(namedMenuItems, removedMenuItems), function (menuItem) {
if (!menuButton.menu.length) {
var getDefaultMenubar = function (editor) {
var menu = getMenu(editor);
defaultMenuBar.push(name);
for (name in defaultMenus) {
defaultMenuBar.push(name);
var createMenuButtons = function (editor) {
var defaultMenuBar = getDefaultMenubar(editor);
var removedMenuItems = global$2.makeMap(getRemovedMenuItems(editor).split(/[ ,]/));
var menubar = getMenubar(editor);
var enabledMenuNames = typeof menubar === 'string' ? menubar.split(/[ ,]/) : defaultMenuBar;
for (var i = 0; i < enabledMenuNames.length; i++) {
var menuItems = enabledMenuNames[i];
var menu = createMenu(editor.menuItems, getMenu(editor), removedMenuItems, menuItems);
var Menubar = { createMenuButtons: createMenuButtons };
var DOM$1 = global$3.DOM;
var getSize = function (elm) {
var resizeTo = function (editor, width, height) {
var containerElm, iframeElm, containerSize, iframeSize;
containerElm = editor.getContainer();
iframeElm = editor.getContentAreaContainer().firstChild;
containerSize = getSize(containerElm);
iframeSize = getSize(iframeElm);
width = Math.max(getMinWidth(editor), width);
width = Math.min(getMaxWidth(editor), width);
DOM$1.setStyle(containerElm, 'width', width + (containerSize.width - iframeSize.width));
DOM$1.setStyle(iframeElm, 'width', width);
height = Math.max(getMinHeight(editor), height);
height = Math.min(getMaxHeight(editor), height);
DOM$1.setStyle(iframeElm, 'height', height);
Events.fireResizeEditor(editor);
var resizeBy = function (editor, dw, dh) {
var elm = editor.getContentAreaContainer();
resizeTo(editor, elm.clientWidth + dw, elm.clientHeight + dh);
var global$8 = tinymce.util.Tools.resolve('tinymce.Env');
var api = function (elm) {
var trigger = function (sidebar, panel, callbackName) {
var callback = sidebar.settings[callbackName];
callback(api(panel.getEl('body')));
var hidePanels = function (name, container, sidebars) {
global$2.each(sidebars, function (sidebar) {
var panel = container.items().filter('#' + sidebar.name)[0];
if (panel && panel.visible() && sidebar.name !== name) {
trigger(sidebar, panel, 'onhide');
var deactivateButtons = function (toolbar) {
toolbar.items().each(function (ctrl) {
var findSidebar = function (sidebars, name) {
return global$2.grep(sidebars, function (sidebar) {
return sidebar.name === name;
var showPanel = function (editor, name, sidebars) {
var container = btnCtrl.parents().filter('panel')[0];
var panel = container.find('#' + name)[0];
var sidebar = findSidebar(sidebars, name);
hidePanels(name, container, sidebars);
deactivateButtons(btnCtrl.parent());
if (panel && panel.visible()) {
trigger(sidebar, panel, 'onhide');
trigger(sidebar, panel, 'onshow');
panel = global$4.create({
classes: 'sidebar-panel',
container.prepend(panel);
trigger(sidebar, panel, 'onrender');
trigger(sidebar, panel, 'onshow');
Events.fireResizeEditor(editor);
var isModernBrowser = function () {
return !global$8.ie || global$8.ie >= 11;
var hasSidebar = function (editor) {
return isModernBrowser() && editor.sidebars ? editor.sidebars.length > 0 : false;
var createSidebar = function (editor) {
var buttons = global$2.map(editor.sidebars, function (sidebar) {
var settings = sidebar.settings;
tooltip: settings.tooltip,
onclick: showPanel(editor, sidebar.name, editor.sidebars)