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', |