tinymce-rails 4.9.4 → 4.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/source/tinymce/tinymce.js +970 -399
- data/lib/tinymce/rails/configuration.rb +1 -1
- data/lib/tinymce/rails/helper.rb +1 -1
- data/lib/tinymce/rails/version.rb +2 -2
- data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/imagetools/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/print/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/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 +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c68e4ad6f27c5f42e0fb00e73e36d1f4ea4c21ab8ef650227e9bcceeac31eeb7
         | 
| 4 | 
            +
              data.tar.gz: a4c413955e55aba19778d176a23577c78f22ee49156a8c19ac124f97f1ea228b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e7a4e4f415e7731cebfbe53f6e47a597475b2e86c5d57517d35245f3e7875b8743187321d3e6388dcd511e7ce67fc33fbdbc78a2fb68856e0fea391ebc897c67
         | 
| 7 | 
            +
              data.tar.gz: 28ffaa2db4e126fa7573621e7def5bc9de119533a1db81460a18d334e74ba2e82fde8ed60f250d4fff64188751950f990e3f43f543af98869c7e6a98847099d3
         | 
| @@ -1,13 +1,9 @@ | |
| 1 | 
            -
            // 4.9. | 
| 1 | 
            +
            // 4.9.6 (2019-09-02)
         | 
| 2 2 | 
             
            (function () {
         | 
| 3 3 | 
             
            (function (domGlobals) {
         | 
| 4 4 | 
             
                'use strict';
         | 
| 5 5 |  | 
| 6 6 | 
             
                var noop = function () {
         | 
| 7 | 
            -
                  var args = [];
         | 
| 8 | 
            -
                  for (var _i = 0; _i < arguments.length; _i++) {
         | 
| 9 | 
            -
                    args[_i] = arguments[_i];
         | 
| 10 | 
            -
                  }
         | 
| 11 7 | 
             
                };
         | 
| 12 8 | 
             
                var compose = function (fa, fb) {
         | 
| 13 9 | 
             
                  return function () {
         | 
| @@ -111,8 +107,9 @@ | |
| 111 107 | 
             
                    },
         | 
| 112 108 | 
             
                    toString: constant('none()')
         | 
| 113 109 | 
             
                  };
         | 
| 114 | 
            -
                  if (Object.freeze)
         | 
| 110 | 
            +
                  if (Object.freeze) {
         | 
| 115 111 | 
             
                    Object.freeze(me);
         | 
| 112 | 
            +
                  }
         | 
| 116 113 | 
             
                  return me;
         | 
| 117 114 | 
             
                }();
         | 
| 118 115 | 
             
                var some = function (a) {
         | 
| @@ -187,13 +184,16 @@ | |
| 187 184 | 
             
                };
         | 
| 188 185 |  | 
| 189 186 | 
             
                var typeOf = function (x) {
         | 
| 190 | 
            -
                  if (x === null)
         | 
| 187 | 
            +
                  if (x === null) {
         | 
| 191 188 | 
             
                    return 'null';
         | 
| 189 | 
            +
                  }
         | 
| 192 190 | 
             
                  var t = typeof x;
         | 
| 193 | 
            -
                  if (t === 'object' && Array.prototype.isPrototypeOf(x))
         | 
| 191 | 
            +
                  if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {
         | 
| 194 192 | 
             
                    return 'array';
         | 
| 195 | 
            -
                   | 
| 193 | 
            +
                  }
         | 
| 194 | 
            +
                  if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {
         | 
| 196 195 | 
             
                    return 'string';
         | 
| 196 | 
            +
                  }
         | 
| 197 197 | 
             
                  return t;
         | 
| 198 198 | 
             
                };
         | 
| 199 199 | 
             
                var isType = function (type) {
         | 
| @@ -209,6 +209,7 @@ | |
| 209 209 | 
             
                var isFunction = isType('function');
         | 
| 210 210 | 
             
                var isNumber = isType('number');
         | 
| 211 211 |  | 
| 212 | 
            +
                var slice = Array.prototype.slice;
         | 
| 212 213 | 
             
                var rawIndexOf = function () {
         | 
| 213 214 | 
             
                  var pIndexOf = Array.prototype.indexOf;
         | 
| 214 215 | 
             
                  var fastIndex = function (xs, x) {
         | 
| @@ -315,8 +316,9 @@ | |
| 315 316 | 
             
                var flatten = function (xs) {
         | 
| 316 317 | 
             
                  var r = [];
         | 
| 317 318 | 
             
                  for (var i = 0, len = xs.length; i < len; ++i) {
         | 
| 318 | 
            -
                    if (! | 
| 319 | 
            +
                    if (!isArray(xs[i])) {
         | 
| 319 320 | 
             
                      throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
         | 
| 321 | 
            +
                    }
         | 
| 320 322 | 
             
                    push.apply(r, xs[i]);
         | 
| 321 323 | 
             
                  }
         | 
| 322 324 | 
             
                  return r;
         | 
| @@ -334,7 +336,6 @@ | |
| 334 336 | 
             
                  }
         | 
| 335 337 | 
             
                  return true;
         | 
| 336 338 | 
             
                };
         | 
| 337 | 
            -
                var slice = Array.prototype.slice;
         | 
| 338 339 | 
             
                var reverse = function (xs) {
         | 
| 339 340 | 
             
                  var r = slice.call(xs, 0);
         | 
| 340 341 | 
             
                  r.reverse();
         | 
| @@ -372,8 +373,9 @@ | |
| 372 373 |  | 
| 373 374 | 
             
                var path = function (parts, scope) {
         | 
| 374 375 | 
             
                  var o = scope !== undefined && scope !== null ? scope : Global;
         | 
| 375 | 
            -
                  for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i)
         | 
| 376 | 
            +
                  for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) {
         | 
| 376 377 | 
             
                    o = o[parts[i]];
         | 
| 378 | 
            +
                  }
         | 
| 377 379 | 
             
                  return o;
         | 
| 378 380 | 
             
                };
         | 
| 379 381 | 
             
                var resolve = function (p, scope) {
         | 
| @@ -386,8 +388,9 @@ | |
| 386 388 | 
             
                };
         | 
| 387 389 | 
             
                var getOrDie = function (name, scope) {
         | 
| 388 390 | 
             
                  var actual = unsafe(name, scope);
         | 
| 389 | 
            -
                  if (actual === undefined || actual === null)
         | 
| 390 | 
            -
                    throw name + ' not available on this browser';
         | 
| 391 | 
            +
                  if (actual === undefined || actual === null) {
         | 
| 392 | 
            +
                    throw new Error(name + ' not available on this browser');
         | 
| 393 | 
            +
                  }
         | 
| 391 394 | 
             
                  return actual;
         | 
| 392 395 | 
             
                };
         | 
| 393 396 | 
             
                var Global$1 = { getOrDie: getOrDie };
         | 
| @@ -3252,18 +3255,20 @@ | |
| 3252 3255 | 
             
                var firstMatch = function (regexes, s) {
         | 
| 3253 3256 | 
             
                  for (var i = 0; i < regexes.length; i++) {
         | 
| 3254 3257 | 
             
                    var x = regexes[i];
         | 
| 3255 | 
            -
                    if (x.test(s))
         | 
| 3258 | 
            +
                    if (x.test(s)) {
         | 
| 3256 3259 | 
             
                      return x;
         | 
| 3260 | 
            +
                    }
         | 
| 3257 3261 | 
             
                  }
         | 
| 3258 3262 | 
             
                  return undefined;
         | 
| 3259 3263 | 
             
                };
         | 
| 3260 3264 | 
             
                var find$2 = function (regexes, agent) {
         | 
| 3261 3265 | 
             
                  var r = firstMatch(regexes, agent);
         | 
| 3262 | 
            -
                  if (!r)
         | 
| 3266 | 
            +
                  if (!r) {
         | 
| 3263 3267 | 
             
                    return {
         | 
| 3264 3268 | 
             
                      major: 0,
         | 
| 3265 3269 | 
             
                      minor: 0
         | 
| 3266 3270 | 
             
                    };
         | 
| 3271 | 
            +
                  }
         | 
| 3267 3272 | 
             
                  var group = function (i) {
         | 
| 3268 3273 | 
             
                    return Number(agent.replace(r, '$' + i));
         | 
| 3269 3274 | 
             
                  };
         | 
| @@ -3271,8 +3276,9 @@ | |
| 3271 3276 | 
             
                };
         | 
| 3272 3277 | 
             
                var detect = function (versionRegexes, agent) {
         | 
| 3273 3278 | 
             
                  var cleanedAgent = String(agent).toLowerCase();
         | 
| 3274 | 
            -
                  if (versionRegexes.length === 0)
         | 
| 3279 | 
            +
                  if (versionRegexes.length === 0) {
         | 
| 3275 3280 | 
             
                    return unknown();
         | 
| 3281 | 
            +
                  }
         | 
| 3276 3282 | 
             
                  return find$2(versionRegexes, cleanedAgent);
         | 
| 3277 3283 | 
             
                };
         | 
| 3278 3284 | 
             
                var unknown = function () {
         | 
| @@ -3451,8 +3457,7 @@ | |
| 3451 3457 | 
             
                    name: 'Edge',
         | 
| 3452 3458 | 
             
                    versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
         | 
| 3453 3459 | 
             
                    search: function (uastring) {
         | 
| 3454 | 
            -
                       | 
| 3455 | 
            -
                      return monstrosity;
         | 
| 3460 | 
            +
                      return contains$2(uastring, 'edge/') && contains$2(uastring, 'chrome') && contains$2(uastring, 'safari') && contains$2(uastring, 'applewebkit');
         | 
| 3456 3461 | 
             
                    }
         | 
| 3457 3462 | 
             
                  },
         | 
| 3458 3463 | 
             
                  {
         | 
| @@ -3676,7 +3681,7 @@ | |
| 3676 3681 | 
             
                };
         | 
| 3677 3682 |  | 
| 3678 3683 | 
             
                var isSupported = function (dom) {
         | 
| 3679 | 
            -
                  return dom.style !== undefined;
         | 
| 3684 | 
            +
                  return dom.style !== undefined && isFunction(dom.style.getPropertyValue);
         | 
| 3680 3685 | 
             
                };
         | 
| 3681 3686 |  | 
| 3682 3687 | 
             
                var inBody = function (element) {
         | 
| @@ -3802,19 +3807,22 @@ | |
| 3802 3807 | 
             
                var ELEMENT$1 = ELEMENT;
         | 
| 3803 3808 | 
             
                var DOCUMENT$1 = DOCUMENT;
         | 
| 3804 3809 | 
             
                var is$1 = function (element, selector) {
         | 
| 3805 | 
            -
                  var  | 
| 3806 | 
            -
                  if ( | 
| 3810 | 
            +
                  var dom = element.dom();
         | 
| 3811 | 
            +
                  if (dom.nodeType !== ELEMENT$1) {
         | 
| 3807 3812 | 
             
                    return false;
         | 
| 3808 | 
            -
                  } else if (elem.matches !== undefined) {
         | 
| 3809 | 
            -
                    return elem.matches(selector);
         | 
| 3810 | 
            -
                  } else if (elem.msMatchesSelector !== undefined) {
         | 
| 3811 | 
            -
                    return elem.msMatchesSelector(selector);
         | 
| 3812 | 
            -
                  } else if (elem.webkitMatchesSelector !== undefined) {
         | 
| 3813 | 
            -
                    return elem.webkitMatchesSelector(selector);
         | 
| 3814 | 
            -
                  } else if (elem.mozMatchesSelector !== undefined) {
         | 
| 3815 | 
            -
                    return elem.mozMatchesSelector(selector);
         | 
| 3816 3813 | 
             
                  } else {
         | 
| 3817 | 
            -
                     | 
| 3814 | 
            +
                    var elem = dom;
         | 
| 3815 | 
            +
                    if (elem.matches !== undefined) {
         | 
| 3816 | 
            +
                      return elem.matches(selector);
         | 
| 3817 | 
            +
                    } else if (elem.msMatchesSelector !== undefined) {
         | 
| 3818 | 
            +
                      return elem.msMatchesSelector(selector);
         | 
| 3819 | 
            +
                    } else if (elem.webkitMatchesSelector !== undefined) {
         | 
| 3820 | 
            +
                      return elem.webkitMatchesSelector(selector);
         | 
| 3821 | 
            +
                    } else if (elem.mozMatchesSelector !== undefined) {
         | 
| 3822 | 
            +
                      return elem.mozMatchesSelector(selector);
         | 
| 3823 | 
            +
                    } else {
         | 
| 3824 | 
            +
                      throw new Error('Browser lacks native selectors');
         | 
| 3825 | 
            +
                    }
         | 
| 3818 3826 | 
             
                  }
         | 
| 3819 3827 | 
             
                };
         | 
| 3820 3828 | 
             
                var bypassSelector = function (dom) {
         | 
| @@ -3850,16 +3858,13 @@ | |
| 3850 3858 | 
             
                  return Element.fromDom(element.dom().ownerDocument.documentElement);
         | 
| 3851 3859 | 
             
                };
         | 
| 3852 3860 | 
             
                var defaultView = function (element) {
         | 
| 3853 | 
            -
                   | 
| 3854 | 
            -
                  var defView = el.ownerDocument.defaultView;
         | 
| 3855 | 
            -
                  return Element.fromDom(defView);
         | 
| 3861 | 
            +
                  return Element.fromDom(element.dom().ownerDocument.defaultView);
         | 
| 3856 3862 | 
             
                };
         | 
| 3857 3863 | 
             
                var parent = function (element) {
         | 
| 3858 | 
            -
                   | 
| 3859 | 
            -
                  return Option.from(dom.parentNode).map(Element.fromDom);
         | 
| 3864 | 
            +
                  return Option.from(element.dom().parentNode).map(Element.fromDom);
         | 
| 3860 3865 | 
             
                };
         | 
| 3861 3866 | 
             
                var parents = function (element, isRoot) {
         | 
| 3862 | 
            -
                  var stop = isFunction(isRoot) ? isRoot :  | 
| 3867 | 
            +
                  var stop = isFunction(isRoot) ? isRoot : never;
         | 
| 3863 3868 | 
             
                  var dom = element.dom();
         | 
| 3864 3869 | 
             
                  var ret = [];
         | 
| 3865 3870 | 
             
                  while (dom.parentNode !== null && dom.parentNode !== undefined) {
         | 
| @@ -3875,12 +3880,10 @@ | |
| 3875 3880 | 
             
                  return ret;
         | 
| 3876 3881 | 
             
                };
         | 
| 3877 3882 | 
             
                var prevSibling = function (element) {
         | 
| 3878 | 
            -
                   | 
| 3879 | 
            -
                  return Option.from(dom.previousSibling).map(Element.fromDom);
         | 
| 3883 | 
            +
                  return Option.from(element.dom().previousSibling).map(Element.fromDom);
         | 
| 3880 3884 | 
             
                };
         | 
| 3881 3885 | 
             
                var nextSibling = function (element) {
         | 
| 3882 | 
            -
                   | 
| 3883 | 
            -
                  return Option.from(dom.nextSibling).map(Element.fromDom);
         | 
| 3886 | 
            +
                  return Option.from(element.dom().nextSibling).map(Element.fromDom);
         | 
| 3884 3887 | 
             
                };
         | 
| 3885 3888 | 
             
                var prevSiblings = function (element) {
         | 
| 3886 3889 | 
             
                  return reverse(Recurse.toArray(element, prevSibling));
         | 
| @@ -3889,8 +3892,7 @@ | |
| 3889 3892 | 
             
                  return Recurse.toArray(element, nextSibling);
         | 
| 3890 3893 | 
             
                };
         | 
| 3891 3894 | 
             
                var children = function (element) {
         | 
| 3892 | 
            -
                   | 
| 3893 | 
            -
                  return map(dom.childNodes, Element.fromDom);
         | 
| 3895 | 
            +
                  return map(element.dom().childNodes, Element.fromDom);
         | 
| 3894 3896 | 
             
                };
         | 
| 3895 3897 | 
             
                var child = function (element, index) {
         | 
| 3896 3898 | 
             
                  var cs = element.dom().childNodes;
         | 
| @@ -3963,6 +3965,503 @@ | |
| 3963 3965 | 
             
                };
         | 
| 3964 3966 | 
             
                var Position = { getPos: getPos };
         | 
| 3965 3967 |  | 
| 3968 | 
            +
                var exports$1 = {}, module$1 = { exports: exports$1 };
         | 
| 3969 | 
            +
                (function (define, exports, module, require) {
         | 
| 3970 | 
            +
                  (function (f) {
         | 
| 3971 | 
            +
                    if (typeof exports === 'object' && typeof module !== 'undefined') {
         | 
| 3972 | 
            +
                      module.exports = f();
         | 
| 3973 | 
            +
                    } else if (typeof define === 'function' && define.amd) {
         | 
| 3974 | 
            +
                      define([], f);
         | 
| 3975 | 
            +
                    } else {
         | 
| 3976 | 
            +
                      var g;
         | 
| 3977 | 
            +
                      if (typeof window !== 'undefined') {
         | 
| 3978 | 
            +
                        g = window;
         | 
| 3979 | 
            +
                      } else if (typeof global !== 'undefined') {
         | 
| 3980 | 
            +
                        g = global;
         | 
| 3981 | 
            +
                      } else if (typeof self !== 'undefined') {
         | 
| 3982 | 
            +
                        g = self;
         | 
| 3983 | 
            +
                      } else {
         | 
| 3984 | 
            +
                        g = this;
         | 
| 3985 | 
            +
                      }
         | 
| 3986 | 
            +
                      g.EphoxContactWrapper = f();
         | 
| 3987 | 
            +
                    }
         | 
| 3988 | 
            +
                  }(function () {
         | 
| 3989 | 
            +
                    return function () {
         | 
| 3990 | 
            +
                      function r(e, n, t) {
         | 
| 3991 | 
            +
                        function o(i, f) {
         | 
| 3992 | 
            +
                          if (!n[i]) {
         | 
| 3993 | 
            +
                            if (!e[i]) {
         | 
| 3994 | 
            +
                              var c = 'function' == typeof require && require;
         | 
| 3995 | 
            +
                              if (!f && c)
         | 
| 3996 | 
            +
                                return c(i, !0);
         | 
| 3997 | 
            +
                              if (u)
         | 
| 3998 | 
            +
                                return u(i, !0);
         | 
| 3999 | 
            +
                              var a = new Error('Cannot find module \'' + i + '\'');
         | 
| 4000 | 
            +
                              throw a.code = 'MODULE_NOT_FOUND', a;
         | 
| 4001 | 
            +
                            }
         | 
| 4002 | 
            +
                            var p = n[i] = { exports: {} };
         | 
| 4003 | 
            +
                            e[i][0].call(p.exports, function (r) {
         | 
| 4004 | 
            +
                              var n = e[i][1][r];
         | 
| 4005 | 
            +
                              return o(n || r);
         | 
| 4006 | 
            +
                            }, p, p.exports, r, e, n, t);
         | 
| 4007 | 
            +
                          }
         | 
| 4008 | 
            +
                          return n[i].exports;
         | 
| 4009 | 
            +
                        }
         | 
| 4010 | 
            +
                        for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++)
         | 
| 4011 | 
            +
                          o(t[i]);
         | 
| 4012 | 
            +
                        return o;
         | 
| 4013 | 
            +
                      }
         | 
| 4014 | 
            +
                      return r;
         | 
| 4015 | 
            +
                    }()({
         | 
| 4016 | 
            +
                      1: [
         | 
| 4017 | 
            +
                        function (require, module, exports) {
         | 
| 4018 | 
            +
                          var process = module.exports = {};
         | 
| 4019 | 
            +
                          var cachedSetTimeout;
         | 
| 4020 | 
            +
                          var cachedClearTimeout;
         | 
| 4021 | 
            +
                          function defaultSetTimout() {
         | 
| 4022 | 
            +
                            throw new Error('setTimeout has not been defined');
         | 
| 4023 | 
            +
                          }
         | 
| 4024 | 
            +
                          function defaultClearTimeout() {
         | 
| 4025 | 
            +
                            throw new Error('clearTimeout has not been defined');
         | 
| 4026 | 
            +
                          }
         | 
| 4027 | 
            +
                          (function () {
         | 
| 4028 | 
            +
                            try {
         | 
| 4029 | 
            +
                              if (typeof setTimeout === 'function') {
         | 
| 4030 | 
            +
                                cachedSetTimeout = setTimeout;
         | 
| 4031 | 
            +
                              } else {
         | 
| 4032 | 
            +
                                cachedSetTimeout = defaultSetTimout;
         | 
| 4033 | 
            +
                              }
         | 
| 4034 | 
            +
                            } catch (e) {
         | 
| 4035 | 
            +
                              cachedSetTimeout = defaultSetTimout;
         | 
| 4036 | 
            +
                            }
         | 
| 4037 | 
            +
                            try {
         | 
| 4038 | 
            +
                              if (typeof clearTimeout === 'function') {
         | 
| 4039 | 
            +
                                cachedClearTimeout = clearTimeout;
         | 
| 4040 | 
            +
                              } else {
         | 
| 4041 | 
            +
                                cachedClearTimeout = defaultClearTimeout;
         | 
| 4042 | 
            +
                              }
         | 
| 4043 | 
            +
                            } catch (e) {
         | 
| 4044 | 
            +
                              cachedClearTimeout = defaultClearTimeout;
         | 
| 4045 | 
            +
                            }
         | 
| 4046 | 
            +
                          }());
         | 
| 4047 | 
            +
                          function runTimeout(fun) {
         | 
| 4048 | 
            +
                            if (cachedSetTimeout === setTimeout) {
         | 
| 4049 | 
            +
                              return setTimeout(fun, 0);
         | 
| 4050 | 
            +
                            }
         | 
| 4051 | 
            +
                            if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
         | 
| 4052 | 
            +
                              cachedSetTimeout = setTimeout;
         | 
| 4053 | 
            +
                              return setTimeout(fun, 0);
         | 
| 4054 | 
            +
                            }
         | 
| 4055 | 
            +
                            try {
         | 
| 4056 | 
            +
                              return cachedSetTimeout(fun, 0);
         | 
| 4057 | 
            +
                            } catch (e) {
         | 
| 4058 | 
            +
                              try {
         | 
| 4059 | 
            +
                                return cachedSetTimeout.call(null, fun, 0);
         | 
| 4060 | 
            +
                              } catch (e) {
         | 
| 4061 | 
            +
                                return cachedSetTimeout.call(this, fun, 0);
         | 
| 4062 | 
            +
                              }
         | 
| 4063 | 
            +
                            }
         | 
| 4064 | 
            +
                          }
         | 
| 4065 | 
            +
                          function runClearTimeout(marker) {
         | 
| 4066 | 
            +
                            if (cachedClearTimeout === clearTimeout) {
         | 
| 4067 | 
            +
                              return clearTimeout(marker);
         | 
| 4068 | 
            +
                            }
         | 
| 4069 | 
            +
                            if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
         | 
| 4070 | 
            +
                              cachedClearTimeout = clearTimeout;
         | 
| 4071 | 
            +
                              return clearTimeout(marker);
         | 
| 4072 | 
            +
                            }
         | 
| 4073 | 
            +
                            try {
         | 
| 4074 | 
            +
                              return cachedClearTimeout(marker);
         | 
| 4075 | 
            +
                            } catch (e) {
         | 
| 4076 | 
            +
                              try {
         | 
| 4077 | 
            +
                                return cachedClearTimeout.call(null, marker);
         | 
| 4078 | 
            +
                              } catch (e) {
         | 
| 4079 | 
            +
                                return cachedClearTimeout.call(this, marker);
         | 
| 4080 | 
            +
                              }
         | 
| 4081 | 
            +
                            }
         | 
| 4082 | 
            +
                          }
         | 
| 4083 | 
            +
                          var queue = [];
         | 
| 4084 | 
            +
                          var draining = false;
         | 
| 4085 | 
            +
                          var currentQueue;
         | 
| 4086 | 
            +
                          var queueIndex = -1;
         | 
| 4087 | 
            +
                          function cleanUpNextTick() {
         | 
| 4088 | 
            +
                            if (!draining || !currentQueue) {
         | 
| 4089 | 
            +
                              return;
         | 
| 4090 | 
            +
                            }
         | 
| 4091 | 
            +
                            draining = false;
         | 
| 4092 | 
            +
                            if (currentQueue.length) {
         | 
| 4093 | 
            +
                              queue = currentQueue.concat(queue);
         | 
| 4094 | 
            +
                            } else {
         | 
| 4095 | 
            +
                              queueIndex = -1;
         | 
| 4096 | 
            +
                            }
         | 
| 4097 | 
            +
                            if (queue.length) {
         | 
| 4098 | 
            +
                              drainQueue();
         | 
| 4099 | 
            +
                            }
         | 
| 4100 | 
            +
                          }
         | 
| 4101 | 
            +
                          function drainQueue() {
         | 
| 4102 | 
            +
                            if (draining) {
         | 
| 4103 | 
            +
                              return;
         | 
| 4104 | 
            +
                            }
         | 
| 4105 | 
            +
                            var timeout = runTimeout(cleanUpNextTick);
         | 
| 4106 | 
            +
                            draining = true;
         | 
| 4107 | 
            +
                            var len = queue.length;
         | 
| 4108 | 
            +
                            while (len) {
         | 
| 4109 | 
            +
                              currentQueue = queue;
         | 
| 4110 | 
            +
                              queue = [];
         | 
| 4111 | 
            +
                              while (++queueIndex < len) {
         | 
| 4112 | 
            +
                                if (currentQueue) {
         | 
| 4113 | 
            +
                                  currentQueue[queueIndex].run();
         | 
| 4114 | 
            +
                                }
         | 
| 4115 | 
            +
                              }
         | 
| 4116 | 
            +
                              queueIndex = -1;
         | 
| 4117 | 
            +
                              len = queue.length;
         | 
| 4118 | 
            +
                            }
         | 
| 4119 | 
            +
                            currentQueue = null;
         | 
| 4120 | 
            +
                            draining = false;
         | 
| 4121 | 
            +
                            runClearTimeout(timeout);
         | 
| 4122 | 
            +
                          }
         | 
| 4123 | 
            +
                          process.nextTick = function (fun) {
         | 
| 4124 | 
            +
                            var args = new Array(arguments.length - 1);
         | 
| 4125 | 
            +
                            if (arguments.length > 1) {
         | 
| 4126 | 
            +
                              for (var i = 1; i < arguments.length; i++) {
         | 
| 4127 | 
            +
                                args[i - 1] = arguments[i];
         | 
| 4128 | 
            +
                              }
         | 
| 4129 | 
            +
                            }
         | 
| 4130 | 
            +
                            queue.push(new Item(fun, args));
         | 
| 4131 | 
            +
                            if (queue.length === 1 && !draining) {
         | 
| 4132 | 
            +
                              runTimeout(drainQueue);
         | 
| 4133 | 
            +
                            }
         | 
| 4134 | 
            +
                          };
         | 
| 4135 | 
            +
                          function Item(fun, array) {
         | 
| 4136 | 
            +
                            this.fun = fun;
         | 
| 4137 | 
            +
                            this.array = array;
         | 
| 4138 | 
            +
                          }
         | 
| 4139 | 
            +
                          Item.prototype.run = function () {
         | 
| 4140 | 
            +
                            this.fun.apply(null, this.array);
         | 
| 4141 | 
            +
                          };
         | 
| 4142 | 
            +
                          process.title = 'browser';
         | 
| 4143 | 
            +
                          process.browser = true;
         | 
| 4144 | 
            +
                          process.env = {};
         | 
| 4145 | 
            +
                          process.argv = [];
         | 
| 4146 | 
            +
                          process.version = '';
         | 
| 4147 | 
            +
                          process.versions = {};
         | 
| 4148 | 
            +
                          function noop() {
         | 
| 4149 | 
            +
                          }
         | 
| 4150 | 
            +
                          process.on = noop;
         | 
| 4151 | 
            +
                          process.addListener = noop;
         | 
| 4152 | 
            +
                          process.once = noop;
         | 
| 4153 | 
            +
                          process.off = noop;
         | 
| 4154 | 
            +
                          process.removeListener = noop;
         | 
| 4155 | 
            +
                          process.removeAllListeners = noop;
         | 
| 4156 | 
            +
                          process.emit = noop;
         | 
| 4157 | 
            +
                          process.prependListener = noop;
         | 
| 4158 | 
            +
                          process.prependOnceListener = noop;
         | 
| 4159 | 
            +
                          process.listeners = function (name) {
         | 
| 4160 | 
            +
                            return [];
         | 
| 4161 | 
            +
                          };
         | 
| 4162 | 
            +
                          process.binding = function (name) {
         | 
| 4163 | 
            +
                            throw new Error('process.binding is not supported');
         | 
| 4164 | 
            +
                          };
         | 
| 4165 | 
            +
                          process.cwd = function () {
         | 
| 4166 | 
            +
                            return '/';
         | 
| 4167 | 
            +
                          };
         | 
| 4168 | 
            +
                          process.chdir = function (dir) {
         | 
| 4169 | 
            +
                            throw new Error('process.chdir is not supported');
         | 
| 4170 | 
            +
                          };
         | 
| 4171 | 
            +
                          process.umask = function () {
         | 
| 4172 | 
            +
                            return 0;
         | 
| 4173 | 
            +
                          };
         | 
| 4174 | 
            +
                        },
         | 
| 4175 | 
            +
                        {}
         | 
| 4176 | 
            +
                      ],
         | 
| 4177 | 
            +
                      2: [
         | 
| 4178 | 
            +
                        function (require, module, exports) {
         | 
| 4179 | 
            +
                          (function (setImmediate) {
         | 
| 4180 | 
            +
                            (function (root) {
         | 
| 4181 | 
            +
                              var setTimeoutFunc = setTimeout;
         | 
| 4182 | 
            +
                              function noop() {
         | 
| 4183 | 
            +
                              }
         | 
| 4184 | 
            +
                              function bind(fn, thisArg) {
         | 
| 4185 | 
            +
                                return function () {
         | 
| 4186 | 
            +
                                  fn.apply(thisArg, arguments);
         | 
| 4187 | 
            +
                                };
         | 
| 4188 | 
            +
                              }
         | 
| 4189 | 
            +
                              function Promise(fn) {
         | 
| 4190 | 
            +
                                if (typeof this !== 'object')
         | 
| 4191 | 
            +
                                  throw new TypeError('Promises must be constructed via new');
         | 
| 4192 | 
            +
                                if (typeof fn !== 'function')
         | 
| 4193 | 
            +
                                  throw new TypeError('not a function');
         | 
| 4194 | 
            +
                                this._state = 0;
         | 
| 4195 | 
            +
                                this._handled = false;
         | 
| 4196 | 
            +
                                this._value = undefined;
         | 
| 4197 | 
            +
                                this._deferreds = [];
         | 
| 4198 | 
            +
                                doResolve(fn, this);
         | 
| 4199 | 
            +
                              }
         | 
| 4200 | 
            +
                              function handle(self, deferred) {
         | 
| 4201 | 
            +
                                while (self._state === 3) {
         | 
| 4202 | 
            +
                                  self = self._value;
         | 
| 4203 | 
            +
                                }
         | 
| 4204 | 
            +
                                if (self._state === 0) {
         | 
| 4205 | 
            +
                                  self._deferreds.push(deferred);
         | 
| 4206 | 
            +
                                  return;
         | 
| 4207 | 
            +
                                }
         | 
| 4208 | 
            +
                                self._handled = true;
         | 
| 4209 | 
            +
                                Promise._immediateFn(function () {
         | 
| 4210 | 
            +
                                  var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
         | 
| 4211 | 
            +
                                  if (cb === null) {
         | 
| 4212 | 
            +
                                    (self._state === 1 ? resolve : reject)(deferred.promise, self._value);
         | 
| 4213 | 
            +
                                    return;
         | 
| 4214 | 
            +
                                  }
         | 
| 4215 | 
            +
                                  var ret;
         | 
| 4216 | 
            +
                                  try {
         | 
| 4217 | 
            +
                                    ret = cb(self._value);
         | 
| 4218 | 
            +
                                  } catch (e) {
         | 
| 4219 | 
            +
                                    reject(deferred.promise, e);
         | 
| 4220 | 
            +
                                    return;
         | 
| 4221 | 
            +
                                  }
         | 
| 4222 | 
            +
                                  resolve(deferred.promise, ret);
         | 
| 4223 | 
            +
                                });
         | 
| 4224 | 
            +
                              }
         | 
| 4225 | 
            +
                              function resolve(self, newValue) {
         | 
| 4226 | 
            +
                                try {
         | 
| 4227 | 
            +
                                  if (newValue === self)
         | 
| 4228 | 
            +
                                    throw new TypeError('A promise cannot be resolved with itself.');
         | 
| 4229 | 
            +
                                  if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
         | 
| 4230 | 
            +
                                    var then = newValue.then;
         | 
| 4231 | 
            +
                                    if (newValue instanceof Promise) {
         | 
| 4232 | 
            +
                                      self._state = 3;
         | 
| 4233 | 
            +
                                      self._value = newValue;
         | 
| 4234 | 
            +
                                      finale(self);
         | 
| 4235 | 
            +
                                      return;
         | 
| 4236 | 
            +
                                    } else if (typeof then === 'function') {
         | 
| 4237 | 
            +
                                      doResolve(bind(then, newValue), self);
         | 
| 4238 | 
            +
                                      return;
         | 
| 4239 | 
            +
                                    }
         | 
| 4240 | 
            +
                                  }
         | 
| 4241 | 
            +
                                  self._state = 1;
         | 
| 4242 | 
            +
                                  self._value = newValue;
         | 
| 4243 | 
            +
                                  finale(self);
         | 
| 4244 | 
            +
                                } catch (e) {
         | 
| 4245 | 
            +
                                  reject(self, e);
         | 
| 4246 | 
            +
                                }
         | 
| 4247 | 
            +
                              }
         | 
| 4248 | 
            +
                              function reject(self, newValue) {
         | 
| 4249 | 
            +
                                self._state = 2;
         | 
| 4250 | 
            +
                                self._value = newValue;
         | 
| 4251 | 
            +
                                finale(self);
         | 
| 4252 | 
            +
                              }
         | 
| 4253 | 
            +
                              function finale(self) {
         | 
| 4254 | 
            +
                                if (self._state === 2 && self._deferreds.length === 0) {
         | 
| 4255 | 
            +
                                  Promise._immediateFn(function () {
         | 
| 4256 | 
            +
                                    if (!self._handled) {
         | 
| 4257 | 
            +
                                      Promise._unhandledRejectionFn(self._value);
         | 
| 4258 | 
            +
                                    }
         | 
| 4259 | 
            +
                                  });
         | 
| 4260 | 
            +
                                }
         | 
| 4261 | 
            +
                                for (var i = 0, len = self._deferreds.length; i < len; i++) {
         | 
| 4262 | 
            +
                                  handle(self, self._deferreds[i]);
         | 
| 4263 | 
            +
                                }
         | 
| 4264 | 
            +
                                self._deferreds = null;
         | 
| 4265 | 
            +
                              }
         | 
| 4266 | 
            +
                              function Handler(onFulfilled, onRejected, promise) {
         | 
| 4267 | 
            +
                                this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
         | 
| 4268 | 
            +
                                this.onRejected = typeof onRejected === 'function' ? onRejected : null;
         | 
| 4269 | 
            +
                                this.promise = promise;
         | 
| 4270 | 
            +
                              }
         | 
| 4271 | 
            +
                              function doResolve(fn, self) {
         | 
| 4272 | 
            +
                                var done = false;
         | 
| 4273 | 
            +
                                try {
         | 
| 4274 | 
            +
                                  fn(function (value) {
         | 
| 4275 | 
            +
                                    if (done)
         | 
| 4276 | 
            +
                                      return;
         | 
| 4277 | 
            +
                                    done = true;
         | 
| 4278 | 
            +
                                    resolve(self, value);
         | 
| 4279 | 
            +
                                  }, function (reason) {
         | 
| 4280 | 
            +
                                    if (done)
         | 
| 4281 | 
            +
                                      return;
         | 
| 4282 | 
            +
                                    done = true;
         | 
| 4283 | 
            +
                                    reject(self, reason);
         | 
| 4284 | 
            +
                                  });
         | 
| 4285 | 
            +
                                } catch (ex) {
         | 
| 4286 | 
            +
                                  if (done)
         | 
| 4287 | 
            +
                                    return;
         | 
| 4288 | 
            +
                                  done = true;
         | 
| 4289 | 
            +
                                  reject(self, ex);
         | 
| 4290 | 
            +
                                }
         | 
| 4291 | 
            +
                              }
         | 
| 4292 | 
            +
                              Promise.prototype['catch'] = function (onRejected) {
         | 
| 4293 | 
            +
                                return this.then(null, onRejected);
         | 
| 4294 | 
            +
                              };
         | 
| 4295 | 
            +
                              Promise.prototype.then = function (onFulfilled, onRejected) {
         | 
| 4296 | 
            +
                                var prom = new this.constructor(noop);
         | 
| 4297 | 
            +
                                handle(this, new Handler(onFulfilled, onRejected, prom));
         | 
| 4298 | 
            +
                                return prom;
         | 
| 4299 | 
            +
                              };
         | 
| 4300 | 
            +
                              Promise.all = function (arr) {
         | 
| 4301 | 
            +
                                var args = Array.prototype.slice.call(arr);
         | 
| 4302 | 
            +
                                return new Promise(function (resolve, reject) {
         | 
| 4303 | 
            +
                                  if (args.length === 0)
         | 
| 4304 | 
            +
                                    return resolve([]);
         | 
| 4305 | 
            +
                                  var remaining = args.length;
         | 
| 4306 | 
            +
                                  function res(i, val) {
         | 
| 4307 | 
            +
                                    try {
         | 
| 4308 | 
            +
                                      if (val && (typeof val === 'object' || typeof val === 'function')) {
         | 
| 4309 | 
            +
                                        var then = val.then;
         | 
| 4310 | 
            +
                                        if (typeof then === 'function') {
         | 
| 4311 | 
            +
                                          then.call(val, function (val) {
         | 
| 4312 | 
            +
                                            res(i, val);
         | 
| 4313 | 
            +
                                          }, reject);
         | 
| 4314 | 
            +
                                          return;
         | 
| 4315 | 
            +
                                        }
         | 
| 4316 | 
            +
                                      }
         | 
| 4317 | 
            +
                                      args[i] = val;
         | 
| 4318 | 
            +
                                      if (--remaining === 0) {
         | 
| 4319 | 
            +
                                        resolve(args);
         | 
| 4320 | 
            +
                                      }
         | 
| 4321 | 
            +
                                    } catch (ex) {
         | 
| 4322 | 
            +
                                      reject(ex);
         | 
| 4323 | 
            +
                                    }
         | 
| 4324 | 
            +
                                  }
         | 
| 4325 | 
            +
                                  for (var i = 0; i < args.length; i++) {
         | 
| 4326 | 
            +
                                    res(i, args[i]);
         | 
| 4327 | 
            +
                                  }
         | 
| 4328 | 
            +
                                });
         | 
| 4329 | 
            +
                              };
         | 
| 4330 | 
            +
                              Promise.resolve = function (value) {
         | 
| 4331 | 
            +
                                if (value && typeof value === 'object' && value.constructor === Promise) {
         | 
| 4332 | 
            +
                                  return value;
         | 
| 4333 | 
            +
                                }
         | 
| 4334 | 
            +
                                return new Promise(function (resolve) {
         | 
| 4335 | 
            +
                                  resolve(value);
         | 
| 4336 | 
            +
                                });
         | 
| 4337 | 
            +
                              };
         | 
| 4338 | 
            +
                              Promise.reject = function (value) {
         | 
| 4339 | 
            +
                                return new Promise(function (resolve, reject) {
         | 
| 4340 | 
            +
                                  reject(value);
         | 
| 4341 | 
            +
                                });
         | 
| 4342 | 
            +
                              };
         | 
| 4343 | 
            +
                              Promise.race = function (values) {
         | 
| 4344 | 
            +
                                return new Promise(function (resolve, reject) {
         | 
| 4345 | 
            +
                                  for (var i = 0, len = values.length; i < len; i++) {
         | 
| 4346 | 
            +
                                    values[i].then(resolve, reject);
         | 
| 4347 | 
            +
                                  }
         | 
| 4348 | 
            +
                                });
         | 
| 4349 | 
            +
                              };
         | 
| 4350 | 
            +
                              Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {
         | 
| 4351 | 
            +
                                setImmediate(fn);
         | 
| 4352 | 
            +
                              } : function (fn) {
         | 
| 4353 | 
            +
                                setTimeoutFunc(fn, 0);
         | 
| 4354 | 
            +
                              };
         | 
| 4355 | 
            +
                              Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {
         | 
| 4356 | 
            +
                                if (typeof console !== 'undefined' && console) {
         | 
| 4357 | 
            +
                                  console.warn('Possible Unhandled Promise Rejection:', err);
         | 
| 4358 | 
            +
                                }
         | 
| 4359 | 
            +
                              };
         | 
| 4360 | 
            +
                              Promise._setImmediateFn = function _setImmediateFn(fn) {
         | 
| 4361 | 
            +
                                Promise._immediateFn = fn;
         | 
| 4362 | 
            +
                              };
         | 
| 4363 | 
            +
                              Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
         | 
| 4364 | 
            +
                                Promise._unhandledRejectionFn = fn;
         | 
| 4365 | 
            +
                              };
         | 
| 4366 | 
            +
                              if (typeof module !== 'undefined' && module.exports) {
         | 
| 4367 | 
            +
                                module.exports = Promise;
         | 
| 4368 | 
            +
                              } else if (!root.Promise) {
         | 
| 4369 | 
            +
                                root.Promise = Promise;
         | 
| 4370 | 
            +
                              }
         | 
| 4371 | 
            +
                            }(this));
         | 
| 4372 | 
            +
                          }.call(this, require('timers').setImmediate));
         | 
| 4373 | 
            +
                        },
         | 
| 4374 | 
            +
                        { 'timers': 3 }
         | 
| 4375 | 
            +
                      ],
         | 
| 4376 | 
            +
                      3: [
         | 
| 4377 | 
            +
                        function (require, module, exports) {
         | 
| 4378 | 
            +
                          (function (setImmediate, clearImmediate) {
         | 
| 4379 | 
            +
                            var nextTick = require('process/browser.js').nextTick;
         | 
| 4380 | 
            +
                            var apply = Function.prototype.apply;
         | 
| 4381 | 
            +
                            var slice = Array.prototype.slice;
         | 
| 4382 | 
            +
                            var immediateIds = {};
         | 
| 4383 | 
            +
                            var nextImmediateId = 0;
         | 
| 4384 | 
            +
                            exports.setTimeout = function () {
         | 
| 4385 | 
            +
                              return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);
         | 
| 4386 | 
            +
                            };
         | 
| 4387 | 
            +
                            exports.setInterval = function () {
         | 
| 4388 | 
            +
                              return new Timeout(apply.call(setInterval, window, arguments), clearInterval);
         | 
| 4389 | 
            +
                            };
         | 
| 4390 | 
            +
                            exports.clearTimeout = exports.clearInterval = function (timeout) {
         | 
| 4391 | 
            +
                              timeout.close();
         | 
| 4392 | 
            +
                            };
         | 
| 4393 | 
            +
                            function Timeout(id, clearFn) {
         | 
| 4394 | 
            +
                              this._id = id;
         | 
| 4395 | 
            +
                              this._clearFn = clearFn;
         | 
| 4396 | 
            +
                            }
         | 
| 4397 | 
            +
                            Timeout.prototype.unref = Timeout.prototype.ref = function () {
         | 
| 4398 | 
            +
                            };
         | 
| 4399 | 
            +
                            Timeout.prototype.close = function () {
         | 
| 4400 | 
            +
                              this._clearFn.call(window, this._id);
         | 
| 4401 | 
            +
                            };
         | 
| 4402 | 
            +
                            exports.enroll = function (item, msecs) {
         | 
| 4403 | 
            +
                              clearTimeout(item._idleTimeoutId);
         | 
| 4404 | 
            +
                              item._idleTimeout = msecs;
         | 
| 4405 | 
            +
                            };
         | 
| 4406 | 
            +
                            exports.unenroll = function (item) {
         | 
| 4407 | 
            +
                              clearTimeout(item._idleTimeoutId);
         | 
| 4408 | 
            +
                              item._idleTimeout = -1;
         | 
| 4409 | 
            +
                            };
         | 
| 4410 | 
            +
                            exports._unrefActive = exports.active = function (item) {
         | 
| 4411 | 
            +
                              clearTimeout(item._idleTimeoutId);
         | 
| 4412 | 
            +
                              var msecs = item._idleTimeout;
         | 
| 4413 | 
            +
                              if (msecs >= 0) {
         | 
| 4414 | 
            +
                                item._idleTimeoutId = setTimeout(function onTimeout() {
         | 
| 4415 | 
            +
                                  if (item._onTimeout)
         | 
| 4416 | 
            +
                                    item._onTimeout();
         | 
| 4417 | 
            +
                                }, msecs);
         | 
| 4418 | 
            +
                              }
         | 
| 4419 | 
            +
                            };
         | 
| 4420 | 
            +
                            exports.setImmediate = typeof setImmediate === 'function' ? setImmediate : function (fn) {
         | 
| 4421 | 
            +
                              var id = nextImmediateId++;
         | 
| 4422 | 
            +
                              var args = arguments.length < 2 ? false : slice.call(arguments, 1);
         | 
| 4423 | 
            +
                              immediateIds[id] = true;
         | 
| 4424 | 
            +
                              nextTick(function onNextTick() {
         | 
| 4425 | 
            +
                                if (immediateIds[id]) {
         | 
| 4426 | 
            +
                                  if (args) {
         | 
| 4427 | 
            +
                                    fn.apply(null, args);
         | 
| 4428 | 
            +
                                  } else {
         | 
| 4429 | 
            +
                                    fn.call(null);
         | 
| 4430 | 
            +
                                  }
         | 
| 4431 | 
            +
                                  exports.clearImmediate(id);
         | 
| 4432 | 
            +
                                }
         | 
| 4433 | 
            +
                              });
         | 
| 4434 | 
            +
                              return id;
         | 
| 4435 | 
            +
                            };
         | 
| 4436 | 
            +
                            exports.clearImmediate = typeof clearImmediate === 'function' ? clearImmediate : function (id) {
         | 
| 4437 | 
            +
                              delete immediateIds[id];
         | 
| 4438 | 
            +
                            };
         | 
| 4439 | 
            +
                          }.call(this, require('timers').setImmediate, require('timers').clearImmediate));
         | 
| 4440 | 
            +
                        },
         | 
| 4441 | 
            +
                        {
         | 
| 4442 | 
            +
                          'process/browser.js': 1,
         | 
| 4443 | 
            +
                          'timers': 3
         | 
| 4444 | 
            +
                        }
         | 
| 4445 | 
            +
                      ],
         | 
| 4446 | 
            +
                      4: [
         | 
| 4447 | 
            +
                        function (require, module, exports) {
         | 
| 4448 | 
            +
                          var promisePolyfill = require('promise-polyfill');
         | 
| 4449 | 
            +
                          var Global = function () {
         | 
| 4450 | 
            +
                            if (typeof window !== 'undefined') {
         | 
| 4451 | 
            +
                              return window;
         | 
| 4452 | 
            +
                            } else {
         | 
| 4453 | 
            +
                              return Function('return this;')();
         | 
| 4454 | 
            +
                            }
         | 
| 4455 | 
            +
                          }();
         | 
| 4456 | 
            +
                          module.exports = { boltExport: Global.Promise || promisePolyfill };
         | 
| 4457 | 
            +
                        },
         | 
| 4458 | 
            +
                        { 'promise-polyfill': 2 }
         | 
| 4459 | 
            +
                      ]
         | 
| 4460 | 
            +
                    }, {}, [4])(4);
         | 
| 4461 | 
            +
                  }));
         | 
| 4462 | 
            +
                }(undefined, exports$1, module$1, undefined));
         | 
| 4463 | 
            +
                var Promise = module$1.exports.boltExport;
         | 
| 4464 | 
            +
             | 
| 3966 4465 | 
             
                var nu$3 = function (baseFn) {
         | 
| 3967 4466 | 
             
                  var data = Option.none();
         | 
| 3968 4467 | 
             
                  var callbacks = [];
         | 
| @@ -3974,10 +4473,11 @@ | |
| 3974 4473 | 
             
                    });
         | 
| 3975 4474 | 
             
                  };
         | 
| 3976 4475 | 
             
                  var get = function (nCallback) {
         | 
| 3977 | 
            -
                    if (isReady())
         | 
| 4476 | 
            +
                    if (isReady()) {
         | 
| 3978 4477 | 
             
                      call(nCallback);
         | 
| 3979 | 
            -
                    else
         | 
| 4478 | 
            +
                    } else {
         | 
| 3980 4479 | 
             
                      callbacks.push(nCallback);
         | 
| 4480 | 
            +
                    }
         | 
| 3981 4481 | 
             
                  };
         | 
| 3982 4482 | 
             
                  var set = function (x) {
         | 
| 3983 4483 | 
             
                    data = Option.some(x);
         | 
| @@ -4014,42 +4514,31 @@ | |
| 4014 4514 | 
             
                  pure: pure
         | 
| 4015 4515 | 
             
                };
         | 
| 4016 4516 |  | 
| 4017 | 
            -
                var  | 
| 4018 | 
            -
                   | 
| 4019 | 
            -
                     | 
| 4020 | 
            -
             | 
| 4021 | 
            -
                      args[_i] = arguments[_i];
         | 
| 4022 | 
            -
                    }
         | 
| 4023 | 
            -
                    var me = this;
         | 
| 4024 | 
            -
                    domGlobals.setTimeout(function () {
         | 
| 4025 | 
            -
                      f.apply(me, args);
         | 
| 4026 | 
            -
                    }, 0);
         | 
| 4027 | 
            -
                  };
         | 
| 4517 | 
            +
                var errorReporter = function (err) {
         | 
| 4518 | 
            +
                  domGlobals.setTimeout(function () {
         | 
| 4519 | 
            +
                    throw err;
         | 
| 4520 | 
            +
                  }, 0);
         | 
| 4028 4521 | 
             
                };
         | 
| 4029 | 
            -
             | 
| 4030 | 
            -
                var nu$4 = function (baseFn) {
         | 
| 4522 | 
            +
                var make = function (run) {
         | 
| 4031 4523 | 
             
                  var get = function (callback) {
         | 
| 4032 | 
            -
                     | 
| 4524 | 
            +
                    run().then(callback, errorReporter);
         | 
| 4033 4525 | 
             
                  };
         | 
| 4034 4526 | 
             
                  var map = function (fab) {
         | 
| 4035 | 
            -
                    return  | 
| 4036 | 
            -
                       | 
| 4037 | 
            -
                        var value = fab(a);
         | 
| 4038 | 
            -
                        callback(value);
         | 
| 4039 | 
            -
                      });
         | 
| 4527 | 
            +
                    return make(function () {
         | 
| 4528 | 
            +
                      return run().then(fab);
         | 
| 4040 4529 | 
             
                    });
         | 
| 4041 4530 | 
             
                  };
         | 
| 4042 4531 | 
             
                  var bind = function (aFutureB) {
         | 
| 4043 | 
            -
                    return  | 
| 4044 | 
            -
                       | 
| 4045 | 
            -
                        aFutureB( | 
| 4532 | 
            +
                    return make(function () {
         | 
| 4533 | 
            +
                      return run().then(function (v) {
         | 
| 4534 | 
            +
                        return aFutureB(v).toPromise();
         | 
| 4046 4535 | 
             
                      });
         | 
| 4047 4536 | 
             
                    });
         | 
| 4048 4537 | 
             
                  };
         | 
| 4049 4538 | 
             
                  var anonBind = function (futureB) {
         | 
| 4050 | 
            -
                    return  | 
| 4051 | 
            -
                       | 
| 4052 | 
            -
                        futureB. | 
| 4539 | 
            +
                    return make(function () {
         | 
| 4540 | 
            +
                      return run().then(function () {
         | 
| 4541 | 
            +
                        return futureB.toPromise();
         | 
| 4053 4542 | 
             
                      });
         | 
| 4054 4543 | 
             
                    });
         | 
| 4055 4544 | 
             
                  };
         | 
| @@ -4058,25 +4547,32 @@ | |
| 4058 4547 | 
             
                  };
         | 
| 4059 4548 | 
             
                  var toCached = function () {
         | 
| 4060 4549 | 
             
                    var cache = null;
         | 
| 4061 | 
            -
                    return  | 
| 4550 | 
            +
                    return make(function () {
         | 
| 4062 4551 | 
             
                      if (cache === null) {
         | 
| 4063 | 
            -
                        cache =  | 
| 4552 | 
            +
                        cache = run();
         | 
| 4064 4553 | 
             
                      }
         | 
| 4065 | 
            -
                      cache | 
| 4554 | 
            +
                      return cache;
         | 
| 4066 4555 | 
             
                    });
         | 
| 4067 4556 | 
             
                  };
         | 
| 4557 | 
            +
                  var toPromise = run;
         | 
| 4068 4558 | 
             
                  return {
         | 
| 4069 4559 | 
             
                    map: map,
         | 
| 4070 4560 | 
             
                    bind: bind,
         | 
| 4071 4561 | 
             
                    anonBind: anonBind,
         | 
| 4072 4562 | 
             
                    toLazy: toLazy,
         | 
| 4073 4563 | 
             
                    toCached: toCached,
         | 
| 4564 | 
            +
                    toPromise: toPromise,
         | 
| 4074 4565 | 
             
                    get: get
         | 
| 4075 4566 | 
             
                  };
         | 
| 4076 4567 | 
             
                };
         | 
| 4568 | 
            +
                var nu$4 = function (baseFn) {
         | 
| 4569 | 
            +
                  return make(function () {
         | 
| 4570 | 
            +
                    return new Promise(baseFn);
         | 
| 4571 | 
            +
                  });
         | 
| 4572 | 
            +
                };
         | 
| 4077 4573 | 
             
                var pure$1 = function (a) {
         | 
| 4078 | 
            -
                  return  | 
| 4079 | 
            -
                     | 
| 4574 | 
            +
                  return make(function () {
         | 
| 4575 | 
            +
                    return Promise.resolve(a);
         | 
| 4080 4576 | 
             
                  });
         | 
| 4081 4577 | 
             
                };
         | 
| 4082 4578 | 
             
                var Future = {
         | 
| @@ -4208,9 +4704,15 @@ | |
| 4208 4704 | 
             
                    toOption: Option.none
         | 
| 4209 4705 | 
             
                  };
         | 
| 4210 4706 | 
             
                };
         | 
| 4707 | 
            +
                var fromOption = function (opt, err) {
         | 
| 4708 | 
            +
                  return opt.fold(function () {
         | 
| 4709 | 
            +
                    return error(err);
         | 
| 4710 | 
            +
                  }, value);
         | 
| 4711 | 
            +
                };
         | 
| 4211 4712 | 
             
                var Result = {
         | 
| 4212 4713 | 
             
                  value: value,
         | 
| 4213 | 
            -
                  error: error
         | 
| 4714 | 
            +
                  error: error,
         | 
| 4715 | 
            +
                  fromOption: fromOption
         | 
| 4214 4716 | 
             
                };
         | 
| 4215 4717 |  | 
| 4216 4718 | 
             
                function StyleSheetLoader(document, settings) {
         | 
| @@ -4581,6 +5083,9 @@ | |
| 4581 5083 | 
             
                    return !!node && node.nodeType === type;
         | 
| 4582 5084 | 
             
                  };
         | 
| 4583 5085 | 
             
                };
         | 
| 5086 | 
            +
                var isRestrictedNode = function (node) {
         | 
| 5087 | 
            +
                  return !!node && !Object.getPrototypeOf(node);
         | 
| 5088 | 
            +
                };
         | 
| 4584 5089 | 
             
                var isElement$1 = isNodeType(1);
         | 
| 4585 5090 | 
             
                var matchNodeNames = function (names) {
         | 
| 4586 5091 | 
             
                  var items = names.toLowerCase().split(' ');
         | 
| @@ -4666,6 +5171,7 @@ | |
| 4666 5171 | 
             
                  isBr: isBr$1,
         | 
| 4667 5172 | 
             
                  isContentEditableTrue: isContentEditableTrue,
         | 
| 4668 5173 | 
             
                  isContentEditableFalse: isContentEditableFalse,
         | 
| 5174 | 
            +
                  isRestrictedNode: isRestrictedNode,
         | 
| 4669 5175 | 
             
                  matchNodeNames: matchNodeNames,
         | 
| 4670 5176 | 
             
                  hasPropValue: hasPropValue,
         | 
| 4671 5177 | 
             
                  hasAttribute: hasAttribute,
         | 
| @@ -5938,7 +6444,7 @@ | |
| 5938 6444 | 
             
                  var getViewPort = function (argWin) {
         | 
| 5939 6445 | 
             
                    var actWin = !argWin ? win : argWin;
         | 
| 5940 6446 | 
             
                    var doc = actWin.document;
         | 
| 5941 | 
            -
                    var rootElm = | 
| 6447 | 
            +
                    var rootElm =  doc.documentElement ;
         | 
| 5942 6448 | 
             
                    return {
         | 
| 5943 6449 | 
             
                      x: actWin.pageXOffset || rootElm.scrollLeft,
         | 
| 5944 6450 | 
             
                      y: actWin.pageYOffset || rootElm.scrollTop,
         | 
| @@ -6993,8 +7499,9 @@ | |
| 6993 7499 | 
             
                    for (var _i = 0; _i < arguments.length; _i++) {
         | 
| 6994 7500 | 
             
                      args[_i] = arguments[_i];
         | 
| 6995 7501 | 
             
                    }
         | 
| 6996 | 
            -
                    if (timer !== null)
         | 
| 7502 | 
            +
                    if (timer !== null) {
         | 
| 6997 7503 | 
             
                      domGlobals.clearTimeout(timer);
         | 
| 7504 | 
            +
                    }
         | 
| 6998 7505 | 
             
                    timer = domGlobals.setTimeout(function () {
         | 
| 6999 7506 | 
             
                      fn.apply(null, args);
         | 
| 7000 7507 | 
             
                      timer = null;
         | 
| @@ -7119,8 +7626,8 @@ | |
| 7119 7626 | 
             
                  return Option.none();
         | 
| 7120 7627 | 
             
                };
         | 
| 7121 7628 | 
             
                var closest = function (scope, predicate, isRoot) {
         | 
| 7122 | 
            -
                  var is = function (s) {
         | 
| 7123 | 
            -
                    return  | 
| 7629 | 
            +
                  var is = function (s, test) {
         | 
| 7630 | 
            +
                    return test(s);
         | 
| 7124 7631 | 
             
                  };
         | 
| 7125 7632 | 
             
                  return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot);
         | 
| 7126 7633 | 
             
                };
         | 
| @@ -7318,9 +7825,10 @@ | |
| 7318 7825 | 
             
                    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
         | 
| 7319 7826 | 
             
                      t[p] = s[p];
         | 
| 7320 7827 | 
             
                  if (s != null && typeof Object.getOwnPropertySymbols === 'function')
         | 
| 7321 | 
            -
                    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++)
         | 
| 7322 | 
            -
                      if (e.indexOf(p[i]) < 0)
         | 
| 7828 | 
            +
                    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
         | 
| 7829 | 
            +
                      if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
         | 
| 7323 7830 | 
             
                        t[p[i]] = s[p[i]];
         | 
| 7831 | 
            +
                    }
         | 
| 7324 7832 | 
             
                  return t;
         | 
| 7325 7833 | 
             
                }
         | 
| 7326 7834 |  | 
| @@ -7649,7 +8157,7 @@ | |
| 7649 8157 | 
             
                  return container;
         | 
| 7650 8158 | 
             
                };
         | 
| 7651 8159 |  | 
| 7652 | 
            -
                var extendingChars = new RegExp('[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a' + '\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0' + '\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\ | 
| 8160 | 
            +
                var extendingChars = new RegExp('[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a' + '\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0' + '\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c' + '\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3' + '\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc' + '\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57' + '\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56' + '\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44' + '\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9' + '\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97' + '\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074' + '\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5' + '\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18' + '\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1ABE\u1b00-\u1b03\u1b34' + '\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9' + '\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9' + '\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20DD-\u20E0\u20e1\u20E2-\u20E4\u20e5-\u20f0\u2cef-\u2cf1' + '\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\uA670-\uA672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1' + '\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc' + '\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1' + '\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]');
         | 
| 7653 8161 | 
             
                var isExtendingChar = function (ch) {
         | 
| 7654 8162 | 
             
                  return typeof ch === 'string' && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);
         | 
| 7655 8163 | 
             
                };
         | 
| @@ -9764,18 +10272,9 @@ | |
| 9764 10272 | 
             
                    }
         | 
| 9765 10273 | 
             
                    return getOption(element).getOr('');
         | 
| 9766 10274 | 
             
                  };
         | 
| 9767 | 
            -
                  var  | 
| 9768 | 
            -
                    try {
         | 
| 9769 | 
            -
                      return getOptionSafe(element);
         | 
| 9770 | 
            -
                    } catch (e) {
         | 
| 9771 | 
            -
                      return Option.none();
         | 
| 9772 | 
            -
                    }
         | 
| 9773 | 
            -
                  };
         | 
| 9774 | 
            -
                  var getOptionSafe = function (element) {
         | 
| 10275 | 
            +
                  var getOption = function (element) {
         | 
| 9775 10276 | 
             
                    return is(element) ? Option.from(element.dom().nodeValue) : Option.none();
         | 
| 9776 10277 | 
             
                  };
         | 
| 9777 | 
            -
                  var browser = PlatformDetection$1.detect().browser;
         | 
| 9778 | 
            -
                  var getOption = browser.isIE() && browser.version.major === 10 ? getOptionIE10 : getOptionSafe;
         | 
| 9779 10278 | 
             
                  var set = function (element, value) {
         | 
| 9780 10279 | 
             
                    if (!is(element)) {
         | 
| 9781 10280 | 
             
                      throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');
         | 
| @@ -9906,7 +10405,7 @@ | |
| 9906 10405 | 
             
                function Annotator (editor) {
         | 
| 9907 10406 | 
             
                  var registry = create$1();
         | 
| 9908 10407 | 
             
                  setup$1(editor, registry);
         | 
| 9909 | 
            -
                  var changes = setup(editor | 
| 10408 | 
            +
                  var changes = setup(editor);
         | 
| 9910 10409 | 
             
                  return {
         | 
| 9911 10410 | 
             
                    register: function (name, settings) {
         | 
| 9912 10411 | 
             
                      registry.register(name, settings);
         | 
| @@ -10665,165 +11164,129 @@ | |
| 10665 11164 | 
             
                };
         | 
| 10666 11165 | 
             
                var InsertContent = { insertAtCaret: insertAtCaret$1 };
         | 
| 10667 11166 |  | 
| 10668 | 
            -
                var  | 
| 10669 | 
            -
                var  | 
| 10670 | 
            -
             | 
| 10671 | 
            -
                var mobilePlugins = [
         | 
| 10672 | 
            -
                  'lists',
         | 
| 10673 | 
            -
                  'autolink',
         | 
| 10674 | 
            -
                  'autosave'
         | 
| 10675 | 
            -
                ];
         | 
| 10676 | 
            -
                var defaultMobileSettings = { theme: 'mobile' };
         | 
| 10677 | 
            -
                var normalizePlugins = function (plugins) {
         | 
| 10678 | 
            -
                  var pluginNames = isArray(plugins) ? plugins.join(' ') : plugins;
         | 
| 10679 | 
            -
                  var trimmedPlugins = map(isString(pluginNames) ? pluginNames.split(' ') : [], trim$2);
         | 
| 10680 | 
            -
                  return filter(trimmedPlugins, function (item) {
         | 
| 10681 | 
            -
                    return item.length > 0;
         | 
| 10682 | 
            -
                  });
         | 
| 11167 | 
            +
                var strongRtl = /[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/;
         | 
| 11168 | 
            +
                var hasStrongRtl = function (text) {
         | 
| 11169 | 
            +
                  return strongRtl.test(text);
         | 
| 10683 11170 | 
             
                };
         | 
| 10684 | 
            -
             | 
| 10685 | 
            -
             | 
| 11171 | 
            +
             | 
| 11172 | 
            +
                var getBodySetting = function (editor, name, defaultValue) {
         | 
| 11173 | 
            +
                  var value = editor.getParam(name, defaultValue);
         | 
| 11174 | 
            +
                  if (value.indexOf('=') !== -1) {
         | 
| 11175 | 
            +
                    var bodyObj = editor.getParam(name, '', 'hash');
         | 
| 11176 | 
            +
                    return bodyObj.hasOwnProperty(editor.id) ? bodyObj[editor.id] : defaultValue;
         | 
| 11177 | 
            +
                  } else {
         | 
| 11178 | 
            +
                    return value;
         | 
| 11179 | 
            +
                  }
         | 
| 10686 11180 | 
             
                };
         | 
| 10687 | 
            -
                var  | 
| 10688 | 
            -
                   | 
| 10689 | 
            -
                    return contains(keys, key);
         | 
| 10690 | 
            -
                  });
         | 
| 10691 | 
            -
                  return sectionResult(result.t, result.f);
         | 
| 11181 | 
            +
                var getIframeAttrs = function (editor) {
         | 
| 11182 | 
            +
                  return editor.getParam('iframe_attrs', {});
         | 
| 10692 11183 | 
             
                };
         | 
| 10693 | 
            -
                var  | 
| 10694 | 
            -
                   | 
| 10695 | 
            -
                  var sectionSettings = sections.hasOwnProperty(name) ? sections[name] : {};
         | 
| 10696 | 
            -
                  return Tools.extend({}, defaults, sectionSettings);
         | 
| 11184 | 
            +
                var getDocType = function (editor) {
         | 
| 11185 | 
            +
                  return editor.getParam('doctype', '<!DOCTYPE html>');
         | 
| 10697 11186 | 
             
                };
         | 
| 10698 | 
            -
                var  | 
| 10699 | 
            -
                  return  | 
| 11187 | 
            +
                var getDocumentBaseUrl = function (editor) {
         | 
| 11188 | 
            +
                  return editor.getParam('document_base_url', '');
         | 
| 10700 11189 | 
             
                };
         | 
| 10701 | 
            -
                var  | 
| 10702 | 
            -
                  return  | 
| 10703 | 
            -
                    id: id,
         | 
| 10704 | 
            -
                    theme: 'modern',
         | 
| 10705 | 
            -
                    delta_width: 0,
         | 
| 10706 | 
            -
                    delta_height: 0,
         | 
| 10707 | 
            -
                    popup_css: '',
         | 
| 10708 | 
            -
                    plugins: '',
         | 
| 10709 | 
            -
                    document_base_url: documentBaseUrl,
         | 
| 10710 | 
            -
                    add_form_submit_trigger: true,
         | 
| 10711 | 
            -
                    submit_patch: true,
         | 
| 10712 | 
            -
                    add_unload_trigger: true,
         | 
| 10713 | 
            -
                    convert_urls: true,
         | 
| 10714 | 
            -
                    relative_urls: true,
         | 
| 10715 | 
            -
                    remove_script_host: true,
         | 
| 10716 | 
            -
                    object_resizing: true,
         | 
| 10717 | 
            -
                    doctype: '<!DOCTYPE html>',
         | 
| 10718 | 
            -
                    visual: true,
         | 
| 10719 | 
            -
                    font_size_style_values: 'xx-small,x-small,small,medium,large,x-large,xx-large',
         | 
| 10720 | 
            -
                    font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%',
         | 
| 10721 | 
            -
                    forced_root_block: 'p',
         | 
| 10722 | 
            -
                    hidden_input: true,
         | 
| 10723 | 
            -
                    render_ui: true,
         | 
| 10724 | 
            -
                    indentation: '40px',
         | 
| 10725 | 
            -
                    inline_styles: true,
         | 
| 10726 | 
            -
                    convert_fonts_to_spans: true,
         | 
| 10727 | 
            -
                    indent: 'simple',
         | 
| 10728 | 
            -
                    indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',
         | 
| 10729 | 
            -
                    indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',
         | 
| 10730 | 
            -
                    entity_encoding: 'named',
         | 
| 10731 | 
            -
                    url_converter: editor.convertURL,
         | 
| 10732 | 
            -
                    url_converter_scope: editor,
         | 
| 10733 | 
            -
                    ie7_compat: true
         | 
| 10734 | 
            -
                  };
         | 
| 11190 | 
            +
                var getBodyId = function (editor) {
         | 
| 11191 | 
            +
                  return getBodySetting(editor, 'body_id', 'tinymce');
         | 
| 10735 11192 | 
             
                };
         | 
| 10736 | 
            -
                var  | 
| 10737 | 
            -
                   | 
| 10738 | 
            -
                  if (overrideSettings && overrideSettings.external_plugins) {
         | 
| 10739 | 
            -
                    return Tools.extend({}, overrideSettings.external_plugins, userDefinedExternalPlugins);
         | 
| 10740 | 
            -
                  } else {
         | 
| 10741 | 
            -
                    return userDefinedExternalPlugins;
         | 
| 10742 | 
            -
                  }
         | 
| 11193 | 
            +
                var getBodyClass = function (editor) {
         | 
| 11194 | 
            +
                  return getBodySetting(editor, 'body_class', '');
         | 
| 10743 11195 | 
             
                };
         | 
| 10744 | 
            -
                var  | 
| 10745 | 
            -
                  return  | 
| 11196 | 
            +
                var getContentSecurityPolicy = function (editor) {
         | 
| 11197 | 
            +
                  return editor.getParam('content_security_policy', '');
         | 
| 10746 11198 | 
             
                };
         | 
| 10747 | 
            -
                var  | 
| 10748 | 
            -
                   | 
| 10749 | 
            -
                  var plugins = normalizePlugins(settings.plugins);
         | 
| 10750 | 
            -
                  var platformPlugins = isTouchDevice && hasSection(sectionResult, 'mobile') ? filterMobilePlugins(plugins) : plugins;
         | 
| 10751 | 
            -
                  var combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);
         | 
| 10752 | 
            -
                  return Tools.extend(settings, { plugins: combinedPlugins.join(' ') });
         | 
| 11199 | 
            +
                var shouldPutBrInPre = function (editor) {
         | 
| 11200 | 
            +
                  return editor.getParam('br_in_pre', true);
         | 
| 10753 11201 | 
             
                };
         | 
| 10754 | 
            -
                var  | 
| 10755 | 
            -
                   | 
| 10756 | 
            -
             | 
| 11202 | 
            +
                var getForcedRootBlock = function (editor) {
         | 
| 11203 | 
            +
                  if (editor.getParam('force_p_newlines', false)) {
         | 
| 11204 | 
            +
                    return 'p';
         | 
| 11205 | 
            +
                  }
         | 
| 11206 | 
            +
                  var block = editor.getParam('forced_root_block', 'p');
         | 
| 11207 | 
            +
                  return block === false ? '' : block;
         | 
| 10757 11208 | 
             
                };
         | 
| 10758 | 
            -
                var  | 
| 10759 | 
            -
                   | 
| 10760 | 
            -
                  var extendedSettings = Tools.extend(defaultSettings, defaultOverrideSettings, sectionResult.settings(), isOnMobile(isTouchDevice, sectionResult) ? getSection(sectionResult, 'mobile', defaultMobileSettings) : {}, {
         | 
| 10761 | 
            -
                    validate: true,
         | 
| 10762 | 
            -
                    content_editable: sectionResult.settings().inline,
         | 
| 10763 | 
            -
                    external_plugins: getExternalPlugins(defaultOverrideSettings, sectionResult.settings())
         | 
| 10764 | 
            -
                  });
         | 
| 10765 | 
            -
                  return processPlugins(isTouchDevice, sectionResult, defaultOverrideSettings, extendedSettings);
         | 
| 11209 | 
            +
                var getForcedRootBlockAttrs = function (editor) {
         | 
| 11210 | 
            +
                  return editor.getParam('forced_root_block_attrs', {});
         | 
| 10766 11211 | 
             
                };
         | 
| 10767 | 
            -
                var  | 
| 10768 | 
            -
                   | 
| 10769 | 
            -
                  return combineSettings(isTouch, defaultSettings, defaultOverrideSettings, settings);
         | 
| 11212 | 
            +
                var getBrNewLineSelector = function (editor) {
         | 
| 11213 | 
            +
                  return editor.getParam('br_newline_selector', '.mce-toc h2,figcaption,caption');
         | 
| 10770 11214 | 
             
                };
         | 
| 10771 | 
            -
                var  | 
| 10772 | 
            -
                  return  | 
| 11215 | 
            +
                var getNoNewLineSelector = function (editor) {
         | 
| 11216 | 
            +
                  return editor.getParam('no_newline_selector', '');
         | 
| 10773 11217 | 
             
                };
         | 
| 10774 | 
            -
                var  | 
| 10775 | 
            -
             | 
| 10776 | 
            -
                  var output = {};
         | 
| 10777 | 
            -
                  if (typeof value === 'string') {
         | 
| 10778 | 
            -
                    each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function (val) {
         | 
| 10779 | 
            -
                      var arr = val.split('=');
         | 
| 10780 | 
            -
                      if (arr.length > 1) {
         | 
| 10781 | 
            -
                        output[Tools.trim(arr[0])] = Tools.trim(arr[1]);
         | 
| 10782 | 
            -
                      } else {
         | 
| 10783 | 
            -
                        output[Tools.trim(arr[0])] = Tools.trim(arr);
         | 
| 10784 | 
            -
                      }
         | 
| 10785 | 
            -
                    });
         | 
| 10786 | 
            -
                  } else {
         | 
| 10787 | 
            -
                    output = value;
         | 
| 10788 | 
            -
                  }
         | 
| 10789 | 
            -
                  return output;
         | 
| 11218 | 
            +
                var shouldKeepStyles = function (editor) {
         | 
| 11219 | 
            +
                  return editor.getParam('keep_styles', true);
         | 
| 10790 11220 | 
             
                };
         | 
| 10791 | 
            -
                var  | 
| 10792 | 
            -
                  return  | 
| 10793 | 
            -
                    return isArray(a) && forall(a, p);
         | 
| 10794 | 
            -
                  };
         | 
| 11221 | 
            +
                var shouldEndContainerOnEmptyBlock = function (editor) {
         | 
| 11222 | 
            +
                  return editor.getParam('end_container_on_empty_block', false);
         | 
| 10795 11223 | 
             
                };
         | 
| 10796 | 
            -
                var  | 
| 10797 | 
            -
                   | 
| 10798 | 
            -
                  if (type === 'hash') {
         | 
| 10799 | 
            -
                    return getParamObject(value);
         | 
| 10800 | 
            -
                  } else if (type === 'string') {
         | 
| 10801 | 
            -
                    return getFiltered(isString, editor, name).getOr(defaultVal);
         | 
| 10802 | 
            -
                  } else if (type === 'number') {
         | 
| 10803 | 
            -
                    return getFiltered(isNumber, editor, name).getOr(defaultVal);
         | 
| 10804 | 
            -
                  } else if (type === 'boolean') {
         | 
| 10805 | 
            -
                    return getFiltered(isBoolean, editor, name).getOr(defaultVal);
         | 
| 10806 | 
            -
                  } else if (type === 'object') {
         | 
| 10807 | 
            -
                    return getFiltered(isObject, editor, name).getOr(defaultVal);
         | 
| 10808 | 
            -
                  } else if (type === 'array') {
         | 
| 10809 | 
            -
                    return getFiltered(isArray, editor, name).getOr(defaultVal);
         | 
| 10810 | 
            -
                  } else if (type === 'string[]') {
         | 
| 10811 | 
            -
                    return getFiltered(isArrayOf(isString), editor, name).getOr(defaultVal);
         | 
| 10812 | 
            -
                  } else if (type === 'function') {
         | 
| 10813 | 
            -
                    return getFiltered(isFunction, editor, name).getOr(defaultVal);
         | 
| 10814 | 
            -
                  } else {
         | 
| 10815 | 
            -
                    return value;
         | 
| 10816 | 
            -
                  }
         | 
| 11224 | 
            +
                var getFontStyleValues = function (editor) {
         | 
| 11225 | 
            +
                  return Tools.explode(editor.getParam('font_size_style_values', ''));
         | 
| 10817 11226 | 
             
                };
         | 
| 10818 | 
            -
             | 
| 10819 | 
            -
             | 
| 10820 | 
            -
                 | 
| 10821 | 
            -
             | 
| 11227 | 
            +
                var getFontSizeClasses = function (editor) {
         | 
| 11228 | 
            +
                  return Tools.explode(editor.getParam('font_size_classes', ''));
         | 
| 11229 | 
            +
                };
         | 
| 11230 | 
            +
                var getImagesDataImgFilter = function (editor) {
         | 
| 11231 | 
            +
                  return editor.getParam('images_dataimg_filter', constant(true), 'function');
         | 
| 11232 | 
            +
                };
         | 
| 11233 | 
            +
                var isAutomaticUploadsEnabled = function (editor) {
         | 
| 11234 | 
            +
                  return editor.getParam('automatic_uploads', true, 'boolean');
         | 
| 11235 | 
            +
                };
         | 
| 11236 | 
            +
                var shouldReuseFileName = function (editor) {
         | 
| 11237 | 
            +
                  return editor.getParam('images_reuse_filename', false, 'boolean');
         | 
| 11238 | 
            +
                };
         | 
| 11239 | 
            +
                var shouldReplaceBlobUris = function (editor) {
         | 
| 11240 | 
            +
                  return editor.getParam('images_replace_blob_uris', true, 'boolean');
         | 
| 11241 | 
            +
                };
         | 
| 11242 | 
            +
                var getImageUploadUrl = function (editor) {
         | 
| 11243 | 
            +
                  return editor.getParam('images_upload_url', '', 'string');
         | 
| 11244 | 
            +
                };
         | 
| 11245 | 
            +
                var getImageUploadBasePath = function (editor) {
         | 
| 11246 | 
            +
                  return editor.getParam('images_upload_base_path', '', 'string');
         | 
| 11247 | 
            +
                };
         | 
| 11248 | 
            +
                var getImagesUploadCredentials = function (editor) {
         | 
| 11249 | 
            +
                  return editor.getParam('images_upload_credentials', false, 'boolean');
         | 
| 11250 | 
            +
                };
         | 
| 11251 | 
            +
                var getImagesUploadHandler = function (editor) {
         | 
| 11252 | 
            +
                  return editor.getParam('images_upload_handler', null, 'function');
         | 
| 11253 | 
            +
                };
         | 
| 11254 | 
            +
                var shouldUseContentCssCors = function (editor) {
         | 
| 11255 | 
            +
                  return editor.getParam('content_css_cors', false, 'boolean');
         | 
| 11256 | 
            +
                };
         | 
| 11257 | 
            +
                var getInlineBoundarySelector = function (editor) {
         | 
| 11258 | 
            +
                  return editor.getParam('inline_boundaries_selector', 'a[href],code,.mce-annotation', 'string');
         | 
| 11259 | 
            +
                };
         | 
| 11260 | 
            +
                var Settings = {
         | 
| 11261 | 
            +
                  getIframeAttrs: getIframeAttrs,
         | 
| 11262 | 
            +
                  getDocType: getDocType,
         | 
| 11263 | 
            +
                  getDocumentBaseUrl: getDocumentBaseUrl,
         | 
| 11264 | 
            +
                  getBodyId: getBodyId,
         | 
| 11265 | 
            +
                  getBodyClass: getBodyClass,
         | 
| 11266 | 
            +
                  getContentSecurityPolicy: getContentSecurityPolicy,
         | 
| 11267 | 
            +
                  shouldPutBrInPre: shouldPutBrInPre,
         | 
| 11268 | 
            +
                  getForcedRootBlock: getForcedRootBlock,
         | 
| 11269 | 
            +
                  getForcedRootBlockAttrs: getForcedRootBlockAttrs,
         | 
| 11270 | 
            +
                  getBrNewLineSelector: getBrNewLineSelector,
         | 
| 11271 | 
            +
                  getNoNewLineSelector: getNoNewLineSelector,
         | 
| 11272 | 
            +
                  shouldKeepStyles: shouldKeepStyles,
         | 
| 11273 | 
            +
                  shouldEndContainerOnEmptyBlock: shouldEndContainerOnEmptyBlock,
         | 
| 11274 | 
            +
                  getFontStyleValues: getFontStyleValues,
         | 
| 11275 | 
            +
                  getFontSizeClasses: getFontSizeClasses,
         | 
| 11276 | 
            +
                  getImagesDataImgFilter: getImagesDataImgFilter,
         | 
| 11277 | 
            +
                  isAutomaticUploadsEnabled: isAutomaticUploadsEnabled,
         | 
| 11278 | 
            +
                  shouldReuseFileName: shouldReuseFileName,
         | 
| 11279 | 
            +
                  shouldReplaceBlobUris: shouldReplaceBlobUris,
         | 
| 11280 | 
            +
                  getImageUploadUrl: getImageUploadUrl,
         | 
| 11281 | 
            +
                  getImageUploadBasePath: getImageUploadBasePath,
         | 
| 11282 | 
            +
                  getImagesUploadCredentials: getImagesUploadCredentials,
         | 
| 11283 | 
            +
                  getImagesUploadHandler: getImagesUploadHandler,
         | 
| 11284 | 
            +
                  shouldUseContentCssCors: shouldUseContentCssCors,
         | 
| 11285 | 
            +
                  getInlineBoundarySelector: getInlineBoundarySelector
         | 
| 10822 11286 | 
             
                };
         | 
| 10823 11287 |  | 
| 10824 11288 | 
             
                var isInlineTarget = function (editor, elm) {
         | 
| 10825 | 
            -
                   | 
| 10826 | 
            -
                  return is$1(Element.fromDom(elm), selector);
         | 
| 11289 | 
            +
                  return is$1(Element.fromDom(elm), Settings.getInlineBoundarySelector(editor));
         | 
| 10827 11290 | 
             
                };
         | 
| 10828 11291 | 
             
                var isRtl = function (element) {
         | 
| 10829 11292 | 
             
                  return DOMUtils$1.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl(element.textContent);
         | 
| @@ -11231,8 +11694,9 @@ | |
| 11231 11694 | 
             
                        throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);
         | 
| 11232 11695 | 
             
                      }
         | 
| 11233 11696 | 
             
                      var args = new Array(argLength);
         | 
| 11234 | 
            -
                      for (var i = 0; i < args.length; i++)
         | 
| 11697 | 
            +
                      for (var i = 0; i < args.length; i++) {
         | 
| 11235 11698 | 
             
                        args[i] = arguments[i];
         | 
| 11699 | 
            +
                      }
         | 
| 11236 11700 | 
             
                      var match = function (branches) {
         | 
| 11237 11701 | 
             
                        var branchKeys = keys(branches);
         | 
| 11238 11702 | 
             
                        if (constructors.length !== branchKeys.length) {
         | 
| @@ -11241,8 +11705,9 @@ | |
| 11241 11705 | 
             
                        var allReqd = forall(constructors, function (reqKey) {
         | 
| 11242 11706 | 
             
                          return contains(branchKeys, reqKey);
         | 
| 11243 11707 | 
             
                        });
         | 
| 11244 | 
            -
                        if (!allReqd)
         | 
| 11708 | 
            +
                        if (!allReqd) {
         | 
| 11245 11709 | 
             
                          throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\nRequired: ' + constructors.join(', '));
         | 
| 11710 | 
            +
                        }
         | 
| 11246 11711 | 
             
                        return branches[key].apply(null, args);
         | 
| 11247 11712 | 
             
                      };
         | 
| 11248 11713 | 
             
                      return {
         | 
| @@ -11567,12 +12032,8 @@ | |
| 11567 12032 | 
             
                  }
         | 
| 11568 12033 | 
             
                };
         | 
| 11569 12034 | 
             
                var deleteNormalized = function (elm, afterDeletePosOpt, normalizeWhitespace) {
         | 
| 11570 | 
            -
                  var prevTextOpt = prevSibling(elm).filter( | 
| 11571 | 
            -
             | 
| 11572 | 
            -
                  });
         | 
| 11573 | 
            -
                  var nextTextOpt = nextSibling(elm).filter(function (e) {
         | 
| 11574 | 
            -
                    return NodeType.isText(e.dom());
         | 
| 11575 | 
            -
                  });
         | 
| 12035 | 
            +
                  var prevTextOpt = prevSibling(elm).filter(isText);
         | 
| 12036 | 
            +
                  var nextTextOpt = nextSibling(elm).filter(isText);
         | 
| 11576 12037 | 
             
                  remove$1(elm);
         | 
| 11577 12038 | 
             
                  return liftN([
         | 
| 11578 12039 | 
             
                    prevTextOpt,
         | 
| @@ -13015,118 +13476,6 @@ | |
| 13015 13476 | 
             
                  forwardDeleteCommand: forwardDeleteCommand
         | 
| 13016 13477 | 
             
                };
         | 
| 13017 13478 |  | 
| 13018 | 
            -
                var getBodySetting = function (editor, name, defaultValue) {
         | 
| 13019 | 
            -
                  var value = editor.getParam(name, defaultValue);
         | 
| 13020 | 
            -
                  if (value.indexOf('=') !== -1) {
         | 
| 13021 | 
            -
                    var bodyObj = editor.getParam(name, '', 'hash');
         | 
| 13022 | 
            -
                    return bodyObj.hasOwnProperty(editor.id) ? bodyObj[editor.id] : defaultValue;
         | 
| 13023 | 
            -
                  } else {
         | 
| 13024 | 
            -
                    return value;
         | 
| 13025 | 
            -
                  }
         | 
| 13026 | 
            -
                };
         | 
| 13027 | 
            -
                var getIframeAttrs = function (editor) {
         | 
| 13028 | 
            -
                  return editor.getParam('iframe_attrs', {});
         | 
| 13029 | 
            -
                };
         | 
| 13030 | 
            -
                var getDocType = function (editor) {
         | 
| 13031 | 
            -
                  return editor.getParam('doctype', '<!DOCTYPE html>');
         | 
| 13032 | 
            -
                };
         | 
| 13033 | 
            -
                var getDocumentBaseUrl = function (editor) {
         | 
| 13034 | 
            -
                  return editor.getParam('document_base_url', '');
         | 
| 13035 | 
            -
                };
         | 
| 13036 | 
            -
                var getBodyId = function (editor) {
         | 
| 13037 | 
            -
                  return getBodySetting(editor, 'body_id', 'tinymce');
         | 
| 13038 | 
            -
                };
         | 
| 13039 | 
            -
                var getBodyClass = function (editor) {
         | 
| 13040 | 
            -
                  return getBodySetting(editor, 'body_class', '');
         | 
| 13041 | 
            -
                };
         | 
| 13042 | 
            -
                var getContentSecurityPolicy = function (editor) {
         | 
| 13043 | 
            -
                  return editor.getParam('content_security_policy', '');
         | 
| 13044 | 
            -
                };
         | 
| 13045 | 
            -
                var shouldPutBrInPre = function (editor) {
         | 
| 13046 | 
            -
                  return editor.getParam('br_in_pre', true);
         | 
| 13047 | 
            -
                };
         | 
| 13048 | 
            -
                var getForcedRootBlock = function (editor) {
         | 
| 13049 | 
            -
                  if (editor.getParam('force_p_newlines', false)) {
         | 
| 13050 | 
            -
                    return 'p';
         | 
| 13051 | 
            -
                  }
         | 
| 13052 | 
            -
                  var block = editor.getParam('forced_root_block', 'p');
         | 
| 13053 | 
            -
                  return block === false ? '' : block;
         | 
| 13054 | 
            -
                };
         | 
| 13055 | 
            -
                var getForcedRootBlockAttrs = function (editor) {
         | 
| 13056 | 
            -
                  return editor.getParam('forced_root_block_attrs', {});
         | 
| 13057 | 
            -
                };
         | 
| 13058 | 
            -
                var getBrNewLineSelector = function (editor) {
         | 
| 13059 | 
            -
                  return editor.getParam('br_newline_selector', '.mce-toc h2,figcaption,caption');
         | 
| 13060 | 
            -
                };
         | 
| 13061 | 
            -
                var getNoNewLineSelector = function (editor) {
         | 
| 13062 | 
            -
                  return editor.getParam('no_newline_selector', '');
         | 
| 13063 | 
            -
                };
         | 
| 13064 | 
            -
                var shouldKeepStyles = function (editor) {
         | 
| 13065 | 
            -
                  return editor.getParam('keep_styles', true);
         | 
| 13066 | 
            -
                };
         | 
| 13067 | 
            -
                var shouldEndContainerOnEmptyBlock = function (editor) {
         | 
| 13068 | 
            -
                  return editor.getParam('end_container_on_empty_block', false);
         | 
| 13069 | 
            -
                };
         | 
| 13070 | 
            -
                var getFontStyleValues = function (editor) {
         | 
| 13071 | 
            -
                  return Tools.explode(editor.getParam('font_size_style_values', ''));
         | 
| 13072 | 
            -
                };
         | 
| 13073 | 
            -
                var getFontSizeClasses = function (editor) {
         | 
| 13074 | 
            -
                  return Tools.explode(editor.getParam('font_size_classes', ''));
         | 
| 13075 | 
            -
                };
         | 
| 13076 | 
            -
                var getImagesDataImgFilter = function (editor) {
         | 
| 13077 | 
            -
                  return editor.getParam('images_dataimg_filter', constant(true), 'function');
         | 
| 13078 | 
            -
                };
         | 
| 13079 | 
            -
                var isAutomaticUploadsEnabled = function (editor) {
         | 
| 13080 | 
            -
                  return editor.getParam('automatic_uploads', true, 'boolean');
         | 
| 13081 | 
            -
                };
         | 
| 13082 | 
            -
                var shouldReuseFileName = function (editor) {
         | 
| 13083 | 
            -
                  return editor.getParam('images_reuse_filename', false, 'boolean');
         | 
| 13084 | 
            -
                };
         | 
| 13085 | 
            -
                var shouldReplaceBlobUris = function (editor) {
         | 
| 13086 | 
            -
                  return editor.getParam('images_replace_blob_uris', true, 'boolean');
         | 
| 13087 | 
            -
                };
         | 
| 13088 | 
            -
                var getImageUploadUrl = function (editor) {
         | 
| 13089 | 
            -
                  return editor.getParam('images_upload_url', '', 'string');
         | 
| 13090 | 
            -
                };
         | 
| 13091 | 
            -
                var getImageUploadBasePath = function (editor) {
         | 
| 13092 | 
            -
                  return editor.getParam('images_upload_base_path', '', 'string');
         | 
| 13093 | 
            -
                };
         | 
| 13094 | 
            -
                var getImagesUploadCredentials = function (editor) {
         | 
| 13095 | 
            -
                  return editor.getParam('images_upload_credentials', false, 'boolean');
         | 
| 13096 | 
            -
                };
         | 
| 13097 | 
            -
                var getImagesUploadHandler = function (editor) {
         | 
| 13098 | 
            -
                  return editor.getParam('images_upload_handler', null, 'function');
         | 
| 13099 | 
            -
                };
         | 
| 13100 | 
            -
                var shouldUseContentCssCors = function (editor) {
         | 
| 13101 | 
            -
                  return editor.getParam('content_css_cors', false, 'boolean');
         | 
| 13102 | 
            -
                };
         | 
| 13103 | 
            -
                var Settings = {
         | 
| 13104 | 
            -
                  getIframeAttrs: getIframeAttrs,
         | 
| 13105 | 
            -
                  getDocType: getDocType,
         | 
| 13106 | 
            -
                  getDocumentBaseUrl: getDocumentBaseUrl,
         | 
| 13107 | 
            -
                  getBodyId: getBodyId,
         | 
| 13108 | 
            -
                  getBodyClass: getBodyClass,
         | 
| 13109 | 
            -
                  getContentSecurityPolicy: getContentSecurityPolicy,
         | 
| 13110 | 
            -
                  shouldPutBrInPre: shouldPutBrInPre,
         | 
| 13111 | 
            -
                  getForcedRootBlock: getForcedRootBlock,
         | 
| 13112 | 
            -
                  getForcedRootBlockAttrs: getForcedRootBlockAttrs,
         | 
| 13113 | 
            -
                  getBrNewLineSelector: getBrNewLineSelector,
         | 
| 13114 | 
            -
                  getNoNewLineSelector: getNoNewLineSelector,
         | 
| 13115 | 
            -
                  shouldKeepStyles: shouldKeepStyles,
         | 
| 13116 | 
            -
                  shouldEndContainerOnEmptyBlock: shouldEndContainerOnEmptyBlock,
         | 
| 13117 | 
            -
                  getFontStyleValues: getFontStyleValues,
         | 
| 13118 | 
            -
                  getFontSizeClasses: getFontSizeClasses,
         | 
| 13119 | 
            -
                  getImagesDataImgFilter: getImagesDataImgFilter,
         | 
| 13120 | 
            -
                  isAutomaticUploadsEnabled: isAutomaticUploadsEnabled,
         | 
| 13121 | 
            -
                  shouldReuseFileName: shouldReuseFileName,
         | 
| 13122 | 
            -
                  shouldReplaceBlobUris: shouldReplaceBlobUris,
         | 
| 13123 | 
            -
                  getImageUploadUrl: getImageUploadUrl,
         | 
| 13124 | 
            -
                  getImageUploadBasePath: getImageUploadBasePath,
         | 
| 13125 | 
            -
                  getImagesUploadCredentials: getImagesUploadCredentials,
         | 
| 13126 | 
            -
                  getImagesUploadHandler: getImagesUploadHandler,
         | 
| 13127 | 
            -
                  shouldUseContentCssCors: shouldUseContentCssCors
         | 
| 13128 | 
            -
                };
         | 
| 13129 | 
            -
             | 
| 13130 13479 | 
             
                var getSpecifiedFontProp = function (propName, rootElm, elm) {
         | 
| 13131 13480 | 
             
                  var getProperty = function (elm) {
         | 
| 13132 13481 | 
             
                    return getRaw(elm, propName);
         | 
| @@ -13549,6 +13898,9 @@ | |
| 13549 13898 | 
             
                };
         | 
| 13550 13899 | 
             
                var InsertBr = { insert: insert };
         | 
| 13551 13900 |  | 
| 13901 | 
            +
                var create$3 = Immutable('start', 'soffset', 'finish', 'foffset');
         | 
| 13902 | 
            +
                var SimRange = { create: create$3 };
         | 
| 13903 | 
            +
             | 
| 13552 13904 | 
             
                var adt = Adt.generate([
         | 
| 13553 13905 | 
             
                  { before: ['element'] },
         | 
| 13554 13906 | 
             
                  {
         | 
| @@ -13559,8 +13911,24 @@ | |
| 13559 13911 | 
             
                  },
         | 
| 13560 13912 | 
             
                  { after: ['element'] }
         | 
| 13561 13913 | 
             
                ]);
         | 
| 13914 | 
            +
                var cata = function (subject, onBefore, onOn, onAfter) {
         | 
| 13915 | 
            +
                  return subject.fold(onBefore, onOn, onAfter);
         | 
| 13916 | 
            +
                };
         | 
| 13917 | 
            +
                var getStart = function (situ) {
         | 
| 13918 | 
            +
                  return situ.fold(identity, identity, identity);
         | 
| 13919 | 
            +
                };
         | 
| 13920 | 
            +
                var before$4 = adt.before;
         | 
| 13921 | 
            +
                var on = adt.on;
         | 
| 13922 | 
            +
                var after$3 = adt.after;
         | 
| 13923 | 
            +
                var Situ = {
         | 
| 13924 | 
            +
                  before: before$4,
         | 
| 13925 | 
            +
                  on: on,
         | 
| 13926 | 
            +
                  after: after$3,
         | 
| 13927 | 
            +
                  cata: cata,
         | 
| 13928 | 
            +
                  getStart: getStart
         | 
| 13929 | 
            +
                };
         | 
| 13562 13930 |  | 
| 13563 | 
            -
                var  | 
| 13931 | 
            +
                var adt$1 = Adt.generate([
         | 
| 13564 13932 | 
             
                  { domRange: ['rng'] },
         | 
| 13565 13933 | 
             
                  {
         | 
| 13566 13934 | 
             
                    relative: [
         | 
| @@ -13577,7 +13945,38 @@ | |
| 13577 13945 | 
             
                    ]
         | 
| 13578 13946 | 
             
                  }
         | 
| 13579 13947 | 
             
                ]);
         | 
| 13580 | 
            -
                var  | 
| 13948 | 
            +
                var exactFromRange = function (simRange) {
         | 
| 13949 | 
            +
                  return adt$1.exact(simRange.start(), simRange.soffset(), simRange.finish(), simRange.foffset());
         | 
| 13950 | 
            +
                };
         | 
| 13951 | 
            +
                var getStart$1 = function (selection) {
         | 
| 13952 | 
            +
                  return selection.match({
         | 
| 13953 | 
            +
                    domRange: function (rng) {
         | 
| 13954 | 
            +
                      return Element.fromDom(rng.startContainer);
         | 
| 13955 | 
            +
                    },
         | 
| 13956 | 
            +
                    relative: function (startSitu, finishSitu) {
         | 
| 13957 | 
            +
                      return Situ.getStart(startSitu);
         | 
| 13958 | 
            +
                    },
         | 
| 13959 | 
            +
                    exact: function (start, soffset, finish, foffset) {
         | 
| 13960 | 
            +
                      return start;
         | 
| 13961 | 
            +
                    }
         | 
| 13962 | 
            +
                  });
         | 
| 13963 | 
            +
                };
         | 
| 13964 | 
            +
                var domRange = adt$1.domRange;
         | 
| 13965 | 
            +
                var relative = adt$1.relative;
         | 
| 13966 | 
            +
                var exact = adt$1.exact;
         | 
| 13967 | 
            +
                var getWin = function (selection) {
         | 
| 13968 | 
            +
                  var start = getStart$1(selection);
         | 
| 13969 | 
            +
                  return defaultView(start);
         | 
| 13970 | 
            +
                };
         | 
| 13971 | 
            +
                var range = SimRange.create;
         | 
| 13972 | 
            +
                var Selection = {
         | 
| 13973 | 
            +
                  domRange: domRange,
         | 
| 13974 | 
            +
                  relative: relative,
         | 
| 13975 | 
            +
                  exact: exact,
         | 
| 13976 | 
            +
                  exactFromRange: exactFromRange,
         | 
| 13977 | 
            +
                  getWin: getWin,
         | 
| 13978 | 
            +
                  range: range
         | 
| 13979 | 
            +
                };
         | 
| 13581 13980 |  | 
| 13582 13981 | 
             
                var browser$3 = PlatformDetection$1.detect().browser;
         | 
| 13583 13982 | 
             
                var clamp = function (offset, element) {
         | 
| @@ -13590,10 +13989,10 @@ | |
| 13590 13989 | 
             
                  return offset;
         | 
| 13591 13990 | 
             
                };
         | 
| 13592 13991 | 
             
                var normalizeRng = function (rng) {
         | 
| 13593 | 
            -
                  return range(rng.start(), clamp(rng.soffset(), rng.start()), rng.finish(), clamp(rng.foffset(), rng.finish()));
         | 
| 13992 | 
            +
                  return Selection.range(rng.start(), clamp(rng.soffset(), rng.start()), rng.finish(), clamp(rng.foffset(), rng.finish()));
         | 
| 13594 13993 | 
             
                };
         | 
| 13595 13994 | 
             
                var isOrContains = function (root, elm) {
         | 
| 13596 | 
            -
                  return contains$3(root, elm) || eq(root, elm);
         | 
| 13995 | 
            +
                  return !NodeType.isRestrictedNode(elm.dom()) && (contains$3(root, elm) || eq(root, elm));
         | 
| 13597 13996 | 
             
                };
         | 
| 13598 13997 | 
             
                var isRngInRoot = function (root) {
         | 
| 13599 13998 | 
             
                  return function (rng) {
         | 
| @@ -13604,7 +14003,7 @@ | |
| 13604 14003 | 
             
                  return editor.inline === true || browser$3.isIE();
         | 
| 13605 14004 | 
             
                };
         | 
| 13606 14005 | 
             
                var nativeRangeToSelectionRange = function (r) {
         | 
| 13607 | 
            -
                  return range(Element.fromDom(r.startContainer), r.startOffset, Element.fromDom(r.endContainer), r.endOffset);
         | 
| 14006 | 
            +
                  return Selection.range(Element.fromDom(r.startContainer), r.startOffset, Element.fromDom(r.endContainer), r.endOffset);
         | 
| 13608 14007 | 
             
                };
         | 
| 13609 14008 | 
             
                var readRange = function (win) {
         | 
| 13610 14009 | 
             
                  var selection = win.getSelection();
         | 
| @@ -14513,6 +14912,156 @@ | |
| 14513 14912 | 
             
                EditorObservable = Tools.extend({}, Observable, EditorObservable);
         | 
| 14514 14913 | 
             
                var EditorObservable$1 = EditorObservable;
         | 
| 14515 14914 |  | 
| 14915 | 
            +
                var sectionResult = Immutable('sections', 'settings');
         | 
| 14916 | 
            +
                var detection = PlatformDetection$1.detect();
         | 
| 14917 | 
            +
                var isTouch = detection.deviceType.isTouch();
         | 
| 14918 | 
            +
                var mobilePlugins = [
         | 
| 14919 | 
            +
                  'lists',
         | 
| 14920 | 
            +
                  'autolink',
         | 
| 14921 | 
            +
                  'autosave'
         | 
| 14922 | 
            +
                ];
         | 
| 14923 | 
            +
                var defaultMobileSettings = { theme: 'mobile' };
         | 
| 14924 | 
            +
                var normalizePlugins = function (plugins) {
         | 
| 14925 | 
            +
                  var pluginNames = isArray(plugins) ? plugins.join(' ') : plugins;
         | 
| 14926 | 
            +
                  var trimmedPlugins = map(isString(pluginNames) ? pluginNames.split(' ') : [], trim$2);
         | 
| 14927 | 
            +
                  return filter(trimmedPlugins, function (item) {
         | 
| 14928 | 
            +
                    return item.length > 0;
         | 
| 14929 | 
            +
                  });
         | 
| 14930 | 
            +
                };
         | 
| 14931 | 
            +
                var filterMobilePlugins = function (plugins) {
         | 
| 14932 | 
            +
                  return filter(plugins, curry(contains, mobilePlugins));
         | 
| 14933 | 
            +
                };
         | 
| 14934 | 
            +
                var extractSections = function (keys, settings) {
         | 
| 14935 | 
            +
                  var result = bifilter(settings, function (value, key) {
         | 
| 14936 | 
            +
                    return contains(keys, key);
         | 
| 14937 | 
            +
                  });
         | 
| 14938 | 
            +
                  return sectionResult(result.t, result.f);
         | 
| 14939 | 
            +
                };
         | 
| 14940 | 
            +
                var getSection = function (sectionResult, name, defaults) {
         | 
| 14941 | 
            +
                  var sections = sectionResult.sections();
         | 
| 14942 | 
            +
                  var sectionSettings = sections.hasOwnProperty(name) ? sections[name] : {};
         | 
| 14943 | 
            +
                  return Tools.extend({}, defaults, sectionSettings);
         | 
| 14944 | 
            +
                };
         | 
| 14945 | 
            +
                var hasSection = function (sectionResult, name) {
         | 
| 14946 | 
            +
                  return sectionResult.sections().hasOwnProperty(name);
         | 
| 14947 | 
            +
                };
         | 
| 14948 | 
            +
                var getDefaultSettings = function (id, documentBaseUrl, editor) {
         | 
| 14949 | 
            +
                  return {
         | 
| 14950 | 
            +
                    id: id,
         | 
| 14951 | 
            +
                    theme: 'modern',
         | 
| 14952 | 
            +
                    delta_width: 0,
         | 
| 14953 | 
            +
                    delta_height: 0,
         | 
| 14954 | 
            +
                    popup_css: '',
         | 
| 14955 | 
            +
                    plugins: '',
         | 
| 14956 | 
            +
                    document_base_url: documentBaseUrl,
         | 
| 14957 | 
            +
                    add_form_submit_trigger: true,
         | 
| 14958 | 
            +
                    submit_patch: true,
         | 
| 14959 | 
            +
                    add_unload_trigger: true,
         | 
| 14960 | 
            +
                    convert_urls: true,
         | 
| 14961 | 
            +
                    relative_urls: true,
         | 
| 14962 | 
            +
                    remove_script_host: true,
         | 
| 14963 | 
            +
                    object_resizing: true,
         | 
| 14964 | 
            +
                    doctype: '<!DOCTYPE html>',
         | 
| 14965 | 
            +
                    visual: true,
         | 
| 14966 | 
            +
                    font_size_style_values: 'xx-small,x-small,small,medium,large,x-large,xx-large',
         | 
| 14967 | 
            +
                    font_size_legacy_values: 'xx-small,small,medium,large,x-large,xx-large,300%',
         | 
| 14968 | 
            +
                    forced_root_block: 'p',
         | 
| 14969 | 
            +
                    hidden_input: true,
         | 
| 14970 | 
            +
                    render_ui: true,
         | 
| 14971 | 
            +
                    indentation: '40px',
         | 
| 14972 | 
            +
                    inline_styles: true,
         | 
| 14973 | 
            +
                    convert_fonts_to_spans: true,
         | 
| 14974 | 
            +
                    indent: 'simple',
         | 
| 14975 | 
            +
                    indent_before: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',
         | 
| 14976 | 
            +
                    indent_after: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist',
         | 
| 14977 | 
            +
                    entity_encoding: 'named',
         | 
| 14978 | 
            +
                    url_converter: editor.convertURL,
         | 
| 14979 | 
            +
                    url_converter_scope: editor,
         | 
| 14980 | 
            +
                    ie7_compat: true
         | 
| 14981 | 
            +
                  };
         | 
| 14982 | 
            +
                };
         | 
| 14983 | 
            +
                var getExternalPlugins = function (overrideSettings, settings) {
         | 
| 14984 | 
            +
                  var userDefinedExternalPlugins = settings.external_plugins ? settings.external_plugins : {};
         | 
| 14985 | 
            +
                  if (overrideSettings && overrideSettings.external_plugins) {
         | 
| 14986 | 
            +
                    return Tools.extend({}, overrideSettings.external_plugins, userDefinedExternalPlugins);
         | 
| 14987 | 
            +
                  } else {
         | 
| 14988 | 
            +
                    return userDefinedExternalPlugins;
         | 
| 14989 | 
            +
                  }
         | 
| 14990 | 
            +
                };
         | 
| 14991 | 
            +
                var combinePlugins = function (forcedPlugins, plugins) {
         | 
| 14992 | 
            +
                  return [].concat(normalizePlugins(forcedPlugins)).concat(normalizePlugins(plugins));
         | 
| 14993 | 
            +
                };
         | 
| 14994 | 
            +
                var processPlugins = function (isTouchDevice, sectionResult, defaultOverrideSettings, settings) {
         | 
| 14995 | 
            +
                  var forcedPlugins = normalizePlugins(defaultOverrideSettings.forced_plugins);
         | 
| 14996 | 
            +
                  var plugins = normalizePlugins(settings.plugins);
         | 
| 14997 | 
            +
                  var platformPlugins = isTouchDevice && hasSection(sectionResult, 'mobile') ? filterMobilePlugins(plugins) : plugins;
         | 
| 14998 | 
            +
                  var combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);
         | 
| 14999 | 
            +
                  return Tools.extend(settings, { plugins: combinedPlugins.join(' ') });
         | 
| 15000 | 
            +
                };
         | 
| 15001 | 
            +
                var isOnMobile = function (isTouchDevice, sectionResult) {
         | 
| 15002 | 
            +
                  var isInline = sectionResult.settings().inline;
         | 
| 15003 | 
            +
                  return isTouchDevice && hasSection(sectionResult, 'mobile') && !isInline;
         | 
| 15004 | 
            +
                };
         | 
| 15005 | 
            +
                var combineSettings = function (isTouchDevice, defaultSettings, defaultOverrideSettings, settings) {
         | 
| 15006 | 
            +
                  var sectionResult = extractSections(['mobile'], settings);
         | 
| 15007 | 
            +
                  var extendedSettings = Tools.extend(defaultSettings, defaultOverrideSettings, sectionResult.settings(), isOnMobile(isTouchDevice, sectionResult) ? getSection(sectionResult, 'mobile', defaultMobileSettings) : {}, {
         | 
| 15008 | 
            +
                    validate: true,
         | 
| 15009 | 
            +
                    content_editable: sectionResult.settings().inline,
         | 
| 15010 | 
            +
                    external_plugins: getExternalPlugins(defaultOverrideSettings, sectionResult.settings())
         | 
| 15011 | 
            +
                  });
         | 
| 15012 | 
            +
                  return processPlugins(isTouchDevice, sectionResult, defaultOverrideSettings, extendedSettings);
         | 
| 15013 | 
            +
                };
         | 
| 15014 | 
            +
                var getEditorSettings = function (editor, id, documentBaseUrl, defaultOverrideSettings, settings) {
         | 
| 15015 | 
            +
                  var defaultSettings = getDefaultSettings(id, documentBaseUrl, editor);
         | 
| 15016 | 
            +
                  return combineSettings(isTouch, defaultSettings, defaultOverrideSettings, settings);
         | 
| 15017 | 
            +
                };
         | 
| 15018 | 
            +
                var getFiltered = function (predicate, editor, name) {
         | 
| 15019 | 
            +
                  return Option.from(editor.settings[name]).filter(predicate);
         | 
| 15020 | 
            +
                };
         | 
| 15021 | 
            +
                var getParamObject = function (value) {
         | 
| 15022 | 
            +
                  var output = {};
         | 
| 15023 | 
            +
                  if (typeof value === 'string') {
         | 
| 15024 | 
            +
                    each(value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(','), function (val) {
         | 
| 15025 | 
            +
                      var arr = val.split('=');
         | 
| 15026 | 
            +
                      if (arr.length > 1) {
         | 
| 15027 | 
            +
                        output[Tools.trim(arr[0])] = Tools.trim(arr[1]);
         | 
| 15028 | 
            +
                      } else {
         | 
| 15029 | 
            +
                        output[Tools.trim(arr[0])] = Tools.trim(arr);
         | 
| 15030 | 
            +
                      }
         | 
| 15031 | 
            +
                    });
         | 
| 15032 | 
            +
                  } else {
         | 
| 15033 | 
            +
                    output = value;
         | 
| 15034 | 
            +
                  }
         | 
| 15035 | 
            +
                  return output;
         | 
| 15036 | 
            +
                };
         | 
| 15037 | 
            +
                var isArrayOf = function (p) {
         | 
| 15038 | 
            +
                  return function (a) {
         | 
| 15039 | 
            +
                    return isArray(a) && forall(a, p);
         | 
| 15040 | 
            +
                  };
         | 
| 15041 | 
            +
                };
         | 
| 15042 | 
            +
                var getParam = function (editor, name, defaultVal, type) {
         | 
| 15043 | 
            +
                  var value = name in editor.settings ? editor.settings[name] : defaultVal;
         | 
| 15044 | 
            +
                  if (type === 'hash') {
         | 
| 15045 | 
            +
                    return getParamObject(value);
         | 
| 15046 | 
            +
                  } else if (type === 'string') {
         | 
| 15047 | 
            +
                    return getFiltered(isString, editor, name).getOr(defaultVal);
         | 
| 15048 | 
            +
                  } else if (type === 'number') {
         | 
| 15049 | 
            +
                    return getFiltered(isNumber, editor, name).getOr(defaultVal);
         | 
| 15050 | 
            +
                  } else if (type === 'boolean') {
         | 
| 15051 | 
            +
                    return getFiltered(isBoolean, editor, name).getOr(defaultVal);
         | 
| 15052 | 
            +
                  } else if (type === 'object') {
         | 
| 15053 | 
            +
                    return getFiltered(isObject, editor, name).getOr(defaultVal);
         | 
| 15054 | 
            +
                  } else if (type === 'array') {
         | 
| 15055 | 
            +
                    return getFiltered(isArray, editor, name).getOr(defaultVal);
         | 
| 15056 | 
            +
                  } else if (type === 'string[]') {
         | 
| 15057 | 
            +
                    return getFiltered(isArrayOf(isString), editor, name).getOr(defaultVal);
         | 
| 15058 | 
            +
                  } else if (type === 'function') {
         | 
| 15059 | 
            +
                    return getFiltered(isFunction, editor, name).getOr(defaultVal);
         | 
| 15060 | 
            +
                  } else {
         | 
| 15061 | 
            +
                    return value;
         | 
| 15062 | 
            +
                  }
         | 
| 15063 | 
            +
                };
         | 
| 15064 | 
            +
             | 
| 14516 15065 | 
             
                var each$b = Tools.each, explode$2 = Tools.explode;
         | 
| 14517 15066 | 
             
                var keyCodeLookup = {
         | 
| 14518 15067 | 
             
                  f1: 112,
         | 
| @@ -14665,8 +15214,8 @@ | |
| 14665 15214 | 
             
                  var doc = owner(element).dom();
         | 
| 14666 15215 | 
             
                  return element.dom() === doc.activeElement;
         | 
| 14667 15216 | 
             
                };
         | 
| 14668 | 
            -
                var active = function ( | 
| 14669 | 
            -
                  var doc =  | 
| 15217 | 
            +
                var active = function (_doc) {
         | 
| 15218 | 
            +
                  var doc = _doc !== undefined ? _doc.dom() : domGlobals.document;
         | 
| 14670 15219 | 
             
                  return Option.from(doc.activeElement).map(Element.fromDom);
         | 
| 14671 15220 | 
             
                };
         | 
| 14672 15221 | 
             
                var search = function (element) {
         | 
| @@ -16577,9 +17126,17 @@ | |
| 16577 17126 | 
             
                  if (range.collapsed) {
         | 
| 16578 17127 | 
             
                    return false;
         | 
| 16579 17128 | 
             
                  }
         | 
| 16580 | 
            -
                   | 
| 16581 | 
            -
                     | 
| 16582 | 
            -
             | 
| 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 | 
            +
                      });
         | 
| 17135 | 
            +
                    }
         | 
| 17136 | 
            +
                  }
         | 
| 17137 | 
            +
                  return exists(range.getClientRects(), function (rect) {
         | 
| 17138 | 
            +
                    return containsXY(rect, clientX, clientY);
         | 
| 17139 | 
            +
                  });
         | 
| 16583 17140 | 
             
                };
         | 
| 16584 17141 | 
             
                var RangePoint = { isXYWithinRange: isXYWithinRange };
         | 
| 16585 17142 |  | 
| @@ -16905,7 +17462,7 @@ | |
| 16905 17462 | 
             
                    if (startContainer.nodeType !== 1) {
         | 
| 16906 17463 | 
             
                      return null;
         | 
| 16907 17464 | 
             
                    }
         | 
| 16908 | 
            -
                    if (endOffset === startOffset + 1) {
         | 
| 17465 | 
            +
                    if (endOffset === startOffset + 1 && startContainer === range.endContainer) {
         | 
| 16909 17466 | 
             
                      node = startContainer.childNodes[startOffset];
         | 
| 16910 17467 | 
             
                    }
         | 
| 16911 17468 | 
             
                    if (!isContentEditableFalse$9(node)) {
         | 
| @@ -18618,7 +19175,7 @@ | |
| 18618 19175 | 
             
                        }
         | 
| 18619 19176 | 
             
                        ed.selection.setRng(RangeNormalizer.normalize(ed.selection.getRng()));
         | 
| 18620 19177 | 
             
                        bookmark = GetBookmark.getPersistentBookmark(ed.selection, true);
         | 
| 18621 | 
            -
                        applyRngStyle(dom, ExpandRange.expandRng(ed, selection.getRng(), formatList) | 
| 19178 | 
            +
                        applyRngStyle(dom, ExpandRange.expandRng(ed, selection.getRng(), formatList));
         | 
| 18622 19179 | 
             
                        if (format.styles) {
         | 
| 18623 19180 | 
             
                          MergeFormats.mergeUnderlineAndColor(dom, format, vars, curSelNode);
         | 
| 18624 19181 | 
             
                        }
         | 
| @@ -19289,17 +19846,20 @@ | |
| 19289 19846 | 
             
                var baseMerge = function (merger) {
         | 
| 19290 19847 | 
             
                  return function () {
         | 
| 19291 19848 | 
             
                    var objects = new Array(arguments.length);
         | 
| 19292 | 
            -
                    for (var i = 0; i < objects.length; i++)
         | 
| 19849 | 
            +
                    for (var i = 0; i < objects.length; i++) {
         | 
| 19293 19850 | 
             
                      objects[i] = arguments[i];
         | 
| 19294 | 
            -
                     | 
| 19851 | 
            +
                    }
         | 
| 19852 | 
            +
                    if (objects.length === 0) {
         | 
| 19295 19853 | 
             
                      throw new Error('Can\'t merge zero objects');
         | 
| 19854 | 
            +
                    }
         | 
| 19296 19855 | 
             
                    var ret = {};
         | 
| 19297 19856 | 
             
                    for (var j = 0; j < objects.length; j++) {
         | 
| 19298 19857 | 
             
                      var curObject = objects[j];
         | 
| 19299 | 
            -
                      for (var key in curObject)
         | 
| 19858 | 
            +
                      for (var key in curObject) {
         | 
| 19300 19859 | 
             
                        if (hasOwnProperty$2.call(curObject, key)) {
         | 
| 19301 19860 | 
             
                          ret[key] = merger(ret[key], curObject[key]);
         | 
| 19302 19861 | 
             
                        }
         | 
| 19862 | 
            +
                      }
         | 
| 19303 19863 | 
             
                    }
         | 
| 19304 19864 | 
             
                    return ret;
         | 
| 19305 19865 | 
             
                  };
         | 
| @@ -20632,7 +21192,6 @@ | |
| 20632 21192 | 
             
                  var contextMenuSelectImage = function (evt) {
         | 
| 20633 21193 | 
             
                    var target = evt.target;
         | 
| 20634 21194 | 
             
                    if (isEventOnImageOutsideRange(evt, editor.selection.getRng()) && !evt.isDefaultPrevented()) {
         | 
| 20635 | 
            -
                      evt.preventDefault();
         | 
| 20636 21195 | 
             
                      editor.selection.select(target);
         | 
| 20637 21196 | 
             
                    }
         | 
| 20638 21197 | 
             
                  };
         | 
| @@ -21428,7 +21987,7 @@ | |
| 21428 21987 | 
             
                    return elm.dom();
         | 
| 21429 21988 | 
             
                  }).getOr(root);
         | 
| 21430 21989 | 
             
                };
         | 
| 21431 | 
            -
                var getStart = function (root, rng, real) {
         | 
| 21990 | 
            +
                var getStart$2 = function (root, rng, real) {
         | 
| 21432 21991 | 
             
                  return getEndpointElement(root, rng, true, real, function (elm, offset) {
         | 
| 21433 21992 | 
             
                    return Math.min(childNodesCount(elm), offset);
         | 
| 21434 21993 | 
             
                  });
         | 
| @@ -21488,7 +22047,7 @@ | |
| 21488 22047 | 
             
                  var node, root;
         | 
| 21489 22048 | 
             
                  var selectedBlocks = [];
         | 
| 21490 22049 | 
             
                  root = dom.getRoot();
         | 
| 21491 | 
            -
                  startElm = dom.getParent(startElm || getStart(root, rng, rng.collapsed), dom.isBlock);
         | 
| 22050 | 
            +
                  startElm = dom.getParent(startElm || getStart$2(root, rng, rng.collapsed), dom.isBlock);
         | 
| 21492 22051 | 
             
                  endElm = dom.getParent(endElm || getEnd(root, rng, rng.collapsed), dom.isBlock);
         | 
| 21493 22052 | 
             
                  if (startElm && startElm !== root) {
         | 
| 21494 22053 | 
             
                    selectedBlocks.push(startElm);
         | 
| @@ -21537,7 +22096,7 @@ | |
| 21537 22096 | 
             
                    return isAttachedToDom(rng.startContainer) && isAttachedToDom(rng.endContainer);
         | 
| 21538 22097 | 
             
                  }
         | 
| 21539 22098 | 
             
                };
         | 
| 21540 | 
            -
                var Selection = function (dom, win, serializer, editor) {
         | 
| 22099 | 
            +
                var Selection$1 = function (dom, win, serializer, editor) {
         | 
| 21541 22100 | 
             
                  var bookmarkManager, controlSelection;
         | 
| 21542 22101 | 
             
                  var selectedRange, explicitRange, selectorChangedData;
         | 
| 21543 22102 | 
             
                  var setCursorLocation = function (node, offset) {
         | 
| @@ -21558,8 +22117,8 @@ | |
| 21558 22117 | 
             
                  var setContent = function (content, args) {
         | 
| 21559 22118 | 
             
                    return SetSelectionContent.setContent(editor, content, args);
         | 
| 21560 22119 | 
             
                  };
         | 
| 21561 | 
            -
                  var getStart | 
| 21562 | 
            -
                    return getStart(editor.getBody(), getRng(), real);
         | 
| 22120 | 
            +
                  var getStart = function (real) {
         | 
| 22121 | 
            +
                    return getStart$2(editor.getBody(), getRng(), real);
         | 
| 21563 22122 | 
             
                  };
         | 
| 21564 22123 | 
             
                  var getEnd$1 = function (real) {
         | 
| 21565 22124 | 
             
                    return getEnd(editor.getBody(), getRng(), real);
         | 
| @@ -21617,7 +22176,7 @@ | |
| 21617 22176 | 
             
                      }
         | 
| 21618 22177 | 
             
                    }
         | 
| 21619 22178 | 
             
                    try {
         | 
| 21620 | 
            -
                      if (selection = getSel()) {
         | 
| 22179 | 
            +
                      if ((selection = getSel()) && !NodeType.isRestrictedNode(selection.anchorNode)) {
         | 
| 21621 22180 | 
             
                        if (selection.rangeCount > 0) {
         | 
| 21622 22181 | 
             
                          rng = selection.getRangeAt(0);
         | 
| 21623 22182 | 
             
                        } else {
         | 
| @@ -21824,7 +22383,7 @@ | |
| 21824 22383 | 
             
                    getSel: getSel,
         | 
| 21825 22384 | 
             
                    setRng: setRng,
         | 
| 21826 22385 | 
             
                    getRng: getRng,
         | 
| 21827 | 
            -
                    getStart: getStart | 
| 22386 | 
            +
                    getStart: getStart,
         | 
| 21828 22387 | 
             
                    getEnd: getEnd$1,
         | 
| 21829 22388 | 
             
                    getSelectedBlocks: getSelectedBlocks$1,
         | 
| 21830 22389 | 
             
                    normalize: normalize,
         | 
| @@ -22332,7 +22891,7 @@ | |
| 22332 22891 | 
             
                  return function () {
         | 
| 22333 22892 | 
             
                    return Option.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(function (td) {
         | 
| 22334 22893 | 
             
                      return Option.from(editor.dom.getParent(td, 'table')).map(function (table) {
         | 
| 22335 | 
            -
                        return navigateHorizontally(editor, forward, table | 
| 22894 | 
            +
                        return navigateHorizontally(editor, forward, table);
         | 
| 22336 22895 | 
             
                      });
         | 
| 22337 22896 | 
             
                    }).getOr(false);
         | 
| 22338 22897 | 
             
                  };
         | 
| @@ -23282,9 +23841,20 @@ | |
| 23282 23841 | 
             
                var navigateIgnoreEmptyTextNodes = function (forward, root, from) {
         | 
| 23283 23842 | 
             
                  return CaretFinder.navigateIgnore(forward, root, from, isEmptyText);
         | 
| 23284 23843 | 
             
                };
         | 
| 23844 | 
            +
                var getClosestBlock = function (root, pos) {
         | 
| 23845 | 
            +
                  return find(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);
         | 
| 23846 | 
            +
                };
         | 
| 23847 | 
            +
                var isAtBeforeAfterBlockBoundary = function (forward, root, pos) {
         | 
| 23848 | 
            +
                  return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {
         | 
| 23849 | 
            +
                    return getClosestBlock(root, pos).fold(function () {
         | 
| 23850 | 
            +
                      return isInSameBlock(newPos, pos, root.dom()) === false;
         | 
| 23851 | 
            +
                    }, function (fromBlock) {
         | 
| 23852 | 
            +
                      return isInSameBlock(newPos, pos, root.dom()) === false && contains$3(fromBlock, Element.fromDom(newPos.container()));
         | 
| 23853 | 
            +
                    });
         | 
| 23854 | 
            +
                  });
         | 
| 23855 | 
            +
                };
         | 
| 23285 23856 | 
             
                var isAtBlockBoundary = function (forward, root, pos) {
         | 
| 23286 | 
            -
                   | 
| 23287 | 
            -
                  return head(parentBlocks).fold(function () {
         | 
| 23857 | 
            +
                  return getClosestBlock(root, pos).fold(function () {
         | 
| 23288 23858 | 
             
                    return navigateIgnoreEmptyTextNodes(forward, root.dom(), pos).forall(function (newPos) {
         | 
| 23289 23859 | 
             
                      return isInSameBlock(newPos, pos, root.dom()) === false;
         | 
| 23290 23860 | 
             
                    });
         | 
| @@ -23294,12 +23864,14 @@ | |
| 23294 23864 | 
             
                };
         | 
| 23295 23865 | 
             
                var isAtStartOfBlock = curry(isAtBlockBoundary, false);
         | 
| 23296 23866 | 
             
                var isAtEndOfBlock = curry(isAtBlockBoundary, true);
         | 
| 23867 | 
            +
                var isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false);
         | 
| 23868 | 
            +
                var isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true);
         | 
| 23297 23869 |  | 
| 23298 23870 | 
             
                var nbsp = '\xA0';
         | 
| 23299 23871 | 
             
                var isInMiddleOfText = function (pos) {
         | 
| 23300 23872 | 
             
                  return CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd();
         | 
| 23301 23873 | 
             
                };
         | 
| 23302 | 
            -
                var getClosestBlock = function (root, pos) {
         | 
| 23874 | 
            +
                var getClosestBlock$1 = function (root, pos) {
         | 
| 23303 23875 | 
             
                  var parentBlocks = filter(Parents.parentsAndSelf(Element.fromDom(pos.container()), root), isBlock);
         | 
| 23304 23876 | 
             
                  return head(parentBlocks).getOr(root);
         | 
| 23305 23877 | 
             
                };
         | 
| @@ -23307,20 +23879,19 @@ | |
| 23307 23879 | 
             
                  if (isInMiddleOfText(pos)) {
         | 
| 23308 23880 | 
             
                    return isAfterSpace(pos);
         | 
| 23309 23881 | 
             
                  } else {
         | 
| 23310 | 
            -
                    return isAfterSpace(pos) || CaretFinder.prevPosition(getClosestBlock(root, pos).dom(), pos).exists(isAfterSpace);
         | 
| 23882 | 
            +
                    return isAfterSpace(pos) || CaretFinder.prevPosition(getClosestBlock$1(root, pos).dom(), pos).exists(isAfterSpace);
         | 
| 23311 23883 | 
             
                  }
         | 
| 23312 23884 | 
             
                };
         | 
| 23313 23885 | 
             
                var hasSpaceAfter = function (root, pos) {
         | 
| 23314 23886 | 
             
                  if (isInMiddleOfText(pos)) {
         | 
| 23315 23887 | 
             
                    return isBeforeSpace(pos);
         | 
| 23316 23888 | 
             
                  } else {
         | 
| 23317 | 
            -
                    return isBeforeSpace(pos) || CaretFinder.nextPosition(getClosestBlock(root, pos).dom(), pos).exists(isBeforeSpace);
         | 
| 23889 | 
            +
                    return isBeforeSpace(pos) || CaretFinder.nextPosition(getClosestBlock$1(root, pos).dom(), pos).exists(isBeforeSpace);
         | 
| 23318 23890 | 
             
                  }
         | 
| 23319 23891 | 
             
                };
         | 
| 23320 23892 | 
             
                var isPreValue = function (value) {
         | 
| 23321 23893 | 
             
                  return contains([
         | 
| 23322 23894 | 
             
                    'pre',
         | 
| 23323 | 
            -
                    'pre-line',
         | 
| 23324 23895 | 
             
                    'pre-wrap'
         | 
| 23325 23896 | 
             
                  ], value);
         | 
| 23326 23897 | 
             
                };
         | 
| @@ -23351,7 +23922,7 @@ | |
| 23351 23922 | 
             
                  if (isInPre(pos)) {
         | 
| 23352 23923 | 
             
                    return false;
         | 
| 23353 23924 | 
             
                  } else {
         | 
| 23354 | 
            -
                    return isAtStartOfBlock(root, pos) || isAfterBr(root, pos) || hasSpaceBefore(root, pos);
         | 
| 23925 | 
            +
                    return isAtStartOfBlock(root, pos) || isBeforeBlock(root, pos) || isAfterBr(root, pos) || hasSpaceBefore(root, pos);
         | 
| 23355 23926 | 
             
                  }
         | 
| 23356 23927 | 
             
                };
         | 
| 23357 23928 | 
             
                var leanRight = function (pos) {
         | 
| @@ -23368,7 +23939,7 @@ | |
| 23368 23939 | 
             
                  if (isInPre(afterPos)) {
         | 
| 23369 23940 | 
             
                    return false;
         | 
| 23370 23941 | 
             
                  } else {
         | 
| 23371 | 
            -
                    return isAtEndOfBlock(root, afterPos) || isBeforeBr(root, afterPos) || hasSpaceAfter(root, afterPos);
         | 
| 23942 | 
            +
                    return isAtEndOfBlock(root, afterPos) || isAfterBlock(root, afterPos) || isBeforeBr(root, afterPos) || hasSpaceAfter(root, afterPos);
         | 
| 23372 23943 | 
             
                  }
         | 
| 23373 23944 | 
             
                };
         | 
| 23374 23945 | 
             
                var needsToBeNbsp = function (root, pos) {
         | 
| @@ -24224,7 +24795,7 @@ | |
| 24224 24795 | 
             
                  });
         | 
| 24225 24796 | 
             
                  editor.parser = createParser(editor);
         | 
| 24226 24797 | 
             
                  editor.serializer = DomSerializer$1(settings, editor);
         | 
| 24227 | 
            -
                  editor.selection = Selection(editor.dom, editor.getWin(), editor.serializer, editor);
         | 
| 24798 | 
            +
                  editor.selection = Selection$1(editor.dom, editor.getWin(), editor.serializer, editor);
         | 
| 24228 24799 | 
             
                  editor.annotator = Annotator(editor);
         | 
| 24229 24800 | 
             
                  editor.formatter = Formatter(editor);
         | 
| 24230 24801 | 
             
                  editor.undoManager = UndoManager(editor);
         | 
| @@ -25773,8 +26344,8 @@ | |
| 25773 26344 | 
             
                  defaultSettings: {},
         | 
| 25774 26345 | 
             
                  $: DomQuery,
         | 
| 25775 26346 | 
             
                  majorVersion: '4',
         | 
| 25776 | 
            -
                  minorVersion: '9. | 
| 25777 | 
            -
                  releaseDate: '2019- | 
| 26347 | 
            +
                  minorVersion: '9.6',
         | 
| 26348 | 
            +
                  releaseDate: '2019-09-02',
         | 
| 25778 26349 | 
             
                  editors: legacyEditors,
         | 
| 25779 26350 | 
             
                  i18n: I18n,
         | 
| 25780 26351 | 
             
                  activeEditor: null,
         | 
| @@ -26171,7 +26742,7 @@ | |
| 26171 26742 | 
             
                  if (rel[4] === 'c') {
         | 
| 26172 26743 | 
             
                    x -= round$2(w / 2);
         | 
| 26173 26744 | 
             
                  }
         | 
| 26174 | 
            -
                  return create$ | 
| 26745 | 
            +
                  return create$4(x, y, w, h);
         | 
| 26175 26746 | 
             
                };
         | 
| 26176 26747 | 
             
                var findBestRelativePosition = function (rect, targetRect, constrainRect, rels) {
         | 
| 26177 26748 | 
             
                  var pos, i;
         | 
| @@ -26184,7 +26755,7 @@ | |
| 26184 26755 | 
             
                  return null;
         | 
| 26185 26756 | 
             
                };
         | 
| 26186 26757 | 
             
                var inflate = function (rect, w, h) {
         | 
| 26187 | 
            -
                  return create$ | 
| 26758 | 
            +
                  return create$4(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);
         | 
| 26188 26759 | 
             
                };
         | 
| 26189 26760 | 
             
                var intersect = function (rect, cropRect) {
         | 
| 26190 26761 | 
             
                  var x1, y1, x2, y2;
         | 
| @@ -26195,7 +26766,7 @@ | |
| 26195 26766 | 
             
                  if (x2 - x1 < 0 || y2 - y1 < 0) {
         | 
| 26196 26767 | 
             
                    return null;
         | 
| 26197 26768 | 
             
                  }
         | 
| 26198 | 
            -
                  return create$ | 
| 26769 | 
            +
                  return create$4(x1, y1, x2 - x1, y2 - y1);
         | 
| 26199 26770 | 
             
                };
         | 
| 26200 26771 | 
             
                var clamp$1 = function (rect, clampRect, fixedSize) {
         | 
| 26201 26772 | 
             
                  var underflowX1, underflowY1, overflowX2, overflowY2, x1, y1, x2, y2, cx2, cy2;
         | 
| @@ -26219,9 +26790,9 @@ | |
| 26219 26790 | 
             
                  }
         | 
| 26220 26791 | 
             
                  x2 -= overflowX2;
         | 
| 26221 26792 | 
             
                  y2 -= overflowY2;
         | 
| 26222 | 
            -
                  return create$ | 
| 26793 | 
            +
                  return create$4(x1, y1, x2 - x1, y2 - y1);
         | 
| 26223 26794 | 
             
                };
         | 
| 26224 | 
            -
                var create$ | 
| 26795 | 
            +
                var create$4 = function (x, y, w, h) {
         | 
| 26225 26796 | 
             
                  return {
         | 
| 26226 26797 | 
             
                    x: x,
         | 
| 26227 26798 | 
             
                    y: y,
         | 
| @@ -26230,7 +26801,7 @@ | |
| 26230 26801 | 
             
                  };
         | 
| 26231 26802 | 
             
                };
         | 
| 26232 26803 | 
             
                var fromClientRect = function (clientRect) {
         | 
| 26233 | 
            -
                  return create$ | 
| 26804 | 
            +
                  return create$4(clientRect.left, clientRect.top, clientRect.width, clientRect.height);
         | 
| 26234 26805 | 
             
                };
         | 
| 26235 26806 | 
             
                var Rect = {
         | 
| 26236 26807 | 
             
                  inflate: inflate,
         | 
| @@ -26238,7 +26809,7 @@ | |
| 26238 26809 | 
             
                  findBestRelativePosition: findBestRelativePosition,
         | 
| 26239 26810 | 
             
                  intersect: intersect,
         | 
| 26240 26811 | 
             
                  clamp: clamp$1,
         | 
| 26241 | 
            -
                  create: create$ | 
| 26812 | 
            +
                  create: create$4,
         | 
| 26242 26813 | 
             
                  fromClientRect: fromClientRect
         | 
| 26243 26814 | 
             
                };
         | 
| 26244 26815 |  | 
| @@ -26676,7 +27247,7 @@ | |
| 26676 27247 | 
             
                  }
         | 
| 26677 27248 | 
             
                };
         | 
| 26678 27249 |  | 
| 26679 | 
            -
                var create$ | 
| 27250 | 
            +
                var create$5 = function () {
         | 
| 26680 27251 | 
             
                  return function () {
         | 
| 26681 27252 | 
             
                    var data = {};
         | 
| 26682 27253 | 
             
                    var keys = [];
         | 
| @@ -26719,7 +27290,7 @@ | |
| 26719 27290 | 
             
                try {
         | 
| 26720 27291 | 
             
                  localStorage = domGlobals.window.localStorage;
         | 
| 26721 27292 | 
             
                } catch (e) {
         | 
| 26722 | 
            -
                  localStorage = create$ | 
| 27293 | 
            +
                  localStorage = create$5();
         | 
| 26723 27294 | 
             
                }
         | 
| 26724 27295 | 
             
                var LocalStorage = localStorage;
         | 
| 26725 27296 |  | 
| @@ -26754,7 +27325,7 @@ | |
| 26754 27325 | 
             
                    Serializer: DomSerializer$1,
         | 
| 26755 27326 | 
             
                    ControlSelection: ControlSelection,
         | 
| 26756 27327 | 
             
                    BookmarkManager: BookmarkManager$1,
         | 
| 26757 | 
            -
                    Selection: Selection,
         | 
| 27328 | 
            +
                    Selection: Selection$1,
         | 
| 26758 27329 | 
             
                    Event: EventUtils.Event
         | 
| 26759 27330 | 
             
                  },
         | 
| 26760 27331 | 
             
                  html: {
         |