Subversion Repositories oidplus

Rev

Rev 1042 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1042 Rev 1422
Line 2... Line 2...
2
 * Copyright (c) Tiny Technologies, Inc. All rights reserved.
2
 * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3
 * Licensed under the LGPL or a commercial license.
3
 * Licensed under the LGPL or a commercial license.
4
 * For LGPL see License.txt in the project root for license information.
4
 * For LGPL see License.txt in the project root for license information.
5
 * For commercial licenses see https://www.tiny.cloud/
5
 * For commercial licenses see https://www.tiny.cloud/
6
 *
6
 *
7
 * Version: 5.10.7 (2022-12-06)
7
 * Version: 5.10.8 (2023-10-19)
8
 */
8
 */
9
(function () {
9
(function () {
10
    'use strict';
10
    'use strict';
11
 
11
 
12
    var typeOf = function (x) {
12
    var typeOf = function (x) {
Line 9461... Line 9461...
9461
        option('role'),
9461
        option('role'),
9462
        defaulted('eventOrder', {})
9462
        defaulted('eventOrder', {})
9463
      ]
9463
      ]
9464
    });
9464
    });
9465
 
9465
 
-
 
9466
    var getAttrs = function (elem) {
-
 
9467
      var attributes = elem.dom.attributes !== undefined ? elem.dom.attributes : [];
-
 
9468
      return foldl(attributes, function (b, attr) {
-
 
9469
        var _a;
-
 
9470
        if (attr.name === 'class') {
-
 
9471
          return b;
-
 
9472
        } else {
-
 
9473
          return __assign(__assign({}, b), (_a = {}, _a[attr.name] = attr.value, _a));
-
 
9474
        }
-
 
9475
      }, {});
-
 
9476
    };
-
 
9477
    var getClasses = function (elem) {
-
 
9478
      return Array.prototype.slice.call(elem.dom.classList, 0);
-
 
9479
    };
-
 
9480
    var fromHtml = function (html) {
-
 
9481
      var elem = SugarElement.fromHtml(html);
-
 
9482
      var children$1 = children(elem);
-
 
9483
      var attrs = getAttrs(elem);
-
 
9484
      var classes = getClasses(elem);
-
 
9485
      var contents = children$1.length === 0 ? {} : { innerHtml: get$7(elem) };
-
 
9486
      return __assign({
-
 
9487
        tag: name$2(elem),
-
 
9488
        classes: classes,
-
 
9489
        attributes: attrs
-
 
9490
      }, contents);
-
 
9491
    };
-
 
9492
 
9466
    var record = function (spec) {
9493
    var record = function (spec) {
9467
      var uid = isSketchSpec(spec) && hasNonNullableKey(spec, 'uid') ? spec.uid : generate$5('memento');
9494
      var uid = isSketchSpec(spec) && hasNonNullableKey(spec, 'uid') ? spec.uid : generate$5('memento');
9468
      var get = function (anyInSystem) {
9495
      var get = function (anyInSystem) {
9469
        return anyInSystem.getSystem().getByUid(uid).getOrDie();
9496
        return anyInSystem.getSystem().getByUid(uid).getOrDie();
9470
      };
9497
      };
Line 9479... Line 9506...
9479
        getOpt: getOpt,
9506
        getOpt: getOpt,
9480
        asSpec: asSpec
9507
        asSpec: asSpec
9481
      };
9508
      };
9482
    };
9509
    };
9483
 
9510
 
-
 
9511
    function _typeof(obj) {
-
 
9512
      '@babel/helpers - typeof';
-
 
9513
      return _typeof = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (obj) {
-
 
9514
        return typeof obj;
-
 
9515
      } : function (obj) {
-
 
9516
        return obj && 'function' == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;
-
 
9517
      }, _typeof(obj);
-
 
9518
    }
-
 
9519
    function _setPrototypeOf(o, p) {
-
 
9520
      _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-
 
9521
        o.__proto__ = p;
-
 
9522
        return o;
-
 
9523
      };
-
 
9524
      return _setPrototypeOf(o, p);
-
 
9525
    }
-
 
9526
    function _isNativeReflectConstruct() {
-
 
9527
      if (typeof Reflect === 'undefined' || !Reflect.construct)
-
 
9528
        return false;
-
 
9529
      if (Reflect.construct.sham)
-
 
9530
        return false;
-
 
9531
      if (typeof Proxy === 'function')
-
 
9532
        return true;
-
 
9533
      try {
-
 
9534
        Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {
-
 
9535
        }));
-
 
9536
        return true;
-
 
9537
      } catch (e) {
-
 
9538
        return false;
-
 
9539
      }
-
 
9540
    }
-
 
9541
    function _construct(Parent, args, Class) {
-
 
9542
      if (_isNativeReflectConstruct()) {
-
 
9543
        _construct = Reflect.construct;
-
 
9544
      } else {
-
 
9545
        _construct = function _construct(Parent, args, Class) {
-
 
9546
          var a = [null];
-
 
9547
          a.push.apply(a, args);
-
 
9548
          var Constructor = Function.bind.apply(Parent, a);
-
 
9549
          var instance = new Constructor();
-
 
9550
          if (Class)
-
 
9551
            _setPrototypeOf(instance, Class.prototype);
-
 
9552
          return instance;
-
 
9553
        };
-
 
9554
      }
-
 
9555
      return _construct.apply(null, arguments);
-
 
9556
    }
-
 
9557
    function _toConsumableArray(arr) {
-
 
9558
      return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
-
 
9559
    }
-
 
9560
    function _arrayWithoutHoles(arr) {
-
 
9561
      if (Array.isArray(arr))
-
 
9562
        return _arrayLikeToArray(arr);
-
 
9563
    }
-
 
9564
    function _iterableToArray(iter) {
-
 
9565
      if (typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null || iter['@@iterator'] != null)
-
 
9566
        return Array.from(iter);
-
 
9567
    }
-
 
9568
    function _unsupportedIterableToArray(o, minLen) {
-
 
9569
      if (!o)
-
 
9570
        return;
-
 
9571
      if (typeof o === 'string')
-
 
9572
        return _arrayLikeToArray(o, minLen);
-
 
9573
      var n = Object.prototype.toString.call(o).slice(8, -1);
-
 
9574
      if (n === 'Object' && o.constructor)
-
 
9575
        n = o.constructor.name;
-
 
9576
      if (n === 'Map' || n === 'Set')
-
 
9577
        return Array.from(o);
-
 
9578
      if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
-
 
9579
        return _arrayLikeToArray(o, minLen);
-
 
9580
    }
-
 
9581
    function _arrayLikeToArray(arr, len) {
-
 
9582
      if (len == null || len > arr.length)
-
 
9583
        len = arr.length;
-
 
9584
      for (var i = 0, arr2 = new Array(len); i < len; i++)
-
 
9585
        arr2[i] = arr[i];
-
 
9586
      return arr2;
-
 
9587
    }
-
 
9588
    function _nonIterableSpread() {
-
 
9589
      throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
-
 
9590
    }
-
 
9591
    var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-
 
9592
    var freeze = Object.freeze, seal = Object.seal, create$5 = Object.create;
-
 
9593
    var _ref = typeof Reflect !== 'undefined' && Reflect, apply$1 = _ref.apply, construct = _ref.construct;
-
 
9594
    if (!apply$1) {
-
 
9595
      apply$1 = function apply(fun, thisValue, args) {
-
 
9596
        return fun.apply(thisValue, args);
-
 
9597
      };
-
 
9598
    }
-
 
9599
    if (!freeze) {
-
 
9600
      freeze = function freeze(x) {
-
 
9601
        return x;
-
 
9602
      };
-
 
9603
    }
-
 
9604
    if (!seal) {
-
 
9605
      seal = function seal(x) {
-
 
9606
        return x;
-
 
9607
      };
-
 
9608
    }
-
 
9609
    if (!construct) {
-
 
9610
      construct = function construct(Func, args) {
-
 
9611
        return _construct(Func, _toConsumableArray(args));
-
 
9612
      };
-
 
9613
    }
-
 
9614
    var arrayForEach = unapply(Array.prototype.forEach);
-
 
9615
    var arrayPop = unapply(Array.prototype.pop);
-
 
9616
    var arrayPush = unapply(Array.prototype.push);
-
 
9617
    var stringToLowerCase = unapply(String.prototype.toLowerCase);
-
 
9618
    var stringMatch = unapply(String.prototype.match);
-
 
9619
    var stringReplace = unapply(String.prototype.replace);
-
 
9620
    var stringIndexOf = unapply(String.prototype.indexOf);
-
 
9621
    var stringTrim = unapply(String.prototype.trim);
-
 
9622
    var regExpTest = unapply(RegExp.prototype.test);
-
 
9623
    var typeErrorCreate = unconstruct(TypeError);
-
 
9624
    function unapply(func) {
-
 
9625
      return function (thisArg) {
-
 
9626
        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-
 
9627
          args[_key - 1] = arguments[_key];
-
 
9628
        }
-
 
9629
        return apply$1(func, thisArg, args);
-
 
9630
      };
-
 
9631
    }
-
 
9632
    function unconstruct(func) {
-
 
9633
      return function () {
-
 
9634
        for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-
 
9635
          args[_key2] = arguments[_key2];
-
 
9636
        }
-
 
9637
        return construct(func, args);
-
 
9638
      };
-
 
9639
    }
-
 
9640
    function addToSet(set, array) {
-
 
9641
      if (setPrototypeOf) {
-
 
9642
        setPrototypeOf(set, null);
-
 
9643
      }
-
 
9644
      var l = array.length;
-
 
9645
      while (l--) {
-
 
9646
        var element = array[l];
-
 
9647
        if (typeof element === 'string') {
-
 
9648
          var lcElement = stringToLowerCase(element);
-
 
9649
          if (lcElement !== element) {
-
 
9650
            if (!isFrozen(array)) {
-
 
9651
              array[l] = lcElement;
-
 
9652
            }
-
 
9653
            element = lcElement;
-
 
9654
          }
-
 
9655
        }
-
 
9656
        set[element] = true;
-
 
9657
      }
-
 
9658
      return set;
-
 
9659
    }
-
 
9660
    function clone$1(object) {
-
 
9661
      var newObject = create$5(null);
-
 
9662
      var property;
-
 
9663
      for (property in object) {
-
 
9664
        if (apply$1(hasOwnProperty, object, [property])) {
-
 
9665
          newObject[property] = object[property];
-
 
9666
        }
-
 
9667
      }
-
 
9668
      return newObject;
-
 
9669
    }
-
 
9670
    function lookupGetter(object, prop) {
-
 
9671
      while (object !== null) {
-
 
9672
        var desc = getOwnPropertyDescriptor(object, prop);
-
 
9673
        if (desc) {
-
 
9674
          if (desc.get) {
-
 
9675
            return unapply(desc.get);
-
 
9676
          }
-
 
9677
          if (typeof desc.value === 'function') {
-
 
9678
            return unapply(desc.value);
-
 
9679
          }
-
 
9680
        }
-
 
9681
        object = getPrototypeOf(object);
-
 
9682
      }
-
 
9683
      function fallbackValue(element) {
-
 
9684
        console.warn('fallback value for', element);
-
 
9685
        return null;
-
 
9686
      }
-
 
9687
      return fallbackValue;
-
 
9688
    }
-
 
9689
    var html$1 = freeze([
-
 
9690
      'a',
-
 
9691
      'abbr',
-
 
9692
      'acronym',
-
 
9693
      'address',
-
 
9694
      'area',
-
 
9695
      'article',
-
 
9696
      'aside',
-
 
9697
      'audio',
-
 
9698
      'b',
-
 
9699
      'bdi',
-
 
9700
      'bdo',
-
 
9701
      'big',
-
 
9702
      'blink',
-
 
9703
      'blockquote',
-
 
9704
      'body',
-
 
9705
      'br',
-
 
9706
      'button',
-
 
9707
      'canvas',
-
 
9708
      'caption',
-
 
9709
      'center',
-
 
9710
      'cite',
-
 
9711
      'code',
-
 
9712
      'col',
-
 
9713
      'colgroup',
-
 
9714
      'content',
-
 
9715
      'data',
-
 
9716
      'datalist',
-
 
9717
      'dd',
-
 
9718
      'decorator',
-
 
9719
      'del',
-
 
9720
      'details',
-
 
9721
      'dfn',
-
 
9722
      'dialog',
-
 
9723
      'dir',
-
 
9724
      'div',
-
 
9725
      'dl',
-
 
9726
      'dt',
-
 
9727
      'element',
-
 
9728
      'em',
-
 
9729
      'fieldset',
-
 
9730
      'figcaption',
-
 
9731
      'figure',
-
 
9732
      'font',
-
 
9733
      'footer',
-
 
9734
      'form',
-
 
9735
      'h1',
-
 
9736
      'h2',
-
 
9737
      'h3',
-
 
9738
      'h4',
-
 
9739
      'h5',
-
 
9740
      'h6',
-
 
9741
      'head',
-
 
9742
      'header',
-
 
9743
      'hgroup',
-
 
9744
      'hr',
-
 
9745
      'html',
-
 
9746
      'i',
-
 
9747
      'img',
-
 
9748
      'input',
-
 
9749
      'ins',
-
 
9750
      'kbd',
-
 
9751
      'label',
-
 
9752
      'legend',
-
 
9753
      'li',
-
 
9754
      'main',
-
 
9755
      'map',
-
 
9756
      'mark',
-
 
9757
      'marquee',
-
 
9758
      'menu',
-
 
9759
      'menuitem',
-
 
9760
      'meter',
-
 
9761
      'nav',
-
 
9762
      'nobr',
-
 
9763
      'ol',
-
 
9764
      'optgroup',
-
 
9765
      'option',
-
 
9766
      'output',
-
 
9767
      'p',
-
 
9768
      'picture',
-
 
9769
      'pre',
-
 
9770
      'progress',
-
 
9771
      'q',
-
 
9772
      'rp',
-
 
9773
      'rt',
-
 
9774
      'ruby',
-
 
9775
      's',
-
 
9776
      'samp',
-
 
9777
      'section',
-
 
9778
      'select',
-
 
9779
      'shadow',
-
 
9780
      'small',
-
 
9781
      'source',
-
 
9782
      'spacer',
-
 
9783
      'span',
-
 
9784
      'strike',
-
 
9785
      'strong',
-
 
9786
      'style',
-
 
9787
      'sub',
-
 
9788
      'summary',
-
 
9789
      'sup',
-
 
9790
      'table',
-
 
9791
      'tbody',
-
 
9792
      'td',
-
 
9793
      'template',
-
 
9794
      'textarea',
-
 
9795
      'tfoot',
-
 
9796
      'th',
-
 
9797
      'thead',
-
 
9798
      'time',
-
 
9799
      'tr',
-
 
9800
      'track',
-
 
9801
      'tt',
-
 
9802
      'u',
-
 
9803
      'ul',
-
 
9804
      'var',
-
 
9805
      'video',
-
 
9806
      'wbr'
-
 
9807
    ]);
-
 
9808
    var svg$1 = freeze([
-
 
9809
      'svg',
-
 
9810
      'a',
-
 
9811
      'altglyph',
-
 
9812
      'altglyphdef',
-
 
9813
      'altglyphitem',
-
 
9814
      'animatecolor',
-
 
9815
      'animatemotion',
-
 
9816
      'animatetransform',
-
 
9817
      'circle',
-
 
9818
      'clippath',
-
 
9819
      'defs',
-
 
9820
      'desc',
-
 
9821
      'ellipse',
-
 
9822
      'filter',
-
 
9823
      'font',
-
 
9824
      'g',
-
 
9825
      'glyph',
-
 
9826
      'glyphref',
-
 
9827
      'hkern',
-
 
9828
      'image',
-
 
9829
      'line',
-
 
9830
      'lineargradient',
-
 
9831
      'marker',
-
 
9832
      'mask',
-
 
9833
      'metadata',
-
 
9834
      'mpath',
-
 
9835
      'path',
-
 
9836
      'pattern',
-
 
9837
      'polygon',
-
 
9838
      'polyline',
-
 
9839
      'radialgradient',
-
 
9840
      'rect',
-
 
9841
      'stop',
-
 
9842
      'style',
-
 
9843
      'switch',
-
 
9844
      'symbol',
-
 
9845
      'text',
-
 
9846
      'textpath',
-
 
9847
      'title',
-
 
9848
      'tref',
-
 
9849
      'tspan',
-
 
9850
      'view',
-
 
9851
      'vkern'
-
 
9852
    ]);
-
 
9853
    var svgFilters = freeze([
-
 
9854
      'feBlend',
-
 
9855
      'feColorMatrix',
-
 
9856
      'feComponentTransfer',
-
 
9857
      'feComposite',
-
 
9858
      'feConvolveMatrix',
-
 
9859
      'feDiffuseLighting',
-
 
9860
      'feDisplacementMap',
-
 
9861
      'feDistantLight',
-
 
9862
      'feFlood',
-
 
9863
      'feFuncA',
-
 
9864
      'feFuncB',
-
 
9865
      'feFuncG',
-
 
9866
      'feFuncR',
-
 
9867
      'feGaussianBlur',
-
 
9868
      'feImage',
-
 
9869
      'feMerge',
-
 
9870
      'feMergeNode',
-
 
9871
      'feMorphology',
-
 
9872
      'feOffset',
-
 
9873
      'fePointLight',
-
 
9874
      'feSpecularLighting',
-
 
9875
      'feSpotLight',
-
 
9876
      'feTile',
-
 
9877
      'feTurbulence'
-
 
9878
    ]);
-
 
9879
    var svgDisallowed = freeze([
-
 
9880
      'animate',
-
 
9881
      'color-profile',
-
 
9882
      'cursor',
-
 
9883
      'discard',
-
 
9884
      'fedropshadow',
-
 
9885
      'font-face',
-
 
9886
      'font-face-format',
-
 
9887
      'font-face-name',
-
 
9888
      'font-face-src',
-
 
9889
      'font-face-uri',
-
 
9890
      'foreignobject',
-
 
9891
      'hatch',
-
 
9892
      'hatchpath',
-
 
9893
      'mesh',
-
 
9894
      'meshgradient',
-
 
9895
      'meshpatch',
-
 
9896
      'meshrow',
-
 
9897
      'missing-glyph',
-
 
9898
      'script',
-
 
9899
      'set',
-
 
9900
      'solidcolor',
-
 
9901
      'unknown',
-
 
9902
      'use'
-
 
9903
    ]);
-
 
9904
    var mathMl$1 = freeze([
-
 
9905
      'math',
-
 
9906
      'menclose',
-
 
9907
      'merror',
-
 
9908
      'mfenced',
-
 
9909
      'mfrac',
-
 
9910
      'mglyph',
-
 
9911
      'mi',
-
 
9912
      'mlabeledtr',
-
 
9913
      'mmultiscripts',
-
 
9914
      'mn',
-
 
9915
      'mo',
-
 
9916
      'mover',
-
 
9917
      'mpadded',
-
 
9918
      'mphantom',
-
 
9919
      'mroot',
-
 
9920
      'mrow',
-
 
9921
      'ms',
-
 
9922
      'mspace',
-
 
9923
      'msqrt',
-
 
9924
      'mstyle',
-
 
9925
      'msub',
-
 
9926
      'msup',
-
 
9927
      'msubsup',
-
 
9928
      'mtable',
-
 
9929
      'mtd',
-
 
9930
      'mtext',
-
 
9931
      'mtr',
-
 
9932
      'munder',
-
 
9933
      'munderover'
-
 
9934
    ]);
-
 
9935
    var mathMlDisallowed = freeze([
-
 
9936
      'maction',
-
 
9937
      'maligngroup',
-
 
9938
      'malignmark',
-
 
9939
      'mlongdiv',
-
 
9940
      'mscarries',
-
 
9941
      'mscarry',
-
 
9942
      'msgroup',
-
 
9943
      'mstack',
-
 
9944
      'msline',
-
 
9945
      'msrow',
-
 
9946
      'semantics',
-
 
9947
      'annotation',
-
 
9948
      'annotation-xml',
-
 
9949
      'mprescripts',
-
 
9950
      'none'
-
 
9951
    ]);
-
 
9952
    var text = freeze(['#text']);
-
 
9953
    var html = freeze([
-
 
9954
      'accept',
-
 
9955
      'action',
-
 
9956
      'align',
-
 
9957
      'alt',
-
 
9958
      'autocapitalize',
-
 
9959
      'autocomplete',
-
 
9960
      'autopictureinpicture',
-
 
9961
      'autoplay',
-
 
9962
      'background',
-
 
9963
      'bgcolor',
-
 
9964
      'border',
-
 
9965
      'capture',
-
 
9966
      'cellpadding',
-
 
9967
      'cellspacing',
-
 
9968
      'checked',
-
 
9969
      'cite',
-
 
9970
      'class',
-
 
9971
      'clear',
-
 
9972
      'color',
-
 
9973
      'cols',
-
 
9974
      'colspan',
-
 
9975
      'controls',
-
 
9976
      'controlslist',
-
 
9977
      'coords',
-
 
9978
      'crossorigin',
-
 
9979
      'datetime',
-
 
9980
      'decoding',
-
 
9981
      'default',
-
 
9982
      'dir',
-
 
9983
      'disabled',
-
 
9984
      'disablepictureinpicture',
-
 
9985
      'disableremoteplayback',
-
 
9986
      'download',
-
 
9987
      'draggable',
-
 
9988
      'enctype',
-
 
9989
      'enterkeyhint',
-
 
9990
      'face',
-
 
9991
      'for',
-
 
9992
      'headers',
-
 
9993
      'height',
-
 
9994
      'hidden',
-
 
9995
      'high',
-
 
9996
      'href',
-
 
9997
      'hreflang',
-
 
9998
      'id',
-
 
9999
      'inputmode',
-
 
10000
      'integrity',
-
 
10001
      'ismap',
-
 
10002
      'kind',
-
 
10003
      'label',
-
 
10004
      'lang',
-
 
10005
      'list',
-
 
10006
      'loading',
-
 
10007
      'loop',
-
 
10008
      'low',
-
 
10009
      'max',
-
 
10010
      'maxlength',
-
 
10011
      'media',
-
 
10012
      'method',
-
 
10013
      'min',
-
 
10014
      'minlength',
-
 
10015
      'multiple',
-
 
10016
      'muted',
-
 
10017
      'name',
-
 
10018
      'nonce',
-
 
10019
      'noshade',
-
 
10020
      'novalidate',
-
 
10021
      'nowrap',
-
 
10022
      'open',
-
 
10023
      'optimum',
-
 
10024
      'pattern',
-
 
10025
      'placeholder',
-
 
10026
      'playsinline',
-
 
10027
      'poster',
-
 
10028
      'preload',
-
 
10029
      'pubdate',
-
 
10030
      'radiogroup',
-
 
10031
      'readonly',
-
 
10032
      'rel',
-
 
10033
      'required',
-
 
10034
      'rev',
-
 
10035
      'reversed',
-
 
10036
      'role',
-
 
10037
      'rows',
-
 
10038
      'rowspan',
-
 
10039
      'spellcheck',
-
 
10040
      'scope',
-
 
10041
      'selected',
-
 
10042
      'shape',
-
 
10043
      'size',
-
 
10044
      'sizes',
-
 
10045
      'span',
-
 
10046
      'srclang',
-
 
10047
      'start',
-
 
10048
      'src',
-
 
10049
      'srcset',
-
 
10050
      'step',
-
 
10051
      'style',
-
 
10052
      'summary',
-
 
10053
      'tabindex',
-
 
10054
      'title',
-
 
10055
      'translate',
-
 
10056
      'type',
-
 
10057
      'usemap',
-
 
10058
      'valign',
-
 
10059
      'value',
-
 
10060
      'width',
-
 
10061
      'xmlns',
-
 
10062
      'slot'
-
 
10063
    ]);
-
 
10064
    var svg = freeze([
-
 
10065
      'accent-height',
-
 
10066
      'accumulate',
-
 
10067
      'additive',
-
 
10068
      'alignment-baseline',
-
 
10069
      'ascent',
-
 
10070
      'attributename',
-
 
10071
      'attributetype',
-
 
10072
      'azimuth',
-
 
10073
      'basefrequency',
-
 
10074
      'baseline-shift',
-
 
10075
      'begin',
-
 
10076
      'bias',
-
 
10077
      'by',
-
 
10078
      'class',
-
 
10079
      'clip',
-
 
10080
      'clippathunits',
-
 
10081
      'clip-path',
-
 
10082
      'clip-rule',
-
 
10083
      'color',
-
 
10084
      'color-interpolation',
-
 
10085
      'color-interpolation-filters',
-
 
10086
      'color-profile',
-
 
10087
      'color-rendering',
-
 
10088
      'cx',
-
 
10089
      'cy',
-
 
10090
      'd',
-
 
10091
      'dx',
-
 
10092
      'dy',
-
 
10093
      'diffuseconstant',
-
 
10094
      'direction',
-
 
10095
      'display',
-
 
10096
      'divisor',
-
 
10097
      'dur',
-
 
10098
      'edgemode',
-
 
10099
      'elevation',
-
 
10100
      'end',
-
 
10101
      'fill',
-
 
10102
      'fill-opacity',
-
 
10103
      'fill-rule',
-
 
10104
      'filter',
-
 
10105
      'filterunits',
-
 
10106
      'flood-color',
-
 
10107
      'flood-opacity',
-
 
10108
      'font-family',
-
 
10109
      'font-size',
-
 
10110
      'font-size-adjust',
-
 
10111
      'font-stretch',
-
 
10112
      'font-style',
-
 
10113
      'font-variant',
-
 
10114
      'font-weight',
-
 
10115
      'fx',
-
 
10116
      'fy',
-
 
10117
      'g1',
-
 
10118
      'g2',
-
 
10119
      'glyph-name',
-
 
10120
      'glyphref',
-
 
10121
      'gradientunits',
-
 
10122
      'gradienttransform',
-
 
10123
      'height',
-
 
10124
      'href',
-
 
10125
      'id',
-
 
10126
      'image-rendering',
-
 
10127
      'in',
-
 
10128
      'in2',
-
 
10129
      'k',
-
 
10130
      'k1',
-
 
10131
      'k2',
-
 
10132
      'k3',
-
 
10133
      'k4',
-
 
10134
      'kerning',
-
 
10135
      'keypoints',
-
 
10136
      'keysplines',
-
 
10137
      'keytimes',
-
 
10138
      'lang',
-
 
10139
      'lengthadjust',
-
 
10140
      'letter-spacing',
-
 
10141
      'kernelmatrix',
-
 
10142
      'kernelunitlength',
-
 
10143
      'lighting-color',
-
 
10144
      'local',
-
 
10145
      'marker-end',
-
 
10146
      'marker-mid',
-
 
10147
      'marker-start',
-
 
10148
      'markerheight',
-
 
10149
      'markerunits',
-
 
10150
      'markerwidth',
-
 
10151
      'maskcontentunits',
-
 
10152
      'maskunits',
-
 
10153
      'max',
-
 
10154
      'mask',
-
 
10155
      'media',
-
 
10156
      'method',
-
 
10157
      'mode',
-
 
10158
      'min',
-
 
10159
      'name',
-
 
10160
      'numoctaves',
-
 
10161
      'offset',
-
 
10162
      'operator',
-
 
10163
      'opacity',
-
 
10164
      'order',
-
 
10165
      'orient',
-
 
10166
      'orientation',
-
 
10167
      'origin',
-
 
10168
      'overflow',
-
 
10169
      'paint-order',
-
 
10170
      'path',
-
 
10171
      'pathlength',
-
 
10172
      'patterncontentunits',
-
 
10173
      'patterntransform',
-
 
10174
      'patternunits',
-
 
10175
      'points',
-
 
10176
      'preservealpha',
-
 
10177
      'preserveaspectratio',
-
 
10178
      'primitiveunits',
-
 
10179
      'r',
-
 
10180
      'rx',
-
 
10181
      'ry',
-
 
10182
      'radius',
-
 
10183
      'refx',
-
 
10184
      'refy',
-
 
10185
      'repeatcount',
-
 
10186
      'repeatdur',
-
 
10187
      'restart',
-
 
10188
      'result',
-
 
10189
      'rotate',
-
 
10190
      'scale',
-
 
10191
      'seed',
-
 
10192
      'shape-rendering',
-
 
10193
      'specularconstant',
-
 
10194
      'specularexponent',
-
 
10195
      'spreadmethod',
-
 
10196
      'startoffset',
-
 
10197
      'stddeviation',
-
 
10198
      'stitchtiles',
-
 
10199
      'stop-color',
-
 
10200
      'stop-opacity',
-
 
10201
      'stroke-dasharray',
-
 
10202
      'stroke-dashoffset',
-
 
10203
      'stroke-linecap',
-
 
10204
      'stroke-linejoin',
-
 
10205
      'stroke-miterlimit',
-
 
10206
      'stroke-opacity',
-
 
10207
      'stroke',
-
 
10208
      'stroke-width',
-
 
10209
      'style',
-
 
10210
      'surfacescale',
-
 
10211
      'systemlanguage',
-
 
10212
      'tabindex',
-
 
10213
      'targetx',
-
 
10214
      'targety',
-
 
10215
      'transform',
-
 
10216
      'transform-origin',
-
 
10217
      'text-anchor',
-
 
10218
      'text-decoration',
-
 
10219
      'text-rendering',
-
 
10220
      'textlength',
-
 
10221
      'type',
-
 
10222
      'u1',
-
 
10223
      'u2',
-
 
10224
      'unicode',
-
 
10225
      'values',
-
 
10226
      'viewbox',
-
 
10227
      'visibility',
-
 
10228
      'version',
-
 
10229
      'vert-adv-y',
-
 
10230
      'vert-origin-x',
-
 
10231
      'vert-origin-y',
-
 
10232
      'width',
-
 
10233
      'word-spacing',
-
 
10234
      'wrap',
-
 
10235
      'writing-mode',
-
 
10236
      'xchannelselector',
-
 
10237
      'ychannelselector',
-
 
10238
      'x',
-
 
10239
      'x1',
-
 
10240
      'x2',
-
 
10241
      'xmlns',
-
 
10242
      'y',
-
 
10243
      'y1',
-
 
10244
      'y2',
-
 
10245
      'z',
-
 
10246
      'zoomandpan'
-
 
10247
    ]);
-
 
10248
    var mathMl = freeze([
-
 
10249
      'accent',
-
 
10250
      'accentunder',
-
 
10251
      'align',
-
 
10252
      'bevelled',
-
 
10253
      'close',
-
 
10254
      'columnsalign',
-
 
10255
      'columnlines',
-
 
10256
      'columnspan',
-
 
10257
      'denomalign',
-
 
10258
      'depth',
-
 
10259
      'dir',
-
 
10260
      'display',
-
 
10261
      'displaystyle',
-
 
10262
      'encoding',
-
 
10263
      'fence',
-
 
10264
      'frame',
-
 
10265
      'height',
-
 
10266
      'href',
-
 
10267
      'id',
-
 
10268
      'largeop',
-
 
10269
      'length',
-
 
10270
      'linethickness',
-
 
10271
      'lspace',
-
 
10272
      'lquote',
-
 
10273
      'mathbackground',
-
 
10274
      'mathcolor',
-
 
10275
      'mathsize',
-
 
10276
      'mathvariant',
-
 
10277
      'maxsize',
-
 
10278
      'minsize',
-
 
10279
      'movablelimits',
-
 
10280
      'notation',
-
 
10281
      'numalign',
-
 
10282
      'open',
-
 
10283
      'rowalign',
-
 
10284
      'rowlines',
-
 
10285
      'rowspacing',
-
 
10286
      'rowspan',
-
 
10287
      'rspace',
-
 
10288
      'rquote',
-
 
10289
      'scriptlevel',
-
 
10290
      'scriptminsize',
-
 
10291
      'scriptsizemultiplier',
-
 
10292
      'selection',
-
 
10293
      'separator',
-
 
10294
      'separators',
-
 
10295
      'stretchy',
-
 
10296
      'subscriptshift',
-
 
10297
      'supscriptshift',
-
 
10298
      'symmetric',
-
 
10299
      'voffset',
-
 
10300
      'width',
-
 
10301
      'xmlns'
-
 
10302
    ]);
-
 
10303
    var xml = freeze([
-
 
10304
      'xlink:href',
-
 
10305
      'xml:id',
-
 
10306
      'xlink:title',
-
 
10307
      'xml:space',
-
 
10308
      'xmlns:xlink'
-
 
10309
    ]);
-
 
10310
    var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
-
 
10311
    var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
-
 
10312
    var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/);
-
 
10313
    var ARIA_ATTR = seal(/^aria-[\-\w]+$/);
-
 
10314
    var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i);
-
 
10315
    var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
-
 
10316
    var ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g);
-
 
10317
    var DOCTYPE_NAME = seal(/^html$/i);
-
 
10318
    var getGlobal = function getGlobal() {
-
 
10319
      return typeof window === 'undefined' ? null : window;
-
 
10320
    };
-
 
10321
    var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {
-
 
10322
      if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {
-
 
10323
        return null;
-
 
10324
      }
-
 
10325
      var suffix = null;
-
 
10326
      var ATTR_NAME = 'data-tt-policy-suffix';
-
 
10327
      if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {
-
 
10328
        suffix = document.currentScript.getAttribute(ATTR_NAME);
-
 
10329
      }
-
 
10330
      var policyName = 'dompurify' + (suffix ? '#' + suffix : '');
-
 
10331
      try {
-
 
10332
        return trustedTypes.createPolicy(policyName, {
-
 
10333
          createHTML: function createHTML(html) {
-
 
10334
            return html;
-
 
10335
          }
-
 
10336
        });
-
 
10337
      } catch (_) {
-
 
10338
        console.warn('TrustedTypes policy ' + policyName + ' could not be created.');
-
 
10339
        return null;
-
 
10340
      }
-
 
10341
    };
-
 
10342
    function createDOMPurify() {
-
 
10343
      var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
-
 
10344
      var DOMPurify = function DOMPurify(root) {
-
 
10345
        return createDOMPurify(root);
-
 
10346
      };
-
 
10347
      DOMPurify.version = '2.3.8';
-
 
10348
      DOMPurify.removed = [];
-
 
10349
      if (!window || !window.document || window.document.nodeType !== 9) {
-
 
10350
        DOMPurify.isSupported = false;
-
 
10351
        return DOMPurify;
-
 
10352
      }
-
 
10353
      var originalDocument = window.document;
-
 
10354
      var document = window.document;
-
 
10355
      var DocumentFragment = window.DocumentFragment, HTMLTemplateElement = window.HTMLTemplateElement, Node = window.Node, Element = window.Element, NodeFilter = window.NodeFilter, _window$NamedNodeMap = window.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window.HTMLFormElement, DOMParser = window.DOMParser, trustedTypes = window.trustedTypes;
-
 
10356
      var ElementPrototype = Element.prototype;
-
 
10357
      var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');
-
 
10358
      var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
-
 
10359
      var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
-
 
10360
      var getParentNode = lookupGetter(ElementPrototype, 'parentNode');
-
 
10361
      if (typeof HTMLTemplateElement === 'function') {
-
 
10362
        var template = document.createElement('template');
-
 
10363
        if (template.content && template.content.ownerDocument) {
-
 
10364
          document = template.content.ownerDocument;
-
 
10365
        }
-
 
10366
      }
-
 
10367
      var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);
-
 
10368
      var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';
-
 
10369
      var _document = document, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
-
 
10370
      var importNode = originalDocument.importNode;
-
 
10371
      var documentMode = {};
-
 
10372
      try {
-
 
10373
        documentMode = clone$1(document).documentMode ? document.documentMode : {};
-
 
10374
      } catch (_) {
-
 
10375
      }
-
 
10376
      var hooks = {};
-
 
10377
      DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;
-
 
10378
      var MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE;
-
 
10379
      var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
-
 
10380
      var ALLOWED_TAGS = null;
-
 
10381
      var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));
-
 
10382
      var ALLOWED_ATTR = null;
-
 
10383
      var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));
-
 
10384
      var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
-
 
10385
        tagNameCheck: {
-
 
10386
          writable: true,
-
 
10387
          configurable: false,
-
 
10388
          enumerable: true,
-
 
10389
          value: null
-
 
10390
        },
-
 
10391
        attributeNameCheck: {
-
 
10392
          writable: true,
-
 
10393
          configurable: false,
-
 
10394
          enumerable: true,
-
 
10395
          value: null
-
 
10396
        },
-
 
10397
        allowCustomizedBuiltInElements: {
-
 
10398
          writable: true,
-
 
10399
          configurable: false,
-
 
10400
          enumerable: true,
-
 
10401
          value: false
-
 
10402
        }
-
 
10403
      }));
-
 
10404
      var FORBID_TAGS = null;
-
 
10405
      var FORBID_ATTR = null;
-
 
10406
      var ALLOW_ARIA_ATTR = true;
-
 
10407
      var ALLOW_DATA_ATTR = true;
-
 
10408
      var ALLOW_UNKNOWN_PROTOCOLS = false;
-
 
10409
      var SAFE_FOR_TEMPLATES = false;
-
 
10410
      var WHOLE_DOCUMENT = false;
-
 
10411
      var SET_CONFIG = false;
-
 
10412
      var FORCE_BODY = false;
-
 
10413
      var RETURN_DOM = false;
-
 
10414
      var RETURN_DOM_FRAGMENT = false;
-
 
10415
      var RETURN_TRUSTED_TYPE = false;
-
 
10416
      var SANITIZE_DOM = true;
-
 
10417
      var KEEP_CONTENT = true;
-
 
10418
      var IN_PLACE = false;
-
 
10419
      var USE_PROFILES = {};
-
 
10420
      var FORBID_CONTENTS = null;
-
 
10421
      var DEFAULT_FORBID_CONTENTS = addToSet({}, [
-
 
10422
        'annotation-xml',
-
 
10423
        'audio',
-
 
10424
        'colgroup',
-
 
10425
        'desc',
-
 
10426
        'foreignobject',
-
 
10427
        'head',
-
 
10428
        'iframe',
-
 
10429
        'math',
-
 
10430
        'mi',
-
 
10431
        'mn',
-
 
10432
        'mo',
-
 
10433
        'ms',
-
 
10434
        'mtext',
-
 
10435
        'noembed',
-
 
10436
        'noframes',
-
 
10437
        'noscript',
-
 
10438
        'plaintext',
-
 
10439
        'script',
-
 
10440
        'style',
-
 
10441
        'svg',
-
 
10442
        'template',
-
 
10443
        'thead',
-
 
10444
        'title',
-
 
10445
        'video',
-
 
10446
        'xmp'
-
 
10447
      ]);
-
 
10448
      var DATA_URI_TAGS = null;
-
 
10449
      var DEFAULT_DATA_URI_TAGS = addToSet({}, [
-
 
10450
        'audio',
-
 
10451
        'video',
-
 
10452
        'img',
-
 
10453
        'source',
-
 
10454
        'image',
-
 
10455
        'track'
-
 
10456
      ]);
-
 
10457
      var URI_SAFE_ATTRIBUTES = null;
-
 
10458
      var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [
-
 
10459
        'alt',
-
 
10460
        'class',
-
 
10461
        'for',
-
 
10462
        'id',
-
 
10463
        'label',
-
 
10464
        'name',
-
 
10465
        'pattern',
-
 
10466
        'placeholder',
-
 
10467
        'role',
-
 
10468
        'summary',
-
 
10469
        'title',
-
 
10470
        'value',
-
 
10471
        'style',
-
 
10472
        'xmlns'
-
 
10473
      ]);
-
 
10474
      var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';
-
 
10475
      var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
-
 
10476
      var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
-
 
10477
      var NAMESPACE = HTML_NAMESPACE;
-
 
10478
      var IS_EMPTY_INPUT = false;
-
 
10479
      var PARSER_MEDIA_TYPE;
-
 
10480
      var SUPPORTED_PARSER_MEDIA_TYPES = [
-
 
10481
        'application/xhtml+xml',
-
 
10482
        'text/html'
-
 
10483
      ];
-
 
10484
      var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';
-
 
10485
      var transformCaseFunc;
-
 
10486
      var CONFIG = null;
-
 
10487
      var formElement = document.createElement('form');
-
 
10488
      var isRegexOrFunction = function isRegexOrFunction(testValue) {
-
 
10489
        return testValue instanceof RegExp || testValue instanceof Function;
-
 
10490
      };
-
 
10491
      var _parseConfig = function _parseConfig(cfg) {
-
 
10492
        if (CONFIG && CONFIG === cfg) {
-
 
10493
          return;
-
 
10494
        }
-
 
10495
        if (!cfg || _typeof(cfg) !== 'object') {
-
 
10496
          cfg = {};
-
 
10497
        }
-
 
10498
        cfg = clone$1(cfg);
-
 
10499
        ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;
-
 
10500
        ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;
-
 
10501
        URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone$1(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;
-
 
10502
        DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone$1(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;
-
 
10503
        FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;
-
 
10504
        FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};
-
 
10505
        FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};
-
 
10506
        USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;
-
 
10507
        ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
-
 
10508
        ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
-
 
10509
        ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
-
 
10510
        SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
-
 
10511
        WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
-
 
10512
        RETURN_DOM = cfg.RETURN_DOM || false;
-
 
10513
        RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
-
 
10514
        RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
-
 
10515
        FORCE_BODY = cfg.FORCE_BODY || false;
-
 
10516
        SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
-
 
10517
        KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
-
 
10518
        IN_PLACE = cfg.IN_PLACE || false;
-
 
10519
        IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;
-
 
10520
        NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
-
 
10521
        if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
-
 
10522
          CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
-
 
10523
        }
-
 
10524
        if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
-
 
10525
          CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
-
 
10526
        }
-
 
10527
        if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {
-
 
10528
          CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
-
 
10529
        }
-
 
10530
        PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;
-
 
10531
        transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {
-
 
10532
          return x;
-
 
10533
        } : stringToLowerCase;
-
 
10534
        if (SAFE_FOR_TEMPLATES) {
-
 
10535
          ALLOW_DATA_ATTR = false;
-
 
10536
        }
-
 
10537
        if (RETURN_DOM_FRAGMENT) {
-
 
10538
          RETURN_DOM = true;
-
 
10539
        }
-
 
10540
        if (USE_PROFILES) {
-
 
10541
          ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));
-
 
10542
          ALLOWED_ATTR = [];
-
 
10543
          if (USE_PROFILES.html === true) {
-
 
10544
            addToSet(ALLOWED_TAGS, html$1);
-
 
10545
            addToSet(ALLOWED_ATTR, html);
-
 
10546
          }
-
 
10547
          if (USE_PROFILES.svg === true) {
-
 
10548
            addToSet(ALLOWED_TAGS, svg$1);
-
 
10549
            addToSet(ALLOWED_ATTR, svg);
-
 
10550
            addToSet(ALLOWED_ATTR, xml);
-
 
10551
          }
-
 
10552
          if (USE_PROFILES.svgFilters === true) {
-
 
10553
            addToSet(ALLOWED_TAGS, svgFilters);
-
 
10554
            addToSet(ALLOWED_ATTR, svg);
-
 
10555
            addToSet(ALLOWED_ATTR, xml);
-
 
10556
          }
-
 
10557
          if (USE_PROFILES.mathMl === true) {
-
 
10558
            addToSet(ALLOWED_TAGS, mathMl$1);
-
 
10559
            addToSet(ALLOWED_ATTR, mathMl);
-
 
10560
            addToSet(ALLOWED_ATTR, xml);
-
 
10561
          }
-
 
10562
        }
-
 
10563
        if (cfg.ADD_TAGS) {
-
 
10564
          if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
-
 
10565
            ALLOWED_TAGS = clone$1(ALLOWED_TAGS);
-
 
10566
          }
-
 
10567
          addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);
-
 
10568
        }
-
 
10569
        if (cfg.ADD_ATTR) {
-
 
10570
          if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
-
 
10571
            ALLOWED_ATTR = clone$1(ALLOWED_ATTR);
-
 
10572
          }
-
 
10573
          addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);
-
 
10574
        }
-
 
10575
        if (cfg.ADD_URI_SAFE_ATTR) {
-
 
10576
          addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);
-
 
10577
        }
-
 
10578
        if (cfg.FORBID_CONTENTS) {
-
 
10579
          if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
-
 
10580
            FORBID_CONTENTS = clone$1(FORBID_CONTENTS);
-
 
10581
          }
-
 
10582
          addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);
-
 
10583
        }
-
 
10584
        if (KEEP_CONTENT) {
-
 
10585
          ALLOWED_TAGS['#text'] = true;
-
 
10586
        }
-
 
10587
        if (WHOLE_DOCUMENT) {
-
 
10588
          addToSet(ALLOWED_TAGS, [
-
 
10589
            'html',
-
 
10590
            'head',
-
 
10591
            'body'
-
 
10592
          ]);
-
 
10593
        }
-
 
10594
        if (ALLOWED_TAGS.table) {
-
 
10595
          addToSet(ALLOWED_TAGS, ['tbody']);
-
 
10596
          delete FORBID_TAGS.tbody;
-
 
10597
        }
-
 
10598
        if (freeze) {
-
 
10599
          freeze(cfg);
-
 
10600
        }
-
 
10601
        CONFIG = cfg;
-
 
10602
      };
-
 
10603
      var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [
-
 
10604
        'mi',
-
 
10605
        'mo',
-
 
10606
        'mn',
-
 
10607
        'ms',
-
 
10608
        'mtext'
-
 
10609
      ]);
-
 
10610
      var HTML_INTEGRATION_POINTS = addToSet({}, [
-
 
10611
        'foreignobject',
-
 
10612
        'desc',
-
 
10613
        'title',
-
 
10614
        'annotation-xml'
-
 
10615
      ]);
-
 
10616
      var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [
-
 
10617
        'title',
-
 
10618
        'style',
-
 
10619
        'font',
-
 
10620
        'a',
-
 
10621
        'script'
-
 
10622
      ]);
-
 
10623
      var ALL_SVG_TAGS = addToSet({}, svg$1);
-
 
10624
      addToSet(ALL_SVG_TAGS, svgFilters);
-
 
10625
      addToSet(ALL_SVG_TAGS, svgDisallowed);
-
 
10626
      var ALL_MATHML_TAGS = addToSet({}, mathMl$1);
-
 
10627
      addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
-
 
10628
      var _checkValidNamespace = function _checkValidNamespace(element) {
-
 
10629
        var parent = getParentNode(element);
-
 
10630
        if (!parent || !parent.tagName) {
-
 
10631
          parent = {
-
 
10632
            namespaceURI: HTML_NAMESPACE,
-
 
10633
            tagName: 'template'
-
 
10634
          };
-
 
10635
        }
-
 
10636
        var tagName = stringToLowerCase(element.tagName);
-
 
10637
        var parentTagName = stringToLowerCase(parent.tagName);
-
 
10638
        if (element.namespaceURI === SVG_NAMESPACE) {
-
 
10639
          if (parent.namespaceURI === HTML_NAMESPACE) {
-
 
10640
            return tagName === 'svg';
-
 
10641
          }
-
 
10642
          if (parent.namespaceURI === MATHML_NAMESPACE) {
-
 
10643
            return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
-
 
10644
          }
-
 
10645
          return Boolean(ALL_SVG_TAGS[tagName]);
-
 
10646
        }
-
 
10647
        if (element.namespaceURI === MATHML_NAMESPACE) {
-
 
10648
          if (parent.namespaceURI === HTML_NAMESPACE) {
-
 
10649
            return tagName === 'math';
-
 
10650
          }
-
 
10651
          if (parent.namespaceURI === SVG_NAMESPACE) {
-
 
10652
            return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
-
 
10653
          }
-
 
10654
          return Boolean(ALL_MATHML_TAGS[tagName]);
-
 
10655
        }
-
 
10656
        if (element.namespaceURI === HTML_NAMESPACE) {
-
 
10657
          if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
-
 
10658
            return false;
-
 
10659
          }
-
 
10660
          if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
-
 
10661
            return false;
-
 
10662
          }
-
 
10663
          return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
-
 
10664
        }
-
 
10665
        return false;
-
 
10666
      };
-
 
10667
      var _forceRemove = function _forceRemove(node) {
-
 
10668
        arrayPush(DOMPurify.removed, { element: node });
-
 
10669
        try {
-
 
10670
          node.parentNode.removeChild(node);
-
 
10671
        } catch (_) {
-
 
10672
          try {
-
 
10673
            node.outerHTML = emptyHTML;
-
 
10674
          } catch (_) {
-
 
10675
            node.remove();
-
 
10676
          }
-
 
10677
        }
-
 
10678
      };
-
 
10679
      var _removeAttribute = function _removeAttribute(name, node) {
-
 
10680
        try {
-
 
10681
          arrayPush(DOMPurify.removed, {
-
 
10682
            attribute: node.getAttributeNode(name),
-
 
10683
            from: node
-
 
10684
          });
-
 
10685
        } catch (_) {
-
 
10686
          arrayPush(DOMPurify.removed, {
-
 
10687
            attribute: null,
-
 
10688
            from: node
-
 
10689
          });
-
 
10690
        }
-
 
10691
        node.removeAttribute(name);
-
 
10692
        if (name === 'is' && !ALLOWED_ATTR[name]) {
-
 
10693
          if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
-
 
10694
            try {
-
 
10695
              _forceRemove(node);
-
 
10696
            } catch (_) {
-
 
10697
            }
-
 
10698
          } else {
-
 
10699
            try {
-
 
10700
              node.setAttribute(name, '');
-
 
10701
            } catch (_) {
-
 
10702
            }
-
 
10703
          }
-
 
10704
        }
-
 
10705
      };
-
 
10706
      var _initDocument = function _initDocument(dirty) {
-
 
10707
        var doc;
-
 
10708
        var leadingWhitespace;
-
 
10709
        if (FORCE_BODY) {
-
 
10710
          dirty = '<remove></remove>' + dirty;
-
 
10711
        } else {
-
 
10712
          var matches = stringMatch(dirty, /^[\r\n\t ]+/);
-
 
10713
          leadingWhitespace = matches && matches[0];
-
 
10714
        }
-
 
10715
        if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {
-
 
10716
          dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>';
-
 
10717
        }
-
 
10718
        var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
-
 
10719
        if (NAMESPACE === HTML_NAMESPACE) {
-
 
10720
          try {
-
 
10721
            doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
-
 
10722
          } catch (_) {
-
 
10723
          }
-
 
10724
        }
-
 
10725
        if (!doc || !doc.documentElement) {
-
 
10726
          doc = implementation.createDocument(NAMESPACE, 'template', null);
-
 
10727
          try {
-
 
10728
            doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;
-
 
10729
          } catch (_) {
-
 
10730
          }
-
 
10731
        }
-
 
10732
        var body = doc.body || doc.documentElement;
-
 
10733
        if (dirty && leadingWhitespace) {
-
 
10734
          body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
-
 
10735
        }
-
 
10736
        if (NAMESPACE === HTML_NAMESPACE) {
-
 
10737
          return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];
-
 
10738
        }
-
 
10739
        return WHOLE_DOCUMENT ? doc.documentElement : body;
-
 
10740
      };
-
 
10741
      var _createIterator = function _createIterator(root) {
-
 
10742
        return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);
-
 
10743
      };
-
 
10744
      var _isClobbered = function _isClobbered(elm) {
-
 
10745
        return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');
-
 
10746
      };
-
 
10747
      var _isNode = function _isNode(object) {
-
 
10748
        return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';
-
 
10749
      };
-
 
10750
      var _executeHook = function _executeHook(entryPoint, currentNode, data) {
-
 
10751
        if (!hooks[entryPoint]) {
-
 
10752
          return;
-
 
10753
        }
-
 
10754
        arrayForEach(hooks[entryPoint], function (hook) {
-
 
10755
          hook.call(DOMPurify, currentNode, data, CONFIG);
-
 
10756
        });
-
 
10757
      };
-
 
10758
      var _sanitizeElements = function _sanitizeElements(currentNode) {
-
 
10759
        var content;
-
 
10760
        _executeHook('beforeSanitizeElements', currentNode, null);
-
 
10761
        if (_isClobbered(currentNode)) {
-
 
10762
          _forceRemove(currentNode);
-
 
10763
          return true;
-
 
10764
        }
-
 
10765
        if (regExpTest(/[\u0080-\uFFFF]/, currentNode.nodeName)) {
-
 
10766
          _forceRemove(currentNode);
-
 
10767
          return true;
-
 
10768
        }
-
 
10769
        var tagName = transformCaseFunc(currentNode.nodeName);
-
 
10770
        _executeHook('uponSanitizeElement', currentNode, {
-
 
10771
          tagName: tagName,
-
 
10772
          allowedTags: ALLOWED_TAGS
-
 
10773
        });
-
 
10774
        if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
-
 
10775
          _forceRemove(currentNode);
-
 
10776
          return true;
-
 
10777
        }
-
 
10778
        if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {
-
 
10779
          _forceRemove(currentNode);
-
 
10780
          return true;
-
 
10781
        }
-
 
10782
        if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
-
 
10783
          if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
-
 
10784
            if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName))
-
 
10785
              return false;
-
 
10786
            if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName))
-
 
10787
              return false;
-
 
10788
          }
-
 
10789
          if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
-
 
10790
            var parentNode = getParentNode(currentNode) || currentNode.parentNode;
-
 
10791
            var childNodes = getChildNodes(currentNode) || currentNode.childNodes;
-
 
10792
            if (childNodes && parentNode) {
-
 
10793
              var childCount = childNodes.length;
-
 
10794
              for (var i = childCount - 1; i >= 0; --i) {
-
 
10795
                parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));
-
 
10796
              }
-
 
10797
            }
-
 
10798
          }
-
 
10799
          _forceRemove(currentNode);
-
 
10800
          return true;
-
 
10801
        }
-
 
10802
        if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
-
 
10803
          _forceRemove(currentNode);
-
 
10804
          return true;
-
 
10805
        }
-
 
10806
        if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\/no(script|embed)/i, currentNode.innerHTML)) {
-
 
10807
          _forceRemove(currentNode);
-
 
10808
          return true;
-
 
10809
        }
-
 
10810
        if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
-
 
10811
          content = currentNode.textContent;
-
 
10812
          content = stringReplace(content, MUSTACHE_EXPR$1, ' ');
-
 
10813
          content = stringReplace(content, ERB_EXPR$1, ' ');
-
 
10814
          if (currentNode.textContent !== content) {
-
 
10815
            arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });
-
 
10816
            currentNode.textContent = content;
-
 
10817
          }
-
 
10818
        }
-
 
10819
        _executeHook('afterSanitizeElements', currentNode, null);
-
 
10820
        return false;
-
 
10821
      };
-
 
10822
      var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
-
 
10823
        if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
-
 
10824
          return false;
-
 
10825
        }
-
 
10826
        if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName));
-
 
10827
        else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName));
-
 
10828
        else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
-
 
10829
          if (_basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value)));
-
 
10830
          else {
-
 
10831
            return false;
-
 
10832
          }
-
 
10833
        } else if (URI_SAFE_ATTRIBUTES[lcName]);
-
 
10834
        else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, '')));
-
 
10835
        else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]);
-
 
10836
        else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, '')));
-
 
10837
        else if (!value);
-
 
10838
        else {
-
 
10839
          return false;
-
 
10840
        }
-
 
10841
        return true;
-
 
10842
      };
-
 
10843
      var _basicCustomElementTest = function _basicCustomElementTest(tagName) {
-
 
10844
        return tagName.indexOf('-') > 0;
-
 
10845
      };
-
 
10846
      var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
-
 
10847
        var attr;
-
 
10848
        var value;
-
 
10849
        var lcName;
-
 
10850
        var l;
-
 
10851
        _executeHook('beforeSanitizeAttributes', currentNode, null);
-
 
10852
        var attributes = currentNode.attributes;
-
 
10853
        if (!attributes) {
-
 
10854
          return;
-
 
10855
        }
-
 
10856
        var hookEvent = {
-
 
10857
          attrName: '',
-
 
10858
          attrValue: '',
-
 
10859
          keepAttr: true,
-
 
10860
          allowedAttributes: ALLOWED_ATTR
-
 
10861
        };
-
 
10862
        l = attributes.length;
-
 
10863
        while (l--) {
-
 
10864
          attr = attributes[l];
-
 
10865
          var _attr = attr, name = _attr.name, namespaceURI = _attr.namespaceURI;
-
 
10866
          value = name === 'value' ? attr.value : stringTrim(attr.value);
-
 
10867
          lcName = transformCaseFunc(name);
-
 
10868
          hookEvent.attrName = lcName;
-
 
10869
          hookEvent.attrValue = value;
-
 
10870
          hookEvent.keepAttr = true;
-
 
10871
          hookEvent.forceKeepAttr = undefined;
-
 
10872
          _executeHook('uponSanitizeAttribute', currentNode, hookEvent);
-
 
10873
          value = hookEvent.attrValue;
-
 
10874
          if (hookEvent.forceKeepAttr) {
-
 
10875
            continue;
-
 
10876
          }
-
 
10877
          _removeAttribute(name, currentNode);
-
 
10878
          if (!hookEvent.keepAttr) {
-
 
10879
            continue;
-
 
10880
          }
-
 
10881
          if (regExpTest(/\/>/i, value)) {
-
 
10882
            _removeAttribute(name, currentNode);
-
 
10883
            continue;
-
 
10884
          }
-
 
10885
          if (SAFE_FOR_TEMPLATES) {
-
 
10886
            value = stringReplace(value, MUSTACHE_EXPR$1, ' ');
-
 
10887
            value = stringReplace(value, ERB_EXPR$1, ' ');
-
 
10888
          }
-
 
10889
          var lcTag = transformCaseFunc(currentNode.nodeName);
-
 
10890
          if (!_isValidAttribute(lcTag, lcName, value)) {
-
 
10891
            continue;
-
 
10892
          }
-
 
10893
          try {
-
 
10894
            if (namespaceURI) {
-
 
10895
              currentNode.setAttributeNS(namespaceURI, name, value);
-
 
10896
            } else {
-
 
10897
              currentNode.setAttribute(name, value);
-
 
10898
            }
-
 
10899
            arrayPop(DOMPurify.removed);
-
 
10900
          } catch (_) {
-
 
10901
          }
-
 
10902
        }
-
 
10903
        _executeHook('afterSanitizeAttributes', currentNode, null);
-
 
10904
      };
-
 
10905
      var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
-
 
10906
        var shadowNode;
-
 
10907
        var shadowIterator = _createIterator(fragment);
-
 
10908
        _executeHook('beforeSanitizeShadowDOM', fragment, null);
-
 
10909
        while (shadowNode = shadowIterator.nextNode()) {
-
 
10910
          _executeHook('uponSanitizeShadowNode', shadowNode, null);
-
 
10911
          if (_sanitizeElements(shadowNode)) {
-
 
10912
            continue;
-
 
10913
          }
-
 
10914
          if (shadowNode.content instanceof DocumentFragment) {
-
 
10915
            _sanitizeShadowDOM(shadowNode.content);
-
 
10916
          }
-
 
10917
          _sanitizeAttributes(shadowNode);
-
 
10918
        }
-
 
10919
        _executeHook('afterSanitizeShadowDOM', fragment, null);
-
 
10920
      };
-
 
10921
      DOMPurify.sanitize = function (dirty, cfg) {
-
 
10922
        var body;
-
 
10923
        var importedNode;
-
 
10924
        var currentNode;
-
 
10925
        var oldNode;
-
 
10926
        var returnNode;
-
 
10927
        IS_EMPTY_INPUT = !dirty;
-
 
10928
        if (IS_EMPTY_INPUT) {
-
 
10929
          dirty = '<!-->';
-
 
10930
        }
-
 
10931
        if (typeof dirty !== 'string' && !_isNode(dirty)) {
-
 
10932
          if (typeof dirty.toString !== 'function') {
-
 
10933
            throw typeErrorCreate('toString is not a function');
-
 
10934
          } else {
-
 
10935
            dirty = dirty.toString();
-
 
10936
            if (typeof dirty !== 'string') {
-
 
10937
              throw typeErrorCreate('dirty is not a string, aborting');
-
 
10938
            }
-
 
10939
          }
-
 
10940
        }
-
 
10941
        if (!DOMPurify.isSupported) {
-
 
10942
          if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {
-
 
10943
            if (typeof dirty === 'string') {
-
 
10944
              return window.toStaticHTML(dirty);
-
 
10945
            }
-
 
10946
            if (_isNode(dirty)) {
-
 
10947
              return window.toStaticHTML(dirty.outerHTML);
-
 
10948
            }
-
 
10949
          }
-
 
10950
          return dirty;
-
 
10951
        }
-
 
10952
        if (!SET_CONFIG) {
-
 
10953
          _parseConfig(cfg);
-
 
10954
        }
-
 
10955
        DOMPurify.removed = [];
-
 
10956
        if (typeof dirty === 'string') {
-
 
10957
          IN_PLACE = false;
-
 
10958
        }
-
 
10959
        if (IN_PLACE) {
-
 
10960
          if (dirty.nodeName) {
-
 
10961
            var tagName = transformCaseFunc(dirty.nodeName);
-
 
10962
            if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
-
 
10963
              throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');
-
 
10964
            }
-
 
10965
          }
-
 
10966
        } else if (dirty instanceof Node) {
-
 
10967
          body = _initDocument('<!---->');
-
 
10968
          importedNode = body.ownerDocument.importNode(dirty, true);
-
 
10969
          if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {
-
 
10970
            body = importedNode;
-
 
10971
          } else if (importedNode.nodeName === 'HTML') {
-
 
10972
            body = importedNode;
-
 
10973
          } else {
-
 
10974
            body.appendChild(importedNode);
-
 
10975
          }
-
 
10976
        } else {
-
 
10977
          if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf('<') === -1) {
-
 
10978
            return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
-
 
10979
          }
-
 
10980
          body = _initDocument(dirty);
-
 
10981
          if (!body) {
-
 
10982
            return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';
-
 
10983
          }
-
 
10984
        }
-
 
10985
        if (body && FORCE_BODY) {
-
 
10986
          _forceRemove(body.firstChild);
-
 
10987
        }
-
 
10988
        var nodeIterator = _createIterator(IN_PLACE ? dirty : body);
-
 
10989
        while (currentNode = nodeIterator.nextNode()) {
-
 
10990
          if (currentNode.nodeType === 3 && currentNode === oldNode) {
-
 
10991
            continue;
-
 
10992
          }
-
 
10993
          if (_sanitizeElements(currentNode)) {
-
 
10994
            continue;
-
 
10995
          }
-
 
10996
          if (currentNode.content instanceof DocumentFragment) {
-
 
10997
            _sanitizeShadowDOM(currentNode.content);
-
 
10998
          }
-
 
10999
          _sanitizeAttributes(currentNode);
-
 
11000
          oldNode = currentNode;
-
 
11001
        }
-
 
11002
        oldNode = null;
-
 
11003
        if (IN_PLACE) {
-
 
11004
          return dirty;
-
 
11005
        }
-
 
11006
        if (RETURN_DOM) {
-
 
11007
          if (RETURN_DOM_FRAGMENT) {
-
 
11008
            returnNode = createDocumentFragment.call(body.ownerDocument);
-
 
11009
            while (body.firstChild) {
-
 
11010
              returnNode.appendChild(body.firstChild);
-
 
11011
            }
-
 
11012
          } else {
-
 
11013
            returnNode = body;
-
 
11014
          }
-
 
11015
          if (ALLOWED_ATTR.shadowroot) {
-
 
11016
            returnNode = importNode.call(originalDocument, returnNode, true);
-
 
11017
          }
-
 
11018
          return returnNode;
-
 
11019
        }
-
 
11020
        var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
-
 
11021
        if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
-
 
11022
          serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\n' + serializedHTML;
-
 
11023
        }
-
 
11024
        if (SAFE_FOR_TEMPLATES) {
-
 
11025
          serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');
-
 
11026
          serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');
-
 
11027
        }
-
 
11028
        return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
-
 
11029
      };
-
 
11030
      DOMPurify.setConfig = function (cfg) {
-
 
11031
        _parseConfig(cfg);
-
 
11032
        SET_CONFIG = true;
-
 
11033
      };
-
 
11034
      DOMPurify.clearConfig = function () {
-
 
11035
        CONFIG = null;
-
 
11036
        SET_CONFIG = false;
-
 
11037
      };
-
 
11038
      DOMPurify.isValidAttribute = function (tag, attr, value) {
-
 
11039
        if (!CONFIG) {
-
 
11040
          _parseConfig({});
-
 
11041
        }
-
 
11042
        var lcTag = transformCaseFunc(tag);
-
 
11043
        var lcName = transformCaseFunc(attr);
-
 
11044
        return _isValidAttribute(lcTag, lcName, value);
-
 
11045
      };
-
 
11046
      DOMPurify.addHook = function (entryPoint, hookFunction) {
-
 
11047
        if (typeof hookFunction !== 'function') {
-
 
11048
          return;
-
 
11049
        }
-
 
11050
        hooks[entryPoint] = hooks[entryPoint] || [];
-
 
11051
        arrayPush(hooks[entryPoint], hookFunction);
-
 
11052
      };
-
 
11053
      DOMPurify.removeHook = function (entryPoint) {
-
 
11054
        if (hooks[entryPoint]) {
-
 
11055
          return arrayPop(hooks[entryPoint]);
-
 
11056
        }
-
 
11057
      };
-
 
11058
      DOMPurify.removeHooks = function (entryPoint) {
-
 
11059
        if (hooks[entryPoint]) {
-
 
11060
          hooks[entryPoint] = [];
-
 
11061
        }
-
 
11062
      };
-
 
11063
      DOMPurify.removeAllHooks = function () {
-
 
11064
        hooks = {};
-
 
11065
      };
-
 
11066
      return DOMPurify;
-
 
11067
    }
-
 
11068
    var purify = createDOMPurify();
-
 
11069
 
-
 
11070
    var sanitizeHtmlString = function (html) {
-
 
11071
      return purify().sanitize(html);
-
 
11072
    };
-
 
11073
 
9484
    var global$e = tinymce.util.Tools.resolve('tinymce.util.I18n');
11074
    var global$e = tinymce.util.Tools.resolve('tinymce.util.I18n');
9485
 
11075
 
9486
    var rtlTransform = {
11076
    var rtlTransform = {
9487
      'indent': true,
11077
      'indent': true,
9488
      'outdent': true,
11078
      'outdent': true,
Line 9567... Line 11157...
9567
      warn: 'warning',
11157
      warn: 'warning',
9568
      info: 'info'
11158
      info: 'info'
9569
    };
11159
    };
9570
    var factory$k = function (detail) {
11160
    var factory$k = function (detail) {
9571
      var memBannerText = record({
11161
      var memBannerText = record({
9572
        dom: {
-
 
9573
          tag: 'p',
-
 
9574
          innerHtml: detail.translationProvider(detail.text)
11162
        dom: fromHtml('<p>' + sanitizeHtmlString(detail.translationProvider(detail.text)) + '</p>'),
9575
        },
-
 
9576
        behaviours: derive$1([Replacing.config({})])
11163
        behaviours: derive$1([Replacing.config({})])
9577
      });
11164
      });
9578
      var renderPercentBar = function (percent) {
11165
      var renderPercentBar = function (percent) {
9579
        return {
11166
        return {
9580
          dom: {
11167
          dom: {
Line 9931... Line 11518...
9931
      });
11518
      });
9932
      return Optional.from(search.backwards(node, offset, process, rootNode));
11519
      return Optional.from(search.backwards(node, offset, process, rootNode));
9933
    };
11520
    };
9934
 
11521
 
9935
    var autocompleteSelector = '[data-mce-autocompleter]';
11522
    var autocompleteSelector = '[data-mce-autocompleter]';
9936
    var create$5 = function (editor, range) {
11523
    var create$4 = function (editor, range) {
9937
      return detect(SugarElement.fromDom(editor.selection.getNode())).getOrThunk(function () {
11524
      return detect(SugarElement.fromDom(editor.selection.getNode())).getOrThunk(function () {
9938
        var wrapper = SugarElement.fromHtml('<span data-mce-autocompleter="1" data-mce-bogus="1"></span>', editor.getDoc());
11525
        var wrapper = SugarElement.fromHtml('<span data-mce-autocompleter="1" data-mce-bogus="1"></span>', editor.getDoc());
9939
        append$2(wrapper, SugarElement.fromDom(range.extractContents()));
11526
        append$2(wrapper, SugarElement.fromDom(range.extractContents()));
9940
        range.insertNode(wrapper.dom);
11527
        range.insertNode(wrapper.dom);
9941
        parent(wrapper).each(function (elm) {
11528
        parent(wrapper).each(function (elm) {
Line 12859... Line 14446...
12859
          }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage, match.highlightOn);
14446
          }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage, match.highlightOn);
12860
        });
14447
        });
12861
      };
14448
      };
12862
      var commenceIfNecessary = function (context) {
14449
      var commenceIfNecessary = function (context) {
12863
        if (!isActive()) {
14450
        if (!isActive()) {
12864
          var wrapper = create$5(editor, context.range);
14451
          var wrapper = create$4(editor, context.range);
12865
          activeAutocompleter.set({
14452
          activeAutocompleter.set({
12866
            triggerChar: context.triggerChar,
14453
            triggerChar: context.triggerChar,
12867
            element: wrapper,
14454
            element: wrapper,
12868
            matchLength: context.text.length
14455
            matchLength: context.text.length
12869
          });
14456
          });
Line 16941... Line 18528...
16941
      };
18528
      };
16942
      var pField = FormField.parts.field({ factory: { sketch: factory } });
18529
      var pField = FormField.parts.field({ factory: { sketch: factory } });
16943
      return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);
18530
      return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);
16944
    };
18531
    };
16945
 
18532
 
16946
    var create$4 = function (width, height) {
18533
    var create$3 = function (width, height) {
16947
      return resize$3(document.createElement('canvas'), width, height);
18534
      return resize$3(document.createElement('canvas'), width, height);
16948
    };
18535
    };
16949
    var clone$1 = function (canvas) {
18536
    var clone = function (canvas) {
16950
      var tCanvas = create$4(canvas.width, canvas.height);
18537
      var tCanvas = create$3(canvas.width, canvas.height);
16951
      var ctx = get2dContext(tCanvas);
18538
      var ctx = get2dContext(tCanvas);
16952
      ctx.drawImage(canvas, 0, 0);
18539
      ctx.drawImage(canvas, 0, 0);
16953
      return tCanvas;
18540
      return tCanvas;
16954
    };
18541
    };
16955
    var get2dContext = function (canvas) {
18542
    var get2dContext = function (canvas) {
Line 17044... Line 18631...
17044
      return canvas.toDataURL(type, quality);
18631
      return canvas.toDataURL(type, quality);
17045
    };
18632
    };
17046
    var blobToCanvas = function (blob) {
18633
    var blobToCanvas = function (blob) {
17047
      return blobToImage(blob).then(function (image) {
18634
      return blobToImage(blob).then(function (image) {
17048
        revokeImageUrl(image);
18635
        revokeImageUrl(image);
17049
        var canvas = create$4(getWidth$1(image), getHeight$1(image));
18636
        var canvas = create$3(getWidth$1(image), getHeight$1(image));
17050
        var context = get2dContext(canvas);
18637
        var context = get2dContext(canvas);
17051
        context.drawImage(image, 0, 0);
18638
        context.drawImage(image, 0, 0);
17052
        return canvas;
18639
        return canvas;
17053
      });
18640
      });
17054
    };
18641
    };
Line 17063... Line 18650...
17063
    };
18650
    };
17064
    var revokeImageUrl = function (image) {
18651
    var revokeImageUrl = function (image) {
17065
      URL.revokeObjectURL(image.src);
18652
      URL.revokeObjectURL(image.src);
17066
    };
18653
    };
17067
 
18654
 
17068
    var create$3 = function (getCanvas, blob, uri) {
18655
    var create$2 = function (getCanvas, blob, uri) {
17069
      var initialType = blob.type;
18656
      var initialType = blob.type;
17070
      var getType = constant$1(initialType);
18657
      var getType = constant$1(initialType);
17071
      var toBlob = function () {
18658
      var toBlob = function () {
17072
        return Promise$1.resolve(blob);
18659
        return Promise$1.resolve(blob);
17073
      };
18660
      };
Line 17089... Line 18676...
17089
        return toAdjustedDataURL(type, quality).then(function (dataurl) {
18676
        return toAdjustedDataURL(type, quality).then(function (dataurl) {
17090
          return dataurl.split(',')[1];
18677
          return dataurl.split(',')[1];
17091
        });
18678
        });
17092
      };
18679
      };
17093
      var toCanvas = function () {
18680
      var toCanvas = function () {
17094
        return getCanvas.then(clone$1);
18681
        return getCanvas.then(clone);
17095
      };
18682
      };
17096
      return {
18683
      return {
17097
        getType: getType,
18684
        getType: getType,
17098
        toBlob: toBlob,
18685
        toBlob: toBlob,
17099
        toDataURL: toDataURL,
18686
        toDataURL: toDataURL,
Line 17104... Line 18691...
17104
        toCanvas: toCanvas
18691
        toCanvas: toCanvas
17105
      };
18692
      };
17106
    };
18693
    };
17107
    var fromBlob = function (blob) {
18694
    var fromBlob = function (blob) {
17108
      return blobToDataUri(blob).then(function (uri) {
18695
      return blobToDataUri(blob).then(function (uri) {
17109
        return create$3(blobToCanvas(blob), blob, uri);
18696
        return create$2(blobToCanvas(blob), blob, uri);
17110
      });
18697
      });
17111
    };
18698
    };
17112
    var fromCanvas = function (canvas, type) {
18699
    var fromCanvas = function (canvas, type) {
17113
      return canvasToBlob(canvas, type).then(function (blob) {
18700
      return canvasToBlob(canvas, type).then(function (blob) {
17114
        return create$3(Promise$1.resolve(canvas), blob, canvas.toDataURL());
18701
        return create$2(Promise$1.resolve(canvas), blob, canvas.toDataURL());
17115
      });
18702
      });
17116
    };
18703
    };
17117
 
18704
 
17118
    var blobToImageResult = function (blob) {
18705
    var blobToImageResult = function (blob) {
17119
      return fromBlob(blob);
18706
      return fromBlob(blob);
Line 17573... Line 19160...
17573
      return new Promise$1(function (resolve) {
19160
      return new Promise$1(function (resolve) {
17574
        var sW = getWidth$1(image);
19161
        var sW = getWidth$1(image);
17575
        var sH = getHeight$1(image);
19162
        var sH = getHeight$1(image);
17576
        var dW = Math.floor(sW * wRatio);
19163
        var dW = Math.floor(sW * wRatio);
17577
        var dH = Math.floor(sH * hRatio);
19164
        var dH = Math.floor(sH * hRatio);
17578
        var canvas = create$4(dW, dH);
19165
        var canvas = create$3(dW, dH);
17579
        var context = get2dContext(canvas);
19166
        var context = get2dContext(canvas);
17580
        context.drawImage(image, 0, 0, sW, sH, 0, 0, dW, dH);
19167
        context.drawImage(image, 0, 0, sW, sH, 0, 0, dW, dH);
17581
        resolve(canvas);
19168
        resolve(canvas);
17582
      });
19169
      });
17583
    };
19170
    };
Line 17602... Line 19189...
17602
      var height = image.height;
19189
      var height = image.height;
17603
      var sin = Math.sin(rad);
19190
      var sin = Math.sin(rad);
17604
      var cos = Math.cos(rad);
19191
      var cos = Math.cos(rad);
17605
      var newWidth = ceilWithPrecision(Math.abs(width * cos) + Math.abs(height * sin));
19192
      var newWidth = ceilWithPrecision(Math.abs(width * cos) + Math.abs(height * sin));
17606
      var newHeight = ceilWithPrecision(Math.abs(width * sin) + Math.abs(height * cos));
19193
      var newHeight = ceilWithPrecision(Math.abs(width * sin) + Math.abs(height * cos));
17607
      var canvas = create$4(newWidth, newHeight);
19194
      var canvas = create$3(newWidth, newHeight);
17608
      var context = get2dContext(canvas);
19195
      var context = get2dContext(canvas);
17609
      context.translate(newWidth / 2, newHeight / 2);
19196
      context.translate(newWidth / 2, newHeight / 2);
17610
      context.rotate(rad);
19197
      context.rotate(rad);
17611
      context.drawImage(image, -width / 2, -height / 2);
19198
      context.drawImage(image, -width / 2, -height / 2);
17612
      return fromCanvas(canvas, type);
19199
      return fromCanvas(canvas, type);
Line 17615... Line 19202...
17615
      return ir.toCanvas().then(function (canvas) {
19202
      return ir.toCanvas().then(function (canvas) {
17616
        return applyFlip(canvas, ir.getType(), axis);
19203
        return applyFlip(canvas, ir.getType(), axis);
17617
      });
19204
      });
17618
    };
19205
    };
17619
    var applyFlip = function (image, type, axis) {
19206
    var applyFlip = function (image, type, axis) {
17620
      var canvas = create$4(image.width, image.height);
19207
      var canvas = create$3(image.width, image.height);
17621
      var context = get2dContext(canvas);
19208
      var context = get2dContext(canvas);
17622
      if (axis === 'v') {
19209
      if (axis === 'v') {
17623
        context.scale(1, -1);
19210
        context.scale(1, -1);
17624
        context.drawImage(image, 0, -canvas.height);
19211
        context.drawImage(image, 0, -canvas.height);
17625
      } else {
19212
      } else {
Line 17632... Line 19219...
17632
      return ir.toCanvas().then(function (canvas) {
19219
      return ir.toCanvas().then(function (canvas) {
17633
        return applyCrop(canvas, ir.getType(), x, y, w, h);
19220
        return applyCrop(canvas, ir.getType(), x, y, w, h);
17634
      });
19221
      });
17635
    };
19222
    };
17636
    var applyCrop = function (image, type, x, y, w, h) {
19223
    var applyCrop = function (image, type, x, y, w, h) {
17637
      var canvas = create$4(w, h);
19224
      var canvas = create$3(w, h);
17638
      var context = get2dContext(canvas);
19225
      var context = get2dContext(canvas);
17639
      context.drawImage(image, -x, -y);
19226
      context.drawImage(image, -x, -y);
17640
      return fromCanvas(canvas, type);
19227
      return fromCanvas(canvas, type);
17641
    };
19228
    };
17642
    var resize$2 = function (ir, w, h) {
19229
    var resize$2 = function (ir, w, h) {
Line 18503... Line 20090...
18503
 
20090
 
18504
    var undo = constant$1(generate$6('undo'));
20091
    var undo = constant$1(generate$6('undo'));
18505
    var redo = constant$1(generate$6('redo'));
20092
    var redo = constant$1(generate$6('redo'));
18506
    var zoom = constant$1(generate$6('zoom'));
20093
    var zoom = constant$1(generate$6('zoom'));
18507
    var back = constant$1(generate$6('back'));
20094
    var back = constant$1(generate$6('back'));
18508
    var apply$1 = constant$1(generate$6('apply'));
20095
    var apply = constant$1(generate$6('apply'));
18509
    var swap = constant$1(generate$6('swap'));
20096
    var swap = constant$1(generate$6('swap'));
18510
    var transform$1 = constant$1(generate$6('transform'));
20097
    var transform$1 = constant$1(generate$6('transform'));
18511
    var tempTransform = constant$1(generate$6('temp-transform'));
20098
    var tempTransform = constant$1(generate$6('temp-transform'));
18512
    var transformApply = constant$1(generate$6('transform-apply'));
20099
    var transformApply = constant$1(generate$6('transform-apply'));
18513
    var internal = {
20100
    var internal = {
18514
      undo: undo,
20101
      undo: undo,
18515
      redo: redo,
20102
      redo: redo,
18516
      zoom: zoom,
20103
      zoom: zoom,
18517
      back: back,
20104
      back: back,
18518
      apply: apply$1,
20105
      apply: apply,
18519
      swap: swap,
20106
      swap: swap,
18520
      transform: transform$1,
20107
      transform: transform$1,
18521
      tempTransform: tempTransform,
20108
      tempTransform: tempTransform,
18522
      transformApply: transformApply
20109
      transformApply: transformApply
18523
    };
20110
    };
Line 19038... Line 20625...
19038
      handleEvents.push(bind(handleElement, 'mousedown', start), bind(handleElement, 'touchstart', start));
20625
      handleEvents.push(bind(handleElement, 'mousedown', start), bind(handleElement, 'touchstart', start));
19039
      return { destroy: destroy };
20626
      return { destroy: destroy };
19040
    }
20627
    }
19041
 
20628
 
19042
    var count = 0;
20629
    var count = 0;
19043
    var create$2 = function (currentRect, viewPortRect, clampRect, containerElm, action) {
20630
    var create$1 = function (currentRect, viewPortRect, clampRect, containerElm, action) {
19044
      var dragHelpers;
20631
      var dragHelpers;
19045
      var events = [];
20632
      var events = [];
19046
      var prefix = 'tox-';
20633
      var prefix = 'tox-';
19047
      var id = prefix + 'crid-' + count++;
20634
      var id = prefix + 'crid-' + count++;
19048
      var container = SugarElement.fromDom(containerElm);
20635
      var container = SugarElement.fromDom(containerElm);
Line 19330... Line 20917...
19330
        setViewPortRect: setViewPortRect,
20917
        setViewPortRect: setViewPortRect,
19331
        destroy: destroy
20918
        destroy: destroy
19332
      });
20919
      });
19333
      return instance;
20920
      return instance;
19334
    };
20921
    };
19335
    var CropRect = { create: create$2 };
20922
    var CropRect = { create: create$1 };
19336
 
20923
 
19337
    var loadImage = function (image) {
20924
    var loadImage = function (image) {
19338
      return new global$c(function (resolve) {
20925
      return new global$c(function (resolve) {
19339
        var loaded = function () {
20926
        var loaded = function () {
19340
          image.removeEventListener('load', loaded);
20927
          image.removeEventListener('load', loaded);
Line 21901... Line 23488...
21901
        return false;
23488
        return false;
21902
      };
23489
      };
21903
    };
23490
    };
21904
    var isContentEditableTrue = hasContentEditableState('true');
23491
    var isContentEditableTrue = hasContentEditableState('true');
21905
    var isContentEditableFalse = hasContentEditableState('false');
23492
    var isContentEditableFalse = hasContentEditableState('false');
21906
    var create$1 = function (type, title, url, level, attach) {
23493
    var create = function (type, title, url, level, attach) {
21907
      return {
23494
      return {
21908
        type: type,
23495
        type: type,
21909
        title: title,
23496
        title: title,
21910
        url: url,
23497
        url: url,
21911
        level: level,
23498
        level: level,
Line 21953... Line 23540...
21953
    var headerTarget = function (elm) {
23540
    var headerTarget = function (elm) {
21954
      var headerId = getOrGenerateId(elm);
23541
      var headerId = getOrGenerateId(elm);
21955
      var attach = function () {
23542
      var attach = function () {
21956
        elm.id = headerId;
23543
        elm.id = headerId;
21957
      };
23544
      };
21958
      return create$1('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);
23545
      return create('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);
21959
    };
23546
    };
21960
    var anchorTarget = function (elm) {
23547
    var anchorTarget = function (elm) {
21961
      var anchorId = elm.id || elm.name;
23548
      var anchorId = elm.id || elm.name;
21962
      var anchorText = getElementText(elm);
23549
      var anchorText = getElementText(elm);
21963
      return create$1('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);
23550
      return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);
21964
    };
23551
    };
21965
    var getHeaderTargets = function (elms) {
23552
    var getHeaderTargets = function (elms) {
21966
      return map$2(filter$2(elms, isValidHeader), headerTarget);
23553
      return map$2(filter$2(elms, isValidHeader), headerTarget);
21967
    };
23554
    };
21968
    var getAnchorTargets = function (elms) {
23555
    var getAnchorTargets = function (elms) {
Line 23713... Line 25300...
23713
      name: 'blocking',
25300
      name: 'blocking',
23714
      apis: BlockingApis,
25301
      apis: BlockingApis,
23715
      state: BlockingState
25302
      state: BlockingState
23716
    });
25303
    });
23717
 
25304
 
23718
    var getAttrs = function (elem) {
-
 
23719
      var attributes = elem.dom.attributes !== undefined ? elem.dom.attributes : [];
-
 
23720
      return foldl(attributes, function (b, attr) {
-
 
23721
        var _a;
-
 
23722
        if (attr.name === 'class') {
-
 
23723
          return b;
-
 
23724
        } else {
-
 
23725
          return __assign(__assign({}, b), (_a = {}, _a[attr.name] = attr.value, _a));
-
 
23726
        }
-
 
23727
      }, {});
-
 
23728
    };
-
 
23729
    var getClasses = function (elem) {
-
 
23730
      return Array.prototype.slice.call(elem.dom.classList, 0);
-
 
23731
    };
-
 
23732
    var fromHtml = function (html) {
-
 
23733
      var elem = SugarElement.fromHtml(html);
-
 
23734
      var children$1 = children(elem);
-
 
23735
      var attrs = getAttrs(elem);
-
 
23736
      var classes = getClasses(elem);
-
 
23737
      var contents = children$1.length === 0 ? {} : { innerHtml: get$7(elem) };
-
 
23738
      return __assign({
-
 
23739
        tag: name$2(elem),
-
 
23740
        classes: classes,
-
 
23741
        attributes: attrs
-
 
23742
      }, contents);
-
 
23743
    };
-
 
23744
 
-
 
23745
    var getBusySpec$1 = function (providerBackstage) {
25305
    var getBusySpec$1 = function (providerBackstage) {
23746
      return function (_root, _behaviours) {
25306
      return function (_root, _behaviours) {
23747
        return {
25307
        return {
23748
          dom: {
25308
          dom: {
23749
            tag: 'div',
25309
            tag: 'div',
Line 31309... Line 32869...
31309
          })])
32869
          })])
31310
      };
32870
      };
31311
      return ModalDialog.parts.body(bodySpec);
32871
      return ModalDialog.parts.body(bodySpec);
31312
    };
32872
    };
31313
 
32873
 
31314
    function _typeof(obj) {
-
 
31315
      '@babel/helpers - typeof';
-
 
31316
      return _typeof = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function (obj) {
-
 
31317
        return typeof obj;
-
 
31318
      } : function (obj) {
-
 
31319
        return obj && 'function' == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;
-
 
31320
      }, _typeof(obj);
-
 
31321
    }
-
 
31322
    function _setPrototypeOf(o, p) {
-
 
31323
      _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
-
 
31324
        o.__proto__ = p;
-
 
31325
        return o;
-
 
31326
      };
-
 
31327
      return _setPrototypeOf(o, p);
-
 
31328
    }
-
 
31329
    function _isNativeReflectConstruct() {
-
 
31330
      if (typeof Reflect === 'undefined' || !Reflect.construct)
-
 
31331
        return false;
-
 
31332
      if (Reflect.construct.sham)
-
 
31333
        return false;
-
 
31334
      if (typeof Proxy === 'function')
-
 
31335
        return true;
-
 
31336
      try {
-
 
31337
        Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {
-
 
31338
        }));
-
 
31339
        return true;
-
 
31340
      } catch (e) {
-
 
31341
        return false;
-
 
31342
      }
-
 
31343
    }
-
 
31344
    function _construct(Parent, args, Class) {
-
 
31345
      if (_isNativeReflectConstruct()) {
-
 
31346
        _construct = Reflect.construct;
-
 
31347
      } else {
-
 
31348
        _construct = function _construct(Parent, args, Class) {
-
 
31349
          var a = [null];
-
 
31350
          a.push.apply(a, args);
-
 
31351
          var Constructor = Function.bind.apply(Parent, a);
-
 
31352
          var instance = new Constructor();
-
 
31353
          if (Class)
-
 
31354
            _setPrototypeOf(instance, Class.prototype);
-
 
31355
          return instance;
-
 
31356
        };
-
 
31357
      }
-
 
31358
      return _construct.apply(null, arguments);
-
 
31359
    }
-
 
31360
    function _toConsumableArray(arr) {
-
 
31361
      return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
-
 
31362
    }
-
 
31363
    function _arrayWithoutHoles(arr) {
-
 
31364
      if (Array.isArray(arr))
-
 
31365
        return _arrayLikeToArray(arr);
-
 
31366
    }
-
 
31367
    function _iterableToArray(iter) {
-
 
31368
      if (typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null || iter['@@iterator'] != null)
-
 
31369
        return Array.from(iter);
-
 
31370
    }
-
 
31371
    function _unsupportedIterableToArray(o, minLen) {
-
 
31372
      if (!o)
-
 
31373
        return;
-
 
31374
      if (typeof o === 'string')
-
 
31375
        return _arrayLikeToArray(o, minLen);
-
 
31376
      var n = Object.prototype.toString.call(o).slice(8, -1);
-
 
31377
      if (n === 'Object' && o.constructor)
-
 
31378
        n = o.constructor.name;
-
 
31379
      if (n === 'Map' || n === 'Set')
-
 
31380
        return Array.from(o);
-
 
31381
      if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
-
 
31382
        return _arrayLikeToArray(o, minLen);
-
 
31383
    }
-
 
31384
    function _arrayLikeToArray(arr, len) {
-
 
31385
      if (len == null || len > arr.length)
-
 
31386
        len = arr.length;
-
 
31387
      for (var i = 0, arr2 = new Array(len); i < len; i++)
-
 
31388
        arr2[i] = arr[i];
-
 
31389
      return arr2;
-
 
31390
    }
-
 
31391
    function _nonIterableSpread() {
-
 
31392
      throw new TypeError('Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
-
 
31393
    }
-
 
31394
    var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
-
 
31395
    var freeze = Object.freeze, seal = Object.seal, create = Object.create;
-
 
31396
    var _ref = typeof Reflect !== 'undefined' && Reflect, apply = _ref.apply, construct = _ref.construct;
-
 
31397
    if (!apply) {
-
 
31398
      apply = function apply(fun, thisValue, args) {
-
 
31399
        return fun.apply(thisValue, args);
-
 
31400
      };
-
 
31401
    }
-
 
31402
    if (!freeze) {
-
 
31403
      freeze = function freeze(x) {
-
 
31404
        return x;
-
 
31405
      };
-
 
31406
    }
-
 
31407
    if (!seal) {
-
 
31408
      seal = function seal(x) {
-
 
31409
        return x;
-
 
31410
      };
-
 
31411
    }
-
 
31412
    if (!construct) {
-
 
31413
      construct = function construct(Func, args) {
-
 
31414
        return _construct(Func, _toConsumableArray(args));
-
 
31415
      };
-
 
31416
    }
-
 
31417
    var arrayForEach = unapply(Array.prototype.forEach);
-
 
31418
    var arrayPop = unapply(Array.prototype.pop);
-
 
31419
    var arrayPush = unapply(Array.prototype.push);
-
 
31420
    var stringToLowerCase = unapply(String.prototype.toLowerCase);
-
 
31421
    var stringMatch = unapply(String.prototype.match);
-
 
31422
    var stringReplace = unapply(String.prototype.replace);
-
 
31423
    var stringIndexOf = unapply(String.prototype.indexOf);
-
 
31424
    var stringTrim = unapply(String.prototype.trim);
-
 
31425
    var regExpTest = unapply(RegExp.prototype.test);
-
 
31426
    var typeErrorCreate = unconstruct(TypeError);
-
 
31427
    function unapply(func) {
-
 
31428
      return function (thisArg) {
-
 
31429
        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-
 
31430
          args[_key - 1] = arguments[_key];
-
 
31431
        }
-
 
31432
        return apply(func, thisArg, args);
-
 
31433
      };
-
 
31434
    }
-
 
31435
    function unconstruct(func) {
-
 
31436
      return function () {
-
 
31437
        for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
-
 
31438
          args[_key2] = arguments[_key2];
-
 
31439
        }
-
 
31440
        return construct(func, args);
-
 
31441
      };
-
 
31442
    }
-
 
31443
    function addToSet(set, array) {
-
 
31444
      if (setPrototypeOf) {
-
 
31445
        setPrototypeOf(set, null);
-
 
31446
      }
-
 
31447
      var l = array.length;
-
 
31448
      while (l--) {
-
 
31449
        var element = array[l];
-
 
31450
        if (typeof element === 'string') {
-
 
31451
          var lcElement = stringToLowerCase(element);
-
 
31452
          if (lcElement !== element) {
-
 
31453
            if (!isFrozen(array)) {
-
 
31454
              array[l] = lcElement;
-
 
31455
            }
-
 
31456
            element = lcElement;
-
 
31457
          }
-
 
31458
        }
-
 
31459
        set[element] = true;
-
 
31460
      }
-
 
31461
      return set;
-
 
31462
    }
-
 
31463
    function clone(object) {
-
 
31464
      var newObject = create(null);
-
 
31465
      var property;
-
 
31466
      for (property in object) {
-
 
31467
        if (apply(hasOwnProperty, object, [property])) {
-
 
31468
          newObject[property] = object[property];
-
 
31469
        }
-
 
31470
      }
-
 
31471
      return newObject;
-
 
31472
    }
-
 
31473
    function lookupGetter(object, prop) {
-
 
31474
      while (object !== null) {
-
 
31475
        var desc = getOwnPropertyDescriptor(object, prop);
-
 
31476
        if (desc) {
-
 
31477
          if (desc.get) {
-
 
31478
            return unapply(desc.get);
-
 
31479
          }
-
 
31480
          if (typeof desc.value === 'function') {
-
 
31481
            return unapply(desc.value);
-
 
31482
          }
-
 
31483
        }
-
 
31484
        object = getPrototypeOf(object);
-
 
31485
      }
-
 
31486
      function fallbackValue(element) {
-
 
31487
        console.warn('fallback value for', element);
-
 
31488
        return null;
-
 
31489
      }
-
 
31490
      return fallbackValue;
-
 
31491
    }
-
 
31492
    var html$1 = freeze([
-
 
31493
      'a',
-
 
31494
      'abbr',
-
 
31495
      'acronym',
-
 
31496
      'address',
-
 
31497
      'area',
-
 
31498
      'article',
-
 
31499
      'aside',
-
 
31500
      'audio',
-
 
31501
      'b',
-
 
31502
      'bdi',
-
 
31503
      'bdo',
-
 
31504
      'big',
-
 
31505
      'blink',
-
 
31506
      'blockquote',
-
 
31507
      'body',
-
 
31508
      'br',
-
 
31509
      'button',
-
 
31510
      'canvas',
-
 
31511
      'caption',
-
 
31512
      'center',
-
 
31513
      'cite',
-
 
31514
      'code',
-
 
31515
      'col',
-
 
31516
      'colgroup',
-
 
31517
      'content',
-
 
31518
      'data',
-
 
31519
      'datalist',
-
 
31520
      'dd',
-
 
31521
      'decorator',
-
 
31522
      'del',
-
 
31523
      'details',
-
 
31524
      'dfn',
-
 
31525
      'dialog',
-
 
31526
      'dir',
-
 
31527
      'div',
-
 
31528
      'dl',
-
 
31529
      'dt',
-
 
31530
      'element',
-
 
31531
      'em',
-
 
31532
      'fieldset',
-
 
31533
      'figcaption',
-
 
31534
      'figure',
-
 
31535
      'font',
-
 
31536
      'footer',
-
 
31537
      'form',
-
 
31538
      'h1',
-
 
31539
      'h2',
-
 
31540
      'h3',
-
 
31541
      'h4',
-
 
31542
      'h5',
-
 
31543
      'h6',
-
 
31544
      'head',
-
 
31545
      'header',
-
 
31546
      'hgroup',
-
 
31547
      'hr',
-
 
31548
      'html',
-
 
31549
      'i',
-
 
31550
      'img',
-
 
31551
      'input',
-
 
31552
      'ins',
-
 
31553
      'kbd',
-
 
31554
      'label',
-
 
31555
      'legend',
-
 
31556
      'li',
-
 
31557
      'main',
-
 
31558
      'map',
-
 
31559
      'mark',
-
 
31560
      'marquee',
-
 
31561
      'menu',
-
 
31562
      'menuitem',
-
 
31563
      'meter',
-
 
31564
      'nav',
-
 
31565
      'nobr',
-
 
31566
      'ol',
-
 
31567
      'optgroup',
-
 
31568
      'option',
-
 
31569
      'output',
-
 
31570
      'p',
-
 
31571
      'picture',
-
 
31572
      'pre',
-
 
31573
      'progress',
-
 
31574
      'q',
-
 
31575
      'rp',
-
 
31576
      'rt',
-
 
31577
      'ruby',
-
 
31578
      's',
-
 
31579
      'samp',
-
 
31580
      'section',
-
 
31581
      'select',
-
 
31582
      'shadow',
-
 
31583
      'small',
-
 
31584
      'source',
-
 
31585
      'spacer',
-
 
31586
      'span',
-
 
31587
      'strike',
-
 
31588
      'strong',
-
 
31589
      'style',
-
 
31590
      'sub',
-
 
31591
      'summary',
-
 
31592
      'sup',
-
 
31593
      'table',
-
 
31594
      'tbody',
-
 
31595
      'td',
-
 
31596
      'template',
-
 
31597
      'textarea',
-
 
31598
      'tfoot',
-
 
31599
      'th',
-
 
31600
      'thead',
-
 
31601
      'time',
-
 
31602
      'tr',
-
 
31603
      'track',
-
 
31604
      'tt',
-
 
31605
      'u',
-
 
31606
      'ul',
-
 
31607
      'var',
-
 
31608
      'video',
-
 
31609
      'wbr'
-
 
31610
    ]);
-
 
31611
    var svg$1 = freeze([
-
 
31612
      'svg',
-
 
31613
      'a',
-
 
31614
      'altglyph',
-
 
31615
      'altglyphdef',
-
 
31616
      'altglyphitem',
-
 
31617
      'animatecolor',
-
 
31618
      'animatemotion',
-
 
31619
      'animatetransform',
-
 
31620
      'circle',
-
 
31621
      'clippath',
-
 
31622
      'defs',
-
 
31623
      'desc',
-
 
31624
      'ellipse',
-
 
31625
      'filter',
-
 
31626
      'font',
-
 
31627
      'g',
-
 
31628
      'glyph',
-
 
31629
      'glyphref',
-
 
31630
      'hkern',
-
 
31631
      'image',
-
 
31632
      'line',
-
 
31633
      'lineargradient',
-
 
31634
      'marker',
-
 
31635
      'mask',
-
 
31636
      'metadata',
-
 
31637
      'mpath',
-
 
31638
      'path',
-
 
31639
      'pattern',
-
 
31640
      'polygon',
-
 
31641
      'polyline',
-
 
31642
      'radialgradient',
-
 
31643
      'rect',
-
 
31644
      'stop',
-
 
31645
      'style',
-
 
31646
      'switch',
-
 
31647
      'symbol',
-
 
31648
      'text',
-
 
31649
      'textpath',
-
 
31650
      'title',
-
 
31651
      'tref',
-
 
31652
      'tspan',
-
 
31653
      'view',
-
 
31654
      'vkern'
-
 
31655
    ]);
-
 
31656
    var svgFilters = freeze([
-
 
31657
      'feBlend',
-
 
31658
      'feColorMatrix',
-
 
31659
      'feComponentTransfer',
-
 
31660
      'feComposite',
-
 
31661
      'feConvolveMatrix',
-
 
31662
      'feDiffuseLighting',
-
 
31663
      'feDisplacementMap',
-
 
31664
      'feDistantLight',
-
 
31665
      'feFlood',
-
 
31666
      'feFuncA',
-
 
31667
      'feFuncB',
-
 
31668
      'feFuncG',
-
 
31669
      'feFuncR',
-
 
31670
      'feGaussianBlur',
-
 
31671
      'feImage',
-
 
31672
      'feMerge',
-
 
31673
      'feMergeNode',
-
 
31674
      'feMorphology',
-
 
31675
      'feOffset',
-
 
31676
      'fePointLight',
-
 
31677
      'feSpecularLighting',
-
 
31678
      'feSpotLight',
-
 
31679
      'feTile',
-
 
31680
      'feTurbulence'
-
 
31681
    ]);
-
 
31682
    var svgDisallowed = freeze([
-
 
31683
      'animate',
-
 
31684
      'color-profile',
-
 
31685
      'cursor',
-
 
31686
      'discard',
-
 
31687
      'fedropshadow',
-
 
31688
      'font-face',
-
 
31689
      'font-face-format',
-
 
31690
      'font-face-name',
-
 
31691
      'font-face-src',
-
 
31692
      'font-face-uri',
-
 
31693
      'foreignobject',
-
 
31694
      'hatch',
-
 
31695
      'hatchpath',
-
 
31696
      'mesh',
-
 
31697
      'meshgradient',
-
 
31698
      'meshpatch',
-
 
31699
      'meshrow',
-
 
31700
      'missing-glyph',
-
 
31701
      'script',
-
 
31702
      'set',
-
 
31703
      'solidcolor',
-
 
31704
      'unknown',
-
 
31705
      'use'
-
 
31706
    ]);
-
 
31707
    var mathMl$1 = freeze([
-
 
31708
      'math',
-
 
31709
      'menclose',
-
 
31710
      'merror',
-
 
31711
      'mfenced',
-
 
31712
      'mfrac',
-
 
31713
      'mglyph',
-
 
31714
      'mi',
-
 
31715
      'mlabeledtr',
-
 
31716
      'mmultiscripts',
-
 
31717
      'mn',
-
 
31718
      'mo',
-
 
31719
      'mover',
-
 
31720
      'mpadded',
-
 
31721
      'mphantom',
-
 
31722
      'mroot',
-
 
31723
      'mrow',
-
 
31724
      'ms',
-
 
31725
      'mspace',
-
 
31726
      'msqrt',
-
 
31727
      'mstyle',
-
 
31728
      'msub',
-
 
31729
      'msup',
-
 
31730
      'msubsup',
-
 
31731
      'mtable',
-
 
31732
      'mtd',
-
 
31733
      'mtext',
-
 
31734
      'mtr',
-
 
31735
      'munder',
-
 
31736
      'munderover'
-
 
31737
    ]);
-
 
31738
    var mathMlDisallowed = freeze([
-
 
31739
      'maction',
-
 
31740
      'maligngroup',
-
 
31741
      'malignmark',
-
 
31742
      'mlongdiv',
-
 
31743
      'mscarries',
-
 
31744
      'mscarry',
-
 
31745
      'msgroup',
-
 
31746
      'mstack',
-
 
31747
      'msline',
-
 
31748
      'msrow',
-
 
31749
      'semantics',
-
 
31750
      'annotation',
-
 
31751
      'annotation-xml',
-
 
31752
      'mprescripts',
-
 
31753
      'none'
-
 
31754
    ]);
-
 
31755
    var text = freeze(['#text']);
-
 
31756
    var html = freeze([
-
 
31757
      'accept',
-
 
31758
      'action',
-
 
31759
      'align',
-
 
31760
      'alt',
-
 
31761
      'autocapitalize',
-
 
31762
      'autocomplete',
-
 
31763
      'autopictureinpicture',
-
 
31764
      'autoplay',
-
 
31765
      'background',
-
 
31766
      'bgcolor',
-
 
31767
      'border',
-
 
31768
      'capture',
-
 
31769
      'cellpadding',
-
 
31770
      'cellspacing',
-
 
31771
      'checked',
-
 
31772
      'cite',
-
 
31773
      'class',
-
 
31774
      'clear',
-
 
31775
      'color',
-
 
31776
      'cols',
-
 
31777
      'colspan',
-
 
31778
      'controls',
-
 
31779
      'controlslist',
-
 
31780
      'coords',
-
 
31781
      'crossorigin',
-
 
31782
      'datetime',
-
 
31783
      'decoding',
-
 
31784
      'default',
-
 
31785
      'dir',
-
 
31786
      'disabled',
-
 
31787
      'disablepictureinpicture',
-
 
31788
      'disableremoteplayback',
-
 
31789
      'download',
-
 
31790
      'draggable',
-
 
31791
      'enctype',
-
 
31792
      'enterkeyhint',
-
 
31793
      'face',
-
 
31794
      'for',
-
 
31795
      'headers',
-
 
31796
      'height',
-
 
31797
      'hidden',
-
 
31798
      'high',
-
 
31799
      'href',
-
 
31800
      'hreflang',
-
 
31801
      'id',
-
 
31802
      'inputmode',
-
 
31803
      'integrity',
-
 
31804
      'ismap',
-
 
31805
      'kind',
-
 
31806
      'label',
-
 
31807
      'lang',
-
 
31808
      'list',
-
 
31809
      'loading',
-
 
31810
      'loop',
-
 
31811
      'low',
-
 
31812
      'max',
-
 
31813
      'maxlength',
-
 
31814
      'media',
-
 
31815
      'method',
-
 
31816
      'min',
-
 
31817
      'minlength',
-
 
31818
      'multiple',
-
 
31819
      'muted',
-
 
31820
      'name',
-
 
31821
      'nonce',
-
 
31822
      'noshade',
-
 
31823
      'novalidate',
-
 
31824
      'nowrap',
-
 
31825
      'open',
-
 
31826
      'optimum',
-
 
31827
      'pattern',
-
 
31828
      'placeholder',
-
 
31829
      'playsinline',
-
 
31830
      'poster',
-
 
31831
      'preload',
-
 
31832
      'pubdate',
-
 
31833
      'radiogroup',
-
 
31834
      'readonly',
-
 
31835
      'rel',
-
 
31836
      'required',
-
 
31837
      'rev',
-
 
31838
      'reversed',
-
 
31839
      'role',
-
 
31840
      'rows',
-
 
31841
      'rowspan',
-
 
31842
      'spellcheck',
-
 
31843
      'scope',
-
 
31844
      'selected',
-
 
31845
      'shape',
-
 
31846
      'size',
-
 
31847
      'sizes',
-
 
31848
      'span',
-
 
31849
      'srclang',
-
 
31850
      'start',
-
 
31851
      'src',
-
 
31852
      'srcset',
-
 
31853
      'step',
-
 
31854
      'style',
-
 
31855
      'summary',
-
 
31856
      'tabindex',
-
 
31857
      'title',
-
 
31858
      'translate',
-
 
31859
      'type',
-
 
31860
      'usemap',
-
 
31861
      'valign',
-
 
31862
      'value',
-
 
31863
      'width',
-
 
31864
      'xmlns',
-
 
31865
      'slot'
-
 
31866
    ]);
-
 
31867
    var svg = freeze([
-
 
31868
      'accent-height',
-
 
31869
      'accumulate',
-
 
31870
      'additive',
-
 
31871
      'alignment-baseline',
-
 
31872
      'ascent',
-
 
31873
      'attributename',
-
 
31874
      'attributetype',
-
 
31875
      'azimuth',
-
 
31876
      'basefrequency',
-
 
31877
      'baseline-shift',
-
 
31878
      'begin',
-
 
31879
      'bias',
-
 
31880
      'by',
-
 
31881
      'class',
-
 
31882
      'clip',
-
 
31883
      'clippathunits',
-
 
31884
      'clip-path',
-
 
31885
      'clip-rule',
-
 
31886
      'color',
-
 
31887
      'color-interpolation',
-
 
31888
      'color-interpolation-filters',
-
 
31889
      'color-profile',
-
 
31890
      'color-rendering',
-
 
31891
      'cx',
-
 
31892
      'cy',
-
 
31893
      'd',
-
 
31894
      'dx',
-
 
31895
      'dy',
-
 
31896
      'diffuseconstant',
-
 
31897
      'direction',
-
 
31898
      'display',
-
 
31899
      'divisor',
-
 
31900
      'dur',
-
 
31901
      'edgemode',
-
 
31902
      'elevation',
-
 
31903
      'end',
-
 
31904
      'fill',
-
 
31905
      'fill-opacity',
-
 
31906
      'fill-rule',
-
 
31907
      'filter',
-
 
31908
      'filterunits',
-
 
31909
      'flood-color',
-
 
31910
      'flood-opacity',
-
 
31911
      'font-family',
-
 
31912
      'font-size',
-
 
31913
      'font-size-adjust',
-
 
31914
      'font-stretch',
-
 
31915
      'font-style',
-
 
31916
      'font-variant',
-
 
31917
      'font-weight',
-
 
31918
      'fx',
-
 
31919
      'fy',
-
 
31920
      'g1',
-
 
31921
      'g2',
-
 
31922
      'glyph-name',
-
 
31923
      'glyphref',
-
 
31924
      'gradientunits',
-
 
31925
      'gradienttransform',
-
 
31926
      'height',
-
 
31927
      'href',
-
 
31928
      'id',
-
 
31929
      'image-rendering',
-
 
31930
      'in',
-
 
31931
      'in2',
-
 
31932
      'k',
-
 
31933
      'k1',
-
 
31934
      'k2',
-
 
31935
      'k3',
-
 
31936
      'k4',
-
 
31937
      'kerning',
-
 
31938
      'keypoints',
-
 
31939
      'keysplines',
-
 
31940
      'keytimes',
-
 
31941
      'lang',
-
 
31942
      'lengthadjust',
-
 
31943
      'letter-spacing',
-
 
31944
      'kernelmatrix',
-
 
31945
      'kernelunitlength',
-
 
31946
      'lighting-color',
-
 
31947
      'local',
-
 
31948
      'marker-end',
-
 
31949
      'marker-mid',
-
 
31950
      'marker-start',
-
 
31951
      'markerheight',
-
 
31952
      'markerunits',
-
 
31953
      'markerwidth',
-
 
31954
      'maskcontentunits',
-
 
31955
      'maskunits',
-
 
31956
      'max',
-
 
31957
      'mask',
-
 
31958
      'media',
-
 
31959
      'method',
-
 
31960
      'mode',
-
 
31961
      'min',
-
 
31962
      'name',
-
 
31963
      'numoctaves',
-
 
31964
      'offset',
-
 
31965
      'operator',
-
 
31966
      'opacity',
-
 
31967
      'order',
-
 
31968
      'orient',
-
 
31969
      'orientation',
-
 
31970
      'origin',
-
 
31971
      'overflow',
-
 
31972
      'paint-order',
-
 
31973
      'path',
-
 
31974
      'pathlength',
-
 
31975
      'patterncontentunits',
-
 
31976
      'patterntransform',
-
 
31977
      'patternunits',
-
 
31978
      'points',
-
 
31979
      'preservealpha',
-
 
31980
      'preserveaspectratio',
-
 
31981
      'primitiveunits',
-
 
31982
      'r',
-
 
31983
      'rx',
-
 
31984
      'ry',
-
 
31985
      'radius',
-
 
31986
      'refx',
-
 
31987
      'refy',
-
 
31988
      'repeatcount',
-
 
31989
      'repeatdur',
-
 
31990
      'restart',
-
 
31991
      'result',
-
 
31992
      'rotate',
-
 
31993
      'scale',
-
 
31994
      'seed',
-
 
31995
      'shape-rendering',
-
 
31996
      'specularconstant',
-
 
31997
      'specularexponent',
-
 
31998
      'spreadmethod',
-
 
31999
      'startoffset',
-
 
32000
      'stddeviation',
-
 
32001
      'stitchtiles',
-
 
32002
      'stop-color',
-
 
32003
      'stop-opacity',
-
 
32004
      'stroke-dasharray',
-
 
32005
      'stroke-dashoffset',
-
 
32006
      'stroke-linecap',
-
 
32007
      'stroke-linejoin',
-
 
32008
      'stroke-miterlimit',
-
 
32009
      'stroke-opacity',
-
 
32010
      'stroke',
-
 
32011
      'stroke-width',
-
 
32012
      'style',
-
 
32013
      'surfacescale',
-
 
32014
      'systemlanguage',
-
 
32015
      'tabindex',
-
 
32016
      'targetx',
-
 
32017
      'targety',
-
 
32018
      'transform',
-
 
32019
      'transform-origin',
-
 
32020
      'text-anchor',
-
 
32021
      'text-decoration',
-
 
32022
      'text-rendering',
-
 
32023
      'textlength',
-
 
32024
      'type',
-
 
32025
      'u1',
-
 
32026
      'u2',
-
 
32027
      'unicode',
-
 
32028
      'values',
-
 
32029
      'viewbox',
-
 
32030
      'visibility',
-
 
32031
      'version',
-
 
32032
      'vert-adv-y',
-
 
32033
      'vert-origin-x',
-
 
32034
      'vert-origin-y',
-
 
32035
      'width',
-
 
32036
      'word-spacing',
-
 
32037
      'wrap',
-
 
32038
      'writing-mode',
-
 
32039
      'xchannelselector',
-
 
32040
      'ychannelselector',
-
 
32041
      'x',
-
 
32042
      'x1',
-
 
32043
      'x2',
-
 
32044
      'xmlns',
-
 
32045
      'y',
-
 
32046
      'y1',
-
 
32047
      'y2',
-
 
32048
      'z',
-
 
32049
      'zoomandpan'
-
 
32050
    ]);
-
 
32051
    var mathMl = freeze([
-
 
32052
      'accent',
-
 
32053
      'accentunder',
-
 
32054
      'align',
-
 
32055
      'bevelled',
-
 
32056
      'close',
-
 
32057
      'columnsalign',
-
 
32058
      'columnlines',
-
 
32059
      'columnspan',
-
 
32060
      'denomalign',
-
 
32061
      'depth',
-
 
32062
      'dir',
-
 
32063
      'display',
-
 
32064
      'displaystyle',
-
 
32065
      'encoding',
-
 
32066
      'fence',
-
 
32067
      'frame',
-
 
32068
      'height',
-
 
32069
      'href',
-
 
32070
      'id',
-
 
32071
      'largeop',
-
 
32072
      'length',
-
 
32073
      'linethickness',
-
 
32074
      'lspace',
-
 
32075
      'lquote',
-
 
32076
      'mathbackground',
-
 
32077
      'mathcolor',
-
 
32078
      'mathsize',
-
 
32079
      'mathvariant',
-
 
32080
      'maxsize',
-
 
32081
      'minsize',
-
 
32082
      'movablelimits',
-
 
32083
      'notation',
-
 
32084
      'numalign',
-
 
32085
      'open',
-
 
32086
      'rowalign',
-
 
32087
      'rowlines',
-
 
32088
      'rowspacing',
-
 
32089
      'rowspan',
-
 
32090
      'rspace',
-
 
32091
      'rquote',
-
 
32092
      'scriptlevel',
-
 
32093
      'scriptminsize',
-
 
32094
      'scriptsizemultiplier',
-
 
32095
      'selection',
-
 
32096
      'separator',
-
 
32097
      'separators',
-
 
32098
      'stretchy',
-
 
32099
      'subscriptshift',
-
 
32100
      'supscriptshift',
-
 
32101
      'symmetric',
-
 
32102
      'voffset',
-
 
32103
      'width',
-
 
32104
      'xmlns'
-
 
32105
    ]);
-
 
32106
    var xml = freeze([
-
 
32107
      'xlink:href',
-
 
32108
      'xml:id',
-
 
32109
      'xlink:title',
-
 
32110
      'xml:space',
-
 
32111
      'xmlns:xlink'
-
 
32112
    ]);
-
 
32113
    var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
-
 
32114
    var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
-
 
32115
    var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/);
-
 
32116
    var ARIA_ATTR = seal(/^aria-[\-\w]+$/);
-
 
32117
    var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i);
-
 
32118
    var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
-
 
32119
    var ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g);
-
 
32120
    var DOCTYPE_NAME = seal(/^html$/i);
-
 
32121
    var getGlobal = function getGlobal() {
-
 
32122
      return typeof window === 'undefined' ? null : window;
-
 
32123
    };
-
 
32124
    var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {
-
 
32125
      if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {
-
 
32126
        return null;
-
 
32127
      }
-
 
32128
      var suffix = null;
-
 
32129
      var ATTR_NAME = 'data-tt-policy-suffix';
-
 
32130
      if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {
-
 
32131
        suffix = document.currentScript.getAttribute(ATTR_NAME);
-
 
32132
      }
-
 
32133
      var policyName = 'dompurify' + (suffix ? '#' + suffix : '');
-
 
32134
      try {
-
 
32135
        return trustedTypes.createPolicy(policyName, {
-
 
32136
          createHTML: function createHTML(html) {
-
 
32137
            return html;
-
 
32138
          }
-
 
32139
        });
-
 
32140
      } catch (_) {
-
 
32141
        console.warn('TrustedTypes policy ' + policyName + ' could not be created.');
-
 
32142
        return null;
-
 
32143
      }
-
 
32144
    };
-
 
32145
    function createDOMPurify() {
-
 
32146
      var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
-
 
32147
      var DOMPurify = function DOMPurify(root) {
-
 
32148
        return createDOMPurify(root);
-
 
32149
      };
-
 
32150
      DOMPurify.version = '2.3.8';
-
 
32151
      DOMPurify.removed = [];
-
 
32152
      if (!window || !window.document || window.document.nodeType !== 9) {
-
 
32153
        DOMPurify.isSupported = false;
-
 
32154
        return DOMPurify;
-
 
32155
      }
-
 
32156
      var originalDocument = window.document;
-
 
32157
      var document = window.document;
-
 
32158
      var DocumentFragment = window.DocumentFragment, HTMLTemplateElement = window.HTMLTemplateElement, Node = window.Node, Element = window.Element, NodeFilter = window.NodeFilter, _window$NamedNodeMap = window.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window.HTMLFormElement, DOMParser = window.DOMParser, trustedTypes = window.trustedTypes;
-
 
32159
      var ElementPrototype = Element.prototype;
-
 
32160
      var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');
-
 
32161
      var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
-
 
32162
      var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
-
 
32163
      var getParentNode = lookupGetter(ElementPrototype, 'parentNode');
-
 
32164
      if (typeof HTMLTemplateElement === 'function') {
-
 
32165
        var template = document.createElement('template');
-
 
32166
        if (template.content && template.content.ownerDocument) {
-
 
32167
          document = template.content.ownerDocument;
-
 
32168
        }
-
 
32169
      }
-
 
32170
      var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);
-
 
32171
      var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';
-
 
32172
      var _document = document, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
-
 
32173
      var importNode = originalDocument.importNode;
-
 
32174
      var documentMode = {};
-
 
32175
      try {
-
 
32176
        documentMode = clone(document).documentMode ? document.documentMode : {};
-
 
32177
      } catch (_) {
-
 
32178
      }
-
 
32179
      var hooks = {};
-
 
32180
      DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;
-
 
32181
      var MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE;
-
 
32182
      var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
-
 
32183
      var ALLOWED_TAGS = null;
-
 
32184
      var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));
-
 
32185
      var ALLOWED_ATTR = null;
-
 
32186
      var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));
-
 
32187
      var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
-
 
32188
        tagNameCheck: {
-
 
32189
          writable: true,
-
 
32190
          configurable: false,
-
 
32191
          enumerable: true,
-
 
32192
          value: null
-
 
32193
        },
-
 
32194
        attributeNameCheck: {
-
 
32195
          writable: true,
-
 
32196
          configurable: false,
-
 
32197
          enumerable: true,
-
 
32198
          value: null
-
 
32199
        },
-
 
32200
        allowCustomizedBuiltInElements: {
-
 
32201
          writable: true,
-
 
32202
          configurable: false,
-
 
32203
          enumerable: true,
-
 
32204
          value: false
-
 
32205
        }
-
 
32206
      }));
-
 
32207
      var FORBID_TAGS = null;
-
 
32208
      var FORBID_ATTR = null;
-
 
32209
      var ALLOW_ARIA_ATTR = true;
-
 
32210
      var ALLOW_DATA_ATTR = true;
-
 
32211
      var ALLOW_UNKNOWN_PROTOCOLS = false;
-
 
32212
      var SAFE_FOR_TEMPLATES = false;
-
 
32213
      var WHOLE_DOCUMENT = false;
-
 
32214
      var SET_CONFIG = false;
-
 
32215
      var FORCE_BODY = false;
-
 
32216
      var RETURN_DOM = false;
-
 
32217
      var RETURN_DOM_FRAGMENT = false;
-
 
32218
      var RETURN_TRUSTED_TYPE = false;
-
 
32219
      var SANITIZE_DOM = true;
-
 
32220
      var KEEP_CONTENT = true;
-
 
32221
      var IN_PLACE = false;
-
 
32222
      var USE_PROFILES = {};
-
 
32223
      var FORBID_CONTENTS = null;
-
 
32224
      var DEFAULT_FORBID_CONTENTS = addToSet({}, [
-
 
32225
        'annotation-xml',
-
 
32226
        'audio',
-
 
32227
        'colgroup',
-
 
32228
        'desc',
-
 
32229
        'foreignobject',
-
 
32230
        'head',
-
 
32231
        'iframe',
-
 
32232
        'math',
-
 
32233
        'mi',
-
 
32234
        'mn',
-
 
32235
        'mo',
-
 
32236
        'ms',
-
 
32237
        'mtext',
-
 
32238
        'noembed',
-
 
32239
        'noframes',
-
 
32240
        'noscript',
-
 
32241
        'plaintext',
-
 
32242
        'script',
-
 
32243
        'style',
-
 
32244
        'svg',
-
 
32245
        'template',
-
 
32246
        'thead',
-
 
32247
        'title',
-
 
32248
        'video',
-
 
32249
        'xmp'
-
 
32250
      ]);
-
 
32251
      var DATA_URI_TAGS = null;
-
 
32252
      var DEFAULT_DATA_URI_TAGS = addToSet({}, [
-
 
32253
        'audio',
-
 
32254
        'video',
-
 
32255
        'img',
-
 
32256
        'source',
-
 
32257
        'image',
-
 
32258
        'track'
-
 
32259
      ]);
-
 
32260
      var URI_SAFE_ATTRIBUTES = null;
-
 
32261
      var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [
-
 
32262
        'alt',
-
 
32263
        'class',
-
 
32264
        'for',
-
 
32265
        'id',
-
 
32266
        'label',
-
 
32267
        'name',
-
 
32268
        'pattern',
-
 
32269
        'placeholder',
-
 
32270
        'role',
-
 
32271
        'summary',
-
 
32272
        'title',
-
 
32273
        'value',
-
 
32274
        'style',
-
 
32275
        'xmlns'
-
 
32276
      ]);
-
 
32277
      var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';
-
 
32278
      var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
-
 
32279
      var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
-
 
32280
      var NAMESPACE = HTML_NAMESPACE;
-
 
32281
      var IS_EMPTY_INPUT = false;
-
 
32282
      var PARSER_MEDIA_TYPE;
-
 
32283
      var SUPPORTED_PARSER_MEDIA_TYPES = [
-
 
32284
        'application/xhtml+xml',
-
 
32285
        'text/html'
-
 
32286
      ];
-
 
32287
      var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';
-
 
32288
      var transformCaseFunc;
-
 
32289
      var CONFIG = null;
-
 
32290
      var formElement = document.createElement('form');
-
 
32291
      var isRegexOrFunction = function isRegexOrFunction(testValue) {
-
 
32292
        return testValue instanceof RegExp || testValue instanceof Function;
-
 
32293
      };
-
 
32294
      var _parseConfig = function _parseConfig(cfg) {
-
 
32295
        if (CONFIG && CONFIG === cfg) {
-
 
32296
          return;
-
 
32297
        }
-
 
32298
        if (!cfg || _typeof(cfg) !== 'object') {
-
 
32299
          cfg = {};
-
 
32300
        }
-
 
32301
        cfg = clone(cfg);
-
 
32302
        ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;
-
 
32303
        ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;
-
 
32304
        URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;
-
 
32305
        DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;
-
 
32306
        FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;
-
 
32307
        FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};
-
 
32308
        FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};
-
 
32309
        USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;
-
 
32310
        ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
-
 
32311
        ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
-
 
32312
        ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
-
 
32313
        SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
-
 
32314
        WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
-
 
32315
        RETURN_DOM = cfg.RETURN_DOM || false;
-
 
32316
        RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
-
 
32317
        RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
-
 
32318
        FORCE_BODY = cfg.FORCE_BODY || false;
-
 
32319
        SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
-
 
32320
        KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
-
 
32321
        IN_PLACE = cfg.IN_PLACE || false;
-
 
32322
        IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;
-
 
32323
        NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
-
 
32324
        if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
-
 
32325
          CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
-
 
32326
        }
-
 
32327
        if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
-
 
32328
          CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
-
 
32329
        }
-
 
32330
        if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {
-
 
32331
          CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
-
 
32332
        }
-
 
32333
        PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;
-
 
32334
        transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {
-
 
32335
          return x;
-
 
32336
        } : stringToLowerCase;
-
 
32337
        if (SAFE_FOR_TEMPLATES) {
-
 
32338
          ALLOW_DATA_ATTR = false;
-
 
32339
        }
-
 
32340
        if (RETURN_DOM_FRAGMENT) {
-
 
32341
          RETURN_DOM = true;
-
 
32342
        }
-
 
32343
        if (USE_PROFILES) {
-
 
32344
          ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));
-
 
32345
          ALLOWED_ATTR = [];
-
 
32346
          if (USE_PROFILES.html === true) {
-
 
32347
            addToSet(ALLOWED_TAGS, html$1);
-
 
32348
            addToSet(ALLOWED_ATTR, html);
-
 
32349
          }
-
 
32350
          if (USE_PROFILES.svg === true) {
-
 
32351
            addToSet(ALLOWED_TAGS, svg$1);
-
 
32352
            addToSet(ALLOWED_ATTR, svg);
-
 
32353
            addToSet(ALLOWED_ATTR, xml);
-
 
32354
          }
-
 
32355
          if (USE_PROFILES.svgFilters === true) {
-
 
32356
            addToSet(ALLOWED_TAGS, svgFilters);
-
 
32357
            addToSet(ALLOWED_ATTR, svg);
-
 
32358
            addToSet(ALLOWED_ATTR, xml);
-
 
32359
          }
-
 
32360
          if (USE_PROFILES.mathMl === true) {
-
 
32361
            addToSet(ALLOWED_TAGS, mathMl$1);
-
 
32362
            addToSet(ALLOWED_ATTR, mathMl);
-
 
32363
            addToSet(ALLOWED_ATTR, xml);
-
 
32364
          }
-
 
32365
        }
-
 
32366
        if (cfg.ADD_TAGS) {
-
 
32367
          if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
-
 
32368
            ALLOWED_TAGS = clone(ALLOWED_TAGS);
-
 
32369
          }
-
 
32370
          addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);
-
 
32371
        }
-
 
32372
        if (cfg.ADD_ATTR) {
-
 
32373
          if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
-
 
32374
            ALLOWED_ATTR = clone(ALLOWED_ATTR);
-
 
32375
          }
-
 
32376
          addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);
-
 
32377
        }
-
 
32378
        if (cfg.ADD_URI_SAFE_ATTR) {
-
 
32379
          addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);
-
 
32380
        }
-
 
32381
        if (cfg.FORBID_CONTENTS) {
-
 
32382
          if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
-
 
32383
            FORBID_CONTENTS = clone(FORBID_CONTENTS);
-
 
32384
          }
-
 
32385
          addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);
-
 
32386
        }
-
 
32387
        if (KEEP_CONTENT) {
-
 
32388
          ALLOWED_TAGS['#text'] = true;
-
 
32389
        }
-
 
32390
        if (WHOLE_DOCUMENT) {
-
 
32391
          addToSet(ALLOWED_TAGS, [
-
 
32392
            'html',
-
 
32393
            'head',
-
 
32394
            'body'
-
 
32395
          ]);
-
 
32396
        }
-
 
32397
        if (ALLOWED_TAGS.table) {
-
 
32398
          addToSet(ALLOWED_TAGS, ['tbody']);
-
 
32399
          delete FORBID_TAGS.tbody;
-
 
32400
        }
-
 
32401
        if (freeze) {
-
 
32402
          freeze(cfg);
-
 
32403
        }
-
 
32404
        CONFIG = cfg;
-
 
32405
      };
-
 
32406
      var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [
-
 
32407
        'mi',
-
 
32408
        'mo',
-
 
32409
        'mn',
-
 
32410
        'ms',
-
 
32411
        'mtext'
-
 
32412
      ]);
-
 
32413
      var HTML_INTEGRATION_POINTS = addToSet({}, [
-
 
32414
        'foreignobject',
-
 
32415
        'desc',
-
 
32416
        'title',
-
 
32417
        'annotation-xml'
-
 
32418
      ]);
-
 
32419
      var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [
-
 
32420
        'title',
-
 
32421
        'style',
-
 
32422
        'font',
-
 
32423
        'a',
-
 
32424
        'script'
-
 
32425
      ]);
-
 
32426
      var ALL_SVG_TAGS = addToSet({}, svg$1);
-
 
32427
      addToSet(ALL_SVG_TAGS, svgFilters);
-
 
32428
      addToSet(ALL_SVG_TAGS, svgDisallowed);
-
 
32429
      var ALL_MATHML_TAGS = addToSet({}, mathMl$1);
-
 
32430
      addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
-
 
32431
      var _checkValidNamespace = function _checkValidNamespace(element) {
-
 
32432
        var parent = getParentNode(element);
-
 
32433
        if (!parent || !parent.tagName) {
-
 
32434
          parent = {
-
 
32435
            namespaceURI: HTML_NAMESPACE,
-
 
32436
            tagName: 'template'
-
 
32437
          };
-
 
32438
        }
-
 
32439
        var tagName = stringToLowerCase(element.tagName);
-
 
32440
        var parentTagName = stringToLowerCase(parent.tagName);
-
 
32441
        if (element.namespaceURI === SVG_NAMESPACE) {
-
 
32442
          if (parent.namespaceURI === HTML_NAMESPACE) {
-
 
32443
            return tagName === 'svg';
-
 
32444
          }
-
 
32445
          if (parent.namespaceURI === MATHML_NAMESPACE) {
-
 
32446
            return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
-
 
32447
          }
-
 
32448
          return Boolean(ALL_SVG_TAGS[tagName]);
-
 
32449
        }
-
 
32450
        if (element.namespaceURI === MATHML_NAMESPACE) {
-
 
32451
          if (parent.namespaceURI === HTML_NAMESPACE) {
-
 
32452
            return tagName === 'math';
-
 
32453
          }
-
 
32454
          if (parent.namespaceURI === SVG_NAMESPACE) {
-
 
32455
            return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
-
 
32456
          }
-
 
32457
          return Boolean(ALL_MATHML_TAGS[tagName]);
-
 
32458
        }
-
 
32459
        if (element.namespaceURI === HTML_NAMESPACE) {
-
 
32460
          if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
-
 
32461
            return false;
-
 
32462
          }
-
 
32463
          if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
-
 
32464
            return false;
-
 
32465
          }
-
 
32466
          return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
-
 
32467
        }
-
 
32468
        return false;
-
 
32469
      };
-
 
32470
      var _forceRemove = function _forceRemove(node) {
-
 
32471
        arrayPush(DOMPurify.removed, { element: node });
-
 
32472
        try {
-
 
32473
          node.parentNode.removeChild(node);
-
 
32474
        } catch (_) {
-
 
32475
          try {
-
 
32476
            node.outerHTML = emptyHTML;
-
 
32477
          } catch (_) {
-
 
32478
            node.remove();
-
 
32479
          }
-
 
32480
        }
-
 
32481
      };
-
 
32482
      var _removeAttribute = function _removeAttribute(name, node) {
-
 
32483
        try {
-
 
32484
          arrayPush(DOMPurify.removed, {
-
 
32485
            attribute: node.getAttributeNode(name),
-
 
32486
            from: node
-
 
32487
          });
-
 
32488
        } catch (_) {
-
 
32489
          arrayPush(DOMPurify.removed, {
-
 
32490
            attribute: null,
-
 
32491
            from: node
-
 
32492
          });
-
 
32493
        }
-
 
32494
        node.removeAttribute(name);
-
 
32495
        if (name === 'is' && !ALLOWED_ATTR[name]) {
-
 
32496
          if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
-
 
32497
            try {
-
 
32498
              _forceRemove(node);
-
 
32499
            } catch (_) {
-
 
32500
            }
-
 
32501
          } else {
-
 
32502
            try {
-
 
32503
              node.setAttribute(name, '');
-
 
32504
            } catch (_) {
-
 
32505
            }
-
 
32506
          }
-
 
32507
        }
-
 
32508
      };
-
 
32509
      var _initDocument = function _initDocument(dirty) {
-
 
32510
        var doc;
-
 
32511
        var leadingWhitespace;
-
 
32512
        if (FORCE_BODY) {
-
 
32513
          dirty = '<remove></remove>' + dirty;
-
 
32514
        } else {
-
 
32515
          var matches = stringMatch(dirty, /^[\r\n\t ]+/);
-
 
32516
          leadingWhitespace = matches && matches[0];
-
 
32517
        }
-
 
32518
        if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {
-
 
32519
          dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>';
-
 
32520
        }
-
 
32521
        var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
-
 
32522
        if (NAMESPACE === HTML_NAMESPACE) {
-
 
32523
          try {
-
 
32524
            doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
-
 
32525
          } catch (_) {
-
 
32526
          }
-
 
32527
        }
-
 
32528
        if (!doc || !doc.documentElement) {
-
 
32529
          doc = implementation.createDocument(NAMESPACE, 'template', null);
-
 
32530
          try {
-
 
32531
            doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;
-
 
32532
          } catch (_) {
-
 
32533
          }
-
 
32534
        }
-
 
32535
        var body = doc.body || doc.documentElement;
-
 
32536
        if (dirty && leadingWhitespace) {
-
 
32537
          body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
-
 
32538
        }
-
 
32539
        if (NAMESPACE === HTML_NAMESPACE) {
-
 
32540
          return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];
-
 
32541
        }
-
 
32542
        return WHOLE_DOCUMENT ? doc.documentElement : body;
-
 
32543
      };
-
 
32544
      var _createIterator = function _createIterator(root) {
-
 
32545
        return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);
-
 
32546
      };
-
 
32547
      var _isClobbered = function _isClobbered(elm) {
-
 
32548
        return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function');
-
 
32549
      };
-
 
32550
      var _isNode = function _isNode(object) {
-
 
32551
        return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';
-
 
32552
      };
-
 
32553
      var _executeHook = function _executeHook(entryPoint, currentNode, data) {
-
 
32554
        if (!hooks[entryPoint]) {
-
 
32555
          return;
-
 
32556
        }
-
 
32557
        arrayForEach(hooks[entryPoint], function (hook) {
-
 
32558
          hook.call(DOMPurify, currentNode, data, CONFIG);
-
 
32559
        });
-
 
32560
      };
-
 
32561
      var _sanitizeElements = function _sanitizeElements(currentNode) {
-
 
32562
        var content;
-
 
32563
        _executeHook('beforeSanitizeElements', currentNode, null);
-
 
32564
        if (_isClobbered(currentNode)) {
-
 
32565
          _forceRemove(currentNode);
-
 
32566
          return true;
-
 
32567
        }
-
 
32568
        if (regExpTest(/[\u0080-\uFFFF]/, currentNode.nodeName)) {
-
 
32569
          _forceRemove(currentNode);
-
 
32570
          return true;
-
 
32571
        }
-
 
32572
        var tagName = transformCaseFunc(currentNode.nodeName);
-
 
32573
        _executeHook('uponSanitizeElement', currentNode, {
-
 
32574
          tagName: tagName,
-
 
32575
          allowedTags: ALLOWED_TAGS
-
 
32576
        });
-
 
32577
        if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
-
 
32578
          _forceRemove(currentNode);
-
 
32579
          return true;
-
 
32580
        }
-
 
32581
        if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {
-
 
32582
          _forceRemove(currentNode);
-
 
32583
          return true;
-
 
32584
        }
-
 
32585
        if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
-
 
32586
          if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
-
 
32587
            if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName))
-
 
32588
              return false;
-
 
32589
            if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName))
-
 
32590
              return false;
-
 
32591
          }
-
 
32592
          if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
-
 
32593
            var parentNode = getParentNode(currentNode) || currentNode.parentNode;
-
 
32594
            var childNodes = getChildNodes(currentNode) || currentNode.childNodes;
-
 
32595
            if (childNodes && parentNode) {
-
 
32596
              var childCount = childNodes.length;
-
 
32597
              for (var i = childCount - 1; i >= 0; --i) {
-
 
32598
                parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));
-
 
32599
              }
-
 
32600
            }
-
 
32601
          }
-
 
32602
          _forceRemove(currentNode);
-
 
32603
          return true;
-
 
32604
        }
-
 
32605
        if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
-
 
32606
          _forceRemove(currentNode);
-
 
32607
          return true;
-
 
32608
        }
-
 
32609
        if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\/no(script|embed)/i, currentNode.innerHTML)) {
-
 
32610
          _forceRemove(currentNode);
-
 
32611
          return true;
-
 
32612
        }
-
 
32613
        if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
-
 
32614
          content = currentNode.textContent;
-
 
32615
          content = stringReplace(content, MUSTACHE_EXPR$1, ' ');
-
 
32616
          content = stringReplace(content, ERB_EXPR$1, ' ');
-
 
32617
          if (currentNode.textContent !== content) {
-
 
32618
            arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });
-
 
32619
            currentNode.textContent = content;
-
 
32620
          }
-
 
32621
        }
-
 
32622
        _executeHook('afterSanitizeElements', currentNode, null);
-
 
32623
        return false;
-
 
32624
      };
-
 
32625
      var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
-
 
32626
        if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
-
 
32627
          return false;
-
 
32628
        }
-
 
32629
        if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName));
-
 
32630
        else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName));
-
 
32631
        else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
-
 
32632
          if (_basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value)));
-
 
32633
          else {
-
 
32634
            return false;
-
 
32635
          }
-
 
32636
        } else if (URI_SAFE_ATTRIBUTES[lcName]);
-
 
32637
        else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, '')));
-
 
32638
        else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]);
-
 
32639
        else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, '')));
-
 
32640
        else if (!value);
-
 
32641
        else {
-
 
32642
          return false;
-
 
32643
        }
-
 
32644
        return true;
-
 
32645
      };
-
 
32646
      var _basicCustomElementTest = function _basicCustomElementTest(tagName) {
-
 
32647
        return tagName.indexOf('-') > 0;
-
 
32648
      };
-
 
32649
      var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
-
 
32650
        var attr;
-
 
32651
        var value;
-
 
32652
        var lcName;
-
 
32653
        var l;
-
 
32654
        _executeHook('beforeSanitizeAttributes', currentNode, null);
-
 
32655
        var attributes = currentNode.attributes;
-
 
32656
        if (!attributes) {
-
 
32657
          return;
-
 
32658
        }
-
 
32659
        var hookEvent = {
-
 
32660
          attrName: '',
-
 
32661
          attrValue: '',
-
 
32662
          keepAttr: true,
-
 
32663
          allowedAttributes: ALLOWED_ATTR
-
 
32664
        };
-
 
32665
        l = attributes.length;
-
 
32666
        while (l--) {
-
 
32667
          attr = attributes[l];
-
 
32668
          var _attr = attr, name = _attr.name, namespaceURI = _attr.namespaceURI;
-
 
32669
          value = name === 'value' ? attr.value : stringTrim(attr.value);
-
 
32670
          lcName = transformCaseFunc(name);
-
 
32671
          hookEvent.attrName = lcName;
-
 
32672
          hookEvent.attrValue = value;
-
 
32673
          hookEvent.keepAttr = true;
-
 
32674
          hookEvent.forceKeepAttr = undefined;
-
 
32675
          _executeHook('uponSanitizeAttribute', currentNode, hookEvent);
-
 
32676
          value = hookEvent.attrValue;
-
 
32677
          if (hookEvent.forceKeepAttr) {
-
 
32678
            continue;
-
 
32679
          }
-
 
32680
          _removeAttribute(name, currentNode);
-
 
32681
          if (!hookEvent.keepAttr) {
-
 
32682
            continue;
-
 
32683
          }
-
 
32684
          if (regExpTest(/\/>/i, value)) {
-
 
32685
            _removeAttribute(name, currentNode);
-
 
32686
            continue;
-
 
32687
          }
-
 
32688
          if (SAFE_FOR_TEMPLATES) {
-
 
32689
            value = stringReplace(value, MUSTACHE_EXPR$1, ' ');
-
 
32690
            value = stringReplace(value, ERB_EXPR$1, ' ');
-
 
32691
          }
-
 
32692
          var lcTag = transformCaseFunc(currentNode.nodeName);
-
 
32693
          if (!_isValidAttribute(lcTag, lcName, value)) {
-
 
32694
            continue;
-
 
32695
          }
-
 
32696
          try {
-
 
32697
            if (namespaceURI) {
-
 
32698
              currentNode.setAttributeNS(namespaceURI, name, value);
-
 
32699
            } else {
-
 
32700
              currentNode.setAttribute(name, value);
-
 
32701
            }
-
 
32702
            arrayPop(DOMPurify.removed);
-
 
32703
          } catch (_) {
-
 
32704
          }
-
 
32705
        }
-
 
32706
        _executeHook('afterSanitizeAttributes', currentNode, null);
-
 
32707
      };
-
 
32708
      var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
-
 
32709
        var shadowNode;
-
 
32710
        var shadowIterator = _createIterator(fragment);
-
 
32711
        _executeHook('beforeSanitizeShadowDOM', fragment, null);
-
 
32712
        while (shadowNode = shadowIterator.nextNode()) {
-
 
32713
          _executeHook('uponSanitizeShadowNode', shadowNode, null);
-
 
32714
          if (_sanitizeElements(shadowNode)) {
-
 
32715
            continue;
-
 
32716
          }
-
 
32717
          if (shadowNode.content instanceof DocumentFragment) {
-
 
32718
            _sanitizeShadowDOM(shadowNode.content);
-
 
32719
          }
-
 
32720
          _sanitizeAttributes(shadowNode);
-
 
32721
        }
-
 
32722
        _executeHook('afterSanitizeShadowDOM', fragment, null);
-
 
32723
      };
-
 
32724
      DOMPurify.sanitize = function (dirty, cfg) {
-
 
32725
        var body;
-
 
32726
        var importedNode;
-
 
32727
        var currentNode;
-
 
32728
        var oldNode;
-
 
32729
        var returnNode;
-
 
32730
        IS_EMPTY_INPUT = !dirty;
-
 
32731
        if (IS_EMPTY_INPUT) {
-
 
32732
          dirty = '<!-->';
-
 
32733
        }
-
 
32734
        if (typeof dirty !== 'string' && !_isNode(dirty)) {
-
 
32735
          if (typeof dirty.toString !== 'function') {
-
 
32736
            throw typeErrorCreate('toString is not a function');
-
 
32737
          } else {
-
 
32738
            dirty = dirty.toString();
-
 
32739
            if (typeof dirty !== 'string') {
-
 
32740
              throw typeErrorCreate('dirty is not a string, aborting');
-
 
32741
            }
-
 
32742
          }
-
 
32743
        }
-
 
32744
        if (!DOMPurify.isSupported) {
-
 
32745
          if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {
-
 
32746
            if (typeof dirty === 'string') {
-
 
32747
              return window.toStaticHTML(dirty);
-
 
32748
            }
-
 
32749
            if (_isNode(dirty)) {
-
 
32750
              return window.toStaticHTML(dirty.outerHTML);
-
 
32751
            }
-
 
32752
          }
-
 
32753
          return dirty;
-
 
32754
        }
-
 
32755
        if (!SET_CONFIG) {
-
 
32756
          _parseConfig(cfg);
-
 
32757
        }
-
 
32758
        DOMPurify.removed = [];
-
 
32759
        if (typeof dirty === 'string') {
-
 
32760
          IN_PLACE = false;
-
 
32761
        }
-
 
32762
        if (IN_PLACE) {
-
 
32763
          if (dirty.nodeName) {
-
 
32764
            var tagName = transformCaseFunc(dirty.nodeName);
-
 
32765
            if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
-
 
32766
              throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');
-
 
32767
            }
-
 
32768
          }
-
 
32769
        } else if (dirty instanceof Node) {
-
 
32770
          body = _initDocument('<!---->');
-
 
32771
          importedNode = body.ownerDocument.importNode(dirty, true);
-
 
32772
          if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {
-
 
32773
            body = importedNode;
-
 
32774
          } else if (importedNode.nodeName === 'HTML') {
-
 
32775
            body = importedNode;
-
 
32776
          } else {
-
 
32777
            body.appendChild(importedNode);
-
 
32778
          }
-
 
32779
        } else {
-
 
32780
          if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf('<') === -1) {
-
 
32781
            return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
-
 
32782
          }
-
 
32783
          body = _initDocument(dirty);
-
 
32784
          if (!body) {
-
 
32785
            return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';
-
 
32786
          }
-
 
32787
        }
-
 
32788
        if (body && FORCE_BODY) {
-
 
32789
          _forceRemove(body.firstChild);
-
 
32790
        }
-
 
32791
        var nodeIterator = _createIterator(IN_PLACE ? dirty : body);
-
 
32792
        while (currentNode = nodeIterator.nextNode()) {
-
 
32793
          if (currentNode.nodeType === 3 && currentNode === oldNode) {
-
 
32794
            continue;
-
 
32795
          }
-
 
32796
          if (_sanitizeElements(currentNode)) {
-
 
32797
            continue;
-
 
32798
          }
-
 
32799
          if (currentNode.content instanceof DocumentFragment) {
-
 
32800
            _sanitizeShadowDOM(currentNode.content);
-
 
32801
          }
-
 
32802
          _sanitizeAttributes(currentNode);
-
 
32803
          oldNode = currentNode;
-
 
32804
        }
-
 
32805
        oldNode = null;
-
 
32806
        if (IN_PLACE) {
-
 
32807
          return dirty;
-
 
32808
        }
-
 
32809
        if (RETURN_DOM) {
-
 
32810
          if (RETURN_DOM_FRAGMENT) {
-
 
32811
            returnNode = createDocumentFragment.call(body.ownerDocument);
-
 
32812
            while (body.firstChild) {
-
 
32813
              returnNode.appendChild(body.firstChild);
-
 
32814
            }
-
 
32815
          } else {
-
 
32816
            returnNode = body;
-
 
32817
          }
-
 
32818
          if (ALLOWED_ATTR.shadowroot) {
-
 
32819
            returnNode = importNode.call(originalDocument, returnNode, true);
-
 
32820
          }
-
 
32821
          return returnNode;
-
 
32822
        }
-
 
32823
        var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
-
 
32824
        if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
-
 
32825
          serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\n' + serializedHTML;
-
 
32826
        }
-
 
32827
        if (SAFE_FOR_TEMPLATES) {
-
 
32828
          serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');
-
 
32829
          serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');
-
 
32830
        }
-
 
32831
        return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
-
 
32832
      };
-
 
32833
      DOMPurify.setConfig = function (cfg) {
-
 
32834
        _parseConfig(cfg);
-
 
32835
        SET_CONFIG = true;
-
 
32836
      };
-
 
32837
      DOMPurify.clearConfig = function () {
-
 
32838
        CONFIG = null;
-
 
32839
        SET_CONFIG = false;
-
 
32840
      };
-
 
32841
      DOMPurify.isValidAttribute = function (tag, attr, value) {
-
 
32842
        if (!CONFIG) {
-
 
32843
          _parseConfig({});
-
 
32844
        }
-
 
32845
        var lcTag = transformCaseFunc(tag);
-
 
32846
        var lcName = transformCaseFunc(attr);
-
 
32847
        return _isValidAttribute(lcTag, lcName, value);
-
 
32848
      };
-
 
32849
      DOMPurify.addHook = function (entryPoint, hookFunction) {
-
 
32850
        if (typeof hookFunction !== 'function') {
-
 
32851
          return;
-
 
32852
        }
-
 
32853
        hooks[entryPoint] = hooks[entryPoint] || [];
-
 
32854
        arrayPush(hooks[entryPoint], hookFunction);
-
 
32855
      };
-
 
32856
      DOMPurify.removeHook = function (entryPoint) {
-
 
32857
        if (hooks[entryPoint]) {
-
 
32858
          return arrayPop(hooks[entryPoint]);
-
 
32859
        }
-
 
32860
      };
-
 
32861
      DOMPurify.removeHooks = function (entryPoint) {
-
 
32862
        if (hooks[entryPoint]) {
-
 
32863
          hooks[entryPoint] = [];
-
 
32864
        }
-
 
32865
      };
-
 
32866
      DOMPurify.removeAllHooks = function () {
-
 
32867
        hooks = {};
-
 
32868
      };
-
 
32869
      return DOMPurify;
-
 
32870
    }
-
 
32871
    var purify = createDOMPurify();
-
 
32872
 
-
 
32873
    var sanitizeHtmlString = function (html) {
-
 
32874
      return purify().sanitize(html);
-
 
32875
    };
-
 
32876
 
-
 
32877
    var isTouch = global$9.deviceType.isTouch();
32874
    var isTouch = global$9.deviceType.isTouch();
32878
    var hiddenHeader = function (title, close) {
32875
    var hiddenHeader = function (title, close) {
32879
      return {
32876
      return {
32880
        dom: {
32877
        dom: {
32881
          tag: 'div',
32878
          tag: 'div',