tinymce-rails 4.9.6 → 4.9.11
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 +693 -653
- data/lib/tinymce/rails/engine.rb +5 -1
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/config/tinymce-rails.manifest.js +8 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/imagetools/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/textpattern/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/wordcount/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/skins/lightgray/content.inline.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/skins/lightgray/content.min.css +1 -1
- data/vendor/assets/javascripts/tinymce/themes/inlite/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/mobile/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/modern/theme.js +1 -1
- data/vendor/assets/javascripts/tinymce/tinymce.js +2 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d4a9e6b463099f136b4a76925e428f4adbdc905d04d316a97b1ea3508a10ddf
|
4
|
+
data.tar.gz: 103162d595c1bd4948ef0f41c101a5388a77d521737855a076c4c077d7b92038
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80ed2f75eb71bab2b14c5d380d6c8c9400079f253baa34471102fd71afa3019a3931f1843375a00f47d0398e43eb672568a2c6960bb6cf06ce62a2f00bbc28c6
|
7
|
+
data.tar.gz: cbc4371630d008d8b2d308ad0cd9687b43487bfbdf9e6f1d15f0bff8295ea5c41a03fa213a3d1e488103ae234600cce3660993c411718d4bedf70ac6fe62ac14
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// 4.9.
|
1
|
+
// 4.9.11 (2020-07-13)
|
2
2
|
(function () {
|
3
3
|
(function (domGlobals) {
|
4
4
|
'use strict';
|
@@ -53,8 +53,6 @@
|
|
53
53
|
var never = constant(false);
|
54
54
|
var always = constant(true);
|
55
55
|
|
56
|
-
var never$1 = never;
|
57
|
-
var always$1 = always;
|
58
56
|
var none = function () {
|
59
57
|
return NONE;
|
60
58
|
};
|
@@ -68,37 +66,27 @@
|
|
68
66
|
var id = function (n) {
|
69
67
|
return n;
|
70
68
|
};
|
71
|
-
var noop = function () {
|
72
|
-
};
|
73
|
-
var nul = function () {
|
74
|
-
return null;
|
75
|
-
};
|
76
|
-
var undef = function () {
|
77
|
-
return undefined;
|
78
|
-
};
|
79
69
|
var me = {
|
80
70
|
fold: function (n, s) {
|
81
71
|
return n();
|
82
72
|
},
|
83
|
-
is: never
|
84
|
-
isSome: never
|
85
|
-
isNone: always
|
73
|
+
is: never,
|
74
|
+
isSome: never,
|
75
|
+
isNone: always,
|
86
76
|
getOr: id,
|
87
77
|
getOrThunk: call,
|
88
78
|
getOrDie: function (msg) {
|
89
79
|
throw new Error(msg || 'error: getOrDie called on none.');
|
90
80
|
},
|
91
|
-
getOrNull:
|
92
|
-
getOrUndefined:
|
81
|
+
getOrNull: constant(null),
|
82
|
+
getOrUndefined: constant(undefined),
|
93
83
|
or: id,
|
94
84
|
orThunk: call,
|
95
85
|
map: none,
|
96
|
-
ap: none,
|
97
86
|
each: noop,
|
98
87
|
bind: none,
|
99
|
-
|
100
|
-
|
101
|
-
forall: always$1,
|
88
|
+
exists: never,
|
89
|
+
forall: always,
|
102
90
|
filter: none,
|
103
91
|
equals: eq,
|
104
92
|
equals_: eq,
|
@@ -113,15 +101,10 @@
|
|
113
101
|
return me;
|
114
102
|
}();
|
115
103
|
var some = function (a) {
|
116
|
-
var constant_a =
|
117
|
-
return a;
|
118
|
-
};
|
104
|
+
var constant_a = constant(a);
|
119
105
|
var self = function () {
|
120
106
|
return me;
|
121
107
|
};
|
122
|
-
var map = function (f) {
|
123
|
-
return some(f(a));
|
124
|
-
};
|
125
108
|
var bind = function (f) {
|
126
109
|
return f(a);
|
127
110
|
};
|
@@ -132,8 +115,8 @@
|
|
132
115
|
is: function (v) {
|
133
116
|
return a === v;
|
134
117
|
},
|
135
|
-
isSome: always
|
136
|
-
isNone: never
|
118
|
+
isSome: always,
|
119
|
+
isNone: never,
|
137
120
|
getOr: constant_a,
|
138
121
|
getOrThunk: constant_a,
|
139
122
|
getOrDie: constant_a,
|
@@ -141,35 +124,31 @@
|
|
141
124
|
getOrUndefined: constant_a,
|
142
125
|
or: self,
|
143
126
|
orThunk: self,
|
144
|
-
map:
|
145
|
-
|
146
|
-
return optfab.fold(none, function (fab) {
|
147
|
-
return some(fab(a));
|
148
|
-
});
|
127
|
+
map: function (f) {
|
128
|
+
return some(f(a));
|
149
129
|
},
|
150
130
|
each: function (f) {
|
151
131
|
f(a);
|
152
132
|
},
|
153
133
|
bind: bind,
|
154
|
-
flatten: constant_a,
|
155
134
|
exists: bind,
|
156
135
|
forall: bind,
|
157
136
|
filter: function (f) {
|
158
137
|
return f(a) ? me : NONE;
|
159
138
|
},
|
139
|
+
toArray: function () {
|
140
|
+
return [a];
|
141
|
+
},
|
142
|
+
toString: function () {
|
143
|
+
return 'some(' + a + ')';
|
144
|
+
},
|
160
145
|
equals: function (o) {
|
161
146
|
return o.is(a);
|
162
147
|
},
|
163
148
|
equals_: function (o, elementEq) {
|
164
|
-
return o.fold(never
|
149
|
+
return o.fold(never, function (b) {
|
165
150
|
return elementEq(a, b);
|
166
151
|
});
|
167
|
-
},
|
168
|
-
toArray: function () {
|
169
|
-
return [a];
|
170
|
-
},
|
171
|
-
toString: function () {
|
172
|
-
return 'some(' + a + ')';
|
173
152
|
}
|
174
153
|
};
|
175
154
|
return me;
|
@@ -209,17 +188,12 @@
|
|
209
188
|
var isFunction = isType('function');
|
210
189
|
var isNumber = isType('number');
|
211
190
|
|
212
|
-
var
|
213
|
-
var
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
var slowIndex = function (xs, x) {
|
219
|
-
return slowIndexOf(xs, x);
|
220
|
-
};
|
221
|
-
return pIndexOf === undefined ? slowIndex : fastIndex;
|
222
|
-
}();
|
191
|
+
var nativeSlice = Array.prototype.slice;
|
192
|
+
var nativeIndexOf = Array.prototype.indexOf;
|
193
|
+
var nativePush = Array.prototype.push;
|
194
|
+
var rawIndexOf = function (ts, t) {
|
195
|
+
return nativeIndexOf.call(ts, t);
|
196
|
+
};
|
223
197
|
var indexOf = function (xs, x) {
|
224
198
|
var r = rawIndexOf(xs, x);
|
225
199
|
return r === -1 ? Option.none() : Option.some(r);
|
@@ -228,27 +202,33 @@
|
|
228
202
|
return rawIndexOf(xs, x) > -1;
|
229
203
|
};
|
230
204
|
var exists = function (xs, pred) {
|
231
|
-
|
205
|
+
for (var i = 0, len = xs.length; i < len; i++) {
|
206
|
+
var x = xs[i];
|
207
|
+
if (pred(x, i)) {
|
208
|
+
return true;
|
209
|
+
}
|
210
|
+
}
|
211
|
+
return false;
|
232
212
|
};
|
233
213
|
var map = function (xs, f) {
|
234
214
|
var len = xs.length;
|
235
215
|
var r = new Array(len);
|
236
216
|
for (var i = 0; i < len; i++) {
|
237
217
|
var x = xs[i];
|
238
|
-
r[i] = f(x, i
|
218
|
+
r[i] = f(x, i);
|
239
219
|
}
|
240
220
|
return r;
|
241
221
|
};
|
242
222
|
var each = function (xs, f) {
|
243
223
|
for (var i = 0, len = xs.length; i < len; i++) {
|
244
224
|
var x = xs[i];
|
245
|
-
f(x, i
|
225
|
+
f(x, i);
|
246
226
|
}
|
247
227
|
};
|
248
228
|
var eachr = function (xs, f) {
|
249
229
|
for (var i = xs.length - 1; i >= 0; i--) {
|
250
230
|
var x = xs[i];
|
251
|
-
f(x, i
|
231
|
+
f(x, i);
|
252
232
|
}
|
253
233
|
};
|
254
234
|
var partition = function (xs, pred) {
|
@@ -256,7 +236,7 @@
|
|
256
236
|
var fail = [];
|
257
237
|
for (var i = 0, len = xs.length; i < len; i++) {
|
258
238
|
var x = xs[i];
|
259
|
-
var arr = pred(x, i
|
239
|
+
var arr = pred(x, i) ? pass : fail;
|
260
240
|
arr.push(x);
|
261
241
|
}
|
262
242
|
return {
|
@@ -268,7 +248,7 @@
|
|
268
248
|
var r = [];
|
269
249
|
for (var i = 0, len = xs.length; i < len; i++) {
|
270
250
|
var x = xs[i];
|
271
|
-
if (pred(x, i
|
251
|
+
if (pred(x, i)) {
|
272
252
|
r.push(x);
|
273
253
|
}
|
274
254
|
}
|
@@ -289,7 +269,7 @@
|
|
289
269
|
var find = function (xs, pred) {
|
290
270
|
for (var i = 0, len = xs.length; i < len; i++) {
|
291
271
|
var x = xs[i];
|
292
|
-
if (pred(x, i
|
272
|
+
if (pred(x, i)) {
|
293
273
|
return Option.some(x);
|
294
274
|
}
|
295
275
|
}
|
@@ -298,28 +278,19 @@
|
|
298
278
|
var findIndex = function (xs, pred) {
|
299
279
|
for (var i = 0, len = xs.length; i < len; i++) {
|
300
280
|
var x = xs[i];
|
301
|
-
if (pred(x, i
|
281
|
+
if (pred(x, i)) {
|
302
282
|
return Option.some(i);
|
303
283
|
}
|
304
284
|
}
|
305
285
|
return Option.none();
|
306
286
|
};
|
307
|
-
var slowIndexOf = function (xs, x) {
|
308
|
-
for (var i = 0, len = xs.length; i < len; ++i) {
|
309
|
-
if (xs[i] === x) {
|
310
|
-
return i;
|
311
|
-
}
|
312
|
-
}
|
313
|
-
return -1;
|
314
|
-
};
|
315
|
-
var push = Array.prototype.push;
|
316
287
|
var flatten = function (xs) {
|
317
288
|
var r = [];
|
318
289
|
for (var i = 0, len = xs.length; i < len; ++i) {
|
319
290
|
if (!isArray(xs[i])) {
|
320
291
|
throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
|
321
292
|
}
|
322
|
-
|
293
|
+
nativePush.apply(r, xs[i]);
|
323
294
|
}
|
324
295
|
return r;
|
325
296
|
};
|
@@ -330,14 +301,14 @@
|
|
330
301
|
var forall = function (xs, pred) {
|
331
302
|
for (var i = 0, len = xs.length; i < len; ++i) {
|
332
303
|
var x = xs[i];
|
333
|
-
if (pred(x, i
|
304
|
+
if (pred(x, i) !== true) {
|
334
305
|
return false;
|
335
306
|
}
|
336
307
|
}
|
337
308
|
return true;
|
338
309
|
};
|
339
310
|
var reverse = function (xs) {
|
340
|
-
var r =
|
311
|
+
var r = nativeSlice.call(xs, 0);
|
341
312
|
r.reverse();
|
342
313
|
return r;
|
343
314
|
};
|
@@ -355,7 +326,7 @@
|
|
355
326
|
return r;
|
356
327
|
};
|
357
328
|
var sort = function (xs, comparator) {
|
358
|
-
var copy =
|
329
|
+
var copy = nativeSlice.call(xs, 0);
|
359
330
|
copy.sort(comparator);
|
360
331
|
return copy;
|
361
332
|
};
|
@@ -366,7 +337,7 @@
|
|
366
337
|
return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]);
|
367
338
|
};
|
368
339
|
var from$1 = isFunction(Array.from) ? Array.from : function (x) {
|
369
|
-
return
|
340
|
+
return nativeSlice.call(x);
|
370
341
|
};
|
371
342
|
|
372
343
|
var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
|
@@ -1094,7 +1065,7 @@
|
|
1094
1065
|
hasDuplicate = true;
|
1095
1066
|
}
|
1096
1067
|
return 0;
|
1097
|
-
}, strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, hasOwn = {}.hasOwnProperty, arr = [], pop = arr.pop, push_native = arr.push, push
|
1068
|
+
}, strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, hasOwn = {}.hasOwnProperty, arr = [], pop = arr.pop, push_native = arr.push, push = arr.push, slice = arr.slice, indexOf$1 = arr.indexOf || function (elem) {
|
1098
1069
|
var i = 0, len = this.length;
|
1099
1070
|
for (; i < len; i++) {
|
1100
1071
|
if (this[i] === elem) {
|
@@ -1116,12 +1087,12 @@
|
|
1116
1087
|
return high !== high || escapedWhitespace ? escaped : high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320);
|
1117
1088
|
};
|
1118
1089
|
try {
|
1119
|
-
push
|
1090
|
+
push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);
|
1120
1091
|
arr[preferredDoc.childNodes.length].nodeType;
|
1121
1092
|
} catch (e) {
|
1122
|
-
push
|
1093
|
+
push = {
|
1123
1094
|
apply: arr.length ? function (target, els) {
|
1124
|
-
push_native.apply(target, slice
|
1095
|
+
push_native.apply(target, slice.call(els));
|
1125
1096
|
} : function (target, els) {
|
1126
1097
|
var j = target.length, i = 0;
|
1127
1098
|
while (target[j++] = els[i++]) {
|
@@ -1163,10 +1134,10 @@
|
|
1163
1134
|
}
|
1164
1135
|
}
|
1165
1136
|
} else if (match[2]) {
|
1166
|
-
push
|
1137
|
+
push.apply(results, context.getElementsByTagName(selector));
|
1167
1138
|
return results;
|
1168
1139
|
} else if ((m = match[3]) && support.getElementsByClassName) {
|
1169
|
-
push
|
1140
|
+
push.apply(results, context.getElementsByClassName(m));
|
1170
1141
|
return results;
|
1171
1142
|
}
|
1172
1143
|
}
|
@@ -1191,7 +1162,7 @@
|
|
1191
1162
|
}
|
1192
1163
|
if (newSelector) {
|
1193
1164
|
try {
|
1194
|
-
push
|
1165
|
+
push.apply(results, newContext.querySelectorAll(newSelector));
|
1195
1166
|
return results;
|
1196
1167
|
} catch (qsaError) {
|
1197
1168
|
} finally {
|
@@ -1947,7 +1918,7 @@
|
|
1947
1918
|
if (postFinder) {
|
1948
1919
|
postFinder(null, results, matcherOut, xml);
|
1949
1920
|
} else {
|
1950
|
-
push
|
1921
|
+
push.apply(results, matcherOut);
|
1951
1922
|
}
|
1952
1923
|
}
|
1953
1924
|
});
|
@@ -2023,7 +1994,7 @@
|
|
2023
1994
|
}
|
2024
1995
|
setMatched = condense(setMatched);
|
2025
1996
|
}
|
2026
|
-
push
|
1997
|
+
push.apply(results, setMatched);
|
2027
1998
|
if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {
|
2028
1999
|
Sizzle.uniqueSort(results);
|
2029
2000
|
}
|
@@ -2081,7 +2052,7 @@
|
|
2081
2052
|
tokens.splice(i, 1);
|
2082
2053
|
selector = seed.length && toSelector(tokens);
|
2083
2054
|
if (!selector) {
|
2084
|
-
push
|
2055
|
+
push.apply(results, seed);
|
2085
2056
|
return results;
|
2086
2057
|
}
|
2087
2058
|
break;
|
@@ -2381,7 +2352,7 @@
|
|
2381
2352
|
_addCacheSuffix: _addCacheSuffix
|
2382
2353
|
};
|
2383
2354
|
|
2384
|
-
var doc = domGlobals.document, push$
|
2355
|
+
var doc = domGlobals.document, push$1 = Array.prototype.push, slice$1 = Array.prototype.slice;
|
2385
2356
|
var rquickExpr$1 = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/;
|
2386
2357
|
var Event = EventUtils.Event;
|
2387
2358
|
var skipUniques = Tools.makeMap('children,contents,next,prev');
|
@@ -2559,7 +2530,7 @@
|
|
2559
2530
|
if (match[1]) {
|
2560
2531
|
node = createFragment(selector, getElementDocument(context)).firstChild;
|
2561
2532
|
while (node) {
|
2562
|
-
push$
|
2533
|
+
push$1.call(self, node);
|
2563
2534
|
node = node.nextSibling;
|
2564
2535
|
}
|
2565
2536
|
} else {
|
@@ -2597,7 +2568,7 @@
|
|
2597
2568
|
self[i] = nodes[i];
|
2598
2569
|
}
|
2599
2570
|
} else {
|
2600
|
-
push$
|
2571
|
+
push$1.apply(self, DomQuery.makeArray(items));
|
2601
2572
|
}
|
2602
2573
|
return self;
|
2603
2574
|
},
|
@@ -2914,7 +2885,7 @@
|
|
2914
2885
|
return this.css('display', 'none');
|
2915
2886
|
},
|
2916
2887
|
slice: function () {
|
2917
|
-
return new DomQuery(slice$
|
2888
|
+
return new DomQuery(slice$1.apply(this, arguments));
|
2918
2889
|
},
|
2919
2890
|
eq: function (index) {
|
2920
2891
|
return index === -1 ? this.slice(index) : this.slice(index, +index + 1);
|
@@ -2981,7 +2952,7 @@
|
|
2981
2952
|
}
|
2982
2953
|
return this.css(offset);
|
2983
2954
|
},
|
2984
|
-
push: push$
|
2955
|
+
push: push$1,
|
2985
2956
|
sort: [].sort,
|
2986
2957
|
splice: [].splice
|
2987
2958
|
};
|
@@ -3645,21 +3616,21 @@
|
|
3645
3616
|
for (var k = 0, len = props.length; k < len; k++) {
|
3646
3617
|
var i = props[k];
|
3647
3618
|
var x = obj[i];
|
3648
|
-
f(x, i
|
3619
|
+
f(x, i);
|
3649
3620
|
}
|
3650
3621
|
};
|
3651
3622
|
var map$2 = function (obj, f) {
|
3652
|
-
return tupleMap(obj, function (x, i
|
3623
|
+
return tupleMap(obj, function (x, i) {
|
3653
3624
|
return {
|
3654
3625
|
k: i,
|
3655
|
-
v: f(x, i
|
3626
|
+
v: f(x, i)
|
3656
3627
|
};
|
3657
3628
|
});
|
3658
3629
|
};
|
3659
3630
|
var tupleMap = function (obj, f) {
|
3660
3631
|
var r = {};
|
3661
3632
|
each$3(obj, function (x, i) {
|
3662
|
-
var tuple = f(x, i
|
3633
|
+
var tuple = f(x, i);
|
3663
3634
|
r[tuple.k] = tuple.v;
|
3664
3635
|
});
|
3665
3636
|
return r;
|
@@ -3750,6 +3721,17 @@
|
|
3750
3721
|
return r.length > 0;
|
3751
3722
|
});
|
3752
3723
|
};
|
3724
|
+
var getAllRaw = function (element) {
|
3725
|
+
var css = {};
|
3726
|
+
var dom = element.dom();
|
3727
|
+
if (isSupported(dom)) {
|
3728
|
+
for (var i = 0; i < dom.style.length; i++) {
|
3729
|
+
var ruleName = dom.style.item(i);
|
3730
|
+
css[ruleName] = dom.style[ruleName];
|
3731
|
+
}
|
3732
|
+
}
|
3733
|
+
return css;
|
3734
|
+
};
|
3753
3735
|
|
3754
3736
|
var Immutable = function () {
|
3755
3737
|
var fields = [];
|
@@ -5675,7 +5657,7 @@
|
|
5675
5657
|
textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside main nav figure');
|
5676
5658
|
blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary', textBlockElementsMap);
|
5677
5659
|
textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font strike u var cite ' + 'dfn code mark q sup sub samp');
|
5678
|
-
each$4((settings.special || 'script noscript noframes noembed title style textarea xmp').split(' '), function (name) {
|
5660
|
+
each$4((settings.special || 'script noscript iframe noframes noembed title style textarea xmp').split(' '), function (name) {
|
5679
5661
|
specialElements[name] = new RegExp('</' + name + '[^>]*>', 'gi');
|
5680
5662
|
});
|
5681
5663
|
var patternToRegExp = function (str) {
|
@@ -6682,12 +6664,14 @@
|
|
6682
6664
|
var node;
|
6683
6665
|
var container = doc.createElement('div');
|
6684
6666
|
var frag = doc.createDocumentFragment();
|
6667
|
+
frag.appendChild(container);
|
6685
6668
|
if (html) {
|
6686
6669
|
container.innerHTML = html;
|
6687
6670
|
}
|
6688
6671
|
while (node = container.firstChild) {
|
6689
6672
|
frag.appendChild(node);
|
6690
6673
|
}
|
6674
|
+
frag.removeChild(container);
|
6691
6675
|
return frag;
|
6692
6676
|
};
|
6693
6677
|
var remove = function (node, keepChildren) {
|
@@ -7819,6 +7803,18 @@
|
|
7819
7803
|
};
|
7820
7804
|
};
|
7821
7805
|
|
7806
|
+
var __assign = function () {
|
7807
|
+
__assign = Object.assign || function __assign(t) {
|
7808
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
7809
|
+
s = arguments[i];
|
7810
|
+
for (var p in s)
|
7811
|
+
if (Object.prototype.hasOwnProperty.call(s, p))
|
7812
|
+
t[p] = s[p];
|
7813
|
+
}
|
7814
|
+
return t;
|
7815
|
+
};
|
7816
|
+
return __assign.apply(this, arguments);
|
7817
|
+
};
|
7822
7818
|
function __rest(s, e) {
|
7823
7819
|
var t = {};
|
7824
7820
|
for (var p in s)
|
@@ -7831,6 +7827,14 @@
|
|
7831
7827
|
}
|
7832
7828
|
return t;
|
7833
7829
|
}
|
7830
|
+
function __spreadArrays() {
|
7831
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++)
|
7832
|
+
s += arguments[i].length;
|
7833
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
7834
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
7835
|
+
r[k] = a[j];
|
7836
|
+
return r;
|
7837
|
+
}
|
7834
7838
|
|
7835
7839
|
var unique = 0;
|
7836
7840
|
var generate = function (prefix) {
|
@@ -8099,7 +8103,8 @@
|
|
8099
8103
|
return overflowY >= 0 && overflowY <= Math.min(rect1.height, rect2.height) / 2;
|
8100
8104
|
};
|
8101
8105
|
var isAbove = function (rect1, rect2) {
|
8102
|
-
|
8106
|
+
var halfHeight = Math.min(rect2.height / 2, rect1.height / 2);
|
8107
|
+
if (rect1.bottom - halfHeight < rect2.top) {
|
8103
8108
|
return true;
|
8104
8109
|
}
|
8105
8110
|
if (rect1.top > rect2.bottom) {
|
@@ -8162,26 +8167,20 @@
|
|
8162
8167
|
return typeof ch === 'string' && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);
|
8163
8168
|
};
|
8164
8169
|
|
8165
|
-
var
|
8166
|
-
|
8167
|
-
|
8168
|
-
|
8169
|
-
|
8170
|
-
r.push(x.getOrDie());
|
8171
|
-
} else {
|
8172
|
-
return Option.none();
|
8173
|
-
}
|
8174
|
-
}
|
8175
|
-
return Option.some(f.apply(null, r));
|
8170
|
+
var lift2 = function (oa, ob, f) {
|
8171
|
+
return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none();
|
8172
|
+
};
|
8173
|
+
var lift3 = function (oa, ob, oc, f) {
|
8174
|
+
return oa.isSome() && ob.isSome() && oc.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Option.none();
|
8176
8175
|
};
|
8177
8176
|
|
8178
|
-
var slice$
|
8177
|
+
var slice$2 = [].slice;
|
8179
8178
|
var or = function () {
|
8180
8179
|
var x = [];
|
8181
8180
|
for (var _i = 0; _i < arguments.length; _i++) {
|
8182
8181
|
x[_i] = arguments[_i];
|
8183
8182
|
}
|
8184
|
-
var args = slice$
|
8183
|
+
var args = slice$2.call(arguments);
|
8185
8184
|
return function (x) {
|
8186
8185
|
for (var i = 0; i < args.length; i++) {
|
8187
8186
|
if (args[i](x)) {
|
@@ -8196,7 +8195,7 @@
|
|
8196
8195
|
for (var _i = 0; _i < arguments.length; _i++) {
|
8197
8196
|
x[_i] = arguments[_i];
|
8198
8197
|
}
|
8199
|
-
var args = slice$
|
8198
|
+
var args = slice$2.call(arguments);
|
8200
8199
|
return function (x) {
|
8201
8200
|
for (var i = 0; i < args.length; i++) {
|
8202
8201
|
if (!args[i](x)) {
|
@@ -8433,16 +8432,10 @@
|
|
8433
8432
|
return CaretPosition(node.parentNode, nodeIndex(node));
|
8434
8433
|
};
|
8435
8434
|
CaretPosition.isAbove = function (pos1, pos2) {
|
8436
|
-
return
|
8437
|
-
head(pos2.getClientRects()),
|
8438
|
-
last(pos1.getClientRects())
|
8439
|
-
], isAbove).getOr(false);
|
8435
|
+
return lift2(head(pos2.getClientRects()), last(pos1.getClientRects()), isAbove).getOr(false);
|
8440
8436
|
};
|
8441
8437
|
CaretPosition.isBelow = function (pos1, pos2) {
|
8442
|
-
return
|
8443
|
-
last(pos2.getClientRects()),
|
8444
|
-
head(pos1.getClientRects())
|
8445
|
-
], isBelow).getOr(false);
|
8438
|
+
return lift2(last(pos2.getClientRects()), head(pos1.getClientRects()), isBelow).getOr(false);
|
8446
8439
|
};
|
8447
8440
|
CaretPosition.isAtStart = function (pos) {
|
8448
8441
|
return pos ? pos.isAtStart() : false;
|
@@ -9556,7 +9549,7 @@
|
|
9556
9549
|
};
|
9557
9550
|
|
9558
9551
|
var addBogus = function (dom, node) {
|
9559
|
-
if (dom.isBlock(node) && !node.innerHTML && !Env.ie) {
|
9552
|
+
if (NodeType.isElement(node) && dom.isBlock(node) && !node.innerHTML && !Env.ie) {
|
9560
9553
|
node.innerHTML = '<br data-mce-bogus="1" />';
|
9561
9554
|
}
|
9562
9555
|
return node;
|
@@ -9719,10 +9712,7 @@
|
|
9719
9712
|
var resolveId = function (dom, bookmark) {
|
9720
9713
|
var startPos = restoreEndPoint(dom, 'start', bookmark);
|
9721
9714
|
var endPos = restoreEndPoint(dom, 'end', bookmark);
|
9722
|
-
return
|
9723
|
-
startPos,
|
9724
|
-
alt(endPos, startPos)
|
9725
|
-
], function (spos, epos) {
|
9715
|
+
return lift2(startPos, alt(endPos, startPos), function (spos, epos) {
|
9726
9716
|
var rng = dom.createRng();
|
9727
9717
|
rng.setStart(addBogus(dom, spos.container()), spos.offset());
|
9728
9718
|
rng.setEnd(addBogus(dom, epos.container()), epos.offset());
|
@@ -11368,10 +11358,7 @@
|
|
11368
11358
|
}
|
11369
11359
|
};
|
11370
11360
|
var willDeleteLastPositionInElement = function (forward, fromPos, elm) {
|
11371
|
-
return
|
11372
|
-
CaretFinder.firstPositionIn(elm),
|
11373
|
-
CaretFinder.lastPositionIn(elm)
|
11374
|
-
], function (firstPos, lastPos) {
|
11361
|
+
return lift2(CaretFinder.firstPositionIn(elm), CaretFinder.lastPositionIn(elm), function (firstPos, lastPos) {
|
11375
11362
|
var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos);
|
11376
11363
|
var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos);
|
11377
11364
|
var normalizedFromPos = InlineUtils.normalizePosition(false, fromPos);
|
@@ -11470,7 +11457,7 @@
|
|
11470
11457
|
}).isSome();
|
11471
11458
|
};
|
11472
11459
|
var isEditable = function (blockBoundary) {
|
11473
|
-
return NodeType.isContentEditableFalse(blockBoundary.from().block()) === false && NodeType.isContentEditableFalse(blockBoundary.to().block()) === false;
|
11460
|
+
return NodeType.isContentEditableFalse(blockBoundary.from().block().dom()) === false && NodeType.isContentEditableFalse(blockBoundary.to().block().dom()) === false;
|
11474
11461
|
};
|
11475
11462
|
var skipLastBr = function (rootNode, forward, blockPosition) {
|
11476
11463
|
if (NodeType.isBr(blockPosition.position().getNode()) && Empty.isEmpty(blockPosition.block()) === false) {
|
@@ -11496,10 +11483,7 @@
|
|
11496
11483
|
});
|
11497
11484
|
});
|
11498
11485
|
});
|
11499
|
-
return
|
11500
|
-
fromBlockPos,
|
11501
|
-
toBlockPos
|
11502
|
-
], BlockBoundary).filter(function (blockBoundary) {
|
11486
|
+
return lift2(fromBlockPos, toBlockPos, BlockBoundary).filter(function (blockBoundary) {
|
11503
11487
|
return isDifferentBlocks(blockBoundary) && hasSameParent(blockBoundary) && isEditable(blockBoundary);
|
11504
11488
|
});
|
11505
11489
|
};
|
@@ -11621,10 +11605,7 @@
|
|
11621
11605
|
|
11622
11606
|
var deleteRangeMergeBlocks = function (rootNode, selection) {
|
11623
11607
|
var rng = selection.getRng();
|
11624
|
-
return
|
11625
|
-
DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.startContainer)),
|
11626
|
-
DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.endContainer))
|
11627
|
-
], function (block1, block2) {
|
11608
|
+
return lift2(DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.startContainer)), DeleteUtils.getParentBlock(rootNode, Element.fromDom(rng.endContainer)), function (block1, block2) {
|
11628
11609
|
if (eq(block1, block2) === false) {
|
11629
11610
|
rng.deleteContents();
|
11630
11611
|
MergeBlocks.mergeBlocks(rootNode, true, block1, block2).each(function (pos) {
|
@@ -12035,11 +12016,7 @@
|
|
12035
12016
|
var prevTextOpt = prevSibling(elm).filter(isText);
|
12036
12017
|
var nextTextOpt = nextSibling(elm).filter(isText);
|
12037
12018
|
remove$1(elm);
|
12038
|
-
return
|
12039
|
-
prevTextOpt,
|
12040
|
-
nextTextOpt,
|
12041
|
-
afterDeletePosOpt
|
12042
|
-
], function (prev, next, pos) {
|
12019
|
+
return lift3(prevTextOpt, nextTextOpt, afterDeletePosOpt, function (prev, next, pos) {
|
12043
12020
|
var prevNode = prev.dom(), nextNode = next.dom();
|
12044
12021
|
var offset = prevNode.data.length;
|
12045
12022
|
mergeTextNodes(prevNode, nextNode, normalizeWhitespace);
|
@@ -12356,10 +12333,7 @@
|
|
12356
12333
|
return getName(location1) === getName(location2) && getElement(location1) === getElement(location2);
|
12357
12334
|
};
|
12358
12335
|
var betweenInlines = function (forward, isInlineTarget, rootNode, from, to, location) {
|
12359
|
-
return
|
12360
|
-
InlineUtils.findRootInline(isInlineTarget, rootNode, from),
|
12361
|
-
InlineUtils.findRootInline(isInlineTarget, rootNode, to)
|
12362
|
-
], function (fromInline, toInline) {
|
12336
|
+
return lift2(InlineUtils.findRootInline(isInlineTarget, rootNode, from), InlineUtils.findRootInline(isInlineTarget, rootNode, to), function (fromInline, toInline) {
|
12363
12337
|
if (fromInline !== toInline && InlineUtils.hasSameParentBlock(rootNode, fromInline, toInline)) {
|
12364
12338
|
return Location.after(forward ? fromInline : toInline);
|
12365
12339
|
} else {
|
@@ -12532,10 +12506,7 @@
|
|
12532
12506
|
return range;
|
12533
12507
|
};
|
12534
12508
|
var hasOnlyTwoOrLessPositionsLeft = function (elm) {
|
12535
|
-
return
|
12536
|
-
CaretFinder.firstPositionIn(elm),
|
12537
|
-
CaretFinder.lastPositionIn(elm)
|
12538
|
-
], function (firstPos, lastPos) {
|
12509
|
+
return lift2(CaretFinder.firstPositionIn(elm), CaretFinder.lastPositionIn(elm), function (firstPos, lastPos) {
|
12539
12510
|
var normalizedFirstPos = InlineUtils.normalizePosition(true, firstPos);
|
12540
12511
|
var normalizedLastPos = InlineUtils.normalizePosition(false, lastPos);
|
12541
12512
|
return CaretFinder.nextPosition(elm, normalizedFirstPos).map(function (pos) {
|
@@ -12650,10 +12621,7 @@
|
|
12650
12621
|
var partialSelection = function (isRoot, rng) {
|
12651
12622
|
var startCell = getClosestCell(rng.startContainer, isRoot);
|
12652
12623
|
var endCell = getClosestCell(rng.endContainer, isRoot);
|
12653
|
-
return rng.collapsed ? Option.none() :
|
12654
|
-
startCell,
|
12655
|
-
endCell
|
12656
|
-
], tableCellRng).fold(function () {
|
12624
|
+
return rng.collapsed ? Option.none() : lift2(startCell, endCell, tableCellRng).fold(function () {
|
12657
12625
|
return startCell.fold(function () {
|
12658
12626
|
return endCell.bind(function (endCell) {
|
12659
12627
|
return getClosestTable(endCell, isRoot).bind(function (table) {
|
@@ -12679,10 +12647,7 @@
|
|
12679
12647
|
var getCellRng = function (rng, isRoot) {
|
12680
12648
|
var startCell = getClosestCell(rng.startContainer, isRoot);
|
12681
12649
|
var endCell = getClosestCell(rng.endContainer, isRoot);
|
12682
|
-
return
|
12683
|
-
startCell,
|
12684
|
-
endCell
|
12685
|
-
], tableCellRng).filter(isExpandedCellRng).filter(function (cellRng) {
|
12650
|
+
return lift2(startCell, endCell, tableCellRng).filter(isExpandedCellRng).filter(function (cellRng) {
|
12686
12651
|
return isWithinSameTable(isRoot, cellRng);
|
12687
12652
|
}).orThunk(function () {
|
12688
12653
|
return partialSelection(isRoot, rng);
|
@@ -12705,10 +12670,7 @@
|
|
12705
12670
|
});
|
12706
12671
|
};
|
12707
12672
|
var getSelectedCells = function (tableSelection) {
|
12708
|
-
return
|
12709
|
-
getCellIndex(tableSelection.cells(), tableSelection.rng().start()),
|
12710
|
-
getCellIndex(tableSelection.cells(), tableSelection.rng().end())
|
12711
|
-
], function (startIndex, endIndex) {
|
12673
|
+
return lift2(getCellIndex(tableSelection.cells(), tableSelection.rng().start()), getCellIndex(tableSelection.cells(), tableSelection.rng().end()), function (startIndex, endIndex) {
|
12712
12674
|
return tableSelection.cells().slice(startIndex, endIndex + 1);
|
12713
12675
|
});
|
12714
12676
|
};
|
@@ -13329,6 +13291,99 @@
|
|
13329
13291
|
};
|
13330
13292
|
var InlineFormatDelete = { backspaceDelete: backspaceDelete$5 };
|
13331
13293
|
|
13294
|
+
var getPos$1 = function (elm) {
|
13295
|
+
var x = 0, y = 0;
|
13296
|
+
var offsetParent = elm;
|
13297
|
+
while (offsetParent && offsetParent.nodeType) {
|
13298
|
+
x += offsetParent.offsetLeft || 0;
|
13299
|
+
y += offsetParent.offsetTop || 0;
|
13300
|
+
offsetParent = offsetParent.offsetParent;
|
13301
|
+
}
|
13302
|
+
return {
|
13303
|
+
x: x,
|
13304
|
+
y: y
|
13305
|
+
};
|
13306
|
+
};
|
13307
|
+
var fireScrollIntoViewEvent = function (editor, elm, alignToTop) {
|
13308
|
+
var scrollEvent = {
|
13309
|
+
elm: elm,
|
13310
|
+
alignToTop: alignToTop
|
13311
|
+
};
|
13312
|
+
editor.fire('scrollIntoView', scrollEvent);
|
13313
|
+
return scrollEvent.isDefaultPrevented();
|
13314
|
+
};
|
13315
|
+
var scrollElementIntoView = function (editor, elm, alignToTop) {
|
13316
|
+
var y, viewPort;
|
13317
|
+
var dom = editor.dom;
|
13318
|
+
var root = dom.getRoot();
|
13319
|
+
var viewPortY, viewPortH, offsetY = 0;
|
13320
|
+
if (fireScrollIntoViewEvent(editor, elm, alignToTop)) {
|
13321
|
+
return;
|
13322
|
+
}
|
13323
|
+
if (!NodeType.isElement(elm)) {
|
13324
|
+
return;
|
13325
|
+
}
|
13326
|
+
if (alignToTop === false) {
|
13327
|
+
offsetY = elm.offsetHeight;
|
13328
|
+
}
|
13329
|
+
if (root.nodeName !== 'BODY') {
|
13330
|
+
var scrollContainer = editor.selection.getScrollContainer();
|
13331
|
+
if (scrollContainer) {
|
13332
|
+
y = getPos$1(elm).y - getPos$1(scrollContainer).y + offsetY;
|
13333
|
+
viewPortH = scrollContainer.clientHeight;
|
13334
|
+
viewPortY = scrollContainer.scrollTop;
|
13335
|
+
if (y < viewPortY || y + 25 > viewPortY + viewPortH) {
|
13336
|
+
scrollContainer.scrollTop = y < viewPortY ? y : y - viewPortH + 25;
|
13337
|
+
}
|
13338
|
+
return;
|
13339
|
+
}
|
13340
|
+
}
|
13341
|
+
viewPort = dom.getViewPort(editor.getWin());
|
13342
|
+
y = dom.getPos(elm).y + offsetY;
|
13343
|
+
viewPortY = viewPort.y;
|
13344
|
+
viewPortH = viewPort.h;
|
13345
|
+
if (y < viewPort.y || y + 25 > viewPortY + viewPortH) {
|
13346
|
+
editor.getWin().scrollTo(0, y < viewPortY ? y : y - viewPortH + 25);
|
13347
|
+
}
|
13348
|
+
};
|
13349
|
+
var getViewPortRect = function (editor) {
|
13350
|
+
if (editor.inline) {
|
13351
|
+
return editor.getBody().getBoundingClientRect();
|
13352
|
+
} else {
|
13353
|
+
var win = editor.getWin();
|
13354
|
+
return {
|
13355
|
+
left: 0,
|
13356
|
+
right: win.innerWidth,
|
13357
|
+
top: 0,
|
13358
|
+
bottom: win.innerHeight,
|
13359
|
+
width: win.innerWidth,
|
13360
|
+
height: win.innerHeight
|
13361
|
+
};
|
13362
|
+
}
|
13363
|
+
};
|
13364
|
+
var scrollBy = function (editor, dx, dy) {
|
13365
|
+
if (editor.inline) {
|
13366
|
+
editor.getBody().scrollLeft += dx;
|
13367
|
+
editor.getBody().scrollTop += dy;
|
13368
|
+
} else {
|
13369
|
+
editor.getWin().scrollBy(dx, dy);
|
13370
|
+
}
|
13371
|
+
};
|
13372
|
+
var scrollRangeIntoView = function (editor, rng) {
|
13373
|
+
head(CaretPosition.fromRangeStart(rng).getClientRects()).each(function (rngRect) {
|
13374
|
+
var bodyRect = getViewPortRect(editor);
|
13375
|
+
var overflow = getOverflow(bodyRect, rngRect);
|
13376
|
+
var margin = 4;
|
13377
|
+
var dx = overflow.x > 0 ? overflow.x + margin : overflow.x - margin;
|
13378
|
+
var dy = overflow.y > 0 ? overflow.y + margin : overflow.y - margin;
|
13379
|
+
scrollBy(editor, overflow.x !== 0 ? dx : 0, overflow.y !== 0 ? dy : 0);
|
13380
|
+
});
|
13381
|
+
};
|
13382
|
+
var ScrollIntoView = {
|
13383
|
+
scrollElementIntoView: scrollElementIntoView,
|
13384
|
+
scrollRangeIntoView: scrollRangeIntoView
|
13385
|
+
};
|
13386
|
+
|
13332
13387
|
var isContentEditableTrue$2 = NodeType.isContentEditableTrue;
|
13333
13388
|
var isContentEditableFalse$6 = NodeType.isContentEditableFalse;
|
13334
13389
|
var showCaret = function (direction, editor, node, before, scrollIntoView) {
|
@@ -13375,6 +13430,10 @@
|
|
13375
13430
|
}
|
13376
13431
|
return range;
|
13377
13432
|
};
|
13433
|
+
var moveToRange = function (editor, rng) {
|
13434
|
+
editor.selection.setRng(rng);
|
13435
|
+
ScrollIntoView.scrollRangeIntoView(editor, editor.selection.getRng());
|
13436
|
+
};
|
13378
13437
|
|
13379
13438
|
var trimEmptyTextNode$1 = function (dom, node) {
|
13380
13439
|
if (NodeType.isText(node) && node.data.length === 0) {
|
@@ -16508,10 +16567,7 @@
|
|
16508
16567
|
});
|
16509
16568
|
};
|
16510
16569
|
var hasAllContentsSelected = function (elm, rng) {
|
16511
|
-
return
|
16512
|
-
getStartNode(rng),
|
16513
|
-
getEndNode(rng)
|
16514
|
-
], function (startNode, endNode) {
|
16570
|
+
return lift2(getStartNode(rng), getEndNode(rng), function (startNode, endNode) {
|
16515
16571
|
var start = find(getFirstChildren(elm), curry(eq, startNode));
|
16516
16572
|
var end = find(getLastChildren$1(elm), curry(eq, endNode));
|
16517
16573
|
return start.isSome() && end.isSome();
|
@@ -16645,288 +16701,42 @@
|
|
16645
16701
|
};
|
16646
16702
|
}
|
16647
16703
|
|
16648
|
-
var
|
16649
|
-
|
16650
|
-
|
16651
|
-
|
16652
|
-
|
16653
|
-
|
16654
|
-
|
16655
|
-
|
16656
|
-
|
16657
|
-
|
16658
|
-
|
16659
|
-
|
16660
|
-
|
16661
|
-
|
16662
|
-
|
16663
|
-
|
16664
|
-
|
16665
|
-
var getScrollPosition = function (editor) {
|
16666
|
-
var body = editor.getBody();
|
16667
|
-
return editor.inline ? {
|
16668
|
-
left: body.scrollLeft,
|
16669
|
-
top: body.scrollTop
|
16670
|
-
} : {
|
16671
|
-
left: 0,
|
16672
|
-
top: 0
|
16673
|
-
};
|
16674
|
-
};
|
16675
|
-
var getBodyScroll = function (editor) {
|
16676
|
-
var body = editor.getBody(), docElm = editor.getDoc().documentElement;
|
16677
|
-
var inlineScroll = {
|
16678
|
-
left: body.scrollLeft,
|
16679
|
-
top: body.scrollTop
|
16680
|
-
};
|
16681
|
-
var iframeScroll = {
|
16682
|
-
left: body.scrollLeft || docElm.scrollLeft,
|
16683
|
-
top: body.scrollTop || docElm.scrollTop
|
16684
|
-
};
|
16685
|
-
return editor.inline ? inlineScroll : iframeScroll;
|
16686
|
-
};
|
16687
|
-
var getMousePosition = function (editor, event) {
|
16688
|
-
if (event.target.ownerDocument !== editor.getDoc()) {
|
16689
|
-
var iframePosition = getAbsolutePosition(editor.getContentAreaContainer());
|
16690
|
-
var scrollPosition = getBodyScroll(editor);
|
16691
|
-
return {
|
16692
|
-
left: event.pageX - iframePosition.left + scrollPosition.left,
|
16693
|
-
top: event.pageY - iframePosition.top + scrollPosition.top
|
16694
|
-
};
|
16704
|
+
var VK = {
|
16705
|
+
BACKSPACE: 8,
|
16706
|
+
DELETE: 46,
|
16707
|
+
DOWN: 40,
|
16708
|
+
ENTER: 13,
|
16709
|
+
LEFT: 37,
|
16710
|
+
RIGHT: 39,
|
16711
|
+
SPACEBAR: 32,
|
16712
|
+
TAB: 9,
|
16713
|
+
UP: 38,
|
16714
|
+
END: 35,
|
16715
|
+
HOME: 36,
|
16716
|
+
modifierPressed: function (e) {
|
16717
|
+
return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e);
|
16718
|
+
},
|
16719
|
+
metaKeyPressed: function (e) {
|
16720
|
+
return Env.mac ? e.metaKey : e.ctrlKey && !e.altKey;
|
16695
16721
|
}
|
16696
|
-
return {
|
16697
|
-
left: event.pageX,
|
16698
|
-
top: event.pageY
|
16699
|
-
};
|
16700
|
-
};
|
16701
|
-
var calculatePosition = function (bodyPosition, scrollPosition, mousePosition) {
|
16702
|
-
return {
|
16703
|
-
pageX: mousePosition.left - bodyPosition.left + scrollPosition.left,
|
16704
|
-
pageY: mousePosition.top - bodyPosition.top + scrollPosition.top
|
16705
|
-
};
|
16706
16722
|
};
|
16707
|
-
var calc = function (editor, event) {
|
16708
|
-
return calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));
|
16709
|
-
};
|
16710
|
-
var MousePosition = { calc: calc };
|
16711
16723
|
|
16712
|
-
var
|
16713
|
-
|
16714
|
-
|
16715
|
-
|
16716
|
-
|
16717
|
-
|
16718
|
-
|
16724
|
+
var getNodeClientRects = function (node) {
|
16725
|
+
var toArrayWithNode = function (clientRects) {
|
16726
|
+
return map(clientRects, function (clientRect) {
|
16727
|
+
clientRect = clone$1(clientRect);
|
16728
|
+
clientRect.node = node;
|
16729
|
+
return clientRect;
|
16730
|
+
});
|
16731
|
+
};
|
16732
|
+
if (NodeType.isElement(node)) {
|
16733
|
+
return toArrayWithNode(node.getClientRects());
|
16719
16734
|
}
|
16720
|
-
if (
|
16721
|
-
|
16722
|
-
|
16723
|
-
|
16724
|
-
|
16725
|
-
var cloneElement = function (elm) {
|
16726
|
-
var cloneElm = elm.cloneNode(true);
|
16727
|
-
cloneElm.removeAttribute('data-mce-selected');
|
16728
|
-
return cloneElm;
|
16729
|
-
};
|
16730
|
-
var createGhost = function (editor, elm, width, height) {
|
16731
|
-
var clonedElm = elm.cloneNode(true);
|
16732
|
-
editor.dom.setStyles(clonedElm, {
|
16733
|
-
width: width,
|
16734
|
-
height: height
|
16735
|
-
});
|
16736
|
-
editor.dom.setAttrib(clonedElm, 'data-mce-selected', null);
|
16737
|
-
var ghostElm = editor.dom.create('div', {
|
16738
|
-
'class': 'mce-drag-container',
|
16739
|
-
'data-mce-bogus': 'all',
|
16740
|
-
'unselectable': 'on',
|
16741
|
-
'contenteditable': 'false'
|
16742
|
-
});
|
16743
|
-
editor.dom.setStyles(ghostElm, {
|
16744
|
-
position: 'absolute',
|
16745
|
-
opacity: 0.5,
|
16746
|
-
overflow: 'hidden',
|
16747
|
-
border: 0,
|
16748
|
-
padding: 0,
|
16749
|
-
margin: 0,
|
16750
|
-
width: width,
|
16751
|
-
height: height
|
16752
|
-
});
|
16753
|
-
editor.dom.setStyles(clonedElm, {
|
16754
|
-
margin: 0,
|
16755
|
-
boxSizing: 'border-box'
|
16756
|
-
});
|
16757
|
-
ghostElm.appendChild(clonedElm);
|
16758
|
-
return ghostElm;
|
16759
|
-
};
|
16760
|
-
var appendGhostToBody = function (ghostElm, bodyElm) {
|
16761
|
-
if (ghostElm.parentNode !== bodyElm) {
|
16762
|
-
bodyElm.appendChild(ghostElm);
|
16763
|
-
}
|
16764
|
-
};
|
16765
|
-
var moveGhost = function (ghostElm, position, width, height, maxX, maxY) {
|
16766
|
-
var overflowX = 0, overflowY = 0;
|
16767
|
-
ghostElm.style.left = position.pageX + 'px';
|
16768
|
-
ghostElm.style.top = position.pageY + 'px';
|
16769
|
-
if (position.pageX + width > maxX) {
|
16770
|
-
overflowX = position.pageX + width - maxX;
|
16771
|
-
}
|
16772
|
-
if (position.pageY + height > maxY) {
|
16773
|
-
overflowY = position.pageY + height - maxY;
|
16774
|
-
}
|
16775
|
-
ghostElm.style.width = width - overflowX + 'px';
|
16776
|
-
ghostElm.style.height = height - overflowY + 'px';
|
16777
|
-
};
|
16778
|
-
var removeElement = function (elm) {
|
16779
|
-
if (elm && elm.parentNode) {
|
16780
|
-
elm.parentNode.removeChild(elm);
|
16781
|
-
}
|
16782
|
-
};
|
16783
|
-
var isLeftMouseButtonPressed = function (e) {
|
16784
|
-
return e.button === 0;
|
16785
|
-
};
|
16786
|
-
var hasDraggableElement = function (state) {
|
16787
|
-
return state.element;
|
16788
|
-
};
|
16789
|
-
var applyRelPos = function (state, position) {
|
16790
|
-
return {
|
16791
|
-
pageX: position.pageX - state.relX,
|
16792
|
-
pageY: position.pageY + 5
|
16793
|
-
};
|
16794
|
-
};
|
16795
|
-
var start$1 = function (state, editor) {
|
16796
|
-
return function (e) {
|
16797
|
-
if (isLeftMouseButtonPressed(e)) {
|
16798
|
-
var ceElm = find(editor.dom.getParents(e.target), Predicate.or(isContentEditableFalse$7, isContentEditableTrue$3)).getOr(null);
|
16799
|
-
if (isDraggable(editor.getBody(), ceElm)) {
|
16800
|
-
var elmPos = editor.dom.getPos(ceElm);
|
16801
|
-
var bodyElm = editor.getBody();
|
16802
|
-
var docElm = editor.getDoc().documentElement;
|
16803
|
-
state.element = ceElm;
|
16804
|
-
state.screenX = e.screenX;
|
16805
|
-
state.screenY = e.screenY;
|
16806
|
-
state.maxX = (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2;
|
16807
|
-
state.maxY = (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2;
|
16808
|
-
state.relX = e.pageX - elmPos.x;
|
16809
|
-
state.relY = e.pageY - elmPos.y;
|
16810
|
-
state.width = ceElm.offsetWidth;
|
16811
|
-
state.height = ceElm.offsetHeight;
|
16812
|
-
state.ghost = createGhost(editor, ceElm, state.width, state.height);
|
16813
|
-
}
|
16814
|
-
}
|
16815
|
-
};
|
16816
|
-
};
|
16817
|
-
var move$1 = function (state, editor) {
|
16818
|
-
var throttledPlaceCaretAt = Delay.throttle(function (clientX, clientY) {
|
16819
|
-
editor._selectionOverrides.hideFakeCaret();
|
16820
|
-
editor.selection.placeCaretAt(clientX, clientY);
|
16821
|
-
}, 0);
|
16822
|
-
return function (e) {
|
16823
|
-
var movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));
|
16824
|
-
if (hasDraggableElement(state) && !state.dragging && movement > 10) {
|
16825
|
-
var args = editor.fire('dragstart', { target: state.element });
|
16826
|
-
if (args.isDefaultPrevented()) {
|
16827
|
-
return;
|
16828
|
-
}
|
16829
|
-
state.dragging = true;
|
16830
|
-
editor.focus();
|
16831
|
-
}
|
16832
|
-
if (state.dragging) {
|
16833
|
-
var targetPos = applyRelPos(state, MousePosition.calc(editor, e));
|
16834
|
-
appendGhostToBody(state.ghost, editor.getBody());
|
16835
|
-
moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY);
|
16836
|
-
throttledPlaceCaretAt(e.clientX, e.clientY);
|
16837
|
-
}
|
16838
|
-
};
|
16839
|
-
};
|
16840
|
-
var getRawTarget = function (selection) {
|
16841
|
-
var rng = selection.getSel().getRangeAt(0);
|
16842
|
-
var startContainer = rng.startContainer;
|
16843
|
-
return startContainer.nodeType === 3 ? startContainer.parentNode : startContainer;
|
16844
|
-
};
|
16845
|
-
var drop = function (state, editor) {
|
16846
|
-
return function (e) {
|
16847
|
-
if (state.dragging) {
|
16848
|
-
if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) {
|
16849
|
-
var targetClone_1 = cloneElement(state.element);
|
16850
|
-
var args = editor.fire('drop', {
|
16851
|
-
targetClone: targetClone_1,
|
16852
|
-
clientX: e.clientX,
|
16853
|
-
clientY: e.clientY
|
16854
|
-
});
|
16855
|
-
if (!args.isDefaultPrevented()) {
|
16856
|
-
targetClone_1 = args.targetClone;
|
16857
|
-
editor.undoManager.transact(function () {
|
16858
|
-
removeElement(state.element);
|
16859
|
-
editor.insertContent(editor.dom.getOuterHTML(targetClone_1));
|
16860
|
-
editor._selectionOverrides.hideFakeCaret();
|
16861
|
-
});
|
16862
|
-
}
|
16863
|
-
}
|
16864
|
-
}
|
16865
|
-
removeDragState(state);
|
16866
|
-
};
|
16867
|
-
};
|
16868
|
-
var stop = function (state, editor) {
|
16869
|
-
return function () {
|
16870
|
-
if (state.dragging) {
|
16871
|
-
editor.fire('dragend');
|
16872
|
-
}
|
16873
|
-
removeDragState(state);
|
16874
|
-
};
|
16875
|
-
};
|
16876
|
-
var removeDragState = function (state) {
|
16877
|
-
state.dragging = false;
|
16878
|
-
state.element = null;
|
16879
|
-
removeElement(state.ghost);
|
16880
|
-
};
|
16881
|
-
var bindFakeDragEvents = function (editor) {
|
16882
|
-
var state = {};
|
16883
|
-
var pageDom, dragStartHandler, dragHandler, dropHandler, dragEndHandler, rootDocument;
|
16884
|
-
pageDom = DOMUtils$1.DOM;
|
16885
|
-
rootDocument = domGlobals.document;
|
16886
|
-
dragStartHandler = start$1(state, editor);
|
16887
|
-
dragHandler = move$1(state, editor);
|
16888
|
-
dropHandler = drop(state, editor);
|
16889
|
-
dragEndHandler = stop(state, editor);
|
16890
|
-
editor.on('mousedown', dragStartHandler);
|
16891
|
-
editor.on('mousemove', dragHandler);
|
16892
|
-
editor.on('mouseup', dropHandler);
|
16893
|
-
pageDom.bind(rootDocument, 'mousemove', dragHandler);
|
16894
|
-
pageDom.bind(rootDocument, 'mouseup', dragEndHandler);
|
16895
|
-
editor.on('remove', function () {
|
16896
|
-
pageDom.unbind(rootDocument, 'mousemove', dragHandler);
|
16897
|
-
pageDom.unbind(rootDocument, 'mouseup', dragEndHandler);
|
16898
|
-
});
|
16899
|
-
};
|
16900
|
-
var blockIeDrop = function (editor) {
|
16901
|
-
editor.on('drop', function (e) {
|
16902
|
-
var realTarget = typeof e.clientX !== 'undefined' ? editor.getDoc().elementFromPoint(e.clientX, e.clientY) : null;
|
16903
|
-
if (isContentEditableFalse$7(realTarget) || isContentEditableFalse$7(editor.dom.getContentEditableParent(realTarget))) {
|
16904
|
-
e.preventDefault();
|
16905
|
-
}
|
16906
|
-
});
|
16907
|
-
};
|
16908
|
-
var init = function (editor) {
|
16909
|
-
bindFakeDragEvents(editor);
|
16910
|
-
blockIeDrop(editor);
|
16911
|
-
};
|
16912
|
-
var DragDropOverrides = { init: init };
|
16913
|
-
|
16914
|
-
var getNodeClientRects = function (node) {
|
16915
|
-
var toArrayWithNode = function (clientRects) {
|
16916
|
-
return map(clientRects, function (clientRect) {
|
16917
|
-
clientRect = clone$1(clientRect);
|
16918
|
-
clientRect.node = node;
|
16919
|
-
return clientRect;
|
16920
|
-
});
|
16921
|
-
};
|
16922
|
-
if (NodeType.isElement(node)) {
|
16923
|
-
return toArrayWithNode(node.getClientRects());
|
16924
|
-
}
|
16925
|
-
if (NodeType.isText(node)) {
|
16926
|
-
var rng = node.ownerDocument.createRange();
|
16927
|
-
rng.setStart(node, 0);
|
16928
|
-
rng.setEnd(node, node.data.length);
|
16929
|
-
return toArrayWithNode(rng.getClientRects());
|
16735
|
+
if (NodeType.isText(node)) {
|
16736
|
+
var rng = node.ownerDocument.createRange();
|
16737
|
+
rng.setStart(node, 0);
|
16738
|
+
rng.setEnd(node, node.data.length);
|
16739
|
+
return toArrayWithNode(rng.getClientRects());
|
16930
16740
|
}
|
16931
16741
|
};
|
16932
16742
|
var getClientRects = function (node) {
|
@@ -17044,7 +16854,7 @@
|
|
17044
16854
|
};
|
17045
16855
|
};
|
17046
16856
|
|
17047
|
-
var isContentEditableFalse$
|
16857
|
+
var isContentEditableFalse$7 = NodeType.isContentEditableFalse;
|
17048
16858
|
var findNode$1 = findNode;
|
17049
16859
|
var distanceToRectLeft = function (clientRect, clientX) {
|
17050
16860
|
return Math.abs(clientRect.left - clientX);
|
@@ -17066,79 +16876,345 @@
|
|
17066
16876
|
if (isInside(clientX, oldClientRect)) {
|
17067
16877
|
return oldClientRect;
|
17068
16878
|
}
|
17069
|
-
if (newDistance === oldDistance && isContentEditableFalse$
|
16879
|
+
if (newDistance === oldDistance && isContentEditableFalse$7(clientRect.node)) {
|
17070
16880
|
return clientRect;
|
17071
16881
|
}
|
17072
16882
|
if (newDistance < oldDistance) {
|
17073
16883
|
return clientRect;
|
17074
16884
|
}
|
17075
|
-
return oldClientRect;
|
17076
|
-
});
|
16885
|
+
return oldClientRect;
|
16886
|
+
});
|
16887
|
+
};
|
16888
|
+
var walkUntil$1 = function (direction, root, predicateFn, node) {
|
16889
|
+
while (node = findNode$1(node, direction, isEditableCaretCandidate, root)) {
|
16890
|
+
if (predicateFn(node)) {
|
16891
|
+
return;
|
16892
|
+
}
|
16893
|
+
}
|
16894
|
+
};
|
16895
|
+
var findLineNodeRects = function (root, targetNodeRect) {
|
16896
|
+
var clientRects = [];
|
16897
|
+
var collect = function (checkPosFn, node) {
|
16898
|
+
var lineRects;
|
16899
|
+
lineRects = filter(getClientRects([node]), function (clientRect) {
|
16900
|
+
return !checkPosFn(clientRect, targetNodeRect);
|
16901
|
+
});
|
16902
|
+
clientRects = clientRects.concat(lineRects);
|
16903
|
+
return lineRects.length === 0;
|
16904
|
+
};
|
16905
|
+
clientRects.push(targetNodeRect);
|
16906
|
+
walkUntil$1(VDirection.Up, root, curry(collect, isAbove), targetNodeRect.node);
|
16907
|
+
walkUntil$1(VDirection.Down, root, curry(collect, isBelow), targetNodeRect.node);
|
16908
|
+
return clientRects;
|
16909
|
+
};
|
16910
|
+
var getFakeCaretTargets = function (root) {
|
16911
|
+
return filter(from$1(root.getElementsByTagName('*')), isFakeCaretTarget);
|
16912
|
+
};
|
16913
|
+
var caretInfo = function (clientRect, clientX) {
|
16914
|
+
return {
|
16915
|
+
node: clientRect.node,
|
16916
|
+
before: distanceToRectLeft(clientRect, clientX) < distanceToRectRight(clientRect, clientX)
|
16917
|
+
};
|
16918
|
+
};
|
16919
|
+
var closestCaret = function (root, clientX, clientY) {
|
16920
|
+
var closestNodeRect;
|
16921
|
+
var contentEditableFalseNodeRects = getClientRects(getFakeCaretTargets(root));
|
16922
|
+
var targetNodeRects = filter(contentEditableFalseNodeRects, function (rect) {
|
16923
|
+
return clientY >= rect.top && clientY <= rect.bottom;
|
16924
|
+
});
|
16925
|
+
closestNodeRect = findClosestClientRect(targetNodeRects, clientX);
|
16926
|
+
if (closestNodeRect) {
|
16927
|
+
closestNodeRect = findClosestClientRect(findLineNodeRects(root, closestNodeRect), clientX);
|
16928
|
+
if (closestNodeRect && isFakeCaretTarget(closestNodeRect.node)) {
|
16929
|
+
return caretInfo(closestNodeRect, clientX);
|
16930
|
+
}
|
16931
|
+
}
|
16932
|
+
return null;
|
16933
|
+
};
|
16934
|
+
|
16935
|
+
var isXYWithinRange = function (clientX, clientY, range) {
|
16936
|
+
if (range.collapsed) {
|
16937
|
+
return false;
|
16938
|
+
}
|
16939
|
+
if (Env.ie && Env.ie <= 11 && range.startOffset === range.endOffset - 1 && range.startContainer === range.endContainer) {
|
16940
|
+
var elm = range.startContainer.childNodes[range.startOffset];
|
16941
|
+
if (NodeType.isElement(elm)) {
|
16942
|
+
return exists(elm.getClientRects(), function (rect) {
|
16943
|
+
return containsXY(rect, clientX, clientY);
|
16944
|
+
});
|
16945
|
+
}
|
16946
|
+
}
|
16947
|
+
return exists(range.getClientRects(), function (rect) {
|
16948
|
+
return containsXY(rect, clientX, clientY);
|
16949
|
+
});
|
16950
|
+
};
|
16951
|
+
var RangePoint = { isXYWithinRange: isXYWithinRange };
|
16952
|
+
|
16953
|
+
var getAbsolutePosition = function (elm) {
|
16954
|
+
var doc, docElem, win, clientRect;
|
16955
|
+
clientRect = elm.getBoundingClientRect();
|
16956
|
+
doc = elm.ownerDocument;
|
16957
|
+
docElem = doc.documentElement;
|
16958
|
+
win = doc.defaultView;
|
16959
|
+
return {
|
16960
|
+
top: clientRect.top + win.pageYOffset - docElem.clientTop,
|
16961
|
+
left: clientRect.left + win.pageXOffset - docElem.clientLeft
|
16962
|
+
};
|
16963
|
+
};
|
16964
|
+
var getBodyPosition = function (editor) {
|
16965
|
+
return editor.inline ? getAbsolutePosition(editor.getBody()) : {
|
16966
|
+
left: 0,
|
16967
|
+
top: 0
|
16968
|
+
};
|
16969
|
+
};
|
16970
|
+
var getScrollPosition = function (editor) {
|
16971
|
+
var body = editor.getBody();
|
16972
|
+
return editor.inline ? {
|
16973
|
+
left: body.scrollLeft,
|
16974
|
+
top: body.scrollTop
|
16975
|
+
} : {
|
16976
|
+
left: 0,
|
16977
|
+
top: 0
|
16978
|
+
};
|
16979
|
+
};
|
16980
|
+
var getBodyScroll = function (editor) {
|
16981
|
+
var body = editor.getBody(), docElm = editor.getDoc().documentElement;
|
16982
|
+
var inlineScroll = {
|
16983
|
+
left: body.scrollLeft,
|
16984
|
+
top: body.scrollTop
|
16985
|
+
};
|
16986
|
+
var iframeScroll = {
|
16987
|
+
left: body.scrollLeft || docElm.scrollLeft,
|
16988
|
+
top: body.scrollTop || docElm.scrollTop
|
16989
|
+
};
|
16990
|
+
return editor.inline ? inlineScroll : iframeScroll;
|
16991
|
+
};
|
16992
|
+
var getMousePosition = function (editor, event) {
|
16993
|
+
if (event.target.ownerDocument !== editor.getDoc()) {
|
16994
|
+
var iframePosition = getAbsolutePosition(editor.getContentAreaContainer());
|
16995
|
+
var scrollPosition = getBodyScroll(editor);
|
16996
|
+
return {
|
16997
|
+
left: event.pageX - iframePosition.left + scrollPosition.left,
|
16998
|
+
top: event.pageY - iframePosition.top + scrollPosition.top
|
16999
|
+
};
|
17000
|
+
}
|
17001
|
+
return {
|
17002
|
+
left: event.pageX,
|
17003
|
+
top: event.pageY
|
17004
|
+
};
|
17005
|
+
};
|
17006
|
+
var calculatePosition = function (bodyPosition, scrollPosition, mousePosition) {
|
17007
|
+
return {
|
17008
|
+
pageX: mousePosition.left - bodyPosition.left + scrollPosition.left,
|
17009
|
+
pageY: mousePosition.top - bodyPosition.top + scrollPosition.top
|
17010
|
+
};
|
17011
|
+
};
|
17012
|
+
var calc = function (editor, event) {
|
17013
|
+
return calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));
|
17014
|
+
};
|
17015
|
+
var MousePosition = { calc: calc };
|
17016
|
+
|
17017
|
+
var isContentEditableFalse$8 = NodeType.isContentEditableFalse, isContentEditableTrue$3 = NodeType.isContentEditableTrue;
|
17018
|
+
var isDraggable = function (rootElm, elm) {
|
17019
|
+
return isContentEditableFalse$8(elm) && elm !== rootElm;
|
17020
|
+
};
|
17021
|
+
var isValidDropTarget = function (editor, targetElement, dragElement) {
|
17022
|
+
if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) {
|
17023
|
+
return false;
|
17024
|
+
}
|
17025
|
+
if (isContentEditableFalse$8(targetElement)) {
|
17026
|
+
return false;
|
17027
|
+
}
|
17028
|
+
return true;
|
17029
|
+
};
|
17030
|
+
var cloneElement = function (elm) {
|
17031
|
+
var cloneElm = elm.cloneNode(true);
|
17032
|
+
cloneElm.removeAttribute('data-mce-selected');
|
17033
|
+
return cloneElm;
|
17034
|
+
};
|
17035
|
+
var createGhost = function (editor, elm, width, height) {
|
17036
|
+
var clonedElm = elm.cloneNode(true);
|
17037
|
+
editor.dom.setStyles(clonedElm, {
|
17038
|
+
width: width,
|
17039
|
+
height: height
|
17040
|
+
});
|
17041
|
+
editor.dom.setAttrib(clonedElm, 'data-mce-selected', null);
|
17042
|
+
var ghostElm = editor.dom.create('div', {
|
17043
|
+
'class': 'mce-drag-container',
|
17044
|
+
'data-mce-bogus': 'all',
|
17045
|
+
'unselectable': 'on',
|
17046
|
+
'contenteditable': 'false'
|
17047
|
+
});
|
17048
|
+
editor.dom.setStyles(ghostElm, {
|
17049
|
+
position: 'absolute',
|
17050
|
+
opacity: 0.5,
|
17051
|
+
overflow: 'hidden',
|
17052
|
+
border: 0,
|
17053
|
+
padding: 0,
|
17054
|
+
margin: 0,
|
17055
|
+
width: width,
|
17056
|
+
height: height
|
17057
|
+
});
|
17058
|
+
editor.dom.setStyles(clonedElm, {
|
17059
|
+
margin: 0,
|
17060
|
+
boxSizing: 'border-box'
|
17061
|
+
});
|
17062
|
+
ghostElm.appendChild(clonedElm);
|
17063
|
+
return ghostElm;
|
17064
|
+
};
|
17065
|
+
var appendGhostToBody = function (ghostElm, bodyElm) {
|
17066
|
+
if (ghostElm.parentNode !== bodyElm) {
|
17067
|
+
bodyElm.appendChild(ghostElm);
|
17068
|
+
}
|
17069
|
+
};
|
17070
|
+
var moveGhost = function (ghostElm, position, width, height, maxX, maxY) {
|
17071
|
+
var overflowX = 0, overflowY = 0;
|
17072
|
+
ghostElm.style.left = position.pageX + 'px';
|
17073
|
+
ghostElm.style.top = position.pageY + 'px';
|
17074
|
+
if (position.pageX + width > maxX) {
|
17075
|
+
overflowX = position.pageX + width - maxX;
|
17076
|
+
}
|
17077
|
+
if (position.pageY + height > maxY) {
|
17078
|
+
overflowY = position.pageY + height - maxY;
|
17079
|
+
}
|
17080
|
+
ghostElm.style.width = width - overflowX + 'px';
|
17081
|
+
ghostElm.style.height = height - overflowY + 'px';
|
17082
|
+
};
|
17083
|
+
var removeElement = function (elm) {
|
17084
|
+
if (elm && elm.parentNode) {
|
17085
|
+
elm.parentNode.removeChild(elm);
|
17086
|
+
}
|
17087
|
+
};
|
17088
|
+
var isLeftMouseButtonPressed = function (e) {
|
17089
|
+
return e.button === 0;
|
17090
|
+
};
|
17091
|
+
var hasDraggableElement = function (state) {
|
17092
|
+
return state.element;
|
17093
|
+
};
|
17094
|
+
var applyRelPos = function (state, position) {
|
17095
|
+
return {
|
17096
|
+
pageX: position.pageX - state.relX,
|
17097
|
+
pageY: position.pageY + 5
|
17098
|
+
};
|
17099
|
+
};
|
17100
|
+
var start$1 = function (state, editor) {
|
17101
|
+
return function (e) {
|
17102
|
+
if (isLeftMouseButtonPressed(e)) {
|
17103
|
+
var ceElm = find(editor.dom.getParents(e.target), Predicate.or(isContentEditableFalse$8, isContentEditableTrue$3)).getOr(null);
|
17104
|
+
if (isDraggable(editor.getBody(), ceElm)) {
|
17105
|
+
var elmPos = editor.dom.getPos(ceElm);
|
17106
|
+
var bodyElm = editor.getBody();
|
17107
|
+
var docElm = editor.getDoc().documentElement;
|
17108
|
+
state.element = ceElm;
|
17109
|
+
state.screenX = e.screenX;
|
17110
|
+
state.screenY = e.screenY;
|
17111
|
+
state.maxX = (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2;
|
17112
|
+
state.maxY = (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2;
|
17113
|
+
state.relX = e.pageX - elmPos.x;
|
17114
|
+
state.relY = e.pageY - elmPos.y;
|
17115
|
+
state.width = ceElm.offsetWidth;
|
17116
|
+
state.height = ceElm.offsetHeight;
|
17117
|
+
state.ghost = createGhost(editor, ceElm, state.width, state.height);
|
17118
|
+
}
|
17119
|
+
}
|
17120
|
+
};
|
17121
|
+
};
|
17122
|
+
var move$1 = function (state, editor) {
|
17123
|
+
var throttledPlaceCaretAt = Delay.throttle(function (clientX, clientY) {
|
17124
|
+
editor._selectionOverrides.hideFakeCaret();
|
17125
|
+
editor.selection.placeCaretAt(clientX, clientY);
|
17126
|
+
}, 0);
|
17127
|
+
return function (e) {
|
17128
|
+
var movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));
|
17129
|
+
if (hasDraggableElement(state) && !state.dragging && movement > 10) {
|
17130
|
+
var args = editor.fire('dragstart', { target: state.element });
|
17131
|
+
if (args.isDefaultPrevented()) {
|
17132
|
+
return;
|
17133
|
+
}
|
17134
|
+
state.dragging = true;
|
17135
|
+
editor.focus();
|
17136
|
+
}
|
17137
|
+
if (state.dragging) {
|
17138
|
+
var targetPos = applyRelPos(state, MousePosition.calc(editor, e));
|
17139
|
+
appendGhostToBody(state.ghost, editor.getBody());
|
17140
|
+
moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY);
|
17141
|
+
throttledPlaceCaretAt(e.clientX, e.clientY);
|
17142
|
+
}
|
17143
|
+
};
|
17144
|
+
};
|
17145
|
+
var getRawTarget = function (selection) {
|
17146
|
+
var rng = selection.getSel().getRangeAt(0);
|
17147
|
+
var startContainer = rng.startContainer;
|
17148
|
+
return startContainer.nodeType === 3 ? startContainer.parentNode : startContainer;
|
17149
|
+
};
|
17150
|
+
var drop = function (state, editor) {
|
17151
|
+
return function (e) {
|
17152
|
+
if (state.dragging) {
|
17153
|
+
if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) {
|
17154
|
+
var targetClone_1 = cloneElement(state.element);
|
17155
|
+
var args = editor.fire('drop', {
|
17156
|
+
targetClone: targetClone_1,
|
17157
|
+
clientX: e.clientX,
|
17158
|
+
clientY: e.clientY
|
17159
|
+
});
|
17160
|
+
if (!args.isDefaultPrevented()) {
|
17161
|
+
targetClone_1 = args.targetClone;
|
17162
|
+
editor.undoManager.transact(function () {
|
17163
|
+
removeElement(state.element);
|
17164
|
+
editor.insertContent(editor.dom.getOuterHTML(targetClone_1));
|
17165
|
+
editor._selectionOverrides.hideFakeCaret();
|
17166
|
+
});
|
17167
|
+
}
|
17168
|
+
}
|
17169
|
+
}
|
17170
|
+
removeDragState(state);
|
17171
|
+
};
|
17077
17172
|
};
|
17078
|
-
var
|
17079
|
-
|
17080
|
-
if (
|
17081
|
-
|
17173
|
+
var stop = function (state, editor) {
|
17174
|
+
return function () {
|
17175
|
+
if (state.dragging) {
|
17176
|
+
editor.fire('dragend');
|
17082
17177
|
}
|
17083
|
-
|
17084
|
-
};
|
17085
|
-
var findLineNodeRects = function (root, targetNodeRect) {
|
17086
|
-
var clientRects = [];
|
17087
|
-
var collect = function (checkPosFn, node) {
|
17088
|
-
var lineRects;
|
17089
|
-
lineRects = filter(getClientRects([node]), function (clientRect) {
|
17090
|
-
return !checkPosFn(clientRect, targetNodeRect);
|
17091
|
-
});
|
17092
|
-
clientRects = clientRects.concat(lineRects);
|
17093
|
-
return lineRects.length === 0;
|
17178
|
+
removeDragState(state);
|
17094
17179
|
};
|
17095
|
-
clientRects.push(targetNodeRect);
|
17096
|
-
walkUntil$1(VDirection.Up, root, curry(collect, isAbove), targetNodeRect.node);
|
17097
|
-
walkUntil$1(VDirection.Down, root, curry(collect, isBelow), targetNodeRect.node);
|
17098
|
-
return clientRects;
|
17099
|
-
};
|
17100
|
-
var getFakeCaretTargets = function (root) {
|
17101
|
-
return filter(from$1(root.getElementsByTagName('*')), isFakeCaretTarget);
|
17102
17180
|
};
|
17103
|
-
var
|
17104
|
-
|
17105
|
-
|
17106
|
-
|
17107
|
-
};
|
17181
|
+
var removeDragState = function (state) {
|
17182
|
+
state.dragging = false;
|
17183
|
+
state.element = null;
|
17184
|
+
removeElement(state.ghost);
|
17108
17185
|
};
|
17109
|
-
var
|
17110
|
-
var
|
17111
|
-
var
|
17112
|
-
|
17113
|
-
|
17186
|
+
var bindFakeDragEvents = function (editor) {
|
17187
|
+
var state = {};
|
17188
|
+
var pageDom, dragStartHandler, dragHandler, dropHandler, dragEndHandler, rootDocument;
|
17189
|
+
pageDom = DOMUtils$1.DOM;
|
17190
|
+
rootDocument = domGlobals.document;
|
17191
|
+
dragStartHandler = start$1(state, editor);
|
17192
|
+
dragHandler = move$1(state, editor);
|
17193
|
+
dropHandler = drop(state, editor);
|
17194
|
+
dragEndHandler = stop(state, editor);
|
17195
|
+
editor.on('mousedown', dragStartHandler);
|
17196
|
+
editor.on('mousemove', dragHandler);
|
17197
|
+
editor.on('mouseup', dropHandler);
|
17198
|
+
pageDom.bind(rootDocument, 'mousemove', dragHandler);
|
17199
|
+
pageDom.bind(rootDocument, 'mouseup', dragEndHandler);
|
17200
|
+
editor.on('remove', function () {
|
17201
|
+
pageDom.unbind(rootDocument, 'mousemove', dragHandler);
|
17202
|
+
pageDom.unbind(rootDocument, 'mouseup', dragEndHandler);
|
17114
17203
|
});
|
17115
|
-
closestNodeRect = findClosestClientRect(targetNodeRects, clientX);
|
17116
|
-
if (closestNodeRect) {
|
17117
|
-
closestNodeRect = findClosestClientRect(findLineNodeRects(root, closestNodeRect), clientX);
|
17118
|
-
if (closestNodeRect && isFakeCaretTarget(closestNodeRect.node)) {
|
17119
|
-
return caretInfo(closestNodeRect, clientX);
|
17120
|
-
}
|
17121
|
-
}
|
17122
|
-
return null;
|
17123
17204
|
};
|
17124
|
-
|
17125
|
-
|
17126
|
-
|
17127
|
-
|
17128
|
-
|
17129
|
-
if (Env.ie && Env.ie <= 11 && range.startOffset === range.endOffset - 1 && range.startContainer === range.endContainer) {
|
17130
|
-
var elm = range.startContainer.childNodes[range.startOffset];
|
17131
|
-
if (NodeType.isElement(elm)) {
|
17132
|
-
return exists(elm.getClientRects(), function (rect) {
|
17133
|
-
return containsXY(rect, clientX, clientY);
|
17134
|
-
});
|
17205
|
+
var blockIeDrop = function (editor) {
|
17206
|
+
editor.on('drop', function (e) {
|
17207
|
+
var realTarget = typeof e.clientX !== 'undefined' ? editor.getDoc().elementFromPoint(e.clientX, e.clientY) : null;
|
17208
|
+
if (isContentEditableFalse$8(realTarget) || isContentEditableFalse$8(editor.dom.getContentEditableParent(realTarget))) {
|
17209
|
+
e.preventDefault();
|
17135
17210
|
}
|
17136
|
-
}
|
17137
|
-
return exists(range.getClientRects(), function (rect) {
|
17138
|
-
return containsXY(rect, clientX, clientY);
|
17139
17211
|
});
|
17140
17212
|
};
|
17141
|
-
var
|
17213
|
+
var init = function (editor) {
|
17214
|
+
bindFakeDragEvents(editor);
|
17215
|
+
blockIeDrop(editor);
|
17216
|
+
};
|
17217
|
+
var DragDropOverrides = { init: init };
|
17142
17218
|
|
17143
17219
|
var setup$4 = function (editor) {
|
17144
17220
|
var renderFocusCaret = first(function () {
|
@@ -17159,26 +17235,6 @@
|
|
17159
17235
|
};
|
17160
17236
|
var CefFocus = { setup: setup$4 };
|
17161
17237
|
|
17162
|
-
var VK = {
|
17163
|
-
BACKSPACE: 8,
|
17164
|
-
DELETE: 46,
|
17165
|
-
DOWN: 40,
|
17166
|
-
ENTER: 13,
|
17167
|
-
LEFT: 37,
|
17168
|
-
RIGHT: 39,
|
17169
|
-
SPACEBAR: 32,
|
17170
|
-
TAB: 9,
|
17171
|
-
UP: 38,
|
17172
|
-
END: 35,
|
17173
|
-
HOME: 36,
|
17174
|
-
modifierPressed: function (e) {
|
17175
|
-
return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e);
|
17176
|
-
},
|
17177
|
-
metaKeyPressed: function (e) {
|
17178
|
-
return Env.mac ? e.metaKey : e.ctrlKey && !e.altKey;
|
17179
|
-
}
|
17180
|
-
};
|
17181
|
-
|
17182
17238
|
var isContentEditableTrue$4 = NodeType.isContentEditableTrue;
|
17183
17239
|
var isContentEditableFalse$9 = NodeType.isContentEditableFalse;
|
17184
17240
|
var getContentEditableRoot$1 = function (editor, node) {
|
@@ -17377,8 +17433,8 @@
|
|
17377
17433
|
}
|
17378
17434
|
});
|
17379
17435
|
editor.on('setSelectionRange', function (e) {
|
17380
|
-
|
17381
|
-
rng = setContentEditableSelection(e.range, e.forward);
|
17436
|
+
e.range = normalizeShortEndedElementSelection(e.range);
|
17437
|
+
var rng = setContentEditableSelection(e.range, e.forward);
|
17382
17438
|
if (rng) {
|
17383
17439
|
e.range = rng;
|
17384
17440
|
}
|
@@ -17421,6 +17477,33 @@
|
|
17421
17477
|
var isRangeInCaretContainer = function (rng) {
|
17422
17478
|
return isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer);
|
17423
17479
|
};
|
17480
|
+
var normalizeShortEndedElementSelection = function (rng) {
|
17481
|
+
var shortEndedElements = editor.schema.getShortEndedElements();
|
17482
|
+
var newRng = editor.dom.createRng();
|
17483
|
+
var startContainer = rng.startContainer;
|
17484
|
+
var startOffset = rng.startOffset;
|
17485
|
+
var endContainer = rng.endContainer;
|
17486
|
+
var endOffset = rng.endOffset;
|
17487
|
+
if (has(shortEndedElements, startContainer.nodeName.toLowerCase())) {
|
17488
|
+
if (startOffset === 0) {
|
17489
|
+
newRng.setStartBefore(startContainer);
|
17490
|
+
} else {
|
17491
|
+
newRng.setStartAfter(startContainer);
|
17492
|
+
}
|
17493
|
+
} else {
|
17494
|
+
newRng.setStart(startContainer, startOffset);
|
17495
|
+
}
|
17496
|
+
if (has(shortEndedElements, endContainer.nodeName.toLowerCase())) {
|
17497
|
+
if (endOffset === 0) {
|
17498
|
+
newRng.setEndBefore(endContainer);
|
17499
|
+
} else {
|
17500
|
+
newRng.setEndAfter(endContainer);
|
17501
|
+
}
|
17502
|
+
} else {
|
17503
|
+
newRng.setEnd(endContainer, endOffset);
|
17504
|
+
}
|
17505
|
+
return newRng;
|
17506
|
+
};
|
17424
17507
|
var setContentEditableSelection = function (range, forward) {
|
17425
17508
|
var node;
|
17426
17509
|
var $ = editor.$;
|
@@ -17541,7 +17624,11 @@
|
|
17541
17624
|
return name.indexOf('data-') === 0 || name.indexOf('aria-') === 0;
|
17542
17625
|
};
|
17543
17626
|
var trimComments = function (text) {
|
17544
|
-
|
17627
|
+
var sanitizedText = text;
|
17628
|
+
while (/<!--|--!?>/g.test(sanitizedText)) {
|
17629
|
+
sanitizedText = sanitizedText.replace(/<!--|--!?>/g, '');
|
17630
|
+
}
|
17631
|
+
return sanitizedText;
|
17545
17632
|
};
|
17546
17633
|
var isInvalidUri = function (settings, uri) {
|
17547
17634
|
if (settings.allow_html_data_urls) {
|
@@ -17679,7 +17766,7 @@
|
|
17679
17766
|
value: value
|
17680
17767
|
});
|
17681
17768
|
};
|
17682
|
-
tokenRegExp = new RegExp('<(?:' + '(?:!--([\\w\\W]*?)
|
17769
|
+
tokenRegExp = new RegExp('<(?:' + '(?:!--([\\w\\W]*?)--!?>)|' + '(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|' + '(?:!DOCTYPE([\\w\\W]*?)>)|' + '(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|' + '(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|' + '(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\\/|\\s+)>)' + ')', 'g');
|
17683
17770
|
attrRegExp = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g;
|
17684
17771
|
shortEndedElements = schema.getShortEndedElements();
|
17685
17772
|
selfClosing = settings.self_closing_elements || schema.getSelfClosingElements();
|
@@ -20426,7 +20513,7 @@
|
|
20426
20513
|
var blockElements = Tools.extend({}, schema.getBlockElements());
|
20427
20514
|
var nonEmptyElements = schema.getNonEmptyElements();
|
20428
20515
|
var parent, lastParent, prev, prevName;
|
20429
|
-
var whiteSpaceElements = schema.
|
20516
|
+
var whiteSpaceElements = schema.getWhiteSpaceElements();
|
20430
20517
|
var elementRule, textNode;
|
20431
20518
|
blockElements.body = 1;
|
20432
20519
|
for (i = 0; i < l; i++) {
|
@@ -21501,99 +21588,6 @@
|
|
21501
21588
|
};
|
21502
21589
|
};
|
21503
21590
|
|
21504
|
-
var getPos$1 = function (elm) {
|
21505
|
-
var x = 0, y = 0;
|
21506
|
-
var offsetParent = elm;
|
21507
|
-
while (offsetParent && offsetParent.nodeType) {
|
21508
|
-
x += offsetParent.offsetLeft || 0;
|
21509
|
-
y += offsetParent.offsetTop || 0;
|
21510
|
-
offsetParent = offsetParent.offsetParent;
|
21511
|
-
}
|
21512
|
-
return {
|
21513
|
-
x: x,
|
21514
|
-
y: y
|
21515
|
-
};
|
21516
|
-
};
|
21517
|
-
var fireScrollIntoViewEvent = function (editor, elm, alignToTop) {
|
21518
|
-
var scrollEvent = {
|
21519
|
-
elm: elm,
|
21520
|
-
alignToTop: alignToTop
|
21521
|
-
};
|
21522
|
-
editor.fire('scrollIntoView', scrollEvent);
|
21523
|
-
return scrollEvent.isDefaultPrevented();
|
21524
|
-
};
|
21525
|
-
var scrollElementIntoView = function (editor, elm, alignToTop) {
|
21526
|
-
var y, viewPort;
|
21527
|
-
var dom = editor.dom;
|
21528
|
-
var root = dom.getRoot();
|
21529
|
-
var viewPortY, viewPortH, offsetY = 0;
|
21530
|
-
if (fireScrollIntoViewEvent(editor, elm, alignToTop)) {
|
21531
|
-
return;
|
21532
|
-
}
|
21533
|
-
if (!NodeType.isElement(elm)) {
|
21534
|
-
return;
|
21535
|
-
}
|
21536
|
-
if (alignToTop === false) {
|
21537
|
-
offsetY = elm.offsetHeight;
|
21538
|
-
}
|
21539
|
-
if (root.nodeName !== 'BODY') {
|
21540
|
-
var scrollContainer = editor.selection.getScrollContainer();
|
21541
|
-
if (scrollContainer) {
|
21542
|
-
y = getPos$1(elm).y - getPos$1(scrollContainer).y + offsetY;
|
21543
|
-
viewPortH = scrollContainer.clientHeight;
|
21544
|
-
viewPortY = scrollContainer.scrollTop;
|
21545
|
-
if (y < viewPortY || y + 25 > viewPortY + viewPortH) {
|
21546
|
-
scrollContainer.scrollTop = y < viewPortY ? y : y - viewPortH + 25;
|
21547
|
-
}
|
21548
|
-
return;
|
21549
|
-
}
|
21550
|
-
}
|
21551
|
-
viewPort = dom.getViewPort(editor.getWin());
|
21552
|
-
y = dom.getPos(elm).y + offsetY;
|
21553
|
-
viewPortY = viewPort.y;
|
21554
|
-
viewPortH = viewPort.h;
|
21555
|
-
if (y < viewPort.y || y + 25 > viewPortY + viewPortH) {
|
21556
|
-
editor.getWin().scrollTo(0, y < viewPortY ? y : y - viewPortH + 25);
|
21557
|
-
}
|
21558
|
-
};
|
21559
|
-
var getViewPortRect = function (editor) {
|
21560
|
-
if (editor.inline) {
|
21561
|
-
return editor.getBody().getBoundingClientRect();
|
21562
|
-
} else {
|
21563
|
-
var win = editor.getWin();
|
21564
|
-
return {
|
21565
|
-
left: 0,
|
21566
|
-
right: win.innerWidth,
|
21567
|
-
top: 0,
|
21568
|
-
bottom: win.innerHeight,
|
21569
|
-
width: win.innerWidth,
|
21570
|
-
height: win.innerHeight
|
21571
|
-
};
|
21572
|
-
}
|
21573
|
-
};
|
21574
|
-
var scrollBy = function (editor, dx, dy) {
|
21575
|
-
if (editor.inline) {
|
21576
|
-
editor.getBody().scrollLeft += dx;
|
21577
|
-
editor.getBody().scrollTop += dy;
|
21578
|
-
} else {
|
21579
|
-
editor.getWin().scrollBy(dx, dy);
|
21580
|
-
}
|
21581
|
-
};
|
21582
|
-
var scrollRangeIntoView = function (editor, rng) {
|
21583
|
-
head(CaretPosition.fromRangeStart(rng).getClientRects()).each(function (rngRect) {
|
21584
|
-
var bodyRect = getViewPortRect(editor);
|
21585
|
-
var overflow = getOverflow(bodyRect, rngRect);
|
21586
|
-
var margin = 4;
|
21587
|
-
var dx = overflow.x > 0 ? overflow.x + margin : overflow.x - margin;
|
21588
|
-
var dy = overflow.y > 0 ? overflow.y + margin : overflow.y - margin;
|
21589
|
-
scrollBy(editor, overflow.x !== 0 ? dx : 0, overflow.y !== 0 ? dy : 0);
|
21590
|
-
});
|
21591
|
-
};
|
21592
|
-
var ScrollIntoView = {
|
21593
|
-
scrollElementIntoView: scrollElementIntoView,
|
21594
|
-
scrollRangeIntoView: scrollRangeIntoView
|
21595
|
-
};
|
21596
|
-
|
21597
21591
|
var hasCeProperty = function (node) {
|
21598
21592
|
return NodeType.isContentEditableTrue(node) || NodeType.isContentEditableFalse(node);
|
21599
21593
|
};
|
@@ -21912,22 +21906,37 @@
|
|
21912
21906
|
};
|
21913
21907
|
var GetSelectionContent = { getContent: getContent };
|
21914
21908
|
|
21909
|
+
var setupArgs = function (args, content) {
|
21910
|
+
return __assign(__assign({ format: 'html' }, args), {
|
21911
|
+
set: true,
|
21912
|
+
selection: true,
|
21913
|
+
content: content
|
21914
|
+
});
|
21915
|
+
};
|
21916
|
+
var cleanContent = function (editor, args) {
|
21917
|
+
if (args.format !== 'raw') {
|
21918
|
+
var node = editor.parser.parse(args.content, __assign({
|
21919
|
+
isRootContent: true,
|
21920
|
+
forced_root_block: false
|
21921
|
+
}, args));
|
21922
|
+
return HtmlSerializer({ validate: editor.validate }, editor.schema).serialize(node);
|
21923
|
+
} else {
|
21924
|
+
return args.content;
|
21925
|
+
}
|
21926
|
+
};
|
21915
21927
|
var setContent = function (editor, content, args) {
|
21928
|
+
var contentArgs = setupArgs(args, content);
|
21916
21929
|
var rng = editor.selection.getRng(), caretNode;
|
21917
21930
|
var doc = editor.getDoc();
|
21918
21931
|
var frag, temp;
|
21919
|
-
|
21920
|
-
|
21921
|
-
|
21922
|
-
|
21923
|
-
if (!args.no_events) {
|
21924
|
-
args = editor.fire('BeforeSetContent', args);
|
21925
|
-
if (args.isDefaultPrevented()) {
|
21926
|
-
editor.fire('SetContent', args);
|
21932
|
+
if (!contentArgs.no_events) {
|
21933
|
+
contentArgs = editor.fire('BeforeSetContent', contentArgs);
|
21934
|
+
if (contentArgs.isDefaultPrevented()) {
|
21935
|
+
editor.fire('SetContent', contentArgs);
|
21927
21936
|
return;
|
21928
21937
|
}
|
21929
21938
|
}
|
21930
|
-
content =
|
21939
|
+
content = cleanContent(editor, contentArgs);
|
21931
21940
|
if (rng.insertNode) {
|
21932
21941
|
content += '<span id="__caret">_</span>';
|
21933
21942
|
if (rng.startContainer === doc && rng.endContainer === doc) {
|
@@ -21959,19 +21968,20 @@
|
|
21959
21968
|
} catch (ex) {
|
21960
21969
|
}
|
21961
21970
|
} else {
|
21962
|
-
|
21971
|
+
var anyRng = rng;
|
21972
|
+
if (anyRng.item) {
|
21963
21973
|
doc.execCommand('Delete', false, null);
|
21964
|
-
|
21974
|
+
anyRng = editor.selection.getRng();
|
21965
21975
|
}
|
21966
21976
|
if (/^\s+/.test(content)) {
|
21967
|
-
|
21977
|
+
anyRng.pasteHTML('<span id="__mce_tmp">_</span>' + content);
|
21968
21978
|
editor.dom.remove('__mce_tmp');
|
21969
21979
|
} else {
|
21970
|
-
|
21980
|
+
anyRng.pasteHTML(content);
|
21971
21981
|
}
|
21972
21982
|
}
|
21973
|
-
if (!
|
21974
|
-
editor.fire('SetContent',
|
21983
|
+
if (!contentArgs.no_events) {
|
21984
|
+
editor.fire('SetContent', contentArgs);
|
21975
21985
|
}
|
21976
21986
|
};
|
21977
21987
|
var SetSelectionContent = { setContent: setContent };
|
@@ -22479,10 +22489,7 @@
|
|
22479
22489
|
return acc.fold(function () {
|
22480
22490
|
return Option.some(newPos);
|
22481
22491
|
}, function (lastPos) {
|
22482
|
-
return
|
22483
|
-
head(lastPos.getClientRects()),
|
22484
|
-
head(newPos.getClientRects())
|
22485
|
-
], function (lastRect, newRect) {
|
22492
|
+
return lift2(head(lastPos.getClientRects()), head(newPos.getClientRects()), function (lastRect, newRect) {
|
22486
22493
|
var lastDist = Math.abs(x - lastRect.left);
|
22487
22494
|
var newDist = Math.abs(x - newRect.left);
|
22488
22495
|
return newDist <= lastDist ? newPos : lastPos;
|
@@ -22663,7 +22670,7 @@
|
|
22663
22670
|
return function () {
|
22664
22671
|
var newRng = getHorizontalRange(editor, forward);
|
22665
22672
|
if (newRng) {
|
22666
|
-
editor
|
22673
|
+
moveToRange(editor, newRng);
|
22667
22674
|
return true;
|
22668
22675
|
} else {
|
22669
22676
|
return false;
|
@@ -22674,7 +22681,7 @@
|
|
22674
22681
|
return function () {
|
22675
22682
|
var newRng = getVerticalRange(editor, down);
|
22676
22683
|
if (newRng) {
|
22677
|
-
editor
|
22684
|
+
moveToRange(editor, newRng);
|
22678
22685
|
return true;
|
22679
22686
|
} else {
|
22680
22687
|
return false;
|
@@ -22776,10 +22783,6 @@
|
|
22776
22783
|
});
|
22777
22784
|
};
|
22778
22785
|
|
22779
|
-
var moveToRange = function (editor, rng) {
|
22780
|
-
editor.selection.setRng(rng);
|
22781
|
-
ScrollIntoView.scrollRangeIntoView(editor, rng);
|
22782
|
-
};
|
22783
22786
|
var hasNextBreak = function (getPositionsUntil, scope, lineInfo) {
|
22784
22787
|
return lineInfo.breakAt.map(function (breakPos) {
|
22785
22788
|
return getPositionsUntil(scope, breakPos).breakAt.isSome();
|
@@ -23430,10 +23433,41 @@
|
|
23430
23433
|
}
|
23431
23434
|
return parent !== root ? editableRoot : root;
|
23432
23435
|
};
|
23436
|
+
var applyAttributes = function (editor, node, forcedRootBlockAttrs) {
|
23437
|
+
Option.from(forcedRootBlockAttrs.style).map(editor.dom.parseStyle).each(function (attrStyles) {
|
23438
|
+
var currentStyles = getAllRaw(Element.fromDom(node));
|
23439
|
+
var newStyles = __assign(__assign({}, currentStyles), attrStyles);
|
23440
|
+
editor.dom.setStyles(node, newStyles);
|
23441
|
+
});
|
23442
|
+
var attrClassesOpt = Option.from(forcedRootBlockAttrs.class).map(function (attrClasses) {
|
23443
|
+
return attrClasses.split(/\s+/);
|
23444
|
+
});
|
23445
|
+
var currentClassesOpt = Option.from(node.className).map(function (currentClasses) {
|
23446
|
+
return filter(currentClasses.split(/\s+/), function (clazz) {
|
23447
|
+
return clazz !== '';
|
23448
|
+
});
|
23449
|
+
});
|
23450
|
+
lift2(attrClassesOpt, currentClassesOpt, function (attrClasses, currentClasses) {
|
23451
|
+
var filteredClasses = filter(currentClasses, function (clazz) {
|
23452
|
+
return !contains(attrClasses, clazz);
|
23453
|
+
});
|
23454
|
+
var newClasses = __spreadArrays(attrClasses, filteredClasses);
|
23455
|
+
editor.dom.setAttrib(node, 'class', newClasses.join(' '));
|
23456
|
+
});
|
23457
|
+
var appliedAttrs = [
|
23458
|
+
'style',
|
23459
|
+
'class'
|
23460
|
+
];
|
23461
|
+
var remainingAttrs = bifilter(forcedRootBlockAttrs, function (_, attrs) {
|
23462
|
+
return !contains(appliedAttrs, attrs);
|
23463
|
+
}).t;
|
23464
|
+
editor.dom.setAttribs(node, remainingAttrs);
|
23465
|
+
};
|
23433
23466
|
var setForcedBlockAttrs = function (editor, node) {
|
23434
23467
|
var forcedRootBlockName = Settings.getForcedRootBlock(editor);
|
23435
23468
|
if (forcedRootBlockName && forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {
|
23436
|
-
|
23469
|
+
var forcedRootBlockAttrs = Settings.getForcedRootBlockAttrs(editor);
|
23470
|
+
applyAttributes(editor, node, forcedRootBlockAttrs);
|
23437
23471
|
}
|
23438
23472
|
};
|
23439
23473
|
var wrapSelfAndSiblingsInDefaultBlock = function (editor, newBlockName, rng, container, offset) {
|
@@ -23499,7 +23533,6 @@
|
|
23499
23533
|
var textInlineElements = schema.getTextInlineElements();
|
23500
23534
|
if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') {
|
23501
23535
|
block = dom.create(name || newBlockName);
|
23502
|
-
setForcedBlockAttrs(editor, block);
|
23503
23536
|
} else {
|
23504
23537
|
block = parentBlock.cloneNode(false);
|
23505
23538
|
}
|
@@ -23525,6 +23558,7 @@
|
|
23525
23558
|
}
|
23526
23559
|
} while ((node = node.parentNode) && node !== editableRoot);
|
23527
23560
|
}
|
23561
|
+
setForcedBlockAttrs(editor, block);
|
23528
23562
|
emptyBlock(caretNode);
|
23529
23563
|
return block;
|
23530
23564
|
};
|
@@ -23631,6 +23665,7 @@
|
|
23631
23665
|
if (dom.isEmpty(parentBlock)) {
|
23632
23666
|
emptyBlock(parentBlock);
|
23633
23667
|
}
|
23668
|
+
setForcedBlockAttrs(editor, newBlock);
|
23634
23669
|
NewLineUtils.moveToCaretPosition(editor, newBlock);
|
23635
23670
|
} else if (isCaretAtStartOrEndOfBlock()) {
|
23636
23671
|
insertNewBlockAfter();
|
@@ -23655,6 +23690,7 @@
|
|
23655
23690
|
dom.remove(newBlock);
|
23656
23691
|
insertNewBlockAfter();
|
23657
23692
|
} else {
|
23693
|
+
setForcedBlockAttrs(editor, newBlock);
|
23658
23694
|
NewLineUtils.moveToCaretPosition(editor, newBlock);
|
23659
23695
|
}
|
23660
23696
|
}
|
@@ -23953,7 +23989,8 @@
|
|
23953
23989
|
return NodeType.isText(container) && contains$2(container.data, nbsp);
|
23954
23990
|
};
|
23955
23991
|
var normalizeNbspMiddle = function (text) {
|
23956
|
-
|
23992
|
+
var chars = text.split('');
|
23993
|
+
return map(chars, function (chr, i) {
|
23957
23994
|
if (isNbsp(chr) && i > 0 && i < chars.length - 1 && isContent$1(chars[i - 1]) && isContent$1(chars[i + 1])) {
|
23958
23995
|
return ' ';
|
23959
23996
|
} else {
|
@@ -26344,15 +26381,15 @@
|
|
26344
26381
|
defaultSettings: {},
|
26345
26382
|
$: DomQuery,
|
26346
26383
|
majorVersion: '4',
|
26347
|
-
minorVersion: '9.
|
26348
|
-
releaseDate: '
|
26384
|
+
minorVersion: '9.11',
|
26385
|
+
releaseDate: '2020-07-13',
|
26349
26386
|
editors: legacyEditors,
|
26350
26387
|
i18n: I18n,
|
26351
26388
|
activeEditor: null,
|
26352
26389
|
settings: {},
|
26353
26390
|
setup: function () {
|
26354
26391
|
var self = this;
|
26355
|
-
var baseURL, documentBaseURL, suffix = ''
|
26392
|
+
var baseURL, documentBaseURL, suffix = '';
|
26356
26393
|
documentBaseURL = URI.getDocumentBaseUrl(domGlobals.document.location);
|
26357
26394
|
if (/^[^:]+:\/\/\/?[^\/]+\//.test(documentBaseURL)) {
|
26358
26395
|
documentBaseURL = documentBaseURL.replace(/[\?#].*$/, '').replace(/[\/\\][^\/]+$/, '');
|
@@ -26360,14 +26397,17 @@
|
|
26360
26397
|
documentBaseURL += '/';
|
26361
26398
|
}
|
26362
26399
|
}
|
26363
|
-
preInit = window.tinymce || window.tinyMCEPreInit;
|
26400
|
+
var preInit = window.tinymce || window.tinyMCEPreInit;
|
26364
26401
|
if (preInit) {
|
26365
26402
|
baseURL = preInit.base || preInit.baseURL;
|
26366
26403
|
suffix = preInit.suffix;
|
26367
26404
|
} else {
|
26368
26405
|
var scripts = domGlobals.document.getElementsByTagName('script');
|
26369
26406
|
for (var i = 0; i < scripts.length; i++) {
|
26370
|
-
src = scripts[i].src;
|
26407
|
+
var src = scripts[i].src || '';
|
26408
|
+
if (src === '') {
|
26409
|
+
continue;
|
26410
|
+
}
|
26371
26411
|
var srcScript = src.substring(src.lastIndexOf('/'));
|
26372
26412
|
if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(src)) {
|
26373
26413
|
if (srcScript.indexOf('.min') !== -1) {
|
@@ -26378,7 +26418,7 @@
|
|
26378
26418
|
}
|
26379
26419
|
}
|
26380
26420
|
if (!baseURL && domGlobals.document.currentScript) {
|
26381
|
-
src = domGlobals.document.currentScript.src;
|
26421
|
+
var src = domGlobals.document.currentScript.src;
|
26382
26422
|
if (src.indexOf('.min') !== -1) {
|
26383
26423
|
suffix = '.min';
|
26384
26424
|
}
|