You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/** * Copyright (c) Tiny Technologies, Inc. All rights reserved. * Licensed under the LGPL or a commercial license. * For LGPL see License.txt in the project root for license information. * For commercial licenses see https://www.tiny.cloud/
* * Version: 5.10.0 (2021-10-11) */(function () { 'use strict';
var global$1 = tinymce.util.Tools.resolve('tinymce.PluginManager');
var getKeyboardSpaces = function (editor) { var spaces = editor.getParam('nonbreaking_force_tab', 0); if (typeof spaces === 'boolean') { return spaces === true ? 3 : 0; } else { return spaces; } }; var wrapNbsps = function (editor) { return editor.getParam('nonbreaking_wrap', true, 'boolean'); };
var stringRepeat = function (string, repeats) { var str = ''; for (var index = 0; index < repeats; index++) { str += string; } return str; }; var isVisualCharsEnabled = function (editor) { return editor.plugins.visualchars ? editor.plugins.visualchars.isEnabled() : false; }; var insertNbsp = function (editor, times) { var classes = function () { return isVisualCharsEnabled(editor) ? 'mce-nbsp-wrap mce-nbsp' : 'mce-nbsp-wrap'; }; var nbspSpan = function () { return '<span class="' + classes() + '" contenteditable="false">' + stringRepeat(' ', times) + '</span>'; }; var shouldWrap = wrapNbsps(editor); var html = shouldWrap || editor.plugins.visualchars ? nbspSpan() : stringRepeat(' ', times); editor.undoManager.transact(function () { return editor.insertContent(html); }); };
var register$1 = function (editor) { editor.addCommand('mceNonBreaking', function () { insertNbsp(editor, 1); }); };
var global = tinymce.util.Tools.resolve('tinymce.util.VK');
var setup = function (editor) { var spaces = getKeyboardSpaces(editor); if (spaces > 0) { editor.on('keydown', function (e) { if (e.keyCode === global.TAB && !e.isDefaultPrevented()) { if (e.shiftKey) { return; } e.preventDefault(); e.stopImmediatePropagation(); insertNbsp(editor, spaces); } }); } };
var register = function (editor) { var onAction = function () { return editor.execCommand('mceNonBreaking'); }; editor.ui.registry.addButton('nonbreaking', { icon: 'non-breaking', tooltip: 'Nonbreaking space', onAction: onAction }); editor.ui.registry.addMenuItem('nonbreaking', { icon: 'non-breaking', text: 'Nonbreaking space', onAction: onAction }); };
function Plugin () { global$1.add('nonbreaking', function (editor) { register$1(editor); register(editor); setup(editor); }); }
Plugin();
}());
|