tinymce-rails 5.6.2.1 → 5.7.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,
|