tinymce-rails 4.5.1 → 4.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -8
- data/app/assets/source/tinymce/tinymce.js +337 -60
- data/lib/tinymce/rails/engine.rb +4 -4
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/jquery.tinymce.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +1 -1
- 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/charmap/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/fullpage/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/imagetools/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/lists/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/textcolor/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/textpattern/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/toc/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/wordcount/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/themes/inlite/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/modern/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/tinymce.js +14 -14
- metadata +2 -63
- data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.dev.js +0 -141
- data/vendor/assets/javascripts/tinymce/plugins/layer/plugin.js +0 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.dev.js +0 -143
- data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.dev.js +0 -139
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.dev.js +0 -143
- data/vendor/assets/javascripts/tinymce/skins/lightgray/AbsoluteLayout.less +0 -17
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Animations.less +0 -10
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Arrows.less +0 -115
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Button.less +0 -175
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ButtonGroup.less +0 -71
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Checkbox.less +0 -49
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ColorBox.less +0 -6
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ColorButton.less +0 -72
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ColorPicker.less +0 -80
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ComboBox.less +0 -97
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Container.less +0 -9
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Content.Inline.less +0 -4
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Content.Objects.less +0 -178
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Content.less +0 -27
- data/vendor/assets/javascripts/tinymce/skins/lightgray/CropRect.less +0 -62
- data/vendor/assets/javascripts/tinymce/skins/lightgray/FieldSet.less +0 -15
- data/vendor/assets/javascripts/tinymce/skins/lightgray/FitLayout.less +0 -9
- data/vendor/assets/javascripts/tinymce/skins/lightgray/FloatPanel.less +0 -69
- data/vendor/assets/javascripts/tinymce/skins/lightgray/FlowLayout.less +0 -36
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Icons.Ie7.less +0 -136
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Icons.less +0 -182
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Iframe.less +0 -6
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ImagePanel.less +0 -25
- data/vendor/assets/javascripts/tinymce/skins/lightgray/InfoBox.less +0 -71
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Label.less +0 -38
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ListBox.less +0 -26
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Menu.less +0 -34
- data/vendor/assets/javascripts/tinymce/skins/lightgray/MenuBar.less +0 -32
- data/vendor/assets/javascripts/tinymce/skins/lightgray/MenuButton.less +0 -34
- data/vendor/assets/javascripts/tinymce/skins/lightgray/MenuItem.less +0 -176
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Mixins.less +0 -54
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Notification.less +0 -142
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Panel.less +0 -7
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Path.less +0 -45
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Progress.less +0 -34
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Radio.less +0 -1
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Reset.less +0 -32
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ResizeHandle.less +0 -18
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Scrollable.less +0 -44
- data/vendor/assets/javascripts/tinymce/skins/lightgray/SelectBox.less +0 -6
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Sidebar.less +0 -49
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Slider.less +0 -33
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Spacer.less +0 -5
- data/vendor/assets/javascripts/tinymce/skins/lightgray/SplitButton.less +0 -49
- data/vendor/assets/javascripts/tinymce/skins/lightgray/StackLayout.less +0 -5
- data/vendor/assets/javascripts/tinymce/skins/lightgray/TabPanel.less +0 -44
- data/vendor/assets/javascripts/tinymce/skins/lightgray/TextBox.less +0 -41
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Throbber.less +0 -19
- data/vendor/assets/javascripts/tinymce/skins/lightgray/TinyMCE.less +0 -159
- data/vendor/assets/javascripts/tinymce/skins/lightgray/ToolTip.less +0 -133
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Variables.less +0 -218
- data/vendor/assets/javascripts/tinymce/skins/lightgray/Window.less +0 -127
- data/vendor/assets/javascripts/tinymce/skins/lightgray/skin.dev.less +0 -48
- data/vendor/assets/javascripts/tinymce/skins/lightgray/skin.ie7.dev.less +0 -47
- data/vendor/assets/javascripts/tinymce/skins/lightgray/skin.ie7.less +0 -2777
- data/vendor/assets/javascripts/tinymce/skins/lightgray/skin.less +0 -2874
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 774856e68bfdc0e95ca168f1618932b9cdb08938
|
4
|
+
data.tar.gz: aa4c60fc005a90f4c5f97a45ba7b669d422872f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4099dd85f4a21a4740bee21af2ed921a27c17b90f09bb89bdb23708934d1ef0d7161b7bc2a662b08d275e6456c48f97c5cd53d81aef3aaf2179bd7020273ca7a
|
7
|
+
data.tar.gz: 21755728d8469875420cdccedafa14063f20d4f93e3b797cad17f6cc0f7c8f0e03a1b90e6a767083109dc2e828dd6814bd04991661c38bd8d48b6d400ddd10dd
|
data/README.md
CHANGED
@@ -85,7 +85,7 @@ For each textarea that you want to use with TinyMCE, add the "tinymce" class and
|
|
85
85
|
```erb
|
86
86
|
<%= text_area_tag :content, "", :class => "tinymce", :rows => 40, :cols => 120 %>
|
87
87
|
```
|
88
|
-
|
88
|
+
|
89
89
|
or if you are using Rails' form builders:
|
90
90
|
|
91
91
|
```erb
|
@@ -138,22 +138,20 @@ Asset Compilation
|
|
138
138
|
|
139
139
|
Since TinyMCE loads most of its files dynamically, some workarounds are required to ensure that the TinyMCE asset files are accessible using non-digested filenames.
|
140
140
|
|
141
|
-
As of tinymce-rails 3.5.11, 4.1.10 and 4.2.1, two alternative asset installation methods are available, which can be changed by setting `config.tinymce.install` within your `config/application.rb` file.
|
141
|
+
As of tinymce-rails 3.5.11, 4.1.10 and 4.2.1, two alternative asset installation methods are available, which can be changed by setting `config.tinymce.install` within your `config/application.rb` file. These methods are called when you run `rake asset:precompile` (via `Rake::Task#enhance`) after the regular application assets are compiled.
|
142
142
|
|
143
|
-
The default method, `
|
143
|
+
The default method (as of 4.5.2), `compile`, adds the TinyMCE paths to the Sprockets precompilation paths and then creates symlinks from the non-digested filenames to their digested versions.
|
144
144
|
|
145
145
|
```ruby
|
146
|
-
config.tinymce.install = :
|
146
|
+
config.tinymce.install = :compile
|
147
147
|
```
|
148
148
|
|
149
|
-
|
149
|
+
If you experience issues with the `compile` method, you may wish to use the `copy` method instead, which copies the TinyMCE assets directly into `public/assets` and appends the file information into the asset manifest.
|
150
150
|
|
151
151
|
```ruby
|
152
|
-
config.tinymce.install = :
|
152
|
+
config.tinymce.install = :copy
|
153
153
|
```
|
154
154
|
|
155
|
-
Due to compilation times, this method is only recommended using Rails 4 and up. This method is intended to eventually become the default, so please try it if it suits your environment and report any issues.
|
156
|
-
|
157
155
|
If you are including TinyMCE via `application.js` or using the `tinymce_assets` helper, you do not need to manually alter the precompile paths. However if you wish to include `tinymce-jquery.js` independently (i.e. using `javascript_include_tag`), you will need to add it to the precompile list in `config/environments/production.rb`:
|
158
156
|
|
159
157
|
```ruby
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// 4.5.
|
1
|
+
// 4.5.2 (2017-01-04)
|
2
2
|
|
3
3
|
/**
|
4
4
|
* Compiled inline version. (Library mode)
|
@@ -9425,10 +9425,15 @@ define("tinymce/dom/ScriptLoader", [
|
|
9425
9425
|
var DOM = DOMUtils.DOM;
|
9426
9426
|
var each = Tools.each, grep = Tools.grep;
|
9427
9427
|
|
9428
|
+
var isFunction = function (f) {
|
9429
|
+
return typeof f === 'function';
|
9430
|
+
};
|
9431
|
+
|
9428
9432
|
function ScriptLoader() {
|
9429
9433
|
var QUEUED = 0,
|
9430
9434
|
LOADING = 1,
|
9431
9435
|
LOADED = 2,
|
9436
|
+
FAILED = 3,
|
9432
9437
|
states = {},
|
9433
9438
|
queue = [],
|
9434
9439
|
scriptLoadedCallbacks = {},
|
@@ -9441,9 +9446,10 @@ define("tinymce/dom/ScriptLoader", [
|
|
9441
9446
|
*
|
9442
9447
|
* @method load
|
9443
9448
|
* @param {String} url Absolute URL to script to add.
|
9444
|
-
* @param {function} callback Optional callback function
|
9449
|
+
* @param {function} callback Optional success callback function when the script loaded successfully.
|
9450
|
+
* @param {function} callback Optional failure callback function when the script failed to load.
|
9445
9451
|
*/
|
9446
|
-
function loadScript(url,
|
9452
|
+
function loadScript(url, success, failure) {
|
9447
9453
|
var dom = DOM, elm, id;
|
9448
9454
|
|
9449
9455
|
// Execute callback when script is loaded
|
@@ -9454,21 +9460,25 @@ define("tinymce/dom/ScriptLoader", [
|
|
9454
9460
|
elm.onreadystatechange = elm.onload = elm = null;
|
9455
9461
|
}
|
9456
9462
|
|
9457
|
-
|
9463
|
+
success();
|
9458
9464
|
}
|
9459
9465
|
|
9460
9466
|
function error() {
|
9461
9467
|
/*eslint no-console:0 */
|
9462
9468
|
|
9463
|
-
// Report the error so it's easier for people to spot loading errors
|
9464
|
-
if (typeof console !== "undefined" && console.log) {
|
9465
|
-
console.log("Failed to load: " + url);
|
9466
|
-
}
|
9467
|
-
|
9468
9469
|
// We can't mark it as done if there is a load error since
|
9469
9470
|
// A) We don't want to produce 404 errors on the server and
|
9470
9471
|
// B) the onerror event won't fire on all browsers.
|
9471
9472
|
// done();
|
9473
|
+
|
9474
|
+
if (isFunction(failure)) {
|
9475
|
+
failure();
|
9476
|
+
} else {
|
9477
|
+
// Report the error so it's easier for people to spot loading errors
|
9478
|
+
if (typeof console !== "undefined" && console.log) {
|
9479
|
+
console.log("Failed to load script: " + url);
|
9480
|
+
}
|
9481
|
+
}
|
9472
9482
|
}
|
9473
9483
|
|
9474
9484
|
id = dom.uniqueId();
|
@@ -9524,10 +9534,11 @@ define("tinymce/dom/ScriptLoader", [
|
|
9524
9534
|
*
|
9525
9535
|
* @method add
|
9526
9536
|
* @param {String} url Absolute URL to script to add.
|
9527
|
-
* @param {function}
|
9537
|
+
* @param {function} success Optional success callback function to execute when the script loades successfully.
|
9528
9538
|
* @param {Object} scope Optional scope to execute callback in.
|
9539
|
+
* @param {function} failure Optional failure callback function to execute when the script failed to load.
|
9529
9540
|
*/
|
9530
|
-
this.add = this.load = function(url,
|
9541
|
+
this.add = this.load = function(url, success, scope, failure) {
|
9531
9542
|
var state = states[url];
|
9532
9543
|
|
9533
9544
|
// Add url to load queue
|
@@ -9536,14 +9547,15 @@ define("tinymce/dom/ScriptLoader", [
|
|
9536
9547
|
states[url] = QUEUED;
|
9537
9548
|
}
|
9538
9549
|
|
9539
|
-
if (
|
9550
|
+
if (success) {
|
9540
9551
|
// Store away callback for later execution
|
9541
9552
|
if (!scriptLoadedCallbacks[url]) {
|
9542
9553
|
scriptLoadedCallbacks[url] = [];
|
9543
9554
|
}
|
9544
9555
|
|
9545
9556
|
scriptLoadedCallbacks[url].push({
|
9546
|
-
|
9557
|
+
success: success,
|
9558
|
+
failure: failure,
|
9547
9559
|
scope: scope || this
|
9548
9560
|
});
|
9549
9561
|
}
|
@@ -9558,11 +9570,12 @@ define("tinymce/dom/ScriptLoader", [
|
|
9558
9570
|
* Starts the loading of the queue.
|
9559
9571
|
*
|
9560
9572
|
* @method loadQueue
|
9561
|
-
* @param {function}
|
9573
|
+
* @param {function} success Optional callback to execute when all queued items are loaded.
|
9574
|
+
* @param {function} failure Optional callback to execute when queued items failed to load.
|
9562
9575
|
* @param {Object} scope Optional scope to execute the callback in.
|
9563
9576
|
*/
|
9564
|
-
this.loadQueue = function(
|
9565
|
-
this.loadScripts(queue,
|
9577
|
+
this.loadQueue = function(success, scope, failure) {
|
9578
|
+
this.loadScripts(queue, success, scope, failure);
|
9566
9579
|
};
|
9567
9580
|
|
9568
9581
|
/**
|
@@ -9571,23 +9584,27 @@ define("tinymce/dom/ScriptLoader", [
|
|
9571
9584
|
*
|
9572
9585
|
* @method loadScripts
|
9573
9586
|
* @param {Array} scripts Array of queue items to load.
|
9574
|
-
* @param {function} callback Optional callback to execute
|
9587
|
+
* @param {function} callback Optional callback to execute when scripts is loaded successfully.
|
9575
9588
|
* @param {Object} scope Optional scope to execute callback in.
|
9589
|
+
* @param {function} callback Optional callback to execute if scripts failed to load.
|
9576
9590
|
*/
|
9577
|
-
this.loadScripts = function(scripts,
|
9578
|
-
var loadScripts;
|
9591
|
+
this.loadScripts = function(scripts, success, scope, failure) {
|
9592
|
+
var loadScripts, failures = [];
|
9579
9593
|
|
9580
|
-
function
|
9594
|
+
function execCallbacks(name, url) {
|
9581
9595
|
// Execute URL callback functions
|
9582
9596
|
each(scriptLoadedCallbacks[url], function(callback) {
|
9583
|
-
|
9597
|
+
if (isFunction(callback[name])) {
|
9598
|
+
callback[name].call(callback.scope);
|
9599
|
+
}
|
9584
9600
|
});
|
9585
9601
|
|
9586
9602
|
scriptLoadedCallbacks[url] = undef;
|
9587
9603
|
}
|
9588
9604
|
|
9589
9605
|
queueLoadedCallbacks.push({
|
9590
|
-
|
9606
|
+
success: success,
|
9607
|
+
failure: failure,
|
9591
9608
|
scope: scope || this
|
9592
9609
|
});
|
9593
9610
|
|
@@ -9600,13 +9617,18 @@ define("tinymce/dom/ScriptLoader", [
|
|
9600
9617
|
// Load scripts that needs to be loaded
|
9601
9618
|
each(loadingScripts, function(url) {
|
9602
9619
|
// Script is already loaded then execute script callbacks directly
|
9603
|
-
if (states[url]
|
9604
|
-
|
9620
|
+
if (states[url] === LOADED) {
|
9621
|
+
execCallbacks('success', url);
|
9622
|
+
return;
|
9623
|
+
}
|
9624
|
+
|
9625
|
+
if (states[url] === FAILED) {
|
9626
|
+
execCallbacks('failure', url);
|
9605
9627
|
return;
|
9606
9628
|
}
|
9607
9629
|
|
9608
9630
|
// Is script not loading then start loading it
|
9609
|
-
if (states[url]
|
9631
|
+
if (states[url] !== LOADING) {
|
9610
9632
|
states[url] = LOADING;
|
9611
9633
|
loading++;
|
9612
9634
|
|
@@ -9614,7 +9636,16 @@ define("tinymce/dom/ScriptLoader", [
|
|
9614
9636
|
states[url] = LOADED;
|
9615
9637
|
loading--;
|
9616
9638
|
|
9617
|
-
|
9639
|
+
execCallbacks('success', url);
|
9640
|
+
|
9641
|
+
// Load more scripts if they where added by the recently loaded script
|
9642
|
+
loadScripts();
|
9643
|
+
}, function () {
|
9644
|
+
states[url] = FAILED;
|
9645
|
+
loading--;
|
9646
|
+
|
9647
|
+
failures.push(url);
|
9648
|
+
execCallbacks('failure', url);
|
9618
9649
|
|
9619
9650
|
// Load more scripts if they where added by the recently loaded script
|
9620
9651
|
loadScripts();
|
@@ -9625,7 +9656,15 @@ define("tinymce/dom/ScriptLoader", [
|
|
9625
9656
|
// No scripts are currently loading then execute all pending queue loaded callbacks
|
9626
9657
|
if (!loading) {
|
9627
9658
|
each(queueLoadedCallbacks, function(callback) {
|
9628
|
-
|
9659
|
+
if (failures.length === 0) {
|
9660
|
+
if (isFunction(callback.success)) {
|
9661
|
+
callback.success.call(callback.scope);
|
9662
|
+
}
|
9663
|
+
} else {
|
9664
|
+
if (isFunction(callback.failure)) {
|
9665
|
+
callback.failure.call(callback.scope, failures);
|
9666
|
+
}
|
9667
|
+
}
|
9629
9668
|
});
|
9630
9669
|
|
9631
9670
|
queueLoadedCallbacks.length = 0;
|
@@ -9793,8 +9832,9 @@ define("tinymce/AddOnManager", [
|
|
9793
9832
|
* @method load
|
9794
9833
|
* @param {String} name Short name of the add-on that gets loaded.
|
9795
9834
|
* @param {String} addOnUrl URL to the add-on that will get loaded.
|
9796
|
-
* @param {function}
|
9835
|
+
* @param {function} success Optional success callback to execute when an add-on is loaded.
|
9797
9836
|
* @param {Object} scope Optional scope to execute the callback in.
|
9837
|
+
* @param {function} failure Optional failure callback to execute when an add-on failed to load.
|
9798
9838
|
* @example
|
9799
9839
|
* // Loads a plugin from an external URL
|
9800
9840
|
* tinymce.PluginManager.load('myplugin', '/some/dir/someplugin/plugin.js');
|
@@ -9805,7 +9845,7 @@ define("tinymce/AddOnManager", [
|
|
9805
9845
|
* plugins: '-myplugin' // Don't try to load it again
|
9806
9846
|
* });
|
9807
9847
|
*/
|
9808
|
-
load: function(name, addOnUrl,
|
9848
|
+
load: function(name, addOnUrl, success, scope, failure) {
|
9809
9849
|
var self = this, url = addOnUrl;
|
9810
9850
|
|
9811
9851
|
function loadDependencies() {
|
@@ -9817,11 +9857,11 @@ define("tinymce/AddOnManager", [
|
|
9817
9857
|
self.load(newUrl.resource, newUrl, undefined, undefined);
|
9818
9858
|
});
|
9819
9859
|
|
9820
|
-
if (
|
9860
|
+
if (success) {
|
9821
9861
|
if (scope) {
|
9822
|
-
|
9862
|
+
success.call(scope);
|
9823
9863
|
} else {
|
9824
|
-
|
9864
|
+
success.call(ScriptLoader);
|
9825
9865
|
}
|
9826
9866
|
}
|
9827
9867
|
}
|
@@ -9843,7 +9883,7 @@ define("tinymce/AddOnManager", [
|
|
9843
9883
|
if (self.lookup[name]) {
|
9844
9884
|
loadDependencies();
|
9845
9885
|
} else {
|
9846
|
-
ScriptLoader.ScriptLoader.add(url, loadDependencies, scope);
|
9886
|
+
ScriptLoader.ScriptLoader.add(url, loadDependencies, scope, failure);
|
9847
9887
|
}
|
9848
9888
|
}
|
9849
9889
|
};
|
@@ -18811,7 +18851,7 @@ define("tinymce/fmt/Preview", [
|
|
18811
18851
|
|
18812
18852
|
|
18813
18853
|
function selectorToHtml(selector, editor) {
|
18814
|
-
return parsedSelectorToHtml(parseSelector(selector, editor)
|
18854
|
+
return parsedSelectorToHtml(parseSelector(selector), editor);
|
18815
18855
|
}
|
18816
18856
|
|
18817
18857
|
|
@@ -18934,9 +18974,9 @@ define("tinymce/fmt/Preview", [
|
|
18934
18974
|
items[0].name = name;
|
18935
18975
|
}
|
18936
18976
|
name = format.selector;
|
18937
|
-
previewFrag = parsedSelectorToHtml(items);
|
18977
|
+
previewFrag = parsedSelectorToHtml(items, editor);
|
18938
18978
|
} else {
|
18939
|
-
previewFrag = parsedSelectorToHtml([name]);
|
18979
|
+
previewFrag = parsedSelectorToHtml([name], editor);
|
18940
18980
|
}
|
18941
18981
|
|
18942
18982
|
previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;
|
@@ -21364,8 +21404,10 @@ define("tinymce/Formatter", [
|
|
21364
21404
|
textNode = findFirstTextNode(caretContainer);
|
21365
21405
|
}
|
21366
21406
|
|
21367
|
-
// Expand to word
|
21368
|
-
|
21407
|
+
// Expand to word if caret is in the middle of a text node and the char before/after is a alpha numeric character
|
21408
|
+
var wordcharRegex = /[^\s\u00a0\u00ad\u200b\ufeff]/;
|
21409
|
+
if (text && offset > 0 && offset < text.length &&
|
21410
|
+
wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) {
|
21369
21411
|
// Get bookmark of caret position
|
21370
21412
|
bookmark = selection.getBookmark();
|
21371
21413
|
|
@@ -22952,6 +22994,10 @@ define("tinymce/EnterKey", [
|
|
22952
22994
|
// Insert new block before/after the parent block depending on caret location
|
22953
22995
|
if (CaretContainer.isCaretContainerBlock(parentBlock)) {
|
22954
22996
|
newBlock = CaretContainer.showCaretContainerBlock(parentBlock);
|
22997
|
+
if (dom.isEmpty(parentBlock)) {
|
22998
|
+
emptyBlock(parentBlock);
|
22999
|
+
}
|
23000
|
+
moveToCaretPosition(newBlock);
|
22955
23001
|
} else if (isCaretAtStartOrEndOfBlock()) {
|
22956
23002
|
insertNewBlockAfter();
|
22957
23003
|
} else if (isCaretAtStartOrEndOfBlock(true)) {
|
@@ -26051,7 +26097,7 @@ define("tinymce/util/Observable", [
|
|
26051
26097
|
return {
|
26052
26098
|
/**
|
26053
26099
|
* Fires the specified event by name. Consult the
|
26054
|
-
* <a href="/advanced/events">event reference</a> for more details on each event.
|
26100
|
+
* <a href="/docs/advanced/events">event reference</a> for more details on each event.
|
26055
26101
|
*
|
26056
26102
|
* @method fire
|
26057
26103
|
* @param {String} name Name of the event to fire.
|
@@ -26085,7 +26131,7 @@ define("tinymce/util/Observable", [
|
|
26085
26131
|
|
26086
26132
|
/**
|
26087
26133
|
* Binds an event listener to a specific event by name. Consult the
|
26088
|
-
* <a href="/advanced/events">event reference</a> for more details on each event.
|
26134
|
+
* <a href="/docs/advanced/events">event reference</a> for more details on each event.
|
26089
26135
|
*
|
26090
26136
|
* @method on
|
26091
26137
|
* @param {String} name Event name or space separated list of events to bind.
|
@@ -26103,7 +26149,7 @@ define("tinymce/util/Observable", [
|
|
26103
26149
|
|
26104
26150
|
/**
|
26105
26151
|
* Unbinds an event listener to a specific event by name. Consult the
|
26106
|
-
* <a href="/advanced/events">event reference</a> for more details on each event.
|
26152
|
+
* <a href="/docs/advanced/events">event reference</a> for more details on each event.
|
26107
26153
|
*
|
26108
26154
|
* @method off
|
26109
26155
|
* @param {String?} name Name of the event to unbind.
|
@@ -26125,7 +26171,7 @@ define("tinymce/util/Observable", [
|
|
26125
26171
|
|
26126
26172
|
/**
|
26127
26173
|
* Bind the event callback and once it fires the callback is removed. Consult the
|
26128
|
-
* <a href="/advanced/events">event reference</a> for more details on each event.
|
26174
|
+
* <a href="/docs/advanced/events">event reference</a> for more details on each event.
|
26129
26175
|
*
|
26130
26176
|
* @method once
|
26131
26177
|
* @param {String} name Name of the event to bind.
|
@@ -34409,8 +34455,12 @@ define("tinymce/util/Quirks", [
|
|
34409
34455
|
var rng = editor.selection.getRng();
|
34410
34456
|
var startCaretPos = CaretPosition.fromRangeStart(rng);
|
34411
34457
|
var endCaretPos = CaretPosition.fromRangeEnd(rng);
|
34458
|
+
var prev = caretWalker.prev(startCaretPos);
|
34459
|
+
var next = caretWalker.next(endCaretPos);
|
34412
34460
|
|
34413
|
-
return !editor.selection.isCollapsed() &&
|
34461
|
+
return !editor.selection.isCollapsed() &&
|
34462
|
+
(!prev || prev.isAtStart()) &&
|
34463
|
+
(!next || (next.isAtEnd() && startCaretPos.getNode() !== next.getNode()));
|
34414
34464
|
}
|
34415
34465
|
|
34416
34466
|
// Type over case delete and insert this won't cover typeover with a IME but at least it covers the common case
|
@@ -35199,11 +35249,11 @@ define("tinymce/file/Uploader", [
|
|
35199
35249
|
resolve(handlerSuccess(blobInfo, url));
|
35200
35250
|
};
|
35201
35251
|
|
35202
|
-
var failure = function() {
|
35252
|
+
var failure = function(error) {
|
35203
35253
|
closeNotification();
|
35204
35254
|
uploadStatus.removeFailed(blobInfo.blobUri());
|
35205
|
-
resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo,
|
35206
|
-
resolve(handlerFailure(blobInfo,
|
35255
|
+
resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error));
|
35256
|
+
resolve(handlerFailure(blobInfo, error));
|
35207
35257
|
};
|
35208
35258
|
|
35209
35259
|
progress = function(percent) {
|
@@ -35401,6 +35451,10 @@ define("tinymce/file/ImageScanner", [
|
|
35401
35451
|
], function(Promise, Arr, Fun, Conversions, Env) {
|
35402
35452
|
var count = 0;
|
35403
35453
|
|
35454
|
+
var uniqueId = function(prefix) {
|
35455
|
+
return (prefix || 'blobid') + (count++);
|
35456
|
+
};
|
35457
|
+
|
35404
35458
|
return function(uploadStatus, blobCache) {
|
35405
35459
|
var cachedPromises = {};
|
35406
35460
|
|
@@ -35418,6 +35472,19 @@ define("tinymce/file/ImageScanner", [
|
|
35418
35472
|
image: img,
|
35419
35473
|
blobInfo: blobInfo
|
35420
35474
|
});
|
35475
|
+
} else {
|
35476
|
+
Conversions.uriToBlob(img.src).then(function (blob) {
|
35477
|
+
Conversions.blobToDataUri(blob).then(function (dataUri) {
|
35478
|
+
base64 = Conversions.parseDataUri(dataUri).data;
|
35479
|
+
blobInfo = blobCache.create(uniqueId(), blob, base64);
|
35480
|
+
blobCache.add(blobInfo);
|
35481
|
+
|
35482
|
+
resolve({
|
35483
|
+
image: img,
|
35484
|
+
blobInfo: blobInfo
|
35485
|
+
});
|
35486
|
+
});
|
35487
|
+
});
|
35421
35488
|
}
|
35422
35489
|
|
35423
35490
|
return;
|
@@ -35435,9 +35502,7 @@ define("tinymce/file/ImageScanner", [
|
|
35435
35502
|
});
|
35436
35503
|
} else {
|
35437
35504
|
Conversions.uriToBlob(img.src).then(function(blob) {
|
35438
|
-
|
35439
|
-
blobInfo = blobCache.create(blobInfoId, blob, base64);
|
35440
|
-
|
35505
|
+
blobInfo = blobCache.create(uniqueId(), blob, base64);
|
35441
35506
|
blobCache.add(blobInfo);
|
35442
35507
|
|
35443
35508
|
resolve({
|
@@ -35688,6 +35753,78 @@ define("tinymce/file/UploadStatus", [
|
|
35688
35753
|
};
|
35689
35754
|
});
|
35690
35755
|
|
35756
|
+
// Included from: js/tinymce/classes/ErrorReporter.js
|
35757
|
+
|
35758
|
+
/**
|
35759
|
+
* ErrorReporter.js
|
35760
|
+
*
|
35761
|
+
* Released under LGPL License.
|
35762
|
+
* Copyright (c) 1999-2016 Ephox Corp. All rights reserved
|
35763
|
+
*
|
35764
|
+
* License: http://www.tinymce.com/license
|
35765
|
+
* Contributing: http://www.tinymce.com/contributing
|
35766
|
+
*/
|
35767
|
+
|
35768
|
+
/**
|
35769
|
+
* Various error reporting helper functions.
|
35770
|
+
*
|
35771
|
+
* @class tinymce.ErrorReporter
|
35772
|
+
* @private
|
35773
|
+
*/
|
35774
|
+
define("tinymce/ErrorReporter", [
|
35775
|
+
"tinymce/AddOnManager"
|
35776
|
+
], function (AddOnManager) {
|
35777
|
+
var PluginManager = AddOnManager.PluginManager;
|
35778
|
+
|
35779
|
+
var resolvePluginName = function (targetUrl, suffix) {
|
35780
|
+
for (var name in PluginManager.urls) {
|
35781
|
+
var matchUrl = PluginManager.urls[name] + '/plugin' + suffix + '.js';
|
35782
|
+
if (matchUrl === targetUrl) {
|
35783
|
+
return name;
|
35784
|
+
}
|
35785
|
+
}
|
35786
|
+
|
35787
|
+
return null;
|
35788
|
+
};
|
35789
|
+
|
35790
|
+
var pluginUrlToMessage = function (editor, url) {
|
35791
|
+
var plugin = resolvePluginName(url, editor.suffix);
|
35792
|
+
return plugin ?
|
35793
|
+
'Failed to load plugin: ' + plugin + ' from url ' + url :
|
35794
|
+
'Failed to load plugin url: ' + url;
|
35795
|
+
};
|
35796
|
+
|
35797
|
+
var displayNotification = function (editor, message) {
|
35798
|
+
editor.notificationManager.open({
|
35799
|
+
type: 'error',
|
35800
|
+
text: message
|
35801
|
+
});
|
35802
|
+
};
|
35803
|
+
|
35804
|
+
var displayError = function (editor, message) {
|
35805
|
+
if (editor._skinLoaded) {
|
35806
|
+
displayNotification(editor, message);
|
35807
|
+
} else {
|
35808
|
+
editor.on('SkinLoaded', function () {
|
35809
|
+
displayNotification(editor, message);
|
35810
|
+
});
|
35811
|
+
}
|
35812
|
+
};
|
35813
|
+
|
35814
|
+
var uploadError = function (editor, message) {
|
35815
|
+
displayError(editor, 'Failed to upload image: ' + message);
|
35816
|
+
};
|
35817
|
+
|
35818
|
+
var pluginLoadError = function (editor, url) {
|
35819
|
+
displayError(editor, pluginUrlToMessage(editor, url));
|
35820
|
+
};
|
35821
|
+
|
35822
|
+
return {
|
35823
|
+
pluginLoadError: pluginLoadError,
|
35824
|
+
uploadError: uploadError
|
35825
|
+
};
|
35826
|
+
});
|
35827
|
+
|
35691
35828
|
// Included from: js/tinymce/classes/EditorUpload.js
|
35692
35829
|
|
35693
35830
|
/**
|
@@ -35711,8 +35848,9 @@ define("tinymce/EditorUpload", [
|
|
35711
35848
|
"tinymce/file/Uploader",
|
35712
35849
|
"tinymce/file/ImageScanner",
|
35713
35850
|
"tinymce/file/BlobCache",
|
35714
|
-
"tinymce/file/UploadStatus"
|
35715
|
-
|
35851
|
+
"tinymce/file/UploadStatus",
|
35852
|
+
"tinymce/ErrorReporter"
|
35853
|
+
], function(Arr, Uploader, ImageScanner, BlobCache, UploadStatus, ErrorReporter) {
|
35716
35854
|
return function(editor) {
|
35717
35855
|
var blobCache = new BlobCache(), uploader, imageScanner, settings = editor.settings;
|
35718
35856
|
var uploadStatus = new UploadStatus();
|
@@ -35808,6 +35946,8 @@ define("tinymce/EditorUpload", [
|
|
35808
35946
|
|
35809
35947
|
if (uploadInfo.status && editor.settings.images_replace_blob_uris !== false) {
|
35810
35948
|
replaceImageUri(image, uploadInfo.url);
|
35949
|
+
} else if (uploadInfo.error) {
|
35950
|
+
ErrorReporter.uploadError(editor, uploadInfo.error);
|
35811
35951
|
}
|
35812
35952
|
|
35813
35953
|
return {
|
@@ -37822,6 +37962,7 @@ define("tinymce/SelectionOverrides", [
|
|
37822
37962
|
editor.$('*[data-mce-selected]').removeAttr('data-mce-selected');
|
37823
37963
|
node.setAttribute('data-mce-selected', 1);
|
37824
37964
|
selectedContentEditableNode = node;
|
37965
|
+
hideFakeCaret();
|
37825
37966
|
|
37826
37967
|
return range;
|
37827
37968
|
}
|
@@ -38005,13 +38146,14 @@ define("tinymce/Editor", [
|
|
38005
38146
|
"tinymce/EditorUpload",
|
38006
38147
|
"tinymce/SelectionOverrides",
|
38007
38148
|
"tinymce/util/Uuid",
|
38008
|
-
"tinymce/ui/Sidebar"
|
38149
|
+
"tinymce/ui/Sidebar",
|
38150
|
+
"tinymce/ErrorReporter"
|
38009
38151
|
], function(
|
38010
38152
|
DOMUtils, DomQuery, AddOnManager, NodeChange, Node, DomSerializer, Serializer,
|
38011
38153
|
Selection, Formatter, UndoManager, EnterKey, ForceBlocks, EditorCommands,
|
38012
38154
|
URI, ScriptLoader, EventUtils, WindowManager, NotificationManager,
|
38013
38155
|
Schema, DomParser, Quirks, Env, Tools, Delay, EditorObservable, Mode, Shortcuts, EditorUpload,
|
38014
|
-
SelectionOverrides, Uuid, Sidebar
|
38156
|
+
SelectionOverrides, Uuid, Sidebar, ErrorReporter
|
38015
38157
|
) {
|
38016
38158
|
// Shorten these names
|
38017
38159
|
var DOM = DOMUtils.DOM, ThemeManager = AddOnManager.ThemeManager, PluginManager = AddOnManager.PluginManager;
|
@@ -38407,6 +38549,12 @@ define("tinymce/Editor", [
|
|
38407
38549
|
});
|
38408
38550
|
|
38409
38551
|
scriptLoader.loadQueue(function() {
|
38552
|
+
if (!self.removed) {
|
38553
|
+
self.init();
|
38554
|
+
}
|
38555
|
+
}, self, function (urls) {
|
38556
|
+
ErrorReporter.pluginLoadError(self, urls[0]);
|
38557
|
+
|
38410
38558
|
if (!self.removed) {
|
38411
38559
|
self.init();
|
38412
38560
|
}
|
@@ -40695,7 +40843,7 @@ define("tinymce/EditorManager", [
|
|
40695
40843
|
* @property minorVersion
|
40696
40844
|
* @type String
|
40697
40845
|
*/
|
40698
|
-
minorVersion: '5.
|
40846
|
+
minorVersion: '5.2',
|
40699
40847
|
|
40700
40848
|
/**
|
40701
40849
|
* Release date of TinyMCE build.
|
@@ -40703,7 +40851,7 @@ define("tinymce/EditorManager", [
|
|
40703
40851
|
* @property releaseDate
|
40704
40852
|
* @type String
|
40705
40853
|
*/
|
40706
|
-
releaseDate: '
|
40854
|
+
releaseDate: '2017-01-04',
|
40707
40855
|
|
40708
40856
|
/**
|
40709
40857
|
* Collection of editor instances.
|
@@ -45239,6 +45387,73 @@ define("tinymce/ui/FlowLayout", [
|
|
45239
45387
|
});
|
45240
45388
|
});
|
45241
45389
|
|
45390
|
+
// Included from: js/tinymce/classes/fmt/FontInfo.js
|
45391
|
+
|
45392
|
+
/**
|
45393
|
+
* FontInfo.js
|
45394
|
+
*
|
45395
|
+
* Released under LGPL License.
|
45396
|
+
* Copyright (c) 1999-2016 Ephox Corp. All rights reserved
|
45397
|
+
*
|
45398
|
+
* License: http://www.tinymce.com/license
|
45399
|
+
* Contributing: http://www.tinymce.com/contributing
|
45400
|
+
*/
|
45401
|
+
|
45402
|
+
/**
|
45403
|
+
* Internal class for computing font size for elements.
|
45404
|
+
*
|
45405
|
+
* @private
|
45406
|
+
* @class tinymce.fmt.FontInfo
|
45407
|
+
*/
|
45408
|
+
define("tinymce/fmt/FontInfo", [
|
45409
|
+
"tinymce/dom/DOMUtils"
|
45410
|
+
], function(DOMUtils) {
|
45411
|
+
var getSpecifiedFontProp = function (propName, rootElm, elm) {
|
45412
|
+
while (elm !== rootElm) {
|
45413
|
+
if (elm.style[propName]) {
|
45414
|
+
return elm.style[propName];
|
45415
|
+
}
|
45416
|
+
|
45417
|
+
elm = elm.parentNode;
|
45418
|
+
}
|
45419
|
+
|
45420
|
+
return 0;
|
45421
|
+
};
|
45422
|
+
|
45423
|
+
var toPt = function (fontSize) {
|
45424
|
+
if (/[0-9.]+px$/.test(fontSize)) {
|
45425
|
+
return Math.round(parseInt(fontSize, 10) * 72 / 96) + 'pt';
|
45426
|
+
}
|
45427
|
+
|
45428
|
+
return fontSize;
|
45429
|
+
};
|
45430
|
+
|
45431
|
+
var normalizeFontFamily = function (fontFamily) {
|
45432
|
+
// 'Font name', Font -> Font name,Font
|
45433
|
+
return fontFamily.replace(/[\'\"]/g, '').replace(/,\s+/g, ',');
|
45434
|
+
};
|
45435
|
+
|
45436
|
+
var getComputedFontProp = function (propName, elm) {
|
45437
|
+
return DOMUtils.DOM.getStyle(elm, propName, true);
|
45438
|
+
};
|
45439
|
+
|
45440
|
+
var getFontSize = function (rootElm, elm) {
|
45441
|
+
var specifiedFontSize = getSpecifiedFontProp('fontSize', rootElm, elm);
|
45442
|
+
return specifiedFontSize ? specifiedFontSize : getComputedFontProp('fontSize', elm);
|
45443
|
+
};
|
45444
|
+
|
45445
|
+
var getFontFamily = function (rootElm, elm) {
|
45446
|
+
var specifiedFontSize = getSpecifiedFontProp('fontFamily', rootElm, elm);
|
45447
|
+
return normalizeFontFamily(specifiedFontSize ? specifiedFontSize : getComputedFontProp('fontFamily', elm));
|
45448
|
+
};
|
45449
|
+
|
45450
|
+
return {
|
45451
|
+
getFontSize: getFontSize,
|
45452
|
+
getFontFamily: getFontFamily,
|
45453
|
+
toPt: toPt
|
45454
|
+
};
|
45455
|
+
});
|
45456
|
+
|
45242
45457
|
// Included from: js/tinymce/classes/ui/FormatControls.js
|
45243
45458
|
|
45244
45459
|
/**
|
@@ -45265,8 +45480,9 @@ define("tinymce/ui/FormatControls", [
|
|
45265
45480
|
"tinymce/util/Arr",
|
45266
45481
|
"tinymce/dom/DOMUtils",
|
45267
45482
|
"tinymce/EditorManager",
|
45268
|
-
"tinymce/Env"
|
45269
|
-
|
45483
|
+
"tinymce/Env",
|
45484
|
+
"tinymce/fmt/FontInfo"
|
45485
|
+
], function(Control, Widget, FloatPanel, Tools, Arr, DOMUtils, EditorManager, Env, FontInfo) {
|
45270
45486
|
var each = Tools.each;
|
45271
45487
|
|
45272
45488
|
var flatten = function (ar) {
|
@@ -45341,6 +45557,67 @@ define("tinymce/ui/FormatControls", [
|
|
45341
45557
|
};
|
45342
45558
|
}
|
45343
45559
|
|
45560
|
+
function createFontNameListBoxChangeHandler(items) {
|
45561
|
+
return function() {
|
45562
|
+
var self = this;
|
45563
|
+
|
45564
|
+
var getFirstFont = function (fontFamily) {
|
45565
|
+
return fontFamily ? fontFamily.split(',')[0] : '';
|
45566
|
+
};
|
45567
|
+
|
45568
|
+
editor.on('nodeChange', function(e) {
|
45569
|
+
var fontFamily, value = null;
|
45570
|
+
|
45571
|
+
fontFamily = FontInfo.getFontFamily(editor.getBody(), e.element);
|
45572
|
+
|
45573
|
+
each(items, function(item) {
|
45574
|
+
if (item.value.toLowerCase() === fontFamily.toLowerCase()) {
|
45575
|
+
value = item.value;
|
45576
|
+
}
|
45577
|
+
});
|
45578
|
+
|
45579
|
+
each(items, function(item) {
|
45580
|
+
if (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(fontFamily).toLowerCase()) {
|
45581
|
+
value = item.value;
|
45582
|
+
}
|
45583
|
+
});
|
45584
|
+
|
45585
|
+
self.value(value);
|
45586
|
+
|
45587
|
+
if (!value && fontFamily) {
|
45588
|
+
self.text(getFirstFont(fontFamily));
|
45589
|
+
}
|
45590
|
+
});
|
45591
|
+
};
|
45592
|
+
}
|
45593
|
+
|
45594
|
+
function createFontSizeListBoxChangeHandler(items) {
|
45595
|
+
return function() {
|
45596
|
+
var self = this;
|
45597
|
+
|
45598
|
+
editor.on('nodeChange', function(e) {
|
45599
|
+
var px, pt, value = null;
|
45600
|
+
|
45601
|
+
px = FontInfo.getFontSize(editor.getBody(), e.element);
|
45602
|
+
pt = FontInfo.toPt(px);
|
45603
|
+
|
45604
|
+
each(items, function(item) {
|
45605
|
+
if (item.value === px) {
|
45606
|
+
value = px;
|
45607
|
+
} else if (item.value === pt) {
|
45608
|
+
value = pt;
|
45609
|
+
}
|
45610
|
+
});
|
45611
|
+
|
45612
|
+
self.value(value);
|
45613
|
+
|
45614
|
+
if (!value) {
|
45615
|
+
self.text(pt);
|
45616
|
+
}
|
45617
|
+
});
|
45618
|
+
};
|
45619
|
+
}
|
45620
|
+
|
45344
45621
|
function createFormats(formats) {
|
45345
45622
|
formats = formats.replace(/;$/, '').split(';');
|
45346
45623
|
|
@@ -45724,7 +46001,7 @@ define("tinymce/ui/FormatControls", [
|
|
45724
46001
|
selectall: ['Select all', 'SelectAll', 'Meta+A'],
|
45725
46002
|
bold: ['Bold', 'Bold', 'Meta+B'],
|
45726
46003
|
italic: ['Italic', 'Italic', 'Meta+I'],
|
45727
|
-
underline: ['Underline', 'Underline'],
|
46004
|
+
underline: ['Underline', 'Underline', 'Meta+U'],
|
45728
46005
|
strikethrough: ['Strikethrough', 'Strikethrough'],
|
45729
46006
|
subscript: ['Subscript', 'Subscript'],
|
45730
46007
|
superscript: ['Superscript', 'Superscript'],
|
@@ -45877,7 +46154,7 @@ define("tinymce/ui/FormatControls", [
|
|
45877
46154
|
tooltip: 'Font Family',
|
45878
46155
|
values: items,
|
45879
46156
|
fixedWidth: true,
|
45880
|
-
onPostRender:
|
46157
|
+
onPostRender: createFontNameListBoxChangeHandler(items),
|
45881
46158
|
onselect: function(e) {
|
45882
46159
|
if (e.control.settings.value) {
|
45883
46160
|
editor.execCommand('FontName', false, e.control.settings.value);
|
@@ -45907,7 +46184,7 @@ define("tinymce/ui/FormatControls", [
|
|
45907
46184
|
tooltip: 'Font Sizes',
|
45908
46185
|
values: items,
|
45909
46186
|
fixedWidth: true,
|
45910
|
-
onPostRender:
|
46187
|
+
onPostRender: createFontSizeListBoxChangeHandler(items),
|
45911
46188
|
onclick: function(e) {
|
45912
46189
|
if (e.control.settings.value) {
|
45913
46190
|
editor.execCommand('FontSize', false, e.control.settings.value);
|