123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- /**
- * 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.2.0 (2020-02-13)
- */
- (function () {
- 'use strict';
- var Cell = function (initial) {
- var value = initial;
- var get = function () {
- return value;
- };
- var set = function (v) {
- value = v;
- };
- var clone = function () {
- return Cell(get());
- };
- return {
- get: get,
- set: set,
- clone: clone
- };
- };
- var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
- var fireVisualBlocks = function (editor, state) {
- editor.fire('VisualBlocks', { state: state });
- };
- var Events = { fireVisualBlocks: fireVisualBlocks };
- var toggleVisualBlocks = function (editor, pluginUrl, enabledState) {
- var dom = editor.dom;
- dom.toggleClass(editor.getBody(), 'mce-visualblocks');
- enabledState.set(!enabledState.get());
- Events.fireVisualBlocks(editor, enabledState.get());
- };
- var VisualBlocks = { toggleVisualBlocks: toggleVisualBlocks };
- var register = function (editor, pluginUrl, enabledState) {
- editor.addCommand('mceVisualBlocks', function () {
- VisualBlocks.toggleVisualBlocks(editor, pluginUrl, enabledState);
- });
- };
- var Commands = { register: register };
- var isEnabledByDefault = function (editor) {
- return editor.getParam('visualblocks_default_state', false, 'boolean');
- };
- var Settings = { isEnabledByDefault: isEnabledByDefault };
- var setup = function (editor, pluginUrl, enabledState) {
- editor.on('PreviewFormats AfterPreviewFormats', function (e) {
- if (enabledState.get()) {
- editor.dom.toggleClass(editor.getBody(), 'mce-visualblocks', e.type === 'afterpreviewformats');
- }
- });
- editor.on('init', function () {
- if (Settings.isEnabledByDefault(editor)) {
- VisualBlocks.toggleVisualBlocks(editor, pluginUrl, enabledState);
- }
- });
- editor.on('remove', function () {
- editor.dom.removeClass(editor.getBody(), 'mce-visualblocks');
- });
- };
- var Bindings = { setup: setup };
- var toggleActiveState = function (editor, enabledState) {
- return function (api) {
- api.setActive(enabledState.get());
- var editorEventCallback = function (e) {
- return api.setActive(e.state);
- };
- editor.on('VisualBlocks', editorEventCallback);
- return function () {
- return editor.off('VisualBlocks', editorEventCallback);
- };
- };
- };
- var register$1 = function (editor, enabledState) {
- editor.ui.registry.addToggleButton('visualblocks', {
- icon: 'visualblocks',
- tooltip: 'Show blocks',
- onAction: function () {
- return editor.execCommand('mceVisualBlocks');
- },
- onSetup: toggleActiveState(editor, enabledState)
- });
- editor.ui.registry.addToggleMenuItem('visualblocks', {
- text: 'Show blocks',
- onAction: function () {
- return editor.execCommand('mceVisualBlocks');
- },
- onSetup: toggleActiveState(editor, enabledState)
- });
- };
- var Buttons = { register: register$1 };
- function Plugin () {
- global.add('visualblocks', function (editor, pluginUrl) {
- var enabledState = Cell(false);
- Commands.register(editor, pluginUrl, enabledState);
- Buttons.register(editor, enabledState);
- Bindings.setup(editor, pluginUrl, enabledState);
- });
- }
- Plugin();
- }());
|