tinymce-rails 5.0.9 → 5.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/source/tinymce/tinymce.js +468 -925
  3. data/lib/tinymce/rails/version.rb +2 -2
  4. data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +1 -1
  5. data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.js +1 -1
  6. data/vendor/assets/javascripts/tinymce/plugins/autolink/plugin.js +1 -1
  7. data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.js +1 -1
  8. data/vendor/assets/javascripts/tinymce/plugins/autosave/plugin.js +1 -1
  9. data/vendor/assets/javascripts/tinymce/plugins/bbcode/plugin.js +1 -1
  10. data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.js +2 -2
  11. data/vendor/assets/javascripts/tinymce/plugins/code/plugin.js +1 -1
  12. data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.js +2 -2
  13. data/vendor/assets/javascripts/tinymce/plugins/colorpicker/plugin.js +1 -1
  14. data/vendor/assets/javascripts/tinymce/plugins/contextmenu/plugin.js +1 -1
  15. data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.js +2 -2
  16. data/vendor/assets/javascripts/tinymce/plugins/emoticons/plugin.js +2 -2
  17. data/vendor/assets/javascripts/tinymce/plugins/fullpage/plugin.js +1 -1
  18. data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +2 -2
  19. data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +2 -2
  20. data/vendor/assets/javascripts/tinymce/plugins/hr/plugin.js +1 -1
  21. data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +2 -2
  22. data/vendor/assets/javascripts/tinymce/plugins/imagetools/plugin.js +2 -2
  23. data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +2 -2
  24. data/vendor/assets/javascripts/tinymce/plugins/insertdatetime/plugin.js +1 -1
  25. data/vendor/assets/javascripts/tinymce/plugins/legacyoutput/plugin.js +1 -1
  26. data/vendor/assets/javascripts/tinymce/plugins/link/plugin.js +2 -2
  27. data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +2 -2
  28. data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +2 -2
  29. data/vendor/assets/javascripts/tinymce/plugins/nonbreaking/plugin.js +1 -1
  30. data/vendor/assets/javascripts/tinymce/plugins/noneditable/plugin.js +1 -1
  31. data/vendor/assets/javascripts/tinymce/plugins/pagebreak/plugin.js +1 -1
  32. data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +2 -2
  33. data/vendor/assets/javascripts/tinymce/plugins/preview/plugin.js +1 -1
  34. data/vendor/assets/javascripts/tinymce/plugins/print/plugin.js +1 -1
  35. data/vendor/assets/javascripts/tinymce/plugins/quickbars/plugin.js +2 -2
  36. data/vendor/assets/javascripts/tinymce/plugins/save/plugin.js +1 -1
  37. data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +2 -2
  38. data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +1 -1
  39. data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.js +1 -1
  40. data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +2 -2
  41. data/vendor/assets/javascripts/tinymce/plugins/template/plugin.js +2 -2
  42. data/vendor/assets/javascripts/tinymce/plugins/textcolor/plugin.js +1 -1
  43. data/vendor/assets/javascripts/tinymce/plugins/textpattern/plugin.js +2 -2
  44. data/vendor/assets/javascripts/tinymce/plugins/toc/plugin.js +1 -1
  45. data/vendor/assets/javascripts/tinymce/plugins/visualblocks/plugin.js +1 -1
  46. data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +2 -2
  47. data/vendor/assets/javascripts/tinymce/plugins/wordcount/plugin.js +2 -2
  48. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.css +1 -1
  49. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.css +1 -1
  50. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  51. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  52. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/{tinymce-mobile.woff → fonts/tinymce-mobile.woff} +0 -0
  53. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.css +1 -1
  54. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  55. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.css +1 -1
  56. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.css +1 -1
  57. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  58. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.min.css +1 -1
  59. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.css +1 -1
  60. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.min.css +1 -1
  61. data/vendor/assets/javascripts/tinymce/themes/mobile/theme.js +2 -2
  62. data/vendor/assets/javascripts/tinymce/themes/silver/theme.js +2 -2
  63. data/vendor/assets/javascripts/tinymce/tinymce.js +2 -2
  64. metadata +3 -4
  65. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/tinymce-mobile.woff +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b4b337972d39d3ac9e105de1b323083d52c654dcb3b127156f12a5f3ef0f93b
4
- data.tar.gz: 1e2c278b7aa341bb3517a31eb77e182a40f3026f02a7fd4d98c0d6bdc8759717
3
+ metadata.gz: 5a6a7c2733242504df5c36db41e68fe5f7b14e5b9b5bad7d2003421190b14fa1
4
+ data.tar.gz: 7b29f89ef267a5bfc0e75b3f38d8f8920a7cd55de994a36d7a6193a5699315a7
5
5
  SHA512:
6
- metadata.gz: 31369d3ba439cbc04b4006d621c777a20ccbd0417d2bd175f119e92aa66210157bd3edfc584aa4fa828c9c493df27103f46197019e99326a539e92b01361151c
7
- data.tar.gz: c2c192c1c0203280ebac10ea212f1490ba368c8d34e051d24836a9886e83fccdd5c5b8d0dd1cc11227d512c8f7d648c3a19f50ada78d9240400321af02465777
6
+ metadata.gz: dd9dab4a34b8383cc9838b65cb8df57d714deb4a1ac16181d54cb19b04a518b420209996da2988b438e8fba35e56323dcacc04cecab61fc244fe28103ed577c1
7
+ data.tar.gz: 338498b4538ff5307fc39c5d52f8f7352c807e178952cced4169505a91ea676c147f4f16677fdd09b838a12c50010e092da65003ad01f5ee179e5cb28af5f5f0
@@ -4,18 +4,13 @@
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.0.9 (2019-06-26)
7
+ * Version: 5.0.10 (2019-07-02)
8
8
  */
9
9
  (function (domGlobals) {
10
10
  'use strict';
11
11
 
12
12
  var noop = function () {
13
13
  };
14
- var noarg = function (f) {
15
- return function () {
16
- return f();
17
- };
18
- };
19
14
  var compose = function (fa, fb) {
20
15
  return function () {
21
16
  var args = [];
@@ -33,9 +28,6 @@
33
28
  var identity = function (x) {
34
29
  return x;
35
30
  };
36
- var tripleEquals = function (a, b) {
37
- return a === b;
38
- };
39
31
  function curry(fn) {
40
32
  var initialArgs = [];
41
33
  for (var _i = 1; _i < arguments.length; _i++) {
@@ -64,31 +56,9 @@
64
56
  throw new Error(msg);
65
57
  };
66
58
  };
67
- var apply = function (f) {
68
- return f();
69
- };
70
- var call = function (f) {
71
- f();
72
- };
73
59
  var never = constant(false);
74
60
  var always = constant(true);
75
61
 
76
- var Fun = /*#__PURE__*/Object.freeze({
77
- noop: noop,
78
- noarg: noarg,
79
- compose: compose,
80
- constant: constant,
81
- identity: identity,
82
- tripleEquals: tripleEquals,
83
- curry: curry,
84
- not: not,
85
- die: die,
86
- apply: apply,
87
- call: call,
88
- never: never,
89
- always: always
90
- });
91
-
92
62
  var never$1 = never;
93
63
  var always$1 = always;
94
64
  var none = function () {
@@ -222,9 +192,9 @@
222
192
  if (x === null)
223
193
  return 'null';
224
194
  var t = typeof x;
225
- if (t === 'object' && Array.prototype.isPrototypeOf(x))
195
+ if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array'))
226
196
  return 'array';
227
- if (t === 'object' && String.prototype.isPrototypeOf(x))
197
+ if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String'))
228
198
  return 'string';
229
199
  return t;
230
200
  };
@@ -262,21 +232,6 @@
262
232
  var exists = function (xs, pred) {
263
233
  return findIndex(xs, pred).isSome();
264
234
  };
265
- var range = function (num, f) {
266
- var r = [];
267
- for (var i = 0; i < num; i++) {
268
- r.push(f(i));
269
- }
270
- return r;
271
- };
272
- var chunk = function (array, size) {
273
- var r = [];
274
- for (var i = 0; i < array.length; i += size) {
275
- var s = slice.call(array, i, i + size);
276
- r.push(s);
277
- }
278
- return r;
279
- };
280
235
  var map = function (xs, f) {
281
236
  var len = xs.length;
282
237
  var r = new Array(len);
@@ -321,29 +276,6 @@
321
276
  }
322
277
  return r;
323
278
  };
324
- var groupBy = function (xs, f) {
325
- if (xs.length === 0) {
326
- return [];
327
- } else {
328
- var wasType = f(xs[0]);
329
- var r = [];
330
- var group = [];
331
- for (var i = 0, len = xs.length; i < len; i++) {
332
- var x = xs[i];
333
- var type = f(x);
334
- if (type !== wasType) {
335
- r.push(group);
336
- group = [];
337
- }
338
- wasType = type;
339
- group.push(x);
340
- }
341
- if (group.length !== 0) {
342
- r.push(group);
343
- }
344
- return r;
345
- }
346
- };
347
279
  var foldr = function (xs, f, acc) {
348
280
  eachr(xs, function (x) {
349
281
  acc = f(acc, x);
@@ -405,11 +337,6 @@
405
337
  }
406
338
  return true;
407
339
  };
408
- var equal = function (a1, a2) {
409
- return a1.length === a2.length && forall(a1, function (x, i) {
410
- return x === a2[i];
411
- });
412
- };
413
340
  var reverse = function (xs) {
414
341
  var r = slice.call(xs, 0);
415
342
  r.reverse();
@@ -428,9 +355,6 @@
428
355
  }
429
356
  return r;
430
357
  };
431
- var pure = function (x) {
432
- return [x];
433
- };
434
358
  var sort = function (xs, comparator) {
435
359
  var copy = slice.call(xs, 0);
436
360
  copy.sort(comparator);
@@ -446,53 +370,6 @@
446
370
  return slice.call(x);
447
371
  };
448
372
 
449
- var Arr = /*#__PURE__*/Object.freeze({
450
- indexOf: indexOf,
451
- contains: contains,
452
- exists: exists,
453
- range: range,
454
- chunk: chunk,
455
- map: map,
456
- each: each,
457
- eachr: eachr,
458
- partition: partition,
459
- filter: filter,
460
- groupBy: groupBy,
461
- foldr: foldr,
462
- foldl: foldl,
463
- find: find,
464
- findIndex: findIndex,
465
- flatten: flatten,
466
- bind: bind,
467
- forall: forall,
468
- equal: equal,
469
- reverse: reverse,
470
- difference: difference,
471
- mapToObject: mapToObject,
472
- pure: pure,
473
- sort: sort,
474
- head: head,
475
- last: last,
476
- from: from$1
477
- });
478
-
479
- var extendStatics = function (d, b) {
480
- extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function (d, b) {
481
- d.__proto__ = b;
482
- } || function (d, b) {
483
- for (var p in b)
484
- if (b.hasOwnProperty(p))
485
- d[p] = b[p];
486
- };
487
- return extendStatics(d, b);
488
- };
489
- function __extends(d, b) {
490
- extendStatics(d, b);
491
- function __() {
492
- this.constructor = d;
493
- }
494
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
495
- }
496
373
  var __assign = function () {
497
374
  __assign = Object.assign || function __assign(t) {
498
375
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -511,328 +388,13 @@
511
388
  if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
512
389
  t[p] = s[p];
513
390
  if (s != null && typeof Object.getOwnPropertySymbols === 'function')
514
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)
515
- if (e.indexOf(p[i]) < 0)
391
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
392
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
516
393
  t[p[i]] = s[p[i]];
517
- return t;
518
- }
519
- function __decorate(decorators, target, key, desc) {
520
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
521
- if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
522
- r = Reflect.decorate(decorators, target, key, desc);
523
- else
524
- for (var i = decorators.length - 1; i >= 0; i--)
525
- if (d = decorators[i])
526
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
527
- return c > 3 && r && Object.defineProperty(target, key, r), r;
528
- }
529
- function __param(paramIndex, decorator) {
530
- return function (target, key) {
531
- decorator(target, key, paramIndex);
532
- };
533
- }
534
- function __metadata(metadataKey, metadataValue) {
535
- if (typeof Reflect === 'object' && typeof Reflect.metadata === 'function')
536
- return Reflect.metadata(metadataKey, metadataValue);
537
- }
538
- function __awaiter(thisArg, _arguments, P, generator) {
539
- return new (P || (P = Promise))(function (resolve, reject) {
540
- function fulfilled(value) {
541
- try {
542
- step(generator.next(value));
543
- } catch (e) {
544
- reject(e);
545
- }
546
- }
547
- function rejected(value) {
548
- try {
549
- step(generator['throw'](value));
550
- } catch (e) {
551
- reject(e);
552
- }
553
- }
554
- function step(result) {
555
- result.done ? resolve(result.value) : new P(function (resolve) {
556
- resolve(result.value);
557
- }).then(fulfilled, rejected);
558
- }
559
- step((generator = generator.apply(thisArg, _arguments || [])).next());
560
- });
561
- }
562
- function __generator(thisArg, body) {
563
- var _ = {
564
- label: 0,
565
- sent: function () {
566
- if (t[0] & 1)
567
- throw t[1];
568
- return t[1];
569
- },
570
- trys: [],
571
- ops: []
572
- }, f, y, t, g;
573
- return g = {
574
- next: verb(0),
575
- 'throw': verb(1),
576
- 'return': verb(2)
577
- }, typeof Symbol === 'function' && (g[Symbol.iterator] = function () {
578
- return this;
579
- }), g;
580
- function verb(n) {
581
- return function (v) {
582
- return step([
583
- n,
584
- v
585
- ]);
586
- };
587
- }
588
- function step(op) {
589
- if (f)
590
- throw new TypeError('Generator is already executing.');
591
- while (_)
592
- try {
593
- if (f = 1, y && (t = op[0] & 2 ? y['return'] : op[0] ? y['throw'] || ((t = y['return']) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
594
- return t;
595
- if (y = 0, t)
596
- op = [
597
- op[0] & 2,
598
- t.value
599
- ];
600
- switch (op[0]) {
601
- case 0:
602
- case 1:
603
- t = op;
604
- break;
605
- case 4:
606
- _.label++;
607
- return {
608
- value: op[1],
609
- done: false
610
- };
611
- case 5:
612
- _.label++;
613
- y = op[1];
614
- op = [0];
615
- continue;
616
- case 7:
617
- op = _.ops.pop();
618
- _.trys.pop();
619
- continue;
620
- default:
621
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
622
- _ = 0;
623
- continue;
624
- }
625
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
626
- _.label = op[1];
627
- break;
628
- }
629
- if (op[0] === 6 && _.label < t[1]) {
630
- _.label = t[1];
631
- t = op;
632
- break;
633
- }
634
- if (t && _.label < t[2]) {
635
- _.label = t[2];
636
- _.ops.push(op);
637
- break;
638
- }
639
- if (t[2])
640
- _.ops.pop();
641
- _.trys.pop();
642
- continue;
643
- }
644
- op = body.call(thisArg, _);
645
- } catch (e) {
646
- op = [
647
- 6,
648
- e
649
- ];
650
- y = 0;
651
- } finally {
652
- f = t = 0;
653
- }
654
- if (op[0] & 5)
655
- throw op[1];
656
- return {
657
- value: op[0] ? op[1] : void 0,
658
- done: true
659
- };
660
- }
661
- }
662
- function __exportStar(m, exports) {
663
- for (var p in m)
664
- if (!exports.hasOwnProperty(p))
665
- exports[p] = m[p];
666
- }
667
- function __values(o) {
668
- var m = typeof Symbol === 'function' && o[Symbol.iterator], i = 0;
669
- if (m)
670
- return m.call(o);
671
- return {
672
- next: function () {
673
- if (o && i >= o.length)
674
- o = void 0;
675
- return {
676
- value: o && o[i++],
677
- done: !o
678
- };
679
- }
680
- };
681
- }
682
- function __read(o, n) {
683
- var m = typeof Symbol === 'function' && o[Symbol.iterator];
684
- if (!m)
685
- return o;
686
- var i = m.call(o), r, ar = [], e;
687
- try {
688
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
689
- ar.push(r.value);
690
- } catch (error) {
691
- e = { error: error };
692
- } finally {
693
- try {
694
- if (r && !r.done && (m = i['return']))
695
- m.call(i);
696
- } finally {
697
- if (e)
698
- throw e.error;
699
- }
700
- }
701
- return ar;
702
- }
703
- function __spread() {
704
- for (var ar = [], i = 0; i < arguments.length; i++)
705
- ar = ar.concat(__read(arguments[i]));
706
- return ar;
707
- }
708
- function __await(v) {
709
- return this instanceof __await ? (this.v = v, this) : new __await(v);
710
- }
711
- function __asyncGenerator(thisArg, _arguments, generator) {
712
- if (!Symbol.asyncIterator)
713
- throw new TypeError('Symbol.asyncIterator is not defined.');
714
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
715
- return i = {}, verb('next'), verb('throw'), verb('return'), i[Symbol.asyncIterator] = function () {
716
- return this;
717
- }, i;
718
- function verb(n) {
719
- if (g[n])
720
- i[n] = function (v) {
721
- return new Promise(function (a, b) {
722
- q.push([
723
- n,
724
- v,
725
- a,
726
- b
727
- ]) > 1 || resume(n, v);
728
- });
729
- };
730
- }
731
- function resume(n, v) {
732
- try {
733
- step(g[n](v));
734
- } catch (e) {
735
- settle(q[0][3], e);
736
394
  }
737
- }
738
- function step(r) {
739
- r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
740
- }
741
- function fulfill(value) {
742
- resume('next', value);
743
- }
744
- function reject(value) {
745
- resume('throw', value);
746
- }
747
- function settle(f, v) {
748
- if (f(v), q.shift(), q.length)
749
- resume(q[0][0], q[0][1]);
750
- }
751
- }
752
- function __asyncDelegator(o) {
753
- var i, p;
754
- return i = {}, verb('next'), verb('throw', function (e) {
755
- throw e;
756
- }), verb('return'), i[Symbol.iterator] = function () {
757
- return this;
758
- }, i;
759
- function verb(n, f) {
760
- i[n] = o[n] ? function (v) {
761
- return (p = !p) ? {
762
- value: __await(o[n](v)),
763
- done: n === 'return'
764
- } : f ? f(v) : v;
765
- } : f;
766
- }
767
- }
768
- function __asyncValues(o) {
769
- if (!Symbol.asyncIterator)
770
- throw new TypeError('Symbol.asyncIterator is not defined.');
771
- var m = o[Symbol.asyncIterator], i;
772
- return m ? m.call(o) : (o = typeof __values === 'function' ? __values(o) : o[Symbol.iterator](), i = {}, verb('next'), verb('throw'), verb('return'), i[Symbol.asyncIterator] = function () {
773
- return this;
774
- }, i);
775
- function verb(n) {
776
- i[n] = o[n] && function (v) {
777
- return new Promise(function (resolve, reject) {
778
- v = o[n](v), settle(resolve, reject, v.done, v.value);
779
- });
780
- };
781
- }
782
- function settle(resolve, reject, d, v) {
783
- Promise.resolve(v).then(function (v) {
784
- resolve({
785
- value: v,
786
- done: d
787
- });
788
- }, reject);
789
- }
790
- }
791
- function __makeTemplateObject(cooked, raw) {
792
- if (Object.defineProperty) {
793
- Object.defineProperty(cooked, 'raw', { value: raw });
794
- } else {
795
- cooked.raw = raw;
796
- }
797
- return cooked;
798
- }
799
- function __importStar(mod) {
800
- if (mod && mod.__esModule)
801
- return mod;
802
- var result = {};
803
- if (mod != null)
804
- for (var k in mod)
805
- if (Object.hasOwnProperty.call(mod, k))
806
- result[k] = mod[k];
807
- result.default = mod;
808
- return result;
809
- }
810
- function __importDefault(mod) {
811
- return mod && mod.__esModule ? mod : { default: mod };
395
+ return t;
812
396
  }
813
397
 
814
- var tslib_1 = /*#__PURE__*/Object.freeze({
815
- __extends: __extends,
816
- get __assign () { return __assign; },
817
- __rest: __rest,
818
- __decorate: __decorate,
819
- __param: __param,
820
- __metadata: __metadata,
821
- __awaiter: __awaiter,
822
- __generator: __generator,
823
- __exportStar: __exportStar,
824
- __values: __values,
825
- __read: __read,
826
- __spread: __spread,
827
- __await: __await,
828
- __asyncGenerator: __asyncGenerator,
829
- __asyncDelegator: __asyncDelegator,
830
- __asyncValues: __asyncValues,
831
- __makeTemplateObject: __makeTemplateObject,
832
- __importStar: __importStar,
833
- __importDefault: __importDefault
834
- });
835
-
836
398
  var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')();
837
399
 
838
400
  var path = function (parts, scope) {
@@ -3895,9 +3457,20 @@
3895
3457
  detectOs: detectOs
3896
3458
  };
3897
3459
 
3460
+ var checkRange = function (str, substr, start) {
3461
+ if (substr === '')
3462
+ return true;
3463
+ if (str.length < substr.length)
3464
+ return false;
3465
+ var x = str.substr(start, start + substr.length);
3466
+ return x === substr;
3467
+ };
3898
3468
  var contains$2 = function (str, substr) {
3899
3469
  return str.indexOf(substr) !== -1;
3900
3470
  };
3471
+ var startsWith = function (str, prefix) {
3472
+ return checkRange(str, prefix, 0);
3473
+ };
3901
3474
  var trim$2 = function (str) {
3902
3475
  return str.replace(/^\s+|\s+$/g, '');
3903
3476
  };
@@ -4148,7 +3721,7 @@
4148
3721
  };
4149
3722
 
4150
3723
  var isSupported = function (dom) {
4151
- return dom.style !== undefined;
3724
+ return dom.style !== undefined && isFunction(dom.style.getPropertyValue);
4152
3725
  };
4153
3726
 
4154
3727
  var inBody = function (element) {
@@ -4334,14 +3907,6 @@
4334
3907
  }
4335
3908
  return ret;
4336
3909
  };
4337
- var siblings = function (element) {
4338
- var filterSelf = function (elements) {
4339
- return filter(elements, function (x) {
4340
- return !eq(element, x);
4341
- });
4342
- };
4343
- return parent(element).map(children).map(filterSelf).getOr([]);
4344
- };
4345
3910
  var prevSibling = function (element) {
4346
3911
  var dom = element.dom();
4347
3912
  return Option.from(dom.previousSibling).map(Element.fromDom);
@@ -4475,14 +4040,14 @@
4475
4040
  isReady: isReady
4476
4041
  };
4477
4042
  };
4478
- var pure$1 = function (a) {
4043
+ var pure = function (a) {
4479
4044
  return nu$3(function (callback) {
4480
4045
  callback(a);
4481
4046
  });
4482
4047
  };
4483
4048
  var LazyValue = {
4484
4049
  nu: nu$3,
4485
- pure: pure$1
4050
+ pure: pure
4486
4051
  };
4487
4052
 
4488
4053
  var bounce = function (f) {
@@ -4545,14 +4110,14 @@
4545
4110
  get: get
4546
4111
  };
4547
4112
  };
4548
- var pure$2 = function (a) {
4113
+ var pure$1 = function (a) {
4549
4114
  return nu$4(function (callback) {
4550
4115
  callback(a);
4551
4116
  });
4552
4117
  };
4553
4118
  var Future = {
4554
4119
  nu: nu$4,
4555
- pure: pure$2
4120
+ pure: pure$1
4556
4121
  };
4557
4122
 
4558
4123
  var par = function (asyncValues, nu) {
@@ -4856,16 +4421,13 @@
4856
4421
  };
4857
4422
  var isElement$1 = isNodeType(1);
4858
4423
  var matchNodeNames = function (names) {
4859
- var items = names.toLowerCase().split(' ');
4424
+ var lowercasedNames = names.map(function (s) {
4425
+ return s.toLowerCase();
4426
+ });
4860
4427
  return function (node) {
4861
- var i, name;
4862
- if (node && node.nodeType) {
4863
- name = node.nodeName.toLowerCase();
4864
- for (i = 0; i < items.length; i++) {
4865
- if (name === items[i]) {
4866
- return true;
4867
- }
4868
- }
4428
+ if (node && node.nodeName) {
4429
+ var nodeName = node.nodeName.toLowerCase();
4430
+ return contains(lowercasedNames, nodeName);
4869
4431
  }
4870
4432
  return false;
4871
4433
  };
@@ -4923,11 +4485,15 @@
4923
4485
  return false;
4924
4486
  };
4925
4487
  };
4488
+ var isTextareaOrInput = matchNodeNames([
4489
+ 'textarea',
4490
+ 'input'
4491
+ ]);
4926
4492
  var isText$1 = isNodeType(3);
4927
4493
  var isComment = isNodeType(8);
4928
4494
  var isDocument$1 = isNodeType(9);
4929
4495
  var isDocumentFragment = isNodeType(11);
4930
- var isBr = matchNodeNames('br');
4496
+ var isBr = matchNodeNames(['br']);
4931
4497
  var isContentEditableTrue = hasContentEditableState('true');
4932
4498
  var isContentEditableFalse = hasContentEditableState('false');
4933
4499
  var NodeType = {
@@ -4947,7 +4513,8 @@
4947
4513
  matchStyleValues: matchStyleValues,
4948
4514
  isBogus: isBogus,
4949
4515
  isBogusAll: isBogusAll,
4950
- isTable: isTable
4516
+ isTable: isTable,
4517
+ isTextareaOrInput: isTextareaOrInput
4951
4518
  };
4952
4519
 
4953
4520
  var TreeWalker = function () {
@@ -7650,21 +7217,6 @@
7650
7217
  var remove$3 = function (element, clazz) {
7651
7218
  return remove$2(element, 'class', clazz);
7652
7219
  };
7653
- var toggle = function (element, clazz) {
7654
- if (contains(get$3(element), clazz)) {
7655
- return remove$3(element, clazz);
7656
- } else {
7657
- return add$2(element, clazz);
7658
- }
7659
- };
7660
-
7661
- var ClassList = /*#__PURE__*/Object.freeze({
7662
- get: get$3,
7663
- add: add$2,
7664
- remove: remove$3,
7665
- toggle: toggle,
7666
- supports: supports
7667
- });
7668
7220
 
7669
7221
  var add$3 = function (element, clazz) {
7670
7222
  if (supports(element)) {
@@ -7692,15 +7244,6 @@
7692
7244
  return supports(element) && element.dom().classList.contains(clazz);
7693
7245
  };
7694
7246
 
7695
- var ancestors = function (scope, predicate, isRoot) {
7696
- return filter(parents(scope, isRoot), predicate);
7697
- };
7698
- var siblings$1 = function (scope, predicate) {
7699
- return filter(siblings(scope), predicate);
7700
- };
7701
- var children$1 = function (scope, predicate) {
7702
- return filter(children(scope), predicate);
7703
- };
7704
7247
  var descendants = function (scope, predicate) {
7705
7248
  var result = [];
7706
7249
  each(children(scope), function (x) {
@@ -7712,36 +7255,10 @@
7712
7255
  return result;
7713
7256
  };
7714
7257
 
7715
- var all$1 = function (selector) {
7716
- return all(selector);
7717
- };
7718
- var ancestors$1 = function (scope, selector, isRoot) {
7719
- return ancestors(scope, function (e) {
7720
- return is$1(e, selector);
7721
- }, isRoot);
7722
- };
7723
- var siblings$2 = function (scope, selector) {
7724
- return siblings$1(scope, function (e) {
7725
- return is$1(e, selector);
7726
- });
7727
- };
7728
- var children$2 = function (scope, selector) {
7729
- return children$1(scope, function (e) {
7730
- return is$1(e, selector);
7731
- });
7732
- };
7733
7258
  var descendants$1 = function (scope, selector) {
7734
7259
  return all(selector, scope);
7735
7260
  };
7736
7261
 
7737
- var SelectorFilter = /*#__PURE__*/Object.freeze({
7738
- all: all$1,
7739
- ancestors: ancestors$1,
7740
- siblings: siblings$2,
7741
- children: children$2,
7742
- descendants: descendants$1
7743
- });
7744
-
7745
7262
  function ClosestOrAncestor (is, ancestor, scope, a, isRoot) {
7746
7263
  return is(scope, a) ? Option.some(scope) : isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot);
7747
7264
  }
@@ -8063,28 +7580,6 @@
8063
7580
  }
8064
7581
  return textNode;
8065
7582
  };
8066
- var prependInline = function (node) {
8067
- if (NodeType.isText(node)) {
8068
- var data = node.data;
8069
- if (data.length > 0 && data.charAt(0) !== Zwsp.ZWSP) {
8070
- node.insertData(0, Zwsp.ZWSP);
8071
- }
8072
- return node;
8073
- } else {
8074
- return null;
8075
- }
8076
- };
8077
- var appendInline = function (node) {
8078
- if (NodeType.isText(node)) {
8079
- var data = node.data;
8080
- if (data.length > 0 && data.charAt(data.length - 1) !== Zwsp.ZWSP) {
8081
- node.insertData(data.length, Zwsp.ZWSP);
8082
- }
8083
- return node;
8084
- } else {
8085
- return null;
8086
- }
8087
- };
8088
7583
  var isBeforeInline = function (pos) {
8089
7584
  var container = pos.container();
8090
7585
  if (!pos || !NodeType.isText(container)) {
@@ -8151,30 +7646,26 @@
8151
7646
  return isCaretContainerBlock(range.startContainer);
8152
7647
  };
8153
7648
 
8154
- var CaretContainer = /*#__PURE__*/Object.freeze({
8155
- isCaretContainer: isCaretContainer,
8156
- isCaretContainerBlock: isCaretContainerBlock,
8157
- isCaretContainerInline: isCaretContainerInline,
8158
- showCaretContainerBlock: showCaretContainerBlock,
8159
- insertInline: insertInline,
8160
- prependInline: prependInline,
8161
- appendInline: appendInline,
8162
- isBeforeInline: isBeforeInline,
8163
- isAfterInline: isAfterInline,
8164
- insertBlock: insertBlock,
8165
- hasContent: hasContent,
8166
- startsWithCaretContainer: startsWithCaretContainer,
8167
- endsWithCaretContainer: endsWithCaretContainer,
8168
- isRangeInCaretContainerBlock: isRangeInCaretContainerBlock
8169
- });
8170
-
8171
7649
  var isContentEditableTrue$1 = NodeType.isContentEditableTrue;
8172
7650
  var isContentEditableFalse$1 = NodeType.isContentEditableFalse;
8173
7651
  var isBr$2 = NodeType.isBr;
8174
7652
  var isText$3 = NodeType.isText;
8175
- var isInvalidTextElement = NodeType.matchNodeNames('script style textarea');
8176
- var isAtomicInline = NodeType.matchNodeNames('img input textarea hr iframe video audio object');
8177
- var isTable$2 = NodeType.matchNodeNames('table');
7653
+ var isInvalidTextElement = NodeType.matchNodeNames([
7654
+ 'script',
7655
+ 'style',
7656
+ 'textarea'
7657
+ ]);
7658
+ var isAtomicInline = NodeType.matchNodeNames([
7659
+ 'img',
7660
+ 'input',
7661
+ 'textarea',
7662
+ 'hr',
7663
+ 'iframe',
7664
+ 'video',
7665
+ 'audio',
7666
+ 'object'
7667
+ ]);
7668
+ var isTable$2 = NodeType.matchNodeNames(['table']);
8178
7669
  var isCaretContainer$1 = isCaretContainer;
8179
7670
  var isCaretCandidate = function (node) {
8180
7671
  if (isCaretContainer$1(node)) {
@@ -8631,7 +8122,7 @@
8631
8122
  }
8632
8123
  return offset;
8633
8124
  };
8634
- var equal$1 = function (a) {
8125
+ var equal = function (a) {
8635
8126
  return function (b) {
8636
8127
  return a === b;
8637
8128
  };
@@ -8639,7 +8130,7 @@
8639
8130
  var normalizedNodeIndex = function (node) {
8640
8131
  var nodes, index, numTextFragments;
8641
8132
  nodes = getChildNodes(normalizedParent(node));
8642
- index = ArrUtils.findIndex(nodes, equal$1(node), node);
8133
+ index = ArrUtils.findIndex(nodes, equal(node), node);
8643
8134
  nodes = nodes.slice(0, index + 1);
8644
8135
  numTextFragments = ArrUtils.reduce(nodes, function (result, node, i) {
8645
8136
  if (isText$5(node) && isText$5(nodes[i - 1])) {
@@ -8647,8 +8138,8 @@
8647
8138
  }
8648
8139
  return result;
8649
8140
  }, 0);
8650
- nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames(node.nodeName));
8651
- index = ArrUtils.findIndex(nodes, equal$1(node), node);
8141
+ nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames([node.nodeName]));
8142
+ index = ArrUtils.findIndex(nodes, equal(node), node);
8652
8143
  return index - numTextFragments;
8653
8144
  };
8654
8145
  var createPathItem = function (node) {
@@ -8699,7 +8190,7 @@
8699
8190
  nodes = ArrUtils.filter(nodes, function (node, index) {
8700
8191
  return !isText$5(node) || !isText$5(nodes[index - 1]);
8701
8192
  });
8702
- nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames(name));
8193
+ nodes = ArrUtils.filter(nodes, NodeType.matchNodeNames([name]));
8703
8194
  return nodes[index];
8704
8195
  };
8705
8196
  var findTextPosition = function (container, offset) {
@@ -10554,7 +10045,7 @@
10554
10045
  var Annotator = function (editor) {
10555
10046
  var registry = create$1();
10556
10047
  setup$1(editor, registry);
10557
- var changes = setup(editor, registry);
10048
+ var changes = setup(editor);
10558
10049
  return {
10559
10050
  register: function (name, settings) {
10560
10051
  registry.register(name, settings);
@@ -11823,14 +11314,14 @@
11823
11314
  var start = getStart$1(selection);
11824
11315
  return defaultView(start);
11825
11316
  };
11826
- var range$1 = SimRange.create;
11317
+ var range = SimRange.create;
11827
11318
  var Selection = {
11828
11319
  domRange: domRange,
11829
11320
  relative: relative,
11830
11321
  exact: exact,
11831
11322
  exactFromRange: exactFromRange,
11832
11323
  getWin: getWin,
11833
- range: range$1
11324
+ range: range
11834
11325
  };
11835
11326
 
11836
11327
  var browser$3 = PlatformDetection$1.detect().browser;
@@ -11911,44 +11402,179 @@
11911
11402
  validate: validate
11912
11403
  };
11913
11404
 
11914
- var getContentEditableHost = function (editor, node) {
11915
- return editor.dom.getParent(node, function (node) {
11916
- return editor.dom.getContentEditable(node) === 'true';
11917
- });
11405
+ var isEditorUIElement = function (elm) {
11406
+ return elm.className.toString().indexOf('tox-') !== -1 || elm.className.toString().indexOf('mce-') !== -1;
11918
11407
  };
11919
- var getCollapsedNode = function (rng) {
11920
- return rng.collapsed ? Option.from(getNode(rng.startContainer, rng.startOffset)).map(Element.fromDom) : Option.none();
11408
+ var FocusManager = { isEditorUIElement: isEditorUIElement };
11409
+
11410
+ var isManualNodeChange = function (e) {
11411
+ return e.type === 'nodechange' && e.selectionChange;
11921
11412
  };
11922
- var getFocusInElement = function (root, rng) {
11923
- return getCollapsedNode(rng).bind(function (node) {
11924
- if (isTableSection(node)) {
11925
- return Option.some(node);
11926
- } else if (contains$3(root, node) === false) {
11927
- return Option.some(root);
11928
- } else {
11929
- return Option.none();
11930
- }
11413
+ var registerPageMouseUp = function (editor, throttledStore) {
11414
+ var mouseUpPage = function () {
11415
+ throttledStore.throttle();
11416
+ };
11417
+ DOMUtils$1.DOM.bind(domGlobals.document, 'mouseup', mouseUpPage);
11418
+ editor.on('remove', function () {
11419
+ DOMUtils$1.DOM.unbind(domGlobals.document, 'mouseup', mouseUpPage);
11931
11420
  });
11932
11421
  };
11933
- var normalizeSelection = function (editor, rng) {
11934
- getFocusInElement(Element.fromDom(editor.getBody()), rng).bind(function (elm) {
11935
- return CaretFinder.firstPositionIn(elm.dom());
11936
- }).fold(function () {
11937
- editor.selection.normalize();
11938
- return;
11939
- }, function (caretPos) {
11940
- return editor.selection.setRng(caretPos.toRange());
11422
+ var registerFocusOut = function (editor) {
11423
+ editor.on('focusout', function () {
11424
+ SelectionBookmark.store(editor);
11941
11425
  });
11942
11426
  };
11943
- var focusBody = function (body) {
11944
- if (body.setActive) {
11945
- try {
11946
- body.setActive();
11947
- } catch (ex) {
11948
- body.focus();
11949
- }
11427
+ var registerMouseUp = function (editor, throttledStore) {
11428
+ editor.on('mouseup touchend', function (e) {
11429
+ throttledStore.throttle();
11430
+ });
11431
+ };
11432
+ var registerEditorEvents = function (editor, throttledStore) {
11433
+ var browser = PlatformDetection$1.detect().browser;
11434
+ if (browser.isIE()) {
11435
+ registerFocusOut(editor);
11950
11436
  } else {
11951
- body.focus();
11437
+ registerMouseUp(editor, throttledStore);
11438
+ }
11439
+ editor.on('keyup NodeChange', function (e) {
11440
+ if (!isManualNodeChange(e)) {
11441
+ SelectionBookmark.store(editor);
11442
+ }
11443
+ });
11444
+ };
11445
+ var register = function (editor) {
11446
+ var throttledStore = first(function () {
11447
+ SelectionBookmark.store(editor);
11448
+ }, 0);
11449
+ if (editor.inline) {
11450
+ registerPageMouseUp(editor, throttledStore);
11451
+ }
11452
+ editor.on('init', function () {
11453
+ registerEditorEvents(editor, throttledStore);
11454
+ });
11455
+ editor.on('remove', function () {
11456
+ throttledStore.cancel();
11457
+ });
11458
+ };
11459
+ var SelectionRestore = { register: register };
11460
+
11461
+ var documentFocusInHandler;
11462
+ var DOM$1 = DOMUtils$1.DOM;
11463
+ var isEditorUIElement$1 = function (elm) {
11464
+ return FocusManager.isEditorUIElement(elm);
11465
+ };
11466
+ var isUIElement = function (editor, elm) {
11467
+ var customSelector = editor ? editor.settings.custom_ui_selector : '';
11468
+ var parent = DOM$1.getParent(elm, function (elm) {
11469
+ return isEditorUIElement$1(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);
11470
+ });
11471
+ return parent !== null;
11472
+ };
11473
+ var getActiveElement = function () {
11474
+ try {
11475
+ return domGlobals.document.activeElement;
11476
+ } catch (ex) {
11477
+ return domGlobals.document.body;
11478
+ }
11479
+ };
11480
+ var registerEvents = function (editorManager, e) {
11481
+ var editor = e.editor;
11482
+ SelectionRestore.register(editor);
11483
+ editor.on('focusin', function () {
11484
+ var self = this;
11485
+ var focusedEditor = editorManager.focusedEditor;
11486
+ if (focusedEditor !== self) {
11487
+ if (focusedEditor) {
11488
+ focusedEditor.fire('blur', { focusedEditor: self });
11489
+ }
11490
+ editorManager.setActive(self);
11491
+ editorManager.focusedEditor = self;
11492
+ self.fire('focus', { blurredEditor: focusedEditor });
11493
+ self.focus(true);
11494
+ }
11495
+ });
11496
+ editor.on('focusout', function () {
11497
+ var self = this;
11498
+ Delay.setEditorTimeout(self, function () {
11499
+ var focusedEditor = editorManager.focusedEditor;
11500
+ if (!isUIElement(self, getActiveElement()) && focusedEditor === self) {
11501
+ self.fire('blur', { focusedEditor: null });
11502
+ editorManager.focusedEditor = null;
11503
+ }
11504
+ });
11505
+ });
11506
+ if (!documentFocusInHandler) {
11507
+ documentFocusInHandler = function (e) {
11508
+ var activeEditor = editorManager.activeEditor;
11509
+ var target;
11510
+ target = e.target;
11511
+ if (activeEditor && target.ownerDocument === domGlobals.document) {
11512
+ if (target !== domGlobals.document.body && !isUIElement(activeEditor, target) && editorManager.focusedEditor === activeEditor) {
11513
+ activeEditor.fire('blur', { focusedEditor: null });
11514
+ editorManager.focusedEditor = null;
11515
+ }
11516
+ }
11517
+ };
11518
+ DOM$1.bind(domGlobals.document, 'focusin', documentFocusInHandler);
11519
+ }
11520
+ };
11521
+ var unregisterDocumentEvents = function (editorManager, e) {
11522
+ if (editorManager.focusedEditor === e.editor) {
11523
+ editorManager.focusedEditor = null;
11524
+ }
11525
+ if (!editorManager.activeEditor) {
11526
+ DOM$1.unbind(domGlobals.document, 'focusin', documentFocusInHandler);
11527
+ documentFocusInHandler = null;
11528
+ }
11529
+ };
11530
+ var setup$2 = function (editorManager) {
11531
+ editorManager.on('AddEditor', curry(registerEvents, editorManager));
11532
+ editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));
11533
+ };
11534
+ var FocusController = {
11535
+ setup: setup$2,
11536
+ isEditorUIElement: isEditorUIElement$1,
11537
+ isUIElement: isUIElement
11538
+ };
11539
+
11540
+ var getContentEditableHost = function (editor, node) {
11541
+ return editor.dom.getParent(node, function (node) {
11542
+ return editor.dom.getContentEditable(node) === 'true';
11543
+ });
11544
+ };
11545
+ var getCollapsedNode = function (rng) {
11546
+ return rng.collapsed ? Option.from(getNode(rng.startContainer, rng.startOffset)).map(Element.fromDom) : Option.none();
11547
+ };
11548
+ var getFocusInElement = function (root, rng) {
11549
+ return getCollapsedNode(rng).bind(function (node) {
11550
+ if (isTableSection(node)) {
11551
+ return Option.some(node);
11552
+ } else if (contains$3(root, node) === false) {
11553
+ return Option.some(root);
11554
+ } else {
11555
+ return Option.none();
11556
+ }
11557
+ });
11558
+ };
11559
+ var normalizeSelection = function (editor, rng) {
11560
+ getFocusInElement(Element.fromDom(editor.getBody()), rng).bind(function (elm) {
11561
+ return CaretFinder.firstPositionIn(elm.dom());
11562
+ }).fold(function () {
11563
+ editor.selection.normalize();
11564
+ return;
11565
+ }, function (caretPos) {
11566
+ return editor.selection.setRng(caretPos.toRange());
11567
+ });
11568
+ };
11569
+ var focusBody = function (body) {
11570
+ if (body.setActive) {
11571
+ try {
11572
+ body.setActive();
11573
+ } catch (ex) {
11574
+ body.focus();
11575
+ }
11576
+ } else {
11577
+ body.focus();
11952
11578
  }
11953
11579
  };
11954
11580
  var hasElementFocus = function (elm) {
@@ -11961,9 +11587,17 @@
11961
11587
  var rawBody = editor.getBody();
11962
11588
  return rawBody && hasElementFocus(Element.fromDom(rawBody));
11963
11589
  };
11590
+ var hasUiFocus = function (editor) {
11591
+ return hasElementFocus(Element.fromDom(editor.getContainer())) || active().filter(function (elem) {
11592
+ return FocusController.isUIElement(editor, elem.dom());
11593
+ }).isSome();
11594
+ };
11964
11595
  var hasFocus$1 = function (editor) {
11965
11596
  return editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor);
11966
11597
  };
11598
+ var hasEditorOrUiFocus = function (editor) {
11599
+ return hasFocus$1(editor) || hasUiFocus(editor);
11600
+ };
11967
11601
  var focusEditor = function (editor) {
11968
11602
  var selection = editor.selection;
11969
11603
  var body = editor.getBody();
@@ -12005,7 +11639,8 @@
12005
11639
  };
12006
11640
  var EditorFocus = {
12007
11641
  focus: focus,
12008
- hasFocus: hasFocus$1
11642
+ hasFocus: hasFocus$1,
11643
+ hasEditorOrUiFocus: hasEditorOrUiFocus
12009
11644
  };
12010
11645
 
12011
11646
  var defaultFormat$1 = 'html';
@@ -12123,9 +11758,9 @@
12123
11758
  fireObjectResized: fireObjectResized
12124
11759
  };
12125
11760
 
12126
- var DOM$1 = DOMUtils$1.DOM;
11761
+ var DOM$2 = DOMUtils$1.DOM;
12127
11762
  var restoreOriginalStyles = function (editor) {
12128
- DOM$1.setStyle(editor.id, 'display', editor.orgDisplay);
11763
+ DOM$2.setStyle(editor.id, 'display', editor.orgDisplay);
12129
11764
  };
12130
11765
  var safeDestroy = function (x) {
12131
11766
  return Option.from(x).each(function (x) {
@@ -12147,7 +11782,7 @@
12147
11782
  form.submit = form._mceOldSubmit;
12148
11783
  form._mceOldSubmit = null;
12149
11784
  }
12150
- DOM$1.unbind(form, 'submit reset', editor.formEventDelegate);
11785
+ DOM$2.unbind(form, 'submit reset', editor.formEventDelegate);
12151
11786
  }
12152
11787
  };
12153
11788
  var remove$6 = function (editor) {
@@ -12161,7 +11796,7 @@
12161
11796
  editor.removed = true;
12162
11797
  editor.unbindAllNativeEvents();
12163
11798
  if (editor.hasHiddenInput && element) {
12164
- DOM$1.remove(element.nextSibling);
11799
+ DOM$2.remove(element.nextSibling);
12165
11800
  }
12166
11801
  Events.fireRemove(editor);
12167
11802
  editor.editorManager.remove(editor);
@@ -12169,7 +11804,7 @@
12169
11804
  restoreOriginalStyles(editor);
12170
11805
  }
12171
11806
  Events.fireDetach(editor);
12172
- DOM$1.remove(editor.getContainer());
11807
+ DOM$2.remove(editor.getContainer());
12173
11808
  safeDestroy(_selectionOverrides);
12174
11809
  safeDestroy(editorUpload);
12175
11810
  editor.destroy();
@@ -12646,6 +12281,8 @@
12646
12281
  var getAll = function () {
12647
12282
  return {
12648
12283
  'accessibility-check': '<svg width="24" height="24"><path d="M12 2a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2c0-1.1.9-2 2-2zm8 7h-5v12c0 .6-.4 1-1 1a1 1 0 0 1-1-1v-5c0-.6-.4-1-1-1a1 1 0 0 0-1 1v5c0 .6-.4 1-1 1a1 1 0 0 1-1-1V9H4a1 1 0 1 1 0-2h16c.6 0 1 .4 1 1s-.4 1-1 1z" fill-rule="nonzero"/></svg>',
12284
+ 'action-next': '<svg width="24" height="24"><path fill-rule="nonzero" d="M5.7 7.3a1 1 0 0 0-1.4 1.4l7.7 7.7 7.7-7.7a1 1 0 1 0-1.4-1.4L12 13.6 5.7 7.3z"/></svg>',
12285
+ 'action-prev': '<svg width="24" height="24"><path fill-rule="nonzero" d="M18.3 15.7a1 1 0 0 0 1.4-1.4L12 6.6l-7.7 7.7a1 1 0 0 0 1.4 1.4L12 9.4l6.3 6.3z"/></svg>',
12649
12286
  'align-center': '<svg width="24" height="24"><path d="M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm3 4h8c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 1 1 0-2zm0 8h8c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2zm-3-4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',
12650
12287
  'align-justify': '<svg width="24" height="24"><path d="M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0 4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',
12651
12288
  'align-left': '<svg width="24" height="24"><path d="M5 5h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 4h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 1 1 0-2zm0 8h8c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2zm0-4h14c.6 0 1 .4 1 1s-.4 1-1 1H5a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',
@@ -13621,12 +13258,12 @@
13621
13258
  editor.nodeChanged();
13622
13259
  }
13623
13260
  };
13624
- var setup$2 = function (editor) {
13261
+ var setup$3 = function (editor) {
13625
13262
  if (Settings.getForcedRootBlock(editor)) {
13626
13263
  editor.on('NodeChange', curry(addRootBlocks, editor));
13627
13264
  }
13628
13265
  };
13629
- var ForceBlocks = { setup: setup$2 };
13266
+ var ForceBlocks = { setup: setup$3 };
13630
13267
 
13631
13268
  var isEq$1 = function (rng1, rng2) {
13632
13269
  return rng1 && rng2 && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset);
@@ -14287,7 +13924,7 @@
14287
13924
  if (range.collapsed) {
14288
13925
  return false;
14289
13926
  }
14290
- if (Env.ie <= 11 && range.startOffset === range.endOffset - 1 && range.startContainer === range.endContainer) {
13927
+ if (Env.ie && Env.ie <= 11 && range.startOffset === range.endOffset - 1 && range.startContainer === range.endContainer) {
14291
13928
  var elm = range.startContainer.childNodes[range.startOffset];
14292
13929
  if (NodeType.isElement(elm)) {
14293
13930
  return exists(elm.getClientRects(), function (rect) {
@@ -14348,7 +13985,7 @@
14348
13985
  return range;
14349
13986
  };
14350
13987
 
14351
- var setup$3 = function (editor) {
13988
+ var setup$4 = function (editor) {
14352
13989
  var renderFocusCaret = first(function () {
14353
13990
  if (!editor.removed && editor.getBody().contains(domGlobals.document.activeElement)) {
14354
13991
  var rng = editor.selection.getRng();
@@ -14365,7 +14002,7 @@
14365
14002
  renderFocusCaret.cancel();
14366
14003
  });
14367
14004
  };
14368
- var CefFocus = { setup: setup$3 };
14005
+ var CefFocus = { setup: setup$4 };
14369
14006
 
14370
14007
  var VK = {
14371
14008
  BACKSPACE: 8,
@@ -15526,7 +15163,7 @@
15526
15163
  return ' \f\n\r\t\x0B'.indexOf(c) !== -1;
15527
15164
  };
15528
15165
  var normalizeContent = function (content, isStartOfContent, isEndOfContent) {
15529
- var result = foldl(content.split(''), function (acc, c) {
15166
+ var result = foldl(content, function (acc, c) {
15530
15167
  if (isCollapsibleWhitespace(c) || c === '\xA0') {
15531
15168
  if (acc.previousCharIsSpace || acc.str === '' && isStartOfContent || acc.str.length === content.length - 1 && isEndOfContent) {
15532
15169
  return {
@@ -15985,7 +15622,7 @@
15985
15622
  removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()));
15986
15623
  }
15987
15624
  };
15988
- var setup$4 = function (editor) {
15625
+ var setup$5 = function (editor) {
15989
15626
  editor.on('mouseup keydown', function (e) {
15990
15627
  disableCaretContainer(editor, e.keyCode);
15991
15628
  });
@@ -16028,7 +15665,7 @@
16028
15665
  DomQuery(pre2).remove();
16029
15666
  DomQuery(pre1).append('<br><br>').append(pre2.childNodes);
16030
15667
  };
16031
- isPre = NodeType.matchNodeNames('pre');
15668
+ isPre = NodeType.matchNodeNames(['pre']);
16032
15669
  if (!rng.collapsed) {
16033
15670
  blocks = editor.selection.getSelectedBlocks();
16034
15671
  each$9(filter$3(filter$3(blocks, isPre), hasPreSibling), function (pre) {
@@ -16844,7 +16481,7 @@
16844
16481
  }
16845
16482
  ed.selection.setRng(RangeNormalizer.normalize(ed.selection.getRng()));
16846
16483
  bookmark = GetBookmark.getPersistentBookmark(ed.selection, true);
16847
- applyRngStyle(dom, ExpandRange.expandRng(ed, selection.getRng(), formatList), bookmark);
16484
+ applyRngStyle(dom, ExpandRange.expandRng(ed, selection.getRng(), formatList));
16848
16485
  if (format.styles) {
16849
16486
  MergeFormats.mergeUnderlineAndColor(dom, format, vars, curSelNode);
16850
16487
  }
@@ -16860,7 +16497,7 @@
16860
16497
  };
16861
16498
  var ApplyFormat = { applyFormat: applyFormat };
16862
16499
 
16863
- var setup$5 = function (registeredFormatListeners, editor) {
16500
+ var setup$6 = function (registeredFormatListeners, editor) {
16864
16501
  var currentFormats = Cell({});
16865
16502
  registeredFormatListeners.set({});
16866
16503
  editor.on('NodeChange', function (e) {
@@ -16941,7 +16578,7 @@
16941
16578
  };
16942
16579
  var formatChanged = function (editor, registeredFormatListeners, formats, callback, similar) {
16943
16580
  if (registeredFormatListeners.get() === null) {
16944
- setup$5(registeredFormatListeners, editor);
16581
+ setup$6(registeredFormatListeners, editor);
16945
16582
  }
16946
16583
  addListeners(registeredFormatListeners, formats, callback, similar);
16947
16584
  return {
@@ -17481,7 +17118,7 @@
17481
17118
  selectorToHtml: selectorToHtml
17482
17119
  };
17483
17120
 
17484
- var toggle$1 = function (editor, formats, name, vars, node) {
17121
+ var toggle = function (editor, formats, name, vars, node) {
17485
17122
  var fmt = formats.get(name);
17486
17123
  if (MatchFormat.match(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {
17487
17124
  RemoveFormat.remove(editor, name, vars, node);
@@ -17489,9 +17126,9 @@
17489
17126
  ApplyFormat.applyFormat(editor, name, vars, node);
17490
17127
  }
17491
17128
  };
17492
- var ToggleFormat = { toggle: toggle$1 };
17129
+ var ToggleFormat = { toggle: toggle };
17493
17130
 
17494
- var setup$6 = function (editor) {
17131
+ var setup$7 = function (editor) {
17495
17132
  editor.addShortcut('meta+b', '', 'Bold');
17496
17133
  editor.addShortcut('meta+i', '', 'Italic');
17497
17134
  editor.addShortcut('meta+u', '', 'Underline');
@@ -17518,13 +17155,13 @@
17518
17155
  'address'
17519
17156
  ]);
17520
17157
  };
17521
- var FormatShortcuts = { setup: setup$6 };
17158
+ var FormatShortcuts = { setup: setup$7 };
17522
17159
 
17523
17160
  var Formatter = function (editor) {
17524
17161
  var formats = FormatRegistry(editor);
17525
17162
  var formatChangeState = Cell(null);
17526
17163
  FormatShortcuts.setup(editor);
17527
- setup$4(editor);
17164
+ setup$5(editor);
17528
17165
  return {
17529
17166
  get: formats.get,
17530
17167
  has: formats.has,
@@ -17566,7 +17203,7 @@
17566
17203
  };
17567
17204
  var merge = baseMerge(shallow$1);
17568
17205
 
17569
- var register = function (htmlParser, settings, dom) {
17206
+ var register$1 = function (htmlParser, settings, dom) {
17570
17207
  htmlParser.addAttributeFilter('data-mce-tabindex', function (nodes, name) {
17571
17208
  var i = nodes.length, node;
17572
17209
  while (i--) {
@@ -17718,7 +17355,7 @@
17718
17355
  }
17719
17356
  };
17720
17357
  var DomSerializerFilters = {
17721
- register: register,
17358
+ register: register$1,
17722
17359
  trimTrailingBr: trimTrailingBr
17723
17360
  };
17724
17361
 
@@ -17802,12 +17439,12 @@
17802
17439
  }
17803
17440
  addStrikeToSpanFilter(domParser, styles);
17804
17441
  };
17805
- var register$1 = function (domParser, settings) {
17442
+ var register$2 = function (domParser, settings) {
17806
17443
  if (settings.inline_styles) {
17807
17444
  addFilters(domParser, settings);
17808
17445
  }
17809
17446
  };
17810
- var LegacyFilter = { register: register$1 };
17447
+ var LegacyFilter = { register: register$2 };
17811
17448
 
17812
17449
  var paddEmptyNode = function (settings, args, blockElements, node) {
17813
17450
  var brPreferred = settings.padd_empty_with_br || args.insert;
@@ -17836,7 +17473,7 @@
17836
17473
  return node && (blockElements[node.name] || node.name === 'br');
17837
17474
  };
17838
17475
 
17839
- var register$2 = function (parser, settings) {
17476
+ var register$3 = function (parser, settings) {
17840
17477
  var schema = parser.schema;
17841
17478
  if (settings.remove_trailing_brs) {
17842
17479
  parser.addNodeFilter('br', function (nodes, _, args) {
@@ -18468,7 +18105,7 @@
18468
18105
  filterNode: filterNode,
18469
18106
  parse: parse
18470
18107
  };
18471
- register$2(exports, settings);
18108
+ register$3(exports, settings);
18472
18109
  LegacyFilter.register(exports, settings);
18473
18110
  return exports;
18474
18111
  };
@@ -21255,7 +20892,7 @@
21255
20892
  return function () {
21256
20893
  return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) {
21257
20894
  return Option.from(editor.dom.getParent(td, 'table')).map(function (table) {
21258
- return navigateHorizontally(editor, forward, table, td);
20895
+ return navigateHorizontally(editor, forward, table);
21259
20896
  });
21260
20897
  }).getOr(false);
21261
20898
  };
@@ -21446,14 +21083,14 @@
21446
21083
  evt.preventDefault();
21447
21084
  });
21448
21085
  };
21449
- var setup$7 = function (editor, caret) {
21086
+ var setup$8 = function (editor, caret) {
21450
21087
  editor.on('keydown', function (evt) {
21451
21088
  if (evt.isDefaultPrevented() === false) {
21452
21089
  executeKeydownOverride(editor, caret, evt);
21453
21090
  }
21454
21091
  });
21455
21092
  };
21456
- var ArrowKeys = { setup: setup$7 };
21093
+ var ArrowKeys = { setup: setup$8 };
21457
21094
 
21458
21095
  var isBeforeRoot = function (rootNode) {
21459
21096
  return function (elm) {
@@ -22302,8 +21939,122 @@
22302
21939
  };
22303
21940
  var PageBreakDelete = { backspaceDelete: backspaceDelete$7 };
22304
21941
 
21942
+ var isEditable$1 = function (target) {
21943
+ return closest(target, function (elm) {
21944
+ return NodeType.isContentEditableTrue(elm.dom()) || NodeType.isContentEditableFalse(elm.dom());
21945
+ }).exists(function (elm) {
21946
+ return NodeType.isContentEditableTrue(elm.dom());
21947
+ });
21948
+ };
21949
+ var parseIndentValue = function (value) {
21950
+ var number = parseInt(value, 10);
21951
+ return isNaN(number) ? 0 : number;
21952
+ };
21953
+ var getIndentStyleName = function (useMargin, element) {
21954
+ var indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding';
21955
+ var suffix = get$2(element, 'direction') === 'rtl' ? '-right' : '-left';
21956
+ return indentStyleName + suffix;
21957
+ };
21958
+ var indentElement = function (dom, command, useMargin, value, unit, element) {
21959
+ var indentStyleName = getIndentStyleName(useMargin, Element.fromDom(element));
21960
+ if (command === 'outdent') {
21961
+ var styleValue = Math.max(0, parseIndentValue(element.style[indentStyleName]) - value);
21962
+ dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : '');
21963
+ } else {
21964
+ var styleValue = parseIndentValue(element.style[indentStyleName]) + value + unit;
21965
+ dom.setStyle(element, indentStyleName, styleValue);
21966
+ }
21967
+ };
21968
+ var validateBlocks = function (editor, blocks) {
21969
+ return forall(blocks, function (block) {
21970
+ var indentStyleName = getIndentStyleName(Settings.shouldIndentUseMargin(editor), block);
21971
+ var intentValue = getRaw(block, indentStyleName).map(parseIndentValue).getOr(0);
21972
+ var contentEditable = editor.dom.getContentEditable(block.dom());
21973
+ return contentEditable !== 'false' && intentValue > 0;
21974
+ });
21975
+ };
21976
+ var canOutdent = function (editor) {
21977
+ var blocks = getBlocksToIndent(editor);
21978
+ return editor.readonly !== true && (blocks.length > 1 || validateBlocks(editor, blocks));
21979
+ };
21980
+ var isListComponent = function (el) {
21981
+ return isList(el) || isListItem(el);
21982
+ };
21983
+ var parentIsListComponent = function (el) {
21984
+ return parent(el).map(isListComponent).getOr(false);
21985
+ };
21986
+ var getBlocksToIndent = function (editor) {
21987
+ return filter(map(editor.selection.getSelectedBlocks(), Element.fromDom), function (el) {
21988
+ return !isListComponent(el) && !parentIsListComponent(el) && isEditable$1(el);
21989
+ });
21990
+ };
21991
+ var handle = function (editor, command) {
21992
+ var dom = editor.dom, selection = editor.selection, formatter = editor.formatter;
21993
+ var indentation = Settings.getIndentation(editor);
21994
+ var indentUnit = /[a-z%]+$/i.exec(indentation)[0];
21995
+ var indentValue = parseInt(indentation, 10);
21996
+ var useMargin = Settings.shouldIndentUseMargin(editor);
21997
+ var forcedRootBlock = Settings.getForcedRootBlock(editor);
21998
+ if (!editor.queryCommandState('InsertUnorderedList') && !editor.queryCommandState('InsertOrderedList')) {
21999
+ if (forcedRootBlock === '' && !dom.getParent(selection.getNode(), dom.isBlock)) {
22000
+ formatter.apply('div');
22001
+ }
22002
+ }
22003
+ each(getBlocksToIndent(editor), function (block) {
22004
+ indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom());
22005
+ });
22006
+ };
22007
+
22008
+ var navigateIgnoreEmptyTextNodes = function (forward, root, from) {
22009
+ return CaretFinder.navigateIgnore(forward, root, from, isEmptyText);
22010
+ };
22011
+ var getClosestBlock = function (root, pos) {
22012
+ return find(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);
22013
+ };
22014
+ var isAtBeforeAfterBlockBoundary = function (forward, root, pos) {
22015
+ return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {
22016
+ return getClosestBlock(root, pos).fold(function () {
22017
+ return isInSameBlock(newPos, pos, root.dom()) === false;
22018
+ }, function (fromBlock) {
22019
+ return isInSameBlock(newPos, pos, root.dom()) === false && contains$3(fromBlock, Element.fromDom(newPos.container()));
22020
+ });
22021
+ });
22022
+ };
22023
+ var isAtBlockBoundary = function (forward, root, pos) {
22024
+ return getClosestBlock(root, pos).fold(function () {
22025
+ return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {
22026
+ return isInSameBlock(newPos, pos, root.dom()) === false;
22027
+ });
22028
+ }, function (parent) {
22029
+ return navigateIgnoreEmptyTextNodes(forward, parent.dom(), pos).isNone();
22030
+ });
22031
+ };
22032
+ var isAtStartOfBlock = curry(isAtBlockBoundary, false);
22033
+ var isAtEndOfBlock = curry(isAtBlockBoundary, true);
22034
+ var isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false);
22035
+ var isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true);
22036
+
22037
+ var backspaceDelete$8 = function (editor, _caret, _forward) {
22038
+ if (editor.selection.isCollapsed() && canOutdent(editor)) {
22039
+ var dom = editor.dom;
22040
+ var rng = editor.selection.getRng();
22041
+ var pos = CaretPosition$1.fromRangeStart(rng);
22042
+ var block = Element.fromDom(dom.getParent(rng.startContainer, dom.isBlock));
22043
+ if (isAtStartOfBlock(block, pos)) {
22044
+ handle(editor, 'outdent');
22045
+ return true;
22046
+ }
22047
+ }
22048
+ return false;
22049
+ };
22050
+ var Outdent = { backspaceDelete: backspaceDelete$8 };
22051
+
22305
22052
  var executeKeydownOverride$1 = function (editor, caret, evt) {
22306
22053
  MatchKeys.execute([
22054
+ {
22055
+ keyCode: VK.BACKSPACE,
22056
+ action: MatchKeys.action(Outdent.backspaceDelete, editor, false)
22057
+ },
22307
22058
  {
22308
22059
  keyCode: VK.BACKSPACE,
22309
22060
  action: MatchKeys.action(CefDelete.backspaceDelete, editor, false)
@@ -22384,7 +22135,7 @@
22384
22135
  }
22385
22136
  ], evt);
22386
22137
  };
22387
- var setup$8 = function (editor, caret) {
22138
+ var setup$9 = function (editor, caret) {
22388
22139
  editor.on('keydown', function (evt) {
22389
22140
  if (evt.isDefaultPrevented() === false) {
22390
22141
  executeKeydownOverride$1(editor, caret, evt);
@@ -22396,7 +22147,7 @@
22396
22147
  }
22397
22148
  });
22398
22149
  };
22399
- var DeleteBackspaceKeys = { setup: setup$8 };
22150
+ var DeleteBackspaceKeys = { setup: setup$9 };
22400
22151
 
22401
22152
  var firstNonWhiteSpaceNodeSibling = function (node) {
22402
22153
  while (node) {
@@ -23148,14 +22899,14 @@
23148
22899
  InsertNewLine.insert(editor, event);
23149
22900
  });
23150
22901
  };
23151
- var setup$9 = function (editor) {
22902
+ var setup$a = function (editor) {
23152
22903
  editor.on('keydown', function (event) {
23153
22904
  if (event.keyCode === VK.ENTER) {
23154
22905
  handleEnterKeyEvent(editor, event);
23155
22906
  }
23156
22907
  });
23157
22908
  };
23158
- var EnterKey = { setup: setup$9 };
22909
+ var EnterKey = { setup: setup$a };
23159
22910
 
23160
22911
  var insertTextAtPosition = function (text, pos) {
23161
22912
  var container = pos.container();
@@ -23178,35 +22929,6 @@
23178
22929
  var insertNbspAtPosition = curry(insertTextAtPosition, '\xA0');
23179
22930
  var insertSpaceAtPosition = curry(insertTextAtPosition, ' ');
23180
22931
 
23181
- var navigateIgnoreEmptyTextNodes = function (forward, root, from) {
23182
- return CaretFinder.navigateIgnore(forward, root, from, isEmptyText);
23183
- };
23184
- var getClosestBlock = function (root, pos) {
23185
- return find(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);
23186
- };
23187
- var isAtBeforeAfterBlockBoundary = function (forward, root, pos) {
23188
- return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {
23189
- return getClosestBlock(root, pos).fold(function () {
23190
- return isInSameBlock(newPos, pos, root.dom()) === false;
23191
- }, function (fromBlock) {
23192
- return isInSameBlock(newPos, pos, root.dom()) === false && contains$3(fromBlock, Element.fromDom(newPos.container()));
23193
- });
23194
- });
23195
- };
23196
- var isAtBlockBoundary = function (forward, root, pos) {
23197
- return getClosestBlock(root, pos).fold(function () {
23198
- return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {
23199
- return isInSameBlock(newPos, pos, root.dom()) === false;
23200
- });
23201
- }, function (parent) {
23202
- return navigateIgnoreEmptyTextNodes(forward, parent.dom(), pos).isNone();
23203
- });
23204
- };
23205
- var isAtStartOfBlock = curry(isAtBlockBoundary, false);
23206
- var isAtEndOfBlock = curry(isAtBlockBoundary, true);
23207
- var isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false);
23208
- var isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true);
23209
-
23210
22932
  var nbsp = '\xA0';
23211
22933
  var isInMiddleOfText = function (pos) {
23212
22934
  return CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd();
@@ -23392,14 +23114,14 @@
23392
23114
  evt.preventDefault();
23393
23115
  });
23394
23116
  };
23395
- var setup$a = function (editor) {
23117
+ var setup$b = function (editor) {
23396
23118
  editor.on('keydown', function (evt) {
23397
23119
  if (evt.isDefaultPrevented() === false) {
23398
23120
  executeKeydownOverride$2(editor, evt);
23399
23121
  }
23400
23122
  });
23401
23123
  };
23402
- var SpaceKey = { setup: setup$a };
23124
+ var SpaceKey = { setup: setup$b };
23403
23125
 
23404
23126
  var findBlockCaretContainer = function (editor) {
23405
23127
  return descendant(Element.fromDom(editor.getBody()), '*[data-mce-caret]').fold(constant(null), function (elm) {
@@ -23432,10 +23154,10 @@
23432
23154
  editor.undoManager.add();
23433
23155
  }
23434
23156
  };
23435
- var setup$b = function (editor) {
23157
+ var setup$c = function (editor) {
23436
23158
  editor.on('keyup compositionstart', curry(handleBlockContainer, editor));
23437
23159
  };
23438
- var CaretContainerInput = { setup: setup$b };
23160
+ var CaretContainerInput = { setup: setup$c };
23439
23161
 
23440
23162
  var browser$4 = PlatformDetection$1.detect().browser;
23441
23163
  var setupIeInput = function (editor) {
@@ -23453,7 +23175,7 @@
23453
23175
  });
23454
23176
  }
23455
23177
  };
23456
- var setup$c = function (editor) {
23178
+ var setup$d = function (editor) {
23457
23179
  setupIeInput(editor);
23458
23180
  editor.on('input', function (e) {
23459
23181
  if (e.isComposing === false) {
@@ -23476,26 +23198,26 @@
23476
23198
  evt.preventDefault();
23477
23199
  });
23478
23200
  };
23479
- var setup$d = function (editor) {
23201
+ var setup$e = function (editor) {
23480
23202
  editor.on('keydown', function (evt) {
23481
23203
  if (evt.isDefaultPrevented() === false) {
23482
23204
  executeKeydownOverride$3(editor, evt);
23483
23205
  }
23484
23206
  });
23485
23207
  };
23486
- var HomeEndKeys = { setup: setup$d };
23208
+ var HomeEndKeys = { setup: setup$e };
23487
23209
 
23488
- var setup$e = function (editor) {
23210
+ var setup$f = function (editor) {
23489
23211
  var caret = BoundarySelection.setupSelectedState(editor);
23490
23212
  CaretContainerInput.setup(editor);
23491
23213
  ArrowKeys.setup(editor, caret);
23492
23214
  DeleteBackspaceKeys.setup(editor, caret);
23493
23215
  EnterKey.setup(editor);
23494
23216
  SpaceKey.setup(editor);
23495
- setup$c(editor);
23217
+ setup$d(editor);
23496
23218
  HomeEndKeys.setup(editor);
23497
23219
  };
23498
- var KeyboardOverrides = { setup: setup$e };
23220
+ var KeyboardOverrides = { setup: setup$f };
23499
23221
 
23500
23222
  var Quirks = function (editor) {
23501
23223
  var each = Tools.each;
@@ -23950,7 +23672,7 @@
23950
23672
  }
23951
23673
  editor.selection.setRng(RangeNormalizer.normalize(rng));
23952
23674
  };
23953
- var setup$f = function (editor) {
23675
+ var setup$g = function (editor) {
23954
23676
  editor.on('click', function (e) {
23955
23677
  if (e.detail >= 3) {
23956
23678
  normalizeSelection$1(editor);
@@ -23980,12 +23702,12 @@
23980
23702
  });
23981
23703
  });
23982
23704
  };
23983
- var setup$g = function (editor) {
23705
+ var setup$h = function (editor) {
23984
23706
  preventSummaryToggle(editor);
23985
23707
  filterDetails(editor);
23986
23708
  };
23987
23709
 
23988
- var DOM$2 = DOMUtils$1.DOM;
23710
+ var DOM$3 = DOMUtils$1.DOM;
23989
23711
  var appendStyle = function (editor, text) {
23990
23712
  var head = Element.fromDom(editor.getDoc().head);
23991
23713
  var tag = Element.fromTag('style');
@@ -24079,7 +23801,7 @@
24079
23801
  autoFocus(editor);
24080
23802
  };
24081
23803
  var getStyleSheetLoader = function (editor) {
24082
- return editor.inline ? DOM$2.styleSheetLoader : editor.dom.styleSheetLoader;
23804
+ return editor.inline ? DOM$3.styleSheetLoader : editor.dom.styleSheetLoader;
24083
23805
  };
24084
23806
  var initContentBody = function (editor, skipWrite) {
24085
23807
  var settings = editor.settings;
@@ -24096,11 +23818,11 @@
24096
23818
  if (editor.inline) {
24097
23819
  editor.on('remove', function () {
24098
23820
  var bodyEl = this.getBody();
24099
- DOM$2.removeClass(bodyEl, 'mce-content-body');
24100
- DOM$2.removeClass(bodyEl, 'mce-edit-focus');
24101
- DOM$2.setAttrib(bodyEl, 'contentEditable', null);
23821
+ DOM$3.removeClass(bodyEl, 'mce-content-body');
23822
+ DOM$3.removeClass(bodyEl, 'mce-edit-focus');
23823
+ DOM$3.setAttrib(bodyEl, 'contentEditable', null);
24102
23824
  });
24103
- DOM$2.addClass(targetElm, 'mce-content-body');
23825
+ DOM$3.addClass(targetElm, 'mce-content-body');
24104
23826
  editor.contentDocument = doc = domGlobals.document;
24105
23827
  editor.contentWindow = domGlobals.window;
24106
23828
  editor.bodyElement = targetElm;
@@ -24111,7 +23833,7 @@
24111
23833
  body.disabled = true;
24112
23834
  editor.readonly = settings.readonly;
24113
23835
  if (!editor.readonly) {
24114
- if (editor.inline && DOM$2.getStyle(body, 'position', true) === 'static') {
23836
+ if (editor.inline && DOM$3.getStyle(body, 'position', true) === 'static') {
24115
23837
  body.style.position = 'relative';
24116
23838
  }
24117
23839
  body.contentEditable = editor.getParam('content_editable_state', true);
@@ -24143,14 +23865,14 @@
24143
23865
  editor.undoManager = UndoManager(editor);
24144
23866
  editor._nodeChangeDispatcher = new NodeChange(editor);
24145
23867
  editor._selectionOverrides = SelectionOverrides(editor);
23868
+ setup$h(editor);
24146
23869
  setup$g(editor);
24147
- setup$f(editor);
24148
23870
  KeyboardOverrides.setup(editor);
24149
23871
  ForceBlocks.setup(editor);
24150
23872
  editor.fire('PreInit');
24151
23873
  if (!settings.browser_spellcheck && !settings.gecko_spellcheck) {
24152
23874
  doc.body.spellcheck = false;
24153
- DOM$2.setAttrib(body, 'spellcheck', 'false');
23875
+ DOM$3.setAttrib(body, 'spellcheck', 'false');
24154
23876
  }
24155
23877
  editor.quirks = Quirks(editor);
24156
23878
  editor.fire('PostRender');
@@ -24196,7 +23918,7 @@
24196
23918
  };
24197
23919
  var InitContentBody = { initContentBody: initContentBody };
24198
23920
 
24199
- var DOM$3 = DOMUtils$1.DOM;
23921
+ var DOM$4 = DOMUtils$1.DOM;
24200
23922
  var relaxDomain = function (editor, ifr) {
24201
23923
  if (domGlobals.document.domain !== domGlobals.window.location.hostname && Env.ie && Env.ie < 12) {
24202
23924
  var bodyUuid = Uuid.uuid('mce');
@@ -24204,7 +23926,7 @@
24204
23926
  InitContentBody.initContentBody(editor);
24205
23927
  };
24206
23928
  var domainRelaxUrl = 'javascript:(function(){' + 'document.open();document.domain="' + domGlobals.document.domain + '";' + 'var ed = window.parent.tinymce.get("' + editor.id + '");document.write(ed.iframeHTML);' + 'document.close();ed.' + bodyUuid + '(true);})()';
24207
- DOM$3.setAttrib(ifr, 'src', domainRelaxUrl);
23929
+ DOM$4.setAttrib(ifr, 'src', domainRelaxUrl);
24208
23930
  return true;
24209
23931
  }
24210
23932
  return false;
@@ -24247,17 +23969,17 @@
24247
23969
  editor.contentAreaContainer = o.iframeContainer;
24248
23970
  editor.iframeElement = ifr;
24249
23971
  editor.iframeHTML = getIframeHtml(editor);
24250
- DOM$3.add(o.iframeContainer, ifr);
23972
+ DOM$4.add(o.iframeContainer, ifr);
24251
23973
  return isDomainRelaxed;
24252
23974
  };
24253
23975
  var init$1 = function (editor, boxInfo) {
24254
23976
  var isDomainRelaxed = createIframe(editor, boxInfo);
24255
23977
  if (boxInfo.editorContainer) {
24256
- DOM$3.get(boxInfo.editorContainer).style.display = editor.orgDisplay;
24257
- editor.hidden = DOM$3.isHidden(boxInfo.editorContainer);
23978
+ DOM$4.get(boxInfo.editorContainer).style.display = editor.orgDisplay;
23979
+ editor.hidden = DOM$4.isHidden(boxInfo.editorContainer);
24258
23980
  }
24259
23981
  editor.getElement().style.display = 'none';
24260
- DOM$3.setAttrib(editor.id, 'aria-hidden', 'true');
23982
+ DOM$4.setAttrib(editor.id, 'aria-hidden', 'true');
24261
23983
  if (!isDomainRelaxed) {
24262
23984
  InitContentBody.initContentBody(editor);
24263
23985
  }
@@ -24285,7 +24007,7 @@
24285
24007
  editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor));
24286
24008
  };
24287
24009
 
24288
- var DOM$4 = DOMUtils$1.DOM;
24010
+ var DOM$5 = DOMUtils$1.DOM;
24289
24011
  var initPlugin = function (editor, initializedPlugins, plugin) {
24290
24012
  var Plugin = PluginManager.get(plugin);
24291
24013
  var pluginUrl = PluginManager.urls[plugin] || editor.documentBaseUrl.replace(/\/$/, '');
@@ -24365,8 +24087,8 @@
24365
24087
  };
24366
24088
  };
24367
24089
  var renderThemeFalseIframe = function (targetElement) {
24368
- var iframeContainer = DOM$4.create('div');
24369
- DOM$4.insertAfter(iframeContainer, targetElement);
24090
+ var iframeContainer = DOM$5.create('div');
24091
+ DOM$5.insertAfter(iframeContainer, targetElement);
24370
24092
  return createThemeFalseResult(iframeContainer);
24371
24093
  };
24372
24094
  var renderThemeFalse = function (editor) {
@@ -24400,7 +24122,7 @@
24400
24122
  };
24401
24123
  var Init = { init: init$2 };
24402
24124
 
24403
- var DOM$5 = DOMUtils$1.DOM;
24125
+ var DOM$6 = DOMUtils$1.DOM;
24404
24126
  var hasSkipLoadPrefix = function (name) {
24405
24127
  return name.charAt(0) === '-';
24406
24128
  };
@@ -24522,11 +24244,11 @@
24522
24244
  var settings = editor.settings, id = editor.id;
24523
24245
  I18n.setCode(Settings.getLanguageCode(editor));
24524
24246
  var readyHandler = function () {
24525
- DOM$5.unbind(domGlobals.window, 'ready', readyHandler);
24247
+ DOM$6.unbind(domGlobals.window, 'ready', readyHandler);
24526
24248
  editor.render();
24527
24249
  };
24528
24250
  if (!EventUtils.Event.domLoaded) {
24529
- DOM$5.bind(domGlobals.window, 'ready', readyHandler);
24251
+ DOM$6.bind(domGlobals.window, 'ready', readyHandler);
24530
24252
  return;
24531
24253
  }
24532
24254
  if (!editor.getElement()) {
@@ -24541,11 +24263,11 @@
24541
24263
  } else {
24542
24264
  editor.inline = true;
24543
24265
  }
24544
- var form = editor.getElement().form || DOM$5.getParent(id, 'form');
24266
+ var form = editor.getElement().form || DOM$6.getParent(id, 'form');
24545
24267
  if (form) {
24546
24268
  editor.formElement = form;
24547
- if (settings.hidden_input && !/TEXTAREA|INPUT/i.test(editor.getElement().nodeName)) {
24548
- DOM$5.insertAfter(DOM$5.create('input', {
24269
+ if (settings.hidden_input && !NodeType.isTextareaOrInput(editor.getElement())) {
24270
+ DOM$6.insertAfter(DOM$6.create('input', {
24549
24271
  type: 'hidden',
24550
24272
  name: id
24551
24273
  }), id);
@@ -24554,7 +24276,7 @@
24554
24276
  editor.formEventDelegate = function (e) {
24555
24277
  editor.fire(e.type, e);
24556
24278
  };
24557
- DOM$5.bind(form, 'submit reset', editor.formEventDelegate);
24279
+ DOM$6.bind(form, 'submit reset', editor.formEventDelegate);
24558
24280
  editor.on('reset', function () {
24559
24281
  editor.resetContent();
24560
24282
  });
@@ -24572,7 +24294,7 @@
24572
24294
  if (settings.encoding === 'xml') {
24573
24295
  editor.on('GetContent', function (e) {
24574
24296
  if (e.save) {
24575
- e.content = DOM$5.encode(e.content);
24297
+ e.content = DOM$6.encode(e.content);
24576
24298
  }
24577
24299
  });
24578
24300
  }
@@ -24654,7 +24376,9 @@
24654
24376
  setEditorCommandState(editor, 'StyleWithCSS', false);
24655
24377
  setEditorCommandState(editor, 'enableInlineTableEditing', false);
24656
24378
  setEditorCommandState(editor, 'enableObjectResizing', false);
24657
- editor.focus();
24379
+ if (EditorFocus.hasEditorOrUiFocus(editor)) {
24380
+ editor.focus();
24381
+ }
24658
24382
  restoreFakeSelection(editor);
24659
24383
  editor.nodeChanged();
24660
24384
  }
@@ -24977,7 +24701,10 @@
24977
24701
  return value;
24978
24702
  };
24979
24703
 
24980
- var isTableCell$5 = NodeType.matchNodeNames('td th');
24704
+ var isTableCell$5 = NodeType.matchNodeNames([
24705
+ 'td',
24706
+ 'th'
24707
+ ]);
24981
24708
  var selectionSetContent = function (editor, content) {
24982
24709
  var rng = editor.selection.getRng();
24983
24710
  var container = rng.startContainer;
@@ -25236,7 +24963,9 @@
25236
24963
  editor.getDoc().execCommand(command, false, null);
25237
24964
  };
25238
24965
  var deleteCommand = function (editor) {
25239
- if (CefDelete.backspaceDelete(editor, false)) {
24966
+ if (Outdent.backspaceDelete(editor, false)) {
24967
+ return;
24968
+ } else if (CefDelete.backspaceDelete(editor, false)) {
25240
24969
  return;
25241
24970
  } else if (CefBoundaryDelete.backspaceDelete(editor, false)) {
25242
24971
  return;
@@ -25352,8 +25081,19 @@
25352
25081
  return value;
25353
25082
  }
25354
25083
  };
25084
+ var normalizeFontNames = function (font) {
25085
+ var fonts = font.split(/\s*,\s*/);
25086
+ return map(fonts, function (font) {
25087
+ if (font.indexOf(' ') !== -1 && !(startsWith(font, '"') || startsWith(font, '\''))) {
25088
+ return '"' + font + '"';
25089
+ } else {
25090
+ return font;
25091
+ }
25092
+ }).join(',');
25093
+ };
25355
25094
  var fontNameAction = function (editor, value) {
25356
- editor.formatter.toggle('fontname', { value: fromFontSizeNumber(editor, value) });
25095
+ var font = fromFontSizeNumber(editor, value);
25096
+ editor.formatter.toggle('fontname', { value: normalizeFontNames(font) });
25357
25097
  editor.nodeChanged();
25358
25098
  };
25359
25099
  var fontNameQuery = function (editor) {
@@ -25379,72 +25119,6 @@
25379
25119
  });
25380
25120
  };
25381
25121
 
25382
- var isEditable$1 = function (target) {
25383
- return closest(target, function (elm) {
25384
- return NodeType.isContentEditableTrue(elm.dom()) || NodeType.isContentEditableFalse(elm.dom());
25385
- }).exists(function (elm) {
25386
- return NodeType.isContentEditableTrue(elm.dom());
25387
- });
25388
- };
25389
- var parseIndentValue = function (value) {
25390
- var number = parseInt(value, 10);
25391
- return isNaN(number) ? 0 : number;
25392
- };
25393
- var getIndentStyleName = function (useMargin, element) {
25394
- var indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding';
25395
- var suffix = get$2(element, 'direction') === 'rtl' ? '-right' : '-left';
25396
- return indentStyleName + suffix;
25397
- };
25398
- var indentElement = function (dom, command, useMargin, value, unit, element) {
25399
- var indentStyleName = getIndentStyleName(useMargin, Element.fromDom(element));
25400
- if (command === 'outdent') {
25401
- var styleValue = Math.max(0, parseIndentValue(element.style[indentStyleName]) - value);
25402
- dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : '');
25403
- } else {
25404
- var styleValue = parseIndentValue(element.style[indentStyleName]) + value + unit;
25405
- dom.setStyle(element, indentStyleName, styleValue);
25406
- }
25407
- };
25408
- var validateBlocks = function (editor, blocks) {
25409
- return forall(blocks, function (block) {
25410
- var indentStyleName = getIndentStyleName(Settings.shouldIndentUseMargin(editor), block);
25411
- var intentValue = getRaw(block, indentStyleName).map(parseIndentValue).getOr(0);
25412
- var contentEditable = editor.dom.getContentEditable(block.dom());
25413
- return contentEditable !== 'false' && intentValue > 0;
25414
- });
25415
- };
25416
- var canOutdent = function (editor) {
25417
- var blocks = getBlocksToIndent(editor);
25418
- return editor.readonly !== true && (blocks.length > 1 || validateBlocks(editor, blocks));
25419
- };
25420
- var isListComponent = function (el) {
25421
- return isList(el) || isListItem(el);
25422
- };
25423
- var parentIsListComponent = function (el) {
25424
- return parent(el).map(isListComponent).getOr(false);
25425
- };
25426
- var getBlocksToIndent = function (editor) {
25427
- return filter(map(editor.selection.getSelectedBlocks(), Element.fromDom), function (el) {
25428
- return !isListComponent(el) && !parentIsListComponent(el) && isEditable$1(el);
25429
- });
25430
- };
25431
- var handle = function (editor, command) {
25432
- var dom = editor.dom, selection = editor.selection, formatter = editor.formatter;
25433
- var indentation = Settings.getIndentation(editor);
25434
- var indentUnit = /[a-z%]+$/i.exec(indentation)[0];
25435
- var indentValue = parseInt(indentation, 10);
25436
- var useMargin = Settings.shouldIndentUseMargin(editor);
25437
- var forcedRootBlock = Settings.getForcedRootBlock(editor);
25438
- if (!editor.queryCommandState('InsertUnorderedList') && !editor.queryCommandState('InsertOrderedList')) {
25439
- if (forcedRootBlock === '' && !dom.getParent(selection.getNode(), dom.isBlock)) {
25440
- formatter.apply('div');
25441
- }
25442
- }
25443
- each(getBlocksToIndent(editor), function (block) {
25444
- indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom());
25445
- });
25446
- };
25447
-
25448
25122
  var each$g = Tools.each;
25449
25123
  var map$3 = Tools.map, inArray$2 = Tools.inArray;
25450
25124
  var EditorCommands = function () {
@@ -26024,7 +25698,7 @@
26024
25698
  }
26025
25699
  };
26026
25700
 
26027
- var DOM$6 = DOMUtils$1.DOM;
25701
+ var DOM$7 = DOMUtils$1.DOM;
26028
25702
  var customEventRootDelegates;
26029
25703
  var getEventTarget = function (editor, eventName) {
26030
25704
  if (eventName === 'selectionchange') {
@@ -26035,7 +25709,7 @@
26035
25709
  }
26036
25710
  if (editor.settings.event_root) {
26037
25711
  if (!editor.eventRoot) {
26038
- editor.eventRoot = DOM$6.select(editor.settings.event_root)[0];
25712
+ editor.eventRoot = DOM$7.select(editor.settings.event_root)[0];
26039
25713
  }
26040
25714
  return editor.eventRoot;
26041
25715
  }
@@ -26084,18 +25758,18 @@
26084
25758
  var i = editors.length;
26085
25759
  while (i--) {
26086
25760
  var body = editors[i].getBody();
26087
- if (body === target || DOM$6.isChildOf(target, body)) {
25761
+ if (body === target || DOM$7.isChildOf(target, body)) {
26088
25762
  fireEvent(editors[i], eventName, e);
26089
25763
  }
26090
25764
  }
26091
25765
  };
26092
25766
  customEventRootDelegates[eventName] = delegate;
26093
- DOM$6.bind(eventRootElm, eventName, delegate);
25767
+ DOM$7.bind(eventRootElm, eventName, delegate);
26094
25768
  } else {
26095
25769
  delegate = function (e) {
26096
25770
  fireEvent(editor, eventName, e);
26097
25771
  };
26098
- DOM$6.bind(eventRootElm, eventName, delegate);
25772
+ DOM$7.bind(eventRootElm, eventName, delegate);
26099
25773
  editor.delegates[eventName] = delegate;
26100
25774
  }
26101
25775
  };
@@ -26326,7 +26000,7 @@
26326
26000
  }
26327
26001
  if (!/^[\w\-]*:?\/\//.test(url)) {
26328
26002
  var baseUrl = this.settings.base_uri ? this.settings.base_uri.path : new URI(domGlobals.document.location.href).directory;
26329
- if (this.settings.base_uri.protocol == '') {
26003
+ if (this.settings.base_uri && this.settings.base_uri.protocol == '') {
26330
26004
  url = '//mce_host' + self.toAbsPath(baseUrl, url);
26331
26005
  } else {
26332
26006
  var match = /([^#?]*)([#?]?.*)/.exec(url);
@@ -26611,7 +26285,7 @@
26611
26285
  };
26612
26286
  };
26613
26287
 
26614
- var DOM$7 = DOMUtils$1.DOM;
26288
+ var DOM$8 = DOMUtils$1.DOM;
26615
26289
  var extend$3 = Tools.extend, each$j = Tools.each;
26616
26290
  var resolve$4 = Tools.resolve;
26617
26291
  var ie$2 = Env.ie;
@@ -26736,8 +26410,8 @@
26736
26410
  if (self.inline) {
26737
26411
  self.getBody().contentEditable = 'true';
26738
26412
  } else {
26739
- DOM$7.show(self.getContainer());
26740
- DOM$7.hide(self.id);
26413
+ DOM$8.show(self.getContainer());
26414
+ DOM$8.hide(self.id);
26741
26415
  }
26742
26416
  self.load();
26743
26417
  self.fire('show');
@@ -26756,8 +26430,8 @@
26756
26430
  self.editorManager.focusedEditor = null;
26757
26431
  }
26758
26432
  } else {
26759
- DOM$7.hide(self.getContainer());
26760
- DOM$7.setStyle(self.id, 'display', self.orgDisplay);
26433
+ DOM$8.hide(self.getContainer());
26434
+ DOM$8.setStyle(self.id, 'display', self.orgDisplay);
26761
26435
  }
26762
26436
  self.hidden = true;
26763
26437
  self.fire('hide');
@@ -26781,8 +26455,8 @@
26781
26455
  if (elm) {
26782
26456
  args = args || {};
26783
26457
  args.load = true;
26784
- var value = elm.value;
26785
- html = self.setContent(value !== undefined ? value : elm.innerHTML, args);
26458
+ var value = NodeType.isTextareaOrInput(elm) ? elm.value : elm.innerHTML;
26459
+ html = self.setContent(value, args);
26786
26460
  args.element = elm;
26787
26461
  if (!args.no_events) {
26788
26462
  self.fire('LoadContent', args);
@@ -26808,11 +26482,11 @@
26808
26482
  self.fire('RawSaveContent', args);
26809
26483
  }
26810
26484
  html = args.content;
26811
- if (!/TEXTAREA|INPUT/i.test(elm.nodeName)) {
26485
+ if (!NodeType.isTextareaOrInput(elm)) {
26812
26486
  if (args.is_removing || !self.inline) {
26813
26487
  elm.innerHTML = html;
26814
26488
  }
26815
- if (form = DOM$7.getParent(self.id, 'form')) {
26489
+ if (form = DOM$8.getParent(self.id, 'form')) {
26816
26490
  each$j(form.elements, function (elm) {
26817
26491
  if (elm.name === self.id) {
26818
26492
  elm.value = html;
@@ -26864,7 +26538,7 @@
26864
26538
  Editor.prototype.getContainer = function () {
26865
26539
  var self = this;
26866
26540
  if (!self.container) {
26867
- self.container = DOM$7.get(self.editorContainer || self.id + '_parent');
26541
+ self.container = DOM$8.get(self.editorContainer || self.id + '_parent');
26868
26542
  }
26869
26543
  return self.container;
26870
26544
  };
@@ -26873,7 +26547,7 @@
26873
26547
  };
26874
26548
  Editor.prototype.getElement = function () {
26875
26549
  if (!this.targetElm) {
26876
- this.targetElm = DOM$7.get(this.id);
26550
+ this.targetElm = DOM$8.get(this.id);
26877
26551
  }
26878
26552
  return this.targetElm;
26879
26553
  };
@@ -26983,141 +26657,6 @@
26983
26657
  return Editor;
26984
26658
  }();
26985
26659
 
26986
- var isEditorUIElement = function (elm) {
26987
- return elm.className.toString().indexOf('tox-') !== -1 || elm.className.toString().indexOf('mce-') !== -1;
26988
- };
26989
- var FocusManager = { isEditorUIElement: isEditorUIElement };
26990
-
26991
- var isManualNodeChange = function (e) {
26992
- return e.type === 'nodechange' && e.selectionChange;
26993
- };
26994
- var registerPageMouseUp = function (editor, throttledStore) {
26995
- var mouseUpPage = function () {
26996
- throttledStore.throttle();
26997
- };
26998
- DOMUtils$1.DOM.bind(domGlobals.document, 'mouseup', mouseUpPage);
26999
- editor.on('remove', function () {
27000
- DOMUtils$1.DOM.unbind(domGlobals.document, 'mouseup', mouseUpPage);
27001
- });
27002
- };
27003
- var registerFocusOut = function (editor) {
27004
- editor.on('focusout', function () {
27005
- SelectionBookmark.store(editor);
27006
- });
27007
- };
27008
- var registerMouseUp = function (editor, throttledStore) {
27009
- editor.on('mouseup touchend', function (e) {
27010
- throttledStore.throttle();
27011
- });
27012
- };
27013
- var registerEditorEvents = function (editor, throttledStore) {
27014
- var browser = PlatformDetection$1.detect().browser;
27015
- if (browser.isIE()) {
27016
- registerFocusOut(editor);
27017
- } else {
27018
- registerMouseUp(editor, throttledStore);
27019
- }
27020
- editor.on('keyup NodeChange', function (e) {
27021
- if (!isManualNodeChange(e)) {
27022
- SelectionBookmark.store(editor);
27023
- }
27024
- });
27025
- };
27026
- var register$3 = function (editor) {
27027
- var throttledStore = first(function () {
27028
- SelectionBookmark.store(editor);
27029
- }, 0);
27030
- if (editor.inline) {
27031
- registerPageMouseUp(editor, throttledStore);
27032
- }
27033
- editor.on('init', function () {
27034
- registerEditorEvents(editor, throttledStore);
27035
- });
27036
- editor.on('remove', function () {
27037
- throttledStore.cancel();
27038
- });
27039
- };
27040
- var SelectionRestore = { register: register$3 };
27041
-
27042
- var documentFocusInHandler;
27043
- var DOM$8 = DOMUtils$1.DOM;
27044
- var isEditorUIElement$1 = function (elm) {
27045
- return FocusManager.isEditorUIElement(elm);
27046
- };
27047
- var isUIElement = function (editor, elm) {
27048
- var customSelector = editor ? editor.settings.custom_ui_selector : '';
27049
- var parent = DOM$8.getParent(elm, function (elm) {
27050
- return isEditorUIElement$1(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);
27051
- });
27052
- return parent !== null;
27053
- };
27054
- var getActiveElement = function () {
27055
- try {
27056
- return domGlobals.document.activeElement;
27057
- } catch (ex) {
27058
- return domGlobals.document.body;
27059
- }
27060
- };
27061
- var registerEvents = function (editorManager, e) {
27062
- var editor = e.editor;
27063
- SelectionRestore.register(editor);
27064
- editor.on('focusin', function () {
27065
- var self = this;
27066
- var focusedEditor = editorManager.focusedEditor;
27067
- if (focusedEditor !== self) {
27068
- if (focusedEditor) {
27069
- focusedEditor.fire('blur', { focusedEditor: self });
27070
- }
27071
- editorManager.setActive(self);
27072
- editorManager.focusedEditor = self;
27073
- self.fire('focus', { blurredEditor: focusedEditor });
27074
- self.focus(true);
27075
- }
27076
- });
27077
- editor.on('focusout', function () {
27078
- var self = this;
27079
- Delay.setEditorTimeout(self, function () {
27080
- var focusedEditor = editorManager.focusedEditor;
27081
- if (!isUIElement(self, getActiveElement()) && focusedEditor === self) {
27082
- self.fire('blur', { focusedEditor: null });
27083
- editorManager.focusedEditor = null;
27084
- }
27085
- });
27086
- });
27087
- if (!documentFocusInHandler) {
27088
- documentFocusInHandler = function (e) {
27089
- var activeEditor = editorManager.activeEditor;
27090
- var target;
27091
- target = e.target;
27092
- if (activeEditor && target.ownerDocument === domGlobals.document) {
27093
- if (target !== domGlobals.document.body && !isUIElement(activeEditor, target) && editorManager.focusedEditor === activeEditor) {
27094
- activeEditor.fire('blur', { focusedEditor: null });
27095
- editorManager.focusedEditor = null;
27096
- }
27097
- }
27098
- };
27099
- DOM$8.bind(domGlobals.document, 'focusin', documentFocusInHandler);
27100
- }
27101
- };
27102
- var unregisterDocumentEvents = function (editorManager, e) {
27103
- if (editorManager.focusedEditor === e.editor) {
27104
- editorManager.focusedEditor = null;
27105
- }
27106
- if (!editorManager.activeEditor) {
27107
- DOM$8.unbind(domGlobals.document, 'focusin', documentFocusInHandler);
27108
- documentFocusInHandler = null;
27109
- }
27110
- };
27111
- var setup$h = function (editorManager) {
27112
- editorManager.on('AddEditor', curry(registerEvents, editorManager));
27113
- editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));
27114
- };
27115
- var FocusController = {
27116
- setup: setup$h,
27117
- isEditorUIElement: isEditorUIElement$1,
27118
- isUIElement: isUIElement
27119
- };
27120
-
27121
26660
  var DOM$9 = DOMUtils$1.DOM;
27122
26661
  var explode$4 = Tools.explode, each$k = Tools.each, extend$4 = Tools.extend;
27123
26662
  var instanceCounter = 0, boundGlobalEvents = false;
@@ -27180,6 +26719,7 @@
27180
26719
  }
27181
26720
  return editor;
27182
26721
  };
26722
+ var isQuirksMode = domGlobals.document.compatMode !== 'CSS1Compat';
27183
26723
  var EditorManager = __assign({}, Observable, {
27184
26724
  baseURI: null,
27185
26725
  baseURL: null,
@@ -27188,8 +26728,8 @@
27188
26728
  suffix: null,
27189
26729
  $: DomQuery,
27190
26730
  majorVersion: '5',
27191
- minorVersion: '0.9',
27192
- releaseDate: '2019-06-26',
26731
+ minorVersion: '0.10',
26732
+ releaseDate: '2019-07-02',
27193
26733
  editors: legacyEditors,
27194
26734
  i18n: I18n,
27195
26735
  activeEditor: null,
@@ -27287,6 +26827,9 @@
27287
26827
  if (Env.ie && Env.ie < 11) {
27288
26828
  ErrorReporter.initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/');
27289
26829
  return [];
26830
+ } else if (isQuirksMode) {
26831
+ ErrorReporter.initError('Failed to initialize the editor as the document is not in standards mode. ' + 'TinyMCE requires standards mode.');
26832
+ return [];
27290
26833
  }
27291
26834
  if (settings.types) {
27292
26835
  each$k(settings.types, function (type) {