/** * @module plugins/fullsize */ import './fullsize.less'; import type { IControlType, IViewBased } from 'jodit/types'; import { Config } from 'jodit/config'; import * as consts from 'jodit/core/constants'; import { Icon } from 'jodit/core/ui/icon'; declare module 'jodit/config' { interface Config { /** * Open WYSIWYG in full screen * @example * ```javascript * var editor = Jodit.make({ * fullsize: true // fullsize editor * }); * ``` * @example * ```javascript * var editor = Jodit.make(); * editor.e.fire('toggleFullSize'); * editor.e.fire('toggleFullSize', true); // fullsize * editor.e.fire('toggleFullSize', false); // usual mode * ``` */ fullsize: boolean; /** * True, after `fullsize` - all editors elements above jodit will get `jodit_fullsize-box_true` class (z-index: 100000 !important;) */ globalFullSize: boolean; } } Config.prototype.fullsize = false; Config.prototype.globalFullSize = true; Icon.set('fullsize', require('./icons/fullsize.svg')).set( 'shrink', require('./icons/shrink.svg') ); Config.prototype.controls.fullsize = { exec: (editor: IViewBased) => { editor.toggleFullSize(); }, update(button, editor) { const mode = editor.isFullSize ? 'shrink' : 'fullsize'; button.state.activated = editor.isFullSize; if (editor.o.textIcons) { button.state.text = mode; } else { button.state.icon.name = mode; } }, tooltip: 'Open in fullsize', mode: consts.MODE_SOURCE + consts.MODE_WYSIWYG } as IControlType;