@eclass/ui-kit 1.64.4 → 1.64.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/eclass-ui-kit.es.js +1728 -542
- package/dist/eclass-ui-kit.es.js.map +1 -1
- package/dist/eclass-ui-kit.umd.js +32 -30
- package/dist/eclass-ui-kit.umd.js.map +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +13 -12
package/dist/eclass-ui-kit.es.js
CHANGED
|
@@ -3827,96 +3827,143 @@ function CourseList({
|
|
|
3827
3827
|
});
|
|
3828
3828
|
}
|
|
3829
3829
|
CourseList.displayName = "CourseList";
|
|
3830
|
-
/*! @license DOMPurify 3.
|
|
3831
|
-
|
|
3832
|
-
|
|
3833
|
-
|
|
3834
|
-
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
if (
|
|
3830
|
+
/*! @license DOMPurify 3.4.17 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.17/LICENSE */
|
|
3831
|
+
function _arrayLikeToArray(r, a2) {
|
|
3832
|
+
(null == a2 || a2 > r.length) && (a2 = r.length);
|
|
3833
|
+
for (var e2 = 0, n2 = Array(a2); e2 < a2; e2++)
|
|
3834
|
+
n2[e2] = r[e2];
|
|
3835
|
+
return n2;
|
|
3836
|
+
}
|
|
3837
|
+
function _arrayWithHoles(r) {
|
|
3838
|
+
if (Array.isArray(r))
|
|
3839
|
+
return r;
|
|
3840
|
+
}
|
|
3841
|
+
function _iterableToArrayLimit(r, l2) {
|
|
3842
|
+
var t2 = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
3843
|
+
if (null != t2) {
|
|
3844
|
+
var e2, n2, i2, u2, a2 = [], f2 = true, o2 = false;
|
|
3845
|
+
try {
|
|
3846
|
+
if (i2 = (t2 = t2.call(r)).next, 0 === l2) {
|
|
3847
|
+
if (Object(t2) !== t2)
|
|
3848
|
+
return;
|
|
3849
|
+
f2 = false;
|
|
3850
|
+
} else
|
|
3851
|
+
for (; !(f2 = (e2 = i2.call(t2)).done) && (a2.push(e2.value), a2.length !== l2); f2 = true)
|
|
3852
|
+
;
|
|
3853
|
+
} catch (r2) {
|
|
3854
|
+
o2 = true, n2 = r2;
|
|
3855
|
+
} finally {
|
|
3856
|
+
try {
|
|
3857
|
+
if (!f2 && null != t2.return && (u2 = t2.return(), Object(u2) !== u2))
|
|
3858
|
+
return;
|
|
3859
|
+
} finally {
|
|
3860
|
+
if (o2)
|
|
3861
|
+
throw n2;
|
|
3862
|
+
}
|
|
3863
|
+
}
|
|
3864
|
+
return a2;
|
|
3865
|
+
}
|
|
3866
|
+
}
|
|
3867
|
+
function _nonIterableRest() {
|
|
3868
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
3869
|
+
}
|
|
3870
|
+
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
|
3871
|
+
function _slicedToArray(r, e2) {
|
|
3872
|
+
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e2) || _unsupportedIterableToArray(r, e2) || _nonIterableRest();
|
|
3873
|
+
}
|
|
3874
|
+
function _unsupportedIterableToArray(r, a2) {
|
|
3875
|
+
if (r) {
|
|
3876
|
+
if ("string" == typeof r)
|
|
3877
|
+
return _arrayLikeToArray(r, a2);
|
|
3878
|
+
var t2 = {}.toString.call(r).slice(8, -1);
|
|
3879
|
+
return "Object" === t2 && r.constructor && (t2 = r.constructor.name), "Map" === t2 || "Set" === t2 ? Array.from(r) : "Arguments" === t2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t2) ? _arrayLikeToArray(r, a2) : void 0;
|
|
3880
|
+
}
|
|
3881
|
+
}
|
|
3882
|
+
const entries = Object.entries;
|
|
3883
|
+
const setPrototypeOf = Object.setPrototypeOf;
|
|
3884
|
+
const isFrozen = Object.isFrozen;
|
|
3885
|
+
const getPrototypeOf = Object.getPrototypeOf;
|
|
3886
|
+
const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
3887
|
+
let freeze = Object.freeze;
|
|
3888
|
+
let seal = Object.seal;
|
|
3889
|
+
let create = Object.create;
|
|
3890
|
+
let _ref = typeof Reflect !== "undefined" && Reflect;
|
|
3891
|
+
let apply = _ref.apply;
|
|
3892
|
+
let construct = _ref.construct;
|
|
3893
|
+
if (!freeze)
|
|
3848
3894
|
freeze = function freeze2(x) {
|
|
3849
3895
|
return x;
|
|
3850
3896
|
};
|
|
3851
|
-
|
|
3852
|
-
if (!seal) {
|
|
3897
|
+
if (!seal)
|
|
3853
3898
|
seal = function seal2(x) {
|
|
3854
3899
|
return x;
|
|
3855
3900
|
};
|
|
3856
|
-
|
|
3857
|
-
if (!apply) {
|
|
3901
|
+
if (!apply)
|
|
3858
3902
|
apply = function apply2(func, thisArg) {
|
|
3859
|
-
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++)
|
|
3903
|
+
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++)
|
|
3860
3904
|
args[_key - 2] = arguments[_key];
|
|
3861
|
-
}
|
|
3862
3905
|
return func.apply(thisArg, args);
|
|
3863
3906
|
};
|
|
3864
|
-
|
|
3865
|
-
if (!construct) {
|
|
3907
|
+
if (!construct)
|
|
3866
3908
|
construct = function construct2(Func) {
|
|
3867
|
-
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++)
|
|
3909
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++)
|
|
3868
3910
|
args[_key2 - 1] = arguments[_key2];
|
|
3869
|
-
}
|
|
3870
3911
|
return new Func(...args);
|
|
3871
3912
|
};
|
|
3872
|
-
}
|
|
3873
3913
|
const arrayForEach = unapply(Array.prototype.forEach);
|
|
3874
3914
|
const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);
|
|
3875
3915
|
const arrayPop = unapply(Array.prototype.pop);
|
|
3876
3916
|
const arrayPush = unapply(Array.prototype.push);
|
|
3917
|
+
const arraySlice = unapply(Array.prototype.slice);
|
|
3877
3918
|
const arraySplice = unapply(Array.prototype.splice);
|
|
3919
|
+
const arrayIsArray = Array.isArray;
|
|
3920
|
+
const setCreate = unconstruct(Set);
|
|
3921
|
+
const setAdd = unapply(Set.prototype.add);
|
|
3922
|
+
const setHas = unapply(Set.prototype.has);
|
|
3878
3923
|
const stringToLowerCase = unapply(String.prototype.toLowerCase);
|
|
3879
3924
|
const stringToString = unapply(String.prototype.toString);
|
|
3880
3925
|
const stringMatch = unapply(String.prototype.match);
|
|
3881
3926
|
const stringReplace = unapply(String.prototype.replace);
|
|
3882
3927
|
const stringIndexOf = unapply(String.prototype.indexOf);
|
|
3883
3928
|
const stringTrim = unapply(String.prototype.trim);
|
|
3929
|
+
const numberToString = unapply(Number.prototype.toString);
|
|
3930
|
+
const booleanToString = unapply(Boolean.prototype.toString);
|
|
3931
|
+
const bigintToString = typeof BigInt === "undefined" ? null : unapply(BigInt.prototype.toString);
|
|
3932
|
+
const symbolToString = typeof Symbol === "undefined" ? null : unapply(Symbol.prototype.toString);
|
|
3884
3933
|
const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);
|
|
3934
|
+
const objectToString = unapply(Object.prototype.toString);
|
|
3885
3935
|
const regExpTest = unapply(RegExp.prototype.test);
|
|
3886
3936
|
const typeErrorCreate = unconstruct(TypeError);
|
|
3887
3937
|
function unapply(func) {
|
|
3888
3938
|
return function(thisArg) {
|
|
3889
|
-
if (thisArg instanceof RegExp)
|
|
3939
|
+
if (thisArg instanceof RegExp)
|
|
3890
3940
|
thisArg.lastIndex = 0;
|
|
3891
|
-
|
|
3892
|
-
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
|
3941
|
+
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++)
|
|
3893
3942
|
args[_key3 - 1] = arguments[_key3];
|
|
3894
|
-
}
|
|
3895
3943
|
return apply(func, thisArg, args);
|
|
3896
3944
|
};
|
|
3897
3945
|
}
|
|
3898
3946
|
function unconstruct(Func) {
|
|
3899
3947
|
return function() {
|
|
3900
|
-
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++)
|
|
3948
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++)
|
|
3901
3949
|
args[_key4] = arguments[_key4];
|
|
3902
|
-
}
|
|
3903
3950
|
return construct(Func, args);
|
|
3904
3951
|
};
|
|
3905
3952
|
}
|
|
3906
3953
|
function addToSet(set, array) {
|
|
3907
3954
|
let transformCaseFunc = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : stringToLowerCase;
|
|
3908
|
-
if (setPrototypeOf)
|
|
3955
|
+
if (setPrototypeOf)
|
|
3909
3956
|
setPrototypeOf(set, null);
|
|
3910
|
-
|
|
3957
|
+
if (!arrayIsArray(array))
|
|
3958
|
+
return set;
|
|
3911
3959
|
let l2 = array.length;
|
|
3912
3960
|
while (l2--) {
|
|
3913
3961
|
let element = array[l2];
|
|
3914
3962
|
if (typeof element === "string") {
|
|
3915
3963
|
const lcElement = transformCaseFunc(element);
|
|
3916
3964
|
if (lcElement !== element) {
|
|
3917
|
-
if (!isFrozen(array))
|
|
3965
|
+
if (!isFrozen(array))
|
|
3918
3966
|
array[l2] = lcElement;
|
|
3919
|
-
}
|
|
3920
3967
|
element = lcElement;
|
|
3921
3968
|
}
|
|
3922
3969
|
}
|
|
@@ -3925,40 +3972,66 @@ function addToSet(set, array) {
|
|
|
3925
3972
|
return set;
|
|
3926
3973
|
}
|
|
3927
3974
|
function cleanArray(array) {
|
|
3928
|
-
for (let index2 = 0; index2 < array.length; index2++)
|
|
3929
|
-
|
|
3930
|
-
if (!isPropertyExist) {
|
|
3975
|
+
for (let index2 = 0; index2 < array.length; index2++)
|
|
3976
|
+
if (!objectHasOwnProperty(array, index2))
|
|
3931
3977
|
array[index2] = null;
|
|
3932
|
-
}
|
|
3933
|
-
}
|
|
3934
3978
|
return array;
|
|
3935
3979
|
}
|
|
3936
3980
|
function clone(object) {
|
|
3937
3981
|
const newObject = create(null);
|
|
3938
|
-
for (const
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3982
|
+
for (const _ref2 of entries(object)) {
|
|
3983
|
+
var _ref3 = _slicedToArray(_ref2, 2);
|
|
3984
|
+
const property = _ref3[0];
|
|
3985
|
+
const value = _ref3[1];
|
|
3986
|
+
if (objectHasOwnProperty(object, property)) {
|
|
3987
|
+
if (arrayIsArray(value))
|
|
3942
3988
|
newObject[property] = cleanArray(value);
|
|
3943
|
-
|
|
3989
|
+
else if (value && typeof value === "object" && value.constructor === Object)
|
|
3944
3990
|
newObject[property] = clone(value);
|
|
3945
|
-
|
|
3991
|
+
else
|
|
3946
3992
|
newObject[property] = value;
|
|
3947
|
-
}
|
|
3948
3993
|
}
|
|
3949
3994
|
}
|
|
3950
3995
|
return newObject;
|
|
3951
3996
|
}
|
|
3997
|
+
function stringifyValue(value) {
|
|
3998
|
+
switch (typeof value) {
|
|
3999
|
+
case "string":
|
|
4000
|
+
return value;
|
|
4001
|
+
case "number":
|
|
4002
|
+
return numberToString(value);
|
|
4003
|
+
case "boolean":
|
|
4004
|
+
return booleanToString(value);
|
|
4005
|
+
case "bigint":
|
|
4006
|
+
return bigintToString ? bigintToString(value) : "0";
|
|
4007
|
+
case "symbol":
|
|
4008
|
+
return symbolToString ? symbolToString(value) : "Symbol()";
|
|
4009
|
+
case "undefined":
|
|
4010
|
+
return objectToString(value);
|
|
4011
|
+
case "function":
|
|
4012
|
+
case "object": {
|
|
4013
|
+
if (value === null)
|
|
4014
|
+
return objectToString(value);
|
|
4015
|
+
const valueAsRecord = value;
|
|
4016
|
+
const valueToString = lookupGetter(valueAsRecord, "toString");
|
|
4017
|
+
if (typeof valueToString === "function") {
|
|
4018
|
+
const stringified = valueToString(valueAsRecord);
|
|
4019
|
+
return typeof stringified === "string" ? stringified : objectToString(stringified);
|
|
4020
|
+
}
|
|
4021
|
+
return objectToString(value);
|
|
4022
|
+
}
|
|
4023
|
+
default:
|
|
4024
|
+
return objectToString(value);
|
|
4025
|
+
}
|
|
4026
|
+
}
|
|
3952
4027
|
function lookupGetter(object, prop) {
|
|
3953
4028
|
while (object !== null) {
|
|
3954
4029
|
const desc = getOwnPropertyDescriptor(object, prop);
|
|
3955
4030
|
if (desc) {
|
|
3956
|
-
if (desc.get)
|
|
4031
|
+
if (desc.get)
|
|
3957
4032
|
return unapply(desc.get);
|
|
3958
|
-
|
|
3959
|
-
if (typeof desc.value === "function") {
|
|
4033
|
+
if (typeof desc.value === "function")
|
|
3960
4034
|
return unapply(desc.value);
|
|
3961
|
-
}
|
|
3962
4035
|
}
|
|
3963
4036
|
object = getPrototypeOf(object);
|
|
3964
4037
|
}
|
|
@@ -3967,44 +4040,685 @@ function lookupGetter(object, prop) {
|
|
|
3967
4040
|
}
|
|
3968
4041
|
return fallbackValue;
|
|
3969
4042
|
}
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
const
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
4043
|
+
function lookupAccessor(object, prop) {
|
|
4044
|
+
while (object !== null) {
|
|
4045
|
+
const desc = getOwnPropertyDescriptor(object, prop);
|
|
4046
|
+
if (desc)
|
|
4047
|
+
return desc.get ? unapply(desc.get) : null;
|
|
4048
|
+
object = getPrototypeOf(object);
|
|
4049
|
+
}
|
|
4050
|
+
return null;
|
|
4051
|
+
}
|
|
4052
|
+
function isRegex(value) {
|
|
4053
|
+
try {
|
|
4054
|
+
regExpTest(value, "");
|
|
4055
|
+
return true;
|
|
4056
|
+
} catch (_unused) {
|
|
4057
|
+
return false;
|
|
4058
|
+
}
|
|
4059
|
+
}
|
|
4060
|
+
const html$1 = freeze([
|
|
4061
|
+
"a",
|
|
4062
|
+
"abbr",
|
|
4063
|
+
"acronym",
|
|
4064
|
+
"address",
|
|
4065
|
+
"area",
|
|
4066
|
+
"article",
|
|
4067
|
+
"aside",
|
|
4068
|
+
"audio",
|
|
4069
|
+
"b",
|
|
4070
|
+
"bdi",
|
|
4071
|
+
"bdo",
|
|
4072
|
+
"big",
|
|
4073
|
+
"blink",
|
|
4074
|
+
"blockquote",
|
|
4075
|
+
"body",
|
|
4076
|
+
"br",
|
|
4077
|
+
"button",
|
|
4078
|
+
"canvas",
|
|
4079
|
+
"caption",
|
|
4080
|
+
"center",
|
|
4081
|
+
"cite",
|
|
4082
|
+
"code",
|
|
4083
|
+
"col",
|
|
4084
|
+
"colgroup",
|
|
4085
|
+
"content",
|
|
4086
|
+
"data",
|
|
4087
|
+
"datalist",
|
|
4088
|
+
"dd",
|
|
4089
|
+
"decorator",
|
|
4090
|
+
"del",
|
|
4091
|
+
"details",
|
|
4092
|
+
"dfn",
|
|
4093
|
+
"dialog",
|
|
4094
|
+
"dir",
|
|
4095
|
+
"div",
|
|
4096
|
+
"dl",
|
|
4097
|
+
"dt",
|
|
4098
|
+
"element",
|
|
4099
|
+
"em",
|
|
4100
|
+
"fieldset",
|
|
4101
|
+
"figcaption",
|
|
4102
|
+
"figure",
|
|
4103
|
+
"font",
|
|
4104
|
+
"footer",
|
|
4105
|
+
"form",
|
|
4106
|
+
"h1",
|
|
4107
|
+
"h2",
|
|
4108
|
+
"h3",
|
|
4109
|
+
"h4",
|
|
4110
|
+
"h5",
|
|
4111
|
+
"h6",
|
|
4112
|
+
"head",
|
|
4113
|
+
"header",
|
|
4114
|
+
"hgroup",
|
|
4115
|
+
"hr",
|
|
4116
|
+
"html",
|
|
4117
|
+
"i",
|
|
4118
|
+
"img",
|
|
4119
|
+
"input",
|
|
4120
|
+
"ins",
|
|
4121
|
+
"kbd",
|
|
4122
|
+
"label",
|
|
4123
|
+
"legend",
|
|
4124
|
+
"li",
|
|
4125
|
+
"main",
|
|
4126
|
+
"map",
|
|
4127
|
+
"mark",
|
|
4128
|
+
"marquee",
|
|
4129
|
+
"menu",
|
|
4130
|
+
"menuitem",
|
|
4131
|
+
"meter",
|
|
4132
|
+
"nav",
|
|
4133
|
+
"nobr",
|
|
4134
|
+
"ol",
|
|
4135
|
+
"optgroup",
|
|
4136
|
+
"option",
|
|
4137
|
+
"output",
|
|
4138
|
+
"p",
|
|
4139
|
+
"picture",
|
|
4140
|
+
"pre",
|
|
4141
|
+
"progress",
|
|
4142
|
+
"q",
|
|
4143
|
+
"rp",
|
|
4144
|
+
"rt",
|
|
4145
|
+
"ruby",
|
|
4146
|
+
"s",
|
|
4147
|
+
"samp",
|
|
4148
|
+
"search",
|
|
4149
|
+
"section",
|
|
4150
|
+
"select",
|
|
4151
|
+
"shadow",
|
|
4152
|
+
"slot",
|
|
4153
|
+
"small",
|
|
4154
|
+
"source",
|
|
4155
|
+
"spacer",
|
|
4156
|
+
"span",
|
|
4157
|
+
"strike",
|
|
4158
|
+
"strong",
|
|
4159
|
+
"style",
|
|
4160
|
+
"sub",
|
|
4161
|
+
"summary",
|
|
4162
|
+
"sup",
|
|
4163
|
+
"table",
|
|
4164
|
+
"tbody",
|
|
4165
|
+
"td",
|
|
4166
|
+
"template",
|
|
4167
|
+
"textarea",
|
|
4168
|
+
"tfoot",
|
|
4169
|
+
"th",
|
|
4170
|
+
"thead",
|
|
4171
|
+
"time",
|
|
4172
|
+
"tr",
|
|
4173
|
+
"track",
|
|
4174
|
+
"tt",
|
|
4175
|
+
"u",
|
|
4176
|
+
"ul",
|
|
4177
|
+
"var",
|
|
4178
|
+
"video",
|
|
4179
|
+
"wbr"
|
|
4180
|
+
]);
|
|
4181
|
+
const svg$1 = freeze([
|
|
4182
|
+
"svg",
|
|
4183
|
+
"a",
|
|
4184
|
+
"altglyph",
|
|
4185
|
+
"altglyphdef",
|
|
4186
|
+
"altglyphitem",
|
|
4187
|
+
"animatecolor",
|
|
4188
|
+
"animatemotion",
|
|
4189
|
+
"animatetransform",
|
|
4190
|
+
"circle",
|
|
4191
|
+
"clippath",
|
|
4192
|
+
"defs",
|
|
4193
|
+
"desc",
|
|
4194
|
+
"ellipse",
|
|
4195
|
+
"enterkeyhint",
|
|
4196
|
+
"exportparts",
|
|
4197
|
+
"filter",
|
|
4198
|
+
"font",
|
|
4199
|
+
"g",
|
|
4200
|
+
"glyph",
|
|
4201
|
+
"glyphref",
|
|
4202
|
+
"hkern",
|
|
4203
|
+
"image",
|
|
4204
|
+
"inputmode",
|
|
4205
|
+
"line",
|
|
4206
|
+
"lineargradient",
|
|
4207
|
+
"marker",
|
|
4208
|
+
"mask",
|
|
4209
|
+
"metadata",
|
|
4210
|
+
"mpath",
|
|
4211
|
+
"part",
|
|
4212
|
+
"path",
|
|
4213
|
+
"pattern",
|
|
4214
|
+
"polygon",
|
|
4215
|
+
"polyline",
|
|
4216
|
+
"radialgradient",
|
|
4217
|
+
"rect",
|
|
4218
|
+
"stop",
|
|
4219
|
+
"style",
|
|
4220
|
+
"switch",
|
|
4221
|
+
"symbol",
|
|
4222
|
+
"text",
|
|
4223
|
+
"textpath",
|
|
4224
|
+
"title",
|
|
4225
|
+
"tref",
|
|
4226
|
+
"tspan",
|
|
4227
|
+
"view",
|
|
4228
|
+
"vkern"
|
|
4229
|
+
]);
|
|
4230
|
+
const svgFilters = freeze([
|
|
4231
|
+
"feBlend",
|
|
4232
|
+
"feColorMatrix",
|
|
4233
|
+
"feComponentTransfer",
|
|
4234
|
+
"feComposite",
|
|
4235
|
+
"feConvolveMatrix",
|
|
4236
|
+
"feDiffuseLighting",
|
|
4237
|
+
"feDisplacementMap",
|
|
4238
|
+
"feDistantLight",
|
|
4239
|
+
"feDropShadow",
|
|
4240
|
+
"feFlood",
|
|
4241
|
+
"feFuncA",
|
|
4242
|
+
"feFuncB",
|
|
4243
|
+
"feFuncG",
|
|
4244
|
+
"feFuncR",
|
|
4245
|
+
"feGaussianBlur",
|
|
4246
|
+
"feImage",
|
|
4247
|
+
"feMerge",
|
|
4248
|
+
"feMergeNode",
|
|
4249
|
+
"feMorphology",
|
|
4250
|
+
"feOffset",
|
|
4251
|
+
"fePointLight",
|
|
4252
|
+
"feSpecularLighting",
|
|
4253
|
+
"feSpotLight",
|
|
4254
|
+
"feTile",
|
|
4255
|
+
"feTurbulence"
|
|
4256
|
+
]);
|
|
4257
|
+
const svgDisallowed = freeze([
|
|
4258
|
+
"animate",
|
|
4259
|
+
"color-profile",
|
|
4260
|
+
"cursor",
|
|
4261
|
+
"discard",
|
|
4262
|
+
"font-face",
|
|
4263
|
+
"font-face-format",
|
|
4264
|
+
"font-face-name",
|
|
4265
|
+
"font-face-src",
|
|
4266
|
+
"font-face-uri",
|
|
4267
|
+
"foreignobject",
|
|
4268
|
+
"hatch",
|
|
4269
|
+
"hatchpath",
|
|
4270
|
+
"mesh",
|
|
4271
|
+
"meshgradient",
|
|
4272
|
+
"meshpatch",
|
|
4273
|
+
"meshrow",
|
|
4274
|
+
"missing-glyph",
|
|
4275
|
+
"script",
|
|
4276
|
+
"set",
|
|
4277
|
+
"solidcolor",
|
|
4278
|
+
"unknown",
|
|
4279
|
+
"use"
|
|
4280
|
+
]);
|
|
4281
|
+
const mathMl$1 = freeze([
|
|
4282
|
+
"math",
|
|
4283
|
+
"menclose",
|
|
4284
|
+
"merror",
|
|
4285
|
+
"mfenced",
|
|
4286
|
+
"mfrac",
|
|
4287
|
+
"mglyph",
|
|
4288
|
+
"mi",
|
|
4289
|
+
"mlabeledtr",
|
|
4290
|
+
"mmultiscripts",
|
|
4291
|
+
"mn",
|
|
4292
|
+
"mo",
|
|
4293
|
+
"mover",
|
|
4294
|
+
"mpadded",
|
|
4295
|
+
"mphantom",
|
|
4296
|
+
"mroot",
|
|
4297
|
+
"mrow",
|
|
4298
|
+
"ms",
|
|
4299
|
+
"mspace",
|
|
4300
|
+
"msqrt",
|
|
4301
|
+
"mstyle",
|
|
4302
|
+
"msub",
|
|
4303
|
+
"msup",
|
|
4304
|
+
"msubsup",
|
|
4305
|
+
"mtable",
|
|
4306
|
+
"mtd",
|
|
4307
|
+
"mtext",
|
|
4308
|
+
"mtr",
|
|
4309
|
+
"munder",
|
|
4310
|
+
"munderover",
|
|
4311
|
+
"mprescripts"
|
|
4312
|
+
]);
|
|
4313
|
+
const mathMlDisallowed = freeze([
|
|
4314
|
+
"maction",
|
|
4315
|
+
"maligngroup",
|
|
4316
|
+
"malignmark",
|
|
4317
|
+
"mlongdiv",
|
|
4318
|
+
"mscarries",
|
|
4319
|
+
"mscarry",
|
|
4320
|
+
"msgroup",
|
|
4321
|
+
"mstack",
|
|
4322
|
+
"msline",
|
|
4323
|
+
"msrow",
|
|
4324
|
+
"semantics",
|
|
4325
|
+
"annotation",
|
|
4326
|
+
"annotation-xml",
|
|
4327
|
+
"mprescripts",
|
|
4328
|
+
"none"
|
|
4329
|
+
]);
|
|
3976
4330
|
const text = freeze(["#text"]);
|
|
3977
|
-
const html = freeze([
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
4331
|
+
const html = freeze([
|
|
4332
|
+
"accept",
|
|
4333
|
+
"action",
|
|
4334
|
+
"align",
|
|
4335
|
+
"alt",
|
|
4336
|
+
"autocapitalize",
|
|
4337
|
+
"autocomplete",
|
|
4338
|
+
"autopictureinpicture",
|
|
4339
|
+
"autoplay",
|
|
4340
|
+
"background",
|
|
4341
|
+
"bgcolor",
|
|
4342
|
+
"border",
|
|
4343
|
+
"capture",
|
|
4344
|
+
"cellpadding",
|
|
4345
|
+
"cellspacing",
|
|
4346
|
+
"checked",
|
|
4347
|
+
"cite",
|
|
4348
|
+
"class",
|
|
4349
|
+
"clear",
|
|
4350
|
+
"color",
|
|
4351
|
+
"cols",
|
|
4352
|
+
"colspan",
|
|
4353
|
+
"command",
|
|
4354
|
+
"commandfor",
|
|
4355
|
+
"controls",
|
|
4356
|
+
"controlslist",
|
|
4357
|
+
"coords",
|
|
4358
|
+
"crossorigin",
|
|
4359
|
+
"datetime",
|
|
4360
|
+
"decoding",
|
|
4361
|
+
"default",
|
|
4362
|
+
"dir",
|
|
4363
|
+
"disabled",
|
|
4364
|
+
"disablepictureinpicture",
|
|
4365
|
+
"disableremoteplayback",
|
|
4366
|
+
"download",
|
|
4367
|
+
"draggable",
|
|
4368
|
+
"enctype",
|
|
4369
|
+
"enterkeyhint",
|
|
4370
|
+
"exportparts",
|
|
4371
|
+
"face",
|
|
4372
|
+
"for",
|
|
4373
|
+
"headers",
|
|
4374
|
+
"height",
|
|
4375
|
+
"hidden",
|
|
4376
|
+
"high",
|
|
4377
|
+
"href",
|
|
4378
|
+
"hreflang",
|
|
4379
|
+
"id",
|
|
4380
|
+
"inert",
|
|
4381
|
+
"inputmode",
|
|
4382
|
+
"integrity",
|
|
4383
|
+
"ismap",
|
|
4384
|
+
"kind",
|
|
4385
|
+
"label",
|
|
4386
|
+
"lang",
|
|
4387
|
+
"list",
|
|
4388
|
+
"loading",
|
|
4389
|
+
"loop",
|
|
4390
|
+
"low",
|
|
4391
|
+
"max",
|
|
4392
|
+
"maxlength",
|
|
4393
|
+
"media",
|
|
4394
|
+
"method",
|
|
4395
|
+
"min",
|
|
4396
|
+
"minlength",
|
|
4397
|
+
"multiple",
|
|
4398
|
+
"muted",
|
|
4399
|
+
"name",
|
|
4400
|
+
"nonce",
|
|
4401
|
+
"noshade",
|
|
4402
|
+
"novalidate",
|
|
4403
|
+
"nowrap",
|
|
4404
|
+
"open",
|
|
4405
|
+
"optimum",
|
|
4406
|
+
"part",
|
|
4407
|
+
"pattern",
|
|
4408
|
+
"placeholder",
|
|
4409
|
+
"playsinline",
|
|
4410
|
+
"popover",
|
|
4411
|
+
"popovertarget",
|
|
4412
|
+
"popovertargetaction",
|
|
4413
|
+
"poster",
|
|
4414
|
+
"preload",
|
|
4415
|
+
"pubdate",
|
|
4416
|
+
"radiogroup",
|
|
4417
|
+
"readonly",
|
|
4418
|
+
"rel",
|
|
4419
|
+
"required",
|
|
4420
|
+
"rev",
|
|
4421
|
+
"reversed",
|
|
4422
|
+
"role",
|
|
4423
|
+
"rows",
|
|
4424
|
+
"rowspan",
|
|
4425
|
+
"spellcheck",
|
|
4426
|
+
"scope",
|
|
4427
|
+
"selected",
|
|
4428
|
+
"shape",
|
|
4429
|
+
"size",
|
|
4430
|
+
"sizes",
|
|
4431
|
+
"slot",
|
|
4432
|
+
"span",
|
|
4433
|
+
"srclang",
|
|
4434
|
+
"start",
|
|
4435
|
+
"src",
|
|
4436
|
+
"srcset",
|
|
4437
|
+
"step",
|
|
4438
|
+
"style",
|
|
4439
|
+
"summary",
|
|
4440
|
+
"tabindex",
|
|
4441
|
+
"title",
|
|
4442
|
+
"translate",
|
|
4443
|
+
"type",
|
|
4444
|
+
"usemap",
|
|
4445
|
+
"valign",
|
|
4446
|
+
"value",
|
|
4447
|
+
"width",
|
|
4448
|
+
"wrap",
|
|
4449
|
+
"xmlns"
|
|
4450
|
+
]);
|
|
4451
|
+
const svg = freeze([
|
|
4452
|
+
"accent-height",
|
|
4453
|
+
"accumulate",
|
|
4454
|
+
"additive",
|
|
4455
|
+
"alignment-baseline",
|
|
4456
|
+
"amplitude",
|
|
4457
|
+
"ascent",
|
|
4458
|
+
"attributename",
|
|
4459
|
+
"attributetype",
|
|
4460
|
+
"azimuth",
|
|
4461
|
+
"basefrequency",
|
|
4462
|
+
"baseline-shift",
|
|
4463
|
+
"begin",
|
|
4464
|
+
"bias",
|
|
4465
|
+
"by",
|
|
4466
|
+
"class",
|
|
4467
|
+
"clip",
|
|
4468
|
+
"clippathunits",
|
|
4469
|
+
"clip-path",
|
|
4470
|
+
"clip-rule",
|
|
4471
|
+
"color",
|
|
4472
|
+
"color-interpolation",
|
|
4473
|
+
"color-interpolation-filters",
|
|
4474
|
+
"color-profile",
|
|
4475
|
+
"color-rendering",
|
|
4476
|
+
"cx",
|
|
4477
|
+
"cy",
|
|
4478
|
+
"d",
|
|
4479
|
+
"dx",
|
|
4480
|
+
"dy",
|
|
4481
|
+
"diffuseconstant",
|
|
4482
|
+
"direction",
|
|
4483
|
+
"display",
|
|
4484
|
+
"divisor",
|
|
4485
|
+
"dominant-baseline",
|
|
4486
|
+
"dur",
|
|
4487
|
+
"edgemode",
|
|
4488
|
+
"elevation",
|
|
4489
|
+
"end",
|
|
4490
|
+
"exponent",
|
|
4491
|
+
"fill",
|
|
4492
|
+
"fill-opacity",
|
|
4493
|
+
"fill-rule",
|
|
4494
|
+
"filter",
|
|
4495
|
+
"filterunits",
|
|
4496
|
+
"flood-color",
|
|
4497
|
+
"flood-opacity",
|
|
4498
|
+
"font-family",
|
|
4499
|
+
"font-size",
|
|
4500
|
+
"font-size-adjust",
|
|
4501
|
+
"font-stretch",
|
|
4502
|
+
"font-style",
|
|
4503
|
+
"font-variant",
|
|
4504
|
+
"font-weight",
|
|
4505
|
+
"fx",
|
|
4506
|
+
"fy",
|
|
4507
|
+
"g1",
|
|
4508
|
+
"g2",
|
|
4509
|
+
"glyph-name",
|
|
4510
|
+
"glyphref",
|
|
4511
|
+
"gradientunits",
|
|
4512
|
+
"gradienttransform",
|
|
4513
|
+
"height",
|
|
4514
|
+
"href",
|
|
4515
|
+
"id",
|
|
4516
|
+
"image-rendering",
|
|
4517
|
+
"in",
|
|
4518
|
+
"in2",
|
|
4519
|
+
"intercept",
|
|
4520
|
+
"k",
|
|
4521
|
+
"k1",
|
|
4522
|
+
"k2",
|
|
4523
|
+
"k3",
|
|
4524
|
+
"k4",
|
|
4525
|
+
"kerning",
|
|
4526
|
+
"keypoints",
|
|
4527
|
+
"keysplines",
|
|
4528
|
+
"keytimes",
|
|
4529
|
+
"lang",
|
|
4530
|
+
"lengthadjust",
|
|
4531
|
+
"letter-spacing",
|
|
4532
|
+
"kernelmatrix",
|
|
4533
|
+
"kernelunitlength",
|
|
4534
|
+
"lighting-color",
|
|
4535
|
+
"local",
|
|
4536
|
+
"marker-end",
|
|
4537
|
+
"marker-mid",
|
|
4538
|
+
"marker-start",
|
|
4539
|
+
"markerheight",
|
|
4540
|
+
"markerunits",
|
|
4541
|
+
"markerwidth",
|
|
4542
|
+
"maskcontentunits",
|
|
4543
|
+
"maskunits",
|
|
4544
|
+
"max",
|
|
4545
|
+
"mask",
|
|
4546
|
+
"mask-type",
|
|
4547
|
+
"media",
|
|
4548
|
+
"method",
|
|
4549
|
+
"mode",
|
|
4550
|
+
"min",
|
|
4551
|
+
"name",
|
|
4552
|
+
"numoctaves",
|
|
4553
|
+
"offset",
|
|
4554
|
+
"operator",
|
|
4555
|
+
"opacity",
|
|
4556
|
+
"order",
|
|
4557
|
+
"orient",
|
|
4558
|
+
"orientation",
|
|
4559
|
+
"origin",
|
|
4560
|
+
"overflow",
|
|
4561
|
+
"paint-order",
|
|
4562
|
+
"path",
|
|
4563
|
+
"pathlength",
|
|
4564
|
+
"patterncontentunits",
|
|
4565
|
+
"patterntransform",
|
|
4566
|
+
"patternunits",
|
|
4567
|
+
"pointer-events",
|
|
4568
|
+
"points",
|
|
4569
|
+
"preservealpha",
|
|
4570
|
+
"preserveaspectratio",
|
|
4571
|
+
"primitiveunits",
|
|
4572
|
+
"r",
|
|
4573
|
+
"rx",
|
|
4574
|
+
"ry",
|
|
4575
|
+
"radius",
|
|
4576
|
+
"refx",
|
|
4577
|
+
"refy",
|
|
4578
|
+
"repeatcount",
|
|
4579
|
+
"repeatdur",
|
|
4580
|
+
"restart",
|
|
4581
|
+
"result",
|
|
4582
|
+
"rotate",
|
|
4583
|
+
"scale",
|
|
4584
|
+
"seed",
|
|
4585
|
+
"shape-rendering",
|
|
4586
|
+
"slope",
|
|
4587
|
+
"specularconstant",
|
|
4588
|
+
"specularexponent",
|
|
4589
|
+
"spreadmethod",
|
|
4590
|
+
"startoffset",
|
|
4591
|
+
"stddeviation",
|
|
4592
|
+
"stitchtiles",
|
|
4593
|
+
"stop-color",
|
|
4594
|
+
"stop-opacity",
|
|
4595
|
+
"stroke-dasharray",
|
|
4596
|
+
"stroke-dashoffset",
|
|
4597
|
+
"stroke-linecap",
|
|
4598
|
+
"stroke-linejoin",
|
|
4599
|
+
"stroke-miterlimit",
|
|
4600
|
+
"stroke-opacity",
|
|
4601
|
+
"stroke",
|
|
4602
|
+
"stroke-width",
|
|
4603
|
+
"style",
|
|
4604
|
+
"surfacescale",
|
|
4605
|
+
"systemlanguage",
|
|
4606
|
+
"tabindex",
|
|
4607
|
+
"tablevalues",
|
|
4608
|
+
"targetx",
|
|
4609
|
+
"targety",
|
|
4610
|
+
"transform",
|
|
4611
|
+
"transform-origin",
|
|
4612
|
+
"text-anchor",
|
|
4613
|
+
"text-decoration",
|
|
4614
|
+
"text-orientation",
|
|
4615
|
+
"text-rendering",
|
|
4616
|
+
"textlength",
|
|
4617
|
+
"type",
|
|
4618
|
+
"u1",
|
|
4619
|
+
"u2",
|
|
4620
|
+
"unicode",
|
|
4621
|
+
"values",
|
|
4622
|
+
"vector-effect",
|
|
4623
|
+
"viewbox",
|
|
4624
|
+
"visibility",
|
|
4625
|
+
"version",
|
|
4626
|
+
"vert-adv-y",
|
|
4627
|
+
"vert-origin-x",
|
|
4628
|
+
"vert-origin-y",
|
|
4629
|
+
"width",
|
|
4630
|
+
"word-spacing",
|
|
4631
|
+
"wrap",
|
|
4632
|
+
"writing-mode",
|
|
4633
|
+
"xchannelselector",
|
|
4634
|
+
"ychannelselector",
|
|
4635
|
+
"x",
|
|
4636
|
+
"x1",
|
|
4637
|
+
"x2",
|
|
4638
|
+
"xmlns",
|
|
4639
|
+
"y",
|
|
4640
|
+
"y1",
|
|
4641
|
+
"y2",
|
|
4642
|
+
"z",
|
|
4643
|
+
"zoomandpan"
|
|
4644
|
+
]);
|
|
4645
|
+
const mathMl = freeze([
|
|
4646
|
+
"accent",
|
|
4647
|
+
"accentunder",
|
|
4648
|
+
"align",
|
|
4649
|
+
"bevelled",
|
|
4650
|
+
"close",
|
|
4651
|
+
"columnalign",
|
|
4652
|
+
"columnlines",
|
|
4653
|
+
"columnspacing",
|
|
4654
|
+
"columnspan",
|
|
4655
|
+
"denomalign",
|
|
4656
|
+
"depth",
|
|
4657
|
+
"dir",
|
|
4658
|
+
"display",
|
|
4659
|
+
"displaystyle",
|
|
4660
|
+
"encoding",
|
|
4661
|
+
"fence",
|
|
4662
|
+
"frame",
|
|
4663
|
+
"height",
|
|
4664
|
+
"href",
|
|
4665
|
+
"id",
|
|
4666
|
+
"largeop",
|
|
4667
|
+
"length",
|
|
4668
|
+
"linethickness",
|
|
4669
|
+
"lquote",
|
|
4670
|
+
"lspace",
|
|
4671
|
+
"mathbackground",
|
|
4672
|
+
"mathcolor",
|
|
4673
|
+
"mathsize",
|
|
4674
|
+
"mathvariant",
|
|
4675
|
+
"maxsize",
|
|
4676
|
+
"minsize",
|
|
4677
|
+
"movablelimits",
|
|
4678
|
+
"notation",
|
|
4679
|
+
"numalign",
|
|
4680
|
+
"open",
|
|
4681
|
+
"rowalign",
|
|
4682
|
+
"rowlines",
|
|
4683
|
+
"rowspacing",
|
|
4684
|
+
"rowspan",
|
|
4685
|
+
"rspace",
|
|
4686
|
+
"rquote",
|
|
4687
|
+
"scriptlevel",
|
|
4688
|
+
"scriptminsize",
|
|
4689
|
+
"scriptsizemultiplier",
|
|
4690
|
+
"selection",
|
|
4691
|
+
"separator",
|
|
4692
|
+
"separators",
|
|
4693
|
+
"stretchy",
|
|
4694
|
+
"subscriptshift",
|
|
4695
|
+
"supscriptshift",
|
|
4696
|
+
"symmetric",
|
|
4697
|
+
"voffset",
|
|
4698
|
+
"width",
|
|
4699
|
+
"xmlns"
|
|
4700
|
+
]);
|
|
4701
|
+
const xml = freeze([
|
|
4702
|
+
"xlink:href",
|
|
4703
|
+
"xml:id",
|
|
4704
|
+
"xlink:title",
|
|
4705
|
+
"xml:space",
|
|
4706
|
+
"xmlns:xlink"
|
|
4707
|
+
]);
|
|
4708
|
+
const MUSTACHE_EXPR = seal(/{{[\w\W]*|^[\w\W]*}}/g);
|
|
4709
|
+
const ERB_EXPR = seal(/<%[\w\W]*|^[\w\W]*%>/g);
|
|
4710
|
+
const TMPLIT_EXPR = seal(/\${[\w\W]*/g);
|
|
3984
4711
|
const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/);
|
|
3985
4712
|
const ARIA_ATTR = seal(/^aria-[\-\w]+$/);
|
|
3986
|
-
const IS_ALLOWED_URI = seal(
|
|
3987
|
-
/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
|
|
3988
|
-
);
|
|
4713
|
+
const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i);
|
|
3989
4714
|
const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
|
|
3990
|
-
const ATTR_WHITESPACE = seal(
|
|
3991
|
-
/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
|
|
3992
|
-
);
|
|
4715
|
+
const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g);
|
|
3993
4716
|
const DOCTYPE_NAME = seal(/^html$/i);
|
|
3994
4717
|
const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
CUSTOM_ELEMENT,
|
|
4000
|
-
DATA_ATTR,
|
|
4001
|
-
DOCTYPE_NAME,
|
|
4002
|
-
ERB_EXPR,
|
|
4003
|
-
IS_ALLOWED_URI,
|
|
4004
|
-
IS_SCRIPT_OR_DATA,
|
|
4005
|
-
MUSTACHE_EXPR,
|
|
4006
|
-
TMPLIT_EXPR
|
|
4007
|
-
});
|
|
4718
|
+
const ELEMENT_MARKUP_PROBE = seal(/<[/\w!]/g);
|
|
4719
|
+
const COMMENT_MARKUP_PROBE = seal(/<[/\w]/g);
|
|
4720
|
+
const FALLBACK_TAG_CLOSE = seal(/<\/no(script|embed|frames)/i);
|
|
4721
|
+
const SELF_CLOSING_TAG = seal(/\/>/i);
|
|
4008
4722
|
const NODE_TYPE = {
|
|
4009
4723
|
element: 1,
|
|
4010
4724
|
attribute: 2,
|
|
@@ -4012,25 +4726,33 @@ const NODE_TYPE = {
|
|
|
4012
4726
|
cdataSection: 4,
|
|
4013
4727
|
entityReference: 5,
|
|
4014
4728
|
entityNode: 6,
|
|
4015
|
-
|
|
4729
|
+
processingInstruction: 7,
|
|
4016
4730
|
comment: 8,
|
|
4017
4731
|
document: 9,
|
|
4018
4732
|
documentType: 10,
|
|
4019
4733
|
documentFragment: 11,
|
|
4020
4734
|
notation: 12
|
|
4021
4735
|
};
|
|
4736
|
+
const LITERAL_TEXT_ELEMENTS = freeze(addToSet({}, [
|
|
4737
|
+
"style",
|
|
4738
|
+
"script",
|
|
4739
|
+
"xmp",
|
|
4740
|
+
"iframe",
|
|
4741
|
+
"noembed",
|
|
4742
|
+
"noframes",
|
|
4743
|
+
"plaintext",
|
|
4744
|
+
"noscript"
|
|
4745
|
+
]));
|
|
4022
4746
|
const getGlobal = function getGlobal2() {
|
|
4023
4747
|
return typeof window === "undefined" ? null : window;
|
|
4024
4748
|
};
|
|
4025
4749
|
const _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, purifyHostElement) {
|
|
4026
|
-
if (typeof trustedTypes !== "object" || typeof trustedTypes.createPolicy !== "function")
|
|
4750
|
+
if (typeof trustedTypes !== "object" || typeof trustedTypes.createPolicy !== "function")
|
|
4027
4751
|
return null;
|
|
4028
|
-
}
|
|
4029
4752
|
let suffix = null;
|
|
4030
4753
|
const ATTR_NAME = "data-tt-policy-suffix";
|
|
4031
|
-
if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME))
|
|
4754
|
+
if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME))
|
|
4032
4755
|
suffix = purifyHostElement.getAttribute(ATTR_NAME);
|
|
4033
|
-
}
|
|
4034
4756
|
const policyName = "dompurify" + (suffix ? "#" + suffix : "");
|
|
4035
4757
|
try {
|
|
4036
4758
|
return trustedTypes.createPolicy(policyName, {
|
|
@@ -4059,73 +4781,112 @@ const _createHooksMap = function _createHooksMap2() {
|
|
|
4059
4781
|
uponSanitizeShadowNode: []
|
|
4060
4782
|
};
|
|
4061
4783
|
};
|
|
4784
|
+
const _resolveSetOption = function _resolveSetOption2(cfg, key, fallback, options) {
|
|
4785
|
+
return objectHasOwnProperty(cfg, key) && arrayIsArray(cfg[key]) ? addToSet(options.base ? clone(options.base) : {}, cfg[key], options.transform) : fallback;
|
|
4786
|
+
};
|
|
4787
|
+
const _resolveObjectOption = function _resolveObjectOption2(cfg, key, makeFallback) {
|
|
4788
|
+
const value = objectHasOwnProperty(cfg, key) ? cfg[key] : void 0;
|
|
4789
|
+
return value && typeof value === "object" ? clone(value) : makeFallback();
|
|
4790
|
+
};
|
|
4062
4791
|
function createDOMPurify() {
|
|
4063
4792
|
let window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
|
|
4064
4793
|
const DOMPurify = (root) => createDOMPurify(root);
|
|
4065
|
-
DOMPurify.version = "3.
|
|
4794
|
+
DOMPurify.version = "3.4.17";
|
|
4066
4795
|
DOMPurify.removed = [];
|
|
4067
4796
|
if (!window2 || !window2.document || window2.document.nodeType !== NODE_TYPE.document || !window2.Element) {
|
|
4068
4797
|
DOMPurify.isSupported = false;
|
|
4069
4798
|
return DOMPurify;
|
|
4070
4799
|
}
|
|
4071
|
-
let
|
|
4072
|
-
document: document2
|
|
4073
|
-
} = window2;
|
|
4800
|
+
let document2 = window2.document;
|
|
4074
4801
|
const originalDocument = document2;
|
|
4075
4802
|
const currentScript = originalDocument.currentScript;
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
NodeFilter,
|
|
4082
|
-
NamedNodeMap = window2.NamedNodeMap || window2.MozNamedAttrMap,
|
|
4083
|
-
HTMLFormElement,
|
|
4084
|
-
DOMParser: DOMParser2,
|
|
4085
|
-
trustedTypes
|
|
4086
|
-
} = window2;
|
|
4803
|
+
window2.DocumentFragment;
|
|
4804
|
+
const HTMLTemplateElement = window2.HTMLTemplateElement, Node2 = window2.Node, Element2 = window2.Element, NodeFilter = window2.NodeFilter;
|
|
4805
|
+
window2.NamedNodeMap === void 0 && (window2.NamedNodeMap || window2.MozNamedAttrMap);
|
|
4806
|
+
window2.HTMLFormElement;
|
|
4807
|
+
const DOMParser2 = window2.DOMParser, trustedTypes = window2.trustedTypes;
|
|
4087
4808
|
const ElementPrototype = Element2.prototype;
|
|
4088
4809
|
const cloneNode2 = lookupGetter(ElementPrototype, "cloneNode");
|
|
4089
4810
|
const remove = lookupGetter(ElementPrototype, "remove");
|
|
4811
|
+
const removeAttributeNode = lookupGetter(ElementPrototype, "removeAttributeNode");
|
|
4090
4812
|
const getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
|
|
4091
4813
|
const getChildNodes = lookupGetter(ElementPrototype, "childNodes");
|
|
4092
4814
|
const getParentNode = lookupGetter(ElementPrototype, "parentNode");
|
|
4815
|
+
const getShadowRoot = lookupGetter(ElementPrototype, "shadowRoot");
|
|
4816
|
+
const getAttributes = lookupGetter(ElementPrototype, "attributes");
|
|
4817
|
+
const getNodeType = Node2 && Node2.prototype ? lookupGetter(Node2.prototype, "nodeType") : null;
|
|
4818
|
+
const getNodeName = Node2 && Node2.prototype ? lookupGetter(Node2.prototype, "nodeName") : null;
|
|
4819
|
+
const getOwnerDocument = Node2 && Node2.prototype ? lookupGetter(Node2.prototype, "ownerDocument") : null;
|
|
4820
|
+
const _readNodeType = function _readNodeType2(node2) {
|
|
4821
|
+
return getNodeType ? getNodeType(node2) : node2.nodeType;
|
|
4822
|
+
};
|
|
4823
|
+
const _readNodeName = function _readNodeName2(node2) {
|
|
4824
|
+
return getNodeName ? getNodeName(node2) : node2.nodeName;
|
|
4825
|
+
};
|
|
4826
|
+
const getNamespaceURI = lookupAccessor(ElementPrototype, "namespaceURI");
|
|
4827
|
+
const _readNamespaceURI = function _readNamespaceURI2(element) {
|
|
4828
|
+
return getNamespaceURI ? getNamespaceURI(element) : element.namespaceURI;
|
|
4829
|
+
};
|
|
4093
4830
|
if (typeof HTMLTemplateElement === "function") {
|
|
4094
4831
|
const template2 = document2.createElement("template");
|
|
4095
|
-
if (template2.content && template2.content.ownerDocument)
|
|
4832
|
+
if (template2.content && template2.content.ownerDocument)
|
|
4096
4833
|
document2 = template2.content.ownerDocument;
|
|
4097
|
-
}
|
|
4098
4834
|
}
|
|
4099
4835
|
let trustedTypesPolicy;
|
|
4100
4836
|
let emptyHTML = "";
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4837
|
+
let defaultTrustedTypesPolicy;
|
|
4838
|
+
let defaultTrustedTypesPolicyResolved = false;
|
|
4839
|
+
let IN_TRUSTED_TYPES_POLICY = 0;
|
|
4840
|
+
const _assertNotInTrustedTypesPolicy = function _assertNotInTrustedTypesPolicy2() {
|
|
4841
|
+
if (IN_TRUSTED_TYPES_POLICY > 0)
|
|
4842
|
+
throw typeErrorCreate('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.');
|
|
4843
|
+
};
|
|
4844
|
+
const _createTrustedHTML = function _createTrustedHTML2(html2) {
|
|
4845
|
+
_assertNotInTrustedTypesPolicy();
|
|
4846
|
+
IN_TRUSTED_TYPES_POLICY++;
|
|
4847
|
+
try {
|
|
4848
|
+
return trustedTypesPolicy.createHTML(html2);
|
|
4849
|
+
} finally {
|
|
4850
|
+
IN_TRUSTED_TYPES_POLICY--;
|
|
4851
|
+
}
|
|
4852
|
+
};
|
|
4853
|
+
const _createTrustedScriptURL = function _createTrustedScriptURL2(scriptUrl) {
|
|
4854
|
+
_assertNotInTrustedTypesPolicy();
|
|
4855
|
+
IN_TRUSTED_TYPES_POLICY++;
|
|
4856
|
+
try {
|
|
4857
|
+
return trustedTypesPolicy.createScriptURL(scriptUrl);
|
|
4858
|
+
} finally {
|
|
4859
|
+
IN_TRUSTED_TYPES_POLICY--;
|
|
4860
|
+
}
|
|
4861
|
+
};
|
|
4862
|
+
const _getDefaultTrustedTypesPolicy = function _getDefaultTrustedTypesPolicy2() {
|
|
4863
|
+
if (!defaultTrustedTypesPolicyResolved) {
|
|
4864
|
+
defaultTrustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
|
|
4865
|
+
defaultTrustedTypesPolicyResolved = true;
|
|
4866
|
+
}
|
|
4867
|
+
return defaultTrustedTypesPolicy;
|
|
4868
|
+
};
|
|
4869
|
+
const _document = document2, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
|
|
4870
|
+
const importNode = originalDocument.importNode;
|
|
4110
4871
|
let hooks = _createHooksMap();
|
|
4111
4872
|
DOMPurify.isSupported = typeof entries === "function" && typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0;
|
|
4112
|
-
const
|
|
4113
|
-
|
|
4114
|
-
ERB_EXPR: ERB_EXPR2,
|
|
4115
|
-
TMPLIT_EXPR: TMPLIT_EXPR2,
|
|
4116
|
-
DATA_ATTR: DATA_ATTR2,
|
|
4117
|
-
ARIA_ATTR: ARIA_ATTR2,
|
|
4118
|
-
IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA2,
|
|
4119
|
-
ATTR_WHITESPACE: ATTR_WHITESPACE2,
|
|
4120
|
-
CUSTOM_ELEMENT: CUSTOM_ELEMENT2
|
|
4121
|
-
} = EXPRESSIONS;
|
|
4122
|
-
let {
|
|
4123
|
-
IS_ALLOWED_URI: IS_ALLOWED_URI$1
|
|
4124
|
-
} = EXPRESSIONS;
|
|
4873
|
+
const MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, TMPLIT_EXPR$1 = TMPLIT_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, CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;
|
|
4874
|
+
let IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
|
|
4125
4875
|
let ALLOWED_TAGS = null;
|
|
4126
|
-
const DEFAULT_ALLOWED_TAGS = addToSet({}, [
|
|
4876
|
+
const DEFAULT_ALLOWED_TAGS = addToSet({}, [
|
|
4877
|
+
...html$1,
|
|
4878
|
+
...svg$1,
|
|
4879
|
+
...svgFilters,
|
|
4880
|
+
...mathMl$1,
|
|
4881
|
+
...text
|
|
4882
|
+
]);
|
|
4127
4883
|
let ALLOWED_ATTR = null;
|
|
4128
|
-
const DEFAULT_ALLOWED_ATTR = addToSet({}, [
|
|
4884
|
+
const DEFAULT_ALLOWED_ATTR = addToSet({}, [
|
|
4885
|
+
...html,
|
|
4886
|
+
...svg,
|
|
4887
|
+
...mathMl,
|
|
4888
|
+
...xml
|
|
4889
|
+
]);
|
|
4129
4890
|
let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {
|
|
4130
4891
|
tagNameCheck: {
|
|
4131
4892
|
writable: true,
|
|
@@ -4170,6 +4931,8 @@ function createDOMPurify() {
|
|
|
4170
4931
|
let SAFE_FOR_XML = true;
|
|
4171
4932
|
let WHOLE_DOCUMENT = false;
|
|
4172
4933
|
let SET_CONFIG = false;
|
|
4934
|
+
let SET_CONFIG_ALLOWED_TAGS = null;
|
|
4935
|
+
let SET_CONFIG_ALLOWED_ATTR = null;
|
|
4173
4936
|
let FORCE_BODY = false;
|
|
4174
4937
|
let RETURN_DOM = false;
|
|
4175
4938
|
let RETURN_DOM_FRAGMENT = false;
|
|
@@ -4179,23 +4942,91 @@ function createDOMPurify() {
|
|
|
4179
4942
|
const SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
|
|
4180
4943
|
let KEEP_CONTENT = true;
|
|
4181
4944
|
let IN_PLACE = false;
|
|
4945
|
+
let IN_PLACE_VISITED = null;
|
|
4182
4946
|
let USE_PROFILES = {};
|
|
4183
4947
|
let FORBID_CONTENTS = null;
|
|
4184
|
-
const DEFAULT_FORBID_CONTENTS = addToSet({}, [
|
|
4948
|
+
const DEFAULT_FORBID_CONTENTS = addToSet({}, [
|
|
4949
|
+
"annotation-xml",
|
|
4950
|
+
"audio",
|
|
4951
|
+
"colgroup",
|
|
4952
|
+
"desc",
|
|
4953
|
+
"foreignobject",
|
|
4954
|
+
"head",
|
|
4955
|
+
"iframe",
|
|
4956
|
+
"math",
|
|
4957
|
+
"mi",
|
|
4958
|
+
"mn",
|
|
4959
|
+
"mo",
|
|
4960
|
+
"ms",
|
|
4961
|
+
"mtext",
|
|
4962
|
+
"noembed",
|
|
4963
|
+
"noframes",
|
|
4964
|
+
"noscript",
|
|
4965
|
+
"plaintext",
|
|
4966
|
+
"script",
|
|
4967
|
+
"selectedcontent",
|
|
4968
|
+
"style",
|
|
4969
|
+
"svg",
|
|
4970
|
+
"template",
|
|
4971
|
+
"thead",
|
|
4972
|
+
"title",
|
|
4973
|
+
"video",
|
|
4974
|
+
"xmp"
|
|
4975
|
+
]);
|
|
4185
4976
|
let DATA_URI_TAGS = null;
|
|
4186
|
-
const DEFAULT_DATA_URI_TAGS = addToSet({}, [
|
|
4977
|
+
const DEFAULT_DATA_URI_TAGS = addToSet({}, [
|
|
4978
|
+
"audio",
|
|
4979
|
+
"video",
|
|
4980
|
+
"img",
|
|
4981
|
+
"source",
|
|
4982
|
+
"image",
|
|
4983
|
+
"track"
|
|
4984
|
+
]);
|
|
4187
4985
|
let URI_SAFE_ATTRIBUTES = null;
|
|
4188
|
-
const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [
|
|
4986
|
+
const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [
|
|
4987
|
+
"alt",
|
|
4988
|
+
"class",
|
|
4989
|
+
"for",
|
|
4990
|
+
"id",
|
|
4991
|
+
"label",
|
|
4992
|
+
"name",
|
|
4993
|
+
"pattern",
|
|
4994
|
+
"placeholder",
|
|
4995
|
+
"role",
|
|
4996
|
+
"summary",
|
|
4997
|
+
"title",
|
|
4998
|
+
"value",
|
|
4999
|
+
"style",
|
|
5000
|
+
"xmlns"
|
|
5001
|
+
]);
|
|
4189
5002
|
const MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
|
|
4190
5003
|
const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
|
|
4191
5004
|
const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
|
|
4192
5005
|
let NAMESPACE = HTML_NAMESPACE;
|
|
4193
5006
|
let IS_EMPTY_INPUT = false;
|
|
4194
5007
|
let ALLOWED_NAMESPACES = null;
|
|
4195
|
-
const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
5008
|
+
const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [
|
|
5009
|
+
MATHML_NAMESPACE,
|
|
5010
|
+
SVG_NAMESPACE,
|
|
5011
|
+
HTML_NAMESPACE
|
|
5012
|
+
], stringToString);
|
|
5013
|
+
const DEFAULT_MATHML_TEXT_INTEGRATION_POINTS = freeze([
|
|
5014
|
+
"mi",
|
|
5015
|
+
"mo",
|
|
5016
|
+
"mn",
|
|
5017
|
+
"ms",
|
|
5018
|
+
"mtext"
|
|
5019
|
+
]);
|
|
5020
|
+
let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS);
|
|
5021
|
+
const DEFAULT_HTML_INTEGRATION_POINTS = freeze(["annotation-xml"]);
|
|
5022
|
+
let HTML_INTEGRATION_POINTS = addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS);
|
|
5023
|
+
const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [
|
|
5024
|
+
"title",
|
|
5025
|
+
"style",
|
|
5026
|
+
"font",
|
|
5027
|
+
"a",
|
|
5028
|
+
"script"
|
|
5029
|
+
]);
|
|
4199
5030
|
let PARSER_MEDIA_TYPE = null;
|
|
4200
5031
|
const SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
|
|
4201
5032
|
const DEFAULT_PARSER_MEDIA_TYPE = "text/html";
|
|
@@ -4207,24 +5038,28 @@ function createDOMPurify() {
|
|
|
4207
5038
|
};
|
|
4208
5039
|
const _parseConfig = function _parseConfig2() {
|
|
4209
5040
|
let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
4210
|
-
if (CONFIG && CONFIG === cfg)
|
|
5041
|
+
if (CONFIG && CONFIG === cfg)
|
|
4211
5042
|
return;
|
|
4212
|
-
|
|
4213
|
-
if (!cfg || typeof cfg !== "object") {
|
|
5043
|
+
if (!cfg || typeof cfg !== "object")
|
|
4214
5044
|
cfg = {};
|
|
4215
|
-
}
|
|
4216
5045
|
cfg = clone(cfg);
|
|
4217
5046
|
PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;
|
|
4218
5047
|
transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
|
|
4219
|
-
ALLOWED_TAGS =
|
|
4220
|
-
ALLOWED_ATTR =
|
|
4221
|
-
ALLOWED_NAMESPACES =
|
|
4222
|
-
URI_SAFE_ATTRIBUTES =
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
5048
|
+
ALLOWED_TAGS = _resolveSetOption(cfg, "ALLOWED_TAGS", DEFAULT_ALLOWED_TAGS, { transform: transformCaseFunc });
|
|
5049
|
+
ALLOWED_ATTR = _resolveSetOption(cfg, "ALLOWED_ATTR", DEFAULT_ALLOWED_ATTR, { transform: transformCaseFunc });
|
|
5050
|
+
ALLOWED_NAMESPACES = _resolveSetOption(cfg, "ALLOWED_NAMESPACES", DEFAULT_ALLOWED_NAMESPACES, { transform: stringToString });
|
|
5051
|
+
URI_SAFE_ATTRIBUTES = _resolveSetOption(cfg, "ADD_URI_SAFE_ATTR", DEFAULT_URI_SAFE_ATTRIBUTES, {
|
|
5052
|
+
transform: transformCaseFunc,
|
|
5053
|
+
base: DEFAULT_URI_SAFE_ATTRIBUTES
|
|
5054
|
+
});
|
|
5055
|
+
DATA_URI_TAGS = _resolveSetOption(cfg, "ADD_DATA_URI_TAGS", DEFAULT_DATA_URI_TAGS, {
|
|
5056
|
+
transform: transformCaseFunc,
|
|
5057
|
+
base: DEFAULT_DATA_URI_TAGS
|
|
5058
|
+
});
|
|
5059
|
+
FORBID_CONTENTS = _resolveSetOption(cfg, "FORBID_CONTENTS", DEFAULT_FORBID_CONTENTS, { transform: transformCaseFunc });
|
|
5060
|
+
FORBID_TAGS = _resolveSetOption(cfg, "FORBID_TAGS", clone({}), { transform: transformCaseFunc });
|
|
5061
|
+
FORBID_ATTR = _resolveSetOption(cfg, "FORBID_ATTR", clone({}), { transform: transformCaseFunc });
|
|
5062
|
+
USE_PROFILES = objectHasOwnProperty(cfg, "USE_PROFILES") ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === "object" ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;
|
|
4228
5063
|
ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
|
|
4229
5064
|
ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
|
|
4230
5065
|
ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
|
|
@@ -4240,29 +5075,26 @@ function createDOMPurify() {
|
|
|
4240
5075
|
SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
|
|
4241
5076
|
KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
|
|
4242
5077
|
IN_PLACE = cfg.IN_PLACE || false;
|
|
4243
|
-
IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP
|
|
4244
|
-
NAMESPACE = cfg.NAMESPACE
|
|
4245
|
-
MATHML_TEXT_INTEGRATION_POINTS = cfg
|
|
4246
|
-
HTML_INTEGRATION_POINTS = cfg
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
if (
|
|
4252
|
-
CUSTOM_ELEMENT_HANDLING.attributeNameCheck =
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
if (SAFE_FOR_TEMPLATES) {
|
|
5078
|
+
IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI;
|
|
5079
|
+
NAMESPACE = typeof cfg.NAMESPACE === "string" ? cfg.NAMESPACE : HTML_NAMESPACE;
|
|
5080
|
+
MATHML_TEXT_INTEGRATION_POINTS = _resolveObjectOption(cfg, "MATHML_TEXT_INTEGRATION_POINTS", () => addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS));
|
|
5081
|
+
HTML_INTEGRATION_POINTS = _resolveObjectOption(cfg, "HTML_INTEGRATION_POINTS", () => addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS));
|
|
5082
|
+
const customElementHandling = _resolveObjectOption(cfg, "CUSTOM_ELEMENT_HANDLING", () => create(null));
|
|
5083
|
+
CUSTOM_ELEMENT_HANDLING = create(null);
|
|
5084
|
+
if (objectHasOwnProperty(customElementHandling, "tagNameCheck") && isRegexOrFunction(customElementHandling.tagNameCheck))
|
|
5085
|
+
CUSTOM_ELEMENT_HANDLING.tagNameCheck = customElementHandling.tagNameCheck;
|
|
5086
|
+
if (objectHasOwnProperty(customElementHandling, "attributeNameCheck") && isRegexOrFunction(customElementHandling.attributeNameCheck))
|
|
5087
|
+
CUSTOM_ELEMENT_HANDLING.attributeNameCheck = customElementHandling.attributeNameCheck;
|
|
5088
|
+
if (objectHasOwnProperty(customElementHandling, "allowCustomizedBuiltInElements") && typeof customElementHandling.allowCustomizedBuiltInElements === "boolean")
|
|
5089
|
+
CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements;
|
|
5090
|
+
seal(CUSTOM_ELEMENT_HANDLING);
|
|
5091
|
+
if (SAFE_FOR_TEMPLATES)
|
|
4258
5092
|
ALLOW_DATA_ATTR = false;
|
|
4259
|
-
|
|
4260
|
-
if (RETURN_DOM_FRAGMENT) {
|
|
5093
|
+
if (RETURN_DOM_FRAGMENT)
|
|
4261
5094
|
RETURN_DOM = true;
|
|
4262
|
-
}
|
|
4263
5095
|
if (USE_PROFILES) {
|
|
4264
5096
|
ALLOWED_TAGS = addToSet({}, text);
|
|
4265
|
-
ALLOWED_ATTR =
|
|
5097
|
+
ALLOWED_ATTR = create(null);
|
|
4266
5098
|
if (USE_PROFILES.html === true) {
|
|
4267
5099
|
addToSet(ALLOWED_TAGS, html$1);
|
|
4268
5100
|
addToSet(ALLOWED_ATTR, html);
|
|
@@ -4283,176 +5115,360 @@ function createDOMPurify() {
|
|
|
4283
5115
|
addToSet(ALLOWED_ATTR, xml);
|
|
4284
5116
|
}
|
|
4285
5117
|
}
|
|
4286
|
-
|
|
4287
|
-
|
|
5118
|
+
EXTRA_ELEMENT_HANDLING.tagCheck = null;
|
|
5119
|
+
EXTRA_ELEMENT_HANDLING.attributeCheck = null;
|
|
5120
|
+
if (objectHasOwnProperty(cfg, "ADD_TAGS")) {
|
|
5121
|
+
if (typeof cfg.ADD_TAGS === "function")
|
|
4288
5122
|
EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
|
|
4289
|
-
|
|
4290
|
-
if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS)
|
|
5123
|
+
else if (arrayIsArray(cfg.ADD_TAGS)) {
|
|
5124
|
+
if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS)
|
|
4291
5125
|
ALLOWED_TAGS = clone(ALLOWED_TAGS);
|
|
4292
|
-
}
|
|
4293
5126
|
addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
|
|
4294
5127
|
}
|
|
4295
5128
|
}
|
|
4296
|
-
if (cfg
|
|
4297
|
-
if (typeof cfg.ADD_ATTR === "function")
|
|
5129
|
+
if (objectHasOwnProperty(cfg, "ADD_ATTR")) {
|
|
5130
|
+
if (typeof cfg.ADD_ATTR === "function")
|
|
4298
5131
|
EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
|
|
4299
|
-
|
|
4300
|
-
if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR)
|
|
5132
|
+
else if (arrayIsArray(cfg.ADD_ATTR)) {
|
|
5133
|
+
if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR)
|
|
4301
5134
|
ALLOWED_ATTR = clone(ALLOWED_ATTR);
|
|
4302
|
-
}
|
|
4303
5135
|
addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
|
|
4304
5136
|
}
|
|
4305
5137
|
}
|
|
4306
|
-
if (cfg.
|
|
4307
|
-
|
|
4308
|
-
}
|
|
4309
|
-
if (cfg.FORBID_CONTENTS) {
|
|
4310
|
-
if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
|
|
4311
|
-
FORBID_CONTENTS = clone(FORBID_CONTENTS);
|
|
4312
|
-
}
|
|
4313
|
-
addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
|
|
4314
|
-
}
|
|
4315
|
-
if (cfg.ADD_FORBID_CONTENTS) {
|
|
4316
|
-
if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
|
|
5138
|
+
if (objectHasOwnProperty(cfg, "ADD_FORBID_CONTENTS") && arrayIsArray(cfg.ADD_FORBID_CONTENTS)) {
|
|
5139
|
+
if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS)
|
|
4317
5140
|
FORBID_CONTENTS = clone(FORBID_CONTENTS);
|
|
4318
|
-
}
|
|
4319
5141
|
addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);
|
|
4320
5142
|
}
|
|
4321
|
-
if (KEEP_CONTENT)
|
|
5143
|
+
if (KEEP_CONTENT)
|
|
4322
5144
|
ALLOWED_TAGS["#text"] = true;
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
5145
|
+
if (WHOLE_DOCUMENT)
|
|
5146
|
+
addToSet(ALLOWED_TAGS, [
|
|
5147
|
+
"html",
|
|
5148
|
+
"head",
|
|
5149
|
+
"body"
|
|
5150
|
+
]);
|
|
4327
5151
|
if (ALLOWED_TAGS.table) {
|
|
4328
5152
|
addToSet(ALLOWED_TAGS, ["tbody"]);
|
|
4329
5153
|
delete FORBID_TAGS.tbody;
|
|
4330
5154
|
}
|
|
4331
5155
|
if (cfg.TRUSTED_TYPES_POLICY) {
|
|
4332
|
-
if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== "function")
|
|
5156
|
+
if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== "function")
|
|
4333
5157
|
throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
|
|
4334
|
-
|
|
4335
|
-
if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function") {
|
|
5158
|
+
if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function")
|
|
4336
5159
|
throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
|
|
4337
|
-
|
|
5160
|
+
const previousTrustedTypesPolicy = trustedTypesPolicy;
|
|
4338
5161
|
trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
|
|
4339
|
-
|
|
4340
|
-
|
|
4341
|
-
|
|
4342
|
-
trustedTypesPolicy =
|
|
4343
|
-
|
|
4344
|
-
if (trustedTypesPolicy !== null && typeof emptyHTML === "string") {
|
|
4345
|
-
emptyHTML = trustedTypesPolicy.createHTML("");
|
|
5162
|
+
try {
|
|
5163
|
+
emptyHTML = _createTrustedHTML("");
|
|
5164
|
+
} catch (error) {
|
|
5165
|
+
trustedTypesPolicy = previousTrustedTypesPolicy;
|
|
5166
|
+
throw error;
|
|
4346
5167
|
}
|
|
5168
|
+
} else if (cfg.TRUSTED_TYPES_POLICY === null) {
|
|
5169
|
+
trustedTypesPolicy = void 0;
|
|
5170
|
+
emptyHTML = "";
|
|
5171
|
+
} else {
|
|
5172
|
+
if (trustedTypesPolicy === void 0)
|
|
5173
|
+
trustedTypesPolicy = _getDefaultTrustedTypesPolicy();
|
|
5174
|
+
if (trustedTypesPolicy && typeof emptyHTML === "string")
|
|
5175
|
+
emptyHTML = _createTrustedHTML("");
|
|
4347
5176
|
}
|
|
4348
|
-
if (freeze)
|
|
5177
|
+
if (freeze)
|
|
4349
5178
|
freeze(cfg);
|
|
4350
|
-
}
|
|
4351
5179
|
CONFIG = cfg;
|
|
4352
5180
|
};
|
|
4353
|
-
const ALL_SVG_TAGS = addToSet({}, [
|
|
5181
|
+
const ALL_SVG_TAGS = addToSet({}, [
|
|
5182
|
+
...svg$1,
|
|
5183
|
+
...svgFilters,
|
|
5184
|
+
...svgDisallowed
|
|
5185
|
+
]);
|
|
4354
5186
|
const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
|
|
5187
|
+
const _checkSvgNamespace = function _checkSvgNamespace2(tagName, parent, parentTagName) {
|
|
5188
|
+
if (parent.namespaceURI === HTML_NAMESPACE)
|
|
5189
|
+
return tagName === "svg";
|
|
5190
|
+
if (parent.namespaceURI === MATHML_NAMESPACE)
|
|
5191
|
+
return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
|
|
5192
|
+
return Boolean(ALL_SVG_TAGS[tagName]);
|
|
5193
|
+
};
|
|
5194
|
+
const _checkMathMlNamespace = function _checkMathMlNamespace2(tagName, parent, parentTagName) {
|
|
5195
|
+
if (parent.namespaceURI === HTML_NAMESPACE)
|
|
5196
|
+
return tagName === "math";
|
|
5197
|
+
if (parent.namespaceURI === SVG_NAMESPACE)
|
|
5198
|
+
return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
|
|
5199
|
+
return Boolean(ALL_MATHML_TAGS[tagName]);
|
|
5200
|
+
};
|
|
5201
|
+
const _checkHtmlNamespace = function _checkHtmlNamespace2(tagName, parent, parentTagName) {
|
|
5202
|
+
if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName])
|
|
5203
|
+
return false;
|
|
5204
|
+
if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName])
|
|
5205
|
+
return false;
|
|
5206
|
+
return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
|
|
5207
|
+
};
|
|
4355
5208
|
const _checkValidNamespace = function _checkValidNamespace2(element) {
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
5209
|
+
const elementNamespace = _readNamespaceURI(element);
|
|
5210
|
+
const tagName = stringToLowerCase(_readNodeName(element));
|
|
5211
|
+
const parentNode = getParentNode(element);
|
|
5212
|
+
let parent;
|
|
5213
|
+
let parentTagName;
|
|
5214
|
+
if (parentNode && _readNodeType(parentNode) === NODE_TYPE.element) {
|
|
5215
|
+
parent = { namespaceURI: _readNamespaceURI(parentNode) };
|
|
5216
|
+
parentTagName = stringToLowerCase(_readNodeName(parentNode));
|
|
5217
|
+
} else {
|
|
5218
|
+
parent = { namespaceURI: NAMESPACE };
|
|
5219
|
+
parentTagName = "template";
|
|
4362
5220
|
}
|
|
4363
|
-
|
|
4364
|
-
const parentTagName = stringToLowerCase(parent.tagName);
|
|
4365
|
-
if (!ALLOWED_NAMESPACES[element.namespaceURI]) {
|
|
5221
|
+
if (!ALLOWED_NAMESPACES[elementNamespace])
|
|
4366
5222
|
return false;
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
}
|
|
4375
|
-
return Boolean(ALL_SVG_TAGS[tagName]);
|
|
4376
|
-
}
|
|
4377
|
-
if (element.namespaceURI === MATHML_NAMESPACE) {
|
|
4378
|
-
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
4379
|
-
return tagName === "math";
|
|
4380
|
-
}
|
|
4381
|
-
if (parent.namespaceURI === SVG_NAMESPACE) {
|
|
4382
|
-
return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
|
|
4383
|
-
}
|
|
4384
|
-
return Boolean(ALL_MATHML_TAGS[tagName]);
|
|
4385
|
-
}
|
|
4386
|
-
if (element.namespaceURI === HTML_NAMESPACE) {
|
|
4387
|
-
if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
|
|
4388
|
-
return false;
|
|
4389
|
-
}
|
|
4390
|
-
if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
|
|
4391
|
-
return false;
|
|
4392
|
-
}
|
|
4393
|
-
return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
|
|
4394
|
-
}
|
|
4395
|
-
if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element.namespaceURI]) {
|
|
5223
|
+
if (elementNamespace === SVG_NAMESPACE)
|
|
5224
|
+
return _checkSvgNamespace(tagName, parent, parentTagName);
|
|
5225
|
+
if (elementNamespace === MATHML_NAMESPACE)
|
|
5226
|
+
return _checkMathMlNamespace(tagName, parent, parentTagName);
|
|
5227
|
+
if (elementNamespace === HTML_NAMESPACE)
|
|
5228
|
+
return _checkHtmlNamespace(tagName, parent, parentTagName);
|
|
5229
|
+
if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[elementNamespace])
|
|
4396
5230
|
return true;
|
|
4397
|
-
}
|
|
4398
5231
|
return false;
|
|
4399
5232
|
};
|
|
4400
5233
|
const _forceRemove = function _forceRemove2(node2) {
|
|
4401
|
-
arrayPush(DOMPurify.removed, {
|
|
4402
|
-
element: node2
|
|
4403
|
-
});
|
|
5234
|
+
arrayPush(DOMPurify.removed, { element: node2 });
|
|
4404
5235
|
try {
|
|
4405
5236
|
getParentNode(node2).removeChild(node2);
|
|
4406
5237
|
} catch (_2) {
|
|
4407
5238
|
remove(node2);
|
|
5239
|
+
if (!getParentNode(node2))
|
|
5240
|
+
throw typeErrorCreate("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place");
|
|
4408
5241
|
}
|
|
4409
5242
|
};
|
|
4410
|
-
const
|
|
5243
|
+
const _stripAttributeNode = function _stripAttributeNode2(element, attribute, name) {
|
|
4411
5244
|
try {
|
|
4412
|
-
|
|
4413
|
-
attribute: element.getAttributeNode(name),
|
|
4414
|
-
from: element
|
|
4415
|
-
});
|
|
5245
|
+
removeAttributeNode(element, attribute);
|
|
4416
5246
|
} catch (_2) {
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
5247
|
+
try {
|
|
5248
|
+
element.removeAttribute(name);
|
|
5249
|
+
} catch (_3) {
|
|
5250
|
+
}
|
|
5251
|
+
}
|
|
5252
|
+
};
|
|
5253
|
+
const _neutralizeRoot = function _neutralizeRoot2(root) {
|
|
5254
|
+
_neutralizeSubtree(root);
|
|
5255
|
+
const childNodes = getChildNodes(root);
|
|
5256
|
+
if (childNodes)
|
|
5257
|
+
arrayForEach(arraySlice(childNodes), (child) => {
|
|
5258
|
+
try {
|
|
5259
|
+
remove(child);
|
|
5260
|
+
} catch (_2) {
|
|
5261
|
+
}
|
|
4420
5262
|
});
|
|
5263
|
+
const attributes = _readNodeType(root) === NODE_TYPE.element ? getAttributes(root) : null;
|
|
5264
|
+
if (attributes)
|
|
5265
|
+
for (let i2 = attributes.length - 1; i2 >= 0; --i2) {
|
|
5266
|
+
const attribute = attributes[i2];
|
|
5267
|
+
const name = attribute && attribute.name;
|
|
5268
|
+
if (typeof name === "string")
|
|
5269
|
+
_stripAttributeNode(root, attribute, name);
|
|
5270
|
+
}
|
|
5271
|
+
};
|
|
5272
|
+
const _removeAttribute = function _removeAttribute2(name, element, attr) {
|
|
5273
|
+
if (!attr)
|
|
5274
|
+
try {
|
|
5275
|
+
attr = element.getAttributeNode(name);
|
|
5276
|
+
} catch (_2) {
|
|
5277
|
+
attr = null;
|
|
5278
|
+
}
|
|
5279
|
+
arrayPush(DOMPurify.removed, {
|
|
5280
|
+
attribute: attr || null,
|
|
5281
|
+
from: element
|
|
5282
|
+
});
|
|
5283
|
+
try {
|
|
5284
|
+
if (attr)
|
|
5285
|
+
removeAttributeNode(element, attr);
|
|
5286
|
+
else
|
|
5287
|
+
element.removeAttribute(name);
|
|
5288
|
+
} catch (_2) {
|
|
5289
|
+
try {
|
|
5290
|
+
element.removeAttribute(name);
|
|
5291
|
+
} catch (_3) {
|
|
5292
|
+
}
|
|
4421
5293
|
}
|
|
4422
|
-
element.removeAttribute(name);
|
|
4423
5294
|
if (name === "is") {
|
|
4424
|
-
if (RETURN_DOM || RETURN_DOM_FRAGMENT)
|
|
5295
|
+
if (RETURN_DOM || RETURN_DOM_FRAGMENT)
|
|
4425
5296
|
try {
|
|
4426
5297
|
_forceRemove(element);
|
|
4427
5298
|
} catch (_2) {
|
|
4428
5299
|
}
|
|
4429
|
-
|
|
5300
|
+
else
|
|
4430
5301
|
try {
|
|
4431
5302
|
element.setAttribute(name, "");
|
|
4432
5303
|
} catch (_2) {
|
|
4433
5304
|
}
|
|
5305
|
+
}
|
|
5306
|
+
};
|
|
5307
|
+
const _stripDisallowedAttributes = function _stripDisallowedAttributes2(element) {
|
|
5308
|
+
const attributes = getAttributes(element);
|
|
5309
|
+
if (!attributes)
|
|
5310
|
+
return;
|
|
5311
|
+
for (let i2 = attributes.length - 1; i2 >= 0; --i2) {
|
|
5312
|
+
const attribute = attributes[i2];
|
|
5313
|
+
const name = attribute && attribute.name;
|
|
5314
|
+
if (typeof name !== "string" || ALLOWED_ATTR[transformCaseFunc(name)])
|
|
5315
|
+
continue;
|
|
5316
|
+
_stripAttributeNode(element, attribute, name);
|
|
5317
|
+
}
|
|
5318
|
+
};
|
|
5319
|
+
const _walkTree = function _walkTree2(root, visit) {
|
|
5320
|
+
let intoShadow = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
|
|
5321
|
+
const stack = [root];
|
|
5322
|
+
while (stack.length > 0) {
|
|
5323
|
+
const node2 = stack.pop();
|
|
5324
|
+
if (visit(node2) === false)
|
|
5325
|
+
continue;
|
|
5326
|
+
if (intoShadow && _readNodeType(node2) === NODE_TYPE.element) {
|
|
5327
|
+
const shadowRoot = getShadowRoot(node2);
|
|
5328
|
+
if (_isDocumentFragment(shadowRoot))
|
|
5329
|
+
stack.push(shadowRoot);
|
|
4434
5330
|
}
|
|
5331
|
+
const childNodes = getChildNodes(node2);
|
|
5332
|
+
if (childNodes)
|
|
5333
|
+
for (let i2 = childNodes.length - 1; i2 >= 0; --i2)
|
|
5334
|
+
stack.push(childNodes[i2]);
|
|
5335
|
+
}
|
|
5336
|
+
};
|
|
5337
|
+
const _neutralizeSubtree = function _neutralizeSubtree2(root) {
|
|
5338
|
+
_walkTree(root, (node2) => {
|
|
5339
|
+
if (_readNodeType(node2) === NODE_TYPE.element)
|
|
5340
|
+
_stripDisallowedAttributes(node2);
|
|
5341
|
+
});
|
|
5342
|
+
};
|
|
5343
|
+
const _collectLiveNodes = function _collectLiveNodes2(root) {
|
|
5344
|
+
const nodes = [];
|
|
5345
|
+
_walkTree(root, (node2) => {
|
|
5346
|
+
nodes.push(node2);
|
|
5347
|
+
}, true);
|
|
5348
|
+
return nodes;
|
|
5349
|
+
};
|
|
5350
|
+
const _neutralizeEscapedElements = function _neutralizeEscapedElements2(root, before) {
|
|
5351
|
+
const reachable = setCreate();
|
|
5352
|
+
arrayForEach(_collectLiveNodes(root), (node2) => {
|
|
5353
|
+
if (_readNodeType(node2) === NODE_TYPE.element)
|
|
5354
|
+
setAdd(reachable, node2);
|
|
5355
|
+
});
|
|
5356
|
+
arrayForEach(before, (node2) => {
|
|
5357
|
+
if (_readNodeType(node2) === NODE_TYPE.element && !setHas(reachable, node2))
|
|
5358
|
+
_stripDisallowedAttributes(node2);
|
|
5359
|
+
});
|
|
5360
|
+
};
|
|
5361
|
+
const _neutralizeDiscarded = function _neutralizeDiscarded2(root, before) {
|
|
5362
|
+
let rootRemoved = false;
|
|
5363
|
+
arrayForEach(DOMPurify.removed, (entry) => {
|
|
5364
|
+
if (entry.element) {
|
|
5365
|
+
rootRemoved = rootRemoved || entry.element === root;
|
|
5366
|
+
_neutralizeSubtree(entry.element);
|
|
5367
|
+
}
|
|
5368
|
+
});
|
|
5369
|
+
_neutralizeEscapedElements(root, before);
|
|
5370
|
+
return rootRemoved;
|
|
5371
|
+
};
|
|
5372
|
+
const MAX_UNVISITED_ROUNDS = 8;
|
|
5373
|
+
const _sanitizeUnvisitedNodes = function _sanitizeUnvisitedNodes2(root, before) {
|
|
5374
|
+
const visited = IN_PLACE_VISITED;
|
|
5375
|
+
let original = null;
|
|
5376
|
+
const getOriginal = () => {
|
|
5377
|
+
if (!original) {
|
|
5378
|
+
original = setCreate();
|
|
5379
|
+
arrayForEach(before, (beforeNode) => {
|
|
5380
|
+
setAdd(original, beforeNode);
|
|
5381
|
+
});
|
|
5382
|
+
}
|
|
5383
|
+
return original;
|
|
5384
|
+
};
|
|
5385
|
+
for (let round = 0; ; round++) {
|
|
5386
|
+
const live = _collectLiveNodes(root);
|
|
5387
|
+
const containers = [root];
|
|
5388
|
+
let pending = false;
|
|
5389
|
+
arrayForEach(live, (node2) => {
|
|
5390
|
+
if (_readNodeType(node2) === NODE_TYPE.documentFragment)
|
|
5391
|
+
arrayPush(containers, node2);
|
|
5392
|
+
else if (!pending && !setHas(visited, node2))
|
|
5393
|
+
pending = setHas(getOriginal(), node2);
|
|
5394
|
+
});
|
|
5395
|
+
if (!pending)
|
|
5396
|
+
return;
|
|
5397
|
+
if (round >= MAX_UNVISITED_ROUNDS)
|
|
5398
|
+
throw typeErrorCreate("the tree kept changing during in-place sanitization; refusing to return it");
|
|
5399
|
+
arrayForEach(containers, (container, index2) => {
|
|
5400
|
+
_sanitizeUnvisitedIn(container, index2 > 0, root, getOriginal());
|
|
5401
|
+
});
|
|
5402
|
+
}
|
|
5403
|
+
};
|
|
5404
|
+
const _sanitizeUnvisitedIn = function _sanitizeUnvisitedIn2(container, inShadow, root, original) {
|
|
5405
|
+
const iterator = _createNodeIterator(container);
|
|
5406
|
+
let node2;
|
|
5407
|
+
while (node2 = iterator.nextNode()) {
|
|
5408
|
+
if (!setHas(original, node2) || setHas(IN_PLACE_VISITED, node2))
|
|
5409
|
+
continue;
|
|
5410
|
+
if (inShadow)
|
|
5411
|
+
_executeHooks(hooks.uponSanitizeShadowNode, node2, null);
|
|
5412
|
+
_sanitizeElements(node2, root);
|
|
5413
|
+
_sanitizeAttributes(node2, root);
|
|
5414
|
+
if (_isDocumentFragment(node2.content))
|
|
5415
|
+
_sanitizeShadowDOM2(node2.content);
|
|
4435
5416
|
}
|
|
4436
5417
|
};
|
|
5418
|
+
const _markVisited = function _markVisited2(node2) {
|
|
5419
|
+
if (IN_PLACE_VISITED)
|
|
5420
|
+
setAdd(IN_PLACE_VISITED, node2);
|
|
5421
|
+
};
|
|
5422
|
+
const _isPatchLinkageAttribute = function _isPatchLinkageAttribute2(lcName, lcTag) {
|
|
5423
|
+
if (!SAFE_FOR_XML)
|
|
5424
|
+
return false;
|
|
5425
|
+
if (lcName === "patchsrc")
|
|
5426
|
+
return true;
|
|
5427
|
+
return lcName === "for" && lcTag !== "label" && lcTag !== "output";
|
|
5428
|
+
};
|
|
5429
|
+
const _neutralizePatchLinkage = function _neutralizePatchLinkage2(root) {
|
|
5430
|
+
if (!SAFE_FOR_XML)
|
|
5431
|
+
return;
|
|
5432
|
+
_walkTree(root, (node2) => {
|
|
5433
|
+
const nodeType = _readNodeType(node2);
|
|
5434
|
+
if (nodeType === NODE_TYPE.processingInstruction || nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, node2.data)) {
|
|
5435
|
+
try {
|
|
5436
|
+
remove(node2);
|
|
5437
|
+
} catch (_2) {
|
|
5438
|
+
}
|
|
5439
|
+
return false;
|
|
5440
|
+
}
|
|
5441
|
+
if (nodeType === NODE_TYPE.element) {
|
|
5442
|
+
const element = node2;
|
|
5443
|
+
const lcTag = transformCaseFunc(_readNodeName(node2));
|
|
5444
|
+
try {
|
|
5445
|
+
if (element.hasAttribute && element.hasAttribute("patchsrc"))
|
|
5446
|
+
element.removeAttribute("patchsrc");
|
|
5447
|
+
if (element.hasAttribute && element.hasAttribute("for") && _isPatchLinkageAttribute("for", lcTag))
|
|
5448
|
+
element.removeAttribute("for");
|
|
5449
|
+
} catch (_2) {
|
|
5450
|
+
}
|
|
5451
|
+
}
|
|
5452
|
+
return true;
|
|
5453
|
+
});
|
|
5454
|
+
};
|
|
4437
5455
|
const _initDocument = function _initDocument2(dirty) {
|
|
4438
5456
|
let doc = null;
|
|
4439
5457
|
let leadingWhitespace = null;
|
|
4440
|
-
if (FORCE_BODY)
|
|
5458
|
+
if (FORCE_BODY)
|
|
4441
5459
|
dirty = "<remove></remove>" + dirty;
|
|
4442
|
-
|
|
5460
|
+
else {
|
|
4443
5461
|
const matches = stringMatch(dirty, /^[\r\n\t ]+/);
|
|
4444
5462
|
leadingWhitespace = matches && matches[0];
|
|
4445
5463
|
}
|
|
4446
|
-
if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE)
|
|
5464
|
+
if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE)
|
|
4447
5465
|
dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + "</body></html>";
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
if (NAMESPACE === HTML_NAMESPACE) {
|
|
5466
|
+
const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;
|
|
5467
|
+
if (NAMESPACE === HTML_NAMESPACE)
|
|
4451
5468
|
try {
|
|
4452
5469
|
doc = new DOMParser2().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
|
|
4453
5470
|
} catch (_2) {
|
|
4454
5471
|
}
|
|
4455
|
-
}
|
|
4456
5472
|
if (!doc || !doc.documentElement) {
|
|
4457
5473
|
doc = implementation.createDocument(NAMESPACE, "template", null);
|
|
4458
5474
|
try {
|
|
@@ -4461,145 +5477,249 @@ function createDOMPurify() {
|
|
|
4461
5477
|
}
|
|
4462
5478
|
}
|
|
4463
5479
|
const body = doc.body || doc.documentElement;
|
|
4464
|
-
if (dirty && leadingWhitespace)
|
|
5480
|
+
if (dirty && leadingWhitespace)
|
|
4465
5481
|
body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null);
|
|
4466
|
-
|
|
4467
|
-
if (NAMESPACE === HTML_NAMESPACE) {
|
|
5482
|
+
if (NAMESPACE === HTML_NAMESPACE)
|
|
4468
5483
|
return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
|
|
4469
|
-
}
|
|
4470
5484
|
return WHOLE_DOCUMENT ? doc.documentElement : body;
|
|
4471
5485
|
};
|
|
4472
5486
|
const _createNodeIterator = function _createNodeIterator2(root) {
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
);
|
|
5487
|
+
const doc = getOwnerDocument ? getOwnerDocument(root) : root.ownerDocument;
|
|
5488
|
+
return createNodeIterator.call(doc || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
|
|
5489
|
+
};
|
|
5490
|
+
const _stripTemplateExpressions = function _stripTemplateExpressions2(value) {
|
|
5491
|
+
value = stringReplace(value, MUSTACHE_EXPR$1, " ");
|
|
5492
|
+
value = stringReplace(value, ERB_EXPR$1, " ");
|
|
5493
|
+
value = stringReplace(value, TMPLIT_EXPR$1, " ");
|
|
5494
|
+
return value;
|
|
5495
|
+
};
|
|
5496
|
+
const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node2) {
|
|
5497
|
+
var _node$querySelectorAl;
|
|
5498
|
+
_scrubOwnCharacterData(node2);
|
|
5499
|
+
const templates = (_node$querySelectorAl = node2.querySelectorAll) === null || _node$querySelectorAl === void 0 ? void 0 : _node$querySelectorAl.call(node2, "template");
|
|
5500
|
+
if (templates)
|
|
5501
|
+
arrayForEach(templates, (tmpl) => {
|
|
5502
|
+
if (_isDocumentFragment(tmpl.content))
|
|
5503
|
+
_scrubTemplateExpressions2(tmpl.content);
|
|
5504
|
+
});
|
|
5505
|
+
};
|
|
5506
|
+
const _scrubOwnCharacterData = function _scrubOwnCharacterData2(node2) {
|
|
5507
|
+
node2.normalize();
|
|
5508
|
+
const doc = getOwnerDocument ? getOwnerDocument(node2) : node2.ownerDocument;
|
|
5509
|
+
const walker = createNodeIterator.call(doc || node2, node2, NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);
|
|
5510
|
+
let currentNode = walker.nextNode();
|
|
5511
|
+
while (currentNode) {
|
|
5512
|
+
currentNode.data = _stripTemplateExpressions(currentNode.data);
|
|
5513
|
+
currentNode = walker.nextNode();
|
|
5514
|
+
}
|
|
4479
5515
|
};
|
|
4480
5516
|
const _isClobbered = function _isClobbered2(element) {
|
|
4481
|
-
|
|
5517
|
+
const realTagName = getNodeName ? getNodeName(element) : null;
|
|
5518
|
+
if (typeof realTagName !== "string")
|
|
5519
|
+
return false;
|
|
5520
|
+
if (transformCaseFunc(realTagName) !== "form")
|
|
5521
|
+
return false;
|
|
5522
|
+
return typeof element.nodeName !== "string" || typeof element.textContent !== "string" || typeof element.removeChild !== "function" || element.attributes !== getAttributes(element) || typeof element.removeAttribute !== "function" || typeof element.removeAttributeNode !== "function" || typeof element.getAttributeNode !== "function" || typeof element.setAttribute !== "function" || typeof element.namespaceURI !== "string" || typeof element.insertBefore !== "function" || typeof element.hasChildNodes !== "function" || element.nodeType !== getNodeType(element) || element.childNodes !== getChildNodes(element);
|
|
5523
|
+
};
|
|
5524
|
+
const _isDocumentFragment = function _isDocumentFragment2(value) {
|
|
5525
|
+
if (!getNodeType || typeof value !== "object" || value === null)
|
|
5526
|
+
return false;
|
|
5527
|
+
try {
|
|
5528
|
+
return getNodeType(value) === NODE_TYPE.documentFragment;
|
|
5529
|
+
} catch (_2) {
|
|
5530
|
+
return false;
|
|
5531
|
+
}
|
|
4482
5532
|
};
|
|
4483
5533
|
const _isNode = function _isNode2(value) {
|
|
4484
|
-
|
|
5534
|
+
if (!getNodeType || typeof value !== "object" || value === null)
|
|
5535
|
+
return false;
|
|
5536
|
+
try {
|
|
5537
|
+
return typeof getNodeType(value) === "number";
|
|
5538
|
+
} catch (_2) {
|
|
5539
|
+
return false;
|
|
5540
|
+
}
|
|
4485
5541
|
};
|
|
4486
5542
|
function _executeHooks(hooks2, currentNode, data) {
|
|
5543
|
+
if (hooks2.length === 0)
|
|
5544
|
+
return;
|
|
4487
5545
|
arrayForEach(hooks2, (hook) => {
|
|
4488
5546
|
hook.call(DOMPurify, currentNode, data, CONFIG);
|
|
4489
5547
|
});
|
|
4490
5548
|
}
|
|
4491
|
-
const
|
|
4492
|
-
|
|
5549
|
+
const _isUnsafeNode = function _isUnsafeNode2(currentNode, tagName) {
|
|
5550
|
+
if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.textContent) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.innerHTML))
|
|
5551
|
+
return true;
|
|
5552
|
+
if (SAFE_FOR_XML && LITERAL_TEXT_ELEMENTS[tagName] && _readNodeType(currentNode) === NODE_TYPE.element && _readNamespaceURI(currentNode) === HTML_NAMESPACE && (_isNode(currentNode.firstElementChild) || typeof currentNode.textContent === "string" && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.textContent)))
|
|
5553
|
+
return true;
|
|
5554
|
+
if (currentNode.nodeType === NODE_TYPE.processingInstruction)
|
|
5555
|
+
return true;
|
|
5556
|
+
if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, currentNode.data))
|
|
5557
|
+
return true;
|
|
5558
|
+
return false;
|
|
5559
|
+
};
|
|
5560
|
+
const _matchesNameCheck = function _matchesNameCheck2(check, name) {
|
|
5561
|
+
if (check instanceof RegExp)
|
|
5562
|
+
return regExpTest(check, name);
|
|
5563
|
+
if (check instanceof Function) {
|
|
5564
|
+
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++)
|
|
5565
|
+
args[_key - 2] = arguments[_key];
|
|
5566
|
+
return Boolean(check(name, ...args));
|
|
5567
|
+
}
|
|
5568
|
+
return false;
|
|
5569
|
+
};
|
|
5570
|
+
const _sanitizeDisallowedNode = function _sanitizeDisallowedNode2(currentNode, tagName, root) {
|
|
5571
|
+
if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName))
|
|
5572
|
+
return false;
|
|
5573
|
+
if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && !FORBID_CONTENTS[stringToLowerCase(tagName)]) {
|
|
5574
|
+
const parentNode = getParentNode(currentNode);
|
|
5575
|
+
const childNodes = getChildNodes(currentNode);
|
|
5576
|
+
if (childNodes && parentNode) {
|
|
5577
|
+
const childCount = childNodes.length;
|
|
5578
|
+
for (let i2 = childCount - 1; i2 >= 0; --i2) {
|
|
5579
|
+
const hoisted = currentNode === root ? cloneNode2(childNodes[i2], true) : childNodes[i2];
|
|
5580
|
+
parentNode.insertBefore(hoisted, getNextSibling(currentNode));
|
|
5581
|
+
}
|
|
5582
|
+
}
|
|
5583
|
+
}
|
|
5584
|
+
_forceRemove(currentNode);
|
|
5585
|
+
return true;
|
|
5586
|
+
};
|
|
5587
|
+
const _forkSharedAllowlist = function _forkSharedAllowlist2(hookList, set, defaultSet, setConfigSet) {
|
|
5588
|
+
if (hookList.length === 0)
|
|
5589
|
+
return set;
|
|
5590
|
+
return set === defaultSet || set === setConfigSet ? clone(set) : set;
|
|
5591
|
+
};
|
|
5592
|
+
const _handleHookDetachedNode = function _handleHookDetachedNode2(currentNode, root) {
|
|
5593
|
+
if (currentNode === root || getParentNode(currentNode) !== null)
|
|
5594
|
+
return false;
|
|
5595
|
+
if (IN_PLACE)
|
|
5596
|
+
_neutralizeSubtree(currentNode);
|
|
5597
|
+
return true;
|
|
5598
|
+
};
|
|
5599
|
+
const _sanitizeElements = function _sanitizeElements2(currentNode, root) {
|
|
5600
|
+
_markVisited(currentNode);
|
|
4493
5601
|
_executeHooks(hooks.beforeSanitizeElements, currentNode, null);
|
|
5602
|
+
if (_handleHookDetachedNode(currentNode, root))
|
|
5603
|
+
return true;
|
|
4494
5604
|
if (_isClobbered(currentNode)) {
|
|
4495
5605
|
_forceRemove(currentNode);
|
|
4496
5606
|
return true;
|
|
4497
5607
|
}
|
|
4498
|
-
const tagName = transformCaseFunc(currentNode
|
|
5608
|
+
const tagName = transformCaseFunc(_readNodeName(currentNode));
|
|
5609
|
+
ALLOWED_TAGS = _forkSharedAllowlist(hooks.uponSanitizeElement, ALLOWED_TAGS, DEFAULT_ALLOWED_TAGS, SET_CONFIG_ALLOWED_TAGS);
|
|
4499
5610
|
_executeHooks(hooks.uponSanitizeElement, currentNode, {
|
|
4500
5611
|
tagName,
|
|
4501
5612
|
allowedTags: ALLOWED_TAGS
|
|
4502
5613
|
});
|
|
4503
|
-
if (
|
|
4504
|
-
_forceRemove(currentNode);
|
|
5614
|
+
if (_handleHookDetachedNode(currentNode, root))
|
|
4505
5615
|
return true;
|
|
4506
|
-
|
|
4507
|
-
if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
|
|
5616
|
+
if (_isUnsafeNode(currentNode, tagName)) {
|
|
4508
5617
|
_forceRemove(currentNode);
|
|
4509
5618
|
return true;
|
|
4510
5619
|
}
|
|
4511
|
-
if (
|
|
4512
|
-
|
|
4513
|
-
|
|
4514
|
-
|
|
4515
|
-
|
|
4516
|
-
|
|
4517
|
-
if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
|
|
4518
|
-
return false;
|
|
4519
|
-
}
|
|
4520
|
-
if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
|
|
4521
|
-
return false;
|
|
4522
|
-
}
|
|
4523
|
-
}
|
|
4524
|
-
if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
|
|
4525
|
-
const parentNode = getParentNode(currentNode) || currentNode.parentNode;
|
|
4526
|
-
const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
|
|
4527
|
-
if (childNodes && parentNode) {
|
|
4528
|
-
const childCount = childNodes.length;
|
|
4529
|
-
for (let i2 = childCount - 1; i2 >= 0; --i2) {
|
|
4530
|
-
const childClone = cloneNode2(childNodes[i2], true);
|
|
4531
|
-
childClone.__removalCount = (currentNode.__removalCount || 0) + 1;
|
|
4532
|
-
parentNode.insertBefore(childClone, getNextSibling(currentNode));
|
|
4533
|
-
}
|
|
4534
|
-
}
|
|
5620
|
+
if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
|
|
5621
|
+
const removed = _sanitizeDisallowedNode(currentNode, tagName, root);
|
|
5622
|
+
if (removed === false) {
|
|
5623
|
+
_executeHooks(hooks.afterSanitizeElements, currentNode, null);
|
|
5624
|
+
if (_handleHookDetachedNode(currentNode, root))
|
|
5625
|
+
return true;
|
|
4535
5626
|
}
|
|
4536
|
-
|
|
4537
|
-
return true;
|
|
5627
|
+
return removed;
|
|
4538
5628
|
}
|
|
4539
|
-
if (currentNode
|
|
5629
|
+
if (_readNodeType(currentNode) === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {
|
|
4540
5630
|
_forceRemove(currentNode);
|
|
4541
5631
|
return true;
|
|
4542
5632
|
}
|
|
4543
|
-
if ((tagName === "noscript" || tagName === "noembed" || tagName === "noframes") && regExpTest(
|
|
5633
|
+
if ((tagName === "noscript" || tagName === "noembed" || tagName === "noframes") && regExpTest(FALLBACK_TAG_CLOSE, currentNode.innerHTML)) {
|
|
4544
5634
|
_forceRemove(currentNode);
|
|
4545
5635
|
return true;
|
|
4546
5636
|
}
|
|
4547
5637
|
if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
|
|
4548
|
-
content = currentNode.textContent;
|
|
4549
|
-
arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) => {
|
|
4550
|
-
content = stringReplace(content, expr, " ");
|
|
4551
|
-
});
|
|
5638
|
+
const content = _stripTemplateExpressions(currentNode.textContent);
|
|
4552
5639
|
if (currentNode.textContent !== content) {
|
|
4553
|
-
arrayPush(DOMPurify.removed, {
|
|
4554
|
-
element: currentNode.cloneNode()
|
|
4555
|
-
});
|
|
5640
|
+
arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });
|
|
4556
5641
|
currentNode.textContent = content;
|
|
4557
5642
|
}
|
|
4558
5643
|
}
|
|
4559
5644
|
_executeHooks(hooks.afterSanitizeElements, currentNode, null);
|
|
4560
|
-
return
|
|
5645
|
+
return _handleHookDetachedNode(currentNode, root);
|
|
4561
5646
|
};
|
|
4562
5647
|
const _isValidAttribute = function _isValidAttribute2(lcTag, lcName, value) {
|
|
4563
|
-
if (
|
|
5648
|
+
if (FORBID_ATTR[lcName])
|
|
4564
5649
|
return false;
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
|
|
4571
|
-
;
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
5650
|
+
if (_isPatchLinkageAttribute(lcName, lcTag))
|
|
5651
|
+
return false;
|
|
5652
|
+
if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document2 || value in formElement))
|
|
5653
|
+
return false;
|
|
5654
|
+
const nameIsPermitted = ALLOWED_ATTR[lcName] || EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag);
|
|
5655
|
+
if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$1, lcName))
|
|
5656
|
+
return true;
|
|
5657
|
+
if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName))
|
|
5658
|
+
return true;
|
|
5659
|
+
if (!nameIsPermitted)
|
|
5660
|
+
return _isBasicCustomElement(lcTag) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName, lcTag) || lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value);
|
|
5661
|
+
if (URI_SAFE_ATTRIBUTES[lcName])
|
|
5662
|
+
return true;
|
|
5663
|
+
if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, "")))
|
|
5664
|
+
return true;
|
|
5665
|
+
if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag])
|
|
5666
|
+
return true;
|
|
5667
|
+
if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, "")))
|
|
5668
|
+
return true;
|
|
5669
|
+
return !value;
|
|
5670
|
+
};
|
|
5671
|
+
const RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, [
|
|
5672
|
+
"annotation-xml",
|
|
5673
|
+
"color-profile",
|
|
5674
|
+
"font-face",
|
|
5675
|
+
"font-face-format",
|
|
5676
|
+
"font-face-name",
|
|
5677
|
+
"font-face-src",
|
|
5678
|
+
"font-face-uri",
|
|
5679
|
+
"missing-glyph"
|
|
5680
|
+
]);
|
|
5681
|
+
const _isBasicCustomElement = function _isBasicCustomElement2(tagName) {
|
|
5682
|
+
return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT$1, tagName);
|
|
5683
|
+
};
|
|
5684
|
+
const _applyTrustedTypesToAttribute = function _applyTrustedTypesToAttribute2(lcTag, lcName, namespaceURI, value) {
|
|
5685
|
+
if (trustedTypesPolicy && typeof trustedTypes === "object" && typeof trustedTypes.getAttributeType === "function" && !namespaceURI)
|
|
5686
|
+
switch (trustedTypes.getAttributeType(lcTag, lcName)) {
|
|
5687
|
+
case "TrustedHTML":
|
|
5688
|
+
return _createTrustedHTML(value);
|
|
5689
|
+
case "TrustedScriptURL":
|
|
5690
|
+
return _createTrustedScriptURL(value);
|
|
5691
|
+
}
|
|
5692
|
+
return value;
|
|
5693
|
+
};
|
|
5694
|
+
const _setAttributeValue = function _setAttributeValue2(currentNode, name, namespaceURI, value) {
|
|
5695
|
+
try {
|
|
5696
|
+
if (namespaceURI)
|
|
5697
|
+
currentNode.setAttributeNS(namespaceURI, name, value);
|
|
5698
|
+
else
|
|
5699
|
+
currentNode.setAttribute(name, value);
|
|
5700
|
+
if (_isClobbered(currentNode)) {
|
|
5701
|
+
_forceRemove(currentNode);
|
|
4576
5702
|
return false;
|
|
4577
5703
|
}
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
;
|
|
4582
|
-
else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag])
|
|
4583
|
-
;
|
|
4584
|
-
else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA2, stringReplace(value, ATTR_WHITESPACE2, "")))
|
|
4585
|
-
;
|
|
4586
|
-
else if (value) {
|
|
5704
|
+
return true;
|
|
5705
|
+
} catch (_2) {
|
|
5706
|
+
_removeAttribute(name, currentNode);
|
|
4587
5707
|
return false;
|
|
4588
|
-
}
|
|
4589
|
-
;
|
|
4590
|
-
return true;
|
|
5708
|
+
}
|
|
4591
5709
|
};
|
|
4592
|
-
const
|
|
4593
|
-
|
|
5710
|
+
const _isUnsafeAttributeValue = function _isUnsafeAttributeValue2(name, value) {
|
|
5711
|
+
if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value))
|
|
5712
|
+
return true;
|
|
5713
|
+
return stringToLowerCase(name) === "attributename" && stringMatch(value, "href") !== null;
|
|
4594
5714
|
};
|
|
4595
|
-
const _sanitizeAttributes = function _sanitizeAttributes2(currentNode) {
|
|
5715
|
+
const _sanitizeAttributes = function _sanitizeAttributes2(currentNode, root) {
|
|
4596
5716
|
_executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
|
|
4597
|
-
|
|
4598
|
-
attributes
|
|
4599
|
-
} = currentNode;
|
|
4600
|
-
if (!attributes || _isClobbered(currentNode)) {
|
|
5717
|
+
if (_handleHookDetachedNode(currentNode, root))
|
|
4601
5718
|
return;
|
|
4602
|
-
|
|
5719
|
+
const attributes = currentNode.attributes;
|
|
5720
|
+
if (!attributes || _isClobbered(currentNode))
|
|
5721
|
+
return;
|
|
5722
|
+
ALLOWED_ATTR = _forkSharedAllowlist(hooks.uponSanitizeAttribute, ALLOWED_ATTR, DEFAULT_ALLOWED_ATTR, SET_CONFIG_ALLOWED_ATTR);
|
|
4603
5723
|
const hookEvent = {
|
|
4604
5724
|
attrName: "",
|
|
4605
5725
|
attrValue: "",
|
|
@@ -4608,104 +5728,120 @@ function createDOMPurify() {
|
|
|
4608
5728
|
forceKeepAttr: void 0
|
|
4609
5729
|
};
|
|
4610
5730
|
let l2 = attributes.length;
|
|
5731
|
+
const lcTag = transformCaseFunc(currentNode.nodeName);
|
|
4611
5732
|
while (l2--) {
|
|
4612
5733
|
const attr = attributes[l2];
|
|
4613
|
-
const
|
|
4614
|
-
name,
|
|
4615
|
-
namespaceURI,
|
|
4616
|
-
value: attrValue
|
|
4617
|
-
} = attr;
|
|
5734
|
+
const name = attr.name, namespaceURI = attr.namespaceURI, attrValue = attr.value;
|
|
4618
5735
|
const lcName = transformCaseFunc(name);
|
|
4619
5736
|
const initValue = attrValue;
|
|
4620
5737
|
let value = name === "value" ? initValue : stringTrim(initValue);
|
|
5738
|
+
let recreatedNamedProp = false;
|
|
4621
5739
|
hookEvent.attrName = lcName;
|
|
4622
5740
|
hookEvent.attrValue = value;
|
|
4623
5741
|
hookEvent.keepAttr = true;
|
|
4624
5742
|
hookEvent.forceKeepAttr = void 0;
|
|
4625
5743
|
_executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);
|
|
4626
5744
|
value = hookEvent.attrValue;
|
|
4627
|
-
if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
|
|
4628
|
-
_removeAttribute(name, currentNode);
|
|
5745
|
+
if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name") && stringIndexOf(value, SANITIZE_NAMED_PROPS_PREFIX) !== 0) {
|
|
5746
|
+
_removeAttribute(name, currentNode, attr);
|
|
4629
5747
|
value = SANITIZE_NAMED_PROPS_PREFIX + value;
|
|
5748
|
+
recreatedNamedProp = true;
|
|
4630
5749
|
}
|
|
4631
|
-
if (
|
|
4632
|
-
_removeAttribute(name, currentNode);
|
|
5750
|
+
if (_isUnsafeAttributeValue(name, value)) {
|
|
5751
|
+
_removeAttribute(name, currentNode, attr);
|
|
4633
5752
|
continue;
|
|
4634
5753
|
}
|
|
4635
|
-
if (
|
|
4636
|
-
_removeAttribute(name, currentNode);
|
|
5754
|
+
if (hookEvent.forceKeepAttr)
|
|
4637
5755
|
continue;
|
|
4638
|
-
}
|
|
4639
|
-
if (hookEvent.forceKeepAttr) {
|
|
4640
|
-
continue;
|
|
4641
|
-
}
|
|
4642
5756
|
if (!hookEvent.keepAttr) {
|
|
4643
|
-
_removeAttribute(name, currentNode);
|
|
5757
|
+
_removeAttribute(name, currentNode, attr);
|
|
4644
5758
|
continue;
|
|
4645
5759
|
}
|
|
4646
|
-
if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(
|
|
4647
|
-
_removeAttribute(name, currentNode);
|
|
5760
|
+
if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(SELF_CLOSING_TAG, value)) {
|
|
5761
|
+
_removeAttribute(name, currentNode, attr);
|
|
4648
5762
|
continue;
|
|
4649
5763
|
}
|
|
4650
|
-
if (SAFE_FOR_TEMPLATES)
|
|
4651
|
-
|
|
4652
|
-
value = stringReplace(value, expr, " ");
|
|
4653
|
-
});
|
|
4654
|
-
}
|
|
4655
|
-
const lcTag = transformCaseFunc(currentNode.nodeName);
|
|
5764
|
+
if (SAFE_FOR_TEMPLATES)
|
|
5765
|
+
value = _stripTemplateExpressions(value);
|
|
4656
5766
|
if (!_isValidAttribute(lcTag, lcName, value)) {
|
|
4657
|
-
_removeAttribute(name, currentNode);
|
|
5767
|
+
_removeAttribute(name, currentNode, attr);
|
|
4658
5768
|
continue;
|
|
4659
5769
|
}
|
|
4660
|
-
|
|
4661
|
-
if (namespaceURI)
|
|
4662
|
-
;
|
|
4663
|
-
else {
|
|
4664
|
-
switch (trustedTypes.getAttributeType(lcTag, lcName)) {
|
|
4665
|
-
case "TrustedHTML": {
|
|
4666
|
-
value = trustedTypesPolicy.createHTML(value);
|
|
4667
|
-
break;
|
|
4668
|
-
}
|
|
4669
|
-
case "TrustedScriptURL": {
|
|
4670
|
-
value = trustedTypesPolicy.createScriptURL(value);
|
|
4671
|
-
break;
|
|
4672
|
-
}
|
|
4673
|
-
}
|
|
4674
|
-
}
|
|
4675
|
-
}
|
|
5770
|
+
value = _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value);
|
|
4676
5771
|
if (value !== initValue) {
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
currentNode.setAttributeNS(namespaceURI, name, value);
|
|
4680
|
-
} else {
|
|
4681
|
-
currentNode.setAttribute(name, value);
|
|
4682
|
-
}
|
|
4683
|
-
if (_isClobbered(currentNode)) {
|
|
4684
|
-
_forceRemove(currentNode);
|
|
4685
|
-
} else {
|
|
4686
|
-
arrayPop(DOMPurify.removed);
|
|
4687
|
-
}
|
|
4688
|
-
} catch (_2) {
|
|
4689
|
-
_removeAttribute(name, currentNode);
|
|
4690
|
-
}
|
|
5772
|
+
if (_setAttributeValue(currentNode, name, namespaceURI, value) && recreatedNamedProp)
|
|
5773
|
+
arrayPop(DOMPurify.removed);
|
|
4691
5774
|
}
|
|
4692
5775
|
}
|
|
4693
5776
|
_executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
|
|
5777
|
+
_handleHookDetachedNode(currentNode, root);
|
|
4694
5778
|
};
|
|
4695
|
-
const
|
|
5779
|
+
const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {
|
|
4696
5780
|
let shadowNode = null;
|
|
4697
5781
|
const shadowIterator = _createNodeIterator(fragment);
|
|
4698
5782
|
_executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);
|
|
4699
5783
|
while (shadowNode = shadowIterator.nextNode()) {
|
|
4700
5784
|
_executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
|
|
4701
|
-
_sanitizeElements(shadowNode);
|
|
4702
|
-
_sanitizeAttributes(shadowNode);
|
|
4703
|
-
if (shadowNode.content
|
|
5785
|
+
_sanitizeElements(shadowNode, fragment);
|
|
5786
|
+
_sanitizeAttributes(shadowNode, fragment);
|
|
5787
|
+
if (_isDocumentFragment(shadowNode.content))
|
|
4704
5788
|
_sanitizeShadowDOM2(shadowNode.content);
|
|
5789
|
+
if (_readNodeType(shadowNode) === NODE_TYPE.element) {
|
|
5790
|
+
const innerSr = getShadowRoot(shadowNode);
|
|
5791
|
+
if (_isDocumentFragment(innerSr)) {
|
|
5792
|
+
_sanitizeAttachedShadowRoots(innerSr);
|
|
5793
|
+
_sanitizeShadowDOM2(innerSr);
|
|
5794
|
+
}
|
|
4705
5795
|
}
|
|
4706
5796
|
}
|
|
5797
|
+
if (SAFE_FOR_TEMPLATES)
|
|
5798
|
+
_scrubOwnCharacterData(fragment);
|
|
4707
5799
|
_executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
|
|
4708
5800
|
};
|
|
5801
|
+
const _sanitizeAttachedShadowRoots = function _sanitizeAttachedShadowRoots2(root) {
|
|
5802
|
+
const stack = [{
|
|
5803
|
+
node: root,
|
|
5804
|
+
shadow: null
|
|
5805
|
+
}];
|
|
5806
|
+
while (stack.length > 0) {
|
|
5807
|
+
const item = stack.pop();
|
|
5808
|
+
if (item.shadow) {
|
|
5809
|
+
_sanitizeShadowDOM2(item.shadow);
|
|
5810
|
+
continue;
|
|
5811
|
+
}
|
|
5812
|
+
const node2 = item.node;
|
|
5813
|
+
const isElement = _readNodeType(node2) === NODE_TYPE.element;
|
|
5814
|
+
const childNodes = getChildNodes(node2);
|
|
5815
|
+
if (childNodes)
|
|
5816
|
+
for (let i2 = childNodes.length - 1; i2 >= 0; --i2)
|
|
5817
|
+
stack.push({
|
|
5818
|
+
node: childNodes[i2],
|
|
5819
|
+
shadow: null
|
|
5820
|
+
});
|
|
5821
|
+
if (isElement) {
|
|
5822
|
+
const rootName = getNodeName ? getNodeName(node2) : null;
|
|
5823
|
+
if (typeof rootName === "string" && transformCaseFunc(rootName) === "template") {
|
|
5824
|
+
const content = node2.content;
|
|
5825
|
+
if (_isDocumentFragment(content))
|
|
5826
|
+
stack.push({
|
|
5827
|
+
node: content,
|
|
5828
|
+
shadow: null
|
|
5829
|
+
});
|
|
5830
|
+
}
|
|
5831
|
+
}
|
|
5832
|
+
if (isElement) {
|
|
5833
|
+
const sr = getShadowRoot(node2);
|
|
5834
|
+
if (_isDocumentFragment(sr))
|
|
5835
|
+
stack.push({
|
|
5836
|
+
node: null,
|
|
5837
|
+
shadow: sr
|
|
5838
|
+
}, {
|
|
5839
|
+
node: sr,
|
|
5840
|
+
shadow: null
|
|
5841
|
+
});
|
|
5842
|
+
}
|
|
5843
|
+
}
|
|
5844
|
+
};
|
|
4709
5845
|
DOMPurify.sanitize = function(dirty) {
|
|
4710
5846
|
let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
4711
5847
|
let body = null;
|
|
@@ -4713,118 +5849,146 @@ function createDOMPurify() {
|
|
|
4713
5849
|
let currentNode = null;
|
|
4714
5850
|
let returnNode = null;
|
|
4715
5851
|
IS_EMPTY_INPUT = !dirty;
|
|
4716
|
-
if (IS_EMPTY_INPUT)
|
|
5852
|
+
if (IS_EMPTY_INPUT)
|
|
4717
5853
|
dirty = "<!-->";
|
|
4718
|
-
}
|
|
4719
5854
|
if (typeof dirty !== "string" && !_isNode(dirty)) {
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
throw typeErrorCreate("dirty is not a string, aborting");
|
|
4724
|
-
}
|
|
4725
|
-
} else {
|
|
4726
|
-
throw typeErrorCreate("toString is not a function");
|
|
4727
|
-
}
|
|
5855
|
+
dirty = stringifyValue(dirty);
|
|
5856
|
+
if (typeof dirty !== "string")
|
|
5857
|
+
throw typeErrorCreate("dirty is not a string, aborting");
|
|
4728
5858
|
}
|
|
4729
|
-
if (!DOMPurify.isSupported)
|
|
5859
|
+
if (!DOMPurify.isSupported)
|
|
4730
5860
|
return dirty;
|
|
4731
|
-
|
|
4732
|
-
|
|
5861
|
+
if (SET_CONFIG) {
|
|
5862
|
+
ALLOWED_TAGS = SET_CONFIG_ALLOWED_TAGS;
|
|
5863
|
+
ALLOWED_ATTR = SET_CONFIG_ALLOWED_ATTR;
|
|
5864
|
+
} else
|
|
4733
5865
|
_parseConfig(cfg);
|
|
4734
|
-
|
|
5866
|
+
if (hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0)
|
|
5867
|
+
ALLOWED_TAGS = clone(ALLOWED_TAGS);
|
|
5868
|
+
if (hooks.uponSanitizeAttribute.length > 0)
|
|
5869
|
+
ALLOWED_ATTR = clone(ALLOWED_ATTR);
|
|
4735
5870
|
DOMPurify.removed = [];
|
|
4736
|
-
|
|
4737
|
-
|
|
4738
|
-
|
|
4739
|
-
if (
|
|
4740
|
-
|
|
4741
|
-
|
|
5871
|
+
const inPlace = IN_PLACE && typeof dirty !== "string" && _isNode(dirty);
|
|
5872
|
+
let inPlaceNodes = [];
|
|
5873
|
+
const outerVisited = IN_PLACE_VISITED;
|
|
5874
|
+
if (inPlace) {
|
|
5875
|
+
_neutralizePatchLinkage(dirty);
|
|
5876
|
+
const nn = _readNodeName(dirty);
|
|
5877
|
+
if (typeof nn === "string") {
|
|
5878
|
+
const tagName = transformCaseFunc(nn);
|
|
4742
5879
|
if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
|
|
5880
|
+
_neutralizeRoot(dirty);
|
|
4743
5881
|
throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
|
|
4744
5882
|
}
|
|
4745
5883
|
}
|
|
4746
|
-
|
|
5884
|
+
if (_isClobbered(dirty)) {
|
|
5885
|
+
_neutralizeRoot(dirty);
|
|
5886
|
+
throw typeErrorCreate("root node is clobbered and cannot be sanitized in-place");
|
|
5887
|
+
}
|
|
5888
|
+
inPlaceNodes = _collectLiveNodes(dirty);
|
|
5889
|
+
IN_PLACE_VISITED = setCreate();
|
|
5890
|
+
} else if (_isNode(dirty)) {
|
|
4747
5891
|
body = _initDocument("<!---->");
|
|
4748
5892
|
importedNode = body.ownerDocument.importNode(dirty, true);
|
|
4749
|
-
if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === "BODY")
|
|
5893
|
+
if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === "BODY")
|
|
4750
5894
|
body = importedNode;
|
|
4751
|
-
|
|
5895
|
+
else if (importedNode.nodeName === "HTML")
|
|
4752
5896
|
body = importedNode;
|
|
4753
|
-
|
|
5897
|
+
else
|
|
4754
5898
|
body.appendChild(importedNode);
|
|
4755
|
-
|
|
5899
|
+
_sanitizeAttachedShadowRoots(body);
|
|
4756
5900
|
} else {
|
|
4757
|
-
if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf("<") === -1)
|
|
4758
|
-
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ?
|
|
4759
|
-
}
|
|
5901
|
+
if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf("<") === -1)
|
|
5902
|
+
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;
|
|
4760
5903
|
body = _initDocument(dirty);
|
|
4761
|
-
if (!body)
|
|
5904
|
+
if (!body)
|
|
4762
5905
|
return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
|
|
4763
|
-
}
|
|
4764
5906
|
}
|
|
4765
|
-
if (body && FORCE_BODY)
|
|
5907
|
+
if (body && FORCE_BODY)
|
|
4766
5908
|
_forceRemove(body.firstChild);
|
|
4767
|
-
|
|
4768
|
-
|
|
4769
|
-
|
|
4770
|
-
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
5909
|
+
const walkRoot = inPlace ? dirty : body;
|
|
5910
|
+
try {
|
|
5911
|
+
if (inPlace)
|
|
5912
|
+
_sanitizeAttachedShadowRoots(dirty);
|
|
5913
|
+
const nodeIterator = _createNodeIterator(walkRoot);
|
|
5914
|
+
while (currentNode = nodeIterator.nextNode()) {
|
|
5915
|
+
_sanitizeElements(currentNode, walkRoot);
|
|
5916
|
+
_sanitizeAttributes(currentNode, walkRoot);
|
|
5917
|
+
if (_isDocumentFragment(currentNode.content))
|
|
5918
|
+
_sanitizeShadowDOM2(currentNode.content);
|
|
4774
5919
|
}
|
|
4775
|
-
|
|
4776
|
-
|
|
5920
|
+
if (inPlace)
|
|
5921
|
+
_sanitizeUnvisitedNodes(dirty, inPlaceNodes);
|
|
5922
|
+
} catch (error) {
|
|
5923
|
+
if (inPlace) {
|
|
5924
|
+
_neutralizeRoot(dirty);
|
|
5925
|
+
_neutralizeDiscarded(dirty, inPlaceNodes);
|
|
5926
|
+
}
|
|
5927
|
+
throw error;
|
|
5928
|
+
} finally {
|
|
5929
|
+
IN_PLACE_VISITED = outerVisited;
|
|
5930
|
+
}
|
|
5931
|
+
if (inPlace) {
|
|
5932
|
+
if (_neutralizeDiscarded(dirty, inPlaceNodes))
|
|
5933
|
+
throw typeErrorCreate("a node selected for removal could not be safely returned; refusing to sanitize in place");
|
|
5934
|
+
if (SAFE_FOR_TEMPLATES)
|
|
5935
|
+
_scrubTemplateExpressions2(dirty);
|
|
4777
5936
|
return dirty;
|
|
4778
5937
|
}
|
|
4779
5938
|
if (RETURN_DOM) {
|
|
5939
|
+
if (SAFE_FOR_TEMPLATES)
|
|
5940
|
+
_scrubTemplateExpressions2(body);
|
|
4780
5941
|
if (RETURN_DOM_FRAGMENT) {
|
|
4781
5942
|
returnNode = createDocumentFragment.call(body.ownerDocument);
|
|
4782
|
-
while (body.firstChild)
|
|
5943
|
+
while (body.firstChild)
|
|
4783
5944
|
returnNode.appendChild(body.firstChild);
|
|
4784
|
-
|
|
4785
|
-
} else {
|
|
5945
|
+
} else
|
|
4786
5946
|
returnNode = body;
|
|
4787
|
-
|
|
4788
|
-
if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {
|
|
5947
|
+
if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode)
|
|
4789
5948
|
returnNode = importNode.call(originalDocument, returnNode, true);
|
|
4790
|
-
}
|
|
4791
5949
|
return returnNode;
|
|
4792
5950
|
}
|
|
4793
5951
|
let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
|
|
4794
|
-
if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name))
|
|
5952
|
+
if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name))
|
|
4795
5953
|
serializedHTML = "<!DOCTYPE " + body.ownerDocument.doctype.name + ">\n" + serializedHTML;
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
serializedHTML = stringReplace(serializedHTML, expr, " ");
|
|
4800
|
-
});
|
|
4801
|
-
}
|
|
4802
|
-
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
|
|
5954
|
+
if (SAFE_FOR_TEMPLATES)
|
|
5955
|
+
serializedHTML = _stripTemplateExpressions(serializedHTML);
|
|
5956
|
+
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;
|
|
4803
5957
|
};
|
|
4804
5958
|
DOMPurify.setConfig = function() {
|
|
4805
5959
|
let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
|
|
4806
5960
|
_parseConfig(cfg);
|
|
4807
5961
|
SET_CONFIG = true;
|
|
5962
|
+
SET_CONFIG_ALLOWED_TAGS = ALLOWED_TAGS;
|
|
5963
|
+
SET_CONFIG_ALLOWED_ATTR = ALLOWED_ATTR;
|
|
4808
5964
|
};
|
|
4809
5965
|
DOMPurify.clearConfig = function() {
|
|
4810
5966
|
CONFIG = null;
|
|
4811
5967
|
SET_CONFIG = false;
|
|
5968
|
+
SET_CONFIG_ALLOWED_TAGS = null;
|
|
5969
|
+
SET_CONFIG_ALLOWED_ATTR = null;
|
|
5970
|
+
trustedTypesPolicy = defaultTrustedTypesPolicy;
|
|
5971
|
+
emptyHTML = "";
|
|
4812
5972
|
};
|
|
4813
5973
|
DOMPurify.isValidAttribute = function(tag, attr, value) {
|
|
4814
|
-
if (!CONFIG)
|
|
5974
|
+
if (!CONFIG)
|
|
4815
5975
|
_parseConfig({});
|
|
4816
|
-
}
|
|
4817
5976
|
const lcTag = transformCaseFunc(tag);
|
|
4818
5977
|
const lcName = transformCaseFunc(attr);
|
|
5978
|
+
if (typeof value === "string" && (_isUnsafeAttributeValue(attr, value) || !ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(SELF_CLOSING_TAG, value)))
|
|
5979
|
+
return false;
|
|
4819
5980
|
return _isValidAttribute(lcTag, lcName, value);
|
|
4820
5981
|
};
|
|
4821
5982
|
DOMPurify.addHook = function(entryPoint, hookFunction) {
|
|
4822
|
-
if (typeof hookFunction !== "function")
|
|
5983
|
+
if (typeof hookFunction !== "function")
|
|
5984
|
+
return;
|
|
5985
|
+
if (!objectHasOwnProperty(hooks, entryPoint))
|
|
4823
5986
|
return;
|
|
4824
|
-
}
|
|
4825
5987
|
arrayPush(hooks[entryPoint], hookFunction);
|
|
4826
5988
|
};
|
|
4827
5989
|
DOMPurify.removeHook = function(entryPoint, hookFunction) {
|
|
5990
|
+
if (!objectHasOwnProperty(hooks, entryPoint))
|
|
5991
|
+
return;
|
|
4828
5992
|
if (hookFunction !== void 0) {
|
|
4829
5993
|
const index2 = arrayLastIndexOf(hooks[entryPoint], hookFunction);
|
|
4830
5994
|
return index2 === -1 ? void 0 : arraySplice(hooks[entryPoint], index2, 1)[0];
|
|
@@ -4832,6 +5996,8 @@ function createDOMPurify() {
|
|
|
4832
5996
|
return arrayPop(hooks[entryPoint]);
|
|
4833
5997
|
};
|
|
4834
5998
|
DOMPurify.removeHooks = function(entryPoint) {
|
|
5999
|
+
if (!objectHasOwnProperty(hooks, entryPoint))
|
|
6000
|
+
return;
|
|
4835
6001
|
hooks[entryPoint] = [];
|
|
4836
6002
|
};
|
|
4837
6003
|
DOMPurify.removeAllHooks = function() {
|
|
@@ -4839,7 +6005,7 @@ function createDOMPurify() {
|
|
|
4839
6005
|
};
|
|
4840
6006
|
return DOMPurify;
|
|
4841
6007
|
}
|
|
4842
|
-
var
|
|
6008
|
+
var purify_default = createDOMPurify();
|
|
4843
6009
|
var lib$3 = {};
|
|
4844
6010
|
var htmlToDom = {};
|
|
4845
6011
|
var domparser$1 = {};
|
|
@@ -5448,11 +6614,12 @@ var constants = {};
|
|
|
5448
6614
|
}, {});
|
|
5449
6615
|
exports.CARRIAGE_RETURN = "\r";
|
|
5450
6616
|
exports.CARRIAGE_RETURN_REGEX = new RegExp(exports.CARRIAGE_RETURN, "g");
|
|
5451
|
-
exports.CARRIAGE_RETURN_PLACEHOLDER = "__HTML_DOM_PARSER_CARRIAGE_RETURN_PLACEHOLDER_".concat(Date.now(), "__");
|
|
6617
|
+
exports.CARRIAGE_RETURN_PLACEHOLDER = "__HTML_DOM_PARSER_CARRIAGE_RETURN_PLACEHOLDER_".concat(Date.now().toString(), "__");
|
|
5452
6618
|
exports.CARRIAGE_RETURN_PLACEHOLDER_REGEX = new RegExp(exports.CARRIAGE_RETURN_PLACEHOLDER, "g");
|
|
5453
6619
|
})(constants);
|
|
5454
6620
|
Object.defineProperty(utilities$2, "__esModule", { value: true });
|
|
5455
6621
|
utilities$2.formatAttributes = formatAttributes;
|
|
6622
|
+
utilities$2.hasOpenTag = hasOpenTag;
|
|
5456
6623
|
utilities$2.escapeSpecialCharacters = escapeSpecialCharacters;
|
|
5457
6624
|
utilities$2.revertEscapedCharacters = revertEscapedCharacters;
|
|
5458
6625
|
utilities$2.formatDOM = formatDOM;
|
|
@@ -5479,6 +6646,15 @@ function formatTagName(tagName) {
|
|
|
5479
6646
|
}
|
|
5480
6647
|
return tagName;
|
|
5481
6648
|
}
|
|
6649
|
+
function hasOpenTag(html2, tagName) {
|
|
6650
|
+
var openTag = "<" + tagName;
|
|
6651
|
+
var index2 = html2.toLowerCase().indexOf(openTag);
|
|
6652
|
+
if (index2 === -1) {
|
|
6653
|
+
return false;
|
|
6654
|
+
}
|
|
6655
|
+
var char = html2[index2 + openTag.length];
|
|
6656
|
+
return char === ">" || char === " " || char === " " || char === "\n" || char === "\r" || char === "/";
|
|
6657
|
+
}
|
|
5482
6658
|
function escapeSpecialCharacters(html2) {
|
|
5483
6659
|
return html2.replace(constants_1.CARRIAGE_RETURN_REGEX, constants_1.CARRIAGE_RETURN_PLACEHOLDER);
|
|
5484
6660
|
}
|
|
@@ -5486,6 +6662,7 @@ function revertEscapedCharacters(text2) {
|
|
|
5486
6662
|
return text2.replace(constants_1.CARRIAGE_RETURN_PLACEHOLDER_REGEX, constants_1.CARRIAGE_RETURN);
|
|
5487
6663
|
}
|
|
5488
6664
|
function formatDOM(nodes, parent, directive) {
|
|
6665
|
+
var _a, _b, _c, _d;
|
|
5489
6666
|
if (parent === void 0) {
|
|
5490
6667
|
parent = null;
|
|
5491
6668
|
}
|
|
@@ -5506,15 +6683,15 @@ function formatDOM(nodes, parent, directive) {
|
|
|
5506
6683
|
break;
|
|
5507
6684
|
}
|
|
5508
6685
|
case 3:
|
|
5509
|
-
current = new domhandler_1.Text(revertEscapedCharacters(node2.nodeValue));
|
|
6686
|
+
current = new domhandler_1.Text(revertEscapedCharacters((_a = node2.nodeValue) !== null && _a !== void 0 ? _a : ""));
|
|
5510
6687
|
break;
|
|
5511
6688
|
case 8:
|
|
5512
|
-
current = new domhandler_1.Comment(node2.nodeValue);
|
|
6689
|
+
current = new domhandler_1.Comment((_b = node2.nodeValue) !== null && _b !== void 0 ? _b : "");
|
|
5513
6690
|
break;
|
|
5514
6691
|
default:
|
|
5515
6692
|
continue;
|
|
5516
6693
|
}
|
|
5517
|
-
var prev = domNodes[index2 - 1]
|
|
6694
|
+
var prev = (_c = domNodes[index2 - 1]) !== null && _c !== void 0 ? _c : null;
|
|
5518
6695
|
if (prev) {
|
|
5519
6696
|
prev.next = current;
|
|
5520
6697
|
}
|
|
@@ -5525,7 +6702,7 @@ function formatDOM(nodes, parent, directive) {
|
|
|
5525
6702
|
}
|
|
5526
6703
|
if (directive) {
|
|
5527
6704
|
current = new domhandler_1.ProcessingInstruction(directive.substring(0, directive.indexOf(" ")).toLowerCase(), directive);
|
|
5528
|
-
current.next = domNodes[0]
|
|
6705
|
+
current.next = (_d = domNodes[0]) !== null && _d !== void 0 ? _d : null;
|
|
5529
6706
|
current.parent = parent;
|
|
5530
6707
|
domNodes.unshift(current);
|
|
5531
6708
|
if (domNodes[1]) {
|
|
@@ -5541,8 +6718,6 @@ var HTML = "html";
|
|
|
5541
6718
|
var HEAD = "head";
|
|
5542
6719
|
var BODY = "body";
|
|
5543
6720
|
var FIRST_TAG_REGEX = /<([a-zA-Z]+[0-9]?)/;
|
|
5544
|
-
var HEAD_TAG_REGEX = /<head[^]*>/i;
|
|
5545
|
-
var BODY_TAG_REGEX = /<body[^]*>/i;
|
|
5546
6721
|
var parseFromDocument = function(html2, tagName) {
|
|
5547
6722
|
throw new Error("This browser does not support `document.implementation.createHTMLDocument`");
|
|
5548
6723
|
};
|
|
@@ -5583,29 +6758,32 @@ if (template && template.content) {
|
|
|
5583
6758
|
return template.content.childNodes;
|
|
5584
6759
|
};
|
|
5585
6760
|
}
|
|
6761
|
+
var createNodeList = function() {
|
|
6762
|
+
return document.createDocumentFragment().childNodes;
|
|
6763
|
+
};
|
|
5586
6764
|
function domparser(html2) {
|
|
5587
|
-
var _a, _b;
|
|
6765
|
+
var _a, _b, _c, _d, _e, _f;
|
|
5588
6766
|
html2 = (0, utilities_1$4.escapeSpecialCharacters)(html2);
|
|
5589
|
-
var match =
|
|
5590
|
-
var firstTagName = match
|
|
6767
|
+
var match = FIRST_TAG_REGEX.exec(html2);
|
|
6768
|
+
var firstTagName = (_a = match === null || match === void 0 ? void 0 : match[1]) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
5591
6769
|
switch (firstTagName) {
|
|
5592
6770
|
case HTML: {
|
|
5593
6771
|
var doc = parseFromString(html2);
|
|
5594
|
-
if (!
|
|
6772
|
+
if (!(0, utilities_1$4.hasOpenTag)(html2, HEAD)) {
|
|
5595
6773
|
var element = doc.querySelector(HEAD);
|
|
5596
|
-
(
|
|
6774
|
+
(_b = element === null || element === void 0 ? void 0 : element.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(element);
|
|
5597
6775
|
}
|
|
5598
|
-
if (!
|
|
6776
|
+
if (!(0, utilities_1$4.hasOpenTag)(html2, BODY)) {
|
|
5599
6777
|
var element = doc.querySelector(BODY);
|
|
5600
|
-
(
|
|
6778
|
+
(_c = element === null || element === void 0 ? void 0 : element.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(element);
|
|
5601
6779
|
}
|
|
5602
6780
|
return doc.querySelectorAll(HTML);
|
|
5603
6781
|
}
|
|
5604
6782
|
case HEAD:
|
|
5605
6783
|
case BODY: {
|
|
5606
6784
|
var elements = parseFromDocument(html2).querySelectorAll(firstTagName);
|
|
5607
|
-
if (
|
|
5608
|
-
return elements[0].parentNode.childNodes;
|
|
6785
|
+
if ((0, utilities_1$4.hasOpenTag)(html2, BODY) && (0, utilities_1$4.hasOpenTag)(html2, HEAD)) {
|
|
6786
|
+
return (_e = (_d = elements[0].parentNode) === null || _d === void 0 ? void 0 : _d.childNodes) !== null && _e !== void 0 ? _e : createNodeList();
|
|
5609
6787
|
}
|
|
5610
6788
|
return elements;
|
|
5611
6789
|
}
|
|
@@ -5614,7 +6792,7 @@ function domparser(html2) {
|
|
|
5614
6792
|
return parseFromTemplate(html2);
|
|
5615
6793
|
}
|
|
5616
6794
|
var element = parseFromDocument(html2, BODY).querySelector(BODY);
|
|
5617
|
-
return element.childNodes;
|
|
6795
|
+
return (_f = element === null || element === void 0 ? void 0 : element.childNodes) !== null && _f !== void 0 ? _f : createNodeList();
|
|
5618
6796
|
}
|
|
5619
6797
|
}
|
|
5620
6798
|
}
|
|
@@ -5633,7 +6811,7 @@ function HTMLDOMParser(html2) {
|
|
|
5633
6811
|
if (!html2) {
|
|
5634
6812
|
return [];
|
|
5635
6813
|
}
|
|
5636
|
-
var match =
|
|
6814
|
+
var match = DIRECTIVE_REGEX.exec(html2);
|
|
5637
6815
|
var directive = match ? match[1] : void 0;
|
|
5638
6816
|
return (0, utilities_1$3.formatDOM)((0, domparser_1.default)(html2), null, directive);
|
|
5639
6817
|
}
|
|
@@ -6811,7 +7989,7 @@ function attributesToProps(attributes, nodeName) {
|
|
|
6811
7989
|
propName = getPropName("default" + attributeNameLowerCased);
|
|
6812
7990
|
}
|
|
6813
7991
|
props[propName] = attributeValue;
|
|
6814
|
-
switch (propertyInfo
|
|
7992
|
+
switch (propertyInfo === null || propertyInfo === void 0 ? void 0 : propertyInfo.type) {
|
|
6815
7993
|
case react_property_1.BOOLEAN:
|
|
6816
7994
|
props[propName] = true;
|
|
6817
7995
|
break;
|
|
@@ -6848,22 +8026,23 @@ var React = {
|
|
|
6848
8026
|
isValidElement: react_1.isValidElement
|
|
6849
8027
|
};
|
|
6850
8028
|
function domToReact(nodes, options) {
|
|
8029
|
+
var _a, _b, _c, _d, _e;
|
|
6851
8030
|
if (options === void 0) {
|
|
6852
8031
|
options = {};
|
|
6853
8032
|
}
|
|
6854
8033
|
var reactElements = [];
|
|
6855
8034
|
var hasReplace = typeof options.replace === "function";
|
|
6856
|
-
var transform = options.transform
|
|
6857
|
-
var
|
|
8035
|
+
var transform = (_a = options.transform) !== null && _a !== void 0 ? _a : utilities_1.returnFirstArg;
|
|
8036
|
+
var _f = (_b = options.library) !== null && _b !== void 0 ? _b : React, cloneElement = _f.cloneElement, createElement = _f.createElement, isValidElement = _f.isValidElement;
|
|
6858
8037
|
var nodesLength = nodes.length;
|
|
6859
8038
|
for (var index2 = 0; index2 < nodesLength; index2++) {
|
|
6860
8039
|
var node2 = nodes[index2];
|
|
6861
8040
|
if (hasReplace) {
|
|
6862
|
-
var replaceElement = options.replace(node2, index2);
|
|
8041
|
+
var replaceElement = (_c = options.replace) === null || _c === void 0 ? void 0 : _c.call(options, node2, index2);
|
|
6863
8042
|
if (isValidElement(replaceElement)) {
|
|
6864
8043
|
if (nodesLength > 1) {
|
|
6865
8044
|
replaceElement = cloneElement(replaceElement, {
|
|
6866
|
-
key: replaceElement.key
|
|
8045
|
+
key: (_d = replaceElement.key) !== null && _d !== void 0 ? _d : index2
|
|
6867
8046
|
});
|
|
6868
8047
|
}
|
|
6869
8048
|
reactElements.push(transform(replaceElement, node2, index2));
|
|
@@ -6902,7 +8081,7 @@ function domToReact(nodes, options) {
|
|
|
6902
8081
|
case "tag":
|
|
6903
8082
|
if (node2.name === "textarea" && node2.children[0]) {
|
|
6904
8083
|
props.defaultValue = node2.children[0].data;
|
|
6905
|
-
} else if (node2.children
|
|
8084
|
+
} else if ((_e = node2.children) === null || _e === void 0 ? void 0 : _e.length) {
|
|
6906
8085
|
children = domToReact(node2.children, options);
|
|
6907
8086
|
}
|
|
6908
8087
|
break;
|
|
@@ -6947,13 +8126,14 @@ function skipAttributesToProps(node2) {
|
|
|
6947
8126
|
} });
|
|
6948
8127
|
var domParserOptions = { lowerCaseAttributeNames: false };
|
|
6949
8128
|
function HTMLReactParser2(html2, options) {
|
|
8129
|
+
var _a;
|
|
6950
8130
|
if (typeof html2 !== "string") {
|
|
6951
8131
|
throw new TypeError("First argument must be a string");
|
|
6952
8132
|
}
|
|
6953
8133
|
if (!html2) {
|
|
6954
8134
|
return [];
|
|
6955
8135
|
}
|
|
6956
|
-
return (0, dom_to_react_1.default)((0, html_dom_parser_1.default)(html2, (options === null || options === void 0 ? void 0 : options.htmlparser2)
|
|
8136
|
+
return (0, dom_to_react_1.default)((0, html_dom_parser_1.default)(html2, (_a = options === null || options === void 0 ? void 0 : options.htmlparser2) !== null && _a !== void 0 ? _a : domParserOptions), options);
|
|
6957
8137
|
}
|
|
6958
8138
|
})(lib$3);
|
|
6959
8139
|
var HTMLReactParser = /* @__PURE__ */ getDefaultExportFromCjs(lib$3);
|
|
@@ -7027,7 +8207,7 @@ function Alert({
|
|
|
7027
8207
|
if (buttonText) {
|
|
7028
8208
|
buttonType = buttonLink ? "link" : "normal";
|
|
7029
8209
|
}
|
|
7030
|
-
const content = typeof children === "string" ? ReactParser(
|
|
8210
|
+
const content = typeof children === "string" ? ReactParser(purify_default.sanitize(children)) : children;
|
|
7031
8211
|
return /* @__PURE__ */ jsxs(Box, {
|
|
7032
8212
|
className: isFlash ? "flashNotification" : "e_alert",
|
|
7033
8213
|
alignItems: !isMobile ? "center" : "unset",
|
|
@@ -7113,23 +8293,29 @@ function Alert({
|
|
|
7113
8293
|
})]
|
|
7114
8294
|
});
|
|
7115
8295
|
}
|
|
7116
|
-
let e = { data: "" }, t = (t2) =>
|
|
7117
|
-
|
|
8296
|
+
let e = { data: "" }, t = (t2) => {
|
|
8297
|
+
if ("object" == typeof window) {
|
|
8298
|
+
let e2 = (t2 ? t2.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), { innerHTML: " ", id: "_goober" });
|
|
8299
|
+
return e2.nonce = window.__nonce__, e2.parentNode || (t2 || document.head).appendChild(e2), e2.firstChild;
|
|
8300
|
+
}
|
|
8301
|
+
return t2 || e;
|
|
8302
|
+
}, a = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, l = /\/\*[^]*?\*\/| +/g, n$1 = /\n+/g, o = (e2, t2) => {
|
|
8303
|
+
let r = "", a2 = "", l2 = "";
|
|
7118
8304
|
for (let n2 in e2) {
|
|
7119
8305
|
let c2 = e2[n2];
|
|
7120
|
-
"@" == n2[0] ? "i" == n2[1] ? r = n2 + " " + c2 + ";" :
|
|
8306
|
+
"@" == n2[0] ? "i" == n2[1] ? r = n2 + " " + c2 + ";" : a2 += "f" == n2[1] ? o(c2, n2) : n2 + "{" + o(c2, "k" == n2[1] ? "" : t2) + "}" : "object" == typeof c2 ? a2 += o(c2, t2 ? t2.replace(/([^,])+/g, (e3) => n2.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g, (t3) => /&/.test(t3) ? t3.replace(/&/g, e3) : e3 ? e3 + " " + t3 : t3)) : n2) : null != c2 && (n2 = "-" == n2[1] ? n2 : n2.replace(/[A-Z]/g, "-$&").toLowerCase(), l2 += o.p ? o.p(n2, c2) : n2 + ":" + c2 + ";");
|
|
7121
8307
|
}
|
|
7122
|
-
return r + (t2 &&
|
|
7123
|
-
}, c = {},
|
|
8308
|
+
return r + (t2 && l2 ? t2 + "{" + l2 + "}" : l2) + a2;
|
|
8309
|
+
}, c = {}, i = (e2) => {
|
|
7124
8310
|
if ("object" == typeof e2) {
|
|
7125
8311
|
let t2 = "";
|
|
7126
8312
|
for (let r in e2)
|
|
7127
|
-
t2 += r +
|
|
8313
|
+
t2 += r + i(e2[r]);
|
|
7128
8314
|
return t2;
|
|
7129
8315
|
}
|
|
7130
8316
|
return e2;
|
|
7131
|
-
},
|
|
7132
|
-
let u2 =
|
|
8317
|
+
}, s = (e2, t2, r, s2, p2) => {
|
|
8318
|
+
let u2 = i(e2), d2 = c[u2] || (c[u2] = ((e3) => {
|
|
7133
8319
|
let t3 = 0, r2 = 11;
|
|
7134
8320
|
for (; t3 < e3.length; )
|
|
7135
8321
|
r2 = 101 * r2 + e3.charCodeAt(t3++) >>> 0;
|
|
@@ -7138,45 +8324,45 @@ let e = { data: "" }, t = (t2) => "object" == typeof window ? ((t2 ? t2.querySel
|
|
|
7138
8324
|
if (!c[d2]) {
|
|
7139
8325
|
let t3 = u2 !== e2 ? e2 : ((e3) => {
|
|
7140
8326
|
let t4, r2, o2 = [{}];
|
|
7141
|
-
for (; t4 =
|
|
8327
|
+
for (; t4 = a.exec(e3.replace(l, "")); )
|
|
7142
8328
|
t4[4] ? o2.shift() : t4[3] ? (r2 = t4[3].replace(n$1, " ").trim(), o2.unshift(o2[0][r2] = o2[0][r2] || {})) : o2[0][t4[1]] = t4[2].replace(n$1, " ").trim();
|
|
7143
8329
|
return o2[0];
|
|
7144
8330
|
})(e2);
|
|
7145
8331
|
c[d2] = o(p2 ? { ["@keyframes " + d2]: t3 } : t3, r ? "" : "." + d2);
|
|
7146
8332
|
}
|
|
7147
|
-
let f2 = r && c.g
|
|
7148
|
-
return r && (c.g = c[d2]), ((e3, t3, r2,
|
|
7149
|
-
|
|
7150
|
-
})(c[d2], t2,
|
|
7151
|
-
}, p = (e2, t2, r) => e2.reduce((e3,
|
|
7152
|
-
let n2 = t2[
|
|
8333
|
+
let f2 = r && c.g;
|
|
8334
|
+
return r && (c.g = c[d2]), ((e3, t3, r2, a2) => {
|
|
8335
|
+
a2 ? t3.data = t3.data.replace(a2, e3) : -1 === t3.data.indexOf(e3) && (t3.data = r2 ? e3 + t3.data : t3.data + e3);
|
|
8336
|
+
})(c[d2], t2, s2, f2), d2;
|
|
8337
|
+
}, p = (e2, t2, r) => e2.reduce((e3, a2, l2) => {
|
|
8338
|
+
let n2 = t2[l2];
|
|
7153
8339
|
if (n2 && n2.call) {
|
|
7154
8340
|
let e4 = n2(r), t3 = e4 && e4.props && e4.props.className || /^go/.test(e4) && e4;
|
|
7155
8341
|
n2 = t3 ? "." + t3 : e4 && "object" == typeof e4 ? e4.props ? "" : o(e4, "") : false === e4 ? "" : e4;
|
|
7156
8342
|
}
|
|
7157
|
-
return e3 +
|
|
8343
|
+
return e3 + a2 + (null == n2 ? "" : n2);
|
|
7158
8344
|
}, "");
|
|
7159
8345
|
function u$1(e2) {
|
|
7160
|
-
let r = this || {},
|
|
7161
|
-
return
|
|
8346
|
+
let r = this || {}, a2 = e2.call ? e2(r.p) : e2;
|
|
8347
|
+
return s(a2.unshift ? a2.raw ? p(a2, [].slice.call(arguments, 1), r.p) : a2.reduce((e3, t2) => Object.assign(e3, t2 && t2.call ? t2(r.p) : t2), {}) : a2, t(r.target), r.g, r.o, r.k);
|
|
7162
8348
|
}
|
|
7163
8349
|
let d, f, g;
|
|
7164
8350
|
u$1.bind({ g: 1 });
|
|
7165
8351
|
let h$1 = u$1.bind({ k: 1 });
|
|
7166
|
-
function m(e2, t2, r,
|
|
7167
|
-
o.p = t2, d = e2, f = r, g =
|
|
8352
|
+
function m(e2, t2, r, a2) {
|
|
8353
|
+
o.p = t2, d = e2, f = r, g = a2;
|
|
7168
8354
|
}
|
|
7169
|
-
function
|
|
8355
|
+
function w$1(e2, t2) {
|
|
7170
8356
|
let r = this || {};
|
|
7171
8357
|
return function() {
|
|
7172
|
-
let
|
|
7173
|
-
function
|
|
7174
|
-
let c2 = Object.assign({}, n2),
|
|
7175
|
-
r.p = Object.assign({ theme: f && f() }, c2), r.o = /
|
|
7176
|
-
let
|
|
7177
|
-
return e2[0] && (
|
|
7178
|
-
}
|
|
7179
|
-
return t2 ? t2(
|
|
8358
|
+
let a2 = arguments;
|
|
8359
|
+
function l2(n2, o2) {
|
|
8360
|
+
let c2 = Object.assign({}, n2), i2 = c2.className || l2.className;
|
|
8361
|
+
r.p = Object.assign({ theme: f && f() }, c2), r.o = /go\d/.test(i2), c2.className = u$1.apply(r, a2) + (i2 ? " " + i2 : ""), t2 && (c2.ref = o2);
|
|
8362
|
+
let s2 = e2;
|
|
8363
|
+
return e2[0] && (s2 = c2.as || e2, delete c2.as), g && s2[0] && g(c2), d(s2, c2);
|
|
8364
|
+
}
|
|
8365
|
+
return t2 ? t2(l2) : l2;
|
|
7180
8366
|
};
|
|
7181
8367
|
}
|
|
7182
8368
|
var W = (e2) => typeof e2 == "function", T = (e2, t2) => W(e2) ? e2(t2) : e2;
|
|
@@ -7315,7 +8501,7 @@ from {
|
|
|
7315
8501
|
to {
|
|
7316
8502
|
transform: scale(1) rotate(90deg);
|
|
7317
8503
|
opacity: 1;
|
|
7318
|
-
}`, _ =
|
|
8504
|
+
}`, _ = w$1("div")`
|
|
7319
8505
|
width: 20px;
|
|
7320
8506
|
opacity: 0;
|
|
7321
8507
|
height: 20px;
|
|
@@ -7356,7 +8542,7 @@ var ne = h$1`
|
|
|
7356
8542
|
to {
|
|
7357
8543
|
transform: rotate(360deg);
|
|
7358
8544
|
}
|
|
7359
|
-
`, V =
|
|
8545
|
+
`, V = w$1("div")`
|
|
7360
8546
|
width: 12px;
|
|
7361
8547
|
height: 12px;
|
|
7362
8548
|
box-sizing: border-box;
|
|
@@ -7388,7 +8574,7 @@ to {
|
|
|
7388
8574
|
100% {
|
|
7389
8575
|
opacity: 1;
|
|
7390
8576
|
height: 10px;
|
|
7391
|
-
}`, w =
|
|
8577
|
+
}`, w = w$1("div")`
|
|
7392
8578
|
width: 20px;
|
|
7393
8579
|
opacity: 0;
|
|
7394
8580
|
height: 20px;
|
|
@@ -7416,9 +8602,9 @@ to {
|
|
|
7416
8602
|
width: 6px;
|
|
7417
8603
|
}
|
|
7418
8604
|
`;
|
|
7419
|
-
var ue =
|
|
8605
|
+
var ue = w$1("div")`
|
|
7420
8606
|
position: absolute;
|
|
7421
|
-
`, le =
|
|
8607
|
+
`, le = w$1("div")`
|
|
7422
8608
|
position: relative;
|
|
7423
8609
|
display: flex;
|
|
7424
8610
|
justify-content: center;
|
|
@@ -7433,7 +8619,7 @@ from {
|
|
|
7433
8619
|
to {
|
|
7434
8620
|
transform: scale(1);
|
|
7435
8621
|
opacity: 1;
|
|
7436
|
-
}`, fe =
|
|
8622
|
+
}`, fe = w$1("div")`
|
|
7437
8623
|
position: relative;
|
|
7438
8624
|
transform: scale(0.6);
|
|
7439
8625
|
opacity: 0.4;
|
|
@@ -7450,7 +8636,7 @@ var ye = (e2) => `
|
|
|
7450
8636
|
`, ge = (e2) => `
|
|
7451
8637
|
0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}
|
|
7452
8638
|
100% {transform: translate3d(0,${e2 * -150}%,-1px) scale(.6); opacity:0;}
|
|
7453
|
-
`, he = "0%{opacity:0;} 100%{opacity:1;}", xe = "0%{opacity:1;} 100%{opacity:0;}", be =
|
|
8639
|
+
`, he = "0%{opacity:0;} 100%{opacity:1;}", xe = "0%{opacity:1;} 100%{opacity:0;}", be = w$1("div")`
|
|
7454
8640
|
display: flex;
|
|
7455
8641
|
align-items: center;
|
|
7456
8642
|
background: #fff;
|
|
@@ -7462,7 +8648,7 @@ var ye = (e2) => `
|
|
|
7462
8648
|
pointer-events: auto;
|
|
7463
8649
|
padding: 8px 10px;
|
|
7464
8650
|
border-radius: 8px;
|
|
7465
|
-
`, Se =
|
|
8651
|
+
`, Se = w$1("div")`
|
|
7466
8652
|
display: flex;
|
|
7467
8653
|
justify-content: center;
|
|
7468
8654
|
margin: 4px 10px;
|
|
@@ -7965,7 +9151,7 @@ const Loading$1 = ({
|
|
|
7965
9151
|
});
|
|
7966
9152
|
};
|
|
7967
9153
|
const sanitizeModalDescription = (description) => {
|
|
7968
|
-
const sanitizedDescription =
|
|
9154
|
+
const sanitizedDescription = purify_default.sanitize(description, {
|
|
7969
9155
|
ADD_ATTR: ["target", "rel"]
|
|
7970
9156
|
});
|
|
7971
9157
|
const parsedDocument = new window.DOMParser().parseFromString(sanitizedDescription, "text/html");
|