tinymce-rails 5.6.2.1 → 5.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/source/tinymce/tinymce.js +1265 -1174
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/anchor/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/bbcode/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/code/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/colorpicker/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/contextmenu/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/emoticons/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/fullpage/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/hr/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/imagetools/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/insertdatetime/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/legacyoutput/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/link/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/nonbreaking/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/noneditable/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/pagebreak/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/preview/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/print/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/quickbars/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/save/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/template/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/textcolor/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/textpattern/plugin.js +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/toc/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/visualblocks/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/ui/oxide-dark/content.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.shadowdom.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/themes/mobile/theme.js +2 -2
- data/vendor/assets/javascripts/tinymce/themes/silver/theme.js +2 -2
- data/vendor/assets/javascripts/tinymce/tinymce.d.ts +431 -389
- data/vendor/assets/javascripts/tinymce/tinymce.js +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b234fea66f361a361266406d0efca1a818e0baf682cfb8ea7767b11d7df537a6
|
|
4
|
+
data.tar.gz: 6d99aa630bf351c1667e8663b3d488f96eff5450a879948781ecd3ae3c8cb6a5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0eb32ff441d04558f7c0d8cd376cbfc01108275786212d09aa80283182125c8c7db5d7cacd0d89aad47b743797ebdbc6c77b04c71182a590be7d67f9ecc29ebe
|
|
7
|
+
data.tar.gz: '091bbcd6597d13369b4977426b8bcbf67d9b1ac5097ecbc409f207061e2f5ca83b603563abda94ccb64c32a48a2cc55fd37001bd34119eae74bfc5e74fb2c031'
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* For LGPL see License.txt in the project root for license information.
|
|
5
5
|
* For commercial licenses see https://www.tiny.cloud/
|
|
6
6
|
*
|
|
7
|
-
* Version: 5.
|
|
7
|
+
* Version: 5.7.1 (2021-03-17)
|
|
8
8
|
*/
|
|
9
9
|
(function () {
|
|
10
10
|
'use strict';
|
|
@@ -157,6 +157,9 @@
|
|
|
157
157
|
throw new Error(msg);
|
|
158
158
|
};
|
|
159
159
|
};
|
|
160
|
+
var apply = function (f) {
|
|
161
|
+
return f();
|
|
162
|
+
};
|
|
160
163
|
var call = function (f) {
|
|
161
164
|
f();
|
|
162
165
|
};
|
|
@@ -1143,8 +1146,7 @@
|
|
|
1143
1146
|
return;
|
|
1144
1147
|
}
|
|
1145
1148
|
if (!p[cn]) {
|
|
1146
|
-
p[cn] =
|
|
1147
|
-
};
|
|
1149
|
+
p[cn] = noop;
|
|
1148
1150
|
de = 1;
|
|
1149
1151
|
}
|
|
1150
1152
|
ns[cn] = p[cn];
|
|
@@ -1482,7 +1484,7 @@
|
|
|
1482
1484
|
};
|
|
1483
1485
|
|
|
1484
1486
|
var isShadowRoot = function (dos) {
|
|
1485
|
-
return isDocumentFragment(dos);
|
|
1487
|
+
return isDocumentFragment(dos) && isNonNullable(dos.dom.host);
|
|
1486
1488
|
};
|
|
1487
1489
|
var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);
|
|
1488
1490
|
var isSupported = constant(supported);
|
|
@@ -2707,14 +2709,14 @@
|
|
|
2707
2709
|
}
|
|
2708
2710
|
constructors.push(key);
|
|
2709
2711
|
adt[key] = function () {
|
|
2710
|
-
var
|
|
2712
|
+
var args = [];
|
|
2713
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2714
|
+
args[_i] = arguments[_i];
|
|
2715
|
+
}
|
|
2716
|
+
var argLength = args.length;
|
|
2711
2717
|
if (argLength !== value.length) {
|
|
2712
2718
|
throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);
|
|
2713
2719
|
}
|
|
2714
|
-
var args = new Array(argLength);
|
|
2715
|
-
for (var i = 0; i < args.length; i++) {
|
|
2716
|
-
args[i] = arguments[i];
|
|
2717
|
-
}
|
|
2718
2720
|
var match = function (branches) {
|
|
2719
2721
|
var branchKeys = keys(branches);
|
|
2720
2722
|
if (constructors.length !== branchKeys.length) {
|
|
@@ -2730,10 +2732,14 @@
|
|
|
2730
2732
|
};
|
|
2731
2733
|
return {
|
|
2732
2734
|
fold: function () {
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
+
var foldArgs = [];
|
|
2736
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2737
|
+
foldArgs[_i] = arguments[_i];
|
|
2735
2738
|
}
|
|
2736
|
-
|
|
2739
|
+
if (foldArgs.length !== cases.length) {
|
|
2740
|
+
throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);
|
|
2741
|
+
}
|
|
2742
|
+
var target = foldArgs[count];
|
|
2737
2743
|
return target.apply(null, args);
|
|
2738
2744
|
},
|
|
2739
2745
|
match: match,
|
|
@@ -2844,11 +2850,15 @@
|
|
|
2844
2850
|
};
|
|
2845
2851
|
|
|
2846
2852
|
var promise = function () {
|
|
2847
|
-
function
|
|
2853
|
+
var bind = function (fn, thisArg) {
|
|
2848
2854
|
return function () {
|
|
2849
|
-
|
|
2855
|
+
var args = [];
|
|
2856
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2857
|
+
args[_i] = arguments[_i];
|
|
2858
|
+
}
|
|
2859
|
+
fn.apply(thisArg, args);
|
|
2850
2860
|
};
|
|
2851
|
-
}
|
|
2861
|
+
};
|
|
2852
2862
|
var isArray = Array.isArray || function (value) {
|
|
2853
2863
|
return Object.prototype.toString.call(value) === '[object Array]';
|
|
2854
2864
|
};
|
|
@@ -2865,7 +2875,7 @@
|
|
|
2865
2875
|
doResolve(fn, bind(resolve, this), bind(reject, this));
|
|
2866
2876
|
};
|
|
2867
2877
|
var asap = Promise.immediateFn || typeof setImmediate === 'function' && setImmediate || function (fn) {
|
|
2868
|
-
setTimeout(fn, 1);
|
|
2878
|
+
return setTimeout(fn, 1);
|
|
2869
2879
|
};
|
|
2870
2880
|
function handle(deferred) {
|
|
2871
2881
|
var me = this;
|
|
@@ -2925,7 +2935,7 @@
|
|
|
2925
2935
|
this.resolve = resolve;
|
|
2926
2936
|
this.reject = reject;
|
|
2927
2937
|
}
|
|
2928
|
-
function
|
|
2938
|
+
var doResolve = function (fn, onFulfilled, onRejected) {
|
|
2929
2939
|
var done = false;
|
|
2930
2940
|
try {
|
|
2931
2941
|
fn(function (value) {
|
|
@@ -2948,7 +2958,7 @@
|
|
|
2948
2958
|
done = true;
|
|
2949
2959
|
onRejected(ex);
|
|
2950
2960
|
}
|
|
2951
|
-
}
|
|
2961
|
+
};
|
|
2952
2962
|
Promise.prototype.catch = function (onRejected) {
|
|
2953
2963
|
return this.then(null, onRejected);
|
|
2954
2964
|
};
|
|
@@ -2959,13 +2969,17 @@
|
|
|
2959
2969
|
});
|
|
2960
2970
|
};
|
|
2961
2971
|
Promise.all = function () {
|
|
2962
|
-
var
|
|
2972
|
+
var values = [];
|
|
2973
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
2974
|
+
values[_i] = arguments[_i];
|
|
2975
|
+
}
|
|
2976
|
+
var args = Array.prototype.slice.call(values.length === 1 && isArray(values[0]) ? values[0] : values);
|
|
2963
2977
|
return new Promise(function (resolve, reject) {
|
|
2964
2978
|
if (args.length === 0) {
|
|
2965
2979
|
return resolve([]);
|
|
2966
2980
|
}
|
|
2967
2981
|
var remaining = args.length;
|
|
2968
|
-
function
|
|
2982
|
+
var res = function (i, val) {
|
|
2969
2983
|
try {
|
|
2970
2984
|
if (val && (typeof val === 'object' || typeof val === 'function')) {
|
|
2971
2985
|
var then = val.then;
|
|
@@ -2983,7 +2997,7 @@
|
|
|
2983
2997
|
} catch (ex) {
|
|
2984
2998
|
reject(ex);
|
|
2985
2999
|
}
|
|
2986
|
-
}
|
|
3000
|
+
};
|
|
2987
3001
|
for (var i = 0; i < args.length; i++) {
|
|
2988
3002
|
res(i, args[i]);
|
|
2989
3003
|
}
|
|
@@ -3015,16 +3029,16 @@
|
|
|
3015
3029
|
|
|
3016
3030
|
var requestAnimationFramePromise;
|
|
3017
3031
|
var requestAnimationFrame = function (callback, element) {
|
|
3018
|
-
var
|
|
3032
|
+
var requestAnimationFrameFunc = window.requestAnimationFrame;
|
|
3019
3033
|
var vendors = [
|
|
3020
3034
|
'ms',
|
|
3021
3035
|
'moz',
|
|
3022
3036
|
'webkit'
|
|
3023
3037
|
];
|
|
3024
|
-
var featurefill = function (
|
|
3025
|
-
window.setTimeout(
|
|
3038
|
+
var featurefill = function (cb) {
|
|
3039
|
+
window.setTimeout(cb, 0);
|
|
3026
3040
|
};
|
|
3027
|
-
for (i = 0; i < vendors.length && !requestAnimationFrameFunc; i++) {
|
|
3041
|
+
for (var i = 0; i < vendors.length && !requestAnimationFrameFunc; i++) {
|
|
3028
3042
|
requestAnimationFrameFunc = window[vendors[i] + 'RequestAnimationFrame'];
|
|
3029
3043
|
}
|
|
3030
3044
|
if (!requestAnimationFrameFunc) {
|
|
@@ -3105,7 +3119,7 @@
|
|
|
3105
3119
|
clearTimeout: wrappedClearTimeout
|
|
3106
3120
|
};
|
|
3107
3121
|
|
|
3108
|
-
function
|
|
3122
|
+
var StyleSheetLoader = function (documentOrShadowRoot, settings) {
|
|
3109
3123
|
if (settings === void 0) {
|
|
3110
3124
|
settings = {};
|
|
3111
3125
|
}
|
|
@@ -3260,7 +3274,7 @@
|
|
|
3260
3274
|
unloadAll: unloadAll,
|
|
3261
3275
|
_setReferrerPolicy: _setReferrerPolicy
|
|
3262
3276
|
};
|
|
3263
|
-
}
|
|
3277
|
+
};
|
|
3264
3278
|
|
|
3265
3279
|
var create$1 = function () {
|
|
3266
3280
|
var map = new WeakMap();
|
|
@@ -4198,7 +4212,7 @@
|
|
|
4198
4212
|
}
|
|
4199
4213
|
return styles;
|
|
4200
4214
|
};
|
|
4201
|
-
function
|
|
4215
|
+
var Schema = function (settings) {
|
|
4202
4216
|
var elements = {};
|
|
4203
4217
|
var children = {};
|
|
4204
4218
|
var patternElements = [];
|
|
@@ -4579,7 +4593,7 @@
|
|
|
4579
4593
|
addCustomElements: addCustomElements,
|
|
4580
4594
|
addValidChildren: addValidChildren
|
|
4581
4595
|
};
|
|
4582
|
-
}
|
|
4596
|
+
};
|
|
4583
4597
|
|
|
4584
4598
|
var toHex = function (match, r, g, b) {
|
|
4585
4599
|
var hex = function (val) {
|
|
@@ -4589,6 +4603,7 @@
|
|
|
4589
4603
|
return '#' + hex(r) + hex(g) + hex(b);
|
|
4590
4604
|
};
|
|
4591
4605
|
var Styles = function (settings, schema) {
|
|
4606
|
+
var _this = this;
|
|
4592
4607
|
var rgbRegExp = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi;
|
|
4593
4608
|
var urlOrStrRegExp = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi;
|
|
4594
4609
|
var styleRegExp = /\s*([^:]+):\s*([^;]+);?/g;
|
|
@@ -4616,7 +4631,7 @@
|
|
|
4616
4631
|
var styles = {};
|
|
4617
4632
|
var matches, name, value, isEncoded;
|
|
4618
4633
|
var urlConverter = settings.url_converter;
|
|
4619
|
-
var urlConverterScope = settings.url_converter_scope ||
|
|
4634
|
+
var urlConverterScope = settings.url_converter_scope || _this;
|
|
4620
4635
|
var compress = function (prefix, suffix, noJoin) {
|
|
4621
4636
|
var top = styles[prefix + '-top' + suffix];
|
|
4622
4637
|
if (!top) {
|
|
@@ -4824,12 +4839,8 @@
|
|
|
4824
4839
|
var hasIsDefaultPrevented = function (event) {
|
|
4825
4840
|
return event.isDefaultPrevented === returnTrue || event.isDefaultPrevented === returnFalse;
|
|
4826
4841
|
};
|
|
4827
|
-
var returnFalse =
|
|
4828
|
-
|
|
4829
|
-
};
|
|
4830
|
-
var returnTrue = function () {
|
|
4831
|
-
return true;
|
|
4832
|
-
};
|
|
4842
|
+
var returnFalse = never;
|
|
4843
|
+
var returnTrue = always;
|
|
4833
4844
|
var addEvent = function (target, name, callback, capture) {
|
|
4834
4845
|
if (target.addEventListener) {
|
|
4835
4846
|
target.addEventListener(name, callback, capture || false);
|
|
@@ -4871,6 +4882,7 @@
|
|
|
4871
4882
|
event.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
|
|
4872
4883
|
}
|
|
4873
4884
|
event.preventDefault = function () {
|
|
4885
|
+
event.defaultPrevented = true;
|
|
4874
4886
|
event.isDefaultPrevented = returnTrue;
|
|
4875
4887
|
if (originalEvent) {
|
|
4876
4888
|
if (originalEvent.preventDefault) {
|
|
@@ -4881,6 +4893,7 @@
|
|
|
4881
4893
|
}
|
|
4882
4894
|
};
|
|
4883
4895
|
event.stopPropagation = function () {
|
|
4896
|
+
event.cancelBubble = true;
|
|
4884
4897
|
event.isPropagationStopped = returnTrue;
|
|
4885
4898
|
if (originalEvent) {
|
|
4886
4899
|
if (originalEvent.stopPropagation) {
|
|
@@ -4895,8 +4908,8 @@
|
|
|
4895
4908
|
event.stopPropagation();
|
|
4896
4909
|
};
|
|
4897
4910
|
if (hasIsDefaultPrevented(event) === false) {
|
|
4898
|
-
event.isDefaultPrevented = returnFalse;
|
|
4899
|
-
event.isPropagationStopped = returnFalse;
|
|
4911
|
+
event.isDefaultPrevented = event.defaultPrevented === true ? returnTrue : returnFalse;
|
|
4912
|
+
event.isPropagationStopped = event.cancelBubble === true ? returnTrue : returnFalse;
|
|
4900
4913
|
event.isImmediatePropagationStopped = returnFalse;
|
|
4901
4914
|
}
|
|
4902
4915
|
if (typeof event.metaKey === 'undefined') {
|
|
@@ -5710,6 +5723,7 @@
|
|
|
5710
5723
|
}) : function (elem, context, xml) {
|
|
5711
5724
|
input[0] = elem;
|
|
5712
5725
|
matcher(input, null, xml, results);
|
|
5726
|
+
input[0] = null;
|
|
5713
5727
|
return !results.pop();
|
|
5714
5728
|
};
|
|
5715
5729
|
}),
|
|
@@ -6028,7 +6042,9 @@
|
|
|
6028
6042
|
}, implicitRelative, true), matchAnyContext = addCombinator(function (elem) {
|
|
6029
6043
|
return indexOf$2.call(checkContext, elem) > -1;
|
|
6030
6044
|
}, implicitRelative, true), matchers = [function (elem, context, xml) {
|
|
6031
|
-
|
|
6045
|
+
var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));
|
|
6046
|
+
checkContext = null;
|
|
6047
|
+
return ret;
|
|
6032
6048
|
}];
|
|
6033
6049
|
for (; i < len; i++) {
|
|
6034
6050
|
if (matcher = Expr.relative[tokens[i].type]) {
|
|
@@ -6167,7 +6183,9 @@
|
|
|
6167
6183
|
setDocument();
|
|
6168
6184
|
support.sortDetached = true;
|
|
6169
6185
|
|
|
6170
|
-
var doc = document
|
|
6186
|
+
var doc = document;
|
|
6187
|
+
var push$1 = Array.prototype.push;
|
|
6188
|
+
var slice$1 = Array.prototype.slice;
|
|
6171
6189
|
var rquickExpr$1 = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/;
|
|
6172
6190
|
var Event = EventUtils.Event;
|
|
6173
6191
|
var skipUniques = Tools.makeMap('children,contents,next,prev');
|
|
@@ -6699,7 +6717,7 @@
|
|
|
6699
6717
|
return this.css('display', 'none');
|
|
6700
6718
|
},
|
|
6701
6719
|
slice: function () {
|
|
6702
|
-
return
|
|
6720
|
+
return DomQuery(slice$1.apply(this, arguments));
|
|
6703
6721
|
},
|
|
6704
6722
|
eq: function (index) {
|
|
6705
6723
|
return index === -1 ? this.slice(index) : this.slice(index, +index + 1);
|
|
@@ -7036,8 +7054,7 @@
|
|
|
7036
7054
|
}
|
|
7037
7055
|
return idx;
|
|
7038
7056
|
};
|
|
7039
|
-
function
|
|
7040
|
-
var _this = this;
|
|
7057
|
+
var DOMUtils = function (doc, settings) {
|
|
7041
7058
|
if (settings === void 0) {
|
|
7042
7059
|
settings = {};
|
|
7043
7060
|
}
|
|
@@ -7309,7 +7326,7 @@
|
|
|
7309
7326
|
});
|
|
7310
7327
|
return result;
|
|
7311
7328
|
}
|
|
7312
|
-
var context = scope ? scope :
|
|
7329
|
+
var context = scope ? scope : this;
|
|
7313
7330
|
return func.call(context, node);
|
|
7314
7331
|
};
|
|
7315
7332
|
var setAttribs = function (elm, attrs) {
|
|
@@ -7814,14 +7831,11 @@
|
|
|
7814
7831
|
return self;
|
|
7815
7832
|
});
|
|
7816
7833
|
return self;
|
|
7817
|
-
}
|
|
7818
|
-
|
|
7819
|
-
|
|
7820
|
-
DOMUtils.nodeIndex = findNodeIndex;
|
|
7821
|
-
}(DOMUtils || (DOMUtils = {})));
|
|
7822
|
-
var DOMUtils$1 = DOMUtils;
|
|
7834
|
+
};
|
|
7835
|
+
DOMUtils.DOM = DOMUtils(document);
|
|
7836
|
+
DOMUtils.nodeIndex = findNodeIndex;
|
|
7823
7837
|
|
|
7824
|
-
var DOM = DOMUtils
|
|
7838
|
+
var DOM = DOMUtils.DOM;
|
|
7825
7839
|
var each$6 = Tools.each, grep$2 = Tools.grep;
|
|
7826
7840
|
var QUEUED = 0;
|
|
7827
7841
|
var LOADING = 1;
|
|
@@ -8077,8 +8091,7 @@
|
|
|
8077
8091
|
hasCode: hasCode
|
|
8078
8092
|
};
|
|
8079
8093
|
|
|
8080
|
-
function
|
|
8081
|
-
var _this = this;
|
|
8094
|
+
var AddOnManager = function () {
|
|
8082
8095
|
var items = [];
|
|
8083
8096
|
var urls = {};
|
|
8084
8097
|
var lookup = {};
|
|
@@ -8145,7 +8158,7 @@
|
|
|
8145
8158
|
};
|
|
8146
8159
|
};
|
|
8147
8160
|
var addComponents = function (pluginName, scripts) {
|
|
8148
|
-
var pluginUrl =
|
|
8161
|
+
var pluginUrl = urls[pluginName];
|
|
8149
8162
|
each(scripts, function (script) {
|
|
8150
8163
|
ScriptLoader.ScriptLoader.add(pluginUrl + '/' + script);
|
|
8151
8164
|
});
|
|
@@ -8214,12 +8227,11 @@
|
|
|
8214
8227
|
load: load,
|
|
8215
8228
|
waitFor: waitFor
|
|
8216
8229
|
};
|
|
8217
|
-
}
|
|
8218
|
-
|
|
8219
|
-
|
|
8220
|
-
|
|
8221
|
-
|
|
8222
|
-
var AddOnManager$1 = AddOnManager;
|
|
8230
|
+
};
|
|
8231
|
+
AddOnManager.languageLoad = true;
|
|
8232
|
+
AddOnManager.baseURL = '';
|
|
8233
|
+
AddOnManager.PluginManager = AddOnManager();
|
|
8234
|
+
AddOnManager.ThemeManager = AddOnManager();
|
|
8223
8235
|
|
|
8224
8236
|
var first = function (fn, rate) {
|
|
8225
8237
|
var timer = null;
|
|
@@ -8782,10 +8794,10 @@
|
|
|
8782
8794
|
var isNotPre = not(matchStyleValues('white-space', 'pre pre-line pre-wrap'));
|
|
8783
8795
|
var isText$4 = isText$1;
|
|
8784
8796
|
var isBr$3 = isBr;
|
|
8785
|
-
var nodeIndex = DOMUtils
|
|
8797
|
+
var nodeIndex = DOMUtils.nodeIndex;
|
|
8786
8798
|
var resolveIndex = getNode;
|
|
8787
8799
|
var createRange = function (doc) {
|
|
8788
|
-
return 'createRange' in doc ? doc.createRange() : DOMUtils
|
|
8800
|
+
return 'createRange' in doc ? doc.createRange() : DOMUtils.DOM.createRng();
|
|
8789
8801
|
};
|
|
8790
8802
|
var isWhiteSpace = function (chr) {
|
|
8791
8803
|
return chr && /[\r\n\t ]/.test(chr);
|
|
@@ -8934,7 +8946,7 @@
|
|
|
8934
8946
|
}
|
|
8935
8947
|
return clientRects;
|
|
8936
8948
|
};
|
|
8937
|
-
function
|
|
8949
|
+
var CaretPosition = function (container, offset, clientRects) {
|
|
8938
8950
|
var isAtStart = function () {
|
|
8939
8951
|
if (isText$4(container)) {
|
|
8940
8952
|
return offset === 0;
|
|
@@ -8979,40 +8991,37 @@
|
|
|
8979
8991
|
isEqual: isEqual,
|
|
8980
8992
|
getNode: getNode
|
|
8981
8993
|
};
|
|
8982
|
-
}
|
|
8983
|
-
|
|
8984
|
-
CaretPosition.
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
CaretPosition.
|
|
8988
|
-
|
|
8989
|
-
|
|
8990
|
-
CaretPosition.
|
|
8991
|
-
|
|
8992
|
-
|
|
8993
|
-
CaretPosition.
|
|
8994
|
-
|
|
8995
|
-
|
|
8996
|
-
|
|
8997
|
-
|
|
8998
|
-
|
|
8999
|
-
|
|
9000
|
-
|
|
9001
|
-
|
|
9002
|
-
|
|
9003
|
-
|
|
9004
|
-
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9010
|
-
|
|
9011
|
-
CaretPosition.
|
|
9012
|
-
|
|
9013
|
-
};
|
|
9014
|
-
}(CaretPosition || (CaretPosition = {})));
|
|
9015
|
-
var CaretPosition$1 = CaretPosition;
|
|
8994
|
+
};
|
|
8995
|
+
CaretPosition.fromRangeStart = function (range) {
|
|
8996
|
+
return CaretPosition(range.startContainer, range.startOffset);
|
|
8997
|
+
};
|
|
8998
|
+
CaretPosition.fromRangeEnd = function (range) {
|
|
8999
|
+
return CaretPosition(range.endContainer, range.endOffset);
|
|
9000
|
+
};
|
|
9001
|
+
CaretPosition.after = function (node) {
|
|
9002
|
+
return CaretPosition(node.parentNode, nodeIndex(node) + 1);
|
|
9003
|
+
};
|
|
9004
|
+
CaretPosition.before = function (node) {
|
|
9005
|
+
return CaretPosition(node.parentNode, nodeIndex(node));
|
|
9006
|
+
};
|
|
9007
|
+
CaretPosition.isAbove = function (pos1, pos2) {
|
|
9008
|
+
return lift2(head(pos2.getClientRects()), last(pos1.getClientRects()), isAbove).getOr(false);
|
|
9009
|
+
};
|
|
9010
|
+
CaretPosition.isBelow = function (pos1, pos2) {
|
|
9011
|
+
return lift2(last(pos2.getClientRects()), head(pos1.getClientRects()), isBelow).getOr(false);
|
|
9012
|
+
};
|
|
9013
|
+
CaretPosition.isAtStart = function (pos) {
|
|
9014
|
+
return pos ? pos.isAtStart() : false;
|
|
9015
|
+
};
|
|
9016
|
+
CaretPosition.isAtEnd = function (pos) {
|
|
9017
|
+
return pos ? pos.isAtEnd() : false;
|
|
9018
|
+
};
|
|
9019
|
+
CaretPosition.isTextPosition = function (pos) {
|
|
9020
|
+
return pos ? isText$1(pos.container()) : false;
|
|
9021
|
+
};
|
|
9022
|
+
CaretPosition.isElementPosition = function (pos) {
|
|
9023
|
+
return CaretPosition.isTextPosition(pos) === false;
|
|
9024
|
+
};
|
|
9016
9025
|
|
|
9017
9026
|
var trimEmptyTextNode = function (dom, node) {
|
|
9018
9027
|
if (isText$1(node) && node.data.length === 0) {
|
|
@@ -9045,7 +9054,7 @@
|
|
|
9045
9054
|
|
|
9046
9055
|
var isText$5 = isText$1;
|
|
9047
9056
|
var isBogus$2 = isBogus;
|
|
9048
|
-
var nodeIndex$1 = DOMUtils
|
|
9057
|
+
var nodeIndex$1 = DOMUtils.nodeIndex;
|
|
9049
9058
|
var normalizedParent = function (node) {
|
|
9050
9059
|
var parentNode = node.parentNode;
|
|
9051
9060
|
if (isBogus$2(parentNode)) {
|
|
@@ -9166,7 +9175,7 @@
|
|
|
9166
9175
|
if (isText$5(container) && offset > container.data.length) {
|
|
9167
9176
|
offset = container.data.length;
|
|
9168
9177
|
}
|
|
9169
|
-
return CaretPosition
|
|
9178
|
+
return CaretPosition(container, offset);
|
|
9170
9179
|
};
|
|
9171
9180
|
var resolve$1 = function (root, path) {
|
|
9172
9181
|
var offset;
|
|
@@ -9195,7 +9204,7 @@
|
|
|
9195
9204
|
} else {
|
|
9196
9205
|
offset = nodeIndex$1(container);
|
|
9197
9206
|
}
|
|
9198
|
-
return CaretPosition
|
|
9207
|
+
return CaretPosition(container.parentNode, offset);
|
|
9199
9208
|
}
|
|
9200
9209
|
return findTextPosition(container, parseInt(offset, 10));
|
|
9201
9210
|
};
|
|
@@ -9318,8 +9327,8 @@
|
|
|
9318
9327
|
var getCaretBookmark = function (selection) {
|
|
9319
9328
|
var rng = selection.getRng();
|
|
9320
9329
|
return {
|
|
9321
|
-
start: create$3(selection.dom.getRoot(), CaretPosition
|
|
9322
|
-
end: create$3(selection.dom.getRoot(), CaretPosition
|
|
9330
|
+
start: create$3(selection.dom.getRoot(), CaretPosition.fromRangeStart(rng)),
|
|
9331
|
+
end: create$3(selection.dom.getRoot(), CaretPosition.fromRangeEnd(rng))
|
|
9323
9332
|
};
|
|
9324
9333
|
};
|
|
9325
9334
|
var getRangeBookmark = function (selection) {
|
|
@@ -9375,7 +9384,7 @@
|
|
|
9375
9384
|
};
|
|
9376
9385
|
var getUndoBookmark = curry(getOffsetBookmark, identity, true);
|
|
9377
9386
|
|
|
9378
|
-
var DOM$1 = DOMUtils
|
|
9387
|
+
var DOM$1 = DOMUtils.DOM;
|
|
9379
9388
|
var defaultPreviewStyles = 'font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow';
|
|
9380
9389
|
var getBodySetting = function (editor, name, defaultValue) {
|
|
9381
9390
|
var value = editor.getParam(name, defaultValue);
|
|
@@ -9501,6 +9510,10 @@
|
|
|
9501
9510
|
return ['default'];
|
|
9502
9511
|
}
|
|
9503
9512
|
};
|
|
9513
|
+
var getFontCss = function (editor) {
|
|
9514
|
+
var fontCss = editor.getParam('font_css', []);
|
|
9515
|
+
return isArray(fontCss) ? fontCss : map(fontCss.split(','), trim);
|
|
9516
|
+
};
|
|
9504
9517
|
var getDirectionality = function (editor) {
|
|
9505
9518
|
return editor.getParam('directionality', I18n.isRtl() ? 'rtl' : undefined);
|
|
9506
9519
|
};
|
|
@@ -9512,7 +9525,7 @@
|
|
|
9512
9525
|
if (selector === false || Env.iOS) {
|
|
9513
9526
|
return false;
|
|
9514
9527
|
} else {
|
|
9515
|
-
return isString(selector) ? selector : 'table,img,figure.image,div';
|
|
9528
|
+
return isString(selector) ? selector : 'table,img,figure.image,div,video,iframe';
|
|
9516
9529
|
}
|
|
9517
9530
|
};
|
|
9518
9531
|
var getResizeImgProportional = function (editor) {
|
|
@@ -9639,7 +9652,7 @@
|
|
|
9639
9652
|
var text = before.text + after.text;
|
|
9640
9653
|
if (text.length > 0) {
|
|
9641
9654
|
deleteZwspChars(caretContainer);
|
|
9642
|
-
return CaretPosition
|
|
9655
|
+
return CaretPosition(caretContainer, pos.offset() - before.count);
|
|
9643
9656
|
} else {
|
|
9644
9657
|
return pos;
|
|
9645
9658
|
}
|
|
@@ -9647,7 +9660,7 @@
|
|
|
9647
9660
|
var removeElementAndReposition = function (caretContainer, pos) {
|
|
9648
9661
|
var parentNode = pos.container();
|
|
9649
9662
|
var newPosition = indexOf(from$1(parentNode.childNodes), caretContainer).map(function (index) {
|
|
9650
|
-
return index < pos.offset() ? CaretPosition
|
|
9663
|
+
return index < pos.offset() ? CaretPosition(parentNode, pos.offset() - 1) : pos;
|
|
9651
9664
|
}).getOr(pos);
|
|
9652
9665
|
remove$5(caretContainer);
|
|
9653
9666
|
return newPosition;
|
|
@@ -9659,7 +9672,7 @@
|
|
|
9659
9672
|
return pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);
|
|
9660
9673
|
};
|
|
9661
9674
|
var removeAndReposition = function (container, pos) {
|
|
9662
|
-
return CaretPosition
|
|
9675
|
+
return CaretPosition.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos);
|
|
9663
9676
|
};
|
|
9664
9677
|
var remove$5 = function (caretContainerNode) {
|
|
9665
9678
|
if (isElement$4(caretContainerNode) && isCaretContainer(caretContainerNode)) {
|
|
@@ -9858,12 +9871,12 @@
|
|
|
9858
9871
|
var isCefOrCaretContainer = isContentEditableFalse$4(node) || isCaretContainerBlock$1(node);
|
|
9859
9872
|
if (isBackwards(direction)) {
|
|
9860
9873
|
if (isCefOrCaretContainer) {
|
|
9861
|
-
node = skipCaretContainers(walker.prev, true);
|
|
9874
|
+
node = skipCaretContainers(walker.prev.bind(walker), true);
|
|
9862
9875
|
if (predicateFn(node)) {
|
|
9863
9876
|
return node;
|
|
9864
9877
|
}
|
|
9865
9878
|
}
|
|
9866
|
-
while (node = skipCaretContainers(walker.prev, shallow)) {
|
|
9879
|
+
while (node = skipCaretContainers(walker.prev.bind(walker), shallow)) {
|
|
9867
9880
|
if (predicateFn(node)) {
|
|
9868
9881
|
return node;
|
|
9869
9882
|
}
|
|
@@ -9871,12 +9884,12 @@
|
|
|
9871
9884
|
}
|
|
9872
9885
|
if (isForwards(direction)) {
|
|
9873
9886
|
if (isCefOrCaretContainer) {
|
|
9874
|
-
node = skipCaretContainers(walker.next, true);
|
|
9887
|
+
node = skipCaretContainers(walker.next.bind(walker), true);
|
|
9875
9888
|
if (predicateFn(node)) {
|
|
9876
9889
|
return node;
|
|
9877
9890
|
}
|
|
9878
9891
|
}
|
|
9879
|
-
while (node = skipCaretContainers(walker.next, shallow)) {
|
|
9892
|
+
while (node = skipCaretContainers(walker.next.bind(walker), shallow)) {
|
|
9880
9893
|
if (predicateFn(node)) {
|
|
9881
9894
|
return node;
|
|
9882
9895
|
}
|
|
@@ -10095,38 +10108,38 @@
|
|
|
10095
10108
|
var getCaretCandidatePosition = function (direction, node) {
|
|
10096
10109
|
if (isForwards(direction)) {
|
|
10097
10110
|
if (isCaretCandidate$3(node.previousSibling) && !isText$7(node.previousSibling)) {
|
|
10098
|
-
return CaretPosition
|
|
10111
|
+
return CaretPosition.before(node);
|
|
10099
10112
|
}
|
|
10100
10113
|
if (isText$7(node)) {
|
|
10101
|
-
return CaretPosition
|
|
10114
|
+
return CaretPosition(node, 0);
|
|
10102
10115
|
}
|
|
10103
10116
|
}
|
|
10104
10117
|
if (isBackwards(direction)) {
|
|
10105
10118
|
if (isCaretCandidate$3(node.nextSibling) && !isText$7(node.nextSibling)) {
|
|
10106
|
-
return CaretPosition
|
|
10119
|
+
return CaretPosition.after(node);
|
|
10107
10120
|
}
|
|
10108
10121
|
if (isText$7(node)) {
|
|
10109
|
-
return CaretPosition
|
|
10122
|
+
return CaretPosition(node, node.data.length);
|
|
10110
10123
|
}
|
|
10111
10124
|
}
|
|
10112
10125
|
if (isBackwards(direction)) {
|
|
10113
10126
|
if (isBr$4(node)) {
|
|
10114
|
-
return CaretPosition
|
|
10127
|
+
return CaretPosition.before(node);
|
|
10115
10128
|
}
|
|
10116
|
-
return CaretPosition
|
|
10129
|
+
return CaretPosition.after(node);
|
|
10117
10130
|
}
|
|
10118
|
-
return CaretPosition
|
|
10131
|
+
return CaretPosition.before(node);
|
|
10119
10132
|
};
|
|
10120
10133
|
var moveForwardFromBr = function (root, nextNode) {
|
|
10121
10134
|
var nextSibling = nextNode.nextSibling;
|
|
10122
10135
|
if (nextSibling && isCaretCandidate$3(nextSibling)) {
|
|
10123
10136
|
if (isText$7(nextSibling)) {
|
|
10124
|
-
return CaretPosition
|
|
10137
|
+
return CaretPosition(nextSibling, 0);
|
|
10125
10138
|
} else {
|
|
10126
|
-
return CaretPosition
|
|
10139
|
+
return CaretPosition.before(nextSibling);
|
|
10127
10140
|
}
|
|
10128
10141
|
} else {
|
|
10129
|
-
return findCaretPosition(HDirection.Forwards, CaretPosition
|
|
10142
|
+
return findCaretPosition(HDirection.Forwards, CaretPosition.after(nextNode), root);
|
|
10130
10143
|
}
|
|
10131
10144
|
};
|
|
10132
10145
|
var findCaretPosition = function (direction, startPos, root) {
|
|
@@ -10135,10 +10148,10 @@
|
|
|
10135
10148
|
if (!isElement$6(root) || !startPos) {
|
|
10136
10149
|
return null;
|
|
10137
10150
|
}
|
|
10138
|
-
if (startPos.isEqual(CaretPosition
|
|
10139
|
-
caretPosition = CaretPosition
|
|
10151
|
+
if (startPos.isEqual(CaretPosition.after(root)) && root.lastChild) {
|
|
10152
|
+
caretPosition = CaretPosition.after(root.lastChild);
|
|
10140
10153
|
if (isBackwards(direction) && isCaretCandidate$3(root.lastChild) && isElement$6(root.lastChild)) {
|
|
10141
|
-
return isBr$4(root.lastChild) ? CaretPosition
|
|
10154
|
+
return isBr$4(root.lastChild) ? CaretPosition.before(root.lastChild) : caretPosition;
|
|
10142
10155
|
}
|
|
10143
10156
|
} else {
|
|
10144
10157
|
caretPosition = startPos;
|
|
@@ -10147,10 +10160,10 @@
|
|
|
10147
10160
|
var offset = caretPosition.offset();
|
|
10148
10161
|
if (isText$7(container)) {
|
|
10149
10162
|
if (isBackwards(direction) && offset > 0) {
|
|
10150
|
-
return CaretPosition
|
|
10163
|
+
return CaretPosition(container, --offset);
|
|
10151
10164
|
}
|
|
10152
10165
|
if (isForwards(direction) && offset < container.length) {
|
|
10153
|
-
return CaretPosition
|
|
10166
|
+
return CaretPosition(container, ++offset);
|
|
10154
10167
|
}
|
|
10155
10168
|
node = container;
|
|
10156
10169
|
} else {
|
|
@@ -10161,15 +10174,15 @@
|
|
|
10161
10174
|
innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);
|
|
10162
10175
|
if (innerNode) {
|
|
10163
10176
|
if (isText$7(innerNode)) {
|
|
10164
|
-
return CaretPosition
|
|
10177
|
+
return CaretPosition(innerNode, innerNode.data.length);
|
|
10165
10178
|
}
|
|
10166
|
-
return CaretPosition
|
|
10179
|
+
return CaretPosition.after(innerNode);
|
|
10167
10180
|
}
|
|
10168
10181
|
}
|
|
10169
10182
|
if (isText$7(nextNode)) {
|
|
10170
|
-
return CaretPosition
|
|
10183
|
+
return CaretPosition(nextNode, nextNode.data.length);
|
|
10171
10184
|
}
|
|
10172
|
-
return CaretPosition
|
|
10185
|
+
return CaretPosition.before(nextNode);
|
|
10173
10186
|
}
|
|
10174
10187
|
}
|
|
10175
10188
|
if (isForwards(direction) && offset < container.childNodes.length) {
|
|
@@ -10182,15 +10195,15 @@
|
|
|
10182
10195
|
innerNode = findNode(nextNode, direction, isEditableCaretCandidate$1, nextNode);
|
|
10183
10196
|
if (innerNode) {
|
|
10184
10197
|
if (isText$7(innerNode)) {
|
|
10185
|
-
return CaretPosition
|
|
10198
|
+
return CaretPosition(innerNode, 0);
|
|
10186
10199
|
}
|
|
10187
|
-
return CaretPosition
|
|
10200
|
+
return CaretPosition.before(innerNode);
|
|
10188
10201
|
}
|
|
10189
10202
|
}
|
|
10190
10203
|
if (isText$7(nextNode)) {
|
|
10191
|
-
return CaretPosition
|
|
10204
|
+
return CaretPosition(nextNode, 0);
|
|
10192
10205
|
}
|
|
10193
|
-
return CaretPosition
|
|
10206
|
+
return CaretPosition.after(nextNode);
|
|
10194
10207
|
}
|
|
10195
10208
|
}
|
|
10196
10209
|
node = nextNode ? nextNode : caretPosition.getNode();
|
|
@@ -10205,9 +10218,9 @@
|
|
|
10205
10218
|
var rootContentEditableFalseElm = last$1(filter(getParents(container, root), isContentEditableFalse$5));
|
|
10206
10219
|
if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {
|
|
10207
10220
|
if (isForwards(direction)) {
|
|
10208
|
-
caretPosition = CaretPosition
|
|
10221
|
+
caretPosition = CaretPosition.after(rootContentEditableFalseElm);
|
|
10209
10222
|
} else {
|
|
10210
|
-
caretPosition = CaretPosition
|
|
10223
|
+
caretPosition = CaretPosition.before(rootContentEditableFalseElm);
|
|
10211
10224
|
}
|
|
10212
10225
|
return caretPosition;
|
|
10213
10226
|
}
|
|
@@ -10228,21 +10241,21 @@
|
|
|
10228
10241
|
};
|
|
10229
10242
|
|
|
10230
10243
|
var walkToPositionIn = function (forward, root, start) {
|
|
10231
|
-
var position = forward ? CaretPosition
|
|
10244
|
+
var position = forward ? CaretPosition.before(start) : CaretPosition.after(start);
|
|
10232
10245
|
return fromPosition(forward, root, position);
|
|
10233
10246
|
};
|
|
10234
10247
|
var afterElement = function (node) {
|
|
10235
|
-
return isBr(node) ? CaretPosition
|
|
10248
|
+
return isBr(node) ? CaretPosition.before(node) : CaretPosition.after(node);
|
|
10236
10249
|
};
|
|
10237
10250
|
var isBeforeOrStart = function (position) {
|
|
10238
|
-
if (CaretPosition
|
|
10251
|
+
if (CaretPosition.isTextPosition(position)) {
|
|
10239
10252
|
return position.offset() === 0;
|
|
10240
10253
|
} else {
|
|
10241
10254
|
return isCaretCandidate(position.getNode());
|
|
10242
10255
|
}
|
|
10243
10256
|
};
|
|
10244
10257
|
var isAfterOrEnd = function (position) {
|
|
10245
|
-
if (CaretPosition
|
|
10258
|
+
if (CaretPosition.isTextPosition(position)) {
|
|
10246
10259
|
var container = position.container();
|
|
10247
10260
|
return position.offset() === container.data.length;
|
|
10248
10261
|
} else {
|
|
@@ -10250,10 +10263,10 @@
|
|
|
10250
10263
|
}
|
|
10251
10264
|
};
|
|
10252
10265
|
var isBeforeAfterSameElement = function (from, to) {
|
|
10253
|
-
return !CaretPosition
|
|
10266
|
+
return !CaretPosition.isTextPosition(from) && !CaretPosition.isTextPosition(to) && from.getNode() === to.getNode(true);
|
|
10254
10267
|
};
|
|
10255
10268
|
var isAtBr = function (position) {
|
|
10256
|
-
return !CaretPosition
|
|
10269
|
+
return !CaretPosition.isTextPosition(position) && isBr(position.getNode());
|
|
10257
10270
|
};
|
|
10258
10271
|
var shouldSkipPosition = function (forward, from, to) {
|
|
10259
10272
|
if (forward) {
|
|
@@ -10283,10 +10296,10 @@
|
|
|
10283
10296
|
var positionIn = function (forward, element) {
|
|
10284
10297
|
var startNode = forward ? element.firstChild : element.lastChild;
|
|
10285
10298
|
if (isText$1(startNode)) {
|
|
10286
|
-
return Optional.some(CaretPosition
|
|
10299
|
+
return Optional.some(CaretPosition(startNode, forward ? 0 : startNode.data.length));
|
|
10287
10300
|
} else if (startNode) {
|
|
10288
10301
|
if (isCaretCandidate(startNode)) {
|
|
10289
|
-
return Optional.some(forward ? CaretPosition
|
|
10302
|
+
return Optional.some(forward ? CaretPosition.before(startNode) : afterElement(startNode));
|
|
10290
10303
|
} else {
|
|
10291
10304
|
return walkToPositionIn(forward, element, startNode);
|
|
10292
10305
|
}
|
|
@@ -10314,7 +10327,7 @@
|
|
|
10314
10327
|
};
|
|
10315
10328
|
|
|
10316
10329
|
var isStringPathBookmark = function (bookmark) {
|
|
10317
|
-
return
|
|
10330
|
+
return isString(bookmark.start);
|
|
10318
10331
|
};
|
|
10319
10332
|
var isRangeBookmark = function (bookmark) {
|
|
10320
10333
|
return bookmark.hasOwnProperty('rng');
|
|
@@ -10354,9 +10367,7 @@
|
|
|
10354
10367
|
return node.hasChildNodes() === false;
|
|
10355
10368
|
};
|
|
10356
10369
|
var tryFindRangePosition = function (node, rng) {
|
|
10357
|
-
return lastPositionIn(node).fold(function () {
|
|
10358
|
-
return false;
|
|
10359
|
-
}, function (pos) {
|
|
10370
|
+
return lastPositionIn(node).fold(never, function (pos) {
|
|
10360
10371
|
rng.setStart(pos.container(), pos.offset());
|
|
10361
10372
|
rng.setEnd(pos.container(), pos.offset());
|
|
10362
10373
|
return true;
|
|
@@ -10469,7 +10480,7 @@
|
|
|
10469
10480
|
offset = idx;
|
|
10470
10481
|
}
|
|
10471
10482
|
}
|
|
10472
|
-
return Optional.some(CaretPosition
|
|
10483
|
+
return Optional.some(CaretPosition(container, offset));
|
|
10473
10484
|
} else {
|
|
10474
10485
|
return Optional.none();
|
|
10475
10486
|
}
|
|
@@ -11171,7 +11182,7 @@
|
|
|
11171
11182
|
selection.moveToBookmark(bookmark);
|
|
11172
11183
|
};
|
|
11173
11184
|
|
|
11174
|
-
|
|
11185
|
+
var NodeValue = function (is, name) {
|
|
11175
11186
|
var get = function (element) {
|
|
11176
11187
|
if (!is(element)) {
|
|
11177
11188
|
throw new Error('Can only get ' + name + ' value of a ' + name + ' node');
|
|
@@ -11192,7 +11203,7 @@
|
|
|
11192
11203
|
getOption: getOption,
|
|
11193
11204
|
set: set
|
|
11194
11205
|
};
|
|
11195
|
-
}
|
|
11206
|
+
};
|
|
11196
11207
|
|
|
11197
11208
|
var api = NodeValue(isText, 'text');
|
|
11198
11209
|
var get$8 = function (element) {
|
|
@@ -11338,16 +11349,13 @@
|
|
|
11338
11349
|
};
|
|
11339
11350
|
};
|
|
11340
11351
|
|
|
11341
|
-
function
|
|
11352
|
+
var BookmarkManager = function (selection) {
|
|
11342
11353
|
return {
|
|
11343
11354
|
getBookmark: curry(getBookmark$1, selection),
|
|
11344
11355
|
moveToBookmark: curry(moveToBookmark, selection)
|
|
11345
11356
|
};
|
|
11346
|
-
}
|
|
11347
|
-
|
|
11348
|
-
BookmarkManager.isBookmarkNode = isBookmarkNode$1;
|
|
11349
|
-
}(BookmarkManager || (BookmarkManager = {})));
|
|
11350
|
-
var BookmarkManager$1 = BookmarkManager;
|
|
11357
|
+
};
|
|
11358
|
+
BookmarkManager.isBookmarkNode = isBookmarkNode$1;
|
|
11351
11359
|
|
|
11352
11360
|
var getContentEditableRoot = function (root, node) {
|
|
11353
11361
|
while (node && node !== root) {
|
|
@@ -11436,7 +11444,7 @@
|
|
|
11436
11444
|
END: 35,
|
|
11437
11445
|
HOME: 36,
|
|
11438
11446
|
modifierPressed: function (e) {
|
|
11439
|
-
return e.shiftKey || e.ctrlKey || e.altKey ||
|
|
11447
|
+
return e.shiftKey || e.ctrlKey || e.altKey || VK.metaKeyPressed(e);
|
|
11440
11448
|
},
|
|
11441
11449
|
metaKeyPressed: function (e) {
|
|
11442
11450
|
return Env.mac ? e.metaKey : e.ctrlKey && !e.altKey;
|
|
@@ -11445,8 +11453,9 @@
|
|
|
11445
11453
|
|
|
11446
11454
|
var isContentEditableFalse$6 = isContentEditableFalse;
|
|
11447
11455
|
var ControlSelection = function (selection, editor) {
|
|
11448
|
-
var
|
|
11449
|
-
var
|
|
11456
|
+
var elementSelectionAttr = 'data-mce-selected';
|
|
11457
|
+
var dom = editor.dom, each$2 = Tools.each;
|
|
11458
|
+
var selectedElm, selectedElmGhost, resizeHelper, selectedHandle, resizeBackdrop;
|
|
11450
11459
|
var startX, startY, selectedElmX, selectedElmY, startW, startH, ratio, resizeStarted;
|
|
11451
11460
|
var width, height;
|
|
11452
11461
|
var editableDoc = editor.getDoc(), rootDocument = document;
|
|
@@ -11481,6 +11490,9 @@
|
|
|
11481
11490
|
var isImage = function (elm) {
|
|
11482
11491
|
return elm && (elm.nodeName === 'IMG' || editor.dom.is(elm, 'figure.image'));
|
|
11483
11492
|
};
|
|
11493
|
+
var isMedia$1 = function (elm) {
|
|
11494
|
+
return isMedia(elm) || dom.hasClass(elm, 'mce-preview-object');
|
|
11495
|
+
};
|
|
11484
11496
|
var isEventOnImageOutsideRange = function (evt, range) {
|
|
11485
11497
|
if (evt.type === 'longpress' || evt.type.indexOf('touch') === 0) {
|
|
11486
11498
|
var touch = evt.touches[0];
|
|
@@ -11495,8 +11507,17 @@
|
|
|
11495
11507
|
editor.selection.select(target);
|
|
11496
11508
|
}
|
|
11497
11509
|
};
|
|
11498
|
-
var
|
|
11499
|
-
|
|
11510
|
+
var getResizeTargets = function (elm) {
|
|
11511
|
+
if (dom.is(elm, 'figure.image')) {
|
|
11512
|
+
return [elm.querySelector('img')];
|
|
11513
|
+
} else if (dom.hasClass(elm, 'mce-preview-object') && isNonNullable(elm.firstElementChild)) {
|
|
11514
|
+
return [
|
|
11515
|
+
elm,
|
|
11516
|
+
elm.firstElementChild
|
|
11517
|
+
];
|
|
11518
|
+
} else {
|
|
11519
|
+
return [elm];
|
|
11520
|
+
}
|
|
11500
11521
|
};
|
|
11501
11522
|
var isResizable = function (elm) {
|
|
11502
11523
|
var selector = getObjectResizing(editor);
|
|
@@ -11509,13 +11530,34 @@
|
|
|
11509
11530
|
if (elm === editor.getBody()) {
|
|
11510
11531
|
return false;
|
|
11511
11532
|
}
|
|
11512
|
-
|
|
11533
|
+
if (dom.hasClass(elm, 'mce-preview-object')) {
|
|
11534
|
+
return is$1(SugarElement.fromDom(elm.firstElementChild), selector);
|
|
11535
|
+
} else {
|
|
11536
|
+
return is$1(SugarElement.fromDom(elm), selector);
|
|
11537
|
+
}
|
|
11538
|
+
};
|
|
11539
|
+
var createGhostElement = function (elm) {
|
|
11540
|
+
if (isMedia$1(elm)) {
|
|
11541
|
+
return dom.create('img', { src: Env.transparentSrc });
|
|
11542
|
+
} else {
|
|
11543
|
+
return elm.cloneNode(true);
|
|
11544
|
+
}
|
|
11545
|
+
};
|
|
11546
|
+
var setSizeProp = function (element, name, value) {
|
|
11547
|
+
if (isNonNullable(value)) {
|
|
11548
|
+
var targets = getResizeTargets(element);
|
|
11549
|
+
each(targets, function (target) {
|
|
11550
|
+
if (target.style[name] || !editor.schema.isValid(target.nodeName.toLowerCase(), name)) {
|
|
11551
|
+
dom.setStyle(target, name, value);
|
|
11552
|
+
} else {
|
|
11553
|
+
dom.setAttrib(target, name, '' + value);
|
|
11554
|
+
}
|
|
11555
|
+
});
|
|
11556
|
+
}
|
|
11513
11557
|
};
|
|
11514
11558
|
var setGhostElmSize = function (ghostElm, width, height) {
|
|
11515
|
-
|
|
11516
|
-
|
|
11517
|
-
height: height
|
|
11518
|
-
});
|
|
11559
|
+
setSizeProp(ghostElm, 'width', width);
|
|
11560
|
+
setSizeProp(ghostElm, 'height', height);
|
|
11519
11561
|
};
|
|
11520
11562
|
var resizeGhostElement = function (e) {
|
|
11521
11563
|
var deltaX, deltaY, proportional;
|
|
@@ -11526,7 +11568,7 @@
|
|
|
11526
11568
|
height = deltaY * selectedHandle[3] + startH;
|
|
11527
11569
|
width = width < 5 ? 5 : width;
|
|
11528
11570
|
height = height < 5 ? 5 : height;
|
|
11529
|
-
if (isImage(selectedElm) && getResizeImgProportional(editor) !== false) {
|
|
11571
|
+
if ((isImage(selectedElm) || isMedia$1(selectedElm)) && getResizeImgProportional(editor) !== false) {
|
|
11530
11572
|
proportional = !VK.modifierPressed(e);
|
|
11531
11573
|
} else {
|
|
11532
11574
|
proportional = VK.modifierPressed(e);
|
|
@@ -11573,18 +11615,9 @@
|
|
|
11573
11615
|
var endGhostResize = function () {
|
|
11574
11616
|
var wasResizeStarted = resizeStarted;
|
|
11575
11617
|
resizeStarted = false;
|
|
11576
|
-
var setSizeProp = function (name, value) {
|
|
11577
|
-
if (value) {
|
|
11578
|
-
if (selectedElm.style[name] || !editor.schema.isValid(selectedElm.nodeName.toLowerCase(), name)) {
|
|
11579
|
-
dom.setStyle(getResizeTarget(selectedElm), name, value);
|
|
11580
|
-
} else {
|
|
11581
|
-
dom.setAttrib(getResizeTarget(selectedElm), name, '' + value);
|
|
11582
|
-
}
|
|
11583
|
-
}
|
|
11584
|
-
};
|
|
11585
11618
|
if (wasResizeStarted) {
|
|
11586
|
-
setSizeProp('width', width);
|
|
11587
|
-
setSizeProp('height', height);
|
|
11619
|
+
setSizeProp(selectedElm, 'width', width);
|
|
11620
|
+
setSizeProp(selectedElm, 'height', height);
|
|
11588
11621
|
}
|
|
11589
11622
|
dom.unbind(editableDoc, 'mousemove', resizeGhostElement);
|
|
11590
11623
|
dom.unbind(editableDoc, 'mouseup', endGhostResize);
|
|
@@ -11594,6 +11627,7 @@
|
|
|
11594
11627
|
}
|
|
11595
11628
|
dom.remove(selectedElmGhost);
|
|
11596
11629
|
dom.remove(resizeHelper);
|
|
11630
|
+
dom.remove(resizeBackdrop);
|
|
11597
11631
|
showResizeRect(selectedElm);
|
|
11598
11632
|
if (wasResizeStarted) {
|
|
11599
11633
|
fireObjectResized(editor, selectedElm, width, height, 'corner-' + selectedHandle.name);
|
|
@@ -11602,7 +11636,6 @@
|
|
|
11602
11636
|
editor.nodeChanged();
|
|
11603
11637
|
};
|
|
11604
11638
|
var showResizeRect = function (targetElm) {
|
|
11605
|
-
hideResizeRect();
|
|
11606
11639
|
unbindResizeHandleEvents();
|
|
11607
11640
|
var position = dom.getPos(targetElm, rootElement);
|
|
11608
11641
|
var selectedElmX = position.x;
|
|
@@ -11611,18 +11644,21 @@
|
|
|
11611
11644
|
var targetWidth = rect.width || rect.right - rect.left;
|
|
11612
11645
|
var targetHeight = rect.height || rect.bottom - rect.top;
|
|
11613
11646
|
if (selectedElm !== targetElm) {
|
|
11647
|
+
hideResizeRect();
|
|
11614
11648
|
selectedElm = targetElm;
|
|
11615
11649
|
width = height = 0;
|
|
11616
11650
|
}
|
|
11617
11651
|
var e = editor.fire('ObjectSelected', { target: targetElm });
|
|
11652
|
+
var selectedValue = dom.getAttrib(selectedElm, elementSelectionAttr, '1');
|
|
11618
11653
|
if (isResizable(targetElm) && !e.isDefaultPrevented()) {
|
|
11619
|
-
each(resizeHandles, function (handle, name) {
|
|
11654
|
+
each$2(resizeHandles, function (handle, name) {
|
|
11620
11655
|
var handleElm;
|
|
11621
11656
|
var startDrag = function (e) {
|
|
11657
|
+
var target = getResizeTargets(selectedElm)[0];
|
|
11622
11658
|
startX = e.screenX;
|
|
11623
11659
|
startY = e.screenY;
|
|
11624
|
-
startW =
|
|
11625
|
-
startH =
|
|
11660
|
+
startW = target.clientWidth;
|
|
11661
|
+
startH = target.clientHeight;
|
|
11626
11662
|
ratio = startH / startW;
|
|
11627
11663
|
selectedHandle = handle;
|
|
11628
11664
|
selectedHandle.name = name;
|
|
@@ -11632,18 +11668,25 @@
|
|
|
11632
11668
|
};
|
|
11633
11669
|
startScrollWidth = rootElement.scrollWidth;
|
|
11634
11670
|
startScrollHeight = rootElement.scrollHeight;
|
|
11635
|
-
|
|
11671
|
+
resizeBackdrop = dom.add(rootElement, 'div', { class: 'mce-resize-backdrop' });
|
|
11672
|
+
dom.setStyles(resizeBackdrop, {
|
|
11673
|
+
position: 'fixed',
|
|
11674
|
+
left: '0',
|
|
11675
|
+
top: '0',
|
|
11676
|
+
width: '100%',
|
|
11677
|
+
height: '100%'
|
|
11678
|
+
});
|
|
11679
|
+
selectedElmGhost = createGhostElement(selectedElm);
|
|
11636
11680
|
dom.addClass(selectedElmGhost, 'mce-clonedresizable');
|
|
11637
11681
|
dom.setAttrib(selectedElmGhost, 'data-mce-bogus', 'all');
|
|
11638
|
-
selectedElmGhost.contentEditable = false;
|
|
11639
|
-
selectedElmGhost.unSelectabe = true;
|
|
11682
|
+
selectedElmGhost.contentEditable = 'false';
|
|
11640
11683
|
dom.setStyles(selectedElmGhost, {
|
|
11641
11684
|
left: selectedElmX,
|
|
11642
11685
|
top: selectedElmY,
|
|
11643
11686
|
margin: 0
|
|
11644
11687
|
});
|
|
11645
11688
|
setGhostElmSize(selectedElmGhost, targetWidth, targetHeight);
|
|
11646
|
-
selectedElmGhost.removeAttribute(
|
|
11689
|
+
selectedElmGhost.removeAttribute(elementSelectionAttr);
|
|
11647
11690
|
rootElement.appendChild(selectedElmGhost);
|
|
11648
11691
|
dom.bind(editableDoc, 'mousemove', resizeGhostElement);
|
|
11649
11692
|
dom.bind(editableDoc, 'mouseup', endGhostResize);
|
|
@@ -11684,12 +11727,14 @@
|
|
|
11684
11727
|
} else {
|
|
11685
11728
|
hideResizeRect();
|
|
11686
11729
|
}
|
|
11687
|
-
|
|
11730
|
+
if (!dom.getAttrib(selectedElm, elementSelectionAttr)) {
|
|
11731
|
+
selectedElm.setAttribute(elementSelectionAttr, selectedValue);
|
|
11732
|
+
}
|
|
11688
11733
|
};
|
|
11689
11734
|
var hideResizeRect = function () {
|
|
11690
11735
|
unbindResizeHandleEvents();
|
|
11691
11736
|
if (selectedElm) {
|
|
11692
|
-
selectedElm.removeAttribute(
|
|
11737
|
+
selectedElm.removeAttribute(elementSelectionAttr);
|
|
11693
11738
|
}
|
|
11694
11739
|
each$1(resizeHandles, function (value, name) {
|
|
11695
11740
|
var handleElm = dom.get('mceResizeHandle' + name);
|
|
@@ -11713,11 +11758,11 @@
|
|
|
11713
11758
|
if (resizeStarted || editor.removed) {
|
|
11714
11759
|
return;
|
|
11715
11760
|
}
|
|
11716
|
-
each(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function (img) {
|
|
11717
|
-
img.removeAttribute(
|
|
11761
|
+
each$2(dom.select('img[data-mce-selected],hr[data-mce-selected]'), function (img) {
|
|
11762
|
+
img.removeAttribute(elementSelectionAttr);
|
|
11718
11763
|
});
|
|
11719
11764
|
controlElm = e.type === 'mousedown' ? e.target : selection.getNode();
|
|
11720
|
-
controlElm = dom.$(controlElm).closest('table,img,figure.image,hr')[0];
|
|
11765
|
+
controlElm = dom.$(controlElm).closest('table,img,figure.image,hr,video,span.mce-preview-object')[0];
|
|
11721
11766
|
if (isChildOrEqual(controlElm, rootElement)) {
|
|
11722
11767
|
disableGeckoResize();
|
|
11723
11768
|
startElm = selection.getStart(true);
|
|
@@ -11798,7 +11843,7 @@
|
|
|
11798
11843
|
});
|
|
11799
11844
|
editor.on('remove', unbindResizeHandleEvents);
|
|
11800
11845
|
var destroy = function () {
|
|
11801
|
-
selectedElm = selectedElmGhost = null;
|
|
11846
|
+
selectedElm = selectedElmGhost = resizeBackdrop = null;
|
|
11802
11847
|
};
|
|
11803
11848
|
return {
|
|
11804
11849
|
isResizable: isResizable,
|
|
@@ -12110,7 +12155,7 @@
|
|
|
12110
12155
|
};
|
|
12111
12156
|
};
|
|
12112
12157
|
|
|
12113
|
-
function
|
|
12158
|
+
var RangeUtils = function (dom) {
|
|
12114
12159
|
var walk = function (rng, callback) {
|
|
12115
12160
|
return walk$1(dom, rng, callback);
|
|
12116
12161
|
};
|
|
@@ -12127,16 +12172,13 @@
|
|
|
12127
12172
|
split: split,
|
|
12128
12173
|
normalize: normalize$1
|
|
12129
12174
|
};
|
|
12130
|
-
}
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
var RangeUtils$1 = RangeUtils;
|
|
12138
|
-
|
|
12139
|
-
function Dimension (name, getOffset) {
|
|
12175
|
+
};
|
|
12176
|
+
RangeUtils.compareRanges = isEq$1;
|
|
12177
|
+
RangeUtils.getCaretRangeFromPoint = fromPoint$1;
|
|
12178
|
+
RangeUtils.getSelectedNode = getSelectedNode;
|
|
12179
|
+
RangeUtils.getNode = getNode;
|
|
12180
|
+
|
|
12181
|
+
var Dimension = function (name, getOffset) {
|
|
12140
12182
|
var set = function (element, h) {
|
|
12141
12183
|
if (!isNumber(h) && !h.match(/^[0-9]+$/)) {
|
|
12142
12184
|
throw new Error(name + '.set accepts only positive integer values. Value was ' + h);
|
|
@@ -12174,7 +12216,7 @@
|
|
|
12174
12216
|
aggregate: aggregate,
|
|
12175
12217
|
max: max
|
|
12176
12218
|
};
|
|
12177
|
-
}
|
|
12219
|
+
};
|
|
12178
12220
|
|
|
12179
12221
|
var api$1 = Dimension('height', function (element) {
|
|
12180
12222
|
var dom = element.dom;
|
|
@@ -12594,9 +12636,9 @@
|
|
|
12594
12636
|
var mouseUpPage = function () {
|
|
12595
12637
|
throttledStore.throttle();
|
|
12596
12638
|
};
|
|
12597
|
-
DOMUtils
|
|
12639
|
+
DOMUtils.DOM.bind(document, 'mouseup', mouseUpPage);
|
|
12598
12640
|
editor.on('remove', function () {
|
|
12599
|
-
DOMUtils
|
|
12641
|
+
DOMUtils.DOM.unbind(document, 'mouseup', mouseUpPage);
|
|
12600
12642
|
});
|
|
12601
12643
|
};
|
|
12602
12644
|
var registerFocusOut = function (editor) {
|
|
@@ -12638,7 +12680,7 @@
|
|
|
12638
12680
|
};
|
|
12639
12681
|
|
|
12640
12682
|
var documentFocusInHandler;
|
|
12641
|
-
var DOM$2 = DOMUtils
|
|
12683
|
+
var DOM$2 = DOMUtils.DOM;
|
|
12642
12684
|
var isEditorUIElement$1 = function (elm) {
|
|
12643
12685
|
return FocusManager.isEditorUIElement(elm);
|
|
12644
12686
|
};
|
|
@@ -12673,24 +12715,22 @@
|
|
|
12673
12715
|
var editor = e.editor;
|
|
12674
12716
|
register(editor);
|
|
12675
12717
|
editor.on('focusin', function () {
|
|
12676
|
-
var self = this;
|
|
12677
12718
|
var focusedEditor = editorManager.focusedEditor;
|
|
12678
|
-
if (focusedEditor !==
|
|
12719
|
+
if (focusedEditor !== editor) {
|
|
12679
12720
|
if (focusedEditor) {
|
|
12680
|
-
focusedEditor.fire('blur', { focusedEditor:
|
|
12721
|
+
focusedEditor.fire('blur', { focusedEditor: editor });
|
|
12681
12722
|
}
|
|
12682
|
-
editorManager.setActive(
|
|
12683
|
-
editorManager.focusedEditor =
|
|
12684
|
-
|
|
12685
|
-
|
|
12723
|
+
editorManager.setActive(editor);
|
|
12724
|
+
editorManager.focusedEditor = editor;
|
|
12725
|
+
editor.fire('focus', { blurredEditor: focusedEditor });
|
|
12726
|
+
editor.focus(true);
|
|
12686
12727
|
}
|
|
12687
12728
|
});
|
|
12688
12729
|
editor.on('focusout', function () {
|
|
12689
|
-
|
|
12690
|
-
Delay.setEditorTimeout(self, function () {
|
|
12730
|
+
Delay.setEditorTimeout(editor, function () {
|
|
12691
12731
|
var focusedEditor = editorManager.focusedEditor;
|
|
12692
|
-
if (!isUIElement(
|
|
12693
|
-
|
|
12732
|
+
if (!isUIElement(editor, getActiveElement(editor)) && focusedEditor === editor) {
|
|
12733
|
+
editor.fire('blur', { focusedEditor: null });
|
|
12694
12734
|
editorManager.focusedEditor = null;
|
|
12695
12735
|
}
|
|
12696
12736
|
});
|
|
@@ -12777,7 +12817,8 @@
|
|
|
12777
12817
|
return rawBody && hasElementFocus(SugarElement.fromDom(rawBody));
|
|
12778
12818
|
};
|
|
12779
12819
|
var hasUiFocus = function (editor) {
|
|
12780
|
-
|
|
12820
|
+
var dos = getRootNode(SugarElement.fromDom(editor.getElement()));
|
|
12821
|
+
return active(dos).filter(function (elem) {
|
|
12781
12822
|
return !isEditorContentAreaElement(elem.dom) && isUIElement(editor, elem.dom);
|
|
12782
12823
|
}).isSome();
|
|
12783
12824
|
};
|
|
@@ -12938,248 +12979,54 @@
|
|
|
12938
12979
|
});
|
|
12939
12980
|
};
|
|
12940
12981
|
|
|
12941
|
-
var
|
|
12942
|
-
|
|
12982
|
+
var typeLookup = {
|
|
12983
|
+
'#text': 3,
|
|
12984
|
+
'#comment': 8,
|
|
12985
|
+
'#cdata': 4,
|
|
12986
|
+
'#pi': 7,
|
|
12987
|
+
'#doctype': 10,
|
|
12988
|
+
'#document-fragment': 11
|
|
12943
12989
|
};
|
|
12944
|
-
var
|
|
12945
|
-
var
|
|
12946
|
-
var
|
|
12947
|
-
|
|
12948
|
-
|
|
12949
|
-
var el = SugarElement.fromDom(element);
|
|
12950
|
-
var transformed = transform(el);
|
|
12951
|
-
if (transformed.isSome()) {
|
|
12952
|
-
return transformed;
|
|
12953
|
-
} else if (stop(el)) {
|
|
12954
|
-
break;
|
|
12955
|
-
}
|
|
12990
|
+
var walk$2 = function (node, root, prev) {
|
|
12991
|
+
var startName = prev ? 'lastChild' : 'firstChild';
|
|
12992
|
+
var siblingName = prev ? 'prev' : 'next';
|
|
12993
|
+
if (node[startName]) {
|
|
12994
|
+
return node[startName];
|
|
12956
12995
|
}
|
|
12957
|
-
|
|
12958
|
-
|
|
12959
|
-
|
|
12960
|
-
|
|
12961
|
-
|
|
12962
|
-
|
|
12963
|
-
|
|
12964
|
-
|
|
12965
|
-
|
|
12966
|
-
|
|
12967
|
-
var isEq$2 = isEq;
|
|
12968
|
-
var matchesUnInheritedFormatSelector = function (ed, node, name) {
|
|
12969
|
-
var formatList = ed.formatter.get(name);
|
|
12970
|
-
if (formatList) {
|
|
12971
|
-
for (var i = 0; i < formatList.length; i++) {
|
|
12972
|
-
if (formatList[i].inherit === false && ed.dom.is(node, formatList[i].selector)) {
|
|
12973
|
-
return true;
|
|
12996
|
+
if (node !== root) {
|
|
12997
|
+
var sibling = node[siblingName];
|
|
12998
|
+
if (sibling) {
|
|
12999
|
+
return sibling;
|
|
13000
|
+
}
|
|
13001
|
+
for (var parent_1 = node.parent; parent_1 && parent_1 !== root; parent_1 = parent_1.parent) {
|
|
13002
|
+
sibling = parent_1[siblingName];
|
|
13003
|
+
if (sibling) {
|
|
13004
|
+
return sibling;
|
|
12974
13005
|
}
|
|
12975
13006
|
}
|
|
12976
13007
|
}
|
|
12977
|
-
return false;
|
|
12978
13008
|
};
|
|
12979
|
-
var
|
|
12980
|
-
|
|
12981
|
-
if (node === root) {
|
|
13009
|
+
var isEmptyTextNode$1 = function (node) {
|
|
13010
|
+
if (!isWhitespaceText(node.value)) {
|
|
12982
13011
|
return false;
|
|
12983
13012
|
}
|
|
12984
|
-
|
|
12985
|
-
|
|
12986
|
-
|
|
12987
|
-
}
|
|
12988
|
-
return node.parentNode === root || !!matchNode(editor, node, name, vars, true);
|
|
12989
|
-
});
|
|
12990
|
-
return matchNode(editor, node, name, vars);
|
|
12991
|
-
};
|
|
12992
|
-
var matchName = function (dom, node, format) {
|
|
12993
|
-
if (isEq$2(node, format.inline)) {
|
|
12994
|
-
return true;
|
|
12995
|
-
}
|
|
12996
|
-
if (isEq$2(node, format.block)) {
|
|
12997
|
-
return true;
|
|
12998
|
-
}
|
|
12999
|
-
if (format.selector) {
|
|
13000
|
-
return node.nodeType === 1 && dom.is(node, format.selector);
|
|
13001
|
-
}
|
|
13002
|
-
};
|
|
13003
|
-
var matchItems = function (dom, node, format, itemName, similar, vars) {
|
|
13004
|
-
var key, value;
|
|
13005
|
-
var items = format[itemName];
|
|
13006
|
-
var i;
|
|
13007
|
-
if (format.onmatch) {
|
|
13008
|
-
return format.onmatch(node, format, itemName);
|
|
13009
|
-
}
|
|
13010
|
-
if (items) {
|
|
13011
|
-
if (typeof items.length === 'undefined') {
|
|
13012
|
-
for (key in items) {
|
|
13013
|
-
if (items.hasOwnProperty(key)) {
|
|
13014
|
-
if (itemName === 'attributes') {
|
|
13015
|
-
value = dom.getAttrib(node, key);
|
|
13016
|
-
} else {
|
|
13017
|
-
value = getStyle(dom, node, key);
|
|
13018
|
-
}
|
|
13019
|
-
if (similar && !value && !format.exact) {
|
|
13020
|
-
return;
|
|
13021
|
-
}
|
|
13022
|
-
if ((!similar || format.exact) && !isEq$2(value, normalizeStyleValue(dom, replaceVars(items[key], vars), key))) {
|
|
13023
|
-
return;
|
|
13024
|
-
}
|
|
13025
|
-
}
|
|
13026
|
-
}
|
|
13027
|
-
} else {
|
|
13028
|
-
for (i = 0; i < items.length; i++) {
|
|
13029
|
-
if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(dom, node, items[i])) {
|
|
13030
|
-
return format;
|
|
13031
|
-
}
|
|
13032
|
-
}
|
|
13033
|
-
}
|
|
13013
|
+
var parentNode = node.parent;
|
|
13014
|
+
if (parentNode && (parentNode.name !== 'span' || parentNode.attr('style')) && /^[ ]+$/.test(node.value)) {
|
|
13015
|
+
return false;
|
|
13034
13016
|
}
|
|
13035
|
-
return
|
|
13017
|
+
return true;
|
|
13036
13018
|
};
|
|
13037
|
-
var
|
|
13038
|
-
var
|
|
13039
|
-
|
|
13040
|
-
var dom = ed.dom;
|
|
13041
|
-
if (formatList && node) {
|
|
13042
|
-
for (i = 0; i < formatList.length; i++) {
|
|
13043
|
-
format = formatList[i];
|
|
13044
|
-
if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {
|
|
13045
|
-
if (classes = format.classes) {
|
|
13046
|
-
for (x = 0; x < classes.length; x++) {
|
|
13047
|
-
if (!ed.dom.hasClass(node, classes[x])) {
|
|
13048
|
-
return;
|
|
13049
|
-
}
|
|
13050
|
-
}
|
|
13051
|
-
}
|
|
13052
|
-
return format;
|
|
13053
|
-
}
|
|
13054
|
-
}
|
|
13055
|
-
}
|
|
13019
|
+
var isNonEmptyElement = function (node) {
|
|
13020
|
+
var isNamedAnchor = node.name === 'a' && !node.attr('href') && node.attr('id');
|
|
13021
|
+
return node.attr('name') || node.attr('id') && !node.firstChild || node.attr('data-mce-bookmark') || isNamedAnchor;
|
|
13056
13022
|
};
|
|
13057
|
-
var
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
|
|
13064
|
-
}
|
|
13065
|
-
var startNode = editor.selection.getStart();
|
|
13066
|
-
if (startNode !== node) {
|
|
13067
|
-
if (matchParents(editor, startNode, name, vars)) {
|
|
13068
|
-
return true;
|
|
13069
|
-
}
|
|
13070
|
-
}
|
|
13071
|
-
return false;
|
|
13072
|
-
};
|
|
13073
|
-
var matchAll = function (editor, names, vars) {
|
|
13074
|
-
var matchedFormatNames = [];
|
|
13075
|
-
var checkedMap = {};
|
|
13076
|
-
var startElement = editor.selection.getStart();
|
|
13077
|
-
editor.dom.getParent(startElement, function (node) {
|
|
13078
|
-
for (var i = 0; i < names.length; i++) {
|
|
13079
|
-
var name_1 = names[i];
|
|
13080
|
-
if (!checkedMap[name_1] && matchNode(editor, node, name_1, vars)) {
|
|
13081
|
-
checkedMap[name_1] = true;
|
|
13082
|
-
matchedFormatNames.push(name_1);
|
|
13083
|
-
}
|
|
13084
|
-
}
|
|
13085
|
-
}, editor.dom.getRoot());
|
|
13086
|
-
return matchedFormatNames;
|
|
13087
|
-
};
|
|
13088
|
-
var closest$3 = function (editor, names) {
|
|
13089
|
-
var isRoot = function (elm) {
|
|
13090
|
-
return eq$2(elm, SugarElement.fromDom(editor.getBody()));
|
|
13091
|
-
};
|
|
13092
|
-
var match = function (elm, name) {
|
|
13093
|
-
return matchNode(editor, elm.dom, name) ? Optional.some(name) : Optional.none();
|
|
13094
|
-
};
|
|
13095
|
-
return Optional.from(editor.selection.getStart(true)).bind(function (rawElm) {
|
|
13096
|
-
return closest$2(SugarElement.fromDom(rawElm), function (elm) {
|
|
13097
|
-
return findMap(names, function (name) {
|
|
13098
|
-
return match(elm, name);
|
|
13099
|
-
});
|
|
13100
|
-
}, isRoot);
|
|
13101
|
-
}).getOrNull();
|
|
13102
|
-
};
|
|
13103
|
-
var canApply = function (editor, name) {
|
|
13104
|
-
var formatList = editor.formatter.get(name);
|
|
13105
|
-
var startNode, parents, i, x, selector;
|
|
13106
|
-
var dom = editor.dom;
|
|
13107
|
-
if (formatList) {
|
|
13108
|
-
startNode = editor.selection.getStart();
|
|
13109
|
-
parents = getParents$1(dom, startNode);
|
|
13110
|
-
for (x = formatList.length - 1; x >= 0; x--) {
|
|
13111
|
-
selector = formatList[x].selector;
|
|
13112
|
-
if (!selector || formatList[x].defaultBlock) {
|
|
13113
|
-
return true;
|
|
13114
|
-
}
|
|
13115
|
-
for (i = parents.length - 1; i >= 0; i--) {
|
|
13116
|
-
if (dom.is(parents[i], selector)) {
|
|
13117
|
-
return true;
|
|
13118
|
-
}
|
|
13119
|
-
}
|
|
13120
|
-
}
|
|
13121
|
-
}
|
|
13122
|
-
return false;
|
|
13123
|
-
};
|
|
13124
|
-
var matchAllOnNode = function (editor, node, formatNames) {
|
|
13125
|
-
return foldl(formatNames, function (acc, name) {
|
|
13126
|
-
var matchSimilar = isVariableFormatName(editor, name);
|
|
13127
|
-
if (editor.formatter.matchNode(node, name, {}, matchSimilar)) {
|
|
13128
|
-
return acc.concat([name]);
|
|
13129
|
-
} else {
|
|
13130
|
-
return acc;
|
|
13131
|
-
}
|
|
13132
|
-
}, []);
|
|
13133
|
-
};
|
|
13134
|
-
|
|
13135
|
-
var typeLookup = {
|
|
13136
|
-
'#text': 3,
|
|
13137
|
-
'#comment': 8,
|
|
13138
|
-
'#cdata': 4,
|
|
13139
|
-
'#pi': 7,
|
|
13140
|
-
'#doctype': 10,
|
|
13141
|
-
'#document-fragment': 11
|
|
13142
|
-
};
|
|
13143
|
-
var walk$2 = function (node, root, prev) {
|
|
13144
|
-
var startName = prev ? 'lastChild' : 'firstChild';
|
|
13145
|
-
var siblingName = prev ? 'prev' : 'next';
|
|
13146
|
-
if (node[startName]) {
|
|
13147
|
-
return node[startName];
|
|
13148
|
-
}
|
|
13149
|
-
if (node !== root) {
|
|
13150
|
-
var sibling = node[siblingName];
|
|
13151
|
-
if (sibling) {
|
|
13152
|
-
return sibling;
|
|
13153
|
-
}
|
|
13154
|
-
for (var parent_1 = node.parent; parent_1 && parent_1 !== root; parent_1 = parent_1.parent) {
|
|
13155
|
-
sibling = parent_1[siblingName];
|
|
13156
|
-
if (sibling) {
|
|
13157
|
-
return sibling;
|
|
13158
|
-
}
|
|
13159
|
-
}
|
|
13160
|
-
}
|
|
13161
|
-
};
|
|
13162
|
-
var isEmptyTextNode$1 = function (node) {
|
|
13163
|
-
if (!isWhitespaceText(node.value)) {
|
|
13164
|
-
return false;
|
|
13165
|
-
}
|
|
13166
|
-
var parentNode = node.parent;
|
|
13167
|
-
if (parentNode && (parentNode.name !== 'span' || parentNode.attr('style')) && /^[ ]+$/.test(node.value)) {
|
|
13168
|
-
return false;
|
|
13169
|
-
}
|
|
13170
|
-
return true;
|
|
13171
|
-
};
|
|
13172
|
-
var isNonEmptyElement = function (node) {
|
|
13173
|
-
var isNamedAnchor = node.name === 'a' && !node.attr('href') && node.attr('id');
|
|
13174
|
-
return node.attr('name') || node.attr('id') && !node.firstChild || node.attr('data-mce-bookmark') || isNamedAnchor;
|
|
13175
|
-
};
|
|
13176
|
-
var AstNode = function () {
|
|
13177
|
-
function AstNode(name, type) {
|
|
13178
|
-
this.name = name;
|
|
13179
|
-
this.type = type;
|
|
13180
|
-
if (type === 1) {
|
|
13181
|
-
this.attributes = [];
|
|
13182
|
-
this.attributes.map = {};
|
|
13023
|
+
var AstNode = function () {
|
|
13024
|
+
function AstNode(name, type) {
|
|
13025
|
+
this.name = name;
|
|
13026
|
+
this.type = type;
|
|
13027
|
+
if (type === 1) {
|
|
13028
|
+
this.attributes = [];
|
|
13029
|
+
this.attributes.map = {};
|
|
13183
13030
|
}
|
|
13184
13031
|
}
|
|
13185
13032
|
AstNode.create = function (name, attrs) {
|
|
@@ -13420,180 +13267,6 @@
|
|
|
13420
13267
|
return AstNode;
|
|
13421
13268
|
}();
|
|
13422
13269
|
|
|
13423
|
-
var makeMap$3 = Tools.makeMap;
|
|
13424
|
-
var Writer = function (settings) {
|
|
13425
|
-
var html = [];
|
|
13426
|
-
settings = settings || {};
|
|
13427
|
-
var indent = settings.indent;
|
|
13428
|
-
var indentBefore = makeMap$3(settings.indent_before || '');
|
|
13429
|
-
var indentAfter = makeMap$3(settings.indent_after || '');
|
|
13430
|
-
var encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);
|
|
13431
|
-
var htmlOutput = settings.element_format === 'html';
|
|
13432
|
-
return {
|
|
13433
|
-
start: function (name, attrs, empty) {
|
|
13434
|
-
var i, l, attr, value;
|
|
13435
|
-
if (indent && indentBefore[name] && html.length > 0) {
|
|
13436
|
-
value = html[html.length - 1];
|
|
13437
|
-
if (value.length > 0 && value !== '\n') {
|
|
13438
|
-
html.push('\n');
|
|
13439
|
-
}
|
|
13440
|
-
}
|
|
13441
|
-
html.push('<', name);
|
|
13442
|
-
if (attrs) {
|
|
13443
|
-
for (i = 0, l = attrs.length; i < l; i++) {
|
|
13444
|
-
attr = attrs[i];
|
|
13445
|
-
html.push(' ', attr.name, '="', encode(attr.value, true), '"');
|
|
13446
|
-
}
|
|
13447
|
-
}
|
|
13448
|
-
if (!empty || htmlOutput) {
|
|
13449
|
-
html[html.length] = '>';
|
|
13450
|
-
} else {
|
|
13451
|
-
html[html.length] = ' />';
|
|
13452
|
-
}
|
|
13453
|
-
if (empty && indent && indentAfter[name] && html.length > 0) {
|
|
13454
|
-
value = html[html.length - 1];
|
|
13455
|
-
if (value.length > 0 && value !== '\n') {
|
|
13456
|
-
html.push('\n');
|
|
13457
|
-
}
|
|
13458
|
-
}
|
|
13459
|
-
},
|
|
13460
|
-
end: function (name) {
|
|
13461
|
-
var value;
|
|
13462
|
-
html.push('</', name, '>');
|
|
13463
|
-
if (indent && indentAfter[name] && html.length > 0) {
|
|
13464
|
-
value = html[html.length - 1];
|
|
13465
|
-
if (value.length > 0 && value !== '\n') {
|
|
13466
|
-
html.push('\n');
|
|
13467
|
-
}
|
|
13468
|
-
}
|
|
13469
|
-
},
|
|
13470
|
-
text: function (text, raw) {
|
|
13471
|
-
if (text.length > 0) {
|
|
13472
|
-
html[html.length] = raw ? text : encode(text);
|
|
13473
|
-
}
|
|
13474
|
-
},
|
|
13475
|
-
cdata: function (text) {
|
|
13476
|
-
html.push('<![CDATA[', text, ']]>');
|
|
13477
|
-
},
|
|
13478
|
-
comment: function (text) {
|
|
13479
|
-
html.push('<!--', text, '-->');
|
|
13480
|
-
},
|
|
13481
|
-
pi: function (name, text) {
|
|
13482
|
-
if (text) {
|
|
13483
|
-
html.push('<?', name, ' ', encode(text), '?>');
|
|
13484
|
-
} else {
|
|
13485
|
-
html.push('<?', name, '?>');
|
|
13486
|
-
}
|
|
13487
|
-
if (indent) {
|
|
13488
|
-
html.push('\n');
|
|
13489
|
-
}
|
|
13490
|
-
},
|
|
13491
|
-
doctype: function (text) {
|
|
13492
|
-
html.push('<!DOCTYPE', text, '>', indent ? '\n' : '');
|
|
13493
|
-
},
|
|
13494
|
-
reset: function () {
|
|
13495
|
-
html.length = 0;
|
|
13496
|
-
},
|
|
13497
|
-
getContent: function () {
|
|
13498
|
-
return html.join('').replace(/\n$/, '');
|
|
13499
|
-
}
|
|
13500
|
-
};
|
|
13501
|
-
};
|
|
13502
|
-
|
|
13503
|
-
var HtmlSerializer = function (settings, schema) {
|
|
13504
|
-
if (schema === void 0) {
|
|
13505
|
-
schema = Schema();
|
|
13506
|
-
}
|
|
13507
|
-
var writer = Writer(settings);
|
|
13508
|
-
settings = settings || {};
|
|
13509
|
-
settings.validate = 'validate' in settings ? settings.validate : true;
|
|
13510
|
-
var serialize = function (node) {
|
|
13511
|
-
var validate = settings.validate;
|
|
13512
|
-
var handlers = {
|
|
13513
|
-
3: function (node) {
|
|
13514
|
-
writer.text(node.value, node.raw);
|
|
13515
|
-
},
|
|
13516
|
-
8: function (node) {
|
|
13517
|
-
writer.comment(node.value);
|
|
13518
|
-
},
|
|
13519
|
-
7: function (node) {
|
|
13520
|
-
writer.pi(node.name, node.value);
|
|
13521
|
-
},
|
|
13522
|
-
10: function (node) {
|
|
13523
|
-
writer.doctype(node.value);
|
|
13524
|
-
},
|
|
13525
|
-
4: function (node) {
|
|
13526
|
-
writer.cdata(node.value);
|
|
13527
|
-
},
|
|
13528
|
-
11: function (node) {
|
|
13529
|
-
if (node = node.firstChild) {
|
|
13530
|
-
do {
|
|
13531
|
-
walk(node);
|
|
13532
|
-
} while (node = node.next);
|
|
13533
|
-
}
|
|
13534
|
-
}
|
|
13535
|
-
};
|
|
13536
|
-
writer.reset();
|
|
13537
|
-
var walk = function (node) {
|
|
13538
|
-
var handler = handlers[node.type];
|
|
13539
|
-
var name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule;
|
|
13540
|
-
if (!handler) {
|
|
13541
|
-
name = node.name;
|
|
13542
|
-
isEmpty = node.shortEnded;
|
|
13543
|
-
attrs = node.attributes;
|
|
13544
|
-
if (validate && attrs && attrs.length > 1) {
|
|
13545
|
-
sortedAttrs = [];
|
|
13546
|
-
sortedAttrs.map = {};
|
|
13547
|
-
elementRule = schema.getElementRule(node.name);
|
|
13548
|
-
if (elementRule) {
|
|
13549
|
-
for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) {
|
|
13550
|
-
attrName = elementRule.attributesOrder[i];
|
|
13551
|
-
if (attrName in attrs.map) {
|
|
13552
|
-
attrValue = attrs.map[attrName];
|
|
13553
|
-
sortedAttrs.map[attrName] = attrValue;
|
|
13554
|
-
sortedAttrs.push({
|
|
13555
|
-
name: attrName,
|
|
13556
|
-
value: attrValue
|
|
13557
|
-
});
|
|
13558
|
-
}
|
|
13559
|
-
}
|
|
13560
|
-
for (i = 0, l = attrs.length; i < l; i++) {
|
|
13561
|
-
attrName = attrs[i].name;
|
|
13562
|
-
if (!(attrName in sortedAttrs.map)) {
|
|
13563
|
-
attrValue = attrs.map[attrName];
|
|
13564
|
-
sortedAttrs.map[attrName] = attrValue;
|
|
13565
|
-
sortedAttrs.push({
|
|
13566
|
-
name: attrName,
|
|
13567
|
-
value: attrValue
|
|
13568
|
-
});
|
|
13569
|
-
}
|
|
13570
|
-
}
|
|
13571
|
-
attrs = sortedAttrs;
|
|
13572
|
-
}
|
|
13573
|
-
}
|
|
13574
|
-
writer.start(node.name, attrs, isEmpty);
|
|
13575
|
-
if (!isEmpty) {
|
|
13576
|
-
if (node = node.firstChild) {
|
|
13577
|
-
do {
|
|
13578
|
-
walk(node);
|
|
13579
|
-
} while (node = node.next);
|
|
13580
|
-
}
|
|
13581
|
-
writer.end(name);
|
|
13582
|
-
}
|
|
13583
|
-
} else {
|
|
13584
|
-
handler(node);
|
|
13585
|
-
}
|
|
13586
|
-
};
|
|
13587
|
-
if (node.type === 1 && !settings.inner) {
|
|
13588
|
-
walk(node);
|
|
13589
|
-
} else {
|
|
13590
|
-
handlers[11](node);
|
|
13591
|
-
}
|
|
13592
|
-
return writer.getContent();
|
|
13593
|
-
};
|
|
13594
|
-
return { serialize: serialize };
|
|
13595
|
-
};
|
|
13596
|
-
|
|
13597
13270
|
var extractBase64DataUris = function (html) {
|
|
13598
13271
|
var dataImageUri = /data:[^;]+;base64,([a-z0-9\+\/=]+)/gi;
|
|
13599
13272
|
var chunks = [];
|
|
@@ -13612,11 +13285,13 @@
|
|
|
13612
13285
|
chunks.push(imageId);
|
|
13613
13286
|
index = matches.index + uri.length;
|
|
13614
13287
|
}
|
|
13288
|
+
var re = new RegExp(prefix + '_[0-9]+', 'g');
|
|
13615
13289
|
if (index === 0) {
|
|
13616
13290
|
return {
|
|
13617
13291
|
prefix: prefix,
|
|
13618
13292
|
uris: uris,
|
|
13619
|
-
html: html
|
|
13293
|
+
html: html,
|
|
13294
|
+
re: re
|
|
13620
13295
|
};
|
|
13621
13296
|
} else {
|
|
13622
13297
|
if (index < html.length) {
|
|
@@ -13625,12 +13300,13 @@
|
|
|
13625
13300
|
return {
|
|
13626
13301
|
prefix: prefix,
|
|
13627
13302
|
uris: uris,
|
|
13628
|
-
html: chunks.join('')
|
|
13303
|
+
html: chunks.join(''),
|
|
13304
|
+
re: re
|
|
13629
13305
|
};
|
|
13630
13306
|
}
|
|
13631
13307
|
};
|
|
13632
13308
|
var restoreDataUris = function (html, result) {
|
|
13633
|
-
return html.replace(
|
|
13309
|
+
return html.replace(result.re, function (imageId) {
|
|
13634
13310
|
return get$1(result.uris, imageId).getOr(imageId);
|
|
13635
13311
|
});
|
|
13636
13312
|
};
|
|
@@ -13669,7 +13345,7 @@
|
|
|
13669
13345
|
var findEndTagIndex = function (schema, html, startIndex) {
|
|
13670
13346
|
var count = 1, index, matches;
|
|
13671
13347
|
var shortEndedElements = schema.getShortEndedElements();
|
|
13672
|
-
var tokenRegExp = /<([!?\/])?([A-Za-z0-9\-_
|
|
13348
|
+
var tokenRegExp = /<([!?\/])?([A-Za-z0-9\-_:.]+)(\s(?:[^'">]+(?:"[^"]*"|'[^']*'))*[^"'>]*(?:"[^">]*|'[^'>]*)?|\s*|\/)>/g;
|
|
13673
13349
|
tokenRegExp.lastIndex = index = startIndex;
|
|
13674
13350
|
while (matches = tokenRegExp.exec(html)) {
|
|
13675
13351
|
index = tokenRegExp.lastIndex;
|
|
@@ -13703,7 +13379,7 @@
|
|
|
13703
13379
|
var endIndex = lcHtml.indexOf('>', startIndex);
|
|
13704
13380
|
return endIndex !== -1 ? endIndex : lcHtml.length;
|
|
13705
13381
|
} else {
|
|
13706
|
-
var endCommentRegexp =
|
|
13382
|
+
var endCommentRegexp = /--!?>/g;
|
|
13707
13383
|
endCommentRegexp.lastIndex = startIndex;
|
|
13708
13384
|
var match = endCommentRegexp.exec(html);
|
|
13709
13385
|
return match ? match.index + match[0].length : lcHtml.length;
|
|
@@ -13720,12 +13396,10 @@
|
|
|
13720
13396
|
return null;
|
|
13721
13397
|
}
|
|
13722
13398
|
};
|
|
13723
|
-
function
|
|
13399
|
+
var SaxParser = function (settings, schema) {
|
|
13724
13400
|
if (schema === void 0) {
|
|
13725
13401
|
schema = Schema();
|
|
13726
13402
|
}
|
|
13727
|
-
var noop = function () {
|
|
13728
|
-
};
|
|
13729
13403
|
settings = settings || {};
|
|
13730
13404
|
if (settings.fix_self_closing !== false) {
|
|
13731
13405
|
settings.fix_self_closing = true;
|
|
@@ -13750,7 +13424,7 @@
|
|
|
13750
13424
|
var attributesRequired, attributesDefault, attributesForced;
|
|
13751
13425
|
var anyAttributesRequired, attrValue, idCount = 0;
|
|
13752
13426
|
var decode = Entities.decode;
|
|
13753
|
-
var filteredUrlAttrs = Tools.makeMap('src,href,data,background,formaction,poster,xlink:href');
|
|
13427
|
+
var filteredUrlAttrs = Tools.makeMap('src,href,data,background,action,formaction,poster,xlink:href');
|
|
13754
13428
|
var scriptUriRegExp = /((java|vb)script|mhtml):/i;
|
|
13755
13429
|
var parsingMode = format === 'html' ? 0 : 1;
|
|
13756
13430
|
var processEndTag = function (name) {
|
|
@@ -13787,7 +13461,7 @@
|
|
|
13787
13461
|
comment(restoreDataUris(value, base64Extract));
|
|
13788
13462
|
};
|
|
13789
13463
|
var processAttr = function (value) {
|
|
13790
|
-
return
|
|
13464
|
+
return restoreDataUris(value, base64Extract);
|
|
13791
13465
|
};
|
|
13792
13466
|
var processMalformedComment = function (value, startIndex) {
|
|
13793
13467
|
var startTag = value || '';
|
|
@@ -13846,7 +13520,7 @@
|
|
|
13846
13520
|
value: value
|
|
13847
13521
|
});
|
|
13848
13522
|
};
|
|
13849
|
-
var tokenRegExp = new RegExp('<(?:' + '(?:!--([\\w\\W]*?)--!?>)|' + '(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|' + '(?:![Dd][Oo][Cc][Tt][Yy][Pp][Ee]([\\w\\W]*?)>)|' + '(?:!(--)?)|' + '(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|' + '(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|' + '(?:([A-Za-z][A-Za-z0-9\\-_
|
|
13523
|
+
var tokenRegExp = new RegExp('<(?:' + '(?:!--([\\w\\W]*?)--!?>)|' + '(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|' + '(?:![Dd][Oo][Cc][Tt][Yy][Pp][Ee]([\\w\\W]*?)>)|' + '(?:!(--)?)|' + '(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|' + '(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|' + '(?:([A-Za-z][A-Za-z0-9\\-_:.]*)(\\s(?:[^\'">]+(?:"[^"]*"|\'[^\']*\'))*[^"\'>]*(?:"[^">]*|\'[^\'>]*)?|\\s*|\\/)>)' + ')', 'g');
|
|
13850
13524
|
var attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g;
|
|
13851
13525
|
var shortEndedElements = schema.getShortEndedElements();
|
|
13852
13526
|
var selfClosing = settings.self_closing_elements || schema.getSelfClosingElements();
|
|
@@ -14054,11 +13728,8 @@
|
|
|
14054
13728
|
parseInternal(extractBase64DataUris(html), format);
|
|
14055
13729
|
};
|
|
14056
13730
|
return { parse: parse };
|
|
14057
|
-
}
|
|
14058
|
-
|
|
14059
|
-
SaxParser.findEndTag = findEndTagIndex;
|
|
14060
|
-
}(SaxParser || (SaxParser = {})));
|
|
14061
|
-
var SaxParser$1 = SaxParser;
|
|
13731
|
+
};
|
|
13732
|
+
SaxParser.findEndTag = findEndTagIndex;
|
|
14062
13733
|
|
|
14063
13734
|
var trimHtml = function (tempAttrs, html) {
|
|
14064
13735
|
var trimContentRegExp = new RegExp(['\\s?(' + tempAttrs.join('|') + ')="[^"]+"'].join('|'), 'gi');
|
|
@@ -14077,7 +13748,7 @@
|
|
|
14077
13748
|
if (shortEndedElements[matches[1]]) {
|
|
14078
13749
|
endTagIndex = index;
|
|
14079
13750
|
} else {
|
|
14080
|
-
endTagIndex = SaxParser
|
|
13751
|
+
endTagIndex = SaxParser.findEndTag(schema, content, index);
|
|
14081
13752
|
}
|
|
14082
13753
|
content = content.substring(0, index - matchLength) + content.substring(endTagIndex);
|
|
14083
13754
|
bogusAllRegExp.lastIndex = index - matchLength;
|
|
@@ -14129,7 +13800,7 @@
|
|
|
14129
13800
|
|
|
14130
13801
|
var each$7 = Tools.each;
|
|
14131
13802
|
var ElementUtils = function (dom) {
|
|
14132
|
-
|
|
13803
|
+
var compare = function (node1, node2) {
|
|
14133
13804
|
if (node1.nodeName !== node2.nodeName) {
|
|
14134
13805
|
return false;
|
|
14135
13806
|
}
|
|
@@ -14154,24 +13825,199 @@
|
|
|
14154
13825
|
if (obj1[name] !== value) {
|
|
14155
13826
|
return false;
|
|
14156
13827
|
}
|
|
14157
|
-
delete obj2[name];
|
|
13828
|
+
delete obj2[name];
|
|
13829
|
+
}
|
|
13830
|
+
}
|
|
13831
|
+
for (name in obj2) {
|
|
13832
|
+
if (obj2.hasOwnProperty(name)) {
|
|
13833
|
+
return false;
|
|
13834
|
+
}
|
|
13835
|
+
}
|
|
13836
|
+
return true;
|
|
13837
|
+
};
|
|
13838
|
+
if (!compareObjects(getAttribs(node1), getAttribs(node2))) {
|
|
13839
|
+
return false;
|
|
13840
|
+
}
|
|
13841
|
+
if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {
|
|
13842
|
+
return false;
|
|
13843
|
+
}
|
|
13844
|
+
return !isBookmarkNode$1(node1) && !isBookmarkNode$1(node2);
|
|
13845
|
+
};
|
|
13846
|
+
return { compare: compare };
|
|
13847
|
+
};
|
|
13848
|
+
|
|
13849
|
+
var makeMap$3 = Tools.makeMap;
|
|
13850
|
+
var Writer = function (settings) {
|
|
13851
|
+
var html = [];
|
|
13852
|
+
settings = settings || {};
|
|
13853
|
+
var indent = settings.indent;
|
|
13854
|
+
var indentBefore = makeMap$3(settings.indent_before || '');
|
|
13855
|
+
var indentAfter = makeMap$3(settings.indent_after || '');
|
|
13856
|
+
var encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);
|
|
13857
|
+
var htmlOutput = settings.element_format === 'html';
|
|
13858
|
+
return {
|
|
13859
|
+
start: function (name, attrs, empty) {
|
|
13860
|
+
var i, l, attr, value;
|
|
13861
|
+
if (indent && indentBefore[name] && html.length > 0) {
|
|
13862
|
+
value = html[html.length - 1];
|
|
13863
|
+
if (value.length > 0 && value !== '\n') {
|
|
13864
|
+
html.push('\n');
|
|
13865
|
+
}
|
|
13866
|
+
}
|
|
13867
|
+
html.push('<', name);
|
|
13868
|
+
if (attrs) {
|
|
13869
|
+
for (i = 0, l = attrs.length; i < l; i++) {
|
|
13870
|
+
attr = attrs[i];
|
|
13871
|
+
html.push(' ', attr.name, '="', encode(attr.value, true), '"');
|
|
13872
|
+
}
|
|
13873
|
+
}
|
|
13874
|
+
if (!empty || htmlOutput) {
|
|
13875
|
+
html[html.length] = '>';
|
|
13876
|
+
} else {
|
|
13877
|
+
html[html.length] = ' />';
|
|
13878
|
+
}
|
|
13879
|
+
if (empty && indent && indentAfter[name] && html.length > 0) {
|
|
13880
|
+
value = html[html.length - 1];
|
|
13881
|
+
if (value.length > 0 && value !== '\n') {
|
|
13882
|
+
html.push('\n');
|
|
13883
|
+
}
|
|
13884
|
+
}
|
|
13885
|
+
},
|
|
13886
|
+
end: function (name) {
|
|
13887
|
+
var value;
|
|
13888
|
+
html.push('</', name, '>');
|
|
13889
|
+
if (indent && indentAfter[name] && html.length > 0) {
|
|
13890
|
+
value = html[html.length - 1];
|
|
13891
|
+
if (value.length > 0 && value !== '\n') {
|
|
13892
|
+
html.push('\n');
|
|
13893
|
+
}
|
|
13894
|
+
}
|
|
13895
|
+
},
|
|
13896
|
+
text: function (text, raw) {
|
|
13897
|
+
if (text.length > 0) {
|
|
13898
|
+
html[html.length] = raw ? text : encode(text);
|
|
13899
|
+
}
|
|
13900
|
+
},
|
|
13901
|
+
cdata: function (text) {
|
|
13902
|
+
html.push('<![CDATA[', text, ']]>');
|
|
13903
|
+
},
|
|
13904
|
+
comment: function (text) {
|
|
13905
|
+
html.push('<!--', text, '-->');
|
|
13906
|
+
},
|
|
13907
|
+
pi: function (name, text) {
|
|
13908
|
+
if (text) {
|
|
13909
|
+
html.push('<?', name, ' ', encode(text), '?>');
|
|
13910
|
+
} else {
|
|
13911
|
+
html.push('<?', name, '?>');
|
|
13912
|
+
}
|
|
13913
|
+
if (indent) {
|
|
13914
|
+
html.push('\n');
|
|
13915
|
+
}
|
|
13916
|
+
},
|
|
13917
|
+
doctype: function (text) {
|
|
13918
|
+
html.push('<!DOCTYPE', text, '>', indent ? '\n' : '');
|
|
13919
|
+
},
|
|
13920
|
+
reset: function () {
|
|
13921
|
+
html.length = 0;
|
|
13922
|
+
},
|
|
13923
|
+
getContent: function () {
|
|
13924
|
+
return html.join('').replace(/\n$/, '');
|
|
13925
|
+
}
|
|
13926
|
+
};
|
|
13927
|
+
};
|
|
13928
|
+
|
|
13929
|
+
var HtmlSerializer = function (settings, schema) {
|
|
13930
|
+
if (schema === void 0) {
|
|
13931
|
+
schema = Schema();
|
|
13932
|
+
}
|
|
13933
|
+
var writer = Writer(settings);
|
|
13934
|
+
settings = settings || {};
|
|
13935
|
+
settings.validate = 'validate' in settings ? settings.validate : true;
|
|
13936
|
+
var serialize = function (node) {
|
|
13937
|
+
var validate = settings.validate;
|
|
13938
|
+
var handlers = {
|
|
13939
|
+
3: function (node) {
|
|
13940
|
+
writer.text(node.value, node.raw);
|
|
13941
|
+
},
|
|
13942
|
+
8: function (node) {
|
|
13943
|
+
writer.comment(node.value);
|
|
13944
|
+
},
|
|
13945
|
+
7: function (node) {
|
|
13946
|
+
writer.pi(node.name, node.value);
|
|
13947
|
+
},
|
|
13948
|
+
10: function (node) {
|
|
13949
|
+
writer.doctype(node.value);
|
|
13950
|
+
},
|
|
13951
|
+
4: function (node) {
|
|
13952
|
+
writer.cdata(node.value);
|
|
13953
|
+
},
|
|
13954
|
+
11: function (node) {
|
|
13955
|
+
if (node = node.firstChild) {
|
|
13956
|
+
do {
|
|
13957
|
+
walk(node);
|
|
13958
|
+
} while (node = node.next);
|
|
13959
|
+
}
|
|
13960
|
+
}
|
|
13961
|
+
};
|
|
13962
|
+
writer.reset();
|
|
13963
|
+
var walk = function (node) {
|
|
13964
|
+
var handler = handlers[node.type];
|
|
13965
|
+
var name, isEmpty, attrs, attrName, attrValue, sortedAttrs, i, l, elementRule;
|
|
13966
|
+
if (!handler) {
|
|
13967
|
+
name = node.name;
|
|
13968
|
+
isEmpty = node.shortEnded;
|
|
13969
|
+
attrs = node.attributes;
|
|
13970
|
+
if (validate && attrs && attrs.length > 1) {
|
|
13971
|
+
sortedAttrs = [];
|
|
13972
|
+
sortedAttrs.map = {};
|
|
13973
|
+
elementRule = schema.getElementRule(node.name);
|
|
13974
|
+
if (elementRule) {
|
|
13975
|
+
for (i = 0, l = elementRule.attributesOrder.length; i < l; i++) {
|
|
13976
|
+
attrName = elementRule.attributesOrder[i];
|
|
13977
|
+
if (attrName in attrs.map) {
|
|
13978
|
+
attrValue = attrs.map[attrName];
|
|
13979
|
+
sortedAttrs.map[attrName] = attrValue;
|
|
13980
|
+
sortedAttrs.push({
|
|
13981
|
+
name: attrName,
|
|
13982
|
+
value: attrValue
|
|
13983
|
+
});
|
|
13984
|
+
}
|
|
13985
|
+
}
|
|
13986
|
+
for (i = 0, l = attrs.length; i < l; i++) {
|
|
13987
|
+
attrName = attrs[i].name;
|
|
13988
|
+
if (!(attrName in sortedAttrs.map)) {
|
|
13989
|
+
attrValue = attrs.map[attrName];
|
|
13990
|
+
sortedAttrs.map[attrName] = attrValue;
|
|
13991
|
+
sortedAttrs.push({
|
|
13992
|
+
name: attrName,
|
|
13993
|
+
value: attrValue
|
|
13994
|
+
});
|
|
13995
|
+
}
|
|
13996
|
+
}
|
|
13997
|
+
attrs = sortedAttrs;
|
|
13998
|
+
}
|
|
14158
13999
|
}
|
|
14159
|
-
|
|
14160
|
-
|
|
14161
|
-
|
|
14162
|
-
|
|
14000
|
+
writer.start(node.name, attrs, isEmpty);
|
|
14001
|
+
if (!isEmpty) {
|
|
14002
|
+
if (node = node.firstChild) {
|
|
14003
|
+
do {
|
|
14004
|
+
walk(node);
|
|
14005
|
+
} while (node = node.next);
|
|
14006
|
+
}
|
|
14007
|
+
writer.end(name);
|
|
14163
14008
|
}
|
|
14009
|
+
} else {
|
|
14010
|
+
handler(node);
|
|
14164
14011
|
}
|
|
14165
|
-
return true;
|
|
14166
14012
|
};
|
|
14167
|
-
if (!
|
|
14168
|
-
|
|
14169
|
-
}
|
|
14170
|
-
|
|
14171
|
-
return false;
|
|
14013
|
+
if (node.type === 1 && !settings.inner) {
|
|
14014
|
+
walk(node);
|
|
14015
|
+
} else {
|
|
14016
|
+
handlers[11](node);
|
|
14172
14017
|
}
|
|
14173
|
-
return
|
|
14018
|
+
return writer.getContent();
|
|
14174
14019
|
};
|
|
14020
|
+
return { serialize: serialize };
|
|
14175
14021
|
};
|
|
14176
14022
|
|
|
14177
14023
|
var isChar = function (forward, predicate, pos) {
|
|
@@ -14184,7 +14030,7 @@
|
|
|
14184
14030
|
var isAfterSpace = curry(isChar, false, isWhiteSpace$1);
|
|
14185
14031
|
var isEmptyText = function (pos) {
|
|
14186
14032
|
var container = pos.container();
|
|
14187
|
-
return isText$1(container) && (container.data.length === 0 || isZwsp$1(container.data) && BookmarkManager
|
|
14033
|
+
return isText$1(container) && (container.data.length === 0 || isZwsp$1(container.data) && BookmarkManager.isBookmarkNode(container.parentNode));
|
|
14188
14034
|
};
|
|
14189
14035
|
var matchesElementPosition = function (before, predicate) {
|
|
14190
14036
|
return function (pos) {
|
|
@@ -14473,8 +14319,8 @@
|
|
|
14473
14319
|
var elm = SugarElement.fromDom(node);
|
|
14474
14320
|
var root = ancestor(elm, isBlock).getOr(elm);
|
|
14475
14321
|
var whitespace = node.data.slice(offset, offset + count);
|
|
14476
|
-
var isEndOfContent = offset + count >= node.data.length && needsToBeNbspRight(root, CaretPosition
|
|
14477
|
-
var isStartOfContent = offset === 0 && needsToBeNbspLeft(root, CaretPosition
|
|
14322
|
+
var isEndOfContent = offset + count >= node.data.length && needsToBeNbspRight(root, CaretPosition(node, node.data.length));
|
|
14323
|
+
var isStartOfContent = offset === 0 && needsToBeNbspLeft(root, CaretPosition(node, 0));
|
|
14478
14324
|
node.replaceData(offset, count, normalizeContent(whitespace, isStartOfContent, isEndOfContent));
|
|
14479
14325
|
};
|
|
14480
14326
|
var normalizeWhitespaceAfter = function (node, offset) {
|
|
@@ -14509,16 +14355,16 @@
|
|
|
14509
14355
|
var needsReposition = function (pos, elm) {
|
|
14510
14356
|
var container = pos.container();
|
|
14511
14357
|
var offset = pos.offset();
|
|
14512
|
-
return CaretPosition
|
|
14358
|
+
return CaretPosition.isTextPosition(pos) === false && container === elm.parentNode && offset > CaretPosition.before(elm).offset();
|
|
14513
14359
|
};
|
|
14514
14360
|
var reposition = function (elm, pos) {
|
|
14515
|
-
return needsReposition(pos, elm) ? CaretPosition
|
|
14361
|
+
return needsReposition(pos, elm) ? CaretPosition(pos.container(), pos.offset() - 1) : pos;
|
|
14516
14362
|
};
|
|
14517
14363
|
var beforeOrStartOf = function (node) {
|
|
14518
|
-
return isText$1(node) ? CaretPosition
|
|
14364
|
+
return isText$1(node) ? CaretPosition(node, 0) : CaretPosition.before(node);
|
|
14519
14365
|
};
|
|
14520
14366
|
var afterOrEndOf = function (node) {
|
|
14521
|
-
return isText$1(node) ? CaretPosition
|
|
14367
|
+
return isText$1(node) ? CaretPosition(node, node.data.length) : CaretPosition.after(node);
|
|
14522
14368
|
};
|
|
14523
14369
|
var getPreviousSiblingCaretPosition = function (elm) {
|
|
14524
14370
|
if (isCaretCandidate(elm.previousSibling)) {
|
|
@@ -14535,14 +14381,14 @@
|
|
|
14535
14381
|
}
|
|
14536
14382
|
};
|
|
14537
14383
|
var findCaretPositionBackwardsFromElm = function (rootElement, elm) {
|
|
14538
|
-
var startPosition = CaretPosition
|
|
14384
|
+
var startPosition = CaretPosition.before(elm.previousSibling ? elm.previousSibling : elm.parentNode);
|
|
14539
14385
|
return prevPosition(rootElement, startPosition).fold(function () {
|
|
14540
|
-
return nextPosition(rootElement, CaretPosition
|
|
14386
|
+
return nextPosition(rootElement, CaretPosition.after(elm));
|
|
14541
14387
|
}, Optional.some);
|
|
14542
14388
|
};
|
|
14543
14389
|
var findCaretPositionForwardsFromElm = function (rootElement, elm) {
|
|
14544
|
-
return nextPosition(rootElement, CaretPosition
|
|
14545
|
-
return prevPosition(rootElement, CaretPosition
|
|
14390
|
+
return nextPosition(rootElement, CaretPosition.after(elm)).fold(function () {
|
|
14391
|
+
return prevPosition(rootElement, CaretPosition.before(elm));
|
|
14546
14392
|
}, Optional.some);
|
|
14547
14393
|
};
|
|
14548
14394
|
var findCaretPositionBackwards = function (rootElement, elm) {
|
|
@@ -14585,7 +14431,7 @@
|
|
|
14585
14431
|
var br = SugarElement.fromHtml('<br data-mce-bogus="1">');
|
|
14586
14432
|
empty(elm);
|
|
14587
14433
|
append(elm, br);
|
|
14588
|
-
return Optional.some(CaretPosition
|
|
14434
|
+
return Optional.some(CaretPosition.before(br.dom));
|
|
14589
14435
|
} else {
|
|
14590
14436
|
return Optional.none();
|
|
14591
14437
|
}
|
|
@@ -14598,7 +14444,7 @@
|
|
|
14598
14444
|
var prevNode = prev.dom, nextNode = next.dom;
|
|
14599
14445
|
var offset = prevNode.data.length;
|
|
14600
14446
|
mergeTextNodes(prevNode, nextNode, normalizeWhitespace);
|
|
14601
|
-
return pos.container() === nextNode ? CaretPosition
|
|
14447
|
+
return pos.container() === nextNode ? CaretPosition(prevNode, offset) : pos;
|
|
14602
14448
|
}).orThunk(function () {
|
|
14603
14449
|
if (normalizeWhitespace) {
|
|
14604
14450
|
prevTextOpt.each(function (elm) {
|
|
@@ -14870,20 +14716,20 @@
|
|
|
14870
14716
|
}).or(Optional.some(true));
|
|
14871
14717
|
};
|
|
14872
14718
|
var deleteCaretCells = function (editor, forward, rootElm, startElm) {
|
|
14873
|
-
var from = CaretPosition
|
|
14719
|
+
var from = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
14874
14720
|
return getParentCell(rootElm, startElm).bind(function (fromCell) {
|
|
14875
14721
|
return isEmpty(fromCell) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from);
|
|
14876
14722
|
}).getOr(false);
|
|
14877
14723
|
};
|
|
14878
14724
|
var deleteCaretCaption = function (editor, forward, rootElm, fromCaption) {
|
|
14879
|
-
var from = CaretPosition
|
|
14725
|
+
var from = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
14880
14726
|
return isEmpty(fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);
|
|
14881
14727
|
};
|
|
14882
14728
|
var isNearTable = function (forward, pos) {
|
|
14883
14729
|
return forward ? isBeforeTable(pos) : isAfterTable(pos);
|
|
14884
14730
|
};
|
|
14885
14731
|
var isBeforeOrAfterTable = function (editor, forward) {
|
|
14886
|
-
var fromPos = CaretPosition
|
|
14732
|
+
var fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
14887
14733
|
return isNearTable(forward, fromPos) || fromPosition(forward, editor.getBody(), fromPos).exists(function (pos) {
|
|
14888
14734
|
return isNearTable(forward, pos);
|
|
14889
14735
|
});
|
|
@@ -14909,8 +14755,8 @@
|
|
|
14909
14755
|
return rng;
|
|
14910
14756
|
};
|
|
14911
14757
|
var normalizeBlockSelectionRange = function (rng) {
|
|
14912
|
-
var startPos = CaretPosition
|
|
14913
|
-
var endPos = CaretPosition
|
|
14758
|
+
var startPos = CaretPosition.fromRangeStart(rng);
|
|
14759
|
+
var endPos = CaretPosition.fromRangeEnd(rng);
|
|
14914
14760
|
var rootNode = rng.commonAncestorContainer;
|
|
14915
14761
|
return fromPosition(false, rootNode, endPos).map(function (newEndPos) {
|
|
14916
14762
|
if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) {
|
|
@@ -15006,13 +14852,13 @@
|
|
|
15006
14852
|
];
|
|
15007
14853
|
};
|
|
15008
14854
|
var findFirstIn = function (node, rootNode) {
|
|
15009
|
-
var caretPos = CaretPosition
|
|
14855
|
+
var caretPos = CaretPosition.before(node);
|
|
15010
14856
|
var caretWalker = CaretWalker(rootNode);
|
|
15011
14857
|
var newCaretPos = caretWalker.next(caretPos);
|
|
15012
14858
|
return newCaretPos ? newCaretPos.toRange() : null;
|
|
15013
14859
|
};
|
|
15014
14860
|
var findLastOf = function (node, rootNode) {
|
|
15015
|
-
var caretPos = CaretPosition
|
|
14861
|
+
var caretPos = CaretPosition.after(node);
|
|
15016
14862
|
var caretWalker = CaretWalker(rootNode);
|
|
15017
14863
|
var newCaretPos = caretWalker.prev(caretPos);
|
|
15018
14864
|
return newCaretPos ? newCaretPos.toRange() : null;
|
|
@@ -15046,7 +14892,7 @@
|
|
|
15046
14892
|
var BEGINNING = 1, END = 2;
|
|
15047
14893
|
var rootNode = dom.getRoot();
|
|
15048
14894
|
var isAt = function (location) {
|
|
15049
|
-
var caretPos = CaretPosition
|
|
14895
|
+
var caretPos = CaretPosition.fromRangeStart(rng);
|
|
15050
14896
|
var caretWalker = CaretWalker(dom.getRoot());
|
|
15051
14897
|
var newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);
|
|
15052
14898
|
return newPos ? getParentLi(dom, newPos.getNode()) !== liTarget : true;
|
|
@@ -15061,12 +14907,12 @@
|
|
|
15061
14907
|
|
|
15062
14908
|
var trimOrPadLeftRight = function (dom, rng, html) {
|
|
15063
14909
|
var root = SugarElement.fromDom(dom.getRoot());
|
|
15064
|
-
if (needsToBeNbspLeft(root, CaretPosition
|
|
14910
|
+
if (needsToBeNbspLeft(root, CaretPosition.fromRangeStart(rng))) {
|
|
15065
14911
|
html = html.replace(/^ /, ' ');
|
|
15066
14912
|
} else {
|
|
15067
14913
|
html = html.replace(/^ /, ' ');
|
|
15068
14914
|
}
|
|
15069
|
-
if (needsToBeNbspRight(root, CaretPosition
|
|
14915
|
+
if (needsToBeNbspRight(root, CaretPosition.fromRangeEnd(rng))) {
|
|
15070
14916
|
html = html.replace(/( | )(<br( \/)>)?$/, ' ');
|
|
15071
14917
|
} else {
|
|
15072
14918
|
html = html.replace(/ (<br( \/)?>)?$/, ' ');
|
|
@@ -15103,7 +14949,7 @@
|
|
|
15103
14949
|
var textInlineElements = editor.schema.getTextInlineElements();
|
|
15104
14950
|
var dom = editor.dom;
|
|
15105
14951
|
if (merge) {
|
|
15106
|
-
var root_1 = editor.getBody(), elementUtils_1 =
|
|
14952
|
+
var root_1 = editor.getBody(), elementUtils_1 = ElementUtils(dom);
|
|
15107
14953
|
Tools.each(dom.select('*[data-mce-fragment]'), function (node) {
|
|
15108
14954
|
for (var testNode = node.parentNode; testNode && testNode !== root_1; testNode = testNode.parentNode) {
|
|
15109
14955
|
if (textInlineElements[node.nodeName.toLowerCase()] && elementUtils_1.compare(testNode, node)) {
|
|
@@ -15171,7 +15017,7 @@
|
|
|
15171
15017
|
rng.setEndBefore(marker);
|
|
15172
15018
|
}
|
|
15173
15019
|
var findNextCaretRng = function (rng) {
|
|
15174
|
-
var caretPos = CaretPosition
|
|
15020
|
+
var caretPos = CaretPosition.fromRangeStart(rng);
|
|
15175
15021
|
var caretWalker = CaretWalker(editor.getBody());
|
|
15176
15022
|
caretPos = caretWalker.next(caretPos);
|
|
15177
15023
|
if (caretPos) {
|
|
@@ -15448,44 +15294,202 @@
|
|
|
15448
15294
|
});
|
|
15449
15295
|
};
|
|
15450
15296
|
|
|
15451
|
-
var
|
|
15452
|
-
|
|
15453
|
-
|
|
15454
|
-
|
|
15455
|
-
|
|
15297
|
+
var sibling$2 = function (scope, predicate) {
|
|
15298
|
+
return sibling(scope, predicate).isSome();
|
|
15299
|
+
};
|
|
15300
|
+
|
|
15301
|
+
var ensureIsRoot = function (isRoot) {
|
|
15302
|
+
return isFunction(isRoot) ? isRoot : never;
|
|
15303
|
+
};
|
|
15304
|
+
var ancestor$3 = function (scope, transform, isRoot) {
|
|
15305
|
+
var element = scope.dom;
|
|
15306
|
+
var stop = ensureIsRoot(isRoot);
|
|
15307
|
+
while (element.parentNode) {
|
|
15308
|
+
element = element.parentNode;
|
|
15309
|
+
var el = SugarElement.fromDom(element);
|
|
15310
|
+
var transformed = transform(el);
|
|
15311
|
+
if (transformed.isSome()) {
|
|
15312
|
+
return transformed;
|
|
15313
|
+
} else if (stop(el)) {
|
|
15314
|
+
break;
|
|
15315
|
+
}
|
|
15456
15316
|
}
|
|
15457
|
-
|
|
15458
|
-
|
|
15459
|
-
|
|
15460
|
-
|
|
15461
|
-
|
|
15462
|
-
|
|
15463
|
-
|
|
15464
|
-
|
|
15465
|
-
|
|
15317
|
+
return Optional.none();
|
|
15318
|
+
};
|
|
15319
|
+
var closest$2 = function (scope, transform, isRoot) {
|
|
15320
|
+
var current = transform(scope);
|
|
15321
|
+
var stop = ensureIsRoot(isRoot);
|
|
15322
|
+
return current.orThunk(function () {
|
|
15323
|
+
return stop(scope) ? Optional.none() : ancestor$3(scope, transform, stop);
|
|
15324
|
+
});
|
|
15325
|
+
};
|
|
15326
|
+
|
|
15327
|
+
var isEq$2 = isEq;
|
|
15328
|
+
var matchesUnInheritedFormatSelector = function (ed, node, name) {
|
|
15329
|
+
var formatList = ed.formatter.get(name);
|
|
15330
|
+
if (formatList) {
|
|
15331
|
+
for (var i = 0; i < formatList.length; i++) {
|
|
15332
|
+
if (formatList[i].inherit === false && ed.dom.is(node, formatList[i].selector)) {
|
|
15333
|
+
return true;
|
|
15466
15334
|
}
|
|
15467
|
-
|
|
15468
|
-
|
|
15469
|
-
|
|
15470
|
-
|
|
15471
|
-
|
|
15472
|
-
|
|
15473
|
-
|
|
15474
|
-
|
|
15475
|
-
|
|
15335
|
+
}
|
|
15336
|
+
}
|
|
15337
|
+
return false;
|
|
15338
|
+
};
|
|
15339
|
+
var matchParents = function (editor, node, name, vars) {
|
|
15340
|
+
var root = editor.dom.getRoot();
|
|
15341
|
+
if (node === root) {
|
|
15342
|
+
return false;
|
|
15343
|
+
}
|
|
15344
|
+
node = editor.dom.getParent(node, function (node) {
|
|
15345
|
+
if (matchesUnInheritedFormatSelector(editor, node, name)) {
|
|
15346
|
+
return true;
|
|
15347
|
+
}
|
|
15348
|
+
return node.parentNode === root || !!matchNode(editor, node, name, vars, true);
|
|
15349
|
+
});
|
|
15350
|
+
return matchNode(editor, node, name, vars);
|
|
15351
|
+
};
|
|
15352
|
+
var matchName = function (dom, node, format) {
|
|
15353
|
+
if (isEq$2(node, format.inline)) {
|
|
15354
|
+
return true;
|
|
15355
|
+
}
|
|
15356
|
+
if (isEq$2(node, format.block)) {
|
|
15357
|
+
return true;
|
|
15358
|
+
}
|
|
15359
|
+
if (format.selector) {
|
|
15360
|
+
return node.nodeType === 1 && dom.is(node, format.selector);
|
|
15361
|
+
}
|
|
15362
|
+
};
|
|
15363
|
+
var matchItems = function (dom, node, format, itemName, similar, vars) {
|
|
15364
|
+
var key, value;
|
|
15365
|
+
var items = format[itemName];
|
|
15366
|
+
var i;
|
|
15367
|
+
if (format.onmatch) {
|
|
15368
|
+
return format.onmatch(node, format, itemName);
|
|
15369
|
+
}
|
|
15370
|
+
if (items) {
|
|
15371
|
+
if (typeof items.length === 'undefined') {
|
|
15372
|
+
for (key in items) {
|
|
15373
|
+
if (items.hasOwnProperty(key)) {
|
|
15374
|
+
if (itemName === 'attributes') {
|
|
15375
|
+
value = dom.getAttrib(node, key);
|
|
15376
|
+
} else {
|
|
15377
|
+
value = getStyle(dom, node, key);
|
|
15378
|
+
}
|
|
15379
|
+
if (similar && !value && !format.exact) {
|
|
15380
|
+
return;
|
|
15381
|
+
}
|
|
15382
|
+
if ((!similar || format.exact) && !isEq$2(value, normalizeStyleValue(dom, replaceVars(items[key], vars), key))) {
|
|
15383
|
+
return;
|
|
15384
|
+
}
|
|
15385
|
+
}
|
|
15386
|
+
}
|
|
15387
|
+
} else {
|
|
15388
|
+
for (i = 0; i < items.length; i++) {
|
|
15389
|
+
if (itemName === 'attributes' ? dom.getAttrib(node, items[i]) : getStyle(dom, node, items[i])) {
|
|
15390
|
+
return format;
|
|
15476
15391
|
}
|
|
15477
15392
|
}
|
|
15478
|
-
break;
|
|
15479
15393
|
}
|
|
15480
|
-
}
|
|
15481
|
-
|
|
15482
|
-
element: elm,
|
|
15483
|
-
hasVisual: editor.hasVisual
|
|
15484
|
-
});
|
|
15394
|
+
}
|
|
15395
|
+
return format;
|
|
15485
15396
|
};
|
|
15486
|
-
|
|
15487
|
-
|
|
15488
|
-
|
|
15397
|
+
var matchNode = function (ed, node, name, vars, similar) {
|
|
15398
|
+
var formatList = ed.formatter.get(name);
|
|
15399
|
+
var format, i, x, classes;
|
|
15400
|
+
var dom = ed.dom;
|
|
15401
|
+
if (formatList && node) {
|
|
15402
|
+
for (i = 0; i < formatList.length; i++) {
|
|
15403
|
+
format = formatList[i];
|
|
15404
|
+
if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {
|
|
15405
|
+
if (classes = format.classes) {
|
|
15406
|
+
for (x = 0; x < classes.length; x++) {
|
|
15407
|
+
if (!ed.dom.hasClass(node, classes[x])) {
|
|
15408
|
+
return;
|
|
15409
|
+
}
|
|
15410
|
+
}
|
|
15411
|
+
}
|
|
15412
|
+
return format;
|
|
15413
|
+
}
|
|
15414
|
+
}
|
|
15415
|
+
}
|
|
15416
|
+
};
|
|
15417
|
+
var match = function (editor, name, vars, node) {
|
|
15418
|
+
if (node) {
|
|
15419
|
+
return matchParents(editor, node, name, vars);
|
|
15420
|
+
}
|
|
15421
|
+
node = editor.selection.getNode();
|
|
15422
|
+
if (matchParents(editor, node, name, vars)) {
|
|
15423
|
+
return true;
|
|
15424
|
+
}
|
|
15425
|
+
var startNode = editor.selection.getStart();
|
|
15426
|
+
if (startNode !== node) {
|
|
15427
|
+
if (matchParents(editor, startNode, name, vars)) {
|
|
15428
|
+
return true;
|
|
15429
|
+
}
|
|
15430
|
+
}
|
|
15431
|
+
return false;
|
|
15432
|
+
};
|
|
15433
|
+
var matchAll = function (editor, names, vars) {
|
|
15434
|
+
var matchedFormatNames = [];
|
|
15435
|
+
var checkedMap = {};
|
|
15436
|
+
var startElement = editor.selection.getStart();
|
|
15437
|
+
editor.dom.getParent(startElement, function (node) {
|
|
15438
|
+
for (var i = 0; i < names.length; i++) {
|
|
15439
|
+
var name_1 = names[i];
|
|
15440
|
+
if (!checkedMap[name_1] && matchNode(editor, node, name_1, vars)) {
|
|
15441
|
+
checkedMap[name_1] = true;
|
|
15442
|
+
matchedFormatNames.push(name_1);
|
|
15443
|
+
}
|
|
15444
|
+
}
|
|
15445
|
+
}, editor.dom.getRoot());
|
|
15446
|
+
return matchedFormatNames;
|
|
15447
|
+
};
|
|
15448
|
+
var closest$3 = function (editor, names) {
|
|
15449
|
+
var isRoot = function (elm) {
|
|
15450
|
+
return eq$2(elm, SugarElement.fromDom(editor.getBody()));
|
|
15451
|
+
};
|
|
15452
|
+
var match = function (elm, name) {
|
|
15453
|
+
return matchNode(editor, elm.dom, name) ? Optional.some(name) : Optional.none();
|
|
15454
|
+
};
|
|
15455
|
+
return Optional.from(editor.selection.getStart(true)).bind(function (rawElm) {
|
|
15456
|
+
return closest$2(SugarElement.fromDom(rawElm), function (elm) {
|
|
15457
|
+
return findMap(names, function (name) {
|
|
15458
|
+
return match(elm, name);
|
|
15459
|
+
});
|
|
15460
|
+
}, isRoot);
|
|
15461
|
+
}).getOrNull();
|
|
15462
|
+
};
|
|
15463
|
+
var canApply = function (editor, name) {
|
|
15464
|
+
var formatList = editor.formatter.get(name);
|
|
15465
|
+
var startNode, parents, i, x, selector;
|
|
15466
|
+
var dom = editor.dom;
|
|
15467
|
+
if (formatList) {
|
|
15468
|
+
startNode = editor.selection.getStart();
|
|
15469
|
+
parents = getParents$1(dom, startNode);
|
|
15470
|
+
for (x = formatList.length - 1; x >= 0; x--) {
|
|
15471
|
+
selector = formatList[x].selector;
|
|
15472
|
+
if (!selector || formatList[x].defaultBlock) {
|
|
15473
|
+
return true;
|
|
15474
|
+
}
|
|
15475
|
+
for (i = parents.length - 1; i >= 0; i--) {
|
|
15476
|
+
if (dom.is(parents[i], selector)) {
|
|
15477
|
+
return true;
|
|
15478
|
+
}
|
|
15479
|
+
}
|
|
15480
|
+
}
|
|
15481
|
+
}
|
|
15482
|
+
return false;
|
|
15483
|
+
};
|
|
15484
|
+
var matchAllOnNode = function (editor, node, formatNames) {
|
|
15485
|
+
return foldl(formatNames, function (acc, name) {
|
|
15486
|
+
var matchSimilar = isVariableFormatName(editor, name);
|
|
15487
|
+
if (editor.formatter.matchNode(node, name, {}, matchSimilar)) {
|
|
15488
|
+
return acc.concat([name]);
|
|
15489
|
+
} else {
|
|
15490
|
+
return acc;
|
|
15491
|
+
}
|
|
15492
|
+
}, []);
|
|
15489
15493
|
};
|
|
15490
15494
|
|
|
15491
15495
|
var ZWSP$1 = ZWSP, CARET_ID$1 = '_mce_caret';
|
|
@@ -15726,7 +15730,7 @@
|
|
|
15726
15730
|
var innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom);
|
|
15727
15731
|
before(SugarElement.fromDom(targetNode), caretContainer);
|
|
15728
15732
|
remove(SugarElement.fromDom(targetNode));
|
|
15729
|
-
return CaretPosition
|
|
15733
|
+
return CaretPosition(innerMost, 0);
|
|
15730
15734
|
};
|
|
15731
15735
|
var isFormatElement = function (editor, element) {
|
|
15732
15736
|
var inlineElements = editor.schema.getTextInlineElements();
|
|
@@ -15788,7 +15792,7 @@
|
|
|
15788
15792
|
};
|
|
15789
15793
|
var mergeSiblingsNodes = function (dom, prev, next) {
|
|
15790
15794
|
var sibling, tmpSibling;
|
|
15791
|
-
var elementUtils =
|
|
15795
|
+
var elementUtils = ElementUtils(dom);
|
|
15792
15796
|
if (prev && next) {
|
|
15793
15797
|
prev = findElementSibling(prev, 'previousSibling');
|
|
15794
15798
|
next = findElementSibling(next, 'nextSibling');
|
|
@@ -17377,26 +17381,42 @@
|
|
|
17377
17381
|
}
|
|
17378
17382
|
};
|
|
17379
17383
|
|
|
17380
|
-
var
|
|
17381
|
-
|
|
17382
|
-
|
|
17383
|
-
|
|
17384
|
-
|
|
17385
|
-
|
|
17386
|
-
|
|
17387
|
-
|
|
17388
|
-
|
|
17384
|
+
var addVisualInternal = function (editor, elm) {
|
|
17385
|
+
var dom = editor.dom;
|
|
17386
|
+
var scope = isNonNullable(elm) ? elm : editor.getBody();
|
|
17387
|
+
if (isUndefined(editor.hasVisual)) {
|
|
17388
|
+
editor.hasVisual = isVisualAidsEnabled(editor);
|
|
17389
|
+
}
|
|
17390
|
+
each(dom.select('table,a', scope), function (matchedElm) {
|
|
17391
|
+
switch (matchedElm.nodeName) {
|
|
17392
|
+
case 'TABLE':
|
|
17393
|
+
var cls = getVisualAidsTableClass(editor);
|
|
17394
|
+
var value = dom.getAttrib(matchedElm, 'border');
|
|
17395
|
+
if ((!value || value === '0') && editor.hasVisual) {
|
|
17396
|
+
dom.addClass(matchedElm, cls);
|
|
17397
|
+
} else {
|
|
17398
|
+
dom.removeClass(matchedElm, cls);
|
|
17399
|
+
}
|
|
17400
|
+
break;
|
|
17401
|
+
case 'A':
|
|
17402
|
+
if (!dom.getAttrib(matchedElm, 'href')) {
|
|
17403
|
+
var value_1 = dom.getAttrib(matchedElm, 'name') || matchedElm.id;
|
|
17404
|
+
var cls_1 = getVisualAidsAnchorClass(editor);
|
|
17405
|
+
if (value_1 && editor.hasVisual) {
|
|
17406
|
+
dom.addClass(matchedElm, cls_1);
|
|
17407
|
+
} else {
|
|
17408
|
+
dom.removeClass(matchedElm, cls_1);
|
|
17409
|
+
}
|
|
17410
|
+
}
|
|
17411
|
+
break;
|
|
17412
|
+
}
|
|
17413
|
+
});
|
|
17414
|
+
editor.fire('VisualAid', {
|
|
17415
|
+
element: elm,
|
|
17416
|
+
hasVisual: editor.hasVisual
|
|
17389
17417
|
});
|
|
17390
17418
|
};
|
|
17391
|
-
|
|
17392
|
-
return {
|
|
17393
|
-
type: 'complete',
|
|
17394
|
-
fragments: [],
|
|
17395
|
-
content: '',
|
|
17396
|
-
bookmark: null,
|
|
17397
|
-
beforeBookmark: null
|
|
17398
|
-
};
|
|
17399
|
-
};
|
|
17419
|
+
|
|
17400
17420
|
var makePlainAdaptor = function (editor) {
|
|
17401
17421
|
return {
|
|
17402
17422
|
undoManager: {
|
|
@@ -17489,114 +17509,132 @@
|
|
|
17489
17509
|
}
|
|
17490
17510
|
};
|
|
17491
17511
|
};
|
|
17492
|
-
var makeRtcAdaptor = function (
|
|
17512
|
+
var makeRtcAdaptor = function (rtcEditor) {
|
|
17493
17513
|
var defaultVars = function (vars) {
|
|
17494
17514
|
return isObject(vars) ? vars : {};
|
|
17495
17515
|
};
|
|
17496
17516
|
var unsupported = die('Unimplemented feature for rtc');
|
|
17517
|
+
var undoManager = rtcEditor.undoManager, formatter = rtcEditor.formatter, editor = rtcEditor.editor, selection = rtcEditor.selection, raw = rtcEditor.raw;
|
|
17497
17518
|
var ignore = noop;
|
|
17498
17519
|
return {
|
|
17499
17520
|
undoManager: {
|
|
17500
17521
|
beforeChange: ignore,
|
|
17501
17522
|
addUndoLevel: unsupported,
|
|
17502
17523
|
undo: function () {
|
|
17503
|
-
|
|
17504
|
-
return createDummyUndoLevel();
|
|
17524
|
+
return undoManager.undo();
|
|
17505
17525
|
},
|
|
17506
17526
|
redo: function () {
|
|
17507
|
-
|
|
17508
|
-
|
|
17527
|
+
return undoManager.redo();
|
|
17528
|
+
},
|
|
17529
|
+
clear: function () {
|
|
17530
|
+
return undoManager.clear();
|
|
17531
|
+
},
|
|
17532
|
+
reset: function () {
|
|
17533
|
+
return undoManager.reset();
|
|
17509
17534
|
},
|
|
17510
|
-
clear: unsupported,
|
|
17511
|
-
reset: unsupported,
|
|
17512
17535
|
hasUndo: function () {
|
|
17513
|
-
return
|
|
17536
|
+
return undoManager.hasUndo();
|
|
17514
17537
|
},
|
|
17515
17538
|
hasRedo: function () {
|
|
17516
|
-
return
|
|
17539
|
+
return undoManager.hasRedo();
|
|
17517
17540
|
},
|
|
17518
17541
|
transact: function (_undoManager, _locks, fn) {
|
|
17519
|
-
|
|
17520
|
-
return createDummyUndoLevel();
|
|
17542
|
+
return undoManager.transact(fn);
|
|
17521
17543
|
},
|
|
17522
|
-
ignore:
|
|
17523
|
-
|
|
17544
|
+
ignore: function (_locks, callback) {
|
|
17545
|
+
return undoManager.ignore(callback);
|
|
17546
|
+
},
|
|
17547
|
+
extra: function (_undoManager, _index, callback1, callback2) {
|
|
17548
|
+
return undoManager.extra(callback1, callback2);
|
|
17549
|
+
}
|
|
17524
17550
|
},
|
|
17525
17551
|
formatter: {
|
|
17526
17552
|
match: function (name, vars, _node) {
|
|
17527
|
-
return
|
|
17553
|
+
return formatter.match(name, defaultVars(vars));
|
|
17528
17554
|
},
|
|
17529
17555
|
matchAll: unsupported,
|
|
17530
17556
|
matchNode: unsupported,
|
|
17531
17557
|
canApply: function (name) {
|
|
17532
|
-
return
|
|
17558
|
+
return formatter.canApply(name);
|
|
17533
17559
|
},
|
|
17534
17560
|
closest: function (names) {
|
|
17535
|
-
return
|
|
17561
|
+
return formatter.closest(names);
|
|
17536
17562
|
},
|
|
17537
17563
|
apply: function (name, vars, _node) {
|
|
17538
|
-
return
|
|
17564
|
+
return formatter.apply(name, defaultVars(vars));
|
|
17539
17565
|
},
|
|
17540
17566
|
remove: function (name, vars, _node, _similar) {
|
|
17541
|
-
return
|
|
17567
|
+
return formatter.remove(name, defaultVars(vars));
|
|
17542
17568
|
},
|
|
17543
17569
|
toggle: function (name, vars, _node) {
|
|
17544
|
-
return
|
|
17570
|
+
return formatter.toggle(name, defaultVars(vars));
|
|
17545
17571
|
},
|
|
17546
17572
|
formatChanged: function (_rfl, formats, callback, similar) {
|
|
17547
|
-
return
|
|
17573
|
+
return formatter.formatChanged(formats, callback, similar);
|
|
17548
17574
|
}
|
|
17549
17575
|
},
|
|
17550
17576
|
editor: {
|
|
17551
|
-
getContent: function (args,
|
|
17552
|
-
|
|
17553
|
-
var fragment = rtcEditor.getContent();
|
|
17554
|
-
var serializer = HtmlSerializer({ inner: true });
|
|
17555
|
-
runSerializerFiltersOnFragment(tinymceEditor, fragment);
|
|
17556
|
-
return format === 'tree' ? fragment : serializer.serialize(fragment);
|
|
17557
|
-
} else {
|
|
17558
|
-
return makePlainAdaptor(tinymceEditor).editor.getContent(args, format);
|
|
17559
|
-
}
|
|
17577
|
+
getContent: function (args, _format) {
|
|
17578
|
+
return editor.getContent(args);
|
|
17560
17579
|
},
|
|
17561
|
-
setContent: function (content,
|
|
17562
|
-
|
|
17563
|
-
isRootContent: true,
|
|
17564
|
-
insert: true
|
|
17565
|
-
});
|
|
17566
|
-
rtcEditor.setContent(fragment);
|
|
17567
|
-
return content;
|
|
17580
|
+
setContent: function (content, args) {
|
|
17581
|
+
return editor.setContent(content, args);
|
|
17568
17582
|
},
|
|
17569
|
-
insertContent: function (
|
|
17570
|
-
|
|
17571
|
-
return {};
|
|
17572
|
-
}, function (context) {
|
|
17573
|
-
return { context: context };
|
|
17574
|
-
});
|
|
17575
|
-
var fragment = isTreeNode$1(value) ? value : tinymceEditor.parser.parse(value, __assign(__assign({}, contextArgs), { insert: true }));
|
|
17576
|
-
rtcEditor.insertContent(fragment);
|
|
17583
|
+
insertContent: function (content, _details) {
|
|
17584
|
+
return editor.insertContent(content);
|
|
17577
17585
|
},
|
|
17578
|
-
addVisual:
|
|
17579
|
-
}
|
|
17586
|
+
addVisual: ignore
|
|
17580
17587
|
},
|
|
17581
17588
|
selection: {
|
|
17582
|
-
getContent: function (
|
|
17583
|
-
|
|
17584
|
-
var fragment = rtcEditor.getSelectedContent();
|
|
17585
|
-
var serializer = HtmlSerializer({});
|
|
17586
|
-
runSerializerFiltersOnFragment(tinymceEditor, fragment);
|
|
17587
|
-
return format === 'tree' ? fragment : serializer.serialize(fragment);
|
|
17588
|
-
} else {
|
|
17589
|
-
return makePlainAdaptor(tinymceEditor).selection.getContent(format, args);
|
|
17590
|
-
}
|
|
17589
|
+
getContent: function (_format, args) {
|
|
17590
|
+
return selection.getContent(args);
|
|
17591
17591
|
}
|
|
17592
17592
|
},
|
|
17593
17593
|
raw: {
|
|
17594
17594
|
getModel: function () {
|
|
17595
|
-
return Optional.some(
|
|
17595
|
+
return Optional.some(raw.getRawModel());
|
|
17596
17596
|
}
|
|
17597
17597
|
}
|
|
17598
17598
|
};
|
|
17599
17599
|
};
|
|
17600
|
+
var makeNoopAdaptor = function () {
|
|
17601
|
+
var nul = constant(null);
|
|
17602
|
+
var empty = constant('');
|
|
17603
|
+
return {
|
|
17604
|
+
undoManager: {
|
|
17605
|
+
beforeChange: noop,
|
|
17606
|
+
addUndoLevel: nul,
|
|
17607
|
+
undo: nul,
|
|
17608
|
+
redo: nul,
|
|
17609
|
+
clear: noop,
|
|
17610
|
+
reset: noop,
|
|
17611
|
+
hasUndo: never,
|
|
17612
|
+
hasRedo: never,
|
|
17613
|
+
transact: nul,
|
|
17614
|
+
ignore: noop,
|
|
17615
|
+
extra: noop
|
|
17616
|
+
},
|
|
17617
|
+
formatter: {
|
|
17618
|
+
match: never,
|
|
17619
|
+
matchAll: constant([]),
|
|
17620
|
+
matchNode: never,
|
|
17621
|
+
canApply: never,
|
|
17622
|
+
closest: empty,
|
|
17623
|
+
apply: noop,
|
|
17624
|
+
remove: noop,
|
|
17625
|
+
toggle: noop,
|
|
17626
|
+
formatChanged: constant({ unbind: noop })
|
|
17627
|
+
},
|
|
17628
|
+
editor: {
|
|
17629
|
+
getContent: empty,
|
|
17630
|
+
setContent: empty,
|
|
17631
|
+
insertContent: noop,
|
|
17632
|
+
addVisual: noop
|
|
17633
|
+
},
|
|
17634
|
+
selection: { getContent: empty },
|
|
17635
|
+
raw: { getModel: constant(Optional.none()) }
|
|
17636
|
+
};
|
|
17637
|
+
};
|
|
17600
17638
|
var isRtc = function (editor) {
|
|
17601
17639
|
return has(editor.plugins, 'rtc');
|
|
17602
17640
|
};
|
|
@@ -17607,8 +17645,11 @@
|
|
|
17607
17645
|
return Optional.none();
|
|
17608
17646
|
}, function (rtc) {
|
|
17609
17647
|
return Optional.some(rtc.setup().then(function (rtcEditor) {
|
|
17610
|
-
editorCast.rtcInstance = makeRtcAdaptor(
|
|
17611
|
-
return rtcEditor.isRemote;
|
|
17648
|
+
editorCast.rtcInstance = makeRtcAdaptor(rtcEditor);
|
|
17649
|
+
return rtcEditor.rtc.isRemote;
|
|
17650
|
+
}, function (err) {
|
|
17651
|
+
editorCast.rtcInstance = makeNoopAdaptor();
|
|
17652
|
+
return promiseObj.reject(err);
|
|
17612
17653
|
}));
|
|
17613
17654
|
});
|
|
17614
17655
|
};
|
|
@@ -17720,7 +17761,7 @@
|
|
|
17720
17761
|
};
|
|
17721
17762
|
var walkPastBookmark = function (node, start) {
|
|
17722
17763
|
return node.filter(function (elm) {
|
|
17723
|
-
return BookmarkManager
|
|
17764
|
+
return BookmarkManager.isBookmarkNode(elm.dom);
|
|
17724
17765
|
}).bind(start ? nextSibling : prevSibling);
|
|
17725
17766
|
};
|
|
17726
17767
|
var merge = function (outer, inner, rng, start) {
|
|
@@ -17738,9 +17779,9 @@
|
|
|
17738
17779
|
var normalizeTextIfRequired = function (inner, start) {
|
|
17739
17780
|
parent(inner).each(function (root) {
|
|
17740
17781
|
var text = inner.dom;
|
|
17741
|
-
if (start && needsToBeNbspLeft(root, CaretPosition
|
|
17782
|
+
if (start && needsToBeNbspLeft(root, CaretPosition(text, 0))) {
|
|
17742
17783
|
normalizeWhitespaceAfter(text, 0);
|
|
17743
|
-
} else if (!start && needsToBeNbspRight(root, CaretPosition
|
|
17784
|
+
} else if (!start && needsToBeNbspRight(root, CaretPosition(text, text.length))) {
|
|
17744
17785
|
normalizeWhitespaceBefore(text, text.length);
|
|
17745
17786
|
}
|
|
17746
17787
|
});
|
|
@@ -17902,14 +17943,14 @@
|
|
|
17902
17943
|
var selectorChangedWithUnbind = SelectorChanged(dom, editor).selectorChangedWithUnbind;
|
|
17903
17944
|
var setCursorLocation = function (node, offset) {
|
|
17904
17945
|
var rng = dom.createRng();
|
|
17905
|
-
if (
|
|
17906
|
-
moveEndPoint$1(dom, rng, editor.getBody(), true);
|
|
17907
|
-
setRng(rng);
|
|
17908
|
-
} else {
|
|
17946
|
+
if (isNonNullable(node) && isNonNullable(offset)) {
|
|
17909
17947
|
rng.setStart(node, offset);
|
|
17910
17948
|
rng.setEnd(node, offset);
|
|
17911
17949
|
setRng(rng);
|
|
17912
17950
|
collapse(false);
|
|
17951
|
+
} else {
|
|
17952
|
+
moveEndPoint$1(dom, rng, editor.getBody(), true);
|
|
17953
|
+
setRng(rng);
|
|
17913
17954
|
}
|
|
17914
17955
|
};
|
|
17915
17956
|
var getContent = function (args) {
|
|
@@ -17961,13 +18002,7 @@
|
|
|
17961
18002
|
return -1;
|
|
17962
18003
|
}
|
|
17963
18004
|
};
|
|
17964
|
-
if (!win) {
|
|
17965
|
-
return null;
|
|
17966
|
-
}
|
|
17967
18005
|
var doc = win.document;
|
|
17968
|
-
if (typeof doc === 'undefined' || doc === null) {
|
|
17969
|
-
return null;
|
|
17970
|
-
}
|
|
17971
18006
|
if (editor.bookmark !== undefined && hasFocus$1(editor) === false) {
|
|
17972
18007
|
var bookmark = getRng(editor);
|
|
17973
18008
|
if (bookmark.isSome()) {
|
|
@@ -18117,7 +18152,7 @@
|
|
|
18117
18152
|
};
|
|
18118
18153
|
var getBoundingClientRect = function () {
|
|
18119
18154
|
var rng = getRng$1();
|
|
18120
|
-
return rng.collapsed ? CaretPosition
|
|
18155
|
+
return rng.collapsed ? CaretPosition.fromRangeStart(rng).getClientRects()[0] : rng.getBoundingClientRect();
|
|
18121
18156
|
};
|
|
18122
18157
|
var destroy = function () {
|
|
18123
18158
|
win = selectedRange = explicitRange = null;
|
|
@@ -18156,7 +18191,7 @@
|
|
|
18156
18191
|
getBoundingClientRect: getBoundingClientRect,
|
|
18157
18192
|
destroy: destroy
|
|
18158
18193
|
};
|
|
18159
|
-
var bookmarkManager = BookmarkManager
|
|
18194
|
+
var bookmarkManager = BookmarkManager(exports);
|
|
18160
18195
|
var controlSelection = ControlSelection(exports, editor);
|
|
18161
18196
|
exports.bookmarkManager = bookmarkManager;
|
|
18162
18197
|
exports.controlSelection = controlSelection;
|
|
@@ -18223,18 +18258,18 @@
|
|
|
18223
18258
|
reject('Cannot convert ' + url + ' to Blob. Resource might not exist or is inaccessible.');
|
|
18224
18259
|
};
|
|
18225
18260
|
try {
|
|
18226
|
-
var
|
|
18227
|
-
|
|
18228
|
-
|
|
18229
|
-
|
|
18230
|
-
if (
|
|
18231
|
-
resolve(
|
|
18261
|
+
var xhr_1 = new XMLHttpRequest();
|
|
18262
|
+
xhr_1.open('GET', url, true);
|
|
18263
|
+
xhr_1.responseType = 'blob';
|
|
18264
|
+
xhr_1.onload = function () {
|
|
18265
|
+
if (xhr_1.status === 200) {
|
|
18266
|
+
resolve(xhr_1.response);
|
|
18232
18267
|
} else {
|
|
18233
18268
|
rejectWithError();
|
|
18234
18269
|
}
|
|
18235
18270
|
};
|
|
18236
|
-
|
|
18237
|
-
|
|
18271
|
+
xhr_1.onerror = rejectWithError;
|
|
18272
|
+
xhr_1.send();
|
|
18238
18273
|
} catch (ex) {
|
|
18239
18274
|
rejectWithError();
|
|
18240
18275
|
}
|
|
@@ -18346,7 +18381,7 @@
|
|
|
18346
18381
|
var getAllImages = function (elm) {
|
|
18347
18382
|
return elm ? from$1(elm.getElementsByTagName('img')) : [];
|
|
18348
18383
|
};
|
|
18349
|
-
function
|
|
18384
|
+
var ImageScanner = function (uploadStatus, blobCache) {
|
|
18350
18385
|
var cachedPromises = {};
|
|
18351
18386
|
var findAll = function (elm, predicate) {
|
|
18352
18387
|
if (!predicate) {
|
|
@@ -18403,7 +18438,7 @@
|
|
|
18403
18438
|
return promiseObj.all(promises);
|
|
18404
18439
|
};
|
|
18405
18440
|
return { findAll: findAll };
|
|
18406
|
-
}
|
|
18441
|
+
};
|
|
18407
18442
|
|
|
18408
18443
|
var paddEmptyNode = function (settings, args, blockElements, node) {
|
|
18409
18444
|
var brPreferred = settings.padd_empty_with_br || args.insert;
|
|
@@ -18909,7 +18944,7 @@
|
|
|
18909
18944
|
}
|
|
18910
18945
|
return output;
|
|
18911
18946
|
};
|
|
18912
|
-
var parser = SaxParser
|
|
18947
|
+
var parser = SaxParser({
|
|
18913
18948
|
validate: validate,
|
|
18914
18949
|
allow_html_data_urls: settings.allow_html_data_urls,
|
|
18915
18950
|
allow_svg_data_urls: settings.allow_svg_data_urls,
|
|
@@ -19333,7 +19368,7 @@
|
|
|
19333
19368
|
};
|
|
19334
19369
|
var DomSerializerImpl = function (settings, editor) {
|
|
19335
19370
|
var tempAttrs = ['data-mce-selected'];
|
|
19336
|
-
var dom = editor && editor.dom ? editor.dom : DOMUtils
|
|
19371
|
+
var dom = editor && editor.dom ? editor.dom : DOMUtils.DOM;
|
|
19337
19372
|
var schema = editor && editor.schema ? editor.schema : Schema(settings);
|
|
19338
19373
|
settings.entity_encoding = settings.entity_encoding || 'named';
|
|
19339
19374
|
settings.remove_trailing_brs = 'remove_trailing_brs' in settings ? settings.remove_trailing_brs : true;
|
|
@@ -19361,9 +19396,7 @@
|
|
|
19361
19396
|
schema.setValidElements(rules);
|
|
19362
19397
|
},
|
|
19363
19398
|
addTempAttr: curry(addTempAttr, htmlParser, tempAttrs),
|
|
19364
|
-
getTempAttrs:
|
|
19365
|
-
return tempAttrs;
|
|
19366
|
-
},
|
|
19399
|
+
getTempAttrs: constant(tempAttrs),
|
|
19367
19400
|
getNodeFilters: htmlParser.getNodeFilters,
|
|
19368
19401
|
getAttributeFilters: htmlParser.getAttributeFilters
|
|
19369
19402
|
};
|
|
@@ -19401,7 +19434,7 @@
|
|
|
19401
19434
|
return setContent(editor, content, args);
|
|
19402
19435
|
};
|
|
19403
19436
|
|
|
19404
|
-
var DOM$3 = DOMUtils
|
|
19437
|
+
var DOM$3 = DOMUtils.DOM;
|
|
19405
19438
|
var restoreOriginalStyles = function (editor) {
|
|
19406
19439
|
DOM$3.setStyle(editor.id, 'display', editor.orgDisplay);
|
|
19407
19440
|
};
|
|
@@ -19482,9 +19515,9 @@
|
|
|
19482
19515
|
};
|
|
19483
19516
|
var baseMerge = function (merger) {
|
|
19484
19517
|
return function () {
|
|
19485
|
-
var objects =
|
|
19486
|
-
for (var
|
|
19487
|
-
objects[
|
|
19518
|
+
var objects = [];
|
|
19519
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
19520
|
+
objects[_i] = arguments[_i];
|
|
19488
19521
|
}
|
|
19489
19522
|
if (objects.length === 0) {
|
|
19490
19523
|
throw new Error('Can\'t merge zero objects');
|
|
@@ -19764,7 +19797,7 @@
|
|
|
19764
19797
|
return fromDomSafe(rawContainer).map(inBody).getOr(false);
|
|
19765
19798
|
};
|
|
19766
19799
|
|
|
19767
|
-
function
|
|
19800
|
+
var NotificationManagerImpl = function () {
|
|
19768
19801
|
var unimplemented = function () {
|
|
19769
19802
|
throw new Error('Theme did not provide a NotificationManager implementation.');
|
|
19770
19803
|
};
|
|
@@ -19774,9 +19807,9 @@
|
|
|
19774
19807
|
reposition: unimplemented,
|
|
19775
19808
|
getArgs: unimplemented
|
|
19776
19809
|
};
|
|
19777
|
-
}
|
|
19810
|
+
};
|
|
19778
19811
|
|
|
19779
|
-
function
|
|
19812
|
+
var NotificationManager = function (editor) {
|
|
19780
19813
|
var notifications = [];
|
|
19781
19814
|
var getImplementation = function () {
|
|
19782
19815
|
var theme = editor.theme;
|
|
@@ -19868,11 +19901,11 @@
|
|
|
19868
19901
|
close: close,
|
|
19869
19902
|
getNotifications: getNotifications
|
|
19870
19903
|
};
|
|
19871
|
-
}
|
|
19904
|
+
};
|
|
19872
19905
|
|
|
19873
|
-
var PluginManager = AddOnManager
|
|
19906
|
+
var PluginManager = AddOnManager.PluginManager;
|
|
19874
19907
|
|
|
19875
|
-
var ThemeManager = AddOnManager
|
|
19908
|
+
var ThemeManager = AddOnManager.ThemeManager;
|
|
19876
19909
|
|
|
19877
19910
|
function WindowManagerImpl () {
|
|
19878
19911
|
var unimplemented = function () {
|
|
@@ -19897,7 +19930,11 @@
|
|
|
19897
19930
|
};
|
|
19898
19931
|
var funcBind = function (scope, f) {
|
|
19899
19932
|
return function () {
|
|
19900
|
-
|
|
19933
|
+
var args = [];
|
|
19934
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
19935
|
+
args[_i] = arguments[_i];
|
|
19936
|
+
}
|
|
19937
|
+
return f ? f.apply(scope, args) : undefined;
|
|
19901
19938
|
};
|
|
19902
19939
|
};
|
|
19903
19940
|
var fireOpenEvent = function (dialog) {
|
|
@@ -19940,10 +19977,12 @@
|
|
|
19940
19977
|
});
|
|
19941
19978
|
};
|
|
19942
19979
|
var alert = function (message, callback, scope) {
|
|
19943
|
-
|
|
19980
|
+
var windowManagerImpl = getImplementation();
|
|
19981
|
+
windowManagerImpl.alert(message, funcBind(scope ? scope : windowManagerImpl, callback));
|
|
19944
19982
|
};
|
|
19945
19983
|
var confirm = function (message, callback, scope) {
|
|
19946
|
-
|
|
19984
|
+
var windowManagerImpl = getImplementation();
|
|
19985
|
+
windowManagerImpl.confirm(message, funcBind(scope ? scope : windowManagerImpl, callback));
|
|
19947
19986
|
};
|
|
19948
19987
|
var close = function () {
|
|
19949
19988
|
getTopDialog().each(function (dialog) {
|
|
@@ -20007,177 +20046,52 @@
|
|
|
20007
20046
|
'Failed to initialize plugin: {0}',
|
|
20008
20047
|
name
|
|
20009
20048
|
]);
|
|
20049
|
+
fireError(editor, 'PluginLoadError', { message: message });
|
|
20010
20050
|
initError(message, err);
|
|
20011
|
-
displayError(editor, message);
|
|
20012
|
-
};
|
|
20013
|
-
var initError = function (message) {
|
|
20014
|
-
var x = [];
|
|
20015
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
20016
|
-
x[_i - 1] = arguments[_i];
|
|
20017
|
-
}
|
|
20018
|
-
var console = window.console;
|
|
20019
|
-
if (console) {
|
|
20020
|
-
if (console.error) {
|
|
20021
|
-
console.error.apply(console, __spreadArrays([message], x));
|
|
20022
|
-
} else {
|
|
20023
|
-
console.log.apply(console, __spreadArrays([message], x));
|
|
20024
|
-
}
|
|
20025
|
-
}
|
|
20026
|
-
};
|
|
20027
|
-
|
|
20028
|
-
var isContentCssSkinName = function (url) {
|
|
20029
|
-
return /^[a-z0-9\-]+$/i.test(url);
|
|
20030
|
-
};
|
|
20031
|
-
var getContentCssUrls = function (editor) {
|
|
20032
|
-
var contentCss = getContentCss(editor);
|
|
20033
|
-
var skinUrl = editor.editorManager.baseURL + '/skins/content';
|
|
20034
|
-
var suffix = editor.editorManager.suffix;
|
|
20035
|
-
var contentCssFile = 'content' + suffix + '.css';
|
|
20036
|
-
var inline = editor.inline === true;
|
|
20037
|
-
return map(contentCss, function (url) {
|
|
20038
|
-
if (isContentCssSkinName(url) && !inline) {
|
|
20039
|
-
return skinUrl + '/' + url + '/' + contentCssFile;
|
|
20040
|
-
} else {
|
|
20041
|
-
return editor.documentBaseURI.toAbsolute(url);
|
|
20042
|
-
}
|
|
20043
|
-
});
|
|
20044
|
-
};
|
|
20045
|
-
var appendContentCssFromSettings = function (editor) {
|
|
20046
|
-
editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor));
|
|
20047
|
-
};
|
|
20048
|
-
|
|
20049
|
-
function Uploader(uploadStatus, settings) {
|
|
20050
|
-
var pendingPromises = {};
|
|
20051
|
-
var pathJoin = function (path1, path2) {
|
|
20052
|
-
if (path1) {
|
|
20053
|
-
return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, '');
|
|
20054
|
-
}
|
|
20055
|
-
return path2;
|
|
20056
|
-
};
|
|
20057
|
-
var defaultHandler = function (blobInfo, success, failure, progress) {
|
|
20058
|
-
var xhr = new XMLHttpRequest();
|
|
20059
|
-
xhr.open('POST', settings.url);
|
|
20060
|
-
xhr.withCredentials = settings.credentials;
|
|
20061
|
-
xhr.upload.onprogress = function (e) {
|
|
20062
|
-
progress(e.loaded / e.total * 100);
|
|
20063
|
-
};
|
|
20064
|
-
xhr.onerror = function () {
|
|
20065
|
-
failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);
|
|
20066
|
-
};
|
|
20067
|
-
xhr.onload = function () {
|
|
20068
|
-
if (xhr.status < 200 || xhr.status >= 300) {
|
|
20069
|
-
failure('HTTP Error: ' + xhr.status);
|
|
20070
|
-
return;
|
|
20071
|
-
}
|
|
20072
|
-
var json = JSON.parse(xhr.responseText);
|
|
20073
|
-
if (!json || typeof json.location !== 'string') {
|
|
20074
|
-
failure('Invalid JSON: ' + xhr.responseText);
|
|
20075
|
-
return;
|
|
20076
|
-
}
|
|
20077
|
-
success(pathJoin(settings.basePath, json.location));
|
|
20078
|
-
};
|
|
20079
|
-
var formData = new FormData();
|
|
20080
|
-
formData.append('file', blobInfo.blob(), blobInfo.filename());
|
|
20081
|
-
xhr.send(formData);
|
|
20082
|
-
};
|
|
20083
|
-
var noUpload = function () {
|
|
20084
|
-
return new promiseObj(function (resolve) {
|
|
20085
|
-
resolve([]);
|
|
20086
|
-
});
|
|
20087
|
-
};
|
|
20088
|
-
var handlerSuccess = function (blobInfo, url) {
|
|
20089
|
-
return {
|
|
20090
|
-
url: url,
|
|
20091
|
-
blobInfo: blobInfo,
|
|
20092
|
-
status: true
|
|
20093
|
-
};
|
|
20094
|
-
};
|
|
20095
|
-
var handlerFailure = function (blobInfo, message, options) {
|
|
20096
|
-
return {
|
|
20097
|
-
url: '',
|
|
20098
|
-
blobInfo: blobInfo,
|
|
20099
|
-
status: false,
|
|
20100
|
-
error: {
|
|
20101
|
-
message: message,
|
|
20102
|
-
options: options
|
|
20103
|
-
}
|
|
20104
|
-
};
|
|
20105
|
-
};
|
|
20106
|
-
var resolvePending = function (blobUri, result) {
|
|
20107
|
-
Tools.each(pendingPromises[blobUri], function (resolve) {
|
|
20108
|
-
resolve(result);
|
|
20109
|
-
});
|
|
20110
|
-
delete pendingPromises[blobUri];
|
|
20111
|
-
};
|
|
20112
|
-
var uploadBlobInfo = function (blobInfo, handler, openNotification) {
|
|
20113
|
-
uploadStatus.markPending(blobInfo.blobUri());
|
|
20114
|
-
return new promiseObj(function (resolve) {
|
|
20115
|
-
var notification, progress;
|
|
20116
|
-
var noop = function () {
|
|
20117
|
-
};
|
|
20118
|
-
try {
|
|
20119
|
-
var closeNotification_1 = function () {
|
|
20120
|
-
if (notification) {
|
|
20121
|
-
notification.close();
|
|
20122
|
-
progress = noop;
|
|
20123
|
-
}
|
|
20124
|
-
};
|
|
20125
|
-
var success = function (url) {
|
|
20126
|
-
closeNotification_1();
|
|
20127
|
-
uploadStatus.markUploaded(blobInfo.blobUri(), url);
|
|
20128
|
-
resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url));
|
|
20129
|
-
resolve(handlerSuccess(blobInfo, url));
|
|
20130
|
-
};
|
|
20131
|
-
var failure = function (error, options) {
|
|
20132
|
-
var failureOptions = options ? options : {};
|
|
20133
|
-
closeNotification_1();
|
|
20134
|
-
uploadStatus.removeFailed(blobInfo.blobUri());
|
|
20135
|
-
resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error, failureOptions));
|
|
20136
|
-
resolve(handlerFailure(blobInfo, error, failureOptions));
|
|
20137
|
-
};
|
|
20138
|
-
progress = function (percent) {
|
|
20139
|
-
if (percent < 0 || percent > 100) {
|
|
20140
|
-
return;
|
|
20141
|
-
}
|
|
20142
|
-
if (!notification) {
|
|
20143
|
-
notification = openNotification();
|
|
20144
|
-
}
|
|
20145
|
-
notification.progressBar.value(percent);
|
|
20146
|
-
};
|
|
20147
|
-
handler(blobInfo, success, failure, progress);
|
|
20148
|
-
} catch (ex) {
|
|
20149
|
-
resolve(handlerFailure(blobInfo, ex.message, {}));
|
|
20150
|
-
}
|
|
20151
|
-
});
|
|
20152
|
-
};
|
|
20153
|
-
var isDefaultHandler = function (handler) {
|
|
20154
|
-
return handler === defaultHandler;
|
|
20155
|
-
};
|
|
20156
|
-
var pendingUploadBlobInfo = function (blobInfo) {
|
|
20157
|
-
var blobUri = blobInfo.blobUri();
|
|
20158
|
-
return new promiseObj(function (resolve) {
|
|
20159
|
-
pendingPromises[blobUri] = pendingPromises[blobUri] || [];
|
|
20160
|
-
pendingPromises[blobUri].push(resolve);
|
|
20161
|
-
});
|
|
20162
|
-
};
|
|
20163
|
-
var uploadBlobs = function (blobInfos, openNotification) {
|
|
20164
|
-
blobInfos = Tools.grep(blobInfos, function (blobInfo) {
|
|
20165
|
-
return !uploadStatus.isUploaded(blobInfo.blobUri());
|
|
20166
|
-
});
|
|
20167
|
-
return promiseObj.all(Tools.map(blobInfos, function (blobInfo) {
|
|
20168
|
-
return uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, settings.handler, openNotification);
|
|
20169
|
-
}));
|
|
20170
|
-
};
|
|
20171
|
-
var upload = function (blobInfos, openNotification) {
|
|
20172
|
-
return !settings.url && isDefaultHandler(settings.handler) ? noUpload() : uploadBlobs(blobInfos, openNotification);
|
|
20173
|
-
};
|
|
20174
|
-
if (isFunction(settings.handler) === false) {
|
|
20175
|
-
settings.handler = defaultHandler;
|
|
20051
|
+
displayError(editor, message);
|
|
20052
|
+
};
|
|
20053
|
+
var initError = function (message) {
|
|
20054
|
+
var x = [];
|
|
20055
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
20056
|
+
x[_i - 1] = arguments[_i];
|
|
20176
20057
|
}
|
|
20177
|
-
|
|
20178
|
-
|
|
20058
|
+
var console = window.console;
|
|
20059
|
+
if (console) {
|
|
20060
|
+
if (console.error) {
|
|
20061
|
+
console.error.apply(console, __spreadArrays([message], x));
|
|
20062
|
+
} else {
|
|
20063
|
+
console.log.apply(console, __spreadArrays([message], x));
|
|
20064
|
+
}
|
|
20065
|
+
}
|
|
20066
|
+
};
|
|
20067
|
+
|
|
20068
|
+
var isContentCssSkinName = function (url) {
|
|
20069
|
+
return /^[a-z0-9\-]+$/i.test(url);
|
|
20070
|
+
};
|
|
20071
|
+
var getContentCssUrls = function (editor) {
|
|
20072
|
+
return transformToUrls(editor, getContentCss(editor));
|
|
20073
|
+
};
|
|
20074
|
+
var getFontCssUrls = function (editor) {
|
|
20075
|
+
return transformToUrls(editor, getFontCss(editor));
|
|
20076
|
+
};
|
|
20077
|
+
var transformToUrls = function (editor, cssLinks) {
|
|
20078
|
+
var skinUrl = editor.editorManager.baseURL + '/skins/content';
|
|
20079
|
+
var suffix = editor.editorManager.suffix;
|
|
20080
|
+
var contentCssFile = 'content' + suffix + '.css';
|
|
20081
|
+
var inline = editor.inline === true;
|
|
20082
|
+
return map(cssLinks, function (url) {
|
|
20083
|
+
if (isContentCssSkinName(url) && !inline) {
|
|
20084
|
+
return skinUrl + '/' + url + '/' + contentCssFile;
|
|
20085
|
+
} else {
|
|
20086
|
+
return editor.documentBaseURI.toAbsolute(url);
|
|
20087
|
+
}
|
|
20088
|
+
});
|
|
20089
|
+
};
|
|
20090
|
+
var appendContentCssFromSettings = function (editor) {
|
|
20091
|
+
editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor), getFontCssUrls(editor));
|
|
20092
|
+
};
|
|
20179
20093
|
|
|
20180
|
-
|
|
20094
|
+
var UploadStatus = function () {
|
|
20181
20095
|
var PENDING = 1, UPLOADED = 2;
|
|
20182
20096
|
var blobUriStatuses = {};
|
|
20183
20097
|
var createStatus = function (status, resultUri) {
|
|
@@ -20221,7 +20135,7 @@
|
|
|
20221
20135
|
removeFailed: removeFailed,
|
|
20222
20136
|
destroy: destroy
|
|
20223
20137
|
};
|
|
20224
|
-
}
|
|
20138
|
+
};
|
|
20225
20139
|
|
|
20226
20140
|
var count$1 = 0;
|
|
20227
20141
|
var seed = function () {
|
|
@@ -20335,6 +20249,168 @@
|
|
|
20335
20249
|
};
|
|
20336
20250
|
};
|
|
20337
20251
|
|
|
20252
|
+
var Uploader = function (uploadStatus, settings) {
|
|
20253
|
+
var pendingPromises = {};
|
|
20254
|
+
var pathJoin = function (path1, path2) {
|
|
20255
|
+
if (path1) {
|
|
20256
|
+
return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, '');
|
|
20257
|
+
}
|
|
20258
|
+
return path2;
|
|
20259
|
+
};
|
|
20260
|
+
var defaultHandler = function (blobInfo, success, failure, progress) {
|
|
20261
|
+
var xhr = new XMLHttpRequest();
|
|
20262
|
+
xhr.open('POST', settings.url);
|
|
20263
|
+
xhr.withCredentials = settings.credentials;
|
|
20264
|
+
xhr.upload.onprogress = function (e) {
|
|
20265
|
+
progress(e.loaded / e.total * 100);
|
|
20266
|
+
};
|
|
20267
|
+
xhr.onerror = function () {
|
|
20268
|
+
failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);
|
|
20269
|
+
};
|
|
20270
|
+
xhr.onload = function () {
|
|
20271
|
+
if (xhr.status < 200 || xhr.status >= 300) {
|
|
20272
|
+
failure('HTTP Error: ' + xhr.status);
|
|
20273
|
+
return;
|
|
20274
|
+
}
|
|
20275
|
+
var json = JSON.parse(xhr.responseText);
|
|
20276
|
+
if (!json || typeof json.location !== 'string') {
|
|
20277
|
+
failure('Invalid JSON: ' + xhr.responseText);
|
|
20278
|
+
return;
|
|
20279
|
+
}
|
|
20280
|
+
success(pathJoin(settings.basePath, json.location));
|
|
20281
|
+
};
|
|
20282
|
+
var formData = new FormData();
|
|
20283
|
+
formData.append('file', blobInfo.blob(), blobInfo.filename());
|
|
20284
|
+
xhr.send(formData);
|
|
20285
|
+
};
|
|
20286
|
+
var noUpload = function () {
|
|
20287
|
+
return new promiseObj(function (resolve) {
|
|
20288
|
+
resolve([]);
|
|
20289
|
+
});
|
|
20290
|
+
};
|
|
20291
|
+
var handlerSuccess = function (blobInfo, url) {
|
|
20292
|
+
return {
|
|
20293
|
+
url: url,
|
|
20294
|
+
blobInfo: blobInfo,
|
|
20295
|
+
status: true
|
|
20296
|
+
};
|
|
20297
|
+
};
|
|
20298
|
+
var handlerFailure = function (blobInfo, message, options) {
|
|
20299
|
+
return {
|
|
20300
|
+
url: '',
|
|
20301
|
+
blobInfo: blobInfo,
|
|
20302
|
+
status: false,
|
|
20303
|
+
error: {
|
|
20304
|
+
message: message,
|
|
20305
|
+
options: options
|
|
20306
|
+
}
|
|
20307
|
+
};
|
|
20308
|
+
};
|
|
20309
|
+
var resolvePending = function (blobUri, result) {
|
|
20310
|
+
Tools.each(pendingPromises[blobUri], function (resolve) {
|
|
20311
|
+
resolve(result);
|
|
20312
|
+
});
|
|
20313
|
+
delete pendingPromises[blobUri];
|
|
20314
|
+
};
|
|
20315
|
+
var uploadBlobInfo = function (blobInfo, handler, openNotification) {
|
|
20316
|
+
uploadStatus.markPending(blobInfo.blobUri());
|
|
20317
|
+
return new promiseObj(function (resolve) {
|
|
20318
|
+
var notification, progress;
|
|
20319
|
+
try {
|
|
20320
|
+
var closeNotification_1 = function () {
|
|
20321
|
+
if (notification) {
|
|
20322
|
+
notification.close();
|
|
20323
|
+
progress = noop;
|
|
20324
|
+
}
|
|
20325
|
+
};
|
|
20326
|
+
var success = function (url) {
|
|
20327
|
+
closeNotification_1();
|
|
20328
|
+
uploadStatus.markUploaded(blobInfo.blobUri(), url);
|
|
20329
|
+
resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url));
|
|
20330
|
+
resolve(handlerSuccess(blobInfo, url));
|
|
20331
|
+
};
|
|
20332
|
+
var failure = function (error, options) {
|
|
20333
|
+
var failureOptions = options ? options : {};
|
|
20334
|
+
closeNotification_1();
|
|
20335
|
+
uploadStatus.removeFailed(blobInfo.blobUri());
|
|
20336
|
+
resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error, failureOptions));
|
|
20337
|
+
resolve(handlerFailure(blobInfo, error, failureOptions));
|
|
20338
|
+
};
|
|
20339
|
+
progress = function (percent) {
|
|
20340
|
+
if (percent < 0 || percent > 100) {
|
|
20341
|
+
return;
|
|
20342
|
+
}
|
|
20343
|
+
Optional.from(notification).orThunk(function () {
|
|
20344
|
+
return Optional.from(openNotification).map(apply);
|
|
20345
|
+
}).each(function (n) {
|
|
20346
|
+
notification = n;
|
|
20347
|
+
n.progressBar.value(percent);
|
|
20348
|
+
});
|
|
20349
|
+
};
|
|
20350
|
+
handler(blobInfo, success, failure, progress);
|
|
20351
|
+
} catch (ex) {
|
|
20352
|
+
resolve(handlerFailure(blobInfo, ex.message, {}));
|
|
20353
|
+
}
|
|
20354
|
+
});
|
|
20355
|
+
};
|
|
20356
|
+
var isDefaultHandler = function (handler) {
|
|
20357
|
+
return handler === defaultHandler;
|
|
20358
|
+
};
|
|
20359
|
+
var pendingUploadBlobInfo = function (blobInfo) {
|
|
20360
|
+
var blobUri = blobInfo.blobUri();
|
|
20361
|
+
return new promiseObj(function (resolve) {
|
|
20362
|
+
pendingPromises[blobUri] = pendingPromises[blobUri] || [];
|
|
20363
|
+
pendingPromises[blobUri].push(resolve);
|
|
20364
|
+
});
|
|
20365
|
+
};
|
|
20366
|
+
var uploadBlobs = function (blobInfos, openNotification) {
|
|
20367
|
+
blobInfos = Tools.grep(blobInfos, function (blobInfo) {
|
|
20368
|
+
return !uploadStatus.isUploaded(blobInfo.blobUri());
|
|
20369
|
+
});
|
|
20370
|
+
return promiseObj.all(Tools.map(blobInfos, function (blobInfo) {
|
|
20371
|
+
return uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, settings.handler, openNotification);
|
|
20372
|
+
}));
|
|
20373
|
+
};
|
|
20374
|
+
var upload = function (blobInfos, openNotification) {
|
|
20375
|
+
return !settings.url && isDefaultHandler(settings.handler) ? noUpload() : uploadBlobs(blobInfos, openNotification);
|
|
20376
|
+
};
|
|
20377
|
+
if (isFunction(settings.handler) === false) {
|
|
20378
|
+
settings.handler = defaultHandler;
|
|
20379
|
+
}
|
|
20380
|
+
return { upload: upload };
|
|
20381
|
+
};
|
|
20382
|
+
|
|
20383
|
+
var openNotification = function (editor) {
|
|
20384
|
+
return function () {
|
|
20385
|
+
return editor.notificationManager.open({
|
|
20386
|
+
text: editor.translate('Image uploading...'),
|
|
20387
|
+
type: 'info',
|
|
20388
|
+
timeout: -1,
|
|
20389
|
+
progressBar: true
|
|
20390
|
+
});
|
|
20391
|
+
};
|
|
20392
|
+
};
|
|
20393
|
+
var createUploader = function (editor, uploadStatus) {
|
|
20394
|
+
return Uploader(uploadStatus, {
|
|
20395
|
+
url: getImageUploadUrl(editor),
|
|
20396
|
+
basePath: getImageUploadBasePath(editor),
|
|
20397
|
+
credentials: getImagesUploadCredentials(editor),
|
|
20398
|
+
handler: getImagesUploadHandler(editor)
|
|
20399
|
+
});
|
|
20400
|
+
};
|
|
20401
|
+
var ImageUploader = function (editor) {
|
|
20402
|
+
var uploadStatus = UploadStatus();
|
|
20403
|
+
var uploader = createUploader(editor, uploadStatus);
|
|
20404
|
+
return {
|
|
20405
|
+
upload: function (blobInfos, showNotification) {
|
|
20406
|
+
if (showNotification === void 0) {
|
|
20407
|
+
showNotification = true;
|
|
20408
|
+
}
|
|
20409
|
+
return uploader.upload(blobInfos, showNotification ? openNotification(editor) : undefined);
|
|
20410
|
+
}
|
|
20411
|
+
};
|
|
20412
|
+
};
|
|
20413
|
+
|
|
20338
20414
|
var UploadChangeHandler = function (editor) {
|
|
20339
20415
|
var lastChangedLevel = Cell(null);
|
|
20340
20416
|
editor.on('change AddUndo', function (e) {
|
|
@@ -20399,14 +20475,6 @@
|
|
|
20399
20475
|
}
|
|
20400
20476
|
});
|
|
20401
20477
|
};
|
|
20402
|
-
var openNotification = function () {
|
|
20403
|
-
return editor.notificationManager.open({
|
|
20404
|
-
text: editor.translate('Image uploading...'),
|
|
20405
|
-
type: 'info',
|
|
20406
|
-
timeout: -1,
|
|
20407
|
-
progressBar: true
|
|
20408
|
-
});
|
|
20409
|
-
};
|
|
20410
20478
|
var replaceImageUriInView = function (image, resultUri) {
|
|
20411
20479
|
var src = editor.convertURL(resultUri, 'src');
|
|
20412
20480
|
replaceUrlInUndoStack(image.src, resultUri);
|
|
@@ -20417,18 +20485,13 @@
|
|
|
20417
20485
|
};
|
|
20418
20486
|
var uploadImages = function (callback) {
|
|
20419
20487
|
if (!uploader) {
|
|
20420
|
-
uploader =
|
|
20421
|
-
url: getImageUploadUrl(editor),
|
|
20422
|
-
basePath: getImageUploadBasePath(editor),
|
|
20423
|
-
credentials: getImagesUploadCredentials(editor),
|
|
20424
|
-
handler: getImagesUploadHandler(editor)
|
|
20425
|
-
});
|
|
20488
|
+
uploader = createUploader(editor, uploadStatus);
|
|
20426
20489
|
}
|
|
20427
20490
|
return scanForImages().then(aliveGuard(function (imageInfos) {
|
|
20428
20491
|
var blobInfos = map(imageInfos, function (imageInfo) {
|
|
20429
20492
|
return imageInfo.blobInfo;
|
|
20430
20493
|
});
|
|
20431
|
-
return uploader.upload(blobInfos, openNotification).then(aliveGuard(function (result) {
|
|
20494
|
+
return uploader.upload(blobInfos, openNotification(editor)).then(aliveGuard(function (result) {
|
|
20432
20495
|
var imagesToRemove = [];
|
|
20433
20496
|
var filteredResult = map(result, function (uploadInfo, index) {
|
|
20434
20497
|
var blobInfo = imageInfos[index].blobInfo;
|
|
@@ -20857,7 +20920,7 @@
|
|
|
20857
20920
|
return formats;
|
|
20858
20921
|
};
|
|
20859
20922
|
|
|
20860
|
-
function
|
|
20923
|
+
var FormatRegistry = function (editor) {
|
|
20861
20924
|
var formats = {};
|
|
20862
20925
|
var get = function (name) {
|
|
20863
20926
|
return name ? formats[name] : formats;
|
|
@@ -20911,10 +20974,10 @@
|
|
|
20911
20974
|
register: register,
|
|
20912
20975
|
unregister: unregister
|
|
20913
20976
|
};
|
|
20914
|
-
}
|
|
20977
|
+
};
|
|
20915
20978
|
|
|
20916
20979
|
var each$e = Tools.each;
|
|
20917
|
-
var dom = DOMUtils
|
|
20980
|
+
var dom = DOMUtils.DOM;
|
|
20918
20981
|
var parsedSelectorToHtml = function (ancestry, editor) {
|
|
20919
20982
|
var elm, item, fragment;
|
|
20920
20983
|
var schema = editor && editor.schema || Schema({});
|
|
@@ -21449,10 +21512,10 @@
|
|
|
21449
21512
|
return is$1(SugarElement.fromDom(elm), getInlineBoundarySelector(editor));
|
|
21450
21513
|
};
|
|
21451
21514
|
var isRtl$1 = function (element) {
|
|
21452
|
-
return DOMUtils
|
|
21515
|
+
return DOMUtils.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl(element.textContent);
|
|
21453
21516
|
};
|
|
21454
21517
|
var findInlineParents = function (isInlineTarget, rootNode, pos) {
|
|
21455
|
-
return filter(DOMUtils
|
|
21518
|
+
return filter(DOMUtils.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);
|
|
21456
21519
|
};
|
|
21457
21520
|
var findRootInline = function (isInlineTarget, rootNode, pos) {
|
|
21458
21521
|
var parents = findInlineParents(isInlineTarget, rootNode, pos);
|
|
@@ -21474,22 +21537,22 @@
|
|
|
21474
21537
|
if (forward) {
|
|
21475
21538
|
if (isCaretContainerInline(container)) {
|
|
21476
21539
|
if (isText$1(container.nextSibling)) {
|
|
21477
|
-
return CaretPosition
|
|
21540
|
+
return CaretPosition(container.nextSibling, 0);
|
|
21478
21541
|
} else {
|
|
21479
|
-
return CaretPosition
|
|
21542
|
+
return CaretPosition.after(container);
|
|
21480
21543
|
}
|
|
21481
21544
|
} else {
|
|
21482
|
-
return isBeforeInline(pos) ? CaretPosition
|
|
21545
|
+
return isBeforeInline(pos) ? CaretPosition(container, offset + 1) : pos;
|
|
21483
21546
|
}
|
|
21484
21547
|
} else {
|
|
21485
21548
|
if (isCaretContainerInline(container)) {
|
|
21486
21549
|
if (isText$1(container.previousSibling)) {
|
|
21487
|
-
return CaretPosition
|
|
21550
|
+
return CaretPosition(container.previousSibling, container.previousSibling.data.length);
|
|
21488
21551
|
} else {
|
|
21489
|
-
return CaretPosition
|
|
21552
|
+
return CaretPosition.before(container);
|
|
21490
21553
|
}
|
|
21491
21554
|
} else {
|
|
21492
|
-
return isAfterInline(pos) ? CaretPosition
|
|
21555
|
+
return isAfterInline(pos) ? CaretPosition(container, offset - 1) : pos;
|
|
21493
21556
|
}
|
|
21494
21557
|
}
|
|
21495
21558
|
};
|
|
@@ -21582,7 +21645,7 @@
|
|
|
21582
21645
|
}
|
|
21583
21646
|
};
|
|
21584
21647
|
var readFromRange = function (rootNode, forward, rng) {
|
|
21585
|
-
var fromBlockPos = getBlockPosition(rootNode, CaretPosition
|
|
21648
|
+
var fromBlockPos = getBlockPosition(rootNode, CaretPosition.fromRangeStart(rng));
|
|
21586
21649
|
var toBlockPos = fromBlockPos.bind(function (blockPos) {
|
|
21587
21650
|
return fromPosition(forward, rootNode, blockPos.position).bind(function (to) {
|
|
21588
21651
|
return getBlockPosition(rootNode, to).map(function (blockPos) {
|
|
@@ -21630,7 +21693,7 @@
|
|
|
21630
21693
|
if (isEmptyBefore(insertionPoint) && isEmpty(fromBlock)) {
|
|
21631
21694
|
before(insertionPoint, SugarElement.fromTag('br'));
|
|
21632
21695
|
}
|
|
21633
|
-
var position = prevPosition(toBlock.dom, CaretPosition
|
|
21696
|
+
var position = prevPosition(toBlock.dom, CaretPosition.before(insertionPoint.dom));
|
|
21634
21697
|
each(extractChildren(fromBlock), function (child) {
|
|
21635
21698
|
before(insertionPoint, child);
|
|
21636
21699
|
});
|
|
@@ -21707,8 +21770,8 @@
|
|
|
21707
21770
|
return isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer);
|
|
21708
21771
|
};
|
|
21709
21772
|
var isEverythingSelected = function (root, rng) {
|
|
21710
|
-
var noPrevious = prevPosition(root.dom, CaretPosition
|
|
21711
|
-
var noNext = nextPosition(root.dom, CaretPosition
|
|
21773
|
+
var noPrevious = prevPosition(root.dom, CaretPosition.fromRangeStart(rng)).isNone();
|
|
21774
|
+
var noNext = nextPosition(root.dom, CaretPosition.fromRangeEnd(rng)).isNone();
|
|
21712
21775
|
return !isSelectionInTable(root, rng) && noPrevious && noNext;
|
|
21713
21776
|
};
|
|
21714
21777
|
var emptyEditor = function (editor) {
|
|
@@ -21744,7 +21807,7 @@
|
|
|
21744
21807
|
};
|
|
21745
21808
|
var renderCaretAtRange = function (editor, range, scrollIntoView) {
|
|
21746
21809
|
var normalizedRange = normalizeRange(1, editor.getBody(), range);
|
|
21747
|
-
var caretPosition = CaretPosition
|
|
21810
|
+
var caretPosition = CaretPosition.fromRangeStart(normalizedRange);
|
|
21748
21811
|
var caretPositionNode = caretPosition.getNode();
|
|
21749
21812
|
if (isInlineFakeCaretTarget(caretPositionNode)) {
|
|
21750
21813
|
return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false);
|
|
@@ -21905,7 +21968,7 @@
|
|
|
21905
21968
|
};
|
|
21906
21969
|
var read$4 = function (root, forward, rng) {
|
|
21907
21970
|
var normalizedRange = normalizeRange(forward ? 1 : -1, root, rng);
|
|
21908
|
-
var from = CaretPosition
|
|
21971
|
+
var from = CaretPosition.fromRangeStart(normalizedRange);
|
|
21909
21972
|
var rootElement = SugarElement.fromDom(root);
|
|
21910
21973
|
if (forward === false && isAfterContentEditableFalse(from)) {
|
|
21911
21974
|
return Optional.some(DeleteAction.remove(from.getNode(true)));
|
|
@@ -21933,7 +21996,7 @@
|
|
|
21933
21996
|
};
|
|
21934
21997
|
var moveToElement = function (editor, forward) {
|
|
21935
21998
|
return function (element) {
|
|
21936
|
-
var pos = forward ? CaretPosition
|
|
21999
|
+
var pos = forward ? CaretPosition.before(element) : CaretPosition.after(element);
|
|
21937
22000
|
editor.selection.setRng(pos.toRange());
|
|
21938
22001
|
return true;
|
|
21939
22002
|
};
|
|
@@ -21967,9 +22030,7 @@
|
|
|
21967
22030
|
deleteElement(editor, forward, SugarElement.fromDom(editor.selection.getNode()));
|
|
21968
22031
|
paddEmptyBody(editor);
|
|
21969
22032
|
return true;
|
|
21970
|
-
},
|
|
21971
|
-
return true;
|
|
21972
|
-
});
|
|
22033
|
+
}, always);
|
|
21973
22034
|
}
|
|
21974
22035
|
return false;
|
|
21975
22036
|
};
|
|
@@ -21980,7 +22041,7 @@
|
|
|
21980
22041
|
var br = dom.create('br', { 'data-mce-bogus': '1' });
|
|
21981
22042
|
dom.setHTML(ceRoot, '');
|
|
21982
22043
|
ceRoot.appendChild(br);
|
|
21983
|
-
selection.setRng(CaretPosition
|
|
22044
|
+
selection.setRng(CaretPosition.before(br).toRange());
|
|
21984
22045
|
}
|
|
21985
22046
|
return true;
|
|
21986
22047
|
};
|
|
@@ -21993,7 +22054,7 @@
|
|
|
21993
22054
|
};
|
|
21994
22055
|
|
|
21995
22056
|
var deleteCaret$1 = function (editor, forward) {
|
|
21996
|
-
var fromPos = CaretPosition
|
|
22057
|
+
var fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
21997
22058
|
return fromPosition(forward, editor.getBody(), fromPos).filter(function (pos) {
|
|
21998
22059
|
return forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos);
|
|
21999
22060
|
}).bind(function (pos) {
|
|
@@ -22085,16 +22146,16 @@
|
|
|
22085
22146
|
remove$5(caret.get());
|
|
22086
22147
|
var text = insertInlineBefore(element);
|
|
22087
22148
|
caret.set(text);
|
|
22088
|
-
return Optional.some(CaretPosition
|
|
22149
|
+
return Optional.some(CaretPosition(text, text.length - 1));
|
|
22089
22150
|
}, function (element) {
|
|
22090
22151
|
return firstPositionIn(element).map(function (pos) {
|
|
22091
22152
|
if (!isPosCaretContainer(pos, caret)) {
|
|
22092
22153
|
remove$5(caret.get());
|
|
22093
22154
|
var text = insertInlinePos(pos, true);
|
|
22094
22155
|
caret.set(text);
|
|
22095
|
-
return CaretPosition
|
|
22156
|
+
return CaretPosition(text, 1);
|
|
22096
22157
|
} else {
|
|
22097
|
-
return CaretPosition
|
|
22158
|
+
return CaretPosition(caret.get(), 1);
|
|
22098
22159
|
}
|
|
22099
22160
|
});
|
|
22100
22161
|
}, function (element) {
|
|
@@ -22103,16 +22164,16 @@
|
|
|
22103
22164
|
remove$5(caret.get());
|
|
22104
22165
|
var text = insertInlinePos(pos, false);
|
|
22105
22166
|
caret.set(text);
|
|
22106
|
-
return CaretPosition
|
|
22167
|
+
return CaretPosition(text, text.length - 1);
|
|
22107
22168
|
} else {
|
|
22108
|
-
return CaretPosition
|
|
22169
|
+
return CaretPosition(caret.get(), caret.get().length - 1);
|
|
22109
22170
|
}
|
|
22110
22171
|
});
|
|
22111
22172
|
}, function (element) {
|
|
22112
22173
|
remove$5(caret.get());
|
|
22113
22174
|
var text = insertInlineAfter(element);
|
|
22114
22175
|
caret.set(text);
|
|
22115
|
-
return Optional.some(CaretPosition
|
|
22176
|
+
return Optional.some(CaretPosition(text, 1));
|
|
22116
22177
|
});
|
|
22117
22178
|
};
|
|
22118
22179
|
|
|
@@ -22251,13 +22312,13 @@
|
|
|
22251
22312
|
};
|
|
22252
22313
|
var moveRel = function (forward, selection, pos) {
|
|
22253
22314
|
var delta = forward ? 1 : -1;
|
|
22254
|
-
selection.setRng(CaretPosition
|
|
22315
|
+
selection.setRng(CaretPosition(pos.container(), pos.offset() + delta).toRange());
|
|
22255
22316
|
selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word');
|
|
22256
22317
|
return true;
|
|
22257
22318
|
};
|
|
22258
22319
|
var moveByWord = function (forward, editor) {
|
|
22259
22320
|
var rng = editor.selection.getRng();
|
|
22260
|
-
var pos = forward ? CaretPosition
|
|
22321
|
+
var pos = forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);
|
|
22261
22322
|
if (!hasSelectionModifyApi(editor)) {
|
|
22262
22323
|
return false;
|
|
22263
22324
|
} else if (forward && isBeforeInline(pos)) {
|
|
@@ -22290,7 +22351,7 @@
|
|
|
22290
22351
|
};
|
|
22291
22352
|
var findLocation$1 = function (editor, caret, forward) {
|
|
22292
22353
|
var rootNode = editor.getBody();
|
|
22293
|
-
var from = CaretPosition
|
|
22354
|
+
var from = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
22294
22355
|
var isInlineTarget$1 = curry(isInlineTarget, editor);
|
|
22295
22356
|
var location = findLocation(forward, isInlineTarget$1, rootNode, from);
|
|
22296
22357
|
return location.bind(function (location) {
|
|
@@ -22308,8 +22369,8 @@
|
|
|
22308
22369
|
};
|
|
22309
22370
|
var safeRemoveCaretContainer = function (editor, caret) {
|
|
22310
22371
|
if (editor.selection.isCollapsed() && editor.composing !== true && caret.get()) {
|
|
22311
|
-
var pos = CaretPosition
|
|
22312
|
-
if (CaretPosition
|
|
22372
|
+
var pos = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
22373
|
+
if (CaretPosition.isTextPosition(pos) && isAtZwsp(pos) === false) {
|
|
22313
22374
|
setCaretPosition(editor, removeAndReposition(caret.get(), pos));
|
|
22314
22375
|
caret.set(null);
|
|
22315
22376
|
}
|
|
@@ -22319,7 +22380,7 @@
|
|
|
22319
22380
|
if (editor.selection.isCollapsed()) {
|
|
22320
22381
|
var inlines = filter(elms, isInlineTarget);
|
|
22321
22382
|
each(inlines, function (_inline) {
|
|
22322
|
-
var pos = CaretPosition
|
|
22383
|
+
var pos = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
22323
22384
|
readLocation(isInlineTarget, editor.getBody(), pos).bind(function (location) {
|
|
22324
22385
|
return renderCaretLocation(editor, caret, location);
|
|
22325
22386
|
});
|
|
@@ -22376,7 +22437,7 @@
|
|
|
22376
22437
|
editor.undoManager.ignore(function () {
|
|
22377
22438
|
editor.selection.setRng(rangeFromPositions(from, to));
|
|
22378
22439
|
editor.execCommand('Delete');
|
|
22379
|
-
readLocation(isInlineTarget$1, rootNode, CaretPosition
|
|
22440
|
+
readLocation(isInlineTarget$1, rootNode, CaretPosition.fromRangeStart(editor.selection.getRng())).map(inside).map(setCaretLocation(editor, caret));
|
|
22380
22441
|
});
|
|
22381
22442
|
editor.nodeChanged();
|
|
22382
22443
|
};
|
|
@@ -22424,7 +22485,7 @@
|
|
|
22424
22485
|
};
|
|
22425
22486
|
var backspaceDelete$6 = function (editor, caret, forward) {
|
|
22426
22487
|
if (editor.selection.isCollapsed() && isInlineBoundariesEnabled(editor)) {
|
|
22427
|
-
var from = CaretPosition
|
|
22488
|
+
var from = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
22428
22489
|
return backspaceDeleteCollapsed(editor, caret, forward, from);
|
|
22429
22490
|
}
|
|
22430
22491
|
return false;
|
|
@@ -22456,7 +22517,7 @@
|
|
|
22456
22517
|
var startElm = SugarElement.fromDom(editor.selection.getStart());
|
|
22457
22518
|
var parentInlines = filter(getParentInlines(rootElm, startElm), hasOnlyOneChild$1);
|
|
22458
22519
|
return last(parentInlines).exists(function (target) {
|
|
22459
|
-
var fromPos = CaretPosition
|
|
22520
|
+
var fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
22460
22521
|
if (willDeleteLastPositionInElement(forward, fromPos, target.dom) && !isEmptyCaretFormatElement(target)) {
|
|
22461
22522
|
deleteLastPosition(forward, editor, target, parentInlines);
|
|
22462
22523
|
return true;
|
|
@@ -22566,7 +22627,7 @@
|
|
|
22566
22627
|
if (editor.selection.isCollapsed() && canOutdent(editor)) {
|
|
22567
22628
|
var dom = editor.dom;
|
|
22568
22629
|
var rng = editor.selection.getRng();
|
|
22569
|
-
var pos = CaretPosition
|
|
22630
|
+
var pos = CaretPosition.fromRangeStart(rng);
|
|
22570
22631
|
var block = dom.getParent(rng.startContainer, dom.isBlock);
|
|
22571
22632
|
if (block !== null && isAtStartOfBlock(SugarElement.fromDom(block), pos)) {
|
|
22572
22633
|
handle(editor, 'outdent');
|
|
@@ -23018,12 +23079,12 @@
|
|
|
23018
23079
|
walkFn = caretWalker.next;
|
|
23019
23080
|
isBelowFn = isBelow;
|
|
23020
23081
|
isAboveFn = isAbove;
|
|
23021
|
-
caretPosition = CaretPosition
|
|
23082
|
+
caretPosition = CaretPosition.after(node);
|
|
23022
23083
|
} else {
|
|
23023
23084
|
walkFn = caretWalker.prev;
|
|
23024
23085
|
isBelowFn = isAbove;
|
|
23025
23086
|
isAboveFn = isBelow;
|
|
23026
|
-
caretPosition = CaretPosition
|
|
23087
|
+
caretPosition = CaretPosition.before(node);
|
|
23027
23088
|
}
|
|
23028
23089
|
var targetClientRect = getClientRect(caretPosition);
|
|
23029
23090
|
do {
|
|
@@ -23227,11 +23288,11 @@
|
|
|
23227
23288
|
var rng = editor.selection.getRng();
|
|
23228
23289
|
var body = editor.getBody();
|
|
23229
23290
|
if (forward) {
|
|
23230
|
-
var from = CaretPosition
|
|
23291
|
+
var from = CaretPosition.fromRangeEnd(rng);
|
|
23231
23292
|
var result = getPositionsUntilNextLine(body, from);
|
|
23232
23293
|
return last(result.positions);
|
|
23233
23294
|
} else {
|
|
23234
|
-
var from = CaretPosition
|
|
23295
|
+
var from = CaretPosition.fromRangeStart(rng);
|
|
23235
23296
|
var result = getPositionsUntilPreviousLine(body, from);
|
|
23236
23297
|
return head(result.positions);
|
|
23237
23298
|
}
|
|
@@ -23271,7 +23332,7 @@
|
|
|
23271
23332
|
if (!pre) {
|
|
23272
23333
|
return;
|
|
23273
23334
|
}
|
|
23274
|
-
var caretPos = getVisualCaretPosition$1(CaretPosition
|
|
23335
|
+
var caretPos = getVisualCaretPosition$1(CaretPosition.fromRangeStart(range));
|
|
23275
23336
|
if (!caretPos) {
|
|
23276
23337
|
var newBlock = createTextBlock(editor);
|
|
23277
23338
|
if (direction === 1) {
|
|
@@ -23362,7 +23423,7 @@
|
|
|
23362
23423
|
};
|
|
23363
23424
|
var moveCaretToNewEmptyLine = function (editor, forward) {
|
|
23364
23425
|
var root = SugarElement.fromDom(editor.getBody());
|
|
23365
|
-
var pos = CaretPosition
|
|
23426
|
+
var pos = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
23366
23427
|
var rootBlock = getForcedRootBlock(editor);
|
|
23367
23428
|
var rootBlockAttrs = getForcedRootBlockAttrs(editor);
|
|
23368
23429
|
return getClosestTargetBlock(pos, root).exists(function () {
|
|
@@ -23539,7 +23600,7 @@
|
|
|
23539
23600
|
var isAtFirstTableCellLine = curry(isAtTableCellLine, getPositionsUntilPreviousLine);
|
|
23540
23601
|
var isAtLastTableCellLine = curry(isAtTableCellLine, getPositionsUntilNextLine);
|
|
23541
23602
|
var isCaretAtStartOrEndOfTable = function (forward, rng, table) {
|
|
23542
|
-
var caretPos = CaretPosition
|
|
23603
|
+
var caretPos = CaretPosition.fromRangeStart(rng);
|
|
23543
23604
|
return positionIn(!forward, table).exists(function (pos) {
|
|
23544
23605
|
return pos.isEqual(caretPos);
|
|
23545
23606
|
});
|
|
@@ -23558,16 +23619,16 @@
|
|
|
23558
23619
|
var getClosestAbovePosition = function (root, table, start) {
|
|
23559
23620
|
return findClosestPositionInAboveCell(table, start).orThunk(function () {
|
|
23560
23621
|
return head(start.getClientRects()).bind(function (rect) {
|
|
23561
|
-
return findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition
|
|
23622
|
+
return findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition.before(table)), rect.left);
|
|
23562
23623
|
});
|
|
23563
|
-
}).getOr(CaretPosition
|
|
23624
|
+
}).getOr(CaretPosition.before(table));
|
|
23564
23625
|
};
|
|
23565
23626
|
var getClosestBelowPosition = function (root, table, start) {
|
|
23566
23627
|
return findClosestPositionInBelowCell(table, start).orThunk(function () {
|
|
23567
23628
|
return head(start.getClientRects()).bind(function (rect) {
|
|
23568
|
-
return findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition
|
|
23629
|
+
return findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition.after(table)), rect.left);
|
|
23569
23630
|
});
|
|
23570
|
-
}).getOr(CaretPosition
|
|
23631
|
+
}).getOr(CaretPosition.after(table));
|
|
23571
23632
|
};
|
|
23572
23633
|
var getTable = function (previous, pos) {
|
|
23573
23634
|
var node = pos.getNode(previous);
|
|
@@ -23611,7 +23672,7 @@
|
|
|
23611
23672
|
};
|
|
23612
23673
|
var navigateVertically = function (editor, down, table, td) {
|
|
23613
23674
|
var rng = editor.selection.getRng();
|
|
23614
|
-
var pos = CaretPosition
|
|
23675
|
+
var pos = CaretPosition.fromRangeStart(rng);
|
|
23615
23676
|
var root = editor.getBody();
|
|
23616
23677
|
if (!down && isAtFirstTableCellLine(td, pos)) {
|
|
23617
23678
|
var newPos = getClosestAbovePosition(root, table, pos);
|
|
@@ -23926,6 +23987,10 @@
|
|
|
23926
23987
|
var hasFirstChild = function (elm, name) {
|
|
23927
23988
|
return elm.firstChild && elm.firstChild.nodeName === name;
|
|
23928
23989
|
};
|
|
23990
|
+
var isFirstChild = function (elm) {
|
|
23991
|
+
var _a;
|
|
23992
|
+
return ((_a = elm.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === elm;
|
|
23993
|
+
};
|
|
23929
23994
|
var hasParent$1 = function (elm, parentName) {
|
|
23930
23995
|
return elm && elm.parentNode && elm.parentNode.nodeName === parentName;
|
|
23931
23996
|
};
|
|
@@ -23964,7 +24029,13 @@
|
|
|
23964
24029
|
var newBlock = newBlockName ? createNewBlock(newBlockName) : dom.create('BR');
|
|
23965
24030
|
if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) {
|
|
23966
24031
|
if (hasParent$1(containerBlock, 'LI')) {
|
|
23967
|
-
|
|
24032
|
+
var containerBlockParent = getContainerBlock(containerBlock);
|
|
24033
|
+
dom.insertAfter(newBlock, containerBlockParent);
|
|
24034
|
+
if (isFirstChild(containerBlock)) {
|
|
24035
|
+
dom.remove(containerBlockParent);
|
|
24036
|
+
} else {
|
|
24037
|
+
dom.remove(containerBlock);
|
|
24038
|
+
}
|
|
23968
24039
|
} else {
|
|
23969
24040
|
dom.replace(newBlock, containerBlock);
|
|
23970
24041
|
}
|
|
@@ -23976,8 +24047,10 @@
|
|
|
23976
24047
|
} else {
|
|
23977
24048
|
containerBlock.parentNode.insertBefore(newBlock, containerBlock);
|
|
23978
24049
|
}
|
|
24050
|
+
dom.remove(parentBlock);
|
|
23979
24051
|
} else if (isFirstOrLastLi(containerBlock, parentBlock, false)) {
|
|
23980
24052
|
dom.insertAfter(newBlock, getContainerBlock(containerBlock));
|
|
24053
|
+
dom.remove(parentBlock);
|
|
23981
24054
|
} else {
|
|
23982
24055
|
containerBlock = getContainerBlock(containerBlock);
|
|
23983
24056
|
var tmpRng = rng.cloneRange();
|
|
@@ -23991,8 +24064,8 @@
|
|
|
23991
24064
|
dom.insertAfter(fragment, containerBlock);
|
|
23992
24065
|
dom.insertAfter(newBlock, containerBlock);
|
|
23993
24066
|
}
|
|
24067
|
+
dom.remove(parentBlock);
|
|
23994
24068
|
}
|
|
23995
|
-
dom.remove(parentBlock);
|
|
23996
24069
|
moveToCaretPosition(editor, newBlock);
|
|
23997
24070
|
};
|
|
23998
24071
|
|
|
@@ -24355,14 +24428,8 @@
|
|
|
24355
24428
|
}
|
|
24356
24429
|
}
|
|
24357
24430
|
};
|
|
24358
|
-
var
|
|
24359
|
-
var
|
|
24360
|
-
brElm.parentNode.insertBefore(marker, brElm);
|
|
24361
|
-
selection.scrollIntoView(marker);
|
|
24362
|
-
dom.remove(marker);
|
|
24363
|
-
};
|
|
24364
|
-
var moveSelectionToBr = function (dom, selection, brElm, extraBr) {
|
|
24365
|
-
var rng = dom.createRng();
|
|
24431
|
+
var moveSelectionToBr = function (editor, brElm, extraBr) {
|
|
24432
|
+
var rng = editor.dom.createRng();
|
|
24366
24433
|
if (!extraBr) {
|
|
24367
24434
|
rng.setStartAfter(brElm);
|
|
24368
24435
|
rng.setEndAfter(brElm);
|
|
@@ -24370,7 +24437,8 @@
|
|
|
24370
24437
|
rng.setStartBefore(brElm);
|
|
24371
24438
|
rng.setEndBefore(brElm);
|
|
24372
24439
|
}
|
|
24373
|
-
selection.setRng(rng);
|
|
24440
|
+
editor.selection.setRng(rng);
|
|
24441
|
+
scrollRangeIntoView(editor, rng);
|
|
24374
24442
|
};
|
|
24375
24443
|
var insertBrAtCaret = function (editor, evt) {
|
|
24376
24444
|
var selection = editor.selection;
|
|
@@ -24411,8 +24479,7 @@
|
|
|
24411
24479
|
}
|
|
24412
24480
|
brElm = dom.create('br');
|
|
24413
24481
|
rangeInsertNode(dom, rng, brElm);
|
|
24414
|
-
|
|
24415
|
-
moveSelectionToBr(dom, selection, brElm, extraBr);
|
|
24482
|
+
moveSelectionToBr(editor, brElm, extraBr);
|
|
24416
24483
|
editor.undoManager.add();
|
|
24417
24484
|
};
|
|
24418
24485
|
var insertBrBefore = function (editor, inline) {
|
|
@@ -24426,18 +24493,17 @@
|
|
|
24426
24493
|
}
|
|
24427
24494
|
var br = SugarElement.fromTag('br');
|
|
24428
24495
|
after(SugarElement.fromDom(inline), br);
|
|
24429
|
-
|
|
24430
|
-
moveSelectionToBr(editor.dom, editor.selection, br.dom, false);
|
|
24496
|
+
moveSelectionToBr(editor, br.dom, false);
|
|
24431
24497
|
editor.undoManager.add();
|
|
24432
24498
|
};
|
|
24433
24499
|
var isBeforeBr$1 = function (pos) {
|
|
24434
24500
|
return isBr(pos.getNode());
|
|
24435
24501
|
};
|
|
24436
24502
|
var hasBrAfter = function (rootNode, startNode) {
|
|
24437
|
-
if (isBeforeBr$1(CaretPosition
|
|
24503
|
+
if (isBeforeBr$1(CaretPosition.after(startNode))) {
|
|
24438
24504
|
return true;
|
|
24439
24505
|
} else {
|
|
24440
|
-
return nextPosition(rootNode, CaretPosition
|
|
24506
|
+
return nextPosition(rootNode, CaretPosition.after(startNode)).map(function (pos) {
|
|
24441
24507
|
return isBr(pos.getNode());
|
|
24442
24508
|
}).getOr(false);
|
|
24443
24509
|
}
|
|
@@ -24450,7 +24516,7 @@
|
|
|
24450
24516
|
};
|
|
24451
24517
|
var readInlineAnchorLocation = function (editor) {
|
|
24452
24518
|
var isInlineTarget$1 = curry(isInlineTarget, editor);
|
|
24453
|
-
var position = CaretPosition
|
|
24519
|
+
var position = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
24454
24520
|
return readLocation(isInlineTarget$1, editor.getBody(), position).filter(isInsideAnchor);
|
|
24455
24521
|
};
|
|
24456
24522
|
var insertBrOutsideAnchor = function (editor, location) {
|
|
@@ -24685,13 +24751,13 @@
|
|
|
24685
24751
|
var locationToCaretPosition = function (root) {
|
|
24686
24752
|
return function (location) {
|
|
24687
24753
|
return location.fold(function (element) {
|
|
24688
|
-
return prevPosition(root.dom, CaretPosition
|
|
24754
|
+
return prevPosition(root.dom, CaretPosition.before(element));
|
|
24689
24755
|
}, function (element) {
|
|
24690
24756
|
return firstPositionIn(element);
|
|
24691
24757
|
}, function (element) {
|
|
24692
24758
|
return lastPositionIn(element);
|
|
24693
24759
|
}, function (element) {
|
|
24694
|
-
return nextPosition(root.dom, CaretPosition
|
|
24760
|
+
return nextPosition(root.dom, CaretPosition.after(element));
|
|
24695
24761
|
});
|
|
24696
24762
|
};
|
|
24697
24763
|
};
|
|
@@ -24708,11 +24774,11 @@
|
|
|
24708
24774
|
};
|
|
24709
24775
|
};
|
|
24710
24776
|
var insertSpaceOrNbspAtSelection = function (editor) {
|
|
24711
|
-
var pos = CaretPosition
|
|
24777
|
+
var pos = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
24712
24778
|
var root = SugarElement.fromDom(editor.getBody());
|
|
24713
24779
|
if (editor.selection.isCollapsed()) {
|
|
24714
24780
|
var isInlineTarget$1 = curry(isInlineTarget, editor);
|
|
24715
|
-
var caretPosition = CaretPosition
|
|
24781
|
+
var caretPosition = CaretPosition.fromRangeStart(editor.selection.getRng());
|
|
24716
24782
|
return readLocation(isInlineTarget$1, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).bind(insertInlineBoundarySpaceOrNbsp(root, pos)).exists(setSelection$1(editor));
|
|
24717
24783
|
} else {
|
|
24718
24784
|
return false;
|
|
@@ -25160,7 +25226,7 @@
|
|
|
25160
25226
|
};
|
|
25161
25227
|
var bindFakeDragEvents = function (editor) {
|
|
25162
25228
|
var state = value$1();
|
|
25163
|
-
var pageDom = DOMUtils
|
|
25229
|
+
var pageDom = DOMUtils.DOM;
|
|
25164
25230
|
var rootDocument = document;
|
|
25165
25231
|
var dragStartHandler = start$1(state, editor);
|
|
25166
25232
|
var dragHandler = move$2(state, editor);
|
|
@@ -25186,7 +25252,7 @@
|
|
|
25186
25252
|
};
|
|
25187
25253
|
var blockUnsupportedFileDrop = function (editor) {
|
|
25188
25254
|
var preventFileDrop = function (e) {
|
|
25189
|
-
if (!e.
|
|
25255
|
+
if (!e.isDefaultPrevented()) {
|
|
25190
25256
|
var dataTransfer = e.dataTransfer;
|
|
25191
25257
|
if (dataTransfer && (contains(dataTransfer.types, 'Files') || dataTransfer.files.length > 0)) {
|
|
25192
25258
|
e.preventDefault();
|
|
@@ -25202,7 +25268,7 @@
|
|
|
25202
25268
|
}
|
|
25203
25269
|
};
|
|
25204
25270
|
var setup = function () {
|
|
25205
|
-
var pageDom = DOMUtils
|
|
25271
|
+
var pageDom = DOMUtils.DOM;
|
|
25206
25272
|
var dom = editor.dom;
|
|
25207
25273
|
var doc = document;
|
|
25208
25274
|
var editorRoot = editor.inline ? editor.getBody() : editor.getDoc();
|
|
@@ -25354,7 +25420,7 @@
|
|
|
25354
25420
|
if (!elm.firstChild) {
|
|
25355
25421
|
return false;
|
|
25356
25422
|
}
|
|
25357
|
-
var startPos = CaretPosition
|
|
25423
|
+
var startPos = CaretPosition.before(elm.firstChild);
|
|
25358
25424
|
var newPos = caretWalker.next(startPos);
|
|
25359
25425
|
return newPos && !isNearFakeSelectionElement(newPos);
|
|
25360
25426
|
};
|
|
@@ -25993,8 +26059,7 @@
|
|
|
25993
26059
|
}
|
|
25994
26060
|
});
|
|
25995
26061
|
};
|
|
25996
|
-
var refreshContentEditable =
|
|
25997
|
-
};
|
|
26062
|
+
var refreshContentEditable = noop;
|
|
25998
26063
|
var isHidden = function () {
|
|
25999
26064
|
if (!isGecko || editor.removed) {
|
|
26000
26065
|
return false;
|
|
@@ -26047,7 +26112,7 @@
|
|
|
26047
26112
|
};
|
|
26048
26113
|
};
|
|
26049
26114
|
|
|
26050
|
-
var DOM$4 = DOMUtils
|
|
26115
|
+
var DOM$4 = DOMUtils.DOM;
|
|
26051
26116
|
var appendStyle = function (editor, text) {
|
|
26052
26117
|
var body = SugarElement.fromDom(editor.getBody());
|
|
26053
26118
|
var container = getStyleContainer(getRootNode(body));
|
|
@@ -26229,15 +26294,36 @@
|
|
|
26229
26294
|
var getStyleSheetLoader = function (editor) {
|
|
26230
26295
|
return editor.inline ? editor.ui.styleSheetLoader : editor.dom.styleSheetLoader;
|
|
26231
26296
|
};
|
|
26297
|
+
var makeStylesheetLoadingPromises = function (editor, css, framedFonts) {
|
|
26298
|
+
var promises = [new promiseObj(function (resolve, reject) {
|
|
26299
|
+
return getStyleSheetLoader(editor).loadAll(css, resolve, reject);
|
|
26300
|
+
})];
|
|
26301
|
+
if (editor.inline) {
|
|
26302
|
+
return promises;
|
|
26303
|
+
} else {
|
|
26304
|
+
return promises.concat([new promiseObj(function (resolve, reject) {
|
|
26305
|
+
return editor.ui.styleSheetLoader.loadAll(framedFonts, resolve, reject);
|
|
26306
|
+
})]);
|
|
26307
|
+
}
|
|
26308
|
+
};
|
|
26232
26309
|
var loadContentCss = function (editor, css) {
|
|
26233
26310
|
var styleSheetLoader = getStyleSheetLoader(editor);
|
|
26311
|
+
var fontCss = getFontCss(editor);
|
|
26312
|
+
var removeCss = function () {
|
|
26313
|
+
styleSheetLoader.unloadAll(css);
|
|
26314
|
+
if (!editor.inline) {
|
|
26315
|
+
editor.ui.styleSheetLoader.unloadAll(fontCss);
|
|
26316
|
+
}
|
|
26317
|
+
};
|
|
26234
26318
|
var loaded = function () {
|
|
26235
|
-
editor.
|
|
26236
|
-
|
|
26237
|
-
}
|
|
26238
|
-
|
|
26319
|
+
if (editor.removed) {
|
|
26320
|
+
removeCss();
|
|
26321
|
+
} else {
|
|
26322
|
+
editor.on('remove', removeCss);
|
|
26323
|
+
initEditor(editor);
|
|
26324
|
+
}
|
|
26239
26325
|
};
|
|
26240
|
-
|
|
26326
|
+
promiseObj.all(makeStylesheetLoadingPromises(editor, css, fontCss)).then(loaded).catch(loaded);
|
|
26241
26327
|
};
|
|
26242
26328
|
var preInit = function (editor, rtcMode) {
|
|
26243
26329
|
var settings = editor.settings, doc = editor.getDoc(), body = editor.getBody();
|
|
@@ -26316,7 +26402,7 @@
|
|
|
26316
26402
|
body.disabled = false;
|
|
26317
26403
|
editor.editorUpload = EditorUpload(editor);
|
|
26318
26404
|
editor.schema = Schema(settings);
|
|
26319
|
-
editor.dom = DOMUtils
|
|
26405
|
+
editor.dom = DOMUtils(doc, {
|
|
26320
26406
|
keep_values: true,
|
|
26321
26407
|
url_converter: editor.convertURL,
|
|
26322
26408
|
url_converter_scope: editor,
|
|
@@ -26358,11 +26444,17 @@
|
|
|
26358
26444
|
loadingRtc.then(function (rtcMode) {
|
|
26359
26445
|
editor.setProgressState(false);
|
|
26360
26446
|
preInit(editor, rtcMode);
|
|
26447
|
+
}, function (err) {
|
|
26448
|
+
editor.notificationManager.open({
|
|
26449
|
+
type: 'error',
|
|
26450
|
+
text: String(err)
|
|
26451
|
+
});
|
|
26452
|
+
preInit(editor, true);
|
|
26361
26453
|
});
|
|
26362
26454
|
});
|
|
26363
26455
|
};
|
|
26364
26456
|
|
|
26365
|
-
var DOM$5 = DOMUtils
|
|
26457
|
+
var DOM$5 = DOMUtils.DOM;
|
|
26366
26458
|
var relaxDomain = function (editor, ifr) {
|
|
26367
26459
|
if (document.domain !== window.location.hostname && Env.browser.isIE()) {
|
|
26368
26460
|
var bodyUuid = uuid('mce');
|
|
@@ -26428,7 +26520,7 @@
|
|
|
26428
26520
|
}
|
|
26429
26521
|
};
|
|
26430
26522
|
|
|
26431
|
-
var DOM$6 = DOMUtils
|
|
26523
|
+
var DOM$6 = DOMUtils.DOM;
|
|
26432
26524
|
var initPlugin = function (editor, initializedPlugins, plugin) {
|
|
26433
26525
|
var Plugin = PluginManager.get(plugin);
|
|
26434
26526
|
var pluginUrl = PluginManager.urls[plugin] || editor.documentBaseUrl.replace(/\/$/, '');
|
|
@@ -26561,7 +26653,7 @@
|
|
|
26561
26653
|
}
|
|
26562
26654
|
};
|
|
26563
26655
|
|
|
26564
|
-
var DOM$7 = DOMUtils
|
|
26656
|
+
var DOM$7 = DOMUtils.DOM;
|
|
26565
26657
|
var hasSkipLoadPrefix = function (name) {
|
|
26566
26658
|
return name.charAt(0) === '-';
|
|
26567
26659
|
};
|
|
@@ -26808,7 +26900,7 @@
|
|
|
26808
26900
|
return fontFamily.replace(/[\'\"\\]/g, '').replace(/,\s+/g, ',');
|
|
26809
26901
|
};
|
|
26810
26902
|
var getComputedFontProp = function (propName, elm) {
|
|
26811
|
-
return Optional.from(DOMUtils
|
|
26903
|
+
return Optional.from(DOMUtils.DOM.getStyle(elm, propName, true));
|
|
26812
26904
|
};
|
|
26813
26905
|
var getFontProp = function (propName) {
|
|
26814
26906
|
return function (rootElm, elm) {
|
|
@@ -27106,8 +27198,7 @@
|
|
|
27106
27198
|
EditorCommands.prototype.setupCommands = function (editor) {
|
|
27107
27199
|
var self = this;
|
|
27108
27200
|
this.addCommands({
|
|
27109
|
-
'mceResetDesignMode,mceBeginUndoLevel':
|
|
27110
|
-
},
|
|
27201
|
+
'mceResetDesignMode,mceBeginUndoLevel': noop,
|
|
27111
27202
|
'mceEndUndoLevel,mceAddUndoLevel': function () {
|
|
27112
27203
|
editor.undoManager.add();
|
|
27113
27204
|
},
|
|
@@ -27241,8 +27332,7 @@
|
|
|
27241
27332
|
'Indent,Outdent': function (command) {
|
|
27242
27333
|
handle(editor, command);
|
|
27243
27334
|
},
|
|
27244
|
-
'mceRepaint':
|
|
27245
|
-
},
|
|
27335
|
+
'mceRepaint': noop,
|
|
27246
27336
|
'InsertHorizontalRule': function () {
|
|
27247
27337
|
editor.execCommand('mceInsertContent', false, '<hr />');
|
|
27248
27338
|
},
|
|
@@ -27638,7 +27728,7 @@
|
|
|
27638
27728
|
}
|
|
27639
27729
|
};
|
|
27640
27730
|
|
|
27641
|
-
var DOM$8 = DOMUtils
|
|
27731
|
+
var DOM$8 = DOMUtils.DOM;
|
|
27642
27732
|
var customEventRootDelegates;
|
|
27643
27733
|
var getEventTarget = function (editor, eventName) {
|
|
27644
27734
|
if (eventName === 'selectionchange') {
|
|
@@ -27860,6 +27950,48 @@
|
|
|
27860
27950
|
f12: 123
|
|
27861
27951
|
};
|
|
27862
27952
|
var modifierNames = Tools.makeMap('alt,ctrl,shift,meta,access');
|
|
27953
|
+
var parseShortcut = function (pattern) {
|
|
27954
|
+
var key;
|
|
27955
|
+
var shortcut = {};
|
|
27956
|
+
each$g(explode$3(pattern.toLowerCase(), '+'), function (value) {
|
|
27957
|
+
if (value in modifierNames) {
|
|
27958
|
+
shortcut[value] = true;
|
|
27959
|
+
} else {
|
|
27960
|
+
if (/^[0-9]{2,}$/.test(value)) {
|
|
27961
|
+
shortcut.keyCode = parseInt(value, 10);
|
|
27962
|
+
} else {
|
|
27963
|
+
shortcut.charCode = value.charCodeAt(0);
|
|
27964
|
+
shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0);
|
|
27965
|
+
}
|
|
27966
|
+
}
|
|
27967
|
+
});
|
|
27968
|
+
var id = [shortcut.keyCode];
|
|
27969
|
+
for (key in modifierNames) {
|
|
27970
|
+
if (shortcut[key]) {
|
|
27971
|
+
id.push(key);
|
|
27972
|
+
} else {
|
|
27973
|
+
shortcut[key] = false;
|
|
27974
|
+
}
|
|
27975
|
+
}
|
|
27976
|
+
shortcut.id = id.join(',');
|
|
27977
|
+
if (shortcut.access) {
|
|
27978
|
+
shortcut.alt = true;
|
|
27979
|
+
if (Env.mac) {
|
|
27980
|
+
shortcut.ctrl = true;
|
|
27981
|
+
} else {
|
|
27982
|
+
shortcut.shift = true;
|
|
27983
|
+
}
|
|
27984
|
+
}
|
|
27985
|
+
if (shortcut.meta) {
|
|
27986
|
+
if (Env.mac) {
|
|
27987
|
+
shortcut.meta = true;
|
|
27988
|
+
} else {
|
|
27989
|
+
shortcut.ctrl = true;
|
|
27990
|
+
shortcut.meta = false;
|
|
27991
|
+
}
|
|
27992
|
+
}
|
|
27993
|
+
return shortcut;
|
|
27994
|
+
};
|
|
27863
27995
|
var Shortcuts = function () {
|
|
27864
27996
|
function Shortcuts(editor) {
|
|
27865
27997
|
this.shortcuts = {};
|
|
@@ -27920,50 +28052,8 @@
|
|
|
27920
28052
|
return cmd;
|
|
27921
28053
|
}
|
|
27922
28054
|
};
|
|
27923
|
-
Shortcuts.prototype.parseShortcut = function (pattern) {
|
|
27924
|
-
var key;
|
|
27925
|
-
var shortcut = {};
|
|
27926
|
-
each$g(explode$3(pattern.toLowerCase(), '+'), function (value) {
|
|
27927
|
-
if (value in modifierNames) {
|
|
27928
|
-
shortcut[value] = true;
|
|
27929
|
-
} else {
|
|
27930
|
-
if (/^[0-9]{2,}$/.test(value)) {
|
|
27931
|
-
shortcut.keyCode = parseInt(value, 10);
|
|
27932
|
-
} else {
|
|
27933
|
-
shortcut.charCode = value.charCodeAt(0);
|
|
27934
|
-
shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0);
|
|
27935
|
-
}
|
|
27936
|
-
}
|
|
27937
|
-
});
|
|
27938
|
-
var id = [shortcut.keyCode];
|
|
27939
|
-
for (key in modifierNames) {
|
|
27940
|
-
if (shortcut[key]) {
|
|
27941
|
-
id.push(key);
|
|
27942
|
-
} else {
|
|
27943
|
-
shortcut[key] = false;
|
|
27944
|
-
}
|
|
27945
|
-
}
|
|
27946
|
-
shortcut.id = id.join(',');
|
|
27947
|
-
if (shortcut.access) {
|
|
27948
|
-
shortcut.alt = true;
|
|
27949
|
-
if (Env.mac) {
|
|
27950
|
-
shortcut.ctrl = true;
|
|
27951
|
-
} else {
|
|
27952
|
-
shortcut.shift = true;
|
|
27953
|
-
}
|
|
27954
|
-
}
|
|
27955
|
-
if (shortcut.meta) {
|
|
27956
|
-
if (Env.mac) {
|
|
27957
|
-
shortcut.meta = true;
|
|
27958
|
-
} else {
|
|
27959
|
-
shortcut.ctrl = true;
|
|
27960
|
-
shortcut.meta = false;
|
|
27961
|
-
}
|
|
27962
|
-
}
|
|
27963
|
-
return shortcut;
|
|
27964
|
-
};
|
|
27965
28055
|
Shortcuts.prototype.createShortcut = function (pattern, desc, cmdFunc, scope) {
|
|
27966
|
-
var shortcuts = Tools.map(explode$3(pattern, '>'),
|
|
28056
|
+
var shortcuts = Tools.map(explode$3(pattern, '>'), parseShortcut);
|
|
27967
28057
|
shortcuts[shortcuts.length - 1] = Tools.extend(shortcuts[shortcuts.length - 1], {
|
|
27968
28058
|
func: cmdFunc,
|
|
27969
28059
|
scope: scope || this.editor
|
|
@@ -28099,7 +28189,7 @@
|
|
|
28099
28189
|
}
|
|
28100
28190
|
}
|
|
28101
28191
|
url = url.replace(/@@/g, '(mce_at)');
|
|
28102
|
-
var urlMatch = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url);
|
|
28192
|
+
var urlMatch = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?(\[[a-zA-Z0-9:.%]+\]|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url);
|
|
28103
28193
|
each$h(queryParts, function (v, i) {
|
|
28104
28194
|
var part = urlMatch[i];
|
|
28105
28195
|
if (part) {
|
|
@@ -28312,7 +28402,7 @@
|
|
|
28312
28402
|
return URI;
|
|
28313
28403
|
}();
|
|
28314
28404
|
|
|
28315
|
-
var DOM$9 = DOMUtils
|
|
28405
|
+
var DOM$9 = DOMUtils.DOM;
|
|
28316
28406
|
var extend$3 = Tools.extend, each$i = Tools.each;
|
|
28317
28407
|
var resolve$3 = Tools.resolve;
|
|
28318
28408
|
var ie$1 = Env.ie;
|
|
@@ -28338,10 +28428,10 @@
|
|
|
28338
28428
|
this.baseUri = editorManager.baseURI;
|
|
28339
28429
|
if (this.settings.referrer_policy) {
|
|
28340
28430
|
ScriptLoader.ScriptLoader._setReferrerPolicy(this.settings.referrer_policy);
|
|
28341
|
-
DOMUtils
|
|
28431
|
+
DOMUtils.DOM.styleSheetLoader._setReferrerPolicy(this.settings.referrer_policy);
|
|
28342
28432
|
}
|
|
28343
|
-
AddOnManager
|
|
28344
|
-
AddOnManager
|
|
28433
|
+
AddOnManager.languageLoad = this.settings.language_load;
|
|
28434
|
+
AddOnManager.baseURL = editorManager.baseURL;
|
|
28345
28435
|
this.id = id;
|
|
28346
28436
|
this.setDirty(false);
|
|
28347
28437
|
this.documentBaseURI = new URI(this.settings.document_base_url, { base_uri: this.baseUri });
|
|
@@ -28668,7 +28758,7 @@
|
|
|
28668
28758
|
return Editor;
|
|
28669
28759
|
}();
|
|
28670
28760
|
|
|
28671
|
-
var DOM$a = DOMUtils
|
|
28761
|
+
var DOM$a = DOMUtils.DOM;
|
|
28672
28762
|
var explode$4 = Tools.explode, each$j = Tools.each, extend$4 = Tools.extend;
|
|
28673
28763
|
var instanceCounter = 0, boundGlobalEvents = false;
|
|
28674
28764
|
var beforeUnloadDelegate;
|
|
@@ -28739,8 +28829,8 @@
|
|
|
28739
28829
|
suffix: null,
|
|
28740
28830
|
$: DomQuery,
|
|
28741
28831
|
majorVersion: '5',
|
|
28742
|
-
minorVersion: '
|
|
28743
|
-
releaseDate: '
|
|
28832
|
+
minorVersion: '7.1',
|
|
28833
|
+
releaseDate: '2021-03-17',
|
|
28744
28834
|
editors: legacyEditors,
|
|
28745
28835
|
i18n: I18n,
|
|
28746
28836
|
activeEditor: null,
|
|
@@ -28803,7 +28893,7 @@
|
|
|
28803
28893
|
var pluginBaseUrls = defaultSettings.plugin_base_urls;
|
|
28804
28894
|
if (pluginBaseUrls !== undefined) {
|
|
28805
28895
|
each$1(pluginBaseUrls, function (pluginBaseUrl, pluginName) {
|
|
28806
|
-
AddOnManager
|
|
28896
|
+
AddOnManager.PluginManager.urls[pluginName] = pluginBaseUrl;
|
|
28807
28897
|
});
|
|
28808
28898
|
}
|
|
28809
28899
|
},
|
|
@@ -28829,7 +28919,7 @@
|
|
|
28829
28919
|
if (!callback) {
|
|
28830
28920
|
return;
|
|
28831
28921
|
}
|
|
28832
|
-
return callback.apply(self,
|
|
28922
|
+
return callback.apply(self, []);
|
|
28833
28923
|
};
|
|
28834
28924
|
var hasClass = function (elm, className) {
|
|
28835
28925
|
return className.constructor === RegExp ? className.test(elm.className) : DOM$a.hasClass(elm, className);
|
|
@@ -29044,7 +29134,7 @@
|
|
|
29044
29134
|
return true;
|
|
29045
29135
|
case 'mceToggleEditor':
|
|
29046
29136
|
if (!editor) {
|
|
29047
|
-
self.execCommand('mceAddEditor',
|
|
29137
|
+
self.execCommand('mceAddEditor', false, value);
|
|
29048
29138
|
return true;
|
|
29049
29139
|
}
|
|
29050
29140
|
if (editor.isHidden()) {
|
|
@@ -29525,7 +29615,7 @@
|
|
|
29525
29615
|
callbacks: {},
|
|
29526
29616
|
count: 0,
|
|
29527
29617
|
send: function (settings) {
|
|
29528
|
-
var self = this, dom = DOMUtils
|
|
29618
|
+
var self = this, dom = DOMUtils.DOM, count = settings.count !== undefined ? settings.count : self.count;
|
|
29529
29619
|
var id = 'tinymce_jsonp_' + count;
|
|
29530
29620
|
self.callbacks[count] = function (json) {
|
|
29531
29621
|
dom.remove(id);
|
|
@@ -29697,7 +29787,8 @@
|
|
|
29697
29787
|
JSONRequest: JSONRequest,
|
|
29698
29788
|
JSONP: JSONP,
|
|
29699
29789
|
LocalStorage: LocalStorage,
|
|
29700
|
-
Color: Color
|
|
29790
|
+
Color: Color,
|
|
29791
|
+
ImageUploader: ImageUploader
|
|
29701
29792
|
},
|
|
29702
29793
|
dom: {
|
|
29703
29794
|
EventUtils: EventUtils,
|
|
@@ -29705,13 +29796,13 @@
|
|
|
29705
29796
|
DomQuery: DomQuery,
|
|
29706
29797
|
TreeWalker: DomTreeWalker,
|
|
29707
29798
|
TextSeeker: TextSeeker,
|
|
29708
|
-
DOMUtils: DOMUtils
|
|
29799
|
+
DOMUtils: DOMUtils,
|
|
29709
29800
|
ScriptLoader: ScriptLoader,
|
|
29710
|
-
RangeUtils: RangeUtils
|
|
29801
|
+
RangeUtils: RangeUtils,
|
|
29711
29802
|
Serializer: DomSerializer,
|
|
29712
29803
|
StyleSheetLoader: StyleSheetLoader,
|
|
29713
29804
|
ControlSelection: ControlSelection,
|
|
29714
|
-
BookmarkManager: BookmarkManager
|
|
29805
|
+
BookmarkManager: BookmarkManager,
|
|
29715
29806
|
Selection: EditorSelection,
|
|
29716
29807
|
Event: EventUtils.Event
|
|
29717
29808
|
},
|
|
@@ -29720,13 +29811,13 @@
|
|
|
29720
29811
|
Entities: Entities,
|
|
29721
29812
|
Node: AstNode,
|
|
29722
29813
|
Schema: Schema,
|
|
29723
|
-
SaxParser: SaxParser
|
|
29814
|
+
SaxParser: SaxParser,
|
|
29724
29815
|
DomParser: DomParser,
|
|
29725
29816
|
Writer: Writer,
|
|
29726
29817
|
Serializer: HtmlSerializer
|
|
29727
29818
|
},
|
|
29728
29819
|
Env: Env,
|
|
29729
|
-
AddOnManager: AddOnManager
|
|
29820
|
+
AddOnManager: AddOnManager,
|
|
29730
29821
|
Annotator: Annotator,
|
|
29731
29822
|
Formatter: Formatter,
|
|
29732
29823
|
UndoManager: UndoManager,
|
|
@@ -29738,7 +29829,7 @@
|
|
|
29738
29829
|
Editor: Editor,
|
|
29739
29830
|
FocusManager: FocusManager,
|
|
29740
29831
|
EditorManager: EditorManager,
|
|
29741
|
-
DOM: DOMUtils
|
|
29832
|
+
DOM: DOMUtils.DOM,
|
|
29742
29833
|
ScriptLoader: ScriptLoader.ScriptLoader,
|
|
29743
29834
|
PluginManager: PluginManager,
|
|
29744
29835
|
ThemeManager: ThemeManager,
|