tinymce-rails 4.0.12 → 4.0.16
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -1
- data/app/assets/source/tinymce/tinymce.jquery.js +411 -62
- data/app/assets/source/tinymce/tinymce.js +411 -62
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/autolink/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/autosave/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/link/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/noneditable/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/lightgray/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/lightgray/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/lightgray/skin.ie7.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/lightgray/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/themes/modern/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/tinymce.jquery.js +9 -9
- data/vendor/assets/javascripts/tinymce/tinymce.js +10 -10
- metadata +2 -3
- data/vendor/assets/javascripts/tinymce/skins/lightgray/img/wline.gif +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
// 4.0.
|
1
|
+
// 4.0.16 (2014-01-31)
|
2
2
|
|
3
3
|
/**
|
4
4
|
* Compiled inline version. (Library mode)
|
@@ -232,7 +232,7 @@ define("tinymce/dom/EventUtils", [], function() {
|
|
232
232
|
}
|
233
233
|
|
234
234
|
function waitForDomLoaded() {
|
235
|
-
if (doc.readyState === "complete") {
|
235
|
+
if (doc.readyState === "complete" || doc.readyState === "interactive") {
|
236
236
|
removeEvent(doc, "readystatechange", waitForDomLoaded);
|
237
237
|
readyHandler();
|
238
238
|
}
|
@@ -263,7 +263,7 @@ define("tinymce/dom/EventUtils", [], function() {
|
|
263
263
|
addEvent(doc, "readystatechange", waitForDomLoaded);
|
264
264
|
|
265
265
|
// Wait until we can scroll, when we can the DOM is initialized
|
266
|
-
if (doc.documentElement.doScroll && win === win.top) {
|
266
|
+
if (doc.documentElement.doScroll && win.self === win.top) {
|
267
267
|
tryScroll();
|
268
268
|
}
|
269
269
|
}
|
@@ -5390,6 +5390,194 @@ define("tinymce/Env", [], function() {
|
|
5390
5390
|
};
|
5391
5391
|
});
|
5392
5392
|
|
5393
|
+
// Included from: js/tinymce/classes/dom/StyleSheetLoader.js
|
5394
|
+
|
5395
|
+
/**
|
5396
|
+
* StyleSheetLoader.js
|
5397
|
+
*
|
5398
|
+
* Copyright, Moxiecode Systems AB
|
5399
|
+
* Released under LGPL License.
|
5400
|
+
*
|
5401
|
+
* License: http://www.tinymce.com/license
|
5402
|
+
* Contributing: http://www.tinymce.com/contributing
|
5403
|
+
*/
|
5404
|
+
|
5405
|
+
/**
|
5406
|
+
* This class handles loading of external stylesheets and fires events when these are loaded.
|
5407
|
+
*
|
5408
|
+
* @class tinymce.dom.StyleSheetLoader
|
5409
|
+
* @private
|
5410
|
+
*/
|
5411
|
+
define("tinymce/dom/StyleSheetLoader", [], function() {
|
5412
|
+
"use strict";
|
5413
|
+
|
5414
|
+
return function(document, settings) {
|
5415
|
+
var idCount = 0, loadedStates = {}, maxLoadTime;
|
5416
|
+
|
5417
|
+
settings = settings || {};
|
5418
|
+
maxLoadTime = settings.maxLoadTime || 5000;
|
5419
|
+
|
5420
|
+
function appendToHead(node) {
|
5421
|
+
document.getElementsByTagName('head')[0].appendChild(node);
|
5422
|
+
}
|
5423
|
+
|
5424
|
+
/**
|
5425
|
+
* Loads the specified css style sheet file and call the loadedCallback once it's finished loading.
|
5426
|
+
*
|
5427
|
+
* @method load
|
5428
|
+
* @param {String} url Url to be loaded.
|
5429
|
+
* @param {Function} loadedCallback Callback to be executed when loaded.
|
5430
|
+
* @param {Function} errorCallback Callback to be executed when failed loading.
|
5431
|
+
*/
|
5432
|
+
function load(url, loadedCallback, errorCallback) {
|
5433
|
+
var link, style, startTime, state;
|
5434
|
+
|
5435
|
+
function passed() {
|
5436
|
+
var callbacks = state.passed, i = callbacks.length;
|
5437
|
+
|
5438
|
+
while (i--) {
|
5439
|
+
callbacks[i]();
|
5440
|
+
}
|
5441
|
+
|
5442
|
+
state.status = 2;
|
5443
|
+
state.passed = [];
|
5444
|
+
state.failed = [];
|
5445
|
+
}
|
5446
|
+
|
5447
|
+
function failed() {
|
5448
|
+
var callbacks = state.failed, i = callbacks.length;
|
5449
|
+
|
5450
|
+
while (i--) {
|
5451
|
+
callbacks[i]();
|
5452
|
+
}
|
5453
|
+
|
5454
|
+
state.status = 3;
|
5455
|
+
state.passed = [];
|
5456
|
+
state.failed = [];
|
5457
|
+
}
|
5458
|
+
|
5459
|
+
// Sniffs for older WebKit versions that have the link.onload but a broken one
|
5460
|
+
function isOldWebKit() {
|
5461
|
+
var webKitChunks = navigator.userAgent.match(/WebKit\/(\d*)/);
|
5462
|
+
return !!(webKitChunks && webKitChunks[1] < 536);
|
5463
|
+
}
|
5464
|
+
|
5465
|
+
// Calls the waitCallback until the test returns true or the timeout occurs
|
5466
|
+
function wait(testCallback, waitCallback) {
|
5467
|
+
if (!testCallback()) {
|
5468
|
+
// Wait for timeout
|
5469
|
+
if ((new Date().getTime()) - startTime < maxLoadTime) {
|
5470
|
+
window.setTimeout(waitCallback, 0);
|
5471
|
+
} else {
|
5472
|
+
failed();
|
5473
|
+
}
|
5474
|
+
}
|
5475
|
+
}
|
5476
|
+
|
5477
|
+
// Workaround for WebKit that doesn't properly support the onload event for link elements
|
5478
|
+
// Or WebKit that fires the onload event before the StyleSheet is added to the document
|
5479
|
+
function waitForWebKitLinkLoaded() {
|
5480
|
+
wait(function() {
|
5481
|
+
var styleSheets = document.styleSheets, styleSheet, i = styleSheets.length, owner;
|
5482
|
+
|
5483
|
+
while (i--) {
|
5484
|
+
styleSheet = styleSheets[i];
|
5485
|
+
owner = styleSheet.ownerNode ? styleSheet.ownerNode : styleSheet.owningElement;
|
5486
|
+
if (owner && owner.id === link.id) {
|
5487
|
+
passed();
|
5488
|
+
return true;
|
5489
|
+
}
|
5490
|
+
}
|
5491
|
+
}, waitForWebKitLinkLoaded);
|
5492
|
+
}
|
5493
|
+
|
5494
|
+
// Workaround for older Geckos that doesn't have any onload event for StyleSheets
|
5495
|
+
function waitForGeckoLinkLoaded() {
|
5496
|
+
wait(function() {
|
5497
|
+
try {
|
5498
|
+
// Accessing the cssRules will throw an exception until the CSS file is loaded
|
5499
|
+
var cssRules = style.sheet.cssRules;
|
5500
|
+
passed();
|
5501
|
+
return !!cssRules;
|
5502
|
+
} catch (ex) {
|
5503
|
+
// Ignore
|
5504
|
+
}
|
5505
|
+
}, waitForGeckoLinkLoaded);
|
5506
|
+
}
|
5507
|
+
|
5508
|
+
if (!loadedStates[url]) {
|
5509
|
+
state = {
|
5510
|
+
passed: [],
|
5511
|
+
failed: []
|
5512
|
+
};
|
5513
|
+
|
5514
|
+
loadedStates[url] = state;
|
5515
|
+
} else {
|
5516
|
+
state = loadedStates[url];
|
5517
|
+
}
|
5518
|
+
|
5519
|
+
if (loadedCallback) {
|
5520
|
+
state.passed.push(loadedCallback);
|
5521
|
+
}
|
5522
|
+
|
5523
|
+
if (errorCallback) {
|
5524
|
+
state.failed.push(errorCallback);
|
5525
|
+
}
|
5526
|
+
|
5527
|
+
// Is loading wait for it to pass
|
5528
|
+
if (state.status == 1) {
|
5529
|
+
return;
|
5530
|
+
}
|
5531
|
+
|
5532
|
+
// Has finished loading and was success
|
5533
|
+
if (state.status == 2) {
|
5534
|
+
passed();
|
5535
|
+
return;
|
5536
|
+
}
|
5537
|
+
|
5538
|
+
// Has finished loading and was a failure
|
5539
|
+
if (state.status == 3) {
|
5540
|
+
failed();
|
5541
|
+
return;
|
5542
|
+
}
|
5543
|
+
|
5544
|
+
// Start loading
|
5545
|
+
state.status = 1;
|
5546
|
+
link = document.createElement('link');
|
5547
|
+
link.rel = 'stylesheet';
|
5548
|
+
link.type = 'text/css';
|
5549
|
+
link.id = 'u' + (idCount++);
|
5550
|
+
link.async = false;
|
5551
|
+
link.defer = false;
|
5552
|
+
startTime = new Date().getTime();
|
5553
|
+
|
5554
|
+
// Feature detect onload on link element and sniff older webkits since it has an broken onload event
|
5555
|
+
if ("onload" in link && !isOldWebKit()) {
|
5556
|
+
link.onload = waitForWebKitLinkLoaded;
|
5557
|
+
link.onerror = failed;
|
5558
|
+
} else {
|
5559
|
+
// Sniff for old Firefox that doesn't support the onload event on link elements
|
5560
|
+
// TODO: Remove this in the future when everyone uses modern browsers
|
5561
|
+
if (navigator.userAgent.indexOf("Firefox") > 0) {
|
5562
|
+
style = document.createElement('style');
|
5563
|
+
style.textContent = '@import "' + url + '"';
|
5564
|
+
waitForGeckoLinkLoaded();
|
5565
|
+
appendToHead(style);
|
5566
|
+
return;
|
5567
|
+
} else {
|
5568
|
+
// Use the id owner on older webkits
|
5569
|
+
waitForWebKitLinkLoaded();
|
5570
|
+
}
|
5571
|
+
}
|
5572
|
+
|
5573
|
+
appendToHead(link);
|
5574
|
+
link.href = url;
|
5575
|
+
}
|
5576
|
+
|
5577
|
+
this.load = load;
|
5578
|
+
};
|
5579
|
+
});
|
5580
|
+
|
5393
5581
|
// Included from: js/tinymce/classes/dom/DOMUtils.js
|
5394
5582
|
|
5395
5583
|
/**
|
@@ -5421,8 +5609,9 @@ define("tinymce/dom/DOMUtils", [
|
|
5421
5609
|
"tinymce/dom/Range",
|
5422
5610
|
"tinymce/html/Entities",
|
5423
5611
|
"tinymce/Env",
|
5424
|
-
"tinymce/util/Tools"
|
5425
|
-
|
5612
|
+
"tinymce/util/Tools",
|
5613
|
+
"tinymce/dom/StyleSheetLoader"
|
5614
|
+
], function(Sizzle, Styles, EventUtils, TreeWalker, Range, Entities, Env, Tools, StyleSheetLoader) {
|
5426
5615
|
// Shorten names
|
5427
5616
|
var each = Tools.each, is = Tools.is, grep = Tools.grep, trim = Tools.trim, extend = Tools.extend;
|
5428
5617
|
var isWebKit = Env.webkit, isIE = Env.ie;
|
@@ -5448,6 +5637,7 @@ define("tinymce/dom/DOMUtils", [
|
|
5448
5637
|
self.stdMode = !isIE || doc.documentMode >= 8;
|
5449
5638
|
self.boxModel = !isIE || doc.compatMode == "CSS1Compat" || self.stdMode;
|
5450
5639
|
self.hasOuterHTML = "outerHTML" in doc.createElement("a");
|
5640
|
+
self.styleSheetLoader = new StyleSheetLoader(doc);
|
5451
5641
|
this.boundEvents = [];
|
5452
5642
|
|
5453
5643
|
self.settings = settings = extend({
|
@@ -6395,8 +6585,8 @@ define("tinymce/dom/DOMUtils", [
|
|
6395
6585
|
|
6396
6586
|
// Add scroll offsets from documentElement or body since IE with the wrong box model will use d.body and so do WebKit
|
6397
6587
|
// Also remove the body/documentelement clientTop/clientLeft on IE 6, 7 since they offset the position
|
6398
|
-
x = pos.left + (doc.documentElement.scrollLeft || doc.body.scrollLeft) - rootElm.
|
6399
|
-
y = pos.top + (doc.documentElement.scrollTop || doc.body.scrollTop) - rootElm.
|
6588
|
+
x = pos.left + (doc.documentElement.scrollLeft || doc.body.scrollLeft) - rootElm.clientLeft;
|
6589
|
+
y = pos.top + (doc.documentElement.scrollTop || doc.body.scrollTop) - rootElm.clientTop;
|
6400
6590
|
|
6401
6591
|
return {x: x, y: y};
|
6402
6592
|
}
|
@@ -12189,11 +12379,13 @@ define("tinymce/dom/ControlSelection", [
|
|
12189
12379
|
var controlElm;
|
12190
12380
|
|
12191
12381
|
function isChildOrEqual(node, parent) {
|
12192
|
-
|
12193
|
-
|
12194
|
-
|
12195
|
-
|
12196
|
-
|
12382
|
+
if (node) {
|
12383
|
+
do {
|
12384
|
+
if (node === parent) {
|
12385
|
+
return true;
|
12386
|
+
}
|
12387
|
+
} while ((node = node.parentNode));
|
12388
|
+
}
|
12197
12389
|
}
|
12198
12390
|
|
12199
12391
|
// Remove data-mce-selected from all elements since they might have been copied using Ctrl+c/v
|
@@ -12204,7 +12396,7 @@ define("tinymce/dom/ControlSelection", [
|
|
12204
12396
|
controlElm = e.type == 'mousedown' ? e.target : selection.getNode();
|
12205
12397
|
controlElm = dom.getParent(controlElm, isIE ? 'table' : 'table,img,hr');
|
12206
12398
|
|
12207
|
-
if (controlElm) {
|
12399
|
+
if (isChildOrEqual(controlElm, editor.getBody())) {
|
12208
12400
|
disableGeckoResize();
|
12209
12401
|
|
12210
12402
|
if (isChildOrEqual(selection.getStart(), controlElm) && isChildOrEqual(selection.getEnd(), controlElm)) {
|
@@ -12366,6 +12558,10 @@ define("tinymce/dom/ControlSelection", [
|
|
12366
12558
|
}
|
12367
12559
|
|
12368
12560
|
return {
|
12561
|
+
isResizable: isResizable,
|
12562
|
+
showResizeRect: showResizeRect,
|
12563
|
+
hideResizeRect: hideResizeRect,
|
12564
|
+
updateResizeRect: updateResizeRect,
|
12369
12565
|
controlSelect: controlSelect,
|
12370
12566
|
destroy: destroy
|
12371
12567
|
};
|
@@ -12800,7 +12996,7 @@ define("tinymce/dom/Selection", [
|
|
12800
12996
|
|
12801
12997
|
if (type == 2) {
|
12802
12998
|
element = t.getNode();
|
12803
|
-
name = element.nodeName;
|
12999
|
+
name = element ? element.nodeName : null;
|
12804
13000
|
|
12805
13001
|
if (name == 'IMG') {
|
12806
13002
|
return {name: name, index: findIndex(name, element)};
|
@@ -13184,7 +13380,8 @@ define("tinymce/dom/Selection", [
|
|
13184
13380
|
}
|
13185
13381
|
|
13186
13382
|
// We have W3C ranges and it's IE then fake control selection since IE9 doesn't handle that correctly yet
|
13187
|
-
|
13383
|
+
// IE 11 doesn't support the selection object so we check for that as well
|
13384
|
+
if (isIE && rng && rng.setStart && doc.selection) {
|
13188
13385
|
try {
|
13189
13386
|
// IE will sometimes throw an exception here
|
13190
13387
|
ieRng = doc.selection.createRange();
|
@@ -15969,7 +16166,7 @@ define("tinymce/Formatter", [
|
|
15969
16166
|
next = next ? 'nextSibling' : 'previousSibling';
|
15970
16167
|
|
15971
16168
|
for (node = inc ? node : node[next]; node; node = node[next]) {
|
15972
|
-
if (node.nodeType == 1
|
16169
|
+
if (node.nodeType == 1 && !isWhiteSpaceNode(node)) {
|
15973
16170
|
return node;
|
15974
16171
|
}
|
15975
16172
|
}
|
@@ -16027,7 +16224,7 @@ define("tinymce/Formatter", [
|
|
16027
16224
|
var name = attr.nodeName.toLowerCase();
|
16028
16225
|
|
16029
16226
|
// Don't compare internal attributes or style
|
16030
|
-
if (name.indexOf('_') !== 0 && name !== 'style') {
|
16227
|
+
if (name.indexOf('_') !== 0 && name !== 'style' && name !== 'data-mce-style') {
|
16031
16228
|
attribs[name] = dom.getAttrib(node, name);
|
16032
16229
|
}
|
16033
16230
|
});
|
@@ -18166,10 +18363,10 @@ define("tinymce/EditorCommands", [
|
|
18166
18363
|
}
|
18167
18364
|
|
18168
18365
|
each(selection.getSelectedBlocks(), function(element) {
|
18169
|
-
var indentStyleName;
|
18170
|
-
|
18171
18366
|
if (element.nodeName != "LI") {
|
18172
|
-
indentStyleName =
|
18367
|
+
var indentStyleName = editor.getParam('indent_use_margin', false) ? 'margin' : 'padding';
|
18368
|
+
|
18369
|
+
indentStyleName += dom.getStyle(element, 'direction', true) == 'rtl' ? 'Right' : 'Left';
|
18173
18370
|
|
18174
18371
|
if (command == 'outdent') {
|
18175
18372
|
value = Math.max(0, parseInt(element.style[indentStyleName] || 0, 10) - intentValue);
|
@@ -19835,7 +20032,6 @@ define("tinymce/ui/Control", [
|
|
19835
20032
|
|
19836
20033
|
var Control = Class.extend({
|
19837
20034
|
Statics: {
|
19838
|
-
controlIdLookup: {},
|
19839
20035
|
elementIdCache: elementIdCache
|
19840
20036
|
},
|
19841
20037
|
|
@@ -19957,10 +20153,10 @@ define("tinymce/ui/Control", [
|
|
19957
20153
|
* @return {tinymce.ui.Control} Control instance or undefined.
|
19958
20154
|
*/
|
19959
20155
|
getParentCtrl: function(elm) {
|
19960
|
-
var ctrl;
|
20156
|
+
var ctrl, lookup = this.getRoot().controlIdLookup;
|
19961
20157
|
|
19962
|
-
while (elm) {
|
19963
|
-
ctrl =
|
20158
|
+
while (elm && lookup) {
|
20159
|
+
ctrl = lookup[elm.id];
|
19964
20160
|
if (ctrl) {
|
19965
20161
|
break;
|
19966
20162
|
}
|
@@ -20840,7 +21036,7 @@ define("tinymce/ui/Control", [
|
|
20840
21036
|
|
20841
21037
|
if (self._rendered) {
|
20842
21038
|
if (name == 'label') {
|
20843
|
-
elm.setAttribute('aria-
|
21039
|
+
elm.setAttribute('aria-labelledby', self._id);
|
20844
21040
|
}
|
20845
21041
|
|
20846
21042
|
elm.setAttribute(name == 'role' ? name : 'aria-' + name, value);
|
@@ -20936,7 +21132,11 @@ define("tinymce/ui/Control", [
|
|
20936
21132
|
DomUtils.off(elm);
|
20937
21133
|
}
|
20938
21134
|
|
20939
|
-
|
21135
|
+
var lookup = self.getRoot().controlIdLookup;
|
21136
|
+
if (lookup) {
|
21137
|
+
delete lookup[self._id];
|
21138
|
+
}
|
21139
|
+
|
20940
21140
|
delete elementIdCache[self._id];
|
20941
21141
|
|
20942
21142
|
if (elm && elm.parentNode) {
|
@@ -20950,6 +21150,8 @@ define("tinymce/ui/Control", [
|
|
20950
21150
|
elm.parentNode.removeChild(elm);
|
20951
21151
|
}
|
20952
21152
|
|
21153
|
+
self._rendered = false;
|
21154
|
+
|
20953
21155
|
return self;
|
20954
21156
|
},
|
20955
21157
|
|
@@ -21039,7 +21241,12 @@ define("tinymce/ui/Control", [
|
|
21039
21241
|
}
|
21040
21242
|
|
21041
21243
|
// Add instance to lookup
|
21042
|
-
|
21244
|
+
var root = self.getRoot();
|
21245
|
+
if (!root.controlIdLookup) {
|
21246
|
+
root.controlIdLookup = {};
|
21247
|
+
}
|
21248
|
+
|
21249
|
+
root.controlIdLookup[self._id] = self;
|
21043
21250
|
|
21044
21251
|
for (var key in self._aria) {
|
21045
21252
|
self.aria(key, self._aria[key]);
|
@@ -21235,6 +21442,32 @@ define("tinymce/ui/Control", [
|
|
21235
21442
|
}
|
21236
21443
|
},
|
21237
21444
|
|
21445
|
+
getRoot: function() {
|
21446
|
+
var ctrl = this, rootControl, parents = [];
|
21447
|
+
|
21448
|
+
while (ctrl) {
|
21449
|
+
if (ctrl.rootControl) {
|
21450
|
+
rootControl = ctrl.rootControl;
|
21451
|
+
break;
|
21452
|
+
}
|
21453
|
+
|
21454
|
+
parents.push(ctrl);
|
21455
|
+
rootControl = ctrl;
|
21456
|
+
ctrl = ctrl.parent();
|
21457
|
+
}
|
21458
|
+
|
21459
|
+
if (!rootControl) {
|
21460
|
+
rootControl = this;
|
21461
|
+
}
|
21462
|
+
|
21463
|
+
var i = parents.length;
|
21464
|
+
while (i--) {
|
21465
|
+
parents[i].rootControl = rootControl;
|
21466
|
+
}
|
21467
|
+
|
21468
|
+
return rootControl;
|
21469
|
+
},
|
21470
|
+
|
21238
21471
|
/**
|
21239
21472
|
* Reflows the current control and it's parents.
|
21240
21473
|
* This should be used after you for example append children to the current control so
|
@@ -21783,13 +22016,13 @@ define("tinymce/ui/Container", [
|
|
21783
22016
|
* @return {String} HTML representing the control.
|
21784
22017
|
*/
|
21785
22018
|
renderHtml: function() {
|
21786
|
-
var self = this, layout = self._layout;
|
22019
|
+
var self = this, layout = self._layout, role = this.settings.role;
|
21787
22020
|
|
21788
22021
|
self.preRender();
|
21789
22022
|
layout.preRender(self);
|
21790
22023
|
|
21791
22024
|
return (
|
21792
|
-
'<div id="' + self._id + '" class="' + self.classes() + '" role="' + this.settings.role + '">' +
|
22025
|
+
'<div id="' + self._id + '" class="' + self.classes() + '"' + (role ? ' role="' + this.settings.role + '"' : '') + '>' +
|
21793
22026
|
'<div id="' + self._id + '-body" class="' + self.classes('body') + '">'+
|
21794
22027
|
(self.settings.html || '') + layout.renderHtml(self) +
|
21795
22028
|
'</div>' +
|
@@ -22668,13 +22901,11 @@ define("tinymce/ui/FloatPanel", [
|
|
22668
22901
|
if (settings.autohide) {
|
22669
22902
|
if (!documentClickHandler) {
|
22670
22903
|
documentClickHandler = function(e) {
|
22671
|
-
var i, clickCtrl = self.getParentCtrl(e.target);
|
22672
|
-
|
22673
22904
|
// Hide any float panel when a click is out side that float panel and the
|
22674
22905
|
// float panels direct parent for example a click on a menu button
|
22675
|
-
i = visiblePanels.length;
|
22906
|
+
var i = visiblePanels.length;
|
22676
22907
|
while (i--) {
|
22677
|
-
var panel = visiblePanels[i];
|
22908
|
+
var panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target);
|
22678
22909
|
|
22679
22910
|
if (panel.settings.autohide) {
|
22680
22911
|
if (clickCtrl) {
|
@@ -23561,7 +23792,7 @@ define("tinymce/ui/Window", [
|
|
23561
23792
|
focusCtrl = focusCtrl || ctrl;
|
23562
23793
|
|
23563
23794
|
// TODO: Figure out a better way
|
23564
|
-
if (ctrl.
|
23795
|
+
if (ctrl.subinput) {
|
23565
23796
|
items.push(ctrl.getEl('inp'));
|
23566
23797
|
|
23567
23798
|
if (ctrl.getEl('open')) {
|
@@ -24264,7 +24495,7 @@ define("tinymce/util/Quirks", [
|
|
24264
24495
|
});
|
24265
24496
|
|
24266
24497
|
editor.on('keypress', function(e) {
|
24267
|
-
if (!isDefaultPrevented(e) && !selection.isCollapsed() && e.charCode) {
|
24498
|
+
if (!isDefaultPrevented(e) && !selection.isCollapsed() && e.charCode && !VK.metaKeyPressed(e)) {
|
24268
24499
|
e.preventDefault();
|
24269
24500
|
customDelete(true);
|
24270
24501
|
editor.selection.setContent(String.fromCharCode(e.charCode));
|
@@ -24415,7 +24646,7 @@ define("tinymce/util/Quirks", [
|
|
24415
24646
|
// Case 2 IME doesn't initialize if you click the documentElement it also doesn't properly fire the focusin event
|
24416
24647
|
dom.bind(editor.getDoc(), 'mousedown', function(e) {
|
24417
24648
|
if (e.target == editor.getDoc().documentElement) {
|
24418
|
-
editor.
|
24649
|
+
editor.getBody().focus();
|
24419
24650
|
selection.setRng(selection.getRng());
|
24420
24651
|
}
|
24421
24652
|
});
|
@@ -25064,6 +25295,13 @@ define("tinymce/util/Quirks", [
|
|
25064
25295
|
}
|
25065
25296
|
}
|
25066
25297
|
|
25298
|
+
/**
|
25299
|
+
* Disables the autolinking in IE 9+ this is then re-enabled by the autolink plugin.
|
25300
|
+
*/
|
25301
|
+
function disableAutoUrlDetect() {
|
25302
|
+
setEditorCommandState("AutoUrlDetect", false);
|
25303
|
+
}
|
25304
|
+
|
25067
25305
|
// All browsers
|
25068
25306
|
disableBackspaceIntoATable();
|
25069
25307
|
removeBlockQuoteOnBackSpace();
|
@@ -25105,6 +25343,7 @@ define("tinymce/util/Quirks", [
|
|
25105
25343
|
|
25106
25344
|
if (Env.ie) {
|
25107
25345
|
selectAll();
|
25346
|
+
disableAutoUrlDetect();
|
25108
25347
|
}
|
25109
25348
|
|
25110
25349
|
// Gecko
|
@@ -25560,13 +25799,13 @@ define("tinymce/Editor", [
|
|
25560
25799
|
var isGecko = Env.gecko, ie = Env.ie;
|
25561
25800
|
|
25562
25801
|
function getEventTarget(editor, eventName) {
|
25563
|
-
if (eventName == 'selectionchange'
|
25802
|
+
if (eventName == 'selectionchange') {
|
25564
25803
|
return editor.getDoc();
|
25565
25804
|
}
|
25566
25805
|
|
25567
25806
|
// Need to bind mousedown/mouseup etc to document not body in iframe mode
|
25568
25807
|
// Since the user might click on the HTML element not the BODY
|
25569
|
-
if (!editor.inline && /^mouse|click|contextmenu/.test(eventName)) {
|
25808
|
+
if (!editor.inline && /^mouse|click|contextmenu|drop/.test(eventName)) {
|
25570
25809
|
return editor.getDoc();
|
25571
25810
|
}
|
25572
25811
|
|
@@ -25745,8 +25984,8 @@ define("tinymce/Editor", [
|
|
25745
25984
|
self.inline = settings.inline;
|
25746
25985
|
|
25747
25986
|
// Call setup
|
25748
|
-
self.execCallback('setup', self);
|
25749
25987
|
editorManager.fire('SetupEditor', self);
|
25988
|
+
self.execCallback('setup', self);
|
25750
25989
|
}
|
25751
25990
|
|
25752
25991
|
Editor.prototype = {
|
@@ -25872,7 +26111,7 @@ define("tinymce/Editor", [
|
|
25872
26111
|
function loadScripts() {
|
25873
26112
|
var scriptLoader = ScriptLoader.ScriptLoader;
|
25874
26113
|
|
25875
|
-
if (settings.language && settings.language != 'en') {
|
26114
|
+
if (settings.language && settings.language != 'en' && !settings.language_url) {
|
25876
26115
|
settings.language_url = self.editorManager.baseURL + '/langs/' + settings.language + '.js';
|
25877
26116
|
}
|
25878
26117
|
|
@@ -27917,7 +28156,11 @@ define("tinymce/FocusManager", [
|
|
27917
28156
|
if (!isUIElement(getActiveElement()) && focusedEditor == editor) {
|
27918
28157
|
editor.fire('blur', {focusedEditor: null});
|
27919
28158
|
editorManager.focusedEditor = null;
|
27920
|
-
|
28159
|
+
|
28160
|
+
// Make sure selection is valid could be invalid if the editor is blured and removed before the timeout occurs
|
28161
|
+
if (editor.selection) {
|
28162
|
+
editor.selection.lastFocusBookmark = null;
|
28163
|
+
}
|
27921
28164
|
}
|
27922
28165
|
}, 0);
|
27923
28166
|
});
|
@@ -27929,7 +28172,11 @@ define("tinymce/FocusManager", [
|
|
27929
28172
|
var activeEditor = editorManager.activeEditor;
|
27930
28173
|
|
27931
28174
|
if (activeEditor && e.target.ownerDocument == document) {
|
27932
|
-
|
28175
|
+
|
28176
|
+
// Check to make sure we have a valid selection
|
28177
|
+
if (activeEditor.selection) {
|
28178
|
+
activeEditor.selection.lastFocusBookmark = createBookmark(activeEditor.lastRng);
|
28179
|
+
}
|
27933
28180
|
|
27934
28181
|
// Fire a blur event if the element isn't a UI element
|
27935
28182
|
if (!isUIElement(e.target) && editorManager.focusedEditor == activeEditor) {
|
@@ -28007,7 +28254,7 @@ define("tinymce/EditorManager", [
|
|
28007
28254
|
* @property minorVersion
|
28008
28255
|
* @type String
|
28009
28256
|
*/
|
28010
|
-
minorVersion : '0.
|
28257
|
+
minorVersion : '0.16',
|
28011
28258
|
|
28012
28259
|
/**
|
28013
28260
|
* Release date of TinyMCE build.
|
@@ -28015,7 +28262,7 @@ define("tinymce/EditorManager", [
|
|
28015
28262
|
* @property releaseDate
|
28016
28263
|
* @type String
|
28017
28264
|
*/
|
28018
|
-
releaseDate: '
|
28265
|
+
releaseDate: '2014-01-31',
|
28019
28266
|
|
28020
28267
|
/**
|
28021
28268
|
* Collection of editor instances.
|
@@ -30023,7 +30270,7 @@ define("tinymce/ui/Checkbox", [
|
|
30023
30270
|
var self = this, id = self._id, prefix = self.classPrefix;
|
30024
30271
|
|
30025
30272
|
return (
|
30026
|
-
'<div id="' + id + '" class="' + self.classes() + '" unselectable="on" aria-
|
30273
|
+
'<div id="' + id + '" class="' + self.classes() + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' +
|
30027
30274
|
'<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' +
|
30028
30275
|
'<span id="' + id +'-al" class="' + prefix + 'label">' + self.encode(self._text) + '</span>' +
|
30029
30276
|
'</div>'
|
@@ -30258,8 +30505,9 @@ define("tinymce/ui/ColorButton", [
|
|
30258
30505
|
*/
|
30259
30506
|
define("tinymce/ui/ComboBox", [
|
30260
30507
|
"tinymce/ui/Widget",
|
30508
|
+
"tinymce/ui/Factory",
|
30261
30509
|
"tinymce/ui/DomUtils"
|
30262
|
-
], function(Widget, DomUtils) {
|
30510
|
+
], function(Widget, Factory, DomUtils) {
|
30263
30511
|
"use strict";
|
30264
30512
|
|
30265
30513
|
return Widget.extend({
|
@@ -30275,6 +30523,14 @@ define("tinymce/ui/ComboBox", [
|
|
30275
30523
|
|
30276
30524
|
self._super(settings);
|
30277
30525
|
self.addClass('combobox');
|
30526
|
+
self.subinput = true;
|
30527
|
+
|
30528
|
+
settings = self.settings;
|
30529
|
+
settings.menu = settings.menu || settings.values;
|
30530
|
+
|
30531
|
+
if (settings.menu) {
|
30532
|
+
settings.icon = 'caret';
|
30533
|
+
}
|
30278
30534
|
|
30279
30535
|
self.on('click', function(e) {
|
30280
30536
|
var elm = e.target;
|
@@ -30282,6 +30538,14 @@ define("tinymce/ui/ComboBox", [
|
|
30282
30538
|
while (elm) {
|
30283
30539
|
if (elm.id && elm.id.indexOf('-open') != -1) {
|
30284
30540
|
self.fire('action');
|
30541
|
+
|
30542
|
+
if (settings.menu) {
|
30543
|
+
self.showMenu();
|
30544
|
+
|
30545
|
+
if (e.keyboard) {
|
30546
|
+
self.menu.items()[0].focus();
|
30547
|
+
}
|
30548
|
+
}
|
30285
30549
|
}
|
30286
30550
|
|
30287
30551
|
elm = elm.parentNode;
|
@@ -30330,6 +30594,55 @@ define("tinymce/ui/ComboBox", [
|
|
30330
30594
|
}
|
30331
30595
|
},
|
30332
30596
|
|
30597
|
+
showMenu: function() {
|
30598
|
+
var self = this, settings = self.settings, menu;
|
30599
|
+
|
30600
|
+
if (!self.menu) {
|
30601
|
+
menu = settings.menu || [];
|
30602
|
+
|
30603
|
+
// Is menu array then auto constuct menu control
|
30604
|
+
if (menu.length) {
|
30605
|
+
menu = {
|
30606
|
+
type: 'menu',
|
30607
|
+
items: menu
|
30608
|
+
};
|
30609
|
+
} else {
|
30610
|
+
menu.type = menu.type || 'menu';
|
30611
|
+
}
|
30612
|
+
|
30613
|
+
self.menu = Factory.create(menu).parent(self).renderTo(self.getContainerElm());
|
30614
|
+
self.fire('createmenu');
|
30615
|
+
self.menu.reflow();
|
30616
|
+
self.menu.on('cancel', function(e) {
|
30617
|
+
if (e.control === self.menu) {
|
30618
|
+
self.focus();
|
30619
|
+
}
|
30620
|
+
});
|
30621
|
+
|
30622
|
+
self.menu.on('show hide', function(e) {
|
30623
|
+
e.control.items().each(function(ctrl) {
|
30624
|
+
ctrl.active(ctrl.value() == self.value());
|
30625
|
+
});
|
30626
|
+
}).fire('show');
|
30627
|
+
|
30628
|
+
self.menu.on('select', function(e) {
|
30629
|
+
self.value(e.control.value());
|
30630
|
+
});
|
30631
|
+
|
30632
|
+
self.on('focusin', function(e) {
|
30633
|
+
if (e.target.tagName == 'INPUT') {
|
30634
|
+
self.menu.hide();
|
30635
|
+
}
|
30636
|
+
});
|
30637
|
+
|
30638
|
+
self.aria('expanded', true);
|
30639
|
+
}
|
30640
|
+
|
30641
|
+
self.menu.show();
|
30642
|
+
self.menu.layoutRect({w: self.layoutRect().w});
|
30643
|
+
self.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']);
|
30644
|
+
},
|
30645
|
+
|
30333
30646
|
/**
|
30334
30647
|
* Getter/setter function for the control value.
|
30335
30648
|
*
|
@@ -30451,16 +30764,40 @@ define("tinymce/ui/ComboBox", [
|
|
30451
30764
|
renderHtml: function() {
|
30452
30765
|
var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix;
|
30453
30766
|
var value = settings.value || settings.placeholder || '';
|
30454
|
-
var icon, text, openBtnHtml = '';
|
30767
|
+
var icon, text, openBtnHtml = '', extraAttrs = '';
|
30768
|
+
|
30769
|
+
if ("spellcheck" in settings) {
|
30770
|
+
extraAttrs += ' spellcheck="' + settings.spellcheck + '"';
|
30771
|
+
}
|
30772
|
+
|
30773
|
+
if (settings.maxLength) {
|
30774
|
+
extraAttrs += ' maxlength="' + settings.maxLength + '"';
|
30775
|
+
}
|
30776
|
+
|
30777
|
+
if (settings.size) {
|
30778
|
+
extraAttrs += ' size="' + settings.size + '"';
|
30779
|
+
}
|
30780
|
+
|
30781
|
+
if (settings.subtype) {
|
30782
|
+
extraAttrs += ' type="' + settings.subtype + '"';
|
30783
|
+
}
|
30784
|
+
|
30785
|
+
if (self.disabled()) {
|
30786
|
+
extraAttrs += ' disabled="disabled"';
|
30787
|
+
}
|
30788
|
+
|
30789
|
+
icon = settings.icon;
|
30790
|
+
if (icon && icon != 'caret') {
|
30791
|
+
icon = prefix + 'ico ' + prefix + 'i-' + settings.icon;
|
30792
|
+
}
|
30455
30793
|
|
30456
|
-
icon = settings.icon ? prefix + 'ico ' + prefix + 'i-' + settings.icon : '';
|
30457
30794
|
text = self._text;
|
30458
30795
|
|
30459
30796
|
if (icon || text) {
|
30460
30797
|
openBtnHtml = (
|
30461
30798
|
'<div id="' + id + '-open" class="' + prefix + 'btn ' + prefix + 'open" tabIndex="-1">' +
|
30462
30799
|
'<button id="' + id + '-action" type="button" hidefocus tabindex="-1">' +
|
30463
|
-
(icon ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') +
|
30800
|
+
(icon != 'caret' ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') +
|
30464
30801
|
(text ? (icon ? ' ' : '') + text : '') +
|
30465
30802
|
'</button>' +
|
30466
30803
|
'</div>'
|
@@ -30472,7 +30809,7 @@ define("tinymce/ui/ComboBox", [
|
|
30472
30809
|
return (
|
30473
30810
|
'<div id="' + id + '" class="' + self.classes() + '">' +
|
30474
30811
|
'<input id="' + id + '-inp" class="' + prefix + 'textbox ' + prefix + 'placeholder" value="' +
|
30475
|
-
value + '" hidefocus="true"' +
|
30812
|
+
value + '" hidefocus="true"' + extraAttrs + '>' +
|
30476
30813
|
openBtnHtml +
|
30477
30814
|
'</div>'
|
30478
30815
|
);
|
@@ -30844,7 +31181,7 @@ define("tinymce/ui/Form", [
|
|
30844
31181
|
autoResize: "overflow",
|
30845
31182
|
defaults: {flex: 1},
|
30846
31183
|
items: [
|
30847
|
-
{type: 'label', text: label, flex: 0, forId: ctrl._id}
|
31184
|
+
{type: 'label', text: label, flex: 0, forId: ctrl._id, disabled: ctrl.disabled()}
|
30848
31185
|
]
|
30849
31186
|
});
|
30850
31187
|
|
@@ -31457,7 +31794,7 @@ define("tinymce/ui/FormatControls", [
|
|
31457
31794
|
// Default preview
|
31458
31795
|
if (!previewStyles) {
|
31459
31796
|
previewStyles = 'font-family font-size font-weight font-style text-decoration ' +
|
31460
|
-
'text-transform color background-color border border-radius';
|
31797
|
+
'text-transform color background-color border border-radius outline text-shadow';
|
31461
31798
|
}
|
31462
31799
|
|
31463
31800
|
// Removes any variables since these can't be previewed
|
@@ -31679,17 +32016,31 @@ define("tinymce/ui/FormatControls", [
|
|
31679
32016
|
return menu;
|
31680
32017
|
}
|
31681
32018
|
|
32019
|
+
function createStylesMenu() {
|
32020
|
+
var menu;
|
32021
|
+
|
32022
|
+
if (editor.settings.style_formats_merge) {
|
32023
|
+
if (editor.settings.style_formats) {
|
32024
|
+
menu = createMenu(defaultStyleFormats.concat(editor.settings.style_formats));
|
32025
|
+
} else {
|
32026
|
+
menu = createMenu(defaultStyleFormats);
|
32027
|
+
}
|
32028
|
+
} else {
|
32029
|
+
menu = createMenu(editor.settings.style_formats || defaultStyleFormats);
|
32030
|
+
}
|
32031
|
+
|
32032
|
+
return menu;
|
32033
|
+
}
|
32034
|
+
|
31682
32035
|
editor.on('init', function() {
|
31683
32036
|
each(newFormats, function(format) {
|
31684
32037
|
editor.formatter.register(format.name, format);
|
31685
32038
|
});
|
31686
32039
|
});
|
31687
32040
|
|
31688
|
-
|
31689
|
-
|
31690
|
-
menu = {
|
32041
|
+
return {
|
31691
32042
|
type: 'menu',
|
31692
|
-
items:
|
32043
|
+
items: createStylesMenu(),
|
31693
32044
|
onPostRender: function(e) {
|
31694
32045
|
editor.fire('renderFormatsMenu', {control: e.control});
|
31695
32046
|
},
|
@@ -31720,8 +32071,6 @@ define("tinymce/ui/FormatControls", [
|
|
31720
32071
|
}
|
31721
32072
|
}
|
31722
32073
|
};
|
31723
|
-
|
31724
|
-
return menu;
|
31725
32074
|
}
|
31726
32075
|
|
31727
32076
|
formatMenu = createFormatMenu();
|
@@ -31781,7 +32130,7 @@ define("tinymce/ui/FormatControls", [
|
|
31781
32130
|
|
31782
32131
|
// Simple command controls with format state
|
31783
32132
|
each({
|
31784
|
-
blockquote: ['
|
32133
|
+
blockquote: ['Blockquote', 'mceBlockQuote'],
|
31785
32134
|
numlist: ['Numbered list', 'InsertOrderedList'],
|
31786
32135
|
bullist: ['Bullet list', 'InsertUnorderedList'],
|
31787
32136
|
subscript: ['Subscript', 'Subscript'],
|
@@ -32476,7 +32825,7 @@ define("tinymce/ui/Label", [
|
|
32476
32825
|
var self = this, forId = self.settings.forId;
|
32477
32826
|
|
32478
32827
|
return (
|
32479
|
-
'<label id="' + self._id + '" class="' + self.classes() + '"' + (forId ? ' for="' + forId : '') + '
|
32828
|
+
'<label id="' + self._id + '" class="' + self.classes() + '"' + (forId ? ' for="' + forId +'"' : '') + '>' +
|
32480
32829
|
self.encode(self._text) +
|
32481
32830
|
'</label>'
|
32482
32831
|
);
|
@@ -33478,7 +33827,7 @@ define("tinymce/ui/ResizeHandle", [
|
|
33478
33827
|
self.fire('Resize', e);
|
33479
33828
|
},
|
33480
33829
|
|
33481
|
-
|
33830
|
+
stop: function() {
|
33482
33831
|
self.fire('ResizeEnd');
|
33483
33832
|
}
|
33484
33833
|
});
|
@@ -34152,5 +34501,5 @@ define("tinymce/ui/Throbber", [
|
|
34152
34501
|
};
|
34153
34502
|
});
|
34154
34503
|
|
34155
|
-
expose(["tinymce/dom/EventUtils","tinymce/dom/Sizzle","tinymce/dom/DomQuery","tinymce/html/Styles","tinymce/dom/TreeWalker","tinymce/util/Tools","tinymce/dom/Range","tinymce/html/Entities","tinymce/Env","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/dom/TridentSelection","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/Selection","tinymce/dom/RangeUtils","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/DomUtils","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/KeyboardNavigation","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/util/Quirks","tinymce/util/Observable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/LegacyInput","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/Tooltip","tinymce/ui/Widget","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/ui/ComboBox","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/ListBox","tinymce/ui/MenuItem","tinymce/ui/Menu","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox","tinymce/ui/Throbber"]);
|
34504
|
+
expose(["tinymce/dom/EventUtils","tinymce/dom/Sizzle","tinymce/dom/DomQuery","tinymce/html/Styles","tinymce/dom/TreeWalker","tinymce/util/Tools","tinymce/dom/Range","tinymce/html/Entities","tinymce/Env","tinymce/dom/StyleSheetLoader","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/dom/TridentSelection","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/Selection","tinymce/dom/RangeUtils","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/DomUtils","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/KeyboardNavigation","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/util/Quirks","tinymce/util/Observable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/LegacyInput","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/Tooltip","tinymce/ui/Widget","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/ui/ComboBox","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/ListBox","tinymce/ui/MenuItem","tinymce/ui/Menu","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox","tinymce/ui/Throbber"]);
|
34156
34505
|
})(this);
|