--- a/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.js Tue Jun 09 11:14:17 2015 +0000
+++ b/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.js Mon Oct 14 17:39:30 2019 +0200
@@ -1,136 +1,177 @@
-/**
- * plugin.js
- *
- * Copyright, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://www.tinymce.com/license
- * Contributing: http://www.tinymce.com/contributing
- */
-
-/*global tinymce:true */
-
-tinymce.PluginManager.add('fullscreen', function(editor) {
- var fullscreenState = false, DOM = tinymce.DOM, iframeWidth, iframeHeight, resizeHandler;
- var containerWidth, containerHeight;
-
- if (editor.settings.inline) {
- return;
- }
-
- function getWindowSize() {
- var w, h, win = window, doc = document;
- var body = doc.body;
-
- // Old IE
- if (body.offsetWidth) {
- w = body.offsetWidth;
- h = body.offsetHeight;
- }
+(function () {
+var fullscreen = (function () {
+ 'use strict';
- // Modern browsers
- if (win.innerWidth && win.innerHeight) {
- w = win.innerWidth;
- h = win.innerHeight;
- }
-
- return {w: w, h: h};
- }
-
- function toggleFullscreen() {
- var body = document.body, documentElement = document.documentElement, editorContainerStyle;
- var editorContainer, iframe, iframeStyle;
-
- function resize() {
- DOM.setStyle(iframe, 'height', getWindowSize().h - (editorContainer.clientHeight - iframe.clientHeight));
- }
+ 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
+ };
+ };
- fullscreenState = !fullscreenState;
-
- editorContainer = editor.getContainer();
- editorContainerStyle = editorContainer.style;
- iframe = editor.getContentAreaContainer().firstChild;
- iframeStyle = iframe.style;
+ var global = tinymce.util.Tools.resolve('tinymce.PluginManager');
- if (fullscreenState) {
- iframeWidth = iframeStyle.width;
- iframeHeight = iframeStyle.height;
- iframeStyle.width = iframeStyle.height = '100%';
- containerWidth = editorContainerStyle.width;
- containerHeight = editorContainerStyle.height;
- editorContainerStyle.width = editorContainerStyle.height = '';
+ var get = function (fullscreenState) {
+ return {
+ isFullscreen: function () {
+ return fullscreenState.get() !== null;
+ }
+ };
+ };
+ var $_6qfcwucejjgwebu0 = { get: get };
- DOM.addClass(body, 'mce-fullscreen');
- DOM.addClass(documentElement, 'mce-fullscreen');
- DOM.addClass(editorContainer, 'mce-fullscreen');
+ var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');
+
+ var fireFullscreenStateChanged = function (editor, state) {
+ editor.fire('FullscreenStateChanged', { state: state });
+ };
+ var $_en5ltwcijjgwebu6 = { fireFullscreenStateChanged: fireFullscreenStateChanged };
- DOM.bind(window, 'resize', resize);
- resize();
- resizeHandler = resize;
- } else {
- iframeStyle.width = iframeWidth;
- iframeStyle.height = iframeHeight;
-
- if (containerWidth) {
- editorContainerStyle.width = containerWidth;
- }
-
- if (containerHeight) {
- editorContainerStyle.height = containerHeight;
- }
-
- DOM.removeClass(body, 'mce-fullscreen');
- DOM.removeClass(documentElement, 'mce-fullscreen');
- DOM.removeClass(editorContainer, 'mce-fullscreen');
- DOM.unbind(window, 'resize', resizeHandler);
- }
-
- editor.fire('FullscreenStateChanged', {state: fullscreenState});
- }
-
- editor.on('init', function() {
- editor.addShortcut('Meta+Alt+F', '', toggleFullscreen);
- });
-
- editor.on('remove', function() {
- if (resizeHandler) {
- DOM.unbind(window, 'resize', resizeHandler);
- }
- });
+ var DOM = global$1.DOM;
+ var getWindowSize = function () {
+ var w;
+ var h;
+ var win = window;
+ var doc = document;
+ var body = doc.body;
+ if (body.offsetWidth) {
+ w = body.offsetWidth;
+ h = body.offsetHeight;
+ }
+ if (win.innerWidth && win.innerHeight) {
+ w = win.innerWidth;
+ h = win.innerHeight;
+ }
+ return {
+ w: w,
+ h: h
+ };
+ };
+ var getScrollPos = function () {
+ var vp = DOM.getViewPort();
+ return {
+ x: vp.x,
+ y: vp.y
+ };
+ };
+ var setScrollPos = function (pos) {
+ window.scrollTo(pos.x, pos.y);
+ };
+ var toggleFullscreen = function (editor, fullscreenState) {
+ var body = document.body;
+ var documentElement = document.documentElement;
+ var editorContainerStyle;
+ var editorContainer, iframe, iframeStyle;
+ var fullscreenInfo = fullscreenState.get();
+ var resize = function () {
+ DOM.setStyle(iframe, 'height', getWindowSize().h - (editorContainer.clientHeight - iframe.clientHeight));
+ };
+ var removeResize = function () {
+ DOM.unbind(window, 'resize', resize);
+ };
+ editorContainer = editor.getContainer();
+ editorContainerStyle = editorContainer.style;
+ iframe = editor.getContentAreaContainer().firstChild;
+ iframeStyle = iframe.style;
+ if (!fullscreenInfo) {
+ var newFullScreenInfo = {
+ scrollPos: getScrollPos(),
+ containerWidth: editorContainerStyle.width,
+ containerHeight: editorContainerStyle.height,
+ iframeWidth: iframeStyle.width,
+ iframeHeight: iframeStyle.height,
+ resizeHandler: resize,
+ removeHandler: removeResize
+ };
+ iframeStyle.width = iframeStyle.height = '100%';
+ editorContainerStyle.width = editorContainerStyle.height = '';
+ DOM.addClass(body, 'mce-fullscreen');
+ DOM.addClass(documentElement, 'mce-fullscreen');
+ DOM.addClass(editorContainer, 'mce-fullscreen');
+ DOM.bind(window, 'resize', resize);
+ editor.on('remove', removeResize);
+ resize();
+ fullscreenState.set(newFullScreenInfo);
+ $_en5ltwcijjgwebu6.fireFullscreenStateChanged(editor, true);
+ } else {
+ iframeStyle.width = fullscreenInfo.iframeWidth;
+ iframeStyle.height = fullscreenInfo.iframeHeight;
+ if (fullscreenInfo.containerWidth) {
+ editorContainerStyle.width = fullscreenInfo.containerWidth;
+ }
+ if (fullscreenInfo.containerHeight) {
+ editorContainerStyle.height = fullscreenInfo.containerHeight;
+ }
+ DOM.removeClass(body, 'mce-fullscreen');
+ DOM.removeClass(documentElement, 'mce-fullscreen');
+ DOM.removeClass(editorContainer, 'mce-fullscreen');
+ setScrollPos(fullscreenInfo.scrollPos);
+ DOM.unbind(window, 'resize', fullscreenInfo.resizeHandler);
+ editor.off('remove', fullscreenInfo.removeHandler);
+ fullscreenState.set(null);
+ $_en5ltwcijjgwebu6.fireFullscreenStateChanged(editor, false);
+ }
+ };
+ var $_dvg07kcgjjgwebu3 = { toggleFullscreen: toggleFullscreen };
- editor.addCommand('mceFullScreen', toggleFullscreen);
-
- editor.addMenuItem('fullscreen', {
- text: 'Fullscreen',
- shortcut: 'Meta+Alt+F',
- selectable: true,
- onClick: toggleFullscreen,
- onPostRender: function() {
- var self = this;
-
- editor.on('FullscreenStateChanged', function(e) {
- self.active(e.state);
- });
- },
- context: 'view'
- });
+ var register = function (editor, fullscreenState) {
+ editor.addCommand('mceFullScreen', function () {
+ $_dvg07kcgjjgwebu3.toggleFullscreen(editor, fullscreenState);
+ });
+ };
+ var $_bebdcrcfjjgwebu1 = { register: register };
- editor.addButton('fullscreen', {
- tooltip: 'Fullscreen',
- shortcut: 'Meta+Alt+F',
- onClick: toggleFullscreen,
- onPostRender: function() {
- var self = this;
+ var postRender = function (editor) {
+ return function (e) {
+ var ctrl = e.control;
+ editor.on('FullscreenStateChanged', function (e) {
+ ctrl.active(e.state);
+ });
+ };
+ };
+ var register$1 = function (editor) {
+ editor.addMenuItem('fullscreen', {
+ text: 'Fullscreen',
+ shortcut: 'Ctrl+Shift+F',
+ selectable: true,
+ cmd: 'mceFullScreen',
+ onPostRender: postRender(editor),
+ context: 'view'
+ });
+ editor.addButton('fullscreen', {
+ active: false,
+ tooltip: 'Fullscreen',
+ cmd: 'mceFullScreen',
+ onPostRender: postRender(editor)
+ });
+ };
+ var $_tne4sckjjgwebuo = { register: register$1 };
- editor.on('FullscreenStateChanged', function(e) {
- self.active(e.state);
- });
- }
- });
+ global.add('fullscreen', function (editor) {
+ var fullscreenState = Cell(null);
+ if (editor.settings.inline) {
+ return $_6qfcwucejjgwebu0.get(fullscreenState);
+ }
+ $_bebdcrcfjjgwebu1.register(editor, fullscreenState);
+ $_tne4sckjjgwebuo.register(editor);
+ editor.addShortcut('Ctrl+Shift+F', '', 'mceFullScreen');
+ return $_6qfcwucejjgwebu0.get(fullscreenState);
+ });
+ function Plugin () {
+ }
- return {
- isFullscreen: function() {
- return fullscreenState;
- }
- };
-});
\ No newline at end of file
+ return Plugin;
+
+}());
+})();