PluginProbe
Elementor Website Builder – more than just a page builder / 3.34.0-beta1
Elementor Website Builder – more than just a page builder v3.34.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
← All changes | assets/js/editor-v4-opt-in.js +4070 -3371 4.3.0 → 3.34.0-beta1 View file →
@@ -1,3431 +1,4130 @@
1 -(function(react, react_dom, _elementor_ui, _wordpress_i18n, _elementor_icons, _elementor_ui_DialogHeaderGroup, _elementor_ui_DialogHeader) {
1 +/******/ (() => { // webpackBootstrap
2 +/******/ var __webpack_modules__ = ({
2 3
3 -//#region \0rolldown/runtime.js
4 - var __create = Object.create;
5 - var __defProp = Object.defineProperty;
6 - var __name = (target, value) => __defProp(target, "name", {
7 - value,
8 - configurable: true
9 - });
10 - var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11 - var __getOwnPropNames = Object.getOwnPropertyNames;
12 - var __getProtoOf = Object.getPrototypeOf;
13 - var __hasOwnProp = Object.prototype.hasOwnProperty;
14 - var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
15 - var __copyProps = (to, from, except, desc) => {
16 - if (from && typeof from === "object" || typeof from === "function") {
17 - for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
18 - key = keys[i];
19 - if (!__hasOwnProp.call(to, key) && key !== except) {
20 - __defProp(to, key, {
21 - get: ((k) => from[k]).bind(null, key),
22 - enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23 - });
24 - }
25 - }
26 - }
27 - return to;
28 - };
29 - var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30 - value: mod,
31 - enumerable: true
32 - }) : target, mod));
4 +/***/ "../assets/dev/js/utils/react.js":
5 +/*!***************************************!*\
6 + !*** ../assets/dev/js/utils/react.js ***!
7 + \***************************************/
8 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
33 9
34 -//#endregion
35 -react = __toESM(react);
36 -react_dom = __toESM(react_dom);
37 -_elementor_ui_DialogHeaderGroup = __toESM(_elementor_ui_DialogHeaderGroup);
38 -_elementor_ui_DialogHeader = __toESM(_elementor_ui_DialogHeader);
10 +"use strict";
39 11
40 -//#region node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js
41 -/** @license React v16.13.1
42 - * react-is.development.js
43 - *
44 - * Copyright (c) Facebook, Inc. and its affiliates.
45 - *
46 - * This source code is licensed under the MIT license found in the
47 - * LICENSE file in the root directory of this source tree.
48 - */
49 - var require_react_is_development = /* @__PURE__ */ __commonJSMin(((exports) => {
50 - (function() {
51 - "use strict";
52 - var hasSymbol = typeof Symbol === "function" && Symbol.for;
53 - var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for("react.element") : 60103;
54 - var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for("react.portal") : 60106;
55 - var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for("react.fragment") : 60107;
56 - var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for("react.strict_mode") : 60108;
57 - var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for("react.profiler") : 60114;
58 - var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for("react.provider") : 60109;
59 - var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for("react.context") : 60110;
60 - var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for("react.async_mode") : 60111;
61 - var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for("react.concurrent_mode") : 60111;
62 - var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for("react.forward_ref") : 60112;
63 - var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for("react.suspense") : 60113;
64 - var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for("react.suspense_list") : 60120;
65 - var REACT_MEMO_TYPE = hasSymbol ? Symbol.for("react.memo") : 60115;
66 - var REACT_LAZY_TYPE = hasSymbol ? Symbol.for("react.lazy") : 60116;
67 - var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for("react.block") : 60121;
68 - var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for("react.fundamental") : 60117;
69 - var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for("react.responder") : 60118;
70 - var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for("react.scope") : 60119;
71 - function isValidElementType(type) {
72 - return typeof type === "string" || typeof type === "function" || type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === "object" && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
73 - }
74 - function typeOf(object) {
75 - if (typeof object === "object" && object !== null) {
76 - var $$typeof = object.$$typeof;
77 - switch ($$typeof) {
78 - case REACT_ELEMENT_TYPE:
79 - var type = object.type;
80 - switch (type) {
81 - case REACT_ASYNC_MODE_TYPE:
82 - case REACT_CONCURRENT_MODE_TYPE:
83 - case REACT_FRAGMENT_TYPE:
84 - case REACT_PROFILER_TYPE:
85 - case REACT_STRICT_MODE_TYPE:
86 - case REACT_SUSPENSE_TYPE: return type;
87 - default:
88 - var $$typeofType = type && type.$$typeof;
89 - switch ($$typeofType) {
90 - case REACT_CONTEXT_TYPE:
91 - case REACT_FORWARD_REF_TYPE:
92 - case REACT_LAZY_TYPE:
93 - case REACT_MEMO_TYPE:
94 - case REACT_PROVIDER_TYPE: return $$typeofType;
95 - default: return $$typeof;
96 - }
97 - }
98 - case REACT_PORTAL_TYPE: return $$typeof;
99 - }
100 - }
101 - }
102 - var AsyncMode = REACT_ASYNC_MODE_TYPE;
103 - var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
104 - var ContextConsumer = REACT_CONTEXT_TYPE;
105 - var ContextProvider = REACT_PROVIDER_TYPE;
106 - var Element = REACT_ELEMENT_TYPE;
107 - var ForwardRef = REACT_FORWARD_REF_TYPE;
108 - var Fragment = REACT_FRAGMENT_TYPE;
109 - var Lazy = REACT_LAZY_TYPE;
110 - var Memo = REACT_MEMO_TYPE;
111 - var Portal = REACT_PORTAL_TYPE;
112 - var Profiler = REACT_PROFILER_TYPE;
113 - var StrictMode = REACT_STRICT_MODE_TYPE;
114 - var Suspense = REACT_SUSPENSE_TYPE;
115 - var hasWarnedAboutDeprecatedIsAsyncMode = false;
116 - function isAsyncMode(object) {
117 - if (!hasWarnedAboutDeprecatedIsAsyncMode) {
118 - hasWarnedAboutDeprecatedIsAsyncMode = true;
119 - console["warn"]("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.");
120 - }
121 - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
122 - }
123 - function isConcurrentMode(object) {
124 - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
125 - }
126 - function isContextConsumer(object) {
127 - return typeOf(object) === REACT_CONTEXT_TYPE;
128 - }
129 - function isContextProvider(object) {
130 - return typeOf(object) === REACT_PROVIDER_TYPE;
131 - }
132 - function isElement(object) {
133 - return typeof object === "object" && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
134 - }
135 - function isForwardRef(object) {
136 - return typeOf(object) === REACT_FORWARD_REF_TYPE;
137 - }
138 - function isFragment(object) {
139 - return typeOf(object) === REACT_FRAGMENT_TYPE;
140 - }
141 - function isLazy(object) {
142 - return typeOf(object) === REACT_LAZY_TYPE;
143 - }
144 - function isMemo(object) {
145 - return typeOf(object) === REACT_MEMO_TYPE;
146 - }
147 - function isPortal(object) {
148 - return typeOf(object) === REACT_PORTAL_TYPE;
149 - }
150 - function isProfiler(object) {
151 - return typeOf(object) === REACT_PROFILER_TYPE;
152 - }
153 - function isStrictMode(object) {
154 - return typeOf(object) === REACT_STRICT_MODE_TYPE;
155 - }
156 - function isSuspense(object) {
157 - return typeOf(object) === REACT_SUSPENSE_TYPE;
158 - }
159 - exports.AsyncMode = AsyncMode;
160 - exports.ConcurrentMode = ConcurrentMode;
161 - exports.ContextConsumer = ContextConsumer;
162 - exports.ContextProvider = ContextProvider;
163 - exports.Element = Element;
164 - exports.ForwardRef = ForwardRef;
165 - exports.Fragment = Fragment;
166 - exports.Lazy = Lazy;
167 - exports.Memo = Memo;
168 - exports.Portal = Portal;
169 - exports.Profiler = Profiler;
170 - exports.StrictMode = StrictMode;
171 - exports.Suspense = Suspense;
172 - exports.isAsyncMode = isAsyncMode;
173 - exports.isConcurrentMode = isConcurrentMode;
174 - exports.isContextConsumer = isContextConsumer;
175 - exports.isContextProvider = isContextProvider;
176 - exports.isElement = isElement;
177 - exports.isForwardRef = isForwardRef;
178 - exports.isFragment = isFragment;
179 - exports.isLazy = isLazy;
180 - exports.isMemo = isMemo;
181 - exports.isPortal = isPortal;
182 - exports.isProfiler = isProfiler;
183 - exports.isStrictMode = isStrictMode;
184 - exports.isSuspense = isSuspense;
185 - exports.isValidElementType = isValidElementType;
186 - exports.typeOf = typeOf;
187 - })();
188 - }));
189 12
190 -//#endregion
191 -//#region node_modules/prop-types/node_modules/react-is/index.js
192 - var require_react_is = /* @__PURE__ */ __commonJSMin(((exports, module) => {
193 - module.exports = require_react_is_development();
194 - }));
13 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
14 +Object.defineProperty(exports, "__esModule", ({
15 + value: true
16 +}));
17 +exports["default"] = void 0;
18 +var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
19 +var ReactDOM = _interopRequireWildcard(__webpack_require__(/*! react-dom */ "react-dom"));
20 +var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
21 +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22 +/**
23 + * Support conditional rendering of a React App to the DOM, based on the React version.
24 + * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
25 + *
26 + * @param { React.ReactElement } app The app to render.
27 + * @param { HTMLElement } domElement The DOM element to render the app into.
28 + *
29 + * @return {{ unmount: () => void }} The unmount function.
30 + */
31 +function render(app, domElement) {
32 + var unmountFunction;
33 + try {
34 + var root = (0, _client.createRoot)(domElement);
35 + root.render(app);
36 + unmountFunction = function unmountFunction() {
37 + root.unmount();
38 + };
39 + } catch (e) {
40 + // eslint-disable-next-line react/no-deprecated
41 + ReactDOM.render(app, domElement);
42 + unmountFunction = function unmountFunction() {
43 + // eslint-disable-next-line react/no-deprecated
44 + ReactDOM.unmountComponentAtNode(domElement);
45 + };
46 + }
47 + return {
48 + unmount: unmountFunction
49 + };
50 +}
51 +var _default = exports["default"] = {
52 + render: render
53 +};
195 54
196 -//#endregion
197 -//#region node_modules/object-assign/index.js
198 -/*
199 - object-assign
200 - (c) Sindre Sorhus
201 - @license MIT
202 - */
203 - var require_object_assign = /* @__PURE__ */ __commonJSMin(((exports, module) => {
204 - var getOwnPropertySymbols = Object.getOwnPropertySymbols;
205 - var hasOwnProperty = Object.prototype.hasOwnProperty;
206 - var propIsEnumerable = Object.prototype.propertyIsEnumerable;
207 - function toObject(val) {
208 - if (val === null || val === void 0) throw new TypeError("Object.assign cannot be called with null or undefined");
209 - return Object(val);
210 - }
211 - function shouldUseNative() {
212 - try {
213 - if (!Object.assign) return false;
214 - var test1 = /* @__PURE__ */ new String("abc");
215 - test1[5] = "de";
216 - if (Object.getOwnPropertyNames(test1)[0] === "5") return false;
217 - var test2 = {};
218 - for (var i = 0; i < 10; i++) test2["_" + String.fromCharCode(i)] = i;
219 - if (Object.getOwnPropertyNames(test2).map(function(n) {
220 - return test2[n];
221 - }).join("") !== "0123456789") return false;
222 - var test3 = {};
223 - "abcdefghijklmnopqrst".split("").forEach(function(letter) {
224 - test3[letter] = letter;
225 - });
226 - if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") return false;
227 - return true;
228 - } catch (err) {
229 - return false;
230 - }
231 - }
232 - module.exports = shouldUseNative() ? Object.assign : function(target, source) {
233 - var from;
234 - var to = toObject(target);
235 - var symbols;
236 - for (var s = 1; s < arguments.length; s++) {
237 - from = Object(arguments[s]);
238 - for (var key in from) if (hasOwnProperty.call(from, key)) to[key] = from[key];
239 - if (getOwnPropertySymbols) {
240 - symbols = getOwnPropertySymbols(from);
241 - for (var i = 0; i < symbols.length; i++) if (propIsEnumerable.call(from, symbols[i])) to[symbols[i]] = from[symbols[i]];
242 - }
243 - }
244 - return to;
245 - };
246 - }));
55 +/***/ }),
247 56
248 -//#endregion
249 -//#region node_modules/prop-types/lib/ReactPropTypesSecret.js
250 -/**
251 - * Copyright (c) 2013-present, Facebook, Inc.
252 - *
253 - * This source code is licensed under the MIT license found in the
254 - * LICENSE file in the root directory of this source tree.
255 - */
256 - var require_ReactPropTypesSecret = /* @__PURE__ */ __commonJSMin(((exports, module) => {
257 - var ReactPropTypesSecret = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";
258 - module.exports = ReactPropTypesSecret;
259 - }));
57 +/***/ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-api.js":
58 +/*!********************************************************************!*\
59 + !*** ../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-api.js ***!
60 + \********************************************************************/
61 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
260 62
261 -//#endregion
262 -//#region node_modules/prop-types/lib/has.js
263 - var require_has = /* @__PURE__ */ __commonJSMin(((exports, module) => {
264 - module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
265 - }));
63 +"use strict";
266 64
267 -//#endregion
268 -//#region node_modules/prop-types/checkPropTypes.js
269 -/**
270 - * Copyright (c) 2013-present, Facebook, Inc.
271 - *
272 - * This source code is licensed under the MIT license found in the
273 - * LICENSE file in the root directory of this source tree.
274 - */
275 - var require_checkPropTypes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
276 - var printWarning = function() {};
277 - var ReactPropTypesSecret = require_ReactPropTypesSecret();
278 - var loggedTypeFailures = {};
279 - var has = require_has();
280 - printWarning = function(text) {
281 - var message = "Warning: " + text;
282 - if (typeof console !== "undefined") console.error(message);
283 - try {
284 - throw new Error(message);
285 - } catch (x) {}
286 - };
287 - /**
288 - * Assert that the values match with the type specs.
289 - * Error messages are memorized and will only be shown once.
290 - *
291 - * @param {object} typeSpecs Map of name to a ReactPropType
292 - * @param {object} values Runtime values that need to be type-checked
293 - * @param {string} location e.g. "prop", "context", "child context"
294 - * @param {string} componentName Name of the component for error messages.
295 - * @param {?Function} getStack Returns the component stack.
296 - * @private
297 - */
298 - function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
299 - for (var typeSpecName in typeSpecs) if (has(typeSpecs, typeSpecName)) {
300 - var error;
301 - try {
302 - if (typeof typeSpecs[typeSpecName] !== "function") {
303 - var err = Error((componentName || "React class") + ": " + location + " type `" + typeSpecName + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + typeof typeSpecs[typeSpecName] + "`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");
304 - err.name = "Invariant Violation";
305 - throw err;
306 - }
307 - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
308 - } catch (ex) {
309 - error = ex;
310 - }
311 - if (error && !(error instanceof Error)) printWarning((componentName || "React class") + ": type specification of " + location + " `" + typeSpecName + "` is invalid; the type checker function must return `null` or an `Error` but returned a " + typeof error + ". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).");
312 - if (error instanceof Error && !(error.message in loggedTypeFailures)) {
313 - loggedTypeFailures[error.message] = true;
314 - var stack = getStack ? getStack() : "";
315 - printWarning("Failed " + location + " type: " + error.message + (stack != null ? stack : ""));
316 - }
317 - }
318 - }
319 - /**
320 - * Resets warning cache when testing.
321 - *
322 - * @private
323 - */
324 - checkPropTypes.resetWarningCache = function() {
325 - loggedTypeFailures = {};
326 - };
327 - module.exports = checkPropTypes;
328 - }));
329 65
330 -//#endregion
331 -//#region node_modules/prop-types/factoryWithTypeCheckers.js
332 -/**
333 - * Copyright (c) 2013-present, Facebook, Inc.
334 - *
335 - * This source code is licensed under the MIT license found in the
336 - * LICENSE file in the root directory of this source tree.
337 - */
338 - var require_factoryWithTypeCheckers = /* @__PURE__ */ __commonJSMin(((exports, module) => {
339 - var ReactIs = require_react_is();
340 - var assign = require_object_assign();
341 - var ReactPropTypesSecret = require_ReactPropTypesSecret();
342 - var has = require_has();
343 - var checkPropTypes = require_checkPropTypes();
344 - var printWarning = function() {};
345 - printWarning = function(text) {
346 - var message = "Warning: " + text;
347 - if (typeof console !== "undefined") console.error(message);
348 - try {
349 - throw new Error(message);
350 - } catch (x) {}
351 - };
352 - function emptyFunctionThatReturnsNull() {
353 - return null;
354 - }
355 - module.exports = function(isValidElement, throwOnDirectAccess) {
356 - var ITERATOR_SYMBOL = typeof Symbol === "function" && Symbol.iterator;
357 - var FAUX_ITERATOR_SYMBOL = "@@iterator";
358 - /**
359 - * Returns the iterator method function contained on the iterable object.
360 - *
361 - * Be sure to invoke the function with the iterable as context:
362 - *
363 - * var iteratorFn = getIteratorFn(myIterable);
364 - * if (iteratorFn) {
365 - * var iterator = iteratorFn.call(myIterable);
366 - * ...
367 - * }
368 - *
369 - * @param {?object} maybeIterable
370 - * @return {?function}
371 - */
372 - function getIteratorFn(maybeIterable) {
373 - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
374 - if (typeof iteratorFn === "function") return iteratorFn;
375 - }
376 - /**
377 - * Collection of methods that allow declaration and validation of props that are
378 - * supplied to React components. Example usage:
379 - *
380 - * var Props = require('ReactPropTypes');
381 - * var MyArticle = React.createClass({
382 - * propTypes: {
383 - * // An optional string prop named "description".
384 - * description: Props.string,
385 - *
386 - * // A required enum prop named "category".
387 - * category: Props.oneOf(['News','Photos']).isRequired,
388 - *
389 - * // A prop named "dialog" that requires an instance of Dialog.
390 - * dialog: Props.instanceOf(Dialog).isRequired
391 - * },
392 - * render: function() { ... }
393 - * });
394 - *
395 - * A more formal specification of how these methods are used:
396 - *
397 - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
398 - * decl := ReactPropTypes.{type}(.isRequired)?
399 - *
400 - * Each and every declaration produces a function with the same signature. This
401 - * allows the creation of custom validation functions. For example:
402 - *
403 - * var MyLink = React.createClass({
404 - * propTypes: {
405 - * // An optional string or URI prop named "href".
406 - * href: function(props, propName, componentName) {
407 - * var propValue = props[propName];
408 - * if (propValue != null && typeof propValue !== 'string' &&
409 - * !(propValue instanceof URI)) {
410 - * return new Error(
411 - * 'Expected a string or an URI for ' + propName + ' in ' +
412 - * componentName
413 - * );
414 - * }
415 - * }
416 - * },
417 - * render: function() {...}
418 - * });
419 - *
420 - * @internal
421 - */
422 - var ANONYMOUS = "<<anonymous>>";
423 - var ReactPropTypes = {
424 - array: createPrimitiveTypeChecker("array"),
425 - bigint: createPrimitiveTypeChecker("bigint"),
426 - bool: createPrimitiveTypeChecker("boolean"),
427 - func: createPrimitiveTypeChecker("function"),
428 - number: createPrimitiveTypeChecker("number"),
429 - object: createPrimitiveTypeChecker("object"),
430 - string: createPrimitiveTypeChecker("string"),
431 - symbol: createPrimitiveTypeChecker("symbol"),
432 - any: createAnyTypeChecker(),
433 - arrayOf: createArrayOfTypeChecker,
434 - element: createElementTypeChecker(),
435 - elementType: createElementTypeTypeChecker(),
436 - instanceOf: createInstanceTypeChecker,
437 - node: createNodeChecker(),
438 - objectOf: createObjectOfTypeChecker,
439 - oneOf: createEnumTypeChecker,
440 - oneOfType: createUnionTypeChecker,
441 - shape: createShapeTypeChecker,
442 - exact: createStrictShapeTypeChecker
443 - };
444 - /**
445 - * inlined Object.is polyfill to avoid requiring consumers ship their own
446 - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
447 - */
448 - function is(x, y) {
449 - if (x === y) return x !== 0 || 1 / x === 1 / y;
450 - else return x !== x && y !== y;
451 - }
452 - /**
453 - * We use an Error-like object for backward compatibility as people may call
454 - * PropTypes directly and inspect their output. However, we don't use real
455 - * Errors anymore. We don't inspect their stack anyway, and creating them
456 - * is prohibitively expensive if they are created too often, such as what
457 - * happens in oneOfType() for any type before the one that matched.
458 - */
459 - function PropTypeError(message, data) {
460 - this.message = message;
461 - this.data = data && typeof data === "object" ? data : {};
462 - this.stack = "";
463 - }
464 - PropTypeError.prototype = Error.prototype;
465 - function createChainableTypeChecker(validate) {
466 - var manualPropTypeCallCache = {};
467 - var manualPropTypeWarningCount = 0;
468 - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
469 - componentName = componentName || ANONYMOUS;
470 - propFullName = propFullName || propName;
471 - if (secret !== ReactPropTypesSecret) {
472 - if (throwOnDirectAccess) {
473 - var err = /* @__PURE__ */ new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");
474 - err.name = "Invariant Violation";
475 - throw err;
476 - } else if (typeof console !== "undefined") {
477 - var cacheKey = componentName + ":" + propName;
478 - if (!manualPropTypeCallCache[cacheKey] && manualPropTypeWarningCount < 3) {
479 - printWarning("You are manually calling a React.PropTypes validation function for the `" + propFullName + "` prop on `" + componentName + "`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.");
480 - manualPropTypeCallCache[cacheKey] = true;
481 - manualPropTypeWarningCount++;
482 - }
483 - }
484 - }
485 - if (props[propName] == null) {
486 - if (isRequired) {
487 - if (props[propName] === null) return new PropTypeError("The " + location + " `" + propFullName + "` is marked as required " + ("in `" + componentName + "`, but its value is `null`."));
488 - return new PropTypeError("The " + location + " `" + propFullName + "` is marked as required in " + ("`" + componentName + "`, but its value is `undefined`."));
489 - }
490 - return null;
491 - } else return validate(props, propName, componentName, location, propFullName);
492 - }
493 - var chainedCheckType = checkType.bind(null, false);
494 - chainedCheckType.isRequired = checkType.bind(null, true);
495 - return chainedCheckType;
496 - }
497 - function createPrimitiveTypeChecker(expectedType) {
498 - function validate(props, propName, componentName, location, propFullName, secret) {
499 - var propValue = props[propName];
500 - if (getPropType(propValue) !== expectedType) {
501 - var preciseType = getPreciseType(propValue);
502 - return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + preciseType + "` supplied to `" + componentName + "`, expected ") + ("`" + expectedType + "`."), { expectedType });
503 - }
504 - return null;
505 - }
506 - return createChainableTypeChecker(validate);
507 - }
508 - function createAnyTypeChecker() {
509 - return createChainableTypeChecker(emptyFunctionThatReturnsNull);
510 - }
511 - function createArrayOfTypeChecker(typeChecker) {
512 - function validate(props, propName, componentName, location, propFullName) {
513 - if (typeof typeChecker !== "function") return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside arrayOf.");
514 - var propValue = props[propName];
515 - if (!Array.isArray(propValue)) {
516 - var propType = getPropType(propValue);
517 - return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an array."));
518 - }
519 - for (var i = 0; i < propValue.length; i++) {
520 - var error = typeChecker(propValue, i, componentName, location, propFullName + "[" + i + "]", ReactPropTypesSecret);
521 - if (error instanceof Error) return error;
522 - }
523 - return null;
524 - }
525 - return createChainableTypeChecker(validate);
526 - }
527 - function createElementTypeChecker() {
528 - function validate(props, propName, componentName, location, propFullName) {
529 - var propValue = props[propName];
530 - if (!isValidElement(propValue)) {
531 - var propType = getPropType(propValue);
532 - return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected a single ReactElement."));
533 - }
534 - return null;
535 - }
536 - return createChainableTypeChecker(validate);
537 - }
538 - function createElementTypeTypeChecker() {
539 - function validate(props, propName, componentName, location, propFullName) {
540 - var propValue = props[propName];
541 - if (!ReactIs.isValidElementType(propValue)) {
542 - var propType = getPropType(propValue);
543 - return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected a single ReactElement type."));
544 - }
545 - return null;
546 - }
547 - return createChainableTypeChecker(validate);
548 - }
549 - function createInstanceTypeChecker(expectedClass) {
550 - function validate(props, propName, componentName, location, propFullName) {
551 - if (!(props[propName] instanceof expectedClass)) {
552 - var expectedClassName = expectedClass.name || ANONYMOUS;
553 - var actualClassName = getClassName(props[propName]);
554 - return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + actualClassName + "` supplied to `" + componentName + "`, expected ") + ("instance of `" + expectedClassName + "`."));
555 - }
556 - return null;
557 - }
558 - return createChainableTypeChecker(validate);
559 - }
560 - function createEnumTypeChecker(expectedValues) {
561 - if (!Array.isArray(expectedValues)) {
562 - if (arguments.length > 1) printWarning("Invalid arguments supplied to oneOf, expected an array, got " + arguments.length + " arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).");
563 - else printWarning("Invalid argument supplied to oneOf, expected an array.");
564 - return emptyFunctionThatReturnsNull;
565 - }
566 - function validate(props, propName, componentName, location, propFullName) {
567 - var propValue = props[propName];
568 - for (var i = 0; i < expectedValues.length; i++) if (is(propValue, expectedValues[i])) return null;
569 - var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
570 - if (getPreciseType(value) === "symbol") return String(value);
571 - return value;
572 - });
573 - return new PropTypeError("Invalid " + location + " `" + propFullName + "` of value `" + String(propValue) + "` " + ("supplied to `" + componentName + "`, expected one of " + valuesString + "."));
574 - }
575 - return createChainableTypeChecker(validate);
576 - }
577 - function createObjectOfTypeChecker(typeChecker) {
578 - function validate(props, propName, componentName, location, propFullName) {
579 - if (typeof typeChecker !== "function") return new PropTypeError("Property `" + propFullName + "` of component `" + componentName + "` has invalid PropType notation inside objectOf.");
580 - var propValue = props[propName];
581 - var propType = getPropType(propValue);
582 - if (propType !== "object") return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type " + ("`" + propType + "` supplied to `" + componentName + "`, expected an object."));
583 - for (var key in propValue) if (has(propValue, key)) {
584 - var error = typeChecker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret);
585 - if (error instanceof Error) return error;
586 - }
587 - return null;
588 - }
589 - return createChainableTypeChecker(validate);
590 - }
591 - function createUnionTypeChecker(arrayOfTypeCheckers) {
592 - if (!Array.isArray(arrayOfTypeCheckers)) {
593 - printWarning("Invalid argument supplied to oneOfType, expected an instance of array.");
594 - return emptyFunctionThatReturnsNull;
595 - }
596 - for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
597 - var checker = arrayOfTypeCheckers[i];
598 - if (typeof checker !== "function") {
599 - printWarning("Invalid argument supplied to oneOfType. Expected an array of check functions, but received " + getPostfixForTypeWarning(checker) + " at index " + i + ".");
600 - return emptyFunctionThatReturnsNull;
601 - }
602 - }
603 - function validate(props, propName, componentName, location, propFullName) {
604 - var expectedTypes = [];
605 - for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
606 - var checker = arrayOfTypeCheckers[i];
607 - var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
608 - if (checkerResult == null) return null;
609 - if (checkerResult.data && has(checkerResult.data, "expectedType")) expectedTypes.push(checkerResult.data.expectedType);
610 - }
611 - var expectedTypesMessage = expectedTypes.length > 0 ? ", expected one of type [" + expectedTypes.join(", ") + "]" : "";
612 - return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to " + ("`" + componentName + "`" + expectedTypesMessage + "."));
613 - }
614 - return createChainableTypeChecker(validate);
615 - }
616 - function createNodeChecker() {
617 - function validate(props, propName, componentName, location, propFullName) {
618 - if (!isNode(props[propName])) return new PropTypeError("Invalid " + location + " `" + propFullName + "` supplied to " + ("`" + componentName + "`, expected a ReactNode."));
619 - return null;
620 - }
621 - return createChainableTypeChecker(validate);
622 - }
623 - function invalidValidatorError(componentName, location, propFullName, key, type) {
624 - return new PropTypeError((componentName || "React class") + ": " + location + " type `" + propFullName + "." + key + "` is invalid; it must be a function, usually from the `prop-types` package, but received `" + type + "`.");
625 - }
626 - function createShapeTypeChecker(shapeTypes) {
627 - function validate(props, propName, componentName, location, propFullName) {
628 - var propValue = props[propName];
629 - var propType = getPropType(propValue);
630 - if (propType !== "object") return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` " + ("supplied to `" + componentName + "`, expected `object`."));
631 - for (var key in shapeTypes) {
632 - var checker = shapeTypes[key];
633 - if (typeof checker !== "function") return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
634 - var error = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret);
635 - if (error) return error;
636 - }
637 - return null;
638 - }
639 - return createChainableTypeChecker(validate);
640 - }
641 - function createStrictShapeTypeChecker(shapeTypes) {
642 - function validate(props, propName, componentName, location, propFullName) {
643 - var propValue = props[propName];
644 - var propType = getPropType(propValue);
645 - if (propType !== "object") return new PropTypeError("Invalid " + location + " `" + propFullName + "` of type `" + propType + "` " + ("supplied to `" + componentName + "`, expected `object`."));
646 - for (var key in assign({}, props[propName], shapeTypes)) {
647 - var checker = shapeTypes[key];
648 - if (has(shapeTypes, key) && typeof checker !== "function") return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
649 - if (!checker) return new PropTypeError("Invalid " + location + " `" + propFullName + "` key `" + key + "` supplied to `" + componentName + "`.\nBad object: " + JSON.stringify(props[propName], null, " ") + "\nValid keys: " + JSON.stringify(Object.keys(shapeTypes), null, " "));
650 - var error = checker(propValue, key, componentName, location, propFullName + "." + key, ReactPropTypesSecret);
651 - if (error) return error;
652 - }
653 - return null;
654 - }
655 - return createChainableTypeChecker(validate);
656 - }
657 - function isNode(propValue) {
658 - switch (typeof propValue) {
659 - case "number":
660 - case "string":
661 - case "undefined": return true;
662 - case "boolean": return !propValue;
663 - case "object":
664 - if (Array.isArray(propValue)) return propValue.every(isNode);
665 - if (propValue === null || isValidElement(propValue)) return true;
666 - var iteratorFn = getIteratorFn(propValue);
667 - if (iteratorFn) {
668 - var iterator = iteratorFn.call(propValue);
669 - var step;
670 - if (iteratorFn !== propValue.entries) {
671 - while (!(step = iterator.next()).done) if (!isNode(step.value)) return false;
672 - } else while (!(step = iterator.next()).done) {
673 - var entry = step.value;
674 - if (entry) {
675 - if (!isNode(entry[1])) return false;
676 - }
677 - }
678 - } else return false;
679 - return true;
680 - default: return false;
681 - }
682 - }
683 - function isSymbol(propType, propValue) {
684 - if (propType === "symbol") return true;
685 - if (!propValue) return false;
686 - if (propValue["@@toStringTag"] === "Symbol") return true;
687 - if (typeof Symbol === "function" && propValue instanceof Symbol) return true;
688 - return false;
689 - }
690 - function getPropType(propValue) {
691 - var propType = typeof propValue;
692 - if (Array.isArray(propValue)) return "array";
693 - if (propValue instanceof RegExp) return "object";
694 - if (isSymbol(propType, propValue)) return "symbol";
695 - return propType;
696 - }
697 - function getPreciseType(propValue) {
698 - if (typeof propValue === "undefined" || propValue === null) return "" + propValue;
699 - var propType = getPropType(propValue);
700 - if (propType === "object") {
701 - if (propValue instanceof Date) return "date";
702 - else if (propValue instanceof RegExp) return "regexp";
703 - }
704 - return propType;
705 - }
706 - function getPostfixForTypeWarning(value) {
707 - var type = getPreciseType(value);
708 - switch (type) {
709 - case "array":
710 - case "object": return "an " + type;
711 - case "boolean":
712 - case "date":
713 - case "regexp": return "a " + type;
714 - default: return type;
715 - }
716 - }
717 - function getClassName(propValue) {
718 - if (!propValue.constructor || !propValue.constructor.name) return ANONYMOUS;
719 - return propValue.constructor.name;
720 - }
721 - ReactPropTypes.checkPropTypes = checkPropTypes;
722 - ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
723 - ReactPropTypes.PropTypes = ReactPropTypes;
724 - return ReactPropTypes;
725 - };
726 - }));
66 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
67 +Object.defineProperty(exports, "__esModule", ({
68 + value: true
69 +}));
70 +exports.triggerOptOut = exports.triggerOptIn = void 0;
71 +var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "../node_modules/@babel/runtime/regenerator/index.js"));
72 +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
73 +var triggerOptIn = exports.triggerOptIn = /*#__PURE__*/function () {
74 + var _ref = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
75 + return _regenerator.default.wrap(function (_context) {
76 + while (1) switch (_context.prev = _context.next) {
77 + case 0:
78 + return _context.abrupt("return", elementorCommon.ajax.addRequest('editor_v4_opt_in'));
79 + case 1:
80 + case "end":
81 + return _context.stop();
82 + }
83 + }, _callee);
84 + }));
85 + return function triggerOptIn() {
86 + return _ref.apply(this, arguments);
87 + };
88 +}();
89 +var triggerOptOut = exports.triggerOptOut = /*#__PURE__*/function () {
90 + var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
91 + return _regenerator.default.wrap(function (_context2) {
92 + while (1) switch (_context2.prev = _context2.next) {
93 + case 0:
94 + return _context2.abrupt("return", elementorCommon.ajax.addRequest('editor_v4_opt_out'));
95 + case 1:
96 + case "end":
97 + return _context2.stop();
98 + }
99 + }, _callee2);
100 + }));
101 + return function triggerOptOut() {
102 + return _ref2.apply(this, arguments);
103 + };
104 +}();
727 105
728 -//#endregion
729 -//#region node_modules/prop-types/index.js
730 - var require_prop_types = /* @__PURE__ */ __commonJSMin(((exports, module) => {
731 - var ReactIs = require_react_is();
732 - var throwOnDirectAccess = true;
733 - module.exports = require_factoryWithTypeCheckers()(ReactIs.isElement, throwOnDirectAccess);
734 - }));
106 +/***/ }),
735 107
736 -//#endregion
737 -//#region node_modules/react-dom/client.js
738 - var require_client = /* @__PURE__ */ __commonJSMin(((exports) => {
739 - var m = (globalThis.ReactDOM);
740 - var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
741 - exports.createRoot = function(c, o) {
742 - i.usingClientEntryPoint = true;
743 - try {
744 - return m.createRoot(c, o);
745 - } finally {
746 - i.usingClientEntryPoint = false;
747 - }
748 - };
749 - }));
108 +/***/ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-content.js":
109 +/*!************************************************************************!*\
110 + !*** ../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-content.js ***!
111 + \************************************************************************/
112 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
750 113
751 -//#endregion
752 -//#region assets/dev/js/utils/react.js
753 -var import_prop_types = /* @__PURE__ */ __toESM(require_prop_types());
754 - var import_client = require_client();
755 - /**
756 - * Support conditional rendering of a React App to the DOM, based on the React version.
757 - * We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
758 - *
759 - * @param {Promise.resolve(React).ReactElement} app The app to render.
760 - * @param {HTMLElement} domElement The DOM element to render the app into.
761 - *
762 - * @return {{ unmount: () => void }} The unmount function.
763 - */
764 - function render(app, domElement) {
765 - var unmountFunction;
766 - try {
767 - var root = (0, import_client.createRoot)(domElement);
768 - root.render(app);
769 - unmountFunction = function unmountFunction() {
770 - root.unmount();
771 - };
772 - } catch (e) {
773 - react_dom.render(app, domElement);
774 - unmountFunction = function unmountFunction() {
775 - react_dom.unmountComponentAtNode(domElement);
776 - };
777 - }
778 - return { unmount: unmountFunction };
779 - }
780 - var react_default = { render };
114 +"use strict";
115 +/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
781 116
782 -//#endregion
783 -//#region node_modules/@babel/runtime/helpers/esm/typeof.js
784 - function _typeof(o) {
785 - "@babel/helpers - typeof";
786 - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
787 - return typeof o;
788 - } : function(o) {
789 - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
790 - }, _typeof(o);
791 - }
792 117
793 -//#endregion
794 -//#region node_modules/@babel/runtime/helpers/esm/toPrimitive.js
795 - function toPrimitive(t, r) {
796 - if ("object" != _typeof(t) || !t) return t;
797 - var e = t[Symbol.toPrimitive];
798 - if (void 0 !== e) {
799 - var i = e.call(t, r || "default");
800 - if ("object" != _typeof(i)) return i;
801 - throw new TypeError("@@toPrimitive must return a primitive value.");
802 - }
803 - return ("string" === r ? String : Number)(t);
804 - }
118 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
119 +Object.defineProperty(exports, "__esModule", ({
120 + value: true
121 +}));
122 +exports.TextNode = exports.ContentListItem = exports.ContentList = exports.AdvantagesListItem = exports.AdvantagesList = void 0;
123 +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
124 +var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
125 +var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
126 +var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
127 +var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
128 +var _excluded = ["children"],
129 + _excluded2 = ["children"],
130 + _excluded3 = ["children"],
131 + _excluded4 = ["children"],
132 + _excluded5 = ["children"];
133 +var TextNode = exports.TextNode = function TextNode(_ref) {
134 + var children = _ref.children,
135 + props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
136 + return /*#__PURE__*/_react.default.createElement(_ui.Typography, (0, _extends2.default)({
137 + color: "text.primary"
138 + }, props), children);
139 +};
140 +TextNode.propTypes = {
141 + children: PropTypes.node
142 +};
143 +var ContentList = exports.ContentList = function ContentList(_ref2) {
144 + var children = _ref2.children,
145 + props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
146 + return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
147 + component: "ul",
148 + sx: {
149 + my: 0
150 + }
151 + }, props), children);
152 +};
153 +ContentList.propTypes = {
154 + children: PropTypes.node
155 +};
156 +var ContentListItem = exports.ContentListItem = function ContentListItem(_ref3) {
157 + var children = _ref3.children,
158 + props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
159 + return /*#__PURE__*/_react.default.createElement(TextNode, (0, _extends2.default)({
160 + component: "li",
161 + sx: {
162 + listStyle: 'disc',
163 + marginInlineStart: 3
164 + }
165 + }, props), children);
166 +};
167 +ContentListItem.propTypes = {
168 + children: PropTypes.node
169 +};
170 +var AdvantagesList = exports.AdvantagesList = function AdvantagesList(_ref4) {
171 + var children = _ref4.children,
172 + props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
173 + return /*#__PURE__*/_react.default.createElement(_ui.Box, (0, _extends2.default)({
174 + component: "ul",
175 + sx: {
176 + display: 'flex',
177 + flexDirection: 'column',
178 + gap: 0.5,
179 + my: 0
180 + }
181 + }, props), children);
182 +};
183 +AdvantagesList.propTypes = {
184 + children: PropTypes.node
185 +};
186 +var AdvantagesListItem = exports.AdvantagesListItem = function AdvantagesListItem(_ref5) {
187 + var children = _ref5.children,
188 + props = (0, _objectWithoutProperties2.default)(_ref5, _excluded5);
189 + return /*#__PURE__*/_react.default.createElement(TextNode, (0, _extends2.default)({
190 + component: "li",
191 + sx: {
192 + listStyle: 'none',
193 + marginInlineStart: 0,
194 + lineHeight: '150%',
195 + display: 'flex',
196 + alignItems: 'flex-start',
197 + gap: 0.5
198 + }
199 + }, props), /*#__PURE__*/_react.default.createElement(_icons.CheckIcon, {
200 + fontSize: "small"
201 + }), children);
202 +};
203 +AdvantagesListItem.propTypes = {
204 + children: PropTypes.node
205 +};
805 206
806 -//#endregion
807 -//#region node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
808 - function toPropertyKey(t) {
809 - var i = toPrimitive(t, "string");
810 - return "symbol" == _typeof(i) ? i : i + "";
811 - }
207 +/***/ }),
812 208
813 -//#endregion
814 -//#region node_modules/@babel/runtime/helpers/esm/defineProperty.js
815 - function _defineProperty(e, r, t) {
816 - return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
817 - value: t,
818 - enumerable: !0,
819 - configurable: !0,
820 - writable: !0
821 - }) : e[r] = t, e;
822 - }
209 +/***/ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-img-placeholders.js":
210 +/*!*********************************************************************************!*\
211 + !*** ../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-img-placeholders.js ***!
212 + \*********************************************************************************/
213 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
823 214
824 -//#endregion
825 -//#region node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
826 - function _arrayWithHoles(r) {
827 - if (Array.isArray(r)) return r;
828 - }
215 +"use strict";
829 216
830 -//#endregion
831 -//#region node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
832 - function _iterableToArrayLimit(r, l) {
833 - var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
834 - if (null != t) {
835 - var e;
836 - var n;
837 - var i;
838 - var u;
839 - var a = [];
840 - var f = !0;
841 - var o = !1;
842 - try {
843 - if (i = (t = t.call(r)).next, 0 === l) {
844 - if (Object(t) !== t) return;
845 - f = !1;
846 - } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
847 - } catch (r) {
848 - o = !0, n = r;
849 - } finally {
850 - try {
851 - if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
852 - } finally {
853 - if (o) throw n;
854 - }
855 - }
856 - return a;
857 - }
858 - }
859 217
860 -//#endregion
861 -//#region node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
862 - function _arrayLikeToArray(r, a) {
863 - (null == a || a > r.length) && (a = r.length);
864 - for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
865 - return n;
866 - }
218 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
219 +Object.defineProperty(exports, "__esModule", ({
220 + value: true
221 +}));
222 +exports.ImageSquarePlaceholder = exports.ImageLandscapePlaceholder = void 0;
223 +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
224 +var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
225 +var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
226 +var ImageLandscapePlaceholder = exports.ImageLandscapePlaceholder = function ImageLandscapePlaceholder(props) {
227 + return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
228 + viewBox: "0 0 600 260"
229 + }, props), /*#__PURE__*/_react.default.createElement("rect", {
230 + x: "0",
231 + y: "0",
232 + width: "600",
233 + height: "260",
234 + fill: "#d9d9d9"
235 + }));
236 +};
237 +var ImageSquarePlaceholder = exports.ImageSquarePlaceholder = function ImageSquarePlaceholder(props) {
238 + return /*#__PURE__*/_react.default.createElement(_ui.SvgIcon, (0, _extends2.default)({
239 + viewBox: "0 0 500 500"
240 + }, props), /*#__PURE__*/_react.default.createElement("rect", {
241 + x: "0",
242 + y: "0",
243 + width: "500",
244 + height: "500",
245 + fill: "#d9d9d9"
246 + }));
247 +};
867 248
868 -//#endregion
869 -//#region node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
870 - function _unsupportedIterableToArray(r, a) {
871 - if (r) {
872 - if ("string" == typeof r) return _arrayLikeToArray(r, a);
873 - var t = {}.toString.call(r).slice(8, -1);
874 - return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
875 - }
876 - }
249 +/***/ }),
877 250
878 -//#endregion
879 -//#region node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
880 - function _nonIterableRest() {
881 - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
882 - }
251 +/***/ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-message.js":
252 +/*!************************************************************************!*\
253 + !*** ../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-message.js ***!
254 + \************************************************************************/
255 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
883 256
884 -//#endregion
885 -//#region node_modules/@babel/runtime/helpers/esm/slicedToArray.js
886 - function _slicedToArray(r, e) {
887 - return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
888 - }
257 +"use strict";
258 +/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
889 259
890 -//#endregion
891 -//#region node_modules/@babel/runtime/helpers/esm/extends.js
892 - function _extends() {
893 - return _extends = Object.assign ? Object.assign.bind() : function(n) {
894 - for (var e = 1; e < arguments.length; e++) {
895 - var t = arguments[e];
896 - for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
897 - }
898 - return n;
899 - }, _extends.apply(null, arguments);
900 - }
901 260
902 -//#endregion
903 -//#region node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
904 - function _objectWithoutPropertiesLoose(r, e) {
905 - if (null == r) return {};
906 - var t = {};
907 - for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
908 - if (-1 !== e.indexOf(n)) continue;
909 - t[n] = r[n];
910 - }
911 - return t;
912 - }
261 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
262 +Object.defineProperty(exports, "__esModule", ({
263 + value: true
264 +}));
265 +exports.Message = void 0;
266 +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
267 +var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
268 +var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
269 +var Message = exports.Message = function Message(_ref) {
270 + var action = _ref.action,
271 + children = _ref.children,
272 + _ref$severity = _ref.severity,
273 + severity = _ref$severity === void 0 ? 'message' : _ref$severity,
274 + onClose = _ref.onClose;
275 + return /*#__PURE__*/_react.default.createElement(_ui.Snackbar, {
276 + open: true,
277 + autoHideDuration: 4000,
278 + anchorOrigin: {
279 + vertical: 'bottom',
280 + horizontal: 'right'
281 + },
282 + onClose: onClose
283 + }, 'message' !== severity ? /*#__PURE__*/_react.default.createElement(_ui.Alert, {
284 + variant: "filled",
285 + severity: severity,
286 + onClose: onClose
287 + }, children) : /*#__PURE__*/_react.default.createElement(_ui.SnackbarContent, {
288 + message: /*#__PURE__*/_react.default.createElement(_ui.Stack, {
289 + direction: "row",
290 + gap: 1.5,
291 + alignItems: "center"
292 + }, /*#__PURE__*/_react.default.createElement(_icons.CircleCheckFilledIcon, null), children),
293 + action: /*#__PURE__*/_react.default.createElement(_ui.Stack, {
294 + direction: "row",
295 + spacing: 1,
296 + alignItems: "center"
297 + }, action, /*#__PURE__*/_react.default.createElement(_ui.IconButton, {
298 + color: "inherit",
299 + size: "small",
300 + onClick: onClose
301 + }, /*#__PURE__*/_react.default.createElement(_icons.XIcon, {
302 + fontSize: "small"
303 + })))
304 + }));
305 +};
306 +Message.propTypes = {
307 + action: PropTypes.node,
308 + children: PropTypes.node,
309 + severity: PropTypes.oneOf(['message', 'success', 'warning', 'error']),
310 + onClose: PropTypes.func
311 +};
913 312
914 -//#endregion
915 -//#region node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js
916 - function _objectWithoutProperties(e, t) {
917 - if (null == e) return {};
918 - var o;
919 - var r;
920 - var i = _objectWithoutPropertiesLoose(e, t);
921 - if (Object.getOwnPropertySymbols) {
922 - var n = Object.getOwnPropertySymbols(e);
923 - for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
924 - }
925 - return i;
926 - }
313 +/***/ }),
927 314
928 -//#endregion
929 -//#region modules/atomic-opt-in/assets/js/opt-in-page/opt-in-content.js
930 - var _excluded$1 = ["children"];
931 - var _excluded2 = ["children"];
932 - var _excluded3 = ["children"];
933 - var _excluded4 = ["children"];
934 - var _excluded5 = ["children"];
935 - var TextNode = function TextNode(_ref) {
936 - var children = _ref.children;
937 - var props = _objectWithoutProperties(_ref, _excluded$1);
938 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.Typography, _extends({ color: "text.primary" }, props), children);
939 - };
940 - TextNode.propTypes = { children: import_prop_types.default.node };
941 - var ContentList = function ContentList(_ref2) {
942 - var children = _ref2.children;
943 - var props = _objectWithoutProperties(_ref2, _excluded2);
944 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, _extends({
945 - component: "ul",
946 - sx: { listStyle: "disc" }
947 - }, props), children);
948 - };
949 - ContentList.propTypes = { children: import_prop_types.default.node };
950 - var ContentListItem = function ContentListItem(_ref3) {
951 - var children = _ref3.children;
952 - var props = _objectWithoutProperties(_ref3, _excluded3);
953 - return /*#__PURE__*/ react.default.createElement(TextNode, _extends({ component: "li" }, props), children);
954 - };
955 - ContentListItem.propTypes = { children: import_prop_types.default.node };
956 - var AdvantagesList = function AdvantagesList(_ref4) {
957 - var children = _ref4.children;
958 - var props = _objectWithoutProperties(_ref4, _excluded4);
959 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, _extends({
960 - component: "ul",
961 - sx: { marginInlineStart: 2 }
962 - }, props), children);
963 - };
964 - AdvantagesList.propTypes = { children: import_prop_types.default.node };
965 - var AdvantagesListItem = function AdvantagesListItem(_ref5) {
966 - var children = _ref5.children;
967 - var props = _objectWithoutProperties(_ref5, _excluded5);
968 - return /*#__PURE__*/ react.default.createElement(TextNode, _extends({
969 - component: "li",
970 - sx: {
971 - lineHeight: "150%",
972 - listStyle: "disc"
973 - }
974 - }, props), children);
975 - };
976 - AdvantagesListItem.propTypes = { children: import_prop_types.default.node };
315 +/***/ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-terms.js":
316 +/*!**********************************************************************!*\
317 + !*** ../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-terms.js ***!
318 + \**********************************************************************/
319 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
977 320
978 -//#endregion
979 -//#region modules/atomic-opt-in/assets/js/opt-in-page/opt-in-img-placeholders.js
980 - var ImageLandscapePlaceholder = function ImageLandscapePlaceholder(props) {
981 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.SvgIcon, _extends({ viewBox: "0 0 600 260" }, props), /*#__PURE__*/ react.default.createElement("rect", {
982 - x: "0",
983 - y: "0",
984 - width: "600",
985 - height: "260",
986 - fill: "#d9d9d9"
987 - }));
988 - };
989 - var ImageSquarePlaceholder = function ImageSquarePlaceholder(props) {
990 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.SvgIcon, _extends({ viewBox: "0 0 500 500" }, props), /*#__PURE__*/ react.default.createElement("rect", {
991 - x: "0",
992 - y: "0",
993 - width: "500",
994 - height: "500",
995 - fill: "#d9d9d9"
996 - }));
997 - };
321 +"use strict";
322 +/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
998 323
999 -//#endregion
1000 -//#region modules/atomic-opt-in/assets/js/opt-in-page/opt-in-message.js
1001 - var Message = function Message(_ref) {
1002 - var action = _ref.action;
1003 - var children = _ref.children;
1004 - var _ref$severity = _ref.severity;
1005 - var severity = _ref$severity === void 0 ? "message" : _ref$severity;
1006 - var onClose = _ref.onClose;
1007 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.Snackbar, {
1008 - open: true,
1009 - autoHideDuration: 4e3,
1010 - anchorOrigin: {
1011 - vertical: "bottom",
1012 - horizontal: "center"
1013 - },
1014 - onClose
1015 - }, "message" !== severity ? /*#__PURE__*/ react.default.createElement(_elementor_ui.Alert, {
1016 - variant: "filled",
1017 - severity,
1018 - onClose
1019 - }, children) : /*#__PURE__*/ react.default.createElement(_elementor_ui.SnackbarContent, {
1020 - message: /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, {
1021 - direction: "row",
1022 - gap: 1.5,
1023 - alignItems: "center"
1024 - }, /*#__PURE__*/ react.default.createElement(_elementor_icons.CircleCheckFilledIcon, null), children),
1025 - action: /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, {
1026 - direction: "row",
1027 - spacing: 1,
1028 - alignItems: "center"
1029 - }, action, /*#__PURE__*/ react.default.createElement(_elementor_ui.IconButton, {
1030 - color: "inherit",
1031 - size: "small",
1032 - onClick: onClose
1033 - }, /*#__PURE__*/ react.default.createElement(_elementor_icons.XIcon, { fontSize: "small" })))
1034 - }));
1035 - };
1036 - Message.propTypes = {
1037 - action: import_prop_types.default.node,
1038 - children: import_prop_types.default.node,
1039 - severity: import_prop_types.default.oneOf([
1040 - "message",
1041 - "success",
1042 - "warning",
1043 - "error"
1044 - ]),
1045 - onClose: import_prop_types.default.func
1046 - };
1047 324
1048 -//#endregion
1049 -//#region node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
1050 - function asyncGeneratorStep(n, t, e, r, o, a, c) {
1051 - try {
1052 - var i = n[a](c);
1053 - var u = i.value;
1054 - } catch (n) {
1055 - e(n);
1056 - return;
1057 - }
1058 - i.done ? t(u) : Promise.resolve(u).then(r, o);
1059 - }
1060 - function _asyncToGenerator(n) {
1061 - return function() {
1062 - var t = this;
1063 - var e = arguments;
1064 - return new Promise(function(r, o) {
1065 - var a = n.apply(t, e);
1066 - function _next(n) {
1067 - asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
1068 - }
1069 - function _throw(n) {
1070 - asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
1071 - }
1072 - _next(void 0);
1073 - });
1074 - };
1075 - }
325 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
326 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
327 +Object.defineProperty(exports, "__esModule", ({
328 + value: true
329 +}));
330 +exports.Terms = void 0;
331 +var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
332 +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
333 +var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"));
334 +var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
335 +var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
336 +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
337 +var _optInContent = __webpack_require__(/*! ./opt-in-content */ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-content.js");
338 +var _DialogHeaderGroup = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogHeaderGroup */ "@elementor/ui/DialogHeaderGroup"));
339 +var _DialogHeader = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogHeader */ "@elementor/ui/DialogHeader"));
340 +var _excluded = ["onClose", "onSubmit", "isEnrolled"];
341 +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
342 +var i18n = {
343 + header: (0, _i18n.__)('Editor V4', 'elementor'),
344 + chip: (0, _i18n.__)('Alpha', 'elementor'),
345 + checkboxText: (0, _i18n.__)('I’ve read and understood.', 'elementor'),
346 + optIn: {
347 + titleText: (0, _i18n.__)('You are about to enable Editor V4 features!', 'elementor'),
348 + introText: (0, _i18n.__)('By activating, you’ll get early access to the next generation of Elementor’s Editor. This is your chance to explore new capabilities and help shape the future of Elementor! ', 'elementor'),
349 + notesHeader: (0, _i18n.__)(' Important notes:', 'elementor'),
350 + notes: {
351 + alphaPrefix: (0, _i18n.__)('Editor V4 is currently in alpha, ', 'elementor'),
352 + details: [(0, _i18n.__)('and development is still in progress. Do not use it on live sites - use a staging or development environment instead.', 'elementor'), (0, _i18n.__)('When you activate Editor V4, you’ll also be activating Containers, the Top Bar, and Nested Elements. You can turn them back off by going to WP Admin > Elementor > Settings > Features.', 'elementor')]
353 + },
354 + activateButton: (0, _i18n.__)('Activate', 'elementor'),
355 + cancelButton: (0, _i18n.__)('Cancel', 'elementor')
356 + },
357 + optOut: {
358 + titleText: (0, _i18n.__)('You’re deactivating Editor V4', 'elementor'),
359 + introText: (0, _i18n.__)('We hope you enjoyed testing and building with these new features.', 'elementor'),
360 + notesHeader: (0, _i18n.__)('Keep in mind:', 'elementor'),
361 + notes: {
362 + details: [(0, _i18n.__)('By deactivating, you’ll lose all Editor V4 features, and any content you created with V4-specific features will no longer be available or appear on your site.', 'elementor'), (0, _i18n.__)('Containers, the Top Bar, and Nested Elements will stay in their current status.', 'elementor')]
363 + },
364 + activateButton: (0, _i18n.__)('Deactivate V4', 'elementor'),
365 + cancelButton: (0, _i18n.__)('Cancel', 'elementor')
366 + }
367 +};
368 +var Terms = exports.Terms = function Terms(_ref) {
369 + var onClose = _ref.onClose,
370 + onSubmit = _ref.onSubmit,
371 + isEnrolled = _ref.isEnrolled,
372 + props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
373 + var _useState = (0, _react.useState)(false),
374 + _useState2 = (0, _slicedToArray2.default)(_useState, 2),
375 + checked = _useState2[0],
376 + setChecked = _useState2[1];
377 + var handleCheckboxChange = function handleCheckboxChange() {
378 + setChecked(function (prev) {
379 + return !prev;
380 + });
381 + };
382 + var handleSubmit = function handleSubmit() {
383 + if (checked) {
384 + onSubmit();
385 + }
386 + };
387 + var currentState = isEnrolled ? 'optOut' : 'optIn';
388 + return /*#__PURE__*/_react.default.createElement(_ui.Dialog, (0, _extends2.default)({}, props, {
389 + open: true,
390 + onClose: onClose
391 + }), /*#__PURE__*/_react.default.createElement(_DialogHeader.default, null, /*#__PURE__*/_react.default.createElement(_DialogHeaderGroup.default, null, /*#__PURE__*/_react.default.createElement(_ui.DialogTitle, null, i18n.header), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
392 + label: i18n.chip,
393 + color: "secondary",
394 + variant: "filled",
395 + size: "small"
396 + }))), /*#__PURE__*/_react.default.createElement(_ui.DialogContent, {
397 + dividers: true
398 + }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
399 + gap: 2.5
400 + }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
401 + gap: 1
402 + }, /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, {
403 + align: "center",
404 + variant: "h6"
405 + }, i18n[currentState].titleText), /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, {
406 + align: "center",
407 + variant: "body2"
408 + }, i18n[currentState].introText)), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
409 + gap: 1
410 + }, /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, {
411 + variant: "body2"
412 + }, i18n[currentState].notesHeader), /*#__PURE__*/_react.default.createElement(_optInContent.ContentList, null, /*#__PURE__*/_react.default.createElement(_optInContent.ContentListItem, {
413 + variant: "body2"
414 + }, !isEnrolled && /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, {
415 + variant: "subtitle2",
416 + component: "span"
417 + }, i18n.optIn.notes.alphaPrefix), i18n[currentState].notes.details[0]), i18n[currentState].notes.details.slice(1).map(function (entry, index) {
418 + return /*#__PURE__*/_react.default.createElement(_optInContent.ContentListItem, {
419 + key: index,
420 + variant: "body2"
421 + }, entry);
422 + }))), /*#__PURE__*/_react.default.createElement(_ui.FormControlLabel, {
423 + control: /*#__PURE__*/_react.default.createElement(_ui.Checkbox, {
424 + checked: !!checked,
425 + onChange: handleCheckboxChange,
426 + color: "secondary",
427 + size: "small"
428 + }),
429 + label: /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, {
430 + variant: "body2"
431 + }, i18n.checkboxText)
432 + }))), /*#__PURE__*/_react.default.createElement(_ui.DialogActions, null, /*#__PURE__*/_react.default.createElement(_ui.Button, {
433 + variant: "text",
434 + color: "secondary",
435 + onClick: onClose
436 + }, i18n[currentState].cancelButton), /*#__PURE__*/_react.default.createElement(_ui.Button, {
437 + disabled: !checked,
438 + variant: "contained",
439 + onClick: handleSubmit
440 + }, i18n[currentState].activateButton)));
441 +};
442 +Terms.propTypes = {
443 + onClose: PropTypes.func,
444 + onSubmit: PropTypes.func,
445 + isEnrolled: PropTypes.bool
446 +};
1076 447
1077 -//#endregion
1078 -//#region node_modules/@babel/runtime/helpers/OverloadYield.js
1079 - var require_OverloadYield = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1080 - function _OverloadYield(e, d) {
1081 - this.v = e, this.k = d;
1082 - }
1083 - module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
1084 - }));
448 +/***/ }),
1085 449
1086 -//#endregion
1087 -//#region node_modules/@babel/runtime/helpers/regeneratorDefine.js
1088 - var require_regeneratorDefine = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1089 - function _regeneratorDefine(e, r, n, t) {
1090 - var i = Object.defineProperty;
1091 - try {
1092 - i({}, "", {});
1093 - } catch (e) {
1094 - i = 0;
1095 - }
1096 - module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
1097 - function o(r, n) {
1098 - _regeneratorDefine(e, r, function(e) {
1099 - return this._invoke(r, n, e);
1100 - });
1101 - }
1102 - r ? i ? i(e, r, {
1103 - value: n,
1104 - enumerable: !t,
1105 - configurable: !t,
1106 - writable: !t
1107 - }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
1108 - }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
1109 - }
1110 - module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
1111 - }));
450 +/***/ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in.js":
451 +/*!****************************************************************!*\
452 + !*** ../modules/atomic-opt-in/assets/js/opt-in-page/opt-in.js ***!
453 + \****************************************************************/
454 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1112 455
1113 -//#endregion
1114 -//#region node_modules/@babel/runtime/helpers/regenerator.js
1115 - var require_regenerator$1 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1116 - var regeneratorDefine = require_regeneratorDefine();
1117 - function _regenerator() {
1118 - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
1119 - var e;
1120 - var t;
1121 - var r = "function" == typeof Symbol ? Symbol : {};
1122 - var n = r.iterator || "@@iterator";
1123 - var o = r.toStringTag || "@@toStringTag";
1124 - function i(r, n, o, i) {
1125 - var c = n && n.prototype instanceof Generator ? n : Generator;
1126 - var u = Object.create(c.prototype);
1127 - return regeneratorDefine(u, "_invoke", function(r, n, o) {
1128 - var i;
1129 - var c;
1130 - var u;
1131 - var f = 0;
1132 - var p = o || [];
1133 - var y = !1;
1134 - var G = {
1135 - p: 0,
1136 - n: 0,
1137 - v: e,
1138 - a: d,
1139 - f: d.bind(e, 4),
1140 - d: function d(t, r) {
1141 - return i = t, c = 0, u = e, G.n = r, a;
1142 - }
1143 - };
1144 - function d(r, n) {
1145 - for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
1146 - var o;
1147 - var i = p[t];
1148 - var d = G.p;
1149 - var l = i[2];
1150 - r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
1151 - }
1152 - if (o || r > 1) return a;
1153 - throw y = !0, n;
1154 - }
1155 - return function(o, p, l) {
1156 - if (f > 1) throw TypeError("Generator is already running");
1157 - for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
1158 - i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
1159 - try {
1160 - if (f = 2, i) {
1161 - if (c || (o = "next"), t = i[o]) {
1162 - if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
1163 - if (!t.done) return t;
1164 - u = t.value, c < 2 && (c = 0);
1165 - } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
1166 - i = e;
1167 - } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
1168 - } catch (t) {
1169 - i = e, c = 1, u = t;
1170 - } finally {
1171 - f = 1;
1172 - }
1173 - }
1174 - return {
1175 - value: t,
1176 - done: y
1177 - };
1178 - };
1179 - }(r, o, i), !0), u;
1180 - }
1181 - var a = {};
1182 - function Generator() {}
1183 - function GeneratorFunction() {}
1184 - function GeneratorFunctionPrototype() {}
1185 - t = Object.getPrototypeOf;
1186 - var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function() {
1187 - return this;
1188 - }), t);
1189 - var u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
1190 - function f(e) {
1191 - return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
1192 - }
1193 - return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function() {
1194 - return this;
1195 - }), regeneratorDefine(u, "toString", function() {
1196 - return "[object Generator]";
1197 - }), (module.exports = _regenerator = function _regenerator() {
1198 - return {
1199 - w: i,
1200 - m: f
1201 - };
1202 - }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
1203 - }
1204 - module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
1205 - }));
456 +"use strict";
457 +/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
1206 458
1207 -//#endregion
1208 -//#region node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js
1209 - var require_regeneratorAsyncIterator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1210 - var OverloadYield = require_OverloadYield();
1211 - var regeneratorDefine = require_regeneratorDefine();
1212 - function AsyncIterator(t, e) {
1213 - function n(r, o, i, f) {
1214 - try {
1215 - var c = t[r](o);
1216 - var u = c.value;
1217 - return u instanceof OverloadYield ? e.resolve(u.v).then(function(t) {
1218 - n("next", t, i, f);
1219 - }, function(t) {
1220 - n("throw", t, i, f);
1221 - }) : e.resolve(u).then(function(t) {
1222 - c.value = t, i(c);
1223 - }, function(t) {
1224 - return n("throw", t, i, f);
1225 - });
1226 - } catch (t) {
1227 - f(t);
1228 - }
1229 - }
1230 - var r;
1231 - this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function() {
1232 - return this;
1233 - })), regeneratorDefine(this, "_invoke", function(t, o, i) {
1234 - function f() {
1235 - return new e(function(e, r) {
1236 - n(t, i, e, r);
1237 - });
1238 - }
1239 - return r = r ? r.then(f, f) : f();
1240 - }, !0);
1241 - }
1242 - module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
1243 - }));
1244 459
1245 -//#endregion
1246 -//#region node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js
1247 - var require_regeneratorAsyncGen = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1248 - var regenerator = require_regenerator$1();
1249 - var regeneratorAsyncIterator = require_regeneratorAsyncIterator();
1250 - function _regeneratorAsyncGen(r, e, t, o, n) {
1251 - return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
1252 - }
1253 - module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
1254 - }));
460 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
461 +var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
462 +Object.defineProperty(exports, "__esModule", ({
463 + value: true
464 +}));
465 +exports.OptIn = void 0;
466 +var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
467 +var _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "../node_modules/@babel/runtime/helpers/defineProperty.js"));
468 +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
469 +var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
470 +var _icons = __webpack_require__(/*! @elementor/icons */ "@elementor/icons");
471 +var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
472 +var _optInContent = __webpack_require__(/*! ./opt-in-content */ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-content.js");
473 +var _optInImgPlaceholders = __webpack_require__(/*! ./opt-in-img-placeholders */ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-img-placeholders.js");
474 +var _optInMessage = __webpack_require__(/*! ./opt-in-message */ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-message.js");
475 +var _optInApi = __webpack_require__(/*! ./opt-in-api */ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-api.js");
476 +var _dompurify = _interopRequireDefault(__webpack_require__(/*! dompurify */ "../node_modules/dompurify/dist/purify.cjs.js"));
477 +var _optInTerms = __webpack_require__(/*! ./opt-in-terms */ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in-terms.js");
478 +var _elementorSettingsEdi;
479 +function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
480 +function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
481 +function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
482 +var decodeHtmlUrl = function decodeHtmlUrl(html) {
483 + var textarea = document.createElement('textarea');
484 + textarea.innerHTML = html;
485 + return textarea.value;
486 +};
487 +var OPT_IN_MSG = 'e-editor-v4-opt-in-message';
488 +var OPT_OUT_MSG = 'e-editor-v4-opt-out-message';
489 +var i18n = {
490 + title: (0, _i18n.__)('The road to Editor V4', 'elementor'),
491 + chip: (0, _i18n.__)('Alpha', 'elementor'),
492 + welcomeText: (0, _i18n.__)('Welcome to a new era of web creation with Editor V4. It’s faster, more flexible, and built with a fresh approach to structure & styling.', 'elementor'),
493 + advantagesHeader: (0, _i18n.__)('Here’s what’s inside the alpha version:', 'elementor'),
494 + advantages: [(0, _i18n.__)('Unparalleled performance - Cleaner code & a lighter CSS footprint.', 'elementor'), (0, _i18n.__)('Professional tools at your fingertips - classes and states.', 'elementor'), (0, _i18n.__)('Consistent styling experience - A unified Style tab for all elements.', 'elementor'), (0, _i18n.__)('Fully responsive design - Customize any style property per screen.', 'elementor')],
495 + andMore: (0, _i18n.__)('And much more!', 'elementor'),
496 + readMore: (0, _i18n.__)('Learn more', 'elementor'),
497 + warning: (0, _i18n.__)('Editor V4 is still in alpha and should not be used on live sites yet.', 'elementor'),
498 + feedback: (0, _i18n.__)('We’d love your feedback!', 'elementor'),
499 + overToGithub: (0, _i18n.__)('Head over to Github', 'elementor'),
500 + tellUsWhy: (0, _i18n.__)('Tell us why', 'elementor'),
501 + image: (0, _i18n.__)('Editor V4', 'elementor'),
502 + buttons: {
503 + tryOut: (0, _i18n.__)('Try out the new experience', 'elementor'),
504 + optIn: (0, _i18n.__)('Activate the new experience', 'elementor'),
505 + optOut: (0, _i18n.__)('Deactivate V4', 'elementor')
506 + },
507 + messages: {
508 + optInSuccess: (0, _i18n.__)('Welcome! You’ve got the newest version of the editor.', 'elementor'),
509 + optOut: (0, _i18n.__)('You’ve deactivated the new Editor. Have feedback?', 'elementor'),
510 + error: (0, _i18n.__)('Ouch, there was a glitch. Try activating V4 again soon.', 'elementor')
511 + }
512 +};
513 +var optInLinks = {
514 + feedbackUrl: 'https://go.elementor.com/wp-dash-opt-in-v4-feedback/',
515 + readMoreUrl: 'https://go.elementor.com/wp-dash-opt-in-v4-help-center/',
516 + tryOutUrl: _dompurify.default.sanitize(decodeHtmlUrl((_elementorSettingsEdi = elementorSettingsEditor4OptIn) === null || _elementorSettingsEdi === void 0 || (_elementorSettingsEdi = _elementorSettingsEdi.urls) === null || _elementorSettingsEdi === void 0 ? void 0 : _elementorSettingsEdi.start_building)) || '#'
517 +};
518 +var optInImages = {
519 + square: {
520 + src: 'https://assets.elementor.com/v4-promotion/v1/images/v4_opt_in_500.png',
521 + sx: {
522 + width: '100%',
523 + maxHeight: '507px',
524 + maxWidth: 'sm',
525 + height: 'auto',
526 + mx: 'auto',
527 + borderRadius: 2
528 + }
529 + },
530 + landscape: {
531 + src: 'https://assets.elementor.com/v4-promotion/v1/images/v4_opt_in_260.png',
532 + sx: {
533 + width: '100%',
534 + height: 'auto',
535 + maxHeight: '260px',
536 + mx: 'auto',
537 + maxWidth: 'sm',
538 + borderRadius: 2
539 + }
540 + }
541 +};
542 +var OptIn = exports.OptIn = function OptIn(_ref) {
543 + var _state$features;
544 + var state = _ref.state;
545 + var _useState = (0, _react.useState)(false),
546 + _useState2 = (0, _slicedToArray2.default)(_useState, 2),
547 + showTerms = _useState2[0],
548 + setShowTerms = _useState2[1];
549 + var _useState3 = (0, _react.useState)(''),
550 + _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
551 + optInMessage = _useState4[0],
552 + setOptInMessage = _useState4[1];
553 + var _useState5 = (0, _react.useState)(''),
554 + _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
555 + optOutMessage = _useState6[0],
556 + setOptOutMessage = _useState6[1];
557 + var _useState7 = (0, _react.useState)(''),
558 + _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
559 + errorMessage = _useState8[0],
560 + setErrorMessage = _useState8[1];
561 + (0, _react.useEffect)(function () {
562 + var optInMsg = sessionStorage.getItem(OPT_IN_MSG);
563 + var optOutMsg = sessionStorage.getItem(OPT_OUT_MSG);
564 + if (optInMsg) {
565 + setTimeout(function () {
566 + setOptInMessage(optInMsg);
567 + }, 100);
568 + sessionStorage.removeItem(OPT_IN_MSG);
569 + }
570 + if (optOutMsg) {
571 + setTimeout(function () {
572 + setOptOutMessage(optOutMsg);
573 + }, 100);
574 + sessionStorage.removeItem(OPT_OUT_MSG);
575 + }
576 + }, []);
577 + var maybeOptIn = function maybeOptIn() {
578 + (0, _optInApi.triggerOptIn)().then(function () {
579 + sessionStorage.setItem(OPT_IN_MSG, i18n.messages.optInSuccess);
580 + window.location.reload();
581 + }).catch(function () {
582 + setErrorMessage(i18n.messages.error);
583 + });
584 + };
585 + var maybeOptOut = function maybeOptOut() {
586 + (0, _optInApi.triggerOptOut)().then(function () {
587 + sessionStorage.setItem(OPT_OUT_MSG, i18n.messages.optOut);
588 + window.location.reload();
589 + }).catch(function () {
590 + setErrorMessage(i18n.messages.error);
591 + });
592 + };
593 + var handlePopoverClose = function handlePopoverClose() {
594 + setShowTerms(false);
595 + };
596 + var isEnrolled = !!(state !== null && state !== void 0 && (_state$features = state.features) !== null && _state$features !== void 0 && _state$features.editor_v4);
597 + return /*#__PURE__*/_react.default.createElement(_ui.Container, {
598 + maxWidth: "xl",
599 + sx: {
600 + marginBlockStart: 2.5,
601 + display: 'flex',
602 + flexBasis: '100%',
603 + gap: 3,
604 + flexDirection: {
605 + xs: 'column-reverse',
606 + md: 'row'
607 + }
608 + }
609 + }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
610 + sx: {
611 + flex: 1,
612 + maxWidth: {
613 + md: '507px',
614 + sm: '600px'
615 + },
616 + gap: 2.5,
617 + mx: 'auto'
618 + }
619 + }, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
620 + direction: "row",
621 + alignItems: "center",
622 + gap: 1
623 + }, /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, {
624 + variant: "h4",
625 + width: "fit-content"
626 + }, i18n.title), /*#__PURE__*/_react.default.createElement(_ui.Chip, {
627 + size: "small",
628 + color: "secondary",
629 + variant: "filled",
630 + label: i18n.chip
631 + })), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
632 + direction: "column",
633 + gap: 3
634 + }, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, null, i18n.welcomeText)), /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, {
635 + variant: "subtitle1",
636 + sx: {
637 + mb: 1.5
638 + }
639 + }, i18n.advantagesHeader), /*#__PURE__*/_react.default.createElement(_optInContent.AdvantagesList, null, i18n.advantages.map(function (entry, i) {
640 + return /*#__PURE__*/_react.default.createElement(_optInContent.AdvantagesListItem, {
641 + key: i
642 + }, entry);
643 + }), /*#__PURE__*/_react.default.createElement(_optInContent.AdvantagesListItem, {
644 + key: i18n.advantages.length
645 + }, i18n.andMore, " ", /*#__PURE__*/_react.default.createElement(_ui.Link, {
646 + color: "text.primary",
647 + href: optInLinks.readMoreUrl,
648 + target: "_blank"
649 + }, i18n.readMore))))), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
650 + direction: "row",
651 + alignItems: "self-start",
652 + gap: 0.5,
653 + sx: {
654 + mb: 2.5
655 + }
656 + }, /*#__PURE__*/_react.default.createElement(_icons.AlertTriangleIcon, {
657 + color: "action"
658 + }), /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, null, i18n.warning))), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
659 + direction: "column",
660 + width: "clamp(240px, max(340px, 75%), 340px)",
661 + maxWidth: "100%",
662 + gap: 2
663 + }, !isEnrolled ? /*#__PURE__*/_react.default.createElement(_ui.Button, {
664 + onClick: function onClick() {
665 + setShowTerms(true);
666 + },
667 + size: "large",
668 + color: "primary",
669 + variant: "contained",
670 + sx: {
671 + flexGrow: 1
672 + }
673 + }, i18n.buttons.optIn) : /*#__PURE__*/_react.default.createElement(_ui.Button, {
674 + onClick: function onClick() {
675 + return window.location.href = optInLinks.tryOutUrl;
676 + },
677 + size: "large",
678 + color: "primary",
679 + variant: "contained",
680 + sx: {
681 + flexGrow: 1
682 + }
683 + }, i18n.buttons.tryOut), /*#__PURE__*/_react.default.createElement(_ui.Button, {
684 + onClick: function onClick() {
685 + setShowTerms(true);
686 + },
687 + size: "large",
688 + color: "secondary",
689 + variant: "outlined",
690 + sx: {
691 + flexGrow: 1,
692 + visibility: isEnrolled ? 'visible' : 'hidden'
693 + }
694 + }, i18n.buttons.optOut)), /*#__PURE__*/_react.default.createElement(_optInContent.TextNode, null, i18n.feedback, " ", /*#__PURE__*/_react.default.createElement(_ui.Link, {
695 + underline: "hover",
696 + href: optInLinks.feedbackUrl,
697 + target: "_blank"
698 + }, i18n.overToGithub))), /*#__PURE__*/_react.default.createElement(_ui.Stack, {
699 + sx: {
700 + flex: 1,
701 + px: 0,
702 + maxWidth: {
703 + md: '507px',
704 + sm: '600px'
705 + },
706 + mx: 'auto'
707 + }
708 + }, optInImages.square.src ? /*#__PURE__*/_react.default.createElement(_ui.Image, {
709 + src: optInImages.square.src,
710 + alt: i18n.image,
711 + sx: _objectSpread(_objectSpread({}, optInImages.square.sx), {}, {
712 + display: {
713 + xs: 'none',
714 + md: 'block'
715 + }
716 + })
717 + }) : /*#__PURE__*/_react.default.createElement(_optInImgPlaceholders.ImageSquarePlaceholder, {
718 + sx: _objectSpread(_objectSpread({}, optInImages.square.sx), {}, {
719 + display: {
720 + xs: 'none',
721 + md: 'block'
722 + }
723 + })
724 + }), optInImages.landscape.src ? /*#__PURE__*/_react.default.createElement(_ui.Image, {
725 + src: optInImages.landscape.src,
726 + alt: i18n.image,
727 + sx: _objectSpread(_objectSpread({}, optInImages.landscape.sx), {}, {
728 + display: {
729 + xs: 'block',
730 + md: 'none'
731 + }
732 + })
733 + }) : /*#__PURE__*/_react.default.createElement(_optInImgPlaceholders.ImageLandscapePlaceholder, {
734 + sx: _objectSpread(_objectSpread({}, optInImages.landscape.sx), {}, {
735 + display: {
736 + xs: 'block',
737 + md: 'none'
738 + }
739 + })
740 + })), showTerms && /*#__PURE__*/_react.default.createElement(_optInTerms.Terms, {
741 + onClose: handlePopoverClose,
742 + onSubmit: isEnrolled ? maybeOptOut : maybeOptIn,
743 + isEnrolled: isEnrolled
744 + }), optInMessage && /*#__PURE__*/_react.default.createElement(_optInMessage.Message, {
745 + onClose: function onClose() {
746 + return setOptInMessage('');
747 + }
748 + }, optInMessage), optOutMessage && /*#__PURE__*/_react.default.createElement(_optInMessage.Message, {
749 + onClose: function onClose() {
750 + return setOptOutMessage('');
751 + },
752 + action: /*#__PURE__*/_react.default.createElement(_ui.Link, {
753 + href: optInLinks.feedbackUrl,
754 + target: "_blank",
755 + color: "inherit",
756 + sx: {
757 + cursor: 'pointer',
758 + textDecoration: 'none',
759 + pl: 3
760 + }
761 + }, i18n.tellUsWhy)
762 + }, optOutMessage), errorMessage && /*#__PURE__*/_react.default.createElement(_optInMessage.Message, {
763 + severity: "error",
764 + onClose: function onClose() {
765 + return setErrorMessage('');
766 + }
767 + }, errorMessage));
768 +};
769 +OptIn.propTypes = {
770 + state: PropTypes.shape({
771 + features: PropTypes.shape({
772 + editor_v4: PropTypes.bool
773 + })
774 + }).isRequired
775 +};
1255 776
1256 -//#endregion
1257 -//#region node_modules/@babel/runtime/helpers/regeneratorAsync.js
1258 - var require_regeneratorAsync = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1259 - var regeneratorAsyncGen = require_regeneratorAsyncGen();
1260 - function _regeneratorAsync(n, e, r, t, o) {
1261 - var a = regeneratorAsyncGen(n, e, r, t, o);
1262 - return a.next().then(function(n) {
1263 - return n.done ? n.value : a.next();
1264 - });
1265 - }
1266 - module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
1267 - }));
777 +/***/ }),
1268 778
1269 -//#endregion
1270 -//#region node_modules/@babel/runtime/helpers/regeneratorKeys.js
1271 - var require_regeneratorKeys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1272 - function _regeneratorKeys(e) {
1273 - var n = Object(e);
1274 - var r = [];
1275 - for (var t in n) r.unshift(t);
1276 - return function e() {
1277 - for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
1278 - return e.done = !0, e;
1279 - };
1280 - }
1281 - module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
1282 - }));
779 +/***/ "../node_modules/@babel/runtime/helpers/OverloadYield.js":
780 +/*!***************************************************************!*\
781 + !*** ../node_modules/@babel/runtime/helpers/OverloadYield.js ***!
782 + \***************************************************************/
783 +/***/ ((module) => {
1283 784
1284 -//#endregion
1285 -//#region node_modules/@babel/runtime/helpers/typeof.js
1286 - var require_typeof = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1287 - function _typeof(o) {
1288 - "@babel/helpers - typeof";
1289 - return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
1290 - return typeof o;
1291 - } : function(o) {
1292 - return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
1293 - }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
1294 - }
1295 - module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
1296 - }));
785 +function _OverloadYield(e, d) {
786 + this.v = e, this.k = d;
787 +}
788 +module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
1297 789
1298 -//#endregion
1299 -//#region node_modules/@babel/runtime/helpers/regeneratorValues.js
1300 - var require_regeneratorValues = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1301 - var _typeof = require_typeof()["default"];
1302 - function _regeneratorValues(e) {
1303 - if (null != e) {
1304 - var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"];
1305 - var r = 0;
1306 - if (t) return t.call(e);
1307 - if ("function" == typeof e.next) return e;
1308 - if (!isNaN(e.length)) return { next: function next() {
1309 - return e && r >= e.length && (e = void 0), {
1310 - value: e && e[r++],
1311 - done: !e
1312 - };
1313 - } };
1314 - }
1315 - throw new TypeError(_typeof(e) + " is not iterable");
1316 - }
1317 - module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
1318 - }));
790 +/***/ }),
1319 791
1320 -//#endregion
1321 -//#region node_modules/@babel/runtime/helpers/regeneratorRuntime.js
1322 - var require_regeneratorRuntime = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1323 - var OverloadYield = require_OverloadYield();
1324 - var regenerator = require_regenerator$1();
1325 - var regeneratorAsync = require_regeneratorAsync();
1326 - var regeneratorAsyncGen = require_regeneratorAsyncGen();
1327 - var regeneratorAsyncIterator = require_regeneratorAsyncIterator();
1328 - var regeneratorKeys = require_regeneratorKeys();
1329 - var regeneratorValues = require_regeneratorValues();
1330 - function _regeneratorRuntime() {
1331 - "use strict";
1332 - var r = regenerator();
1333 - var e = r.m(_regeneratorRuntime);
1334 - var t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
1335 - function n(r) {
1336 - var e = "function" == typeof r && r.constructor;
1337 - return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
1338 - }
1339 - var o = {
1340 - "throw": 1,
1341 - "return": 2,
1342 - "break": 3,
1343 - "continue": 3
1344 - };
1345 - function a(r) {
1346 - var e;
1347 - var t;
1348 - return function(n) {
1349 - e || (e = {
1350 - stop: function stop() {
1351 - return t(n.a, 2);
1352 - },
1353 - "catch": function _catch() {
1354 - return n.v;
1355 - },
1356 - abrupt: function abrupt(r, e) {
1357 - return t(n.a, o[r], e);
1358 - },
1359 - delegateYield: function delegateYield(r, o, a) {
1360 - return e.resultName = o, t(n.d, regeneratorValues(r), a);
1361 - },
1362 - finish: function finish(r) {
1363 - return t(n.f, r);
1364 - }
1365 - }, t = function t(r, _t, o) {
1366 - n.p = e.prev, n.n = e.next;
1367 - try {
1368 - return r(_t, o);
1369 - } finally {
1370 - e.next = n.n;
1371 - }
1372 - }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
1373 - try {
1374 - return r.call(this, e);
1375 - } finally {
1376 - n.p = e.prev, n.n = e.next;
1377 - }
1378 - };
1379 - }
1380 - return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
1381 - return {
1382 - wrap: function wrap(e, t, n, o) {
1383 - return r.w(a(e), t, n, o && o.reverse());
1384 - },
1385 - isGeneratorFunction: n,
1386 - mark: r.m,
1387 - awrap: function awrap(r, e) {
1388 - return new OverloadYield(r, e);
1389 - },
1390 - AsyncIterator: regeneratorAsyncIterator,
1391 - async: function async(r, e, t, o, u) {
1392 - return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
1393 - },
1394 - keys: regeneratorKeys,
1395 - values: regeneratorValues
1396 - };
1397 - }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
1398 - }
1399 - module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
1400 - }));
792 +/***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":
793 +/*!******************************************************************!*\
794 + !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***!
795 + \******************************************************************/
796 +/***/ ((module) => {
1401 797
1402 -//#endregion
1403 -//#region node_modules/@babel/runtime/regenerator/index.js
1404 - var require_regenerator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1405 - var runtime = require_regeneratorRuntime()();
1406 - module.exports = runtime;
1407 - try {
1408 - regeneratorRuntime = runtime;
1409 - } catch (accidentalStrictMode) {
1410 - if (typeof globalThis === "object") globalThis.regeneratorRuntime = runtime;
1411 - else Function("r", "regeneratorRuntime = r")(runtime);
1412 - }
1413 - }));
798 +function _arrayLikeToArray(r, a) {
799 + (null == a || a > r.length) && (a = r.length);
800 + for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
801 + return n;
802 +}
803 +module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1414 804
1415 -//#endregion
1416 -//#region modules/atomic-opt-in/assets/js/opt-in-page/opt-in-api.js
1417 - var import_regenerator = /* @__PURE__ */ __toESM(require_regenerator());
1418 - var triggerOptIn = /*#__PURE__*/ function() {
1419 - var _ref = _asyncToGenerator(/*#__PURE__*/ import_regenerator.default.mark(function _callee() {
1420 - return import_regenerator.default.wrap(function(_context) {
1421 - while (1) switch (_context.prev = _context.next) {
1422 - case 0: return _context.abrupt("return", elementorCommon.ajax.addRequest("editor_v4_opt_in"));
1423 - case 1:
1424 - case "end": return _context.stop();
1425 - }
1426 - }, _callee);
1427 - }));
1428 - return function triggerOptIn() {
1429 - return _ref.apply(this, arguments);
1430 - };
1431 - }();
1432 - var triggerOptOut = /*#__PURE__*/ function() {
1433 - var _ref2 = _asyncToGenerator(/*#__PURE__*/ import_regenerator.default.mark(function _callee2() {
1434 - return import_regenerator.default.wrap(function(_context2) {
1435 - while (1) switch (_context2.prev = _context2.next) {
1436 - case 0: return _context2.abrupt("return", elementorCommon.ajax.addRequest("editor_v4_opt_out"));
1437 - case 1:
1438 - case "end": return _context2.stop();
1439 - }
1440 - }, _callee2);
1441 - }));
1442 - return function triggerOptOut() {
1443 - return _ref2.apply(this, arguments);
1444 - };
1445 - }();
805 +/***/ }),
1446 806
1447 -//#endregion
1448 -//#region node_modules/dompurify/dist/purify.es.mjs
807 +/***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js":
808 +/*!****************************************************************!*\
809 + !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
810 + \****************************************************************/
811 +/***/ ((module) => {
812 +
813 +function _arrayWithHoles(r) {
814 + if (Array.isArray(r)) return r;
815 +}
816 +module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
817 +
818 +/***/ }),
819 +
820 +/***/ "../node_modules/@babel/runtime/helpers/asyncToGenerator.js":
821 +/*!******************************************************************!*\
822 + !*** ../node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
823 + \******************************************************************/
824 +/***/ ((module) => {
825 +
826 +function asyncGeneratorStep(n, t, e, r, o, a, c) {
827 + try {
828 + var i = n[a](c),
829 + u = i.value;
830 + } catch (n) {
831 + return void e(n);
832 + }
833 + i.done ? t(u) : Promise.resolve(u).then(r, o);
834 +}
835 +function _asyncToGenerator(n) {
836 + return function () {
837 + var t = this,
838 + e = arguments;
839 + return new Promise(function (r, o) {
840 + var a = n.apply(t, e);
841 + function _next(n) {
842 + asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
843 + }
844 + function _throw(n) {
845 + asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
846 + }
847 + _next(void 0);
848 + });
849 + };
850 +}
851 +module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
852 +
853 +/***/ }),
854 +
855 +/***/ "../node_modules/@babel/runtime/helpers/defineProperty.js":
856 +/*!****************************************************************!*\
857 + !*** ../node_modules/@babel/runtime/helpers/defineProperty.js ***!
858 + \****************************************************************/
859 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
860 +
861 +var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ "../node_modules/@babel/runtime/helpers/toPropertyKey.js");
862 +function _defineProperty(e, r, t) {
863 + return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
864 + value: t,
865 + enumerable: !0,
866 + configurable: !0,
867 + writable: !0
868 + }) : e[r] = t, e;
869 +}
870 +module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
871 +
872 +/***/ }),
873 +
874 +/***/ "../node_modules/@babel/runtime/helpers/extends.js":
875 +/*!*********************************************************!*\
876 + !*** ../node_modules/@babel/runtime/helpers/extends.js ***!
877 + \*********************************************************/
878 +/***/ ((module) => {
879 +
880 +function _extends() {
881 + return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {
882 + for (var e = 1; e < arguments.length; e++) {
883 + var t = arguments[e];
884 + for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
885 + }
886 + return n;
887 + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments);
888 +}
889 +module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
890 +
891 +/***/ }),
892 +
893 +/***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js":
894 +/*!***********************************************************************!*\
895 + !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
896 + \***********************************************************************/
897 +/***/ ((module) => {
898 +
899 +function _interopRequireDefault(e) {
900 + return e && e.__esModule ? e : {
901 + "default": e
902 + };
903 +}
904 +module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
905 +
906 +/***/ }),
907 +
908 +/***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
909 +/*!**********************************************************************!*\
910 + !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
911 + \**********************************************************************/
912 +/***/ ((module) => {
913 +
914 +function _iterableToArrayLimit(r, l) {
915 + var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
916 + if (null != t) {
917 + var e,
918 + n,
919 + i,
920 + u,
921 + a = [],
922 + f = !0,
923 + o = !1;
924 + try {
925 + if (i = (t = t.call(r)).next, 0 === l) {
926 + if (Object(t) !== t) return;
927 + f = !1;
928 + } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
929 + } catch (r) {
930 + o = !0, n = r;
931 + } finally {
932 + try {
933 + if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
934 + } finally {
935 + if (o) throw n;
936 + }
937 + }
938 + return a;
939 + }
940 +}
941 +module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
942 +
943 +/***/ }),
944 +
945 +/***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js":
946 +/*!*****************************************************************!*\
947 + !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
948 + \*****************************************************************/
949 +/***/ ((module) => {
950 +
951 +function _nonIterableRest() {
952 + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
953 +}
954 +module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
955 +
956 +/***/ }),
957 +
958 +/***/ "../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":
959 +/*!*************************************************************************!*\
960 + !*** ../node_modules/@babel/runtime/helpers/objectWithoutProperties.js ***!
961 + \*************************************************************************/
962 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
963 +
964 +var objectWithoutPropertiesLoose = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");
965 +function _objectWithoutProperties(e, t) {
966 + if (null == e) return {};
967 + var o,
968 + r,
969 + i = objectWithoutPropertiesLoose(e, t);
970 + if (Object.getOwnPropertySymbols) {
971 + var n = Object.getOwnPropertySymbols(e);
972 + for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
973 + }
974 + return i;
975 +}
976 +module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports;
977 +
978 +/***/ }),
979 +
980 +/***/ "../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":
981 +/*!******************************************************************************!*\
982 + !*** ../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js ***!
983 + \******************************************************************************/
984 +/***/ ((module) => {
985 +
986 +function _objectWithoutPropertiesLoose(r, e) {
987 + if (null == r) return {};
988 + var t = {};
989 + for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
990 + if (-1 !== e.indexOf(n)) continue;
991 + t[n] = r[n];
992 + }
993 + return t;
994 +}
995 +module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
996 +
997 +/***/ }),
998 +
999 +/***/ "../node_modules/@babel/runtime/helpers/regenerator.js":
1000 +/*!*************************************************************!*\
1001 + !*** ../node_modules/@babel/runtime/helpers/regenerator.js ***!
1002 + \*************************************************************/
1003 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1004 +
1005 +var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
1006 +function _regenerator() {
1007 + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
1008 + var e,
1009 + t,
1010 + r = "function" == typeof Symbol ? Symbol : {},
1011 + n = r.iterator || "@@iterator",
1012 + o = r.toStringTag || "@@toStringTag";
1013 + function i(r, n, o, i) {
1014 + var c = n && n.prototype instanceof Generator ? n : Generator,
1015 + u = Object.create(c.prototype);
1016 + return regeneratorDefine(u, "_invoke", function (r, n, o) {
1017 + var i,
1018 + c,
1019 + u,
1020 + f = 0,
1021 + p = o || [],
1022 + y = !1,
1023 + G = {
1024 + p: 0,
1025 + n: 0,
1026 + v: e,
1027 + a: d,
1028 + f: d.bind(e, 4),
1029 + d: function d(t, r) {
1030 + return i = t, c = 0, u = e, G.n = r, a;
1031 + }
1032 + };
1033 + function d(r, n) {
1034 + for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
1035 + var o,
1036 + i = p[t],
1037 + d = G.p,
1038 + l = i[2];
1039 + r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
1040 + }
1041 + if (o || r > 1) return a;
1042 + throw y = !0, n;
1043 + }
1044 + return function (o, p, l) {
1045 + if (f > 1) throw TypeError("Generator is already running");
1046 + for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
1047 + i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
1048 + try {
1049 + if (f = 2, i) {
1050 + if (c || (o = "next"), t = i[o]) {
1051 + if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
1052 + if (!t.done) return t;
1053 + u = t.value, c < 2 && (c = 0);
1054 + } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
1055 + i = e;
1056 + } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
1057 + } catch (t) {
1058 + i = e, c = 1, u = t;
1059 + } finally {
1060 + f = 1;
1061 + }
1062 + }
1063 + return {
1064 + value: t,
1065 + done: y
1066 + };
1067 + };
1068 + }(r, o, i), !0), u;
1069 + }
1070 + var a = {};
1071 + function Generator() {}
1072 + function GeneratorFunction() {}
1073 + function GeneratorFunctionPrototype() {}
1074 + t = Object.getPrototypeOf;
1075 + var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {
1076 + return this;
1077 + }), t),
1078 + u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
1079 + function f(e) {
1080 + return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
1081 + }
1082 + return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), regeneratorDefine(u), regeneratorDefine(u, o, "Generator"), regeneratorDefine(u, n, function () {
1083 + return this;
1084 + }), regeneratorDefine(u, "toString", function () {
1085 + return "[object Generator]";
1086 + }), (module.exports = _regenerator = function _regenerator() {
1087 + return {
1088 + w: i,
1089 + m: f
1090 + };
1091 + }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
1092 +}
1093 +module.exports = _regenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
1094 +
1095 +/***/ }),
1096 +
1097 +/***/ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js":
1098 +/*!******************************************************************!*\
1099 + !*** ../node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
1100 + \******************************************************************/
1101 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1102 +
1103 +var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
1104 +function _regeneratorAsync(n, e, r, t, o) {
1105 + var a = regeneratorAsyncGen(n, e, r, t, o);
1106 + return a.next().then(function (n) {
1107 + return n.done ? n.value : a.next();
1108 + });
1109 +}
1110 +module.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports["default"] = module.exports;
1111 +
1112 +/***/ }),
1113 +
1114 +/***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
1115 +/*!*********************************************************************!*\
1116 + !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
1117 + \*********************************************************************/
1118 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1119 +
1120 +var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
1121 +var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
1122 +function _regeneratorAsyncGen(r, e, t, o, n) {
1123 + return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);
1124 +}
1125 +module.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports["default"] = module.exports;
1126 +
1127 +/***/ }),
1128 +
1129 +/***/ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
1130 +/*!**************************************************************************!*\
1131 + !*** ../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
1132 + \**************************************************************************/
1133 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1134 +
1135 +var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
1136 +var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js");
1137 +function AsyncIterator(t, e) {
1138 + function n(r, o, i, f) {
1139 + try {
1140 + var c = t[r](o),
1141 + u = c.value;
1142 + return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {
1143 + n("next", t, i, f);
1144 + }, function (t) {
1145 + n("throw", t, i, f);
1146 + }) : e.resolve(u).then(function (t) {
1147 + c.value = t, i(c);
1148 + }, function (t) {
1149 + return n("throw", t, i, f);
1150 + });
1151 + } catch (t) {
1152 + f(t);
1153 + }
1154 + }
1155 + var r;
1156 + this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () {
1157 + return this;
1158 + })), regeneratorDefine(this, "_invoke", function (t, o, i) {
1159 + function f() {
1160 + return new e(function (e, r) {
1161 + n(t, i, e, r);
1162 + });
1163 + }
1164 + return r = r ? r.then(f, f) : f();
1165 + }, !0);
1166 +}
1167 +module.exports = AsyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports;
1168 +
1169 +/***/ }),
1170 +
1171 +/***/ "../node_modules/@babel/runtime/helpers/regeneratorDefine.js":
1172 +/*!*******************************************************************!*\
1173 + !*** ../node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
1174 + \*******************************************************************/
1175 +/***/ ((module) => {
1176 +
1177 +function _regeneratorDefine(e, r, n, t) {
1178 + var i = Object.defineProperty;
1179 + try {
1180 + i({}, "", {});
1181 + } catch (e) {
1182 + i = 0;
1183 + }
1184 + module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {
1185 + function o(r, n) {
1186 + _regeneratorDefine(e, r, function (e) {
1187 + return this._invoke(r, n, e);
1188 + });
1189 + }
1190 + r ? i ? i(e, r, {
1191 + value: n,
1192 + enumerable: !t,
1193 + configurable: !t,
1194 + writable: !t
1195 + }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2));
1196 + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _regeneratorDefine(e, r, n, t);
1197 +}
1198 +module.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports["default"] = module.exports;
1199 +
1200 +/***/ }),
1201 +
1202 +/***/ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js":
1203 +/*!*****************************************************************!*\
1204 + !*** ../node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
1205 + \*****************************************************************/
1206 +/***/ ((module) => {
1207 +
1208 +function _regeneratorKeys(e) {
1209 + var n = Object(e),
1210 + r = [];
1211 + for (var t in n) r.unshift(t);
1212 + return function e() {
1213 + for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;
1214 + return e.done = !0, e;
1215 + };
1216 +}
1217 +module.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports["default"] = module.exports;
1218 +
1219 +/***/ }),
1220 +
1221 +/***/ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
1222 +/*!********************************************************************!*\
1223 + !*** ../node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
1224 + \********************************************************************/
1225 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1226 +
1227 +var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ "../node_modules/@babel/runtime/helpers/OverloadYield.js");
1228 +var regenerator = __webpack_require__(/*! ./regenerator.js */ "../node_modules/@babel/runtime/helpers/regenerator.js");
1229 +var regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsync.js");
1230 +var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js");
1231 +var regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ "../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js");
1232 +var regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ "../node_modules/@babel/runtime/helpers/regeneratorKeys.js");
1233 +var regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ "../node_modules/@babel/runtime/helpers/regeneratorValues.js");
1234 +function _regeneratorRuntime() {
1235 + "use strict";
1236 +
1237 + var r = regenerator(),
1238 + e = r.m(_regeneratorRuntime),
1239 + t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;
1240 + function n(r) {
1241 + var e = "function" == typeof r && r.constructor;
1242 + return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name));
1243 + }
1244 + var o = {
1245 + "throw": 1,
1246 + "return": 2,
1247 + "break": 3,
1248 + "continue": 3
1249 + };
1250 + function a(r) {
1251 + var e, t;
1252 + return function (n) {
1253 + e || (e = {
1254 + stop: function stop() {
1255 + return t(n.a, 2);
1256 + },
1257 + "catch": function _catch() {
1258 + return n.v;
1259 + },
1260 + abrupt: function abrupt(r, e) {
1261 + return t(n.a, o[r], e);
1262 + },
1263 + delegateYield: function delegateYield(r, o, a) {
1264 + return e.resultName = o, t(n.d, regeneratorValues(r), a);
1265 + },
1266 + finish: function finish(r) {
1267 + return t(n.f, r);
1268 + }
1269 + }, t = function t(r, _t, o) {
1270 + n.p = e.prev, n.n = e.next;
1271 + try {
1272 + return r(_t, o);
1273 + } finally {
1274 + e.next = n.n;
1275 + }
1276 + }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;
1277 + try {
1278 + return r.call(this, e);
1279 + } finally {
1280 + n.p = e.prev, n.n = e.next;
1281 + }
1282 + };
1283 + }
1284 + return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
1285 + return {
1286 + wrap: function wrap(e, t, n, o) {
1287 + return r.w(a(e), t, n, o && o.reverse());
1288 + },
1289 + isGeneratorFunction: n,
1290 + mark: r.m,
1291 + awrap: function awrap(r, e) {
1292 + return new OverloadYield(r, e);
1293 + },
1294 + AsyncIterator: regeneratorAsyncIterator,
1295 + async: function async(r, e, t, o, u) {
1296 + return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);
1297 + },
1298 + keys: regeneratorKeys,
1299 + values: regeneratorValues
1300 + };
1301 + }, module.exports.__esModule = true, module.exports["default"] = module.exports)();
1302 +}
1303 +module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
1304 +
1305 +/***/ }),
1306 +
1307 +/***/ "../node_modules/@babel/runtime/helpers/regeneratorValues.js":
1308 +/*!*******************************************************************!*\
1309 + !*** ../node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
1310 + \*******************************************************************/
1311 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1312 +
1313 +var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1314 +function _regeneratorValues(e) {
1315 + if (null != e) {
1316 + var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"],
1317 + r = 0;
1318 + if (t) return t.call(e);
1319 + if ("function" == typeof e.next) return e;
1320 + if (!isNaN(e.length)) return {
1321 + next: function next() {
1322 + return e && r >= e.length && (e = void 0), {
1323 + value: e && e[r++],
1324 + done: !e
1325 + };
1326 + }
1327 + };
1328 + }
1329 + throw new TypeError(_typeof(e) + " is not iterable");
1330 +}
1331 +module.exports = _regeneratorValues, module.exports.__esModule = true, module.exports["default"] = module.exports;
1332 +
1333 +/***/ }),
1334 +
1335 +/***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js":
1336 +/*!***************************************************************!*\
1337 + !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***!
1338 + \***************************************************************/
1339 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1340 +
1341 +var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js");
1342 +var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
1343 +var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js");
1344 +var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js");
1345 +function _slicedToArray(r, e) {
1346 + return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();
1347 +}
1348 +module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1349 +
1350 +/***/ }),
1351 +
1352 +/***/ "../node_modules/@babel/runtime/helpers/toPrimitive.js":
1353 +/*!*************************************************************!*\
1354 + !*** ../node_modules/@babel/runtime/helpers/toPrimitive.js ***!
1355 + \*************************************************************/
1356 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1357 +
1358 +var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1359 +function toPrimitive(t, r) {
1360 + if ("object" != _typeof(t) || !t) return t;
1361 + var e = t[Symbol.toPrimitive];
1362 + if (void 0 !== e) {
1363 + var i = e.call(t, r || "default");
1364 + if ("object" != _typeof(i)) return i;
1365 + throw new TypeError("@@toPrimitive must return a primitive value.");
1366 + }
1367 + return ("string" === r ? String : Number)(t);
1368 +}
1369 +module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
1370 +
1371 +/***/ }),
1372 +
1373 +/***/ "../node_modules/@babel/runtime/helpers/toPropertyKey.js":
1374 +/*!***************************************************************!*\
1375 + !*** ../node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
1376 + \***************************************************************/
1377 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1378 +
1379 +var _typeof = (__webpack_require__(/*! ./typeof.js */ "../node_modules/@babel/runtime/helpers/typeof.js")["default"]);
1380 +var toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ "../node_modules/@babel/runtime/helpers/toPrimitive.js");
1381 +function toPropertyKey(t) {
1382 + var i = toPrimitive(t, "string");
1383 + return "symbol" == _typeof(i) ? i : i + "";
1384 +}
1385 +module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
1386 +
1387 +/***/ }),
1388 +
1389 +/***/ "../node_modules/@babel/runtime/helpers/typeof.js":
1390 +/*!********************************************************!*\
1391 + !*** ../node_modules/@babel/runtime/helpers/typeof.js ***!
1392 + \********************************************************/
1393 +/***/ ((module) => {
1394 +
1395 +function _typeof(o) {
1396 + "@babel/helpers - typeof";
1397 +
1398 + return module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
1399 + return typeof o;
1400 + } : function (o) {
1401 + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
1402 + }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o);
1403 +}
1404 +module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
1405 +
1406 +/***/ }),
1407 +
1408 +/***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":
1409 +/*!****************************************************************************!*\
1410 + !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***!
1411 + \****************************************************************************/
1412 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1413 +
1414 +var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js");
1415 +function _unsupportedIterableToArray(r, a) {
1416 + if (r) {
1417 + if ("string" == typeof r) return arrayLikeToArray(r, a);
1418 + var t = {}.toString.call(r).slice(8, -1);
1419 + return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;
1420 + }
1421 +}
1422 +module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
1423 +
1424 +/***/ }),
1425 +
1426 +/***/ "../node_modules/@babel/runtime/regenerator/index.js":
1427 +/*!***********************************************************!*\
1428 + !*** ../node_modules/@babel/runtime/regenerator/index.js ***!
1429 + \***********************************************************/
1430 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1431 +
1432 +// TODO(Babel 8): Remove this file.
1433 +
1434 +var runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ "../node_modules/@babel/runtime/helpers/regeneratorRuntime.js")();
1435 +module.exports = runtime;
1436 +
1437 +// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
1438 +try {
1439 + regeneratorRuntime = runtime;
1440 +} catch (accidentalStrictMode) {
1441 + if (typeof globalThis === "object") {
1442 + globalThis.regeneratorRuntime = runtime;
1443 + } else {
1444 + Function("r", "regeneratorRuntime = r")(runtime);
1445 + }
1446 +}
1447 +
1448 +
1449 +/***/ }),
1450 +
1451 +/***/ "../node_modules/dompurify/dist/purify.cjs.js":
1452 +/*!****************************************************!*\
1453 + !*** ../node_modules/dompurify/dist/purify.cjs.js ***!
1454 + \****************************************************/
1455 +/***/ ((module) => {
1456 +
1457 +"use strict";
1449 1458 /*! @license DOMPurify 3.3.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.0/LICENSE */
1450 - var { entries, setPrototypeOf, isFrozen, getPrototypeOf, getOwnPropertyDescriptor } = Object;
1451 - var { freeze, seal, create } = Object;
1452 - var { apply, construct } = typeof Reflect !== "undefined" && Reflect;
1453 - if (!freeze) freeze = function freeze(x) {
1454 - return x;
1455 - };
1456 - if (!seal) seal = function seal(x) {
1457 - return x;
1458 - };
1459 - if (!apply) apply = function apply(func, thisArg) {
1460 - for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) args[_key - 2] = arguments[_key];
1461 - return func.apply(thisArg, args);
1462 - };
1463 - if (!construct) construct = function construct(Func) {
1464 - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) args[_key2 - 1] = arguments[_key2];
1465 - return new Func(...args);
1466 - };
1467 - var arrayForEach = unapply(Array.prototype.forEach);
1468 - var arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);
1469 - var arrayPop = unapply(Array.prototype.pop);
1470 - var arrayPush = unapply(Array.prototype.push);
1471 - var arraySplice = unapply(Array.prototype.splice);
1472 - var stringToLowerCase = unapply(String.prototype.toLowerCase);
1473 - var stringToString = unapply(String.prototype.toString);
1474 - var stringMatch = unapply(String.prototype.match);
1475 - var stringReplace = unapply(String.prototype.replace);
1476 - var stringIndexOf = unapply(String.prototype.indexOf);
1477 - var stringTrim = unapply(String.prototype.trim);
1478 - var objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);
1479 - var regExpTest = unapply(RegExp.prototype.test);
1480 - var typeErrorCreate = unconstruct(TypeError);
1481 - /**
1482 - * Creates a new function that calls the given function with a specified thisArg and arguments.
1483 - *
1484 - * @param func - The function to be wrapped and called.
1485 - * @returns A new function that calls the given function with a specified thisArg and arguments.
1486 - */
1487 - function unapply(func) {
1488 - return function(thisArg) {
1489 - if (thisArg instanceof RegExp) thisArg.lastIndex = 0;
1490 - for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) args[_key3 - 1] = arguments[_key3];
1491 - return apply(func, thisArg, args);
1492 - };
1459 +
1460 +
1461 +
1462 +const {
1463 + entries,
1464 + setPrototypeOf,
1465 + isFrozen,
1466 + getPrototypeOf,
1467 + getOwnPropertyDescriptor
1468 +} = Object;
1469 +let {
1470 + freeze,
1471 + seal,
1472 + create
1473 +} = Object; // eslint-disable-line import/no-mutable-exports
1474 +let {
1475 + apply,
1476 + construct
1477 +} = typeof Reflect !== 'undefined' && Reflect;
1478 +if (!freeze) {
1479 + freeze = function freeze(x) {
1480 + return x;
1481 + };
1482 +}
1483 +if (!seal) {
1484 + seal = function seal(x) {
1485 + return x;
1486 + };
1487 +}
1488 +if (!apply) {
1489 + apply = function apply(func, thisArg) {
1490 + for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1491 + args[_key - 2] = arguments[_key];
1492 + }
1493 + return func.apply(thisArg, args);
1494 + };
1495 +}
1496 +if (!construct) {
1497 + construct = function construct(Func) {
1498 + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
1499 + args[_key2 - 1] = arguments[_key2];
1500 + }
1501 + return new Func(...args);
1502 + };
1503 +}
1504 +const arrayForEach = unapply(Array.prototype.forEach);
1505 +const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);
1506 +const arrayPop = unapply(Array.prototype.pop);
1507 +const arrayPush = unapply(Array.prototype.push);
1508 +const arraySplice = unapply(Array.prototype.splice);
1509 +const stringToLowerCase = unapply(String.prototype.toLowerCase);
1510 +const stringToString = unapply(String.prototype.toString);
1511 +const stringMatch = unapply(String.prototype.match);
1512 +const stringReplace = unapply(String.prototype.replace);
1513 +const stringIndexOf = unapply(String.prototype.indexOf);
1514 +const stringTrim = unapply(String.prototype.trim);
1515 +const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);
1516 +const regExpTest = unapply(RegExp.prototype.test);
1517 +const typeErrorCreate = unconstruct(TypeError);
1518 +/**
1519 + * Creates a new function that calls the given function with a specified thisArg and arguments.
1520 + *
1521 + * @param func - The function to be wrapped and called.
1522 + * @returns A new function that calls the given function with a specified thisArg and arguments.
1523 + */
1524 +function unapply(func) {
1525 + return function (thisArg) {
1526 + if (thisArg instanceof RegExp) {
1527 + thisArg.lastIndex = 0;
1528 + }
1529 + for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
1530 + args[_key3 - 1] = arguments[_key3];
1531 + }
1532 + return apply(func, thisArg, args);
1533 + };
1534 +}
1535 +/**
1536 + * Creates a new function that constructs an instance of the given constructor function with the provided arguments.
1537 + *
1538 + * @param func - The constructor function to be wrapped and called.
1539 + * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
1540 + */
1541 +function unconstruct(Func) {
1542 + return function () {
1543 + for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1544 + args[_key4] = arguments[_key4];
1545 + }
1546 + return construct(Func, args);
1547 + };
1548 +}
1549 +/**
1550 + * Add properties to a lookup table
1551 + *
1552 + * @param set - The set to which elements will be added.
1553 + * @param array - The array containing elements to be added to the set.
1554 + * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.
1555 + * @returns The modified set with added elements.
1556 + */
1557 +function addToSet(set, array) {
1558 + let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;
1559 + if (setPrototypeOf) {
1560 + // Make 'in' and truthy checks like Boolean(set.constructor)
1561 + // independent of any properties defined on Object.prototype.
1562 + // Prevent prototype setters from intercepting set as a this value.
1563 + setPrototypeOf(set, null);
1564 + }
1565 + let l = array.length;
1566 + while (l--) {
1567 + let element = array[l];
1568 + if (typeof element === 'string') {
1569 + const lcElement = transformCaseFunc(element);
1570 + if (lcElement !== element) {
1571 + // Config presets (e.g. tags.js, attrs.js) are immutable.
1572 + if (!isFrozen(array)) {
1573 + array[l] = lcElement;
1574 + }
1575 + element = lcElement;
1576 + }
1577 + }
1578 + set[element] = true;
1579 + }
1580 + return set;
1581 +}
1582 +/**
1583 + * Clean up an array to harden against CSPP
1584 + *
1585 + * @param array - The array to be cleaned.
1586 + * @returns The cleaned version of the array
1587 + */
1588 +function cleanArray(array) {
1589 + for (let index = 0; index < array.length; index++) {
1590 + const isPropertyExist = objectHasOwnProperty(array, index);
1591 + if (!isPropertyExist) {
1592 + array[index] = null;
1593 + }
1594 + }
1595 + return array;
1596 +}
1597 +/**
1598 + * Shallow clone an object
1599 + *
1600 + * @param object - The object to be cloned.
1601 + * @returns A new object that copies the original.
1602 + */
1603 +function clone(object) {
1604 + const newObject = create(null);
1605 + for (const [property, value] of entries(object)) {
1606 + const isPropertyExist = objectHasOwnProperty(object, property);
1607 + if (isPropertyExist) {
1608 + if (Array.isArray(value)) {
1609 + newObject[property] = cleanArray(value);
1610 + } else if (value && typeof value === 'object' && value.constructor === Object) {
1611 + newObject[property] = clone(value);
1612 + } else {
1613 + newObject[property] = value;
1614 + }
1615 + }
1616 + }
1617 + return newObject;
1618 +}
1619 +/**
1620 + * This method automatically checks if the prop is function or getter and behaves accordingly.
1621 + *
1622 + * @param object - The object to look up the getter function in its prototype chain.
1623 + * @param prop - The property name for which to find the getter function.
1624 + * @returns The getter function found in the prototype chain or a fallback function.
1625 + */
1626 +function lookupGetter(object, prop) {
1627 + while (object !== null) {
1628 + const desc = getOwnPropertyDescriptor(object, prop);
1629 + if (desc) {
1630 + if (desc.get) {
1631 + return unapply(desc.get);
1632 + }
1633 + if (typeof desc.value === 'function') {
1634 + return unapply(desc.value);
1635 + }
1636 + }
1637 + object = getPrototypeOf(object);
1638 + }
1639 + function fallbackValue() {
1640 + return null;
1641 + }
1642 + return fallbackValue;
1643 +}
1644 +
1645 +const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);
1646 +const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);
1647 +const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);
1648 +// List of SVG elements that are disallowed by default.
1649 +// We still need to know them so that we can do namespace
1650 +// checks properly in case one wants to add them to
1651 +// allow-list.
1652 +const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);
1653 +const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);
1654 +// Similarly to SVG, we want to know all MathML elements,
1655 +// even those that we disallow by default.
1656 +const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);
1657 +const text = freeze(['#text']);
1658 +
1659 +const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);
1660 +const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);
1661 +const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);
1662 +const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);
1663 +
1664 +// eslint-disable-next-line unicorn/better-regex
1665 +const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode
1666 +const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
1667 +const TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm); // eslint-disable-line unicorn/better-regex
1668 +const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/); // eslint-disable-line no-useless-escape
1669 +const ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape
1670 +const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
1671 +);
1672 +const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
1673 +const ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g // eslint-disable-line no-control-regex
1674 +);
1675 +const DOCTYPE_NAME = seal(/^html$/i);
1676 +const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
1677 +
1678 +var EXPRESSIONS = /*#__PURE__*/Object.freeze({
1679 + __proto__: null,
1680 + ARIA_ATTR: ARIA_ATTR,
1681 + ATTR_WHITESPACE: ATTR_WHITESPACE,
1682 + CUSTOM_ELEMENT: CUSTOM_ELEMENT,
1683 + DATA_ATTR: DATA_ATTR,
1684 + DOCTYPE_NAME: DOCTYPE_NAME,
1685 + ERB_EXPR: ERB_EXPR,
1686 + IS_ALLOWED_URI: IS_ALLOWED_URI,
1687 + IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,
1688 + MUSTACHE_EXPR: MUSTACHE_EXPR,
1689 + TMPLIT_EXPR: TMPLIT_EXPR
1690 +});
1691 +
1692 +/* eslint-disable @typescript-eslint/indent */
1693 +// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
1694 +const NODE_TYPE = {
1695 + element: 1,
1696 + attribute: 2,
1697 + text: 3,
1698 + cdataSection: 4,
1699 + entityReference: 5,
1700 + // Deprecated
1701 + entityNode: 6,
1702 + // Deprecated
1703 + progressingInstruction: 7,
1704 + comment: 8,
1705 + document: 9,
1706 + documentType: 10,
1707 + documentFragment: 11,
1708 + notation: 12 // Deprecated
1709 +};
1710 +const getGlobal = function getGlobal() {
1711 + return typeof window === 'undefined' ? null : window;
1712 +};
1713 +/**
1714 + * Creates a no-op policy for internal use only.
1715 + * Don't export this function outside this module!
1716 + * @param trustedTypes The policy factory.
1717 + * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).
1718 + * @return The policy created (or null, if Trusted Types
1719 + * are not supported or creating the policy failed).
1720 + */
1721 +const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {
1722 + if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {
1723 + return null;
1724 + }
1725 + // Allow the callers to control the unique policy name
1726 + // by adding a data-tt-policy-suffix to the script element with the DOMPurify.
1727 + // Policy creation with duplicate names throws in Trusted Types.
1728 + let suffix = null;
1729 + const ATTR_NAME = 'data-tt-policy-suffix';
1730 + if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {
1731 + suffix = purifyHostElement.getAttribute(ATTR_NAME);
1732 + }
1733 + const policyName = 'dompurify' + (suffix ? '#' + suffix : '');
1734 + try {
1735 + return trustedTypes.createPolicy(policyName, {
1736 + createHTML(html) {
1737 + return html;
1738 + },
1739 + createScriptURL(scriptUrl) {
1740 + return scriptUrl;
1741 + }
1742 + });
1743 + } catch (_) {
1744 + // Policy creation failed (most likely another DOMPurify script has
1745 + // already run). Skip creating the policy, as this will only cause errors
1746 + // if TT are enforced.
1747 + console.warn('TrustedTypes policy ' + policyName + ' could not be created.');
1748 + return null;
1749 + }
1750 +};
1751 +const _createHooksMap = function _createHooksMap() {
1752 + return {
1753 + afterSanitizeAttributes: [],
1754 + afterSanitizeElements: [],
1755 + afterSanitizeShadowDOM: [],
1756 + beforeSanitizeAttributes: [],
1757 + beforeSanitizeElements: [],
1758 + beforeSanitizeShadowDOM: [],
1759 + uponSanitizeAttribute: [],
1760 + uponSanitizeElement: [],
1761 + uponSanitizeShadowNode: []
1762 + };
1763 +};
1764 +function createDOMPurify() {
1765 + let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
1766 + const DOMPurify = root => createDOMPurify(root);
1767 + DOMPurify.version = '3.3.0';
1768 + DOMPurify.removed = [];
1769 + if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
1770 + // Not running in a browser, provide a factory function
1771 + // so that you can pass your own Window
1772 + DOMPurify.isSupported = false;
1773 + return DOMPurify;
1774 + }
1775 + let {
1776 + document
1777 + } = window;
1778 + const originalDocument = document;
1779 + const currentScript = originalDocument.currentScript;
1780 + const {
1781 + DocumentFragment,
1782 + HTMLTemplateElement,
1783 + Node,
1784 + Element,
1785 + NodeFilter,
1786 + NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,
1787 + HTMLFormElement,
1788 + DOMParser,
1789 + trustedTypes
1790 + } = window;
1791 + const ElementPrototype = Element.prototype;
1792 + const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');
1793 + const remove = lookupGetter(ElementPrototype, 'remove');
1794 + const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
1795 + const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
1796 + const getParentNode = lookupGetter(ElementPrototype, 'parentNode');
1797 + // As per issue #47, the web-components registry is inherited by a
1798 + // new document created via createHTMLDocument. As per the spec
1799 + // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)
1800 + // a new empty registry is used when creating a template contents owner
1801 + // document, so we use that as our parent document to ensure nothing
1802 + // is inherited.
1803 + if (typeof HTMLTemplateElement === 'function') {
1804 + const template = document.createElement('template');
1805 + if (template.content && template.content.ownerDocument) {
1806 + document = template.content.ownerDocument;
1807 + }
1808 + }
1809 + let trustedTypesPolicy;
1810 + let emptyHTML = '';
1811 + const {
1812 + implementation,
1813 + createNodeIterator,
1814 + createDocumentFragment,
1815 + getElementsByTagName
1816 + } = document;
1817 + const {
1818 + importNode
1819 + } = originalDocument;
1820 + let hooks = _createHooksMap();
1821 + /**
1822 + * Expose whether this browser supports running the full DOMPurify.
1823 + */
1824 + DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;
1825 + const {
1826 + MUSTACHE_EXPR,
1827 + ERB_EXPR,
1828 + TMPLIT_EXPR,
1829 + DATA_ATTR,
1830 + ARIA_ATTR,
1831 + IS_SCRIPT_OR_DATA,
1832 + ATTR_WHITESPACE,
1833 + CUSTOM_ELEMENT
1834 + } = EXPRESSIONS;
1835 + let {
1836 + IS_ALLOWED_URI: IS_ALLOWED_URI$1
1837 + } = EXPRESSIONS;
1838 + /**
1839 + * We consider the elements and attributes below to be safe. Ideally
1840 + * don't add any new ones but feel free to remove unwanted ones.
1841 + */
1842 + /* allowed element names */
1843 + let ALLOWED_TAGS = null;
1844 + const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);
1845 + /* Allowed attribute names */
1846 + let ALLOWED_ATTR = null;
1847 + const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);
1848 + /*
1849 + * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.
1850 + * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)
1851 + * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)
1852 + * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.
1853 + */
1854 + let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {
1855 + tagNameCheck: {
1856 + writable: true,
1857 + configurable: false,
1858 + enumerable: true,
1859 + value: null
1860 + },
1861 + attributeNameCheck: {
1862 + writable: true,
1863 + configurable: false,
1864 + enumerable: true,
1865 + value: null
1866 + },
1867 + allowCustomizedBuiltInElements: {
1868 + writable: true,
1869 + configurable: false,
1870 + enumerable: true,
1871 + value: false
1872 + }
1873 + }));
1874 + /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */
1875 + let FORBID_TAGS = null;
1876 + /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */
1877 + let FORBID_ATTR = null;
1878 + /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */
1879 + const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
1880 + tagCheck: {
1881 + writable: true,
1882 + configurable: false,
1883 + enumerable: true,
1884 + value: null
1885 + },
1886 + attributeCheck: {
1887 + writable: true,
1888 + configurable: false,
1889 + enumerable: true,
1890 + value: null
1891 + }
1892 + }));
1893 + /* Decide if ARIA attributes are okay */
1894 + let ALLOW_ARIA_ATTR = true;
1895 + /* Decide if custom data attributes are okay */
1896 + let ALLOW_DATA_ATTR = true;
1897 + /* Decide if unknown protocols are okay */
1898 + let ALLOW_UNKNOWN_PROTOCOLS = false;
1899 + /* Decide if self-closing tags in attributes are allowed.
1900 + * Usually removed due to a mXSS issue in jQuery 3.0 */
1901 + let ALLOW_SELF_CLOSE_IN_ATTR = true;
1902 + /* Output should be safe for common template engines.
1903 + * This means, DOMPurify removes data attributes, mustaches and ERB
1904 + */
1905 + let SAFE_FOR_TEMPLATES = false;
1906 + /* Output should be safe even for XML used within HTML and alike.
1907 + * This means, DOMPurify removes comments when containing risky content.
1908 + */
1909 + let SAFE_FOR_XML = true;
1910 + /* Decide if document with <html>... should be returned */
1911 + let WHOLE_DOCUMENT = false;
1912 + /* Track whether config is already set on this instance of DOMPurify. */
1913 + let SET_CONFIG = false;
1914 + /* Decide if all elements (e.g. style, script) must be children of
1915 + * document.body. By default, browsers might move them to document.head */
1916 + let FORCE_BODY = false;
1917 + /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html
1918 + * string (or a TrustedHTML object if Trusted Types are supported).
1919 + * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead
1920 + */
1921 + let RETURN_DOM = false;
1922 + /* Decide if a DOM `DocumentFragment` should be returned, instead of a html
1923 + * string (or a TrustedHTML object if Trusted Types are supported) */
1924 + let RETURN_DOM_FRAGMENT = false;
1925 + /* Try to return a Trusted Type object instead of a string, return a string in
1926 + * case Trusted Types are not supported */
1927 + let RETURN_TRUSTED_TYPE = false;
1928 + /* Output should be free from DOM clobbering attacks?
1929 + * This sanitizes markups named with colliding, clobberable built-in DOM APIs.
1930 + */
1931 + let SANITIZE_DOM = true;
1932 + /* Achieve full DOM Clobbering protection by isolating the namespace of named
1933 + * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.
1934 + *
1935 + * HTML/DOM spec rules that enable DOM Clobbering:
1936 + * - Named Access on Window (§7.3.3)
1937 + * - DOM Tree Accessors (§3.1.5)
1938 + * - Form Element Parent-Child Relations (§4.10.3)
1939 + * - Iframe srcdoc / Nested WindowProxies (§4.8.5)
1940 + * - HTMLCollection (§4.2.10.2)
1941 + *
1942 + * Namespace isolation is implemented by prefixing `id` and `name` attributes
1943 + * with a constant string, i.e., `user-content-`
1944 + */
1945 + let SANITIZE_NAMED_PROPS = false;
1946 + const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';
1947 + /* Keep element content when removing element? */
1948 + let KEEP_CONTENT = true;
1949 + /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead
1950 + * of importing it into a new Document and returning a sanitized copy */
1951 + let IN_PLACE = false;
1952 + /* Allow usage of profiles like html, svg and mathMl */
1953 + let USE_PROFILES = {};
1954 + /* Tags to ignore content of when KEEP_CONTENT is true */
1955 + let FORBID_CONTENTS = null;
1956 + const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);
1957 + /* Tags that are safe for data: URIs */
1958 + let DATA_URI_TAGS = null;
1959 + const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);
1960 + /* Attributes safe for values like "javascript:" */
1961 + let URI_SAFE_ATTRIBUTES = null;
1962 + const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);
1963 + const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';
1964 + const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
1965 + const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
1966 + /* Document namespace */
1967 + let NAMESPACE = HTML_NAMESPACE;
1968 + let IS_EMPTY_INPUT = false;
1969 + /* Allowed XHTML+XML namespaces */
1970 + let ALLOWED_NAMESPACES = null;
1971 + const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
1972 + let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);
1973 + let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);
1974 + // Certain elements are allowed in both SVG and HTML
1975 + // namespace. We need to specify them explicitly
1976 + // so that they don't get erroneously deleted from
1977 + // HTML namespace.
1978 + const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);
1979 + /* Parsing of strict XHTML documents */
1980 + let PARSER_MEDIA_TYPE = null;
1981 + const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];
1982 + const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';
1983 + let transformCaseFunc = null;
1984 + /* Keep a reference to config to pass to hooks */
1985 + let CONFIG = null;
1986 + /* Ideally, do not touch anything below this line */
1987 + /* ______________________________________________ */
1988 + const formElement = document.createElement('form');
1989 + const isRegexOrFunction = function isRegexOrFunction(testValue) {
1990 + return testValue instanceof RegExp || testValue instanceof Function;
1991 + };
1992 + /**
1993 + * _parseConfig
1994 + *
1995 + * @param cfg optional config literal
1996 + */
1997 + // eslint-disable-next-line complexity
1998 + const _parseConfig = function _parseConfig() {
1999 + let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2000 + if (CONFIG && CONFIG === cfg) {
2001 + return;
2002 + }
2003 + /* Shield configuration object from tampering */
2004 + if (!cfg || typeof cfg !== 'object') {
2005 + cfg = {};
2006 + }
2007 + /* Shield configuration object from prototype pollution */
2008 + cfg = clone(cfg);
2009 + PARSER_MEDIA_TYPE =
2010 + // eslint-disable-next-line unicorn/prefer-includes
2011 + SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;
2012 + // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
2013 + transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;
2014 + /* Set configuration parameters */
2015 + ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
2016 + ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
2017 + ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
2018 + URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;
2019 + DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;
2020 + FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
2021 + FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});
2022 + FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});
2023 + USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;
2024 + ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
2025 + ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
2026 + ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false
2027 + ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true
2028 + SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false
2029 + SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true
2030 + WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false
2031 + RETURN_DOM = cfg.RETURN_DOM || false; // Default false
2032 + RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false
2033 + RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false
2034 + FORCE_BODY = cfg.FORCE_BODY || false; // Default false
2035 + SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true
2036 + SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false
2037 + KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true
2038 + IN_PLACE = cfg.IN_PLACE || false; // Default false
2039 + IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
2040 + NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
2041 + MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
2042 + HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
2043 + CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
2044 + if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
2045 + CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
2046 + }
2047 + if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
2048 + CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
2049 + }
2050 + if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {
2051 + CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
2052 + }
2053 + if (SAFE_FOR_TEMPLATES) {
2054 + ALLOW_DATA_ATTR = false;
2055 + }
2056 + if (RETURN_DOM_FRAGMENT) {
2057 + RETURN_DOM = true;
2058 + }
2059 + /* Parse profile info */
2060 + if (USE_PROFILES) {
2061 + ALLOWED_TAGS = addToSet({}, text);
2062 + ALLOWED_ATTR = [];
2063 + if (USE_PROFILES.html === true) {
2064 + addToSet(ALLOWED_TAGS, html$1);
2065 + addToSet(ALLOWED_ATTR, html);
2066 + }
2067 + if (USE_PROFILES.svg === true) {
2068 + addToSet(ALLOWED_TAGS, svg$1);
2069 + addToSet(ALLOWED_ATTR, svg);
2070 + addToSet(ALLOWED_ATTR, xml);
2071 + }
2072 + if (USE_PROFILES.svgFilters === true) {
2073 + addToSet(ALLOWED_TAGS, svgFilters);
2074 + addToSet(ALLOWED_ATTR, svg);
2075 + addToSet(ALLOWED_ATTR, xml);
2076 + }
2077 + if (USE_PROFILES.mathMl === true) {
2078 + addToSet(ALLOWED_TAGS, mathMl$1);
2079 + addToSet(ALLOWED_ATTR, mathMl);
2080 + addToSet(ALLOWED_ATTR, xml);
2081 + }
2082 + }
2083 + /* Merge configuration parameters */
2084 + if (cfg.ADD_TAGS) {
2085 + if (typeof cfg.ADD_TAGS === 'function') {
2086 + EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
2087 + } else {
2088 + if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
2089 + ALLOWED_TAGS = clone(ALLOWED_TAGS);
2090 + }
2091 + addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
2092 + }
2093 + }
2094 + if (cfg.ADD_ATTR) {
2095 + if (typeof cfg.ADD_ATTR === 'function') {
2096 + EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
2097 + } else {
2098 + if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
2099 + ALLOWED_ATTR = clone(ALLOWED_ATTR);
2100 + }
2101 + addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
2102 + }
2103 + }
2104 + if (cfg.ADD_URI_SAFE_ATTR) {
2105 + addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
2106 + }
2107 + if (cfg.FORBID_CONTENTS) {
2108 + if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
2109 + FORBID_CONTENTS = clone(FORBID_CONTENTS);
2110 + }
2111 + addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
2112 + }
2113 + /* Add #text in case KEEP_CONTENT is set to true */
2114 + if (KEEP_CONTENT) {
2115 + ALLOWED_TAGS['#text'] = true;
2116 + }
2117 + /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */
2118 + if (WHOLE_DOCUMENT) {
2119 + addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);
2120 + }
2121 + /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */
2122 + if (ALLOWED_TAGS.table) {
2123 + addToSet(ALLOWED_TAGS, ['tbody']);
2124 + delete FORBID_TAGS.tbody;
2125 + }
2126 + if (cfg.TRUSTED_TYPES_POLICY) {
2127 + if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {
2128 + throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
2129 + }
2130 + if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {
2131 + throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
2132 + }
2133 + // Overwrite existing TrustedTypes policy.
2134 + trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
2135 + // Sign local variables required by `sanitize`.
2136 + emptyHTML = trustedTypesPolicy.createHTML('');
2137 + } else {
2138 + // Uninitialized policy, attempt to initialize the internal dompurify policy.
2139 + if (trustedTypesPolicy === undefined) {
2140 + trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
2141 + }
2142 + // If creating the internal policy succeeded sign internal variables.
2143 + if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {
2144 + emptyHTML = trustedTypesPolicy.createHTML('');
2145 + }
2146 + }
2147 + // Prevent further manipulation of configuration.
2148 + // Not available in IE8, Safari 5, etc.
2149 + if (freeze) {
2150 + freeze(cfg);
2151 + }
2152 + CONFIG = cfg;
2153 + };
2154 + /* Keep track of all possible SVG and MathML tags
2155 + * so that we can perform the namespace checks
2156 + * correctly. */
2157 + const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);
2158 + const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
2159 + /**
2160 + * @param element a DOM element whose namespace is being checked
2161 + * @returns Return false if the element has a
2162 + * namespace that a spec-compliant parser would never
2163 + * return. Return true otherwise.
2164 + */
2165 + const _checkValidNamespace = function _checkValidNamespace(element) {
2166 + let parent = getParentNode(element);
2167 + // In JSDOM, if we're inside shadow DOM, then parentNode
2168 + // can be null. We just simulate parent in this case.
2169 + if (!parent || !parent.tagName) {
2170 + parent = {
2171 + namespaceURI: NAMESPACE,
2172 + tagName: 'template'
2173 + };
2174 + }
2175 + const tagName = stringToLowerCase(element.tagName);
2176 + const parentTagName = stringToLowerCase(parent.tagName);
2177 + if (!ALLOWED_NAMESPACES[element.namespaceURI]) {
2178 + return false;
2179 + }
2180 + if (element.namespaceURI === SVG_NAMESPACE) {
2181 + // The only way to switch from HTML namespace to SVG
2182 + // is via <svg>. If it happens via any other tag, then
2183 + // it should be killed.
2184 + if (parent.namespaceURI === HTML_NAMESPACE) {
2185 + return tagName === 'svg';
2186 + }
2187 + // The only way to switch from MathML to SVG is via`
2188 + // svg if parent is either <annotation-xml> or MathML
2189 + // text integration points.
2190 + if (parent.namespaceURI === MATHML_NAMESPACE) {
2191 + return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
2192 + }
2193 + // We only allow elements that are defined in SVG
2194 + // spec. All others are disallowed in SVG namespace.
2195 + return Boolean(ALL_SVG_TAGS[tagName]);
2196 + }
2197 + if (element.namespaceURI === MATHML_NAMESPACE) {
2198 + // The only way to switch from HTML namespace to MathML
2199 + // is via <math>. If it happens via any other tag, then
2200 + // it should be killed.
2201 + if (parent.namespaceURI === HTML_NAMESPACE) {
2202 + return tagName === 'math';
2203 + }
2204 + // The only way to switch from SVG to MathML is via
2205 + // <math> and HTML integration points
2206 + if (parent.namespaceURI === SVG_NAMESPACE) {
2207 + return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
2208 + }
2209 + // We only allow elements that are defined in MathML
2210 + // spec. All others are disallowed in MathML namespace.
2211 + return Boolean(ALL_MATHML_TAGS[tagName]);
2212 + }
2213 + if (element.namespaceURI === HTML_NAMESPACE) {
2214 + // The only way to switch from SVG to HTML is via
2215 + // HTML integration points, and from MathML to HTML
2216 + // is via MathML text integration points
2217 + if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
2218 + return false;
2219 + }
2220 + if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
2221 + return false;
2222 + }
2223 + // We disallow tags that are specific for MathML
2224 + // or SVG and should never appear in HTML namespace
2225 + return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
2226 + }
2227 + // For XHTML and XML documents that support custom namespaces
2228 + if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {
2229 + return true;
2230 + }
2231 + // The code should never reach this place (this means
2232 + // that the element somehow got namespace that is not
2233 + // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).
2234 + // Return false just in case.
2235 + return false;
2236 + };
2237 + /**
2238 + * _forceRemove
2239 + *
2240 + * @param node a DOM node
2241 + */
2242 + const _forceRemove = function _forceRemove(node) {
2243 + arrayPush(DOMPurify.removed, {
2244 + element: node
2245 + });
2246 + try {
2247 + // eslint-disable-next-line unicorn/prefer-dom-node-remove
2248 + getParentNode(node).removeChild(node);
2249 + } catch (_) {
2250 + remove(node);
2251 + }
2252 + };
2253 + /**
2254 + * _removeAttribute
2255 + *
2256 + * @param name an Attribute name
2257 + * @param element a DOM node
2258 + */
2259 + const _removeAttribute = function _removeAttribute(name, element) {
2260 + try {
2261 + arrayPush(DOMPurify.removed, {
2262 + attribute: element.getAttributeNode(name),
2263 + from: element
2264 + });
2265 + } catch (_) {
2266 + arrayPush(DOMPurify.removed, {
2267 + attribute: null,
2268 + from: element
2269 + });
2270 + }
2271 + element.removeAttribute(name);
2272 + // We void attribute values for unremovable "is" attributes
2273 + if (name === 'is') {
2274 + if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
2275 + try {
2276 + _forceRemove(element);
2277 + } catch (_) {}
2278 + } else {
2279 + try {
2280 + element.setAttribute(name, '');
2281 + } catch (_) {}
2282 + }
2283 + }
2284 + };
2285 + /**
2286 + * _initDocument
2287 + *
2288 + * @param dirty - a string of dirty markup
2289 + * @return a DOM, filled with the dirty markup
2290 + */
2291 + const _initDocument = function _initDocument(dirty) {
2292 + /* Create a HTML document */
2293 + let doc = null;
2294 + let leadingWhitespace = null;
2295 + if (FORCE_BODY) {
2296 + dirty = '<remove></remove>' + dirty;
2297 + } else {
2298 + /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */
2299 + const matches = stringMatch(dirty, /^[\r\n\t ]+/);
2300 + leadingWhitespace = matches && matches[0];
2301 + }
2302 + if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {
2303 + // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)
2304 + dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>';
2305 + }
2306 + const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
2307 + /*
2308 + * Use the DOMParser API by default, fallback later if needs be
2309 + * DOMParser not work for svg when has multiple root element.
2310 + */
2311 + if (NAMESPACE === HTML_NAMESPACE) {
2312 + try {
2313 + doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
2314 + } catch (_) {}
2315 + }
2316 + /* Use createHTMLDocument in case DOMParser is not available */
2317 + if (!doc || !doc.documentElement) {
2318 + doc = implementation.createDocument(NAMESPACE, 'template', null);
2319 + try {
2320 + doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
2321 + } catch (_) {
2322 + // Syntax error if dirtyPayload is invalid xml
2323 + }
2324 + }
2325 + const body = doc.body || doc.documentElement;
2326 + if (dirty && leadingWhitespace) {
2327 + body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
2328 + }
2329 + /* Work on whole document or just its body */
2330 + if (NAMESPACE === HTML_NAMESPACE) {
2331 + return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];
2332 + }
2333 + return WHOLE_DOCUMENT ? doc.documentElement : body;
2334 + };
2335 + /**
2336 + * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
2337 + *
2338 + * @param root The root element or node to start traversing on.
2339 + * @return The created NodeIterator
2340 + */
2341 + const _createNodeIterator = function _createNodeIterator(root) {
2342 + return createNodeIterator.call(root.ownerDocument || root, root,
2343 + // eslint-disable-next-line no-bitwise
2344 + NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
2345 + };
2346 + /**
2347 + * _isClobbered
2348 + *
2349 + * @param element element to check for clobbering attacks
2350 + * @return true if clobbered, false if safe
2351 + */
2352 + const _isClobbered = function _isClobbered(element) {
2353 + return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');
2354 + };
2355 + /**
2356 + * Checks whether the given object is a DOM node.
2357 + *
2358 + * @param value object to check whether it's a DOM node
2359 + * @return true is object is a DOM node
2360 + */
2361 + const _isNode = function _isNode(value) {
2362 + return typeof Node === 'function' && value instanceof Node;
2363 + };
2364 + function _executeHooks(hooks, currentNode, data) {
2365 + arrayForEach(hooks, hook => {
2366 + hook.call(DOMPurify, currentNode, data, CONFIG);
2367 + });
2368 + }
2369 + /**
2370 + * _sanitizeElements
2371 + *
2372 + * @protect nodeName
2373 + * @protect textContent
2374 + * @protect removeChild
2375 + * @param currentNode to check for permission to exist
2376 + * @return true if node was killed, false if left alive
2377 + */
2378 + const _sanitizeElements = function _sanitizeElements(currentNode) {
2379 + let content = null;
2380 + /* Execute a hook if present */
2381 + _executeHooks(hooks.beforeSanitizeElements, currentNode, null);
2382 + /* Check if element is clobbered or can clobber */
2383 + if (_isClobbered(currentNode)) {
2384 + _forceRemove(currentNode);
2385 + return true;
2386 + }
2387 + /* Now let's check the element's type and name */
2388 + const tagName = transformCaseFunc(currentNode.nodeName);
2389 + /* Execute a hook if present */
2390 + _executeHooks(hooks.uponSanitizeElement, currentNode, {
2391 + tagName,
2392 + allowedTags: ALLOWED_TAGS
2393 + });
2394 + /* Detect mXSS attempts abusing namespace confusion */
2395 + if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) {
2396 + _forceRemove(currentNode);
2397 + return true;
2398 + }
2399 + /* Remove any occurrence of processing instructions */
2400 + if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
2401 + _forceRemove(currentNode);
2402 + return true;
2403 + }
2404 + /* Remove any kind of possibly harmful comments */
2405 + if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) {
2406 + _forceRemove(currentNode);
2407 + return true;
2408 + }
2409 + /* Remove element if anything forbids its presence */
2410 + if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
2411 + /* Check if we have a custom element to handle */
2412 + if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
2413 + if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
2414 + return false;
2415 + }
2416 + if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
2417 + return false;
2418 + }
2419 + }
2420 + /* Keep content except for bad-listed elements */
2421 + if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
2422 + const parentNode = getParentNode(currentNode) || currentNode.parentNode;
2423 + const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
2424 + if (childNodes && parentNode) {
2425 + const childCount = childNodes.length;
2426 + for (let i = childCount - 1; i >= 0; --i) {
2427 + const childClone = cloneNode(childNodes[i], true);
2428 + childClone.__removalCount = (currentNode.__removalCount || 0) + 1;
2429 + parentNode.insertBefore(childClone, getNextSibling(currentNode));
2430 + }
2431 + }
2432 + }
2433 + _forceRemove(currentNode);
2434 + return true;
2435 + }
2436 + /* Check whether element has a valid namespace */
2437 + if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
2438 + _forceRemove(currentNode);
2439 + return true;
2440 + }
2441 + /* Make sure that older browsers don't get fallback-tag mXSS */
2442 + if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
2443 + _forceRemove(currentNode);
2444 + return true;
2445 + }
2446 + /* Sanitize element content to be template-safe */
2447 + if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
2448 + /* Get the element's text content */
2449 + content = currentNode.textContent;
2450 + arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
2451 + content = stringReplace(content, expr, ' ');
2452 + });
2453 + if (currentNode.textContent !== content) {
2454 + arrayPush(DOMPurify.removed, {
2455 + element: currentNode.cloneNode()
2456 + });
2457 + currentNode.textContent = content;
2458 + }
2459 + }
2460 + /* Execute a hook if present */
2461 + _executeHooks(hooks.afterSanitizeElements, currentNode, null);
2462 + return false;
2463 + };
2464 + /**
2465 + * _isValidAttribute
2466 + *
2467 + * @param lcTag Lowercase tag name of containing element.
2468 + * @param lcName Lowercase attribute name.
2469 + * @param value Attribute value.
2470 + * @return Returns true if `value` is valid, otherwise false.
2471 + */
2472 + // eslint-disable-next-line complexity
2473 + const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
2474 + /* Make sure attribute cannot clobber */
2475 + if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {
2476 + return false;
2477 + }
2478 + /* Allow valid data-* attributes: At least one character after "-"
2479 + (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
2480 + XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
2481 + We don't need to check the value; it's always URI safe. */
2482 + if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
2483 + if (
2484 + // First condition does a very basic check if a) it's basically a valid custom element tagname AND
2485 + // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
2486 + // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
2487 + _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||
2488 + // Alternative, second condition checks if it's an `is`-attribute, AND
2489 + // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
2490 + lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {
2491 + return false;
2492 + }
2493 + /* Check value is safe. First, is attr inert? If so, is safe */
2494 + } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {
2495 + return false;
2496 + } else ;
2497 + return true;
2498 + };
2499 + /**
2500 + * _isBasicCustomElement
2501 + * checks if at least one dash is included in tagName, and it's not the first char
2502 + * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
2503 + *
2504 + * @param tagName name of the tag of the node to sanitize
2505 + * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.
2506 + */
2507 + const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
2508 + return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);
2509 + };
2510 + /**
2511 + * _sanitizeAttributes
2512 + *
2513 + * @protect attributes
2514 + * @protect nodeName
2515 + * @protect removeAttribute
2516 + * @protect setAttribute
2517 + *
2518 + * @param currentNode to sanitize
2519 + */
2520 + const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
2521 + /* Execute a hook if present */
2522 + _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
2523 + const {
2524 + attributes
2525 + } = currentNode;
2526 + /* Check if we have attributes; if not we might have a text node */
2527 + if (!attributes || _isClobbered(currentNode)) {
2528 + return;
2529 + }
2530 + const hookEvent = {
2531 + attrName: '',
2532 + attrValue: '',
2533 + keepAttr: true,
2534 + allowedAttributes: ALLOWED_ATTR,
2535 + forceKeepAttr: undefined
2536 + };
2537 + let l = attributes.length;
2538 + /* Go backwards over all attributes; safely remove bad ones */
2539 + while (l--) {
2540 + const attr = attributes[l];
2541 + const {
2542 + name,
2543 + namespaceURI,
2544 + value: attrValue
2545 + } = attr;
2546 + const lcName = transformCaseFunc(name);
2547 + const initValue = attrValue;
2548 + let value = name === 'value' ? initValue : stringTrim(initValue);
2549 + /* Execute a hook if present */
2550 + hookEvent.attrName = lcName;
2551 + hookEvent.attrValue = value;
2552 + hookEvent.keepAttr = true;
2553 + hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set
2554 + _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);
2555 + value = hookEvent.attrValue;
2556 + /* Full DOM Clobbering protection via namespace isolation,
2557 + * Prefix id and name attributes with `user-content-`
2558 + */
2559 + if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {
2560 + // Remove the attribute with this value
2561 + _removeAttribute(name, currentNode);
2562 + // Prefix the value and later re-create the attribute with the sanitized value
2563 + value = SANITIZE_NAMED_PROPS_PREFIX + value;
2564 + }
2565 + /* Work around a security issue with comments inside attributes */
2566 + if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, value)) {
2567 + _removeAttribute(name, currentNode);
2568 + continue;
2569 + }
2570 + /* Make sure we cannot easily use animated hrefs, even if animations are allowed */
2571 + if (lcName === 'attributename' && stringMatch(value, 'href')) {
2572 + _removeAttribute(name, currentNode);
2573 + continue;
2574 + }
2575 + /* Did the hooks approve of the attribute? */
2576 + if (hookEvent.forceKeepAttr) {
2577 + continue;
2578 + }
2579 + /* Did the hooks approve of the attribute? */
2580 + if (!hookEvent.keepAttr) {
2581 + _removeAttribute(name, currentNode);
2582 + continue;
2583 + }
2584 + /* Work around a security issue in jQuery 3.0 */
2585 + if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
2586 + _removeAttribute(name, currentNode);
2587 + continue;
2588 + }
2589 + /* Sanitize attribute content to be template-safe */
2590 + if (SAFE_FOR_TEMPLATES) {
2591 + arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
2592 + value = stringReplace(value, expr, ' ');
2593 + });
2594 + }
2595 + /* Is `value` valid for this attribute? */
2596 + const lcTag = transformCaseFunc(currentNode.nodeName);
2597 + if (!_isValidAttribute(lcTag, lcName, value)) {
2598 + _removeAttribute(name, currentNode);
2599 + continue;
2600 + }
2601 + /* Handle attributes that require Trusted Types */
2602 + if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {
2603 + if (namespaceURI) ; else {
2604 + switch (trustedTypes.getAttributeType(lcTag, lcName)) {
2605 + case 'TrustedHTML':
2606 + {
2607 + value = trustedTypesPolicy.createHTML(value);
2608 + break;
2609 + }
2610 + case 'TrustedScriptURL':
2611 + {
2612 + value = trustedTypesPolicy.createScriptURL(value);
2613 + break;
2614 + }
2615 + }
2616 + }
2617 + }
2618 + /* Handle invalid data-* attribute set by try-catching it */
2619 + if (value !== initValue) {
2620 + try {
2621 + if (namespaceURI) {
2622 + currentNode.setAttributeNS(namespaceURI, name, value);
2623 + } else {
2624 + /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
2625 + currentNode.setAttribute(name, value);
2626 + }
2627 + if (_isClobbered(currentNode)) {
2628 + _forceRemove(currentNode);
2629 + } else {
2630 + arrayPop(DOMPurify.removed);
2631 + }
2632 + } catch (_) {
2633 + _removeAttribute(name, currentNode);
2634 + }
2635 + }
2636 + }
2637 + /* Execute a hook if present */
2638 + _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
2639 + };
2640 + /**
2641 + * _sanitizeShadowDOM
2642 + *
2643 + * @param fragment to iterate over recursively
2644 + */
2645 + const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
2646 + let shadowNode = null;
2647 + const shadowIterator = _createNodeIterator(fragment);
2648 + /* Execute a hook if present */
2649 + _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);
2650 + while (shadowNode = shadowIterator.nextNode()) {
2651 + /* Execute a hook if present */
2652 + _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
2653 + /* Sanitize tags and elements */
2654 + _sanitizeElements(shadowNode);
2655 + /* Check attributes next */
2656 + _sanitizeAttributes(shadowNode);
2657 + /* Deep shadow DOM detected */
2658 + if (shadowNode.content instanceof DocumentFragment) {
2659 + _sanitizeShadowDOM(shadowNode.content);
2660 + }
2661 + }
2662 + /* Execute a hook if present */
2663 + _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
2664 + };
2665 + // eslint-disable-next-line complexity
2666 + DOMPurify.sanitize = function (dirty) {
2667 + let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2668 + let body = null;
2669 + let importedNode = null;
2670 + let currentNode = null;
2671 + let returnNode = null;
2672 + /* Make sure we have a string to sanitize.
2673 + DO NOT return early, as this will return the wrong type if
2674 + the user has requested a DOM object rather than a string */
2675 + IS_EMPTY_INPUT = !dirty;
2676 + if (IS_EMPTY_INPUT) {
2677 + dirty = '<!-->';
2678 + }
2679 + /* Stringify, in case dirty is an object */
2680 + if (typeof dirty !== 'string' && !_isNode(dirty)) {
2681 + if (typeof dirty.toString === 'function') {
2682 + dirty = dirty.toString();
2683 + if (typeof dirty !== 'string') {
2684 + throw typeErrorCreate('dirty is not a string, aborting');
2685 + }
2686 + } else {
2687 + throw typeErrorCreate('toString is not a function');
2688 + }
2689 + }
2690 + /* Return dirty HTML if DOMPurify cannot run */
2691 + if (!DOMPurify.isSupported) {
2692 + return dirty;
2693 + }
2694 + /* Assign config vars */
2695 + if (!SET_CONFIG) {
2696 + _parseConfig(cfg);
2697 + }
2698 + /* Clean up removed elements */
2699 + DOMPurify.removed = [];
2700 + /* Check if dirty is correctly typed for IN_PLACE */
2701 + if (typeof dirty === 'string') {
2702 + IN_PLACE = false;
2703 + }
2704 + if (IN_PLACE) {
2705 + /* Do some early pre-sanitization to avoid unsafe root nodes */
2706 + if (dirty.nodeName) {
2707 + const tagName = transformCaseFunc(dirty.nodeName);
2708 + if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
2709 + throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');
2710 + }
2711 + }
2712 + } else if (dirty instanceof Node) {
2713 + /* If dirty is a DOM element, append to an empty document to avoid
2714 + elements being stripped by the parser */
2715 + body = _initDocument('<!---->');
2716 + importedNode = body.ownerDocument.importNode(dirty, true);
2717 + if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {
2718 + /* Node is already a body, use as is */
2719 + body = importedNode;
2720 + } else if (importedNode.nodeName === 'HTML') {
2721 + body = importedNode;
2722 + } else {
2723 + // eslint-disable-next-line unicorn/prefer-dom-node-append
2724 + body.appendChild(importedNode);
2725 + }
2726 + } else {
2727 + /* Exit directly if we have nothing to do */
2728 + if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&
2729 + // eslint-disable-next-line unicorn/prefer-includes
2730 + dirty.indexOf('<') === -1) {
2731 + return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
2732 + }
2733 + /* Initialize the document to work on */
2734 + body = _initDocument(dirty);
2735 + /* Check we have a DOM node from the data */
2736 + if (!body) {
2737 + return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';
2738 + }
2739 + }
2740 + /* Remove first element node (ours) if FORCE_BODY is set */
2741 + if (body && FORCE_BODY) {
2742 + _forceRemove(body.firstChild);
2743 + }
2744 + /* Get node iterator */
2745 + const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
2746 + /* Now start iterating over the created document */
2747 + while (currentNode = nodeIterator.nextNode()) {
2748 + /* Sanitize tags and elements */
2749 + _sanitizeElements(currentNode);
2750 + /* Check attributes next */
2751 + _sanitizeAttributes(currentNode);
2752 + /* Shadow DOM detected, sanitize it */
2753 + if (currentNode.content instanceof DocumentFragment) {
2754 + _sanitizeShadowDOM(currentNode.content);
2755 + }
2756 + }
2757 + /* If we sanitized `dirty` in-place, return it. */
2758 + if (IN_PLACE) {
2759 + return dirty;
2760 + }
2761 + /* Return sanitized string or DOM */
2762 + if (RETURN_DOM) {
2763 + if (RETURN_DOM_FRAGMENT) {
2764 + returnNode = createDocumentFragment.call(body.ownerDocument);
2765 + while (body.firstChild) {
2766 + // eslint-disable-next-line unicorn/prefer-dom-node-append
2767 + returnNode.appendChild(body.firstChild);
2768 + }
2769 + } else {
2770 + returnNode = body;
2771 + }
2772 + if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {
2773 + /*
2774 + AdoptNode() is not used because internal state is not reset
2775 + (e.g. the past names map of a HTMLFormElement), this is safe
2776 + in theory but we would rather not risk another attack vector.
2777 + The state that is cloned by importNode() is explicitly defined
2778 + by the specs.
2779 + */
2780 + returnNode = importNode.call(originalDocument, returnNode, true);
2781 + }
2782 + return returnNode;
2783 + }
2784 + let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
2785 + /* Serialize doctype if allowed */
2786 + if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
2787 + serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\n' + serializedHTML;
2788 + }
2789 + /* Sanitize final string template-safe */
2790 + if (SAFE_FOR_TEMPLATES) {
2791 + arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {
2792 + serializedHTML = stringReplace(serializedHTML, expr, ' ');
2793 + });
2794 + }
2795 + return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
2796 + };
2797 + DOMPurify.setConfig = function () {
2798 + let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2799 + _parseConfig(cfg);
2800 + SET_CONFIG = true;
2801 + };
2802 + DOMPurify.clearConfig = function () {
2803 + CONFIG = null;
2804 + SET_CONFIG = false;
2805 + };
2806 + DOMPurify.isValidAttribute = function (tag, attr, value) {
2807 + /* Initialize shared config vars if necessary. */
2808 + if (!CONFIG) {
2809 + _parseConfig({});
2810 + }
2811 + const lcTag = transformCaseFunc(tag);
2812 + const lcName = transformCaseFunc(attr);
2813 + return _isValidAttribute(lcTag, lcName, value);
2814 + };
2815 + DOMPurify.addHook = function (entryPoint, hookFunction) {
2816 + if (typeof hookFunction !== 'function') {
2817 + return;
2818 + }
2819 + arrayPush(hooks[entryPoint], hookFunction);
2820 + };
2821 + DOMPurify.removeHook = function (entryPoint, hookFunction) {
2822 + if (hookFunction !== undefined) {
2823 + const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
2824 + return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];
2825 + }
2826 + return arrayPop(hooks[entryPoint]);
2827 + };
2828 + DOMPurify.removeHooks = function (entryPoint) {
2829 + hooks[entryPoint] = [];
2830 + };
2831 + DOMPurify.removeAllHooks = function () {
2832 + hooks = _createHooksMap();
2833 + };
2834 + return DOMPurify;
2835 +}
2836 +var purify = createDOMPurify();
2837 +
2838 +module.exports = purify;
2839 +//# sourceMappingURL=purify.cjs.js.map
2840 +
2841 +
2842 +/***/ }),
2843 +
2844 +/***/ "../node_modules/object-assign/index.js":
2845 +/*!**********************************************!*\
2846 + !*** ../node_modules/object-assign/index.js ***!
2847 + \**********************************************/
2848 +/***/ ((module) => {
2849 +
2850 +"use strict";
2851 +/*
2852 +object-assign
2853 +(c) Sindre Sorhus
2854 +@license MIT
2855 +*/
2856 +
2857 +
2858 +/* eslint-disable no-unused-vars */
2859 +var getOwnPropertySymbols = Object.getOwnPropertySymbols;
2860 +var hasOwnProperty = Object.prototype.hasOwnProperty;
2861 +var propIsEnumerable = Object.prototype.propertyIsEnumerable;
2862 +
2863 +function toObject(val) {
2864 + if (val === null || val === undefined) {
2865 + throw new TypeError('Object.assign cannot be called with null or undefined');
1493 2866 }
1494 - /**
1495 - * Creates a new function that constructs an instance of the given constructor function with the provided arguments.
1496 - *
1497 - * @param func - The constructor function to be wrapped and called.
1498 - * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
1499 - */
1500 - function unconstruct(Func) {
1501 - return function() {
1502 - for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4];
1503 - return construct(Func, args);
1504 - };
1505 - }
1506 - /**
1507 - * Add properties to a lookup table
1508 - *
1509 - * @param set - The set to which elements will be added.
1510 - * @param array - The array containing elements to be added to the set.
1511 - * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.
1512 - * @returns The modified set with added elements.
1513 - */
1514 - function addToSet(set, array) {
1515 - let transformCaseFunc = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : stringToLowerCase;
1516 - if (setPrototypeOf) setPrototypeOf(set, null);
1517 - let l = array.length;
1518 - while (l--) {
1519 - let element = array[l];
1520 - if (typeof element === "string") {
1521 - const lcElement = transformCaseFunc(element);
1522 - if (lcElement !== element) {
1523 - if (!isFrozen(array)) array[l] = lcElement;
1524 - element = lcElement;
1525 - }
1526 - }
1527 - set[element] = true;
2867 +
2868 + return Object(val);
2869 +}
2870 +
2871 +function shouldUseNative() {
2872 + try {
2873 + if (!Object.assign) {
2874 + return false;
1528 2875 }
1529 - return set;
1530 - }
1531 - /**
1532 - * Clean up an array to harden against CSPP
1533 - *
1534 - * @param array - The array to be cleaned.
1535 - * @returns The cleaned version of the array
1536 - */
1537 - function cleanArray(array) {
1538 - for (let index = 0; index < array.length; index++) if (!objectHasOwnProperty(array, index)) array[index] = null;
1539 - return array;
1540 - }
1541 - /**
1542 - * Shallow clone an object
1543 - *
1544 - * @param object - The object to be cloned.
1545 - * @returns A new object that copies the original.
1546 - */
1547 - function clone(object) {
1548 - const newObject = create(null);
1549 - for (const [property, value] of entries(object)) if (objectHasOwnProperty(object, property)) if (Array.isArray(value)) newObject[property] = cleanArray(value);
1550 - else if (value && typeof value === "object" && value.constructor === Object) newObject[property] = clone(value);
1551 - else newObject[property] = value;
1552 - return newObject;
1553 - }
1554 - /**
1555 - * This method automatically checks if the prop is function or getter and behaves accordingly.
1556 - *
1557 - * @param object - The object to look up the getter function in its prototype chain.
1558 - * @param prop - The property name for which to find the getter function.
1559 - * @returns The getter function found in the prototype chain or a fallback function.
1560 - */
1561 - function lookupGetter(object, prop) {
1562 - while (object !== null) {
1563 - const desc = getOwnPropertyDescriptor(object, prop);
1564 - if (desc) {
1565 - if (desc.get) return unapply(desc.get);
1566 - if (typeof desc.value === "function") return unapply(desc.value);
1567 - }
1568 - object = getPrototypeOf(object);
2876 +
2877 + // Detect buggy property enumeration order in older V8 versions.
2878 +
2879 + // https://bugs.chromium.org/p/v8/issues/detail?id=4118
2880 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
2881 + test1[5] = 'de';
2882 + if (Object.getOwnPropertyNames(test1)[0] === '5') {
2883 + return false;
1569 2884 }
1570 - function fallbackValue() {
1571 - return null;
2885 +
2886 + // https://bugs.chromium.org/p/v8/issues/detail?id=3056
2887 + var test2 = {};
2888 + for (var i = 0; i < 10; i++) {
2889 + test2['_' + String.fromCharCode(i)] = i;
1572 2890 }
1573 - return fallbackValue;
1574 - }
1575 - var html$1 = freeze([
1576 - "a",
1577 - "abbr",
1578 - "acronym",
1579 - "address",
1580 - "area",
1581 - "article",
1582 - "aside",
1583 - "audio",
1584 - "b",
1585 - "bdi",
1586 - "bdo",
1587 - "big",
1588 - "blink",
1589 - "blockquote",
1590 - "body",
1591 - "br",
1592 - "button",
1593 - "canvas",
1594 - "caption",
1595 - "center",
1596 - "cite",
1597 - "code",
1598 - "col",
1599 - "colgroup",
1600 - "content",
1601 - "data",
1602 - "datalist",
1603 - "dd",
1604 - "decorator",
1605 - "del",
1606 - "details",
1607 - "dfn",
1608 - "dialog",
1609 - "dir",
1610 - "div",
1611 - "dl",
1612 - "dt",
1613 - "element",
1614 - "em",
1615 - "fieldset",
1616 - "figcaption",
1617 - "figure",
1618 - "font",
1619 - "footer",
1620 - "form",
1621 - "h1",
1622 - "h2",
1623 - "h3",
1624 - "h4",
1625 - "h5",
1626 - "h6",
1627 - "head",
1628 - "header",
1629 - "hgroup",
1630 - "hr",
1631 - "html",
1632 - "i",
1633 - "img",
1634 - "input",
1635 - "ins",
1636 - "kbd",
1637 - "label",
1638 - "legend",
1639 - "li",
1640 - "main",
1641 - "map",
1642 - "mark",
1643 - "marquee",
1644 - "menu",
1645 - "menuitem",
1646 - "meter",
1647 - "nav",
1648 - "nobr",
1649 - "ol",
1650 - "optgroup",
1651 - "option",
1652 - "output",
1653 - "p",
1654 - "picture",
1655 - "pre",
1656 - "progress",
1657 - "q",
1658 - "rp",
1659 - "rt",
1660 - "ruby",
1661 - "s",
1662 - "samp",
1663 - "search",
1664 - "section",
1665 - "select",
1666 - "shadow",
1667 - "slot",
1668 - "small",
1669 - "source",
1670 - "spacer",
1671 - "span",
1672 - "strike",
1673 - "strong",
1674 - "style",
1675 - "sub",
1676 - "summary",
1677 - "sup",
1678 - "table",
1679 - "tbody",
1680 - "td",
1681 - "template",
1682 - "textarea",
1683 - "tfoot",
1684 - "th",
1685 - "thead",
1686 - "time",
1687 - "tr",
1688 - "track",
1689 - "tt",
1690 - "u",
1691 - "ul",
1692 - "var",
1693 - "video",
1694 - "wbr"
1695 - ]);
1696 - var svg$1 = freeze([
1697 - "svg",
1698 - "a",
1699 - "altglyph",
1700 - "altglyphdef",
1701 - "altglyphitem",
1702 - "animatecolor",
1703 - "animatemotion",
1704 - "animatetransform",
1705 - "circle",
1706 - "clippath",
1707 - "defs",
1708 - "desc",
1709 - "ellipse",
1710 - "enterkeyhint",
1711 - "exportparts",
1712 - "filter",
1713 - "font",
1714 - "g",
1715 - "glyph",
1716 - "glyphref",
1717 - "hkern",
1718 - "image",
1719 - "inputmode",
1720 - "line",
1721 - "lineargradient",
1722 - "marker",
1723 - "mask",
1724 - "metadata",
1725 - "mpath",
1726 - "part",
1727 - "path",
1728 - "pattern",
1729 - "polygon",
1730 - "polyline",
1731 - "radialgradient",
1732 - "rect",
1733 - "stop",
1734 - "style",
1735 - "switch",
1736 - "symbol",
1737 - "text",
1738 - "textpath",
1739 - "title",
1740 - "tref",
1741 - "tspan",
1742 - "view",
1743 - "vkern"
1744 - ]);
1745 - var svgFilters = freeze([
1746 - "feBlend",
1747 - "feColorMatrix",
1748 - "feComponentTransfer",
1749 - "feComposite",
1750 - "feConvolveMatrix",
1751 - "feDiffuseLighting",
1752 - "feDisplacementMap",
1753 - "feDistantLight",
1754 - "feDropShadow",
1755 - "feFlood",
1756 - "feFuncA",
1757 - "feFuncB",
1758 - "feFuncG",
1759 - "feFuncR",
1760 - "feGaussianBlur",
1761 - "feImage",
1762 - "feMerge",
1763 - "feMergeNode",
1764 - "feMorphology",
1765 - "feOffset",
1766 - "fePointLight",
1767 - "feSpecularLighting",
1768 - "feSpotLight",
1769 - "feTile",
1770 - "feTurbulence"
1771 - ]);
1772 - var svgDisallowed = freeze([
1773 - "animate",
1774 - "color-profile",
1775 - "cursor",
1776 - "discard",
1777 - "font-face",
1778 - "font-face-format",
1779 - "font-face-name",
1780 - "font-face-src",
1781 - "font-face-uri",
1782 - "foreignobject",
1783 - "hatch",
1784 - "hatchpath",
1785 - "mesh",
1786 - "meshgradient",
1787 - "meshpatch",
1788 - "meshrow",
1789 - "missing-glyph",
1790 - "script",
1791 - "set",
1792 - "solidcolor",
1793 - "unknown",
1794 - "use"
1795 - ]);
1796 - var mathMl$1 = freeze([
1797 - "math",
1798 - "menclose",
1799 - "merror",
1800 - "mfenced",
1801 - "mfrac",
1802 - "mglyph",
1803 - "mi",
1804 - "mlabeledtr",
1805 - "mmultiscripts",
1806 - "mn",
1807 - "mo",
1808 - "mover",
1809 - "mpadded",
1810 - "mphantom",
1811 - "mroot",
1812 - "mrow",
1813 - "ms",
1814 - "mspace",
1815 - "msqrt",
1816 - "mstyle",
1817 - "msub",
1818 - "msup",
1819 - "msubsup",
1820 - "mtable",
1821 - "mtd",
1822 - "mtext",
1823 - "mtr",
1824 - "munder",
1825 - "munderover",
1826 - "mprescripts"
1827 - ]);
1828 - var mathMlDisallowed = freeze([
1829 - "maction",
1830 - "maligngroup",
1831 - "malignmark",
1832 - "mlongdiv",
1833 - "mscarries",
1834 - "mscarry",
1835 - "msgroup",
1836 - "mstack",
1837 - "msline",
1838 - "msrow",
1839 - "semantics",
1840 - "annotation",
1841 - "annotation-xml",
1842 - "mprescripts",
1843 - "none"
1844 - ]);
1845 - var text = freeze(["#text"]);
1846 - var html = freeze([
1847 - "accept",
1848 - "action",
1849 - "align",
1850 - "alt",
1851 - "autocapitalize",
1852 - "autocomplete",
1853 - "autopictureinpicture",
1854 - "autoplay",
1855 - "background",
1856 - "bgcolor",
1857 - "border",
1858 - "capture",
1859 - "cellpadding",
1860 - "cellspacing",
1861 - "checked",
1862 - "cite",
1863 - "class",
1864 - "clear",
1865 - "color",
1866 - "cols",
1867 - "colspan",
1868 - "controls",
1869 - "controlslist",
1870 - "coords",
1871 - "crossorigin",
1872 - "datetime",
1873 - "decoding",
1874 - "default",
1875 - "dir",
1876 - "disabled",
1877 - "disablepictureinpicture",
1878 - "disableremoteplayback",
1879 - "download",
1880 - "draggable",
1881 - "enctype",
1882 - "enterkeyhint",
1883 - "exportparts",
1884 - "face",
1885 - "for",
1886 - "headers",
1887 - "height",
1888 - "hidden",
1889 - "high",
1890 - "href",
1891 - "hreflang",
1892 - "id",
1893 - "inert",
1894 - "inputmode",
1895 - "integrity",
1896 - "ismap",
1897 - "kind",
1898 - "label",
1899 - "lang",
1900 - "list",
1901 - "loading",
1902 - "loop",
1903 - "low",
1904 - "max",
1905 - "maxlength",
1906 - "media",
1907 - "method",
1908 - "min",
1909 - "minlength",
1910 - "multiple",
1911 - "muted",
1912 - "name",
1913 - "nonce",
1914 - "noshade",
1915 - "novalidate",
1916 - "nowrap",
1917 - "open",
1918 - "optimum",
1919 - "part",
1920 - "pattern",
1921 - "placeholder",
1922 - "playsinline",
1923 - "popover",
1924 - "popovertarget",
1925 - "popovertargetaction",
1926 - "poster",
1927 - "preload",
1928 - "pubdate",
1929 - "radiogroup",
1930 - "readonly",
1931 - "rel",
1932 - "required",
1933 - "rev",
1934 - "reversed",
1935 - "role",
1936 - "rows",
1937 - "rowspan",
1938 - "spellcheck",
1939 - "scope",
1940 - "selected",
1941 - "shape",
1942 - "size",
1943 - "sizes",
1944 - "slot",
1945 - "span",
1946 - "srclang",
1947 - "start",
1948 - "src",
1949 - "srcset",
1950 - "step",
1951 - "style",
1952 - "summary",
1953 - "tabindex",
1954 - "title",
1955 - "translate",
1956 - "type",
1957 - "usemap",
1958 - "valign",
1959 - "value",
1960 - "width",
1961 - "wrap",
1962 - "xmlns",
1963 - "slot"
1964 - ]);
1965 - var svg = freeze([
1966 - "accent-height",
1967 - "accumulate",
1968 - "additive",
1969 - "alignment-baseline",
1970 - "amplitude",
1971 - "ascent",
1972 - "attributename",
1973 - "attributetype",
1974 - "azimuth",
1975 - "basefrequency",
1976 - "baseline-shift",
1977 - "begin",
1978 - "bias",
1979 - "by",
1980 - "class",
1981 - "clip",
1982 - "clippathunits",
1983 - "clip-path",
1984 - "clip-rule",
1985 - "color",
1986 - "color-interpolation",
1987 - "color-interpolation-filters",
1988 - "color-profile",
1989 - "color-rendering",
1990 - "cx",
1991 - "cy",
1992 - "d",
1993 - "dx",
1994 - "dy",
1995 - "diffuseconstant",
1996 - "direction",
1997 - "display",
1998 - "divisor",
1999 - "dur",
2000 - "edgemode",
2001 - "elevation",
2002 - "end",
2003 - "exponent",
2004 - "fill",
2005 - "fill-opacity",
2006 - "fill-rule",
2007 - "filter",
2008 - "filterunits",
2009 - "flood-color",
2010 - "flood-opacity",
2011 - "font-family",
2012 - "font-size",
2013 - "font-size-adjust",
2014 - "font-stretch",
2015 - "font-style",
2016 - "font-variant",
2017 - "font-weight",
2018 - "fx",
2019 - "fy",
2020 - "g1",
2021 - "g2",
2022 - "glyph-name",
2023 - "glyphref",
2024 - "gradientunits",
2025 - "gradienttransform",
2026 - "height",
2027 - "href",
2028 - "id",
2029 - "image-rendering",
2030 - "in",
2031 - "in2",
2032 - "intercept",
2033 - "k",
2034 - "k1",
2035 - "k2",
2036 - "k3",
2037 - "k4",
2038 - "kerning",
2039 - "keypoints",
2040 - "keysplines",
2041 - "keytimes",
2042 - "lang",
2043 - "lengthadjust",
2044 - "letter-spacing",
2045 - "kernelmatrix",
2046 - "kernelunitlength",
2047 - "lighting-color",
2048 - "local",
2049 - "marker-end",
2050 - "marker-mid",
2051 - "marker-start",
2052 - "markerheight",
2053 - "markerunits",
2054 - "markerwidth",
2055 - "maskcontentunits",
2056 - "maskunits",
2057 - "max",
2058 - "mask",
2059 - "mask-type",
2060 - "media",
2061 - "method",
2062 - "mode",
2063 - "min",
2064 - "name",
2065 - "numoctaves",
2066 - "offset",
2067 - "operator",
2068 - "opacity",
2069 - "order",
2070 - "orient",
2071 - "orientation",
2072 - "origin",
2073 - "overflow",
2074 - "paint-order",
2075 - "path",
2076 - "pathlength",
2077 - "patterncontentunits",
2078 - "patterntransform",
2079 - "patternunits",
2080 - "points",
2081 - "preservealpha",
2082 - "preserveaspectratio",
2083 - "primitiveunits",
2084 - "r",
2085 - "rx",
2086 - "ry",
2087 - "radius",
2088 - "refx",
2089 - "refy",
2090 - "repeatcount",
2091 - "repeatdur",
2092 - "restart",
2093 - "result",
2094 - "rotate",
2095 - "scale",
2096 - "seed",
2097 - "shape-rendering",
2098 - "slope",
2099 - "specularconstant",
2100 - "specularexponent",
2101 - "spreadmethod",
2102 - "startoffset",
2103 - "stddeviation",
2104 - "stitchtiles",
2105 - "stop-color",
2106 - "stop-opacity",
2107 - "stroke-dasharray",
2108 - "stroke-dashoffset",
2109 - "stroke-linecap",
2110 - "stroke-linejoin",
2111 - "stroke-miterlimit",
2112 - "stroke-opacity",
2113 - "stroke",
2114 - "stroke-width",
2115 - "style",
2116 - "surfacescale",
2117 - "systemlanguage",
2118 - "tabindex",
2119 - "tablevalues",
2120 - "targetx",
2121 - "targety",
2122 - "transform",
2123 - "transform-origin",
2124 - "text-anchor",
2125 - "text-decoration",
2126 - "text-rendering",
2127 - "textlength",
2128 - "type",
2129 - "u1",
2130 - "u2",
2131 - "unicode",
2132 - "values",
2133 - "viewbox",
2134 - "visibility",
2135 - "version",
2136 - "vert-adv-y",
2137 - "vert-origin-x",
2138 - "vert-origin-y",
2139 - "width",
2140 - "word-spacing",
2141 - "wrap",
2142 - "writing-mode",
2143 - "xchannelselector",
2144 - "ychannelselector",
2145 - "x",
2146 - "x1",
2147 - "x2",
2148 - "xmlns",
2149 - "y",
2150 - "y1",
2151 - "y2",
2152 - "z",
2153 - "zoomandpan"
2154 - ]);
2155 - var mathMl = freeze([
2156 - "accent",
2157 - "accentunder",
2158 - "align",
2159 - "bevelled",
2160 - "close",
2161 - "columnsalign",
2162 - "columnlines",
2163 - "columnspan",
2164 - "denomalign",
2165 - "depth",
2166 - "dir",
2167 - "display",
2168 - "displaystyle",
2169 - "encoding",
2170 - "fence",
2171 - "frame",
2172 - "height",
2173 - "href",
2174 - "id",
2175 - "largeop",
2176 - "length",
2177 - "linethickness",
2178 - "lspace",
2179 - "lquote",
2180 - "mathbackground",
2181 - "mathcolor",
2182 - "mathsize",
2183 - "mathvariant",
2184 - "maxsize",
2185 - "minsize",
2186 - "movablelimits",
2187 - "notation",
2188 - "numalign",
2189 - "open",
2190 - "rowalign",
2191 - "rowlines",
2192 - "rowspacing",
2193 - "rowspan",
2194 - "rspace",
2195 - "rquote",
2196 - "scriptlevel",
2197 - "scriptminsize",
2198 - "scriptsizemultiplier",
2199 - "selection",
2200 - "separator",
2201 - "separators",
2202 - "stretchy",
2203 - "subscriptshift",
2204 - "supscriptshift",
2205 - "symmetric",
2206 - "voffset",
2207 - "width",
2208 - "xmlns"
2209 - ]);
2210 - var xml = freeze([
2211 - "xlink:href",
2212 - "xml:id",
2213 - "xlink:title",
2214 - "xml:space",
2215 - "xmlns:xlink"
2216 - ]);
2217 - var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
2218 - var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
2219 - var TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm);
2220 - var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/);
2221 - var ARIA_ATTR = seal(/^aria-[\-\w]+$/);
2222 - var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i);
2223 - var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
2224 - var ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g);
2225 - var DOCTYPE_NAME = seal(/^html$/i);
2226 - var CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
2227 - var EXPRESSIONS = /*#__PURE__*/ Object.freeze({
2228 - __proto__: null,
2229 - ARIA_ATTR,
2230 - ATTR_WHITESPACE,
2231 - CUSTOM_ELEMENT,
2232 - DATA_ATTR,
2233 - DOCTYPE_NAME,
2234 - ERB_EXPR,
2235 - IS_ALLOWED_URI,
2236 - IS_SCRIPT_OR_DATA,
2237 - MUSTACHE_EXPR,
2238 - TMPLIT_EXPR
2239 - });
2240 - var NODE_TYPE = {
2241 - element: 1,
2242 - attribute: 2,
2243 - text: 3,
2244 - cdataSection: 4,
2245 - entityReference: 5,
2246 - entityNode: 6,
2247 - progressingInstruction: 7,
2248 - comment: 8,
2249 - document: 9,
2250 - documentType: 10,
2251 - documentFragment: 11,
2252 - notation: 12
2253 - };
2254 - var getGlobal = function getGlobal() {
2255 - return typeof window === "undefined" ? null : window;
2256 - };
2257 - /**
2258 - * Creates a no-op policy for internal use only.
2259 - * Don't export this function outside this module!
2260 - * @param trustedTypes The policy factory.
2261 - * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).
2262 - * @return The policy created (or null, if Trusted Types
2263 - * are not supported or creating the policy failed).
2264 - */
2265 - var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {
2266 - if (typeof trustedTypes !== "object" || typeof trustedTypes.createPolicy !== "function") return null;
2267 - let suffix = null;
2268 - const ATTR_NAME = "data-tt-policy-suffix";
2269 - if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) suffix = purifyHostElement.getAttribute(ATTR_NAME);
2270 - const policyName = "dompurify" + (suffix ? "#" + suffix : "");
2271 - try {
2272 - return trustedTypes.createPolicy(policyName, {
2273 - createHTML(html) {
2274 - return html;
2275 - },
2276 - createScriptURL(scriptUrl) {
2277 - return scriptUrl;
2278 - }
2279 - });
2280 - } catch (_) {
2281 - console.warn("TrustedTypes policy " + policyName + " could not be created.");
2282 - return null;
2891 + var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
2892 + return test2[n];
2893 + });
2894 + if (order2.join('') !== '0123456789') {
2895 + return false;
2283 2896 }
2284 - };
2285 - var _createHooksMap = function _createHooksMap() {
2286 - return {
2287 - afterSanitizeAttributes: [],
2288 - afterSanitizeElements: [],
2289 - afterSanitizeShadowDOM: [],
2290 - beforeSanitizeAttributes: [],
2291 - beforeSanitizeElements: [],
2292 - beforeSanitizeShadowDOM: [],
2293 - uponSanitizeAttribute: [],
2294 - uponSanitizeElement: [],
2295 - uponSanitizeShadowNode: []
2296 - };
2297 - };
2298 - function createDOMPurify() {
2299 - let window = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
2300 - const DOMPurify = (root) => createDOMPurify(root);
2301 - DOMPurify.version = "3.3.0";
2302 - DOMPurify.removed = [];
2303 - if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
2304 - DOMPurify.isSupported = false;
2305 - return DOMPurify;
2306 - }
2307 - let { document } = window;
2308 - const originalDocument = document;
2309 - const currentScript = originalDocument.currentScript;
2310 - const { DocumentFragment, HTMLTemplateElement, Node, Element, NodeFilter, NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap, HTMLFormElement, DOMParser, trustedTypes } = window;
2311 - const ElementPrototype = Element.prototype;
2312 - const cloneNode = lookupGetter(ElementPrototype, "cloneNode");
2313 - const remove = lookupGetter(ElementPrototype, "remove");
2314 - const getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
2315 - const getChildNodes = lookupGetter(ElementPrototype, "childNodes");
2316 - const getParentNode = lookupGetter(ElementPrototype, "parentNode");
2317 - if (typeof HTMLTemplateElement === "function") {
2318 - const template = document.createElement("template");
2319 - if (template.content && template.content.ownerDocument) document = template.content.ownerDocument;
2320 - }
2321 - let trustedTypesPolicy;
2322 - let emptyHTML = "";
2323 - const { implementation, createNodeIterator, createDocumentFragment, getElementsByTagName } = document;
2324 - const { importNode } = originalDocument;
2325 - let hooks = _createHooksMap();
2326 - /**
2327 - * Expose whether this browser supports running the full DOMPurify.
2328 - */
2329 - DOMPurify.isSupported = typeof entries === "function" && typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0;
2330 - const { MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR, DATA_ATTR, ARIA_ATTR, IS_SCRIPT_OR_DATA, ATTR_WHITESPACE, CUSTOM_ELEMENT } = EXPRESSIONS;
2331 - let { IS_ALLOWED_URI: IS_ALLOWED_URI$1 } = EXPRESSIONS;
2332 - /**
2333 - * We consider the elements and attributes below to be safe. Ideally
2334 - * don't add any new ones but feel free to remove unwanted ones.
2335 - */
2336 - let ALLOWED_TAGS = null;
2337 - const DEFAULT_ALLOWED_TAGS = addToSet({}, [
2338 - ...html$1,
2339 - ...svg$1,
2340 - ...svgFilters,
2341 - ...mathMl$1,
2342 - ...text
2343 - ]);
2344 - let ALLOWED_ATTR = null;
2345 - const DEFAULT_ALLOWED_ATTR = addToSet({}, [
2346 - ...html,
2347 - ...svg,
2348 - ...mathMl,
2349 - ...xml
2350 - ]);
2351 - let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {
2352 - tagNameCheck: {
2353 - writable: true,
2354 - configurable: false,
2355 - enumerable: true,
2356 - value: null
2357 - },
2358 - attributeNameCheck: {
2359 - writable: true,
2360 - configurable: false,
2361 - enumerable: true,
2362 - value: null
2363 - },
2364 - allowCustomizedBuiltInElements: {
2365 - writable: true,
2366 - configurable: false,
2367 - enumerable: true,
2368 - value: false
2369 - }
2370 - }));
2371 - let FORBID_TAGS = null;
2372 - let FORBID_ATTR = null;
2373 - const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
2374 - tagCheck: {
2375 - writable: true,
2376 - configurable: false,
2377 - enumerable: true,
2378 - value: null
2379 - },
2380 - attributeCheck: {
2381 - writable: true,
2382 - configurable: false,
2383 - enumerable: true,
2384 - value: null
2385 - }
2386 - }));
2387 - let ALLOW_ARIA_ATTR = true;
2388 - let ALLOW_DATA_ATTR = true;
2389 - let ALLOW_UNKNOWN_PROTOCOLS = false;
2390 - let ALLOW_SELF_CLOSE_IN_ATTR = true;
2391 - let SAFE_FOR_TEMPLATES = false;
2392 - let SAFE_FOR_XML = true;
2393 - let WHOLE_DOCUMENT = false;
2394 - let SET_CONFIG = false;
2395 - let FORCE_BODY = false;
2396 - let RETURN_DOM = false;
2397 - let RETURN_DOM_FRAGMENT = false;
2398 - let RETURN_TRUSTED_TYPE = false;
2399 - let SANITIZE_DOM = true;
2400 - let SANITIZE_NAMED_PROPS = false;
2401 - const SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
2402 - let KEEP_CONTENT = true;
2403 - let IN_PLACE = false;
2404 - let USE_PROFILES = {};
2405 - let FORBID_CONTENTS = null;
2406 - const DEFAULT_FORBID_CONTENTS = addToSet({}, [
2407 - "annotation-xml",
2408 - "audio",
2409 - "colgroup",
2410 - "desc",
2411 - "foreignobject",
2412 - "head",
2413 - "iframe",
2414 - "math",
2415 - "mi",
2416 - "mn",
2417 - "mo",
2418 - "ms",
2419 - "mtext",
2420 - "noembed",
2421 - "noframes",
2422 - "noscript",
2423 - "plaintext",
2424 - "script",
2425 - "style",
2426 - "svg",
2427 - "template",
2428 - "thead",
2429 - "title",
2430 - "video",
2431 - "xmp"
2432 - ]);
2433 - let DATA_URI_TAGS = null;
2434 - const DEFAULT_DATA_URI_TAGS = addToSet({}, [
2435 - "audio",
2436 - "video",
2437 - "img",
2438 - "source",
2439 - "image",
2440 - "track"
2441 - ]);
2442 - let URI_SAFE_ATTRIBUTES = null;
2443 - const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [
2444 - "alt",
2445 - "class",
2446 - "for",
2447 - "id",
2448 - "label",
2449 - "name",
2450 - "pattern",
2451 - "placeholder",
2452 - "role",
2453 - "summary",
2454 - "title",
2455 - "value",
2456 - "style",
2457 - "xmlns"
2458 - ]);
2459 - const MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
2460 - const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
2461 - const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
2462 - let NAMESPACE = HTML_NAMESPACE;
2463 - let IS_EMPTY_INPUT = false;
2464 - let ALLOWED_NAMESPACES = null;
2465 - const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [
2466 - MATHML_NAMESPACE,
2467 - SVG_NAMESPACE,
2468 - HTML_NAMESPACE
2469 - ], stringToString);
2470 - let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [
2471 - "mi",
2472 - "mo",
2473 - "mn",
2474 - "ms",
2475 - "mtext"
2476 - ]);
2477 - let HTML_INTEGRATION_POINTS = addToSet({}, ["annotation-xml"]);
2478 - const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [
2479 - "title",
2480 - "style",
2481 - "font",
2482 - "a",
2483 - "script"
2484 - ]);
2485 - let PARSER_MEDIA_TYPE = null;
2486 - const SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
2487 - const DEFAULT_PARSER_MEDIA_TYPE = "text/html";
2488 - let transformCaseFunc = null;
2489 - let CONFIG = null;
2490 - const formElement = document.createElement("form");
2491 - const isRegexOrFunction = function isRegexOrFunction(testValue) {
2492 - return testValue instanceof RegExp || testValue instanceof Function;
2493 - };
2494 - /**
2495 - * _parseConfig
2496 - *
2497 - * @param cfg optional config literal
2498 - */
2499 - const _parseConfig = function _parseConfig() {
2500 - let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
2501 - if (CONFIG && CONFIG === cfg) return;
2502 - if (!cfg || typeof cfg !== "object") cfg = {};
2503 - cfg = clone(cfg);
2504 - PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;
2505 - transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
2506 - ALLOWED_TAGS = objectHasOwnProperty(cfg, "ALLOWED_TAGS") ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
2507 - ALLOWED_ATTR = objectHasOwnProperty(cfg, "ALLOWED_ATTR") ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
2508 - ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, "ALLOWED_NAMESPACES") ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
2509 - URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, "ADD_URI_SAFE_ATTR") ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;
2510 - DATA_URI_TAGS = objectHasOwnProperty(cfg, "ADD_DATA_URI_TAGS") ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;
2511 - FORBID_CONTENTS = objectHasOwnProperty(cfg, "FORBID_CONTENTS") ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
2512 - FORBID_TAGS = objectHasOwnProperty(cfg, "FORBID_TAGS") ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});
2513 - FORBID_ATTR = objectHasOwnProperty(cfg, "FORBID_ATTR") ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});
2514 - USE_PROFILES = objectHasOwnProperty(cfg, "USE_PROFILES") ? cfg.USE_PROFILES : false;
2515 - ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
2516 - ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
2517 - ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
2518 - ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;
2519 - SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
2520 - SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false;
2521 - WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
2522 - RETURN_DOM = cfg.RETURN_DOM || false;
2523 - RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
2524 - RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
2525 - FORCE_BODY = cfg.FORCE_BODY || false;
2526 - SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
2527 - SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
2528 - KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
2529 - IN_PLACE = cfg.IN_PLACE || false;
2530 - IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
2531 - NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
2532 - MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
2533 - HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
2534 - CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
2535 - if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
2536 - if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
2537 - if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
2538 - if (SAFE_FOR_TEMPLATES) ALLOW_DATA_ATTR = false;
2539 - if (RETURN_DOM_FRAGMENT) RETURN_DOM = true;
2540 - if (USE_PROFILES) {
2541 - ALLOWED_TAGS = addToSet({}, text);
2542 - ALLOWED_ATTR = [];
2543 - if (USE_PROFILES.html === true) {
2544 - addToSet(ALLOWED_TAGS, html$1);
2545 - addToSet(ALLOWED_ATTR, html);
2546 - }
2547 - if (USE_PROFILES.svg === true) {
2548 - addToSet(ALLOWED_TAGS, svg$1);
2549 - addToSet(ALLOWED_ATTR, svg);
2550 - addToSet(ALLOWED_ATTR, xml);
2551 - }
2552 - if (USE_PROFILES.svgFilters === true) {
2553 - addToSet(ALLOWED_TAGS, svgFilters);
2554 - addToSet(ALLOWED_ATTR, svg);
2555 - addToSet(ALLOWED_ATTR, xml);
2556 - }
2557 - if (USE_PROFILES.mathMl === true) {
2558 - addToSet(ALLOWED_TAGS, mathMl$1);
2559 - addToSet(ALLOWED_ATTR, mathMl);
2560 - addToSet(ALLOWED_ATTR, xml);
2561 - }
2562 - }
2563 - if (cfg.ADD_TAGS) if (typeof cfg.ADD_TAGS === "function") EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
2564 - else {
2565 - if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) ALLOWED_TAGS = clone(ALLOWED_TAGS);
2566 - addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
2567 - }
2568 - if (cfg.ADD_ATTR) if (typeof cfg.ADD_ATTR === "function") EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
2569 - else {
2570 - if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) ALLOWED_ATTR = clone(ALLOWED_ATTR);
2571 - addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
2572 - }
2573 - if (cfg.ADD_URI_SAFE_ATTR) addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
2574 - if (cfg.FORBID_CONTENTS) {
2575 - if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) FORBID_CONTENTS = clone(FORBID_CONTENTS);
2576 - addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
2577 - }
2578 - if (KEEP_CONTENT) ALLOWED_TAGS["#text"] = true;
2579 - if (WHOLE_DOCUMENT) addToSet(ALLOWED_TAGS, [
2580 - "html",
2581 - "head",
2582 - "body"
2583 - ]);
2584 - if (ALLOWED_TAGS.table) {
2585 - addToSet(ALLOWED_TAGS, ["tbody"]);
2586 - delete FORBID_TAGS.tbody;
2587 - }
2588 - if (cfg.TRUSTED_TYPES_POLICY) {
2589 - if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== "function") throw typeErrorCreate("TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.");
2590 - if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function") throw typeErrorCreate("TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.");
2591 - trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
2592 - emptyHTML = trustedTypesPolicy.createHTML("");
2593 - } else {
2594 - if (trustedTypesPolicy === void 0) trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
2595 - if (trustedTypesPolicy !== null && typeof emptyHTML === "string") emptyHTML = trustedTypesPolicy.createHTML("");
2596 - }
2597 - if (freeze) freeze(cfg);
2598 - CONFIG = cfg;
2599 - };
2600 - const ALL_SVG_TAGS = addToSet({}, [
2601 - ...svg$1,
2602 - ...svgFilters,
2603 - ...svgDisallowed
2604 - ]);
2605 - const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
2606 - /**
2607 - * @param element a DOM element whose namespace is being checked
2608 - * @returns Return false if the element has a
2609 - * namespace that a spec-compliant parser would never
2610 - * return. Return true otherwise.
2611 - */
2612 - const _checkValidNamespace = function _checkValidNamespace(element) {
2613 - let parent = getParentNode(element);
2614 - if (!parent || !parent.tagName) parent = {
2615 - namespaceURI: NAMESPACE,
2616 - tagName: "template"
2617 - };
2618 - const tagName = stringToLowerCase(element.tagName);
2619 - const parentTagName = stringToLowerCase(parent.tagName);
2620 - if (!ALLOWED_NAMESPACES[element.namespaceURI]) return false;
2621 - if (element.namespaceURI === SVG_NAMESPACE) {
2622 - if (parent.namespaceURI === HTML_NAMESPACE) return tagName === "svg";
2623 - if (parent.namespaceURI === MATHML_NAMESPACE) return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
2624 - return Boolean(ALL_SVG_TAGS[tagName]);
2625 - }
2626 - if (element.namespaceURI === MATHML_NAMESPACE) {
2627 - if (parent.namespaceURI === HTML_NAMESPACE) return tagName === "math";
2628 - if (parent.namespaceURI === SVG_NAMESPACE) return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
2629 - return Boolean(ALL_MATHML_TAGS[tagName]);
2630 - }
2631 - if (element.namespaceURI === HTML_NAMESPACE) {
2632 - if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) return false;
2633 - if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) return false;
2634 - return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
2635 - }
2636 - if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element.namespaceURI]) return true;
2897 +
2898 + // https://bugs.chromium.org/p/v8/issues/detail?id=3056
2899 + var test3 = {};
2900 + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
2901 + test3[letter] = letter;
2902 + });
2903 + if (Object.keys(Object.assign({}, test3)).join('') !==
2904 + 'abcdefghijklmnopqrst') {
2637 2905 return false;
2638 - };
2639 - /**
2640 - * _forceRemove
2641 - *
2642 - * @param node a DOM node
2643 - */
2644 - const _forceRemove = function _forceRemove(node) {
2645 - arrayPush(DOMPurify.removed, { element: node });
2646 - try {
2647 - getParentNode(node).removeChild(node);
2648 - } catch (_) {
2649 - remove(node);
2650 - }
2651 - };
2652 - /**
2653 - * _removeAttribute
2654 - *
2655 - * @param name an Attribute name
2656 - * @param element a DOM node
2657 - */
2658 - const _removeAttribute = function _removeAttribute(name, element) {
2659 - try {
2660 - arrayPush(DOMPurify.removed, {
2661 - attribute: element.getAttributeNode(name),
2662 - from: element
2663 - });
2664 - } catch (_) {
2665 - arrayPush(DOMPurify.removed, {
2666 - attribute: null,
2667 - from: element
2668 - });
2669 - }
2670 - element.removeAttribute(name);
2671 - if (name === "is") if (RETURN_DOM || RETURN_DOM_FRAGMENT) try {
2672 - _forceRemove(element);
2673 - } catch (_) {}
2674 - else try {
2675 - element.setAttribute(name, "");
2676 - } catch (_) {}
2677 - };
2678 - /**
2679 - * _initDocument
2680 - *
2681 - * @param dirty - a string of dirty markup
2682 - * @return a DOM, filled with the dirty markup
2683 - */
2684 - const _initDocument = function _initDocument(dirty) {
2685 - let doc = null;
2686 - let leadingWhitespace = null;
2687 - if (FORCE_BODY) dirty = "<remove></remove>" + dirty;
2688 - else {
2689 - const matches = stringMatch(dirty, /^[\r\n\t ]+/);
2690 - leadingWhitespace = matches && matches[0];
2691 - }
2692 - if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE) dirty = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>" + dirty + "</body></html>";
2693 - const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
2694 - if (NAMESPACE === HTML_NAMESPACE) try {
2695 - doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
2696 - } catch (_) {}
2697 - if (!doc || !doc.documentElement) {
2698 - doc = implementation.createDocument(NAMESPACE, "template", null);
2699 - try {
2700 - doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
2701 - } catch (_) {}
2702 - }
2703 - const body = doc.body || doc.documentElement;
2704 - if (dirty && leadingWhitespace) body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
2705 - if (NAMESPACE === HTML_NAMESPACE) return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
2706 - return WHOLE_DOCUMENT ? doc.documentElement : body;
2707 - };
2708 - /**
2709 - * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
2710 - *
2711 - * @param root The root element or node to start traversing on.
2712 - * @return The created NodeIterator
2713 - */
2714 - const _createNodeIterator = function _createNodeIterator(root) {
2715 - return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
2716 - };
2717 - /**
2718 - * _isClobbered
2719 - *
2720 - * @param element element to check for clobbering attacks
2721 - * @return true if clobbered, false if safe
2722 - */
2723 - const _isClobbered = function _isClobbered(element) {
2724 - return element instanceof HTMLFormElement && (typeof element.nodeName !== "string" || typeof element.textContent !== "string" || typeof element.removeChild !== "function" || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== "function" || typeof element.setAttribute !== "function" || typeof element.namespaceURI !== "string" || typeof element.insertBefore !== "function" || typeof element.hasChildNodes !== "function");
2725 - };
2726 - /**
2727 - * Checks whether the given object is a DOM node.
2728 - *
2729 - * @param value object to check whether it's a DOM node
2730 - * @return true is object is a DOM node
2731 - */
2732 - const _isNode = function _isNode(value) {
2733 - return typeof Node === "function" && value instanceof Node;
2734 - };
2735 - function _executeHooks(hooks, currentNode, data) {
2736 - arrayForEach(hooks, (hook) => {
2737 - hook.call(DOMPurify, currentNode, data, CONFIG);
2738 - });
2739 2906 }
2740 - /**
2741 - * _sanitizeElements
2742 - *
2743 - * @protect nodeName
2744 - * @protect textContent
2745 - * @protect removeChild
2746 - * @param currentNode to check for permission to exist
2747 - * @return true if node was killed, false if left alive
2748 - */
2749 - const _sanitizeElements = function _sanitizeElements(currentNode) {
2750 - let content = null;
2751 - _executeHooks(hooks.beforeSanitizeElements, currentNode, null);
2752 - if (_isClobbered(currentNode)) {
2753 - _forceRemove(currentNode);
2754 - return true;
2755 - }
2756 - const tagName = transformCaseFunc(currentNode.nodeName);
2757 - _executeHooks(hooks.uponSanitizeElement, currentNode, {
2758 - tagName,
2759 - allowedTags: ALLOWED_TAGS
2760 - });
2761 - if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) {
2762 - _forceRemove(currentNode);
2763 - return true;
2764 - }
2765 - if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
2766 - _forceRemove(currentNode);
2767 - return true;
2768 - }
2769 - if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) {
2770 - _forceRemove(currentNode);
2771 - return true;
2772 - }
2773 - if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
2774 - if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
2775 - if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
2776 - if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
2777 - }
2778 - if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
2779 - const parentNode = getParentNode(currentNode) || currentNode.parentNode;
2780 - const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
2781 - if (childNodes && parentNode) {
2782 - const childCount = childNodes.length;
2783 - for (let i = childCount - 1; i >= 0; --i) {
2784 - const childClone = cloneNode(childNodes[i], true);
2785 - childClone.__removalCount = (currentNode.__removalCount || 0) + 1;
2786 - parentNode.insertBefore(childClone, getNextSibling(currentNode));
2787 - }
2788 - }
2789 - }
2790 - _forceRemove(currentNode);
2791 - return true;
2792 - }
2793 - if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
2794 - _forceRemove(currentNode);
2795 - return true;
2796 - }
2797 - if ((tagName === "noscript" || tagName === "noembed" || tagName === "noframes") && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
2798 - _forceRemove(currentNode);
2799 - return true;
2800 - }
2801 - if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
2802 - content = currentNode.textContent;
2803 - arrayForEach([
2804 - MUSTACHE_EXPR,
2805 - ERB_EXPR,
2806 - TMPLIT_EXPR
2807 - ], (expr) => {
2808 - content = stringReplace(content, expr, " ");
2809 - });
2810 - if (currentNode.textContent !== content) {
2811 - arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });
2812 - currentNode.textContent = content;
2813 - }
2814 - }
2815 - _executeHooks(hooks.afterSanitizeElements, currentNode, null);
2816 - return false;
2817 - };
2818 - /**
2819 - * _isValidAttribute
2820 - *
2821 - * @param lcTag Lowercase tag name of containing element.
2822 - * @param lcName Lowercase attribute name.
2823 - * @param value Attribute value.
2824 - * @return Returns true if `value` is valid, otherwise false.
2825 - */
2826 - const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
2827 - if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document || value in formElement)) return false;
2828 - if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName));
2829 - else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName));
2830 - else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag));
2831 - else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) if (_isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) || lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value)));
2832 - else return false;
2833 - else if (URI_SAFE_ATTRIBUTES[lcName]);
2834 - else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, "")));
2835 - else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag]);
2836 - else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, "")));
2837 - else if (value) return false;
2838 - return true;
2839 - };
2840 - /**
2841 - * _isBasicCustomElement
2842 - * checks if at least one dash is included in tagName, and it's not the first char
2843 - * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
2844 - *
2845 - * @param tagName name of the tag of the node to sanitize
2846 - * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.
2847 - */
2848 - const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
2849 - return tagName !== "annotation-xml" && stringMatch(tagName, CUSTOM_ELEMENT);
2850 - };
2851 - /**
2852 - * _sanitizeAttributes
2853 - *
2854 - * @protect attributes
2855 - * @protect nodeName
2856 - * @protect removeAttribute
2857 - * @protect setAttribute
2858 - *
2859 - * @param currentNode to sanitize
2860 - */
2861 - const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
2862 - _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
2863 - const { attributes } = currentNode;
2864 - if (!attributes || _isClobbered(currentNode)) return;
2865 - const hookEvent = {
2866 - attrName: "",
2867 - attrValue: "",
2868 - keepAttr: true,
2869 - allowedAttributes: ALLOWED_ATTR,
2870 - forceKeepAttr: void 0
2871 - };
2872 - let l = attributes.length;
2873 - while (l--) {
2874 - const { name, namespaceURI, value: attrValue } = attributes[l];
2875 - const lcName = transformCaseFunc(name);
2876 - const initValue = attrValue;
2877 - let value = name === "value" ? initValue : stringTrim(initValue);
2878 - hookEvent.attrName = lcName;
2879 - hookEvent.attrValue = value;
2880 - hookEvent.keepAttr = true;
2881 - hookEvent.forceKeepAttr = void 0;
2882 - _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);
2883 - value = hookEvent.attrValue;
2884 - if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
2885 - _removeAttribute(name, currentNode);
2886 - value = SANITIZE_NAMED_PROPS_PREFIX + value;
2887 - }
2888 - if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, value)) {
2889 - _removeAttribute(name, currentNode);
2890 - continue;
2891 - }
2892 - if (lcName === "attributename" && stringMatch(value, "href")) {
2893 - _removeAttribute(name, currentNode);
2894 - continue;
2895 - }
2896 - if (hookEvent.forceKeepAttr) continue;
2897 - if (!hookEvent.keepAttr) {
2898 - _removeAttribute(name, currentNode);
2899 - continue;
2900 - }
2901 - if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
2902 - _removeAttribute(name, currentNode);
2903 - continue;
2904 - }
2905 - if (SAFE_FOR_TEMPLATES) arrayForEach([
2906 - MUSTACHE_EXPR,
2907 - ERB_EXPR,
2908 - TMPLIT_EXPR
2909 - ], (expr) => {
2910 - value = stringReplace(value, expr, " ");
2911 - });
2912 - const lcTag = transformCaseFunc(currentNode.nodeName);
2913 - if (!_isValidAttribute(lcTag, lcName, value)) {
2914 - _removeAttribute(name, currentNode);
2915 - continue;
2916 - }
2917 - if (trustedTypesPolicy && typeof trustedTypes === "object" && typeof trustedTypes.getAttributeType === "function") if (namespaceURI);
2918 - else switch (trustedTypes.getAttributeType(lcTag, lcName)) {
2919 - case "TrustedHTML":
2920 - value = trustedTypesPolicy.createHTML(value);
2921 - break;
2922 - case "TrustedScriptURL":
2923 - value = trustedTypesPolicy.createScriptURL(value);
2924 - break;
2925 - }
2926 - if (value !== initValue) try {
2927 - if (namespaceURI) currentNode.setAttributeNS(namespaceURI, name, value);
2928 - else currentNode.setAttribute(name, value);
2929 - if (_isClobbered(currentNode)) _forceRemove(currentNode);
2930 - else arrayPop(DOMPurify.removed);
2931 - } catch (_) {
2932 - _removeAttribute(name, currentNode);
2933 - }
2934 - }
2935 - _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
2936 - };
2937 - /**
2938 - * _sanitizeShadowDOM
2939 - *
2940 - * @param fragment to iterate over recursively
2941 - */
2942 - const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
2943 - let shadowNode = null;
2944 - const shadowIterator = _createNodeIterator(fragment);
2945 - _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);
2946 - while (shadowNode = shadowIterator.nextNode()) {
2947 - _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
2948 - _sanitizeElements(shadowNode);
2949 - _sanitizeAttributes(shadowNode);
2950 - if (shadowNode.content instanceof DocumentFragment) _sanitizeShadowDOM(shadowNode.content);
2951 - }
2952 - _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
2953 - };
2954 - DOMPurify.sanitize = function(dirty) {
2955 - let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
2956 - let body = null;
2957 - let importedNode = null;
2958 - let currentNode = null;
2959 - let returnNode = null;
2960 - IS_EMPTY_INPUT = !dirty;
2961 - if (IS_EMPTY_INPUT) dirty = "<!-->";
2962 - if (typeof dirty !== "string" && !_isNode(dirty)) if (typeof dirty.toString === "function") {
2963 - dirty = dirty.toString();
2964 - if (typeof dirty !== "string") throw typeErrorCreate("dirty is not a string, aborting");
2965 - } else throw typeErrorCreate("toString is not a function");
2966 - if (!DOMPurify.isSupported) return dirty;
2967 - if (!SET_CONFIG) _parseConfig(cfg);
2968 - DOMPurify.removed = [];
2969 - if (typeof dirty === "string") IN_PLACE = false;
2970 - if (IN_PLACE) {
2971 - if (dirty.nodeName) {
2972 - const tagName = transformCaseFunc(dirty.nodeName);
2973 - if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
2974 - }
2975 - } else if (dirty instanceof Node) {
2976 - body = _initDocument("<!---->");
2977 - importedNode = body.ownerDocument.importNode(dirty, true);
2978 - if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === "BODY") body = importedNode;
2979 - else if (importedNode.nodeName === "HTML") body = importedNode;
2980 - else body.appendChild(importedNode);
2981 - } else {
2982 - if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf("<") === -1) return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
2983 - body = _initDocument(dirty);
2984 - if (!body) return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
2985 - }
2986 - if (body && FORCE_BODY) _forceRemove(body.firstChild);
2987 - const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
2988 - while (currentNode = nodeIterator.nextNode()) {
2989 - _sanitizeElements(currentNode);
2990 - _sanitizeAttributes(currentNode);
2991 - if (currentNode.content instanceof DocumentFragment) _sanitizeShadowDOM(currentNode.content);
2992 - }
2993 - if (IN_PLACE) return dirty;
2994 - if (RETURN_DOM) {
2995 - if (RETURN_DOM_FRAGMENT) {
2996 - returnNode = createDocumentFragment.call(body.ownerDocument);
2997 - while (body.firstChild) returnNode.appendChild(body.firstChild);
2998 - } else returnNode = body;
2999 - if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) returnNode = importNode.call(originalDocument, returnNode, true);
3000 - return returnNode;
3001 - }
3002 - let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
3003 - if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) serializedHTML = "<!DOCTYPE " + body.ownerDocument.doctype.name + ">\n" + serializedHTML;
3004 - if (SAFE_FOR_TEMPLATES) arrayForEach([
3005 - MUSTACHE_EXPR,
3006 - ERB_EXPR,
3007 - TMPLIT_EXPR
3008 - ], (expr) => {
3009 - serializedHTML = stringReplace(serializedHTML, expr, " ");
3010 - });
3011 - return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
3012 - };
3013 - DOMPurify.setConfig = function() {
3014 - let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
3015 - _parseConfig(cfg);
3016 - SET_CONFIG = true;
3017 - };
3018 - DOMPurify.clearConfig = function() {
3019 - CONFIG = null;
3020 - SET_CONFIG = false;
3021 - };
3022 - DOMPurify.isValidAttribute = function(tag, attr, value) {
3023 - if (!CONFIG) _parseConfig({});
3024 - const lcTag = transformCaseFunc(tag);
3025 - const lcName = transformCaseFunc(attr);
3026 - return _isValidAttribute(lcTag, lcName, value);
3027 - };
3028 - DOMPurify.addHook = function(entryPoint, hookFunction) {
3029 - if (typeof hookFunction !== "function") return;
3030 - arrayPush(hooks[entryPoint], hookFunction);
3031 - };
3032 - DOMPurify.removeHook = function(entryPoint, hookFunction) {
3033 - if (hookFunction !== void 0) {
3034 - const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
3035 - return index === -1 ? void 0 : arraySplice(hooks[entryPoint], index, 1)[0];
3036 - }
3037 - return arrayPop(hooks[entryPoint]);
3038 - };
3039 - DOMPurify.removeHooks = function(entryPoint) {
3040 - hooks[entryPoint] = [];
3041 - };
3042 - DOMPurify.removeAllHooks = function() {
3043 - hooks = _createHooksMap();
3044 - };
3045 - return DOMPurify;
2907 +
2908 + return true;
2909 + } catch (err) {
2910 + // We don't expect any of the above to throw, but better to be safe.
2911 + return false;
3046 2912 }
3047 - var purify = createDOMPurify();
2913 +}
3048 2914
3049 -//#endregion
3050 -//#region modules/atomic-opt-in/assets/js/opt-in-page/opt-in-terms.js
3051 - var _excluded = [
3052 - "onClose",
3053 - "onSubmit",
3054 - "isEnrolled"
3055 - ];
3056 - var i18n$1 = {
3057 - header: (0, _wordpress_i18n.__)("Atomic Editor", "elementor"),
3058 - checkboxText: (0, _wordpress_i18n.__)("I’ve read and understood.", "elementor"),
3059 - optIn: {
3060 - titleText: (0, _wordpress_i18n.__)("You are about to enable Atomic Editor features!", "elementor"),
3061 - introText: (0, _wordpress_i18n.__)("By activating, you’ll get access to the next generation of Elementor’s Editor. This is your chance to explore new capabilities and help shape the future of Elementor! ", "elementor"),
3062 - details: [(0, _wordpress_i18n.__)("When you activate, you’ll also be activating Containers and Nested Elements. You can turn them back off by going to: WP Admin > Elementor > Settings > Features.", "elementor")],
3063 - activateButton: (0, _wordpress_i18n.__)("Activate", "elementor"),
3064 - cancelButton: (0, _wordpress_i18n.__)("Cancel", "elementor")
3065 - },
3066 - optOut: {
3067 - titleText: (0, _wordpress_i18n.__)("You're about to lose all content created with Atomic features", "elementor"),
3068 - details: [(0, _wordpress_i18n.__)("By deactivating, you’ll lose all Atomic Elements, Classes and Variables. Any content you created with these features will no longer be available or appear on your site.", "elementor"), (0, _wordpress_i18n.__)("Containers and Nested Elements will stay in their current status.", "elementor")],
3069 - activateButton: (0, _wordpress_i18n.__)("Deactivate", "elementor"),
3070 - cancelButton: (0, _wordpress_i18n.__)("Cancel", "elementor")
3071 - }
3072 - };
3073 - var Terms = function Terms(_ref) {
3074 - var onClose = _ref.onClose;
3075 - var onSubmit = _ref.onSubmit;
3076 - var isEnrolled = _ref.isEnrolled;
3077 - var props = _objectWithoutProperties(_ref, _excluded);
3078 - var _useState2 = _slicedToArray((0, react.useState)(false), 2);
3079 - var checked = _useState2[0];
3080 - var setChecked = _useState2[1];
3081 - var handleCheckboxChange = function handleCheckboxChange() {
3082 - setChecked(function(prev) {
3083 - return !prev;
3084 - });
3085 - };
3086 - var handleSubmit = function handleSubmit() {
3087 - if (checked) onSubmit();
3088 - };
3089 - var currentState = isEnrolled ? "optOut" : "optIn";
3090 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.Dialog, _extends({}, props, {
3091 - open: true,
3092 - onClose,
3093 - maxWidth: "md"
3094 - }), /*#__PURE__*/ react.default.createElement(_elementor_ui_DialogHeader.default, null, /*#__PURE__*/ react.default.createElement(_elementor_ui_DialogHeaderGroup.default, null, /*#__PURE__*/ react.default.createElement(_elementor_ui.DialogTitle, null, i18n$1.header))), /*#__PURE__*/ react.default.createElement(_elementor_ui.DialogContent, { dividers: true }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, { gap: 2.5 }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, {
3095 - gap: 1.5,
3096 - sx: {
3097 - mx: 2,
3098 - maxWidth: "550px"
3099 - }
3100 - }, /*#__PURE__*/ react.default.createElement(TextNode, {
3101 - align: "center",
3102 - variant: "h6"
3103 - }, i18n$1[currentState].titleText), i18n$1[currentState].introText && /*#__PURE__*/ react.default.createElement(TextNode, {
3104 - align: "center",
3105 - variant: "body3"
3106 - }, i18n$1[currentState].introText)), /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, null, /*#__PURE__*/ react.default.createElement(ContentList, { sx: {
3107 - mx: 3,
3108 - maxWidth: "550px"
3109 - } }, i18n$1[currentState].details.map(function(entry, index) {
3110 - return /*#__PURE__*/ react.default.createElement(ContentListItem, {
3111 - key: index,
3112 - variant: "body3"
3113 - }, entry);
3114 - }))), /*#__PURE__*/ react.default.createElement(_elementor_ui.FormControlLabel, {
3115 - control: /*#__PURE__*/ react.default.createElement(_elementor_ui.Checkbox, {
3116 - checked: !!checked,
3117 - onChange: handleCheckboxChange,
3118 - color: "secondary",
3119 - size: "small"
3120 - }),
3121 - label: /*#__PURE__*/ react.default.createElement(TextNode, { variant: "body2" }, i18n$1.checkboxText)
3122 - }))), /*#__PURE__*/ react.default.createElement(_elementor_ui.DialogActions, null, /*#__PURE__*/ react.default.createElement(_elementor_ui.Button, {
3123 - variant: "text",
3124 - color: "secondary",
3125 - onClick: onClose
3126 - }, i18n$1[currentState].cancelButton), /*#__PURE__*/ react.default.createElement(_elementor_ui.Button, {
3127 - disabled: !checked,
3128 - variant: "contained",
3129 - onClick: handleSubmit
3130 - }, i18n$1[currentState].activateButton)));
3131 - };
3132 - Terms.propTypes = {
3133 - onClose: import_prop_types.default.func,
3134 - onSubmit: import_prop_types.default.func,
3135 - isEnrolled: import_prop_types.default.bool
3136 - };
2915 +module.exports = shouldUseNative() ? Object.assign : function (target, source) {
2916 + var from;
2917 + var to = toObject(target);
2918 + var symbols;
3137 2919
3138 -//#endregion
3139 -//#region modules/atomic-opt-in/assets/js/opt-in-page/opt-in.js
3140 - var _elementorSettingsEdi;
3141 - function ownKeys(e, r) {
3142 - var t = Object.keys(e);
3143 - if (Object.getOwnPropertySymbols) {
3144 - var o = Object.getOwnPropertySymbols(e);
3145 - r && (o = o.filter(function(r) {
3146 - return Object.getOwnPropertyDescriptor(e, r).enumerable;
3147 - })), t.push.apply(t, o);
3148 - }
3149 - return t;
3150 - }
3151 - function _objectSpread(e) {
3152 - for (var r = 1; r < arguments.length; r++) {
3153 - var t = null != arguments[r] ? arguments[r] : {};
3154 - r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
3155 - _defineProperty(e, r, t[r]);
3156 - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
3157 - Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
3158 - });
3159 - }
3160 - return e;
3161 - }
3162 - var decodeHtmlUrl = function decodeHtmlUrl(html) {
3163 - var textarea = document.createElement("textarea");
3164 - textarea.innerHTML = html;
3165 - return textarea.value;
3166 - };
3167 - var OPT_IN_MSG = "e-editor-v4-opt-in-message";
3168 - var OPT_OUT_MSG = "e-editor-v4-opt-out-message";
3169 - var i18n = {
3170 - title: (0, _wordpress_i18n.__)("Activate Atomic Editor features", "elementor"),
3171 - welcomeText: (0, _wordpress_i18n.__)("The Atomic Editor presents a new generation of high-performance, flexible building blocks designed for less bloat and precise styling with a unified interface.", "elementor"),
3172 - advantages: [
3173 - [(0, _wordpress_i18n.__)("Combine legacy widgets & new elements", "elementor"), (0, _wordpress_i18n.__)("Your current and new workflows work together on the same page.", "elementor")],
3174 - [(0, _wordpress_i18n.__)("Build reusable design systems", "elementor"), (0, _wordpress_i18n.__)("Classes, Variables and Components give you a clear path for scale.", "elementor")],
3175 - [(0, _wordpress_i18n.__)("Consistent styling experience", "elementor"), (0, _wordpress_i18n.__)("A unified Style tab for all Atomic Elements with full control over responsive design.", "elementor")],
3176 - [(0, _wordpress_i18n.__)("Unparalleled performance", "elementor"), (0, _wordpress_i18n.__)("Cleaner code and a lighter CSS footprint with single-div wrappers.", "elementor")]
3177 - ],
3178 - andMore: (0, _wordpress_i18n.__)("And much more!", "elementor"),
3179 - readMore: (0, _wordpress_i18n.__)("Learn more", "elementor"),
3180 - feedback: (0, _wordpress_i18n.__)("We’d love your feedback!", "elementor"),
3181 - overToGithub: (0, _wordpress_i18n.__)("Head over to Github", "elementor"),
3182 - tellUsWhy: (0, _wordpress_i18n.__)("Tell us why", "elementor"),
3183 - image: (0, _wordpress_i18n.__)("Editor V4", "elementor"),
3184 - buttons: {
3185 - tryOut: (0, _wordpress_i18n.__)("Try out the new experience", "elementor"),
3186 - optIn: (0, _wordpress_i18n.__)("Activate the new experience", "elementor"),
3187 - optOut: (0, _wordpress_i18n.__)("Deactivate", "elementor")
3188 - },
3189 - messages: {
3190 - optInSuccess: (0, _wordpress_i18n.__)("Welcome! You’ve got the newest version of the editor.", "elementor"),
3191 - optOut: (0, _wordpress_i18n.__)("You’ve deactivated the new Editor. Have feedback?", "elementor"),
3192 - error: (0, _wordpress_i18n.__)("Ouch, there was a glitch. Try activating again soon.", "elementor")
3193 - }
3194 - };
3195 - var optInLinks = {
3196 - feedbackUrl: "https://go.elementor.com/wp-dash-opt-in-v4-feedback/",
3197 - readMoreUrl: "https://go.elementor.com/wp-dash-opt-in-v4-help-center/",
3198 - tryOutUrl: purify.sanitize(decodeHtmlUrl((_elementorSettingsEdi = elementorSettingsEditor4OptIn) === null || _elementorSettingsEdi === void 0 || (_elementorSettingsEdi = _elementorSettingsEdi.urls) === null || _elementorSettingsEdi === void 0 ? void 0 : _elementorSettingsEdi.start_building)) || "#"
3199 - };
3200 - var optInImages = {
3201 - square: {
3202 - src: "https://assets.elementor.com/v4-promotion/v1/images/v4_opt_in_500.png",
3203 - sx: {
3204 - width: "100%",
3205 - maxHeight: "507px",
3206 - maxWidth: "sm",
3207 - height: "auto",
3208 - mx: "auto",
3209 - borderRadius: 2
2920 + for (var s = 1; s < arguments.length; s++) {
2921 + from = Object(arguments[s]);
2922 +
2923 + for (var key in from) {
2924 + if (hasOwnProperty.call(from, key)) {
2925 + to[key] = from[key];
3210 2926 }
3211 - },
3212 - landscape: {
3213 - src: "https://assets.elementor.com/v4-promotion/v1/images/v4_opt_in_260.png",
3214 - sx: {
3215 - width: "100%",
3216 - height: "auto",
3217 - maxHeight: "260px",
3218 - mx: "auto",
3219 - maxWidth: "sm",
3220 - borderRadius: 2
3221 - }
3222 2927 }
3223 - };
3224 - var OptIn = function OptIn(_ref) {
3225 - var _state$features;
3226 - var state = _ref.state;
3227 - var _useState2 = _slicedToArray((0, react.useState)(false), 2);
3228 - var showTerms = _useState2[0];
3229 - var setShowTerms = _useState2[1];
3230 - var _useState4 = _slicedToArray((0, react.useState)(""), 2);
3231 - var optInMessage = _useState4[0];
3232 - var setOptInMessage = _useState4[1];
3233 - var _useState6 = _slicedToArray((0, react.useState)(""), 2);
3234 - var optOutMessage = _useState6[0];
3235 - var setOptOutMessage = _useState6[1];
3236 - var _useState8 = _slicedToArray((0, react.useState)(""), 2);
3237 - var errorMessage = _useState8[0];
3238 - var setErrorMessage = _useState8[1];
3239 - (0, react.useEffect)(function() {
3240 - var optInMsg = sessionStorage.getItem(OPT_IN_MSG);
3241 - var optOutMsg = sessionStorage.getItem(OPT_OUT_MSG);
3242 - if (optInMsg) {
3243 - setTimeout(function() {
3244 - setOptInMessage(optInMsg);
3245 - }, 100);
3246 - sessionStorage.removeItem(OPT_IN_MSG);
3247 - }
3248 - if (optOutMsg) {
3249 - setTimeout(function() {
3250 - setOptOutMessage(optOutMsg);
3251 - }, 100);
3252 - sessionStorage.removeItem(OPT_OUT_MSG);
3253 - }
3254 - }, []);
3255 - var maybeOptIn = function maybeOptIn() {
3256 - triggerOptIn().then(function() {
3257 - sessionStorage.setItem(OPT_IN_MSG, i18n.messages.optInSuccess);
3258 - window.location.reload();
3259 - }).catch(function() {
3260 - setErrorMessage(i18n.messages.error);
3261 - });
3262 - };
3263 - var maybeOptOut = function maybeOptOut() {
3264 - triggerOptOut().then(function() {
3265 - sessionStorage.setItem(OPT_OUT_MSG, i18n.messages.optOut);
3266 - window.location.reload();
3267 - }).catch(function() {
3268 - setErrorMessage(i18n.messages.error);
3269 - });
3270 - };
3271 - var handlePopoverClose = function handlePopoverClose() {
3272 - setShowTerms(false);
3273 - };
3274 - var isEnrolled = !!(state !== null && state !== void 0 && (_state$features = state.features) !== null && _state$features !== void 0 && _state$features.editor_v4);
3275 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.Container, {
3276 - maxWidth: "xl",
3277 - sx: {
3278 - marginBlockStart: 2.5,
3279 - display: "flex",
3280 - flexBasis: "100%",
3281 - gap: 3,
3282 - flexDirection: {
3283 - xs: "column-reverse",
3284 - md: "row"
2928 +
2929 + if (getOwnPropertySymbols) {
2930 + symbols = getOwnPropertySymbols(from);
2931 + for (var i = 0; i < symbols.length; i++) {
2932 + if (propIsEnumerable.call(from, symbols[i])) {
2933 + to[symbols[i]] = from[symbols[i]];
3285 2934 }
3286 2935 }
3287 - }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, { sx: {
3288 - flex: 1,
3289 - maxWidth: {
3290 - md: "580px",
3291 - sm: "600px"
3292 - },
3293 - gap: 2.5,
3294 - mx: "auto"
3295 - } }, /*#__PURE__*/ react.default.createElement(TextNode, {
3296 - variant: "h4",
3297 - width: "fit-content"
3298 - }, /*#__PURE__*/ react.default.createElement("span", null, i18n.title)), /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, {
3299 - direction: "column",
3300 - gap: 1
3301 - }, /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, null, /*#__PURE__*/ react.default.createElement(TextNode, null, i18n.welcomeText)), /*#__PURE__*/ react.default.createElement(_elementor_ui.Box, null, /*#__PURE__*/ react.default.createElement(AdvantagesList, { sx: { gap: .5 } }, i18n.advantages.map(function(entry, i) {
3302 - return /*#__PURE__*/ react.default.createElement(AdvantagesListItem, { key: i }, /*#__PURE__*/ react.default.createElement("b", null, entry[0]), " - ", entry[1]);
3303 - }), /*#__PURE__*/ react.default.createElement(AdvantagesListItem, { key: i18n.advantages.length }, i18n.andMore, " ", /*#__PURE__*/ react.default.createElement(_elementor_ui.Link, {
3304 - color: "text.primary",
3305 - href: optInLinks.readMoreUrl,
3306 - target: "_blank"
3307 - }, i18n.readMore))))), /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, {
3308 - direction: "column",
3309 - width: "clamp(240px, max(340px, 75%), 340px)",
3310 - maxWidth: "100%",
3311 - gap: 2
3312 - }, !isEnrolled ? /*#__PURE__*/ react.default.createElement(_elementor_ui.Button, {
3313 - onClick: function onClick() {
3314 - setShowTerms(true);
3315 - },
3316 - size: "large",
3317 - color: "primary",
3318 - variant: "contained",
3319 - sx: { flexGrow: 1 }
3320 - }, i18n.buttons.optIn) : /*#__PURE__*/ react.default.createElement(_elementor_ui.Button, {
3321 - onClick: function onClick() {
3322 - return window.location.href = optInLinks.tryOutUrl;
3323 - },
3324 - size: "large",
3325 - color: "primary",
3326 - variant: "contained",
3327 - sx: { flexGrow: 1 }
3328 - }, i18n.buttons.tryOut), /*#__PURE__*/ react.default.createElement(_elementor_ui.Button, {
3329 - onClick: function onClick() {
3330 - setShowTerms(true);
3331 - },
3332 - size: "large",
3333 - color: "secondary",
3334 - variant: "outlined",
3335 - sx: {
3336 - flexGrow: 1,
3337 - visibility: isEnrolled ? "visible" : "hidden"
3338 - }
3339 - }, i18n.buttons.optOut)), /*#__PURE__*/ react.default.createElement(TextNode, null, i18n.feedback, " ", /*#__PURE__*/ react.default.createElement(_elementor_ui.Link, {
3340 - underline: "hover",
3341 - href: optInLinks.feedbackUrl,
3342 - target: "_blank"
3343 - }, i18n.overToGithub))), /*#__PURE__*/ react.default.createElement(_elementor_ui.Stack, { sx: {
3344 - flex: 1,
3345 - px: 0,
3346 - maxWidth: {
3347 - md: "507px",
3348 - sm: "600px"
3349 - },
3350 - mx: "auto"
3351 - } }, optInImages.square.src ? /*#__PURE__*/ react.default.createElement(_elementor_ui.Image, {
3352 - src: optInImages.square.src,
3353 - alt: i18n.image,
3354 - sx: _objectSpread(_objectSpread({}, optInImages.square.sx), {}, { display: {
3355 - xs: "none",
3356 - md: "block"
3357 - } })
3358 - }) : /*#__PURE__*/ react.default.createElement(ImageSquarePlaceholder, { sx: _objectSpread(_objectSpread({}, optInImages.square.sx), {}, { display: {
3359 - xs: "none",
3360 - md: "block"
3361 - } }) }), optInImages.landscape.src ? /*#__PURE__*/ react.default.createElement(_elementor_ui.Image, {
3362 - src: optInImages.landscape.src,
3363 - alt: i18n.image,
3364 - sx: _objectSpread(_objectSpread({}, optInImages.landscape.sx), {}, { display: {
3365 - xs: "block",
3366 - md: "none"
3367 - } })
3368 - }) : /*#__PURE__*/ react.default.createElement(ImageLandscapePlaceholder, { sx: _objectSpread(_objectSpread({}, optInImages.landscape.sx), {}, { display: {
3369 - xs: "block",
3370 - md: "none"
3371 - } }) })), showTerms && /*#__PURE__*/ react.default.createElement(Terms, {
3372 - onClose: handlePopoverClose,
3373 - onSubmit: isEnrolled ? maybeOptOut : maybeOptIn,
3374 - isEnrolled
3375 - }), optInMessage && /*#__PURE__*/ react.default.createElement(Message, {
3376 - onClose: function onClose() {
3377 - return setOptInMessage("");
3378 - },
3379 - action: /*#__PURE__*/ react.default.createElement(_elementor_ui.Link, {
3380 - href: optInLinks.tryOutUrl,
3381 - color: "#FFFFFF",
3382 - sx: {
3383 - cursor: "pointer",
3384 - textDecoration: "none",
3385 - pl: 3
3386 - }
3387 - }, i18n.buttons.tryOut)
3388 - }, optInMessage), optOutMessage && /*#__PURE__*/ react.default.createElement(Message, {
3389 - onClose: function onClose() {
3390 - return setOptOutMessage("");
3391 - },
3392 - action: /*#__PURE__*/ react.default.createElement(_elementor_ui.Link, {
3393 - href: optInLinks.feedbackUrl,
3394 - target: "_blank",
3395 - color: "#FFFFFF",
3396 - sx: {
3397 - cursor: "pointer",
3398 - textDecoration: "none",
3399 - pl: 3
3400 - }
3401 - }, i18n.tellUsWhy)
3402 - }, optOutMessage), errorMessage && /*#__PURE__*/ react.default.createElement(Message, {
3403 - severity: "error",
3404 - onClose: function onClose() {
3405 - return setErrorMessage("");
3406 - }
3407 - }, errorMessage));
3408 - };
3409 - OptIn.propTypes = { state: import_prop_types.default.shape({ features: import_prop_types.default.shape({ editor_v4: import_prop_types.default.bool }) }).isRequired };
2936 + }
2937 + }
3410 2938
3411 -//#endregion
3412 -//#region modules/atomic-opt-in/assets/js/opt-in-page/app.js
3413 - var App = function App(props) {
3414 - return /*#__PURE__*/ react.default.createElement(_elementor_ui.DirectionProvider, { rtl: props.isRTL }, /*#__PURE__*/ react.default.createElement(_elementor_ui.LocalizationProvider, null, /*#__PURE__*/ react.default.createElement(_elementor_ui.ThemeProvider, { colorScheme: "light" }, /*#__PURE__*/ react.default.createElement(OptIn, { state: props === null || props === void 0 ? void 0 : props.state }))));
3415 - };
3416 - App.propTypes = {
3417 - isRTL: import_prop_types.default.bool,
3418 - state: import_prop_types.default.object
3419 - };
3420 - (function init() {
3421 - var rootElement = document.querySelector("#page-editor-v4-opt-in");
3422 - if (!rootElement) return;
3423 - react_default.render(/*#__PURE__*/ react.default.createElement(App, {
3424 - isRTL: !!elementorCommon.config.isRTL,
3425 - state: elementorSettingsEditor4OptIn
3426 - }), rootElement);
3427 - })();
2939 + return to;
2940 +};
3428 2941
3429 -//#endregion
3430 -})(React, ReactDOM, elementorV2.ui, wp.i18n, elementorV2.icons, elementorV2.ui['DialogHeaderGroup'], elementorV2.ui['DialogHeader']);
2942 +
2943 +/***/ }),
2944 +
2945 +/***/ "../node_modules/prop-types/checkPropTypes.js":
2946 +/*!****************************************************!*\
2947 + !*** ../node_modules/prop-types/checkPropTypes.js ***!
2948 + \****************************************************/
2949 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2950 +
2951 +"use strict";
2952 +/**
2953 + * Copyright (c) 2013-present, Facebook, Inc.
2954 + *
2955 + * This source code is licensed under the MIT license found in the
2956 + * LICENSE file in the root directory of this source tree.
2957 + */
2958 +
2959 +
2960 +
2961 +var printWarning = function() {};
2962 +
2963 +if (true) {
2964 + var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
2965 + var loggedTypeFailures = {};
2966 + var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
2967 +
2968 + printWarning = function(text) {
2969 + var message = 'Warning: ' + text;
2970 + if (typeof console !== 'undefined') {
2971 + console.error(message);
2972 + }
2973 + try {
2974 + // --- Welcome to debugging React ---
2975 + // This error was thrown as a convenience so that you can use this stack
2976 + // to find the callsite that caused this warning to fire.
2977 + throw new Error(message);
2978 + } catch (x) { /**/ }
2979 + };
2980 +}
2981 +
2982 +/**
2983 + * Assert that the values match with the type specs.
2984 + * Error messages are memorized and will only be shown once.
2985 + *
2986 + * @param {object} typeSpecs Map of name to a ReactPropType
2987 + * @param {object} values Runtime values that need to be type-checked
2988 + * @param {string} location e.g. "prop", "context", "child context"
2989 + * @param {string} componentName Name of the component for error messages.
2990 + * @param {?Function} getStack Returns the component stack.
2991 + * @private
2992 + */
2993 +function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
2994 + if (true) {
2995 + for (var typeSpecName in typeSpecs) {
2996 + if (has(typeSpecs, typeSpecName)) {
2997 + var error;
2998 + // Prop type validation may throw. In case they do, we don't want to
2999 + // fail the render phase where it didn't fail before. So we log it.
3000 + // After these have been cleaned up, we'll let them throw.
3001 + try {
3002 + // This is intentionally an invariant that gets caught. It's the same
3003 + // behavior as without this statement except with a better message.
3004 + if (typeof typeSpecs[typeSpecName] !== 'function') {
3005 + var err = Error(
3006 + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
3007 + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
3008 + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
3009 + );
3010 + err.name = 'Invariant Violation';
3011 + throw err;
3012 + }
3013 + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
3014 + } catch (ex) {
3015 + error = ex;
3016 + }
3017 + if (error && !(error instanceof Error)) {
3018 + printWarning(
3019 + (componentName || 'React class') + ': type specification of ' +
3020 + location + ' `' + typeSpecName + '` is invalid; the type checker ' +
3021 + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
3022 + 'You may have forgotten to pass an argument to the type checker ' +
3023 + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
3024 + 'shape all require an argument).'
3025 + );
3026 + }
3027 + if (error instanceof Error && !(error.message in loggedTypeFailures)) {
3028 + // Only monitor this failure once because there tends to be a lot of the
3029 + // same error.
3030 + loggedTypeFailures[error.message] = true;
3031 +
3032 + var stack = getStack ? getStack() : '';
3033 +
3034 + printWarning(
3035 + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
3036 + );
3037 + }
3038 + }
3039 + }
3040 + }
3041 +}
3042 +
3043 +/**
3044 + * Resets warning cache when testing.
3045 + *
3046 + * @private
3047 + */
3048 +checkPropTypes.resetWarningCache = function() {
3049 + if (true) {
3050 + loggedTypeFailures = {};
3051 + }
3052 +}
3053 +
3054 +module.exports = checkPropTypes;
3055 +
3056 +
3057 +/***/ }),
3058 +
3059 +/***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
3060 +/*!*************************************************************!*\
3061 + !*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
3062 + \*************************************************************/
3063 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3064 +
3065 +"use strict";
3066 +/**
3067 + * Copyright (c) 2013-present, Facebook, Inc.
3068 + *
3069 + * This source code is licensed under the MIT license found in the
3070 + * LICENSE file in the root directory of this source tree.
3071 + */
3072 +
3073 +
3074 +
3075 +var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
3076 +var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
3077 +
3078 +var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
3079 +var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
3080 +var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
3081 +
3082 +var printWarning = function() {};
3083 +
3084 +if (true) {
3085 + printWarning = function(text) {
3086 + var message = 'Warning: ' + text;
3087 + if (typeof console !== 'undefined') {
3088 + console.error(message);
3089 + }
3090 + try {
3091 + // --- Welcome to debugging React ---
3092 + // This error was thrown as a convenience so that you can use this stack
3093 + // to find the callsite that caused this warning to fire.
3094 + throw new Error(message);
3095 + } catch (x) {}
3096 + };
3097 +}
3098 +
3099 +function emptyFunctionThatReturnsNull() {
3100 + return null;
3101 +}
3102 +
3103 +module.exports = function(isValidElement, throwOnDirectAccess) {
3104 + /* global Symbol */
3105 + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
3106 + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
3107 +
3108 + /**
3109 + * Returns the iterator method function contained on the iterable object.
3110 + *
3111 + * Be sure to invoke the function with the iterable as context:
3112 + *
3113 + * var iteratorFn = getIteratorFn(myIterable);
3114 + * if (iteratorFn) {
3115 + * var iterator = iteratorFn.call(myIterable);
3116 + * ...
3117 + * }
3118 + *
3119 + * @param {?object} maybeIterable
3120 + * @return {?function}
3121 + */
3122 + function getIteratorFn(maybeIterable) {
3123 + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
3124 + if (typeof iteratorFn === 'function') {
3125 + return iteratorFn;
3126 + }
3127 + }
3128 +
3129 + /**
3130 + * Collection of methods that allow declaration and validation of props that are
3131 + * supplied to React components. Example usage:
3132 + *
3133 + * var Props = require('ReactPropTypes');
3134 + * var MyArticle = React.createClass({
3135 + * propTypes: {
3136 + * // An optional string prop named "description".
3137 + * description: Props.string,
3138 + *
3139 + * // A required enum prop named "category".
3140 + * category: Props.oneOf(['News','Photos']).isRequired,
3141 + *
3142 + * // A prop named "dialog" that requires an instance of Dialog.
3143 + * dialog: Props.instanceOf(Dialog).isRequired
3144 + * },
3145 + * render: function() { ... }
3146 + * });
3147 + *
3148 + * A more formal specification of how these methods are used:
3149 + *
3150 + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
3151 + * decl := ReactPropTypes.{type}(.isRequired)?
3152 + *
3153 + * Each and every declaration produces a function with the same signature. This
3154 + * allows the creation of custom validation functions. For example:
3155 + *
3156 + * var MyLink = React.createClass({
3157 + * propTypes: {
3158 + * // An optional string or URI prop named "href".
3159 + * href: function(props, propName, componentName) {
3160 + * var propValue = props[propName];
3161 + * if (propValue != null && typeof propValue !== 'string' &&
3162 + * !(propValue instanceof URI)) {
3163 + * return new Error(
3164 + * 'Expected a string or an URI for ' + propName + ' in ' +
3165 + * componentName
3166 + * );
3167 + * }
3168 + * }
3169 + * },
3170 + * render: function() {...}
3171 + * });
3172 + *
3173 + * @internal
3174 + */
3175 +
3176 + var ANONYMOUS = '<<anonymous>>';
3177 +
3178 + // Important!
3179 + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
3180 + var ReactPropTypes = {
3181 + array: createPrimitiveTypeChecker('array'),
3182 + bigint: createPrimitiveTypeChecker('bigint'),
3183 + bool: createPrimitiveTypeChecker('boolean'),
3184 + func: createPrimitiveTypeChecker('function'),
3185 + number: createPrimitiveTypeChecker('number'),
3186 + object: createPrimitiveTypeChecker('object'),
3187 + string: createPrimitiveTypeChecker('string'),
3188 + symbol: createPrimitiveTypeChecker('symbol'),
3189 +
3190 + any: createAnyTypeChecker(),
3191 + arrayOf: createArrayOfTypeChecker,
3192 + element: createElementTypeChecker(),
3193 + elementType: createElementTypeTypeChecker(),
3194 + instanceOf: createInstanceTypeChecker,
3195 + node: createNodeChecker(),
3196 + objectOf: createObjectOfTypeChecker,
3197 + oneOf: createEnumTypeChecker,
3198 + oneOfType: createUnionTypeChecker,
3199 + shape: createShapeTypeChecker,
3200 + exact: createStrictShapeTypeChecker,
3201 + };
3202 +
3203 + /**
3204 + * inlined Object.is polyfill to avoid requiring consumers ship their own
3205 + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
3206 + */
3207 + /*eslint-disable no-self-compare*/
3208 + function is(x, y) {
3209 + // SameValue algorithm
3210 + if (x === y) {
3211 + // Steps 1-5, 7-10
3212 + // Steps 6.b-6.e: +0 != -0
3213 + return x !== 0 || 1 / x === 1 / y;
3214 + } else {
3215 + // Step 6.a: NaN == NaN
3216 + return x !== x && y !== y;
3217 + }
3218 + }
3219 + /*eslint-enable no-self-compare*/
3220 +
3221 + /**
3222 + * We use an Error-like object for backward compatibility as people may call
3223 + * PropTypes directly and inspect their output. However, we don't use real
3224 + * Errors anymore. We don't inspect their stack anyway, and creating them
3225 + * is prohibitively expensive if they are created too often, such as what
3226 + * happens in oneOfType() for any type before the one that matched.
3227 + */
3228 + function PropTypeError(message, data) {
3229 + this.message = message;
3230 + this.data = data && typeof data === 'object' ? data: {};
3231 + this.stack = '';
3232 + }
3233 + // Make `instanceof Error` still work for returned errors.
3234 + PropTypeError.prototype = Error.prototype;
3235 +
3236 + function createChainableTypeChecker(validate) {
3237 + if (true) {
3238 + var manualPropTypeCallCache = {};
3239 + var manualPropTypeWarningCount = 0;
3240 + }
3241 + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
3242 + componentName = componentName || ANONYMOUS;
3243 + propFullName = propFullName || propName;
3244 +
3245 + if (secret !== ReactPropTypesSecret) {
3246 + if (throwOnDirectAccess) {
3247 + // New behavior only for users of `prop-types` package
3248 + var err = new Error(
3249 + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
3250 + 'Use `PropTypes.checkPropTypes()` to call them. ' +
3251 + 'Read more at http://fb.me/use-check-prop-types'
3252 + );
3253 + err.name = 'Invariant Violation';
3254 + throw err;
3255 + } else if ( true && typeof console !== 'undefined') {
3256 + // Old behavior for people using React.PropTypes
3257 + var cacheKey = componentName + ':' + propName;
3258 + if (
3259 + !manualPropTypeCallCache[cacheKey] &&
3260 + // Avoid spamming the console because they are often not actionable except for lib authors
3261 + manualPropTypeWarningCount < 3
3262 + ) {
3263 + printWarning(
3264 + 'You are manually calling a React.PropTypes validation ' +
3265 + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +
3266 + 'and will throw in the standalone `prop-types` package. ' +
3267 + 'You may be seeing this warning due to a third-party PropTypes ' +
3268 + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
3269 + );
3270 + manualPropTypeCallCache[cacheKey] = true;
3271 + manualPropTypeWarningCount++;
3272 + }
3273 + }
3274 + }
3275 + if (props[propName] == null) {
3276 + if (isRequired) {
3277 + if (props[propName] === null) {
3278 + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
3279 + }
3280 + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
3281 + }
3282 + return null;
3283 + } else {
3284 + return validate(props, propName, componentName, location, propFullName);
3285 + }
3286 + }
3287 +
3288 + var chainedCheckType = checkType.bind(null, false);
3289 + chainedCheckType.isRequired = checkType.bind(null, true);
3290 +
3291 + return chainedCheckType;
3292 + }
3293 +
3294 + function createPrimitiveTypeChecker(expectedType) {
3295 + function validate(props, propName, componentName, location, propFullName, secret) {
3296 + var propValue = props[propName];
3297 + var propType = getPropType(propValue);
3298 + if (propType !== expectedType) {
3299 + // `propValue` being instance of, say, date/regexp, pass the 'object'
3300 + // check, but we can offer a more precise error message here rather than
3301 + // 'of type `object`'.
3302 + var preciseType = getPreciseType(propValue);
3303 +
3304 + return new PropTypeError(
3305 + 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),
3306 + {expectedType: expectedType}
3307 + );
3308 + }
3309 + return null;
3310 + }
3311 + return createChainableTypeChecker(validate);
3312 + }
3313 +
3314 + function createAnyTypeChecker() {
3315 + return createChainableTypeChecker(emptyFunctionThatReturnsNull);
3316 + }
3317 +
3318 + function createArrayOfTypeChecker(typeChecker) {
3319 + function validate(props, propName, componentName, location, propFullName) {
3320 + if (typeof typeChecker !== 'function') {
3321 + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
3322 + }
3323 + var propValue = props[propName];
3324 + if (!Array.isArray(propValue)) {
3325 + var propType = getPropType(propValue);
3326 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
3327 + }
3328 + for (var i = 0; i < propValue.length; i++) {
3329 + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
3330 + if (error instanceof Error) {
3331 + return error;
3332 + }
3333 + }
3334 + return null;
3335 + }
3336 + return createChainableTypeChecker(validate);
3337 + }
3338 +
3339 + function createElementTypeChecker() {
3340 + function validate(props, propName, componentName, location, propFullName) {
3341 + var propValue = props[propName];
3342 + if (!isValidElement(propValue)) {
3343 + var propType = getPropType(propValue);
3344 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
3345 + }
3346 + return null;
3347 + }
3348 + return createChainableTypeChecker(validate);
3349 + }
3350 +
3351 + function createElementTypeTypeChecker() {
3352 + function validate(props, propName, componentName, location, propFullName) {
3353 + var propValue = props[propName];
3354 + if (!ReactIs.isValidElementType(propValue)) {
3355 + var propType = getPropType(propValue);
3356 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
3357 + }
3358 + return null;
3359 + }
3360 + return createChainableTypeChecker(validate);
3361 + }
3362 +
3363 + function createInstanceTypeChecker(expectedClass) {
3364 + function validate(props, propName, componentName, location, propFullName) {
3365 + if (!(props[propName] instanceof expectedClass)) {
3366 + var expectedClassName = expectedClass.name || ANONYMOUS;
3367 + var actualClassName = getClassName(props[propName]);
3368 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
3369 + }
3370 + return null;
3371 + }
3372 + return createChainableTypeChecker(validate);
3373 + }
3374 +
3375 + function createEnumTypeChecker(expectedValues) {
3376 + if (!Array.isArray(expectedValues)) {
3377 + if (true) {
3378 + if (arguments.length > 1) {
3379 + printWarning(
3380 + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
3381 + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
3382 + );
3383 + } else {
3384 + printWarning('Invalid argument supplied to oneOf, expected an array.');
3385 + }
3386 + }
3387 + return emptyFunctionThatReturnsNull;
3388 + }
3389 +
3390 + function validate(props, propName, componentName, location, propFullName) {
3391 + var propValue = props[propName];
3392 + for (var i = 0; i < expectedValues.length; i++) {
3393 + if (is(propValue, expectedValues[i])) {
3394 + return null;
3395 + }
3396 + }
3397 +
3398 + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
3399 + var type = getPreciseType(value);
3400 + if (type === 'symbol') {
3401 + return String(value);
3402 + }
3403 + return value;
3404 + });
3405 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
3406 + }
3407 + return createChainableTypeChecker(validate);
3408 + }
3409 +
3410 + function createObjectOfTypeChecker(typeChecker) {
3411 + function validate(props, propName, componentName, location, propFullName) {
3412 + if (typeof typeChecker !== 'function') {
3413 + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
3414 + }
3415 + var propValue = props[propName];
3416 + var propType = getPropType(propValue);
3417 + if (propType !== 'object') {
3418 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
3419 + }
3420 + for (var key in propValue) {
3421 + if (has(propValue, key)) {
3422 + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
3423 + if (error instanceof Error) {
3424 + return error;
3425 + }
3426 + }
3427 + }
3428 + return null;
3429 + }
3430 + return createChainableTypeChecker(validate);
3431 + }
3432 +
3433 + function createUnionTypeChecker(arrayOfTypeCheckers) {
3434 + if (!Array.isArray(arrayOfTypeCheckers)) {
3435 + true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;
3436 + return emptyFunctionThatReturnsNull;
3437 + }
3438 +
3439 + for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
3440 + var checker = arrayOfTypeCheckers[i];
3441 + if (typeof checker !== 'function') {
3442 + printWarning(
3443 + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
3444 + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
3445 + );
3446 + return emptyFunctionThatReturnsNull;
3447 + }
3448 + }
3449 +
3450 + function validate(props, propName, componentName, location, propFullName) {
3451 + var expectedTypes = [];
3452 + for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
3453 + var checker = arrayOfTypeCheckers[i];
3454 + var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);
3455 + if (checkerResult == null) {
3456 + return null;
3457 + }
3458 + if (checkerResult.data && has(checkerResult.data, 'expectedType')) {
3459 + expectedTypes.push(checkerResult.data.expectedType);
3460 + }
3461 + }
3462 + var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';
3463 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));
3464 + }
3465 + return createChainableTypeChecker(validate);
3466 + }
3467 +
3468 + function createNodeChecker() {
3469 + function validate(props, propName, componentName, location, propFullName) {
3470 + if (!isNode(props[propName])) {
3471 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
3472 + }
3473 + return null;
3474 + }
3475 + return createChainableTypeChecker(validate);
3476 + }
3477 +
3478 + function invalidValidatorError(componentName, location, propFullName, key, type) {
3479 + return new PropTypeError(
3480 + (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +
3481 + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'
3482 + );
3483 + }
3484 +
3485 + function createShapeTypeChecker(shapeTypes) {
3486 + function validate(props, propName, componentName, location, propFullName) {
3487 + var propValue = props[propName];
3488 + var propType = getPropType(propValue);
3489 + if (propType !== 'object') {
3490 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
3491 + }
3492 + for (var key in shapeTypes) {
3493 + var checker = shapeTypes[key];
3494 + if (typeof checker !== 'function') {
3495 + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
3496 + }
3497 + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
3498 + if (error) {
3499 + return error;
3500 + }
3501 + }
3502 + return null;
3503 + }
3504 + return createChainableTypeChecker(validate);
3505 + }
3506 +
3507 + function createStrictShapeTypeChecker(shapeTypes) {
3508 + function validate(props, propName, componentName, location, propFullName) {
3509 + var propValue = props[propName];
3510 + var propType = getPropType(propValue);
3511 + if (propType !== 'object') {
3512 + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
3513 + }
3514 + // We need to check all keys in case some are required but missing from props.
3515 + var allKeys = assign({}, props[propName], shapeTypes);
3516 + for (var key in allKeys) {
3517 + var checker = shapeTypes[key];
3518 + if (has(shapeTypes, key) && typeof checker !== 'function') {
3519 + return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));
3520 + }
3521 + if (!checker) {
3522 + return new PropTypeError(
3523 + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
3524 + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
3525 + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
3526 + );
3527 + }
3528 + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
3529 + if (error) {
3530 + return error;
3531 + }
3532 + }
3533 + return null;
3534 + }
3535 +
3536 + return createChainableTypeChecker(validate);
3537 + }
3538 +
3539 + function isNode(propValue) {
3540 + switch (typeof propValue) {
3541 + case 'number':
3542 + case 'string':
3543 + case 'undefined':
3544 + return true;
3545 + case 'boolean':
3546 + return !propValue;
3547 + case 'object':
3548 + if (Array.isArray(propValue)) {
3549 + return propValue.every(isNode);
3550 + }
3551 + if (propValue === null || isValidElement(propValue)) {
3552 + return true;
3553 + }
3554 +
3555 + var iteratorFn = getIteratorFn(propValue);
3556 + if (iteratorFn) {
3557 + var iterator = iteratorFn.call(propValue);
3558 + var step;
3559 + if (iteratorFn !== propValue.entries) {
3560 + while (!(step = iterator.next()).done) {
3561 + if (!isNode(step.value)) {
3562 + return false;
3563 + }
3564 + }
3565 + } else {
3566 + // Iterator will provide entry [k,v] tuples rather than values.
3567 + while (!(step = iterator.next()).done) {
3568 + var entry = step.value;
3569 + if (entry) {
3570 + if (!isNode(entry[1])) {
3571 + return false;
3572 + }
3573 + }
3574 + }
3575 + }
3576 + } else {
3577 + return false;
3578 + }
3579 +
3580 + return true;
3581 + default:
3582 + return false;
3583 + }
3584 + }
3585 +
3586 + function isSymbol(propType, propValue) {
3587 + // Native Symbol.
3588 + if (propType === 'symbol') {
3589 + return true;
3590 + }
3591 +
3592 + // falsy value can't be a Symbol
3593 + if (!propValue) {
3594 + return false;
3595 + }
3596 +
3597 + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
3598 + if (propValue['@@toStringTag'] === 'Symbol') {
3599 + return true;
3600 + }
3601 +
3602 + // Fallback for non-spec compliant Symbols which are polyfilled.
3603 + if (typeof Symbol === 'function' && propValue instanceof Symbol) {
3604 + return true;
3605 + }
3606 +
3607 + return false;
3608 + }
3609 +
3610 + // Equivalent of `typeof` but with special handling for array and regexp.
3611 + function getPropType(propValue) {
3612 + var propType = typeof propValue;
3613 + if (Array.isArray(propValue)) {
3614 + return 'array';
3615 + }
3616 + if (propValue instanceof RegExp) {
3617 + // Old webkits (at least until Android 4.0) return 'function' rather than
3618 + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
3619 + // passes PropTypes.object.
3620 + return 'object';
3621 + }
3622 + if (isSymbol(propType, propValue)) {
3623 + return 'symbol';
3624 + }
3625 + return propType;
3626 + }
3627 +
3628 + // This handles more types than `getPropType`. Only used for error messages.
3629 + // See `createPrimitiveTypeChecker`.
3630 + function getPreciseType(propValue) {
3631 + if (typeof propValue === 'undefined' || propValue === null) {
3632 + return '' + propValue;
3633 + }
3634 + var propType = getPropType(propValue);
3635 + if (propType === 'object') {
3636 + if (propValue instanceof Date) {
3637 + return 'date';
3638 + } else if (propValue instanceof RegExp) {
3639 + return 'regexp';
3640 + }
3641 + }
3642 + return propType;
3643 + }
3644 +
3645 + // Returns a string that is postfixed to a warning about an invalid type.
3646 + // For example, "undefined" or "of type array"
3647 + function getPostfixForTypeWarning(value) {
3648 + var type = getPreciseType(value);
3649 + switch (type) {
3650 + case 'array':
3651 + case 'object':
3652 + return 'an ' + type;
3653 + case 'boolean':
3654 + case 'date':
3655 + case 'regexp':
3656 + return 'a ' + type;
3657 + default:
3658 + return type;
3659 + }
3660 + }
3661 +
3662 + // Returns class name of the object, if any.
3663 + function getClassName(propValue) {
3664 + if (!propValue.constructor || !propValue.constructor.name) {
3665 + return ANONYMOUS;
3666 + }
3667 + return propValue.constructor.name;
3668 + }
3669 +
3670 + ReactPropTypes.checkPropTypes = checkPropTypes;
3671 + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
3672 + ReactPropTypes.PropTypes = ReactPropTypes;
3673 +
3674 + return ReactPropTypes;
3675 +};
3676 +
3677 +
3678 +/***/ }),
3679 +
3680 +/***/ "../node_modules/prop-types/index.js":
3681 +/*!*******************************************!*\
3682 + !*** ../node_modules/prop-types/index.js ***!
3683 + \*******************************************/
3684 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3685 +
3686 +/**
3687 + * Copyright (c) 2013-present, Facebook, Inc.
3688 + *
3689 + * This source code is licensed under the MIT license found in the
3690 + * LICENSE file in the root directory of this source tree.
3691 + */
3692 +
3693 +if (true) {
3694 + var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
3695 +
3696 + // By explicitly using `prop-types` you are opting into new development behavior.
3697 + // http://fb.me/prop-types-in-prod
3698 + var throwOnDirectAccess = true;
3699 + module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ "../node_modules/prop-types/factoryWithTypeCheckers.js")(ReactIs.isElement, throwOnDirectAccess);
3700 +} else // removed by dead control flow
3701 +{}
3702 +
3703 +
3704 +/***/ }),
3705 +
3706 +/***/ "../node_modules/prop-types/lib/ReactPropTypesSecret.js":
3707 +/*!**************************************************************!*\
3708 + !*** ../node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
3709 + \**************************************************************/
3710 +/***/ ((module) => {
3711 +
3712 +"use strict";
3713 +/**
3714 + * Copyright (c) 2013-present, Facebook, Inc.
3715 + *
3716 + * This source code is licensed under the MIT license found in the
3717 + * LICENSE file in the root directory of this source tree.
3718 + */
3719 +
3720 +
3721 +
3722 +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
3723 +
3724 +module.exports = ReactPropTypesSecret;
3725 +
3726 +
3727 +/***/ }),
3728 +
3729 +/***/ "../node_modules/prop-types/lib/has.js":
3730 +/*!*********************************************!*\
3731 + !*** ../node_modules/prop-types/lib/has.js ***!
3732 + \*********************************************/
3733 +/***/ ((module) => {
3734 +
3735 +module.exports = Function.call.bind(Object.prototype.hasOwnProperty);
3736 +
3737 +
3738 +/***/ }),
3739 +
3740 +/***/ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js":
3741 +/*!************************************************************************************!*\
3742 + !*** ../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js ***!
3743 + \************************************************************************************/
3744 +/***/ ((__unused_webpack_module, exports) => {
3745 +
3746 +"use strict";
3747 +/** @license React v16.13.1
3748 + * react-is.development.js
3749 + *
3750 + * Copyright (c) Facebook, Inc. and its affiliates.
3751 + *
3752 + * This source code is licensed under the MIT license found in the
3753 + * LICENSE file in the root directory of this source tree.
3754 + */
3755 +
3756 +
3757 +
3758 +
3759 +
3760 +if (true) {
3761 + (function() {
3762 +'use strict';
3763 +
3764 +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
3765 +// nor polyfill, then a plain number is used for performance.
3766 +var hasSymbol = typeof Symbol === 'function' && Symbol.for;
3767 +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
3768 +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
3769 +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
3770 +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
3771 +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
3772 +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
3773 +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
3774 +// (unstable) APIs that have been removed. Can we remove the symbols?
3775 +
3776 +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
3777 +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
3778 +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
3779 +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
3780 +var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
3781 +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
3782 +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
3783 +var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
3784 +var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
3785 +var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
3786 +var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
3787 +
3788 +function isValidElementType(type) {
3789 + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
3790 + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
3791 +}
3792 +
3793 +function typeOf(object) {
3794 + if (typeof object === 'object' && object !== null) {
3795 + var $$typeof = object.$$typeof;
3796 +
3797 + switch ($$typeof) {
3798 + case REACT_ELEMENT_TYPE:
3799 + var type = object.type;
3800 +
3801 + switch (type) {
3802 + case REACT_ASYNC_MODE_TYPE:
3803 + case REACT_CONCURRENT_MODE_TYPE:
3804 + case REACT_FRAGMENT_TYPE:
3805 + case REACT_PROFILER_TYPE:
3806 + case REACT_STRICT_MODE_TYPE:
3807 + case REACT_SUSPENSE_TYPE:
3808 + return type;
3809 +
3810 + default:
3811 + var $$typeofType = type && type.$$typeof;
3812 +
3813 + switch ($$typeofType) {
3814 + case REACT_CONTEXT_TYPE:
3815 + case REACT_FORWARD_REF_TYPE:
3816 + case REACT_LAZY_TYPE:
3817 + case REACT_MEMO_TYPE:
3818 + case REACT_PROVIDER_TYPE:
3819 + return $$typeofType;
3820 +
3821 + default:
3822 + return $$typeof;
3823 + }
3824 +
3825 + }
3826 +
3827 + case REACT_PORTAL_TYPE:
3828 + return $$typeof;
3829 + }
3830 + }
3831 +
3832 + return undefined;
3833 +} // AsyncMode is deprecated along with isAsyncMode
3834 +
3835 +var AsyncMode = REACT_ASYNC_MODE_TYPE;
3836 +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
3837 +var ContextConsumer = REACT_CONTEXT_TYPE;
3838 +var ContextProvider = REACT_PROVIDER_TYPE;
3839 +var Element = REACT_ELEMENT_TYPE;
3840 +var ForwardRef = REACT_FORWARD_REF_TYPE;
3841 +var Fragment = REACT_FRAGMENT_TYPE;
3842 +var Lazy = REACT_LAZY_TYPE;
3843 +var Memo = REACT_MEMO_TYPE;
3844 +var Portal = REACT_PORTAL_TYPE;
3845 +var Profiler = REACT_PROFILER_TYPE;
3846 +var StrictMode = REACT_STRICT_MODE_TYPE;
3847 +var Suspense = REACT_SUSPENSE_TYPE;
3848 +var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
3849 +
3850 +function isAsyncMode(object) {
3851 + {
3852 + if (!hasWarnedAboutDeprecatedIsAsyncMode) {
3853 + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
3854 +
3855 + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
3856 + }
3857 + }
3858 +
3859 + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
3860 +}
3861 +function isConcurrentMode(object) {
3862 + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
3863 +}
3864 +function isContextConsumer(object) {
3865 + return typeOf(object) === REACT_CONTEXT_TYPE;
3866 +}
3867 +function isContextProvider(object) {
3868 + return typeOf(object) === REACT_PROVIDER_TYPE;
3869 +}
3870 +function isElement(object) {
3871 + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
3872 +}
3873 +function isForwardRef(object) {
3874 + return typeOf(object) === REACT_FORWARD_REF_TYPE;
3875 +}
3876 +function isFragment(object) {
3877 + return typeOf(object) === REACT_FRAGMENT_TYPE;
3878 +}
3879 +function isLazy(object) {
3880 + return typeOf(object) === REACT_LAZY_TYPE;
3881 +}
3882 +function isMemo(object) {
3883 + return typeOf(object) === REACT_MEMO_TYPE;
3884 +}
3885 +function isPortal(object) {
3886 + return typeOf(object) === REACT_PORTAL_TYPE;
3887 +}
3888 +function isProfiler(object) {
3889 + return typeOf(object) === REACT_PROFILER_TYPE;
3890 +}
3891 +function isStrictMode(object) {
3892 + return typeOf(object) === REACT_STRICT_MODE_TYPE;
3893 +}
3894 +function isSuspense(object) {
3895 + return typeOf(object) === REACT_SUSPENSE_TYPE;
3896 +}
3897 +
3898 +exports.AsyncMode = AsyncMode;
3899 +exports.ConcurrentMode = ConcurrentMode;
3900 +exports.ContextConsumer = ContextConsumer;
3901 +exports.ContextProvider = ContextProvider;
3902 +exports.Element = Element;
3903 +exports.ForwardRef = ForwardRef;
3904 +exports.Fragment = Fragment;
3905 +exports.Lazy = Lazy;
3906 +exports.Memo = Memo;
3907 +exports.Portal = Portal;
3908 +exports.Profiler = Profiler;
3909 +exports.StrictMode = StrictMode;
3910 +exports.Suspense = Suspense;
3911 +exports.isAsyncMode = isAsyncMode;
3912 +exports.isConcurrentMode = isConcurrentMode;
3913 +exports.isContextConsumer = isContextConsumer;
3914 +exports.isContextProvider = isContextProvider;
3915 +exports.isElement = isElement;
3916 +exports.isForwardRef = isForwardRef;
3917 +exports.isFragment = isFragment;
3918 +exports.isLazy = isLazy;
3919 +exports.isMemo = isMemo;
3920 +exports.isPortal = isPortal;
3921 +exports.isProfiler = isProfiler;
3922 +exports.isStrictMode = isStrictMode;
3923 +exports.isSuspense = isSuspense;
3924 +exports.isValidElementType = isValidElementType;
3925 +exports.typeOf = typeOf;
3926 + })();
3927 +}
3928 +
3929 +
3930 +/***/ }),
3931 +
3932 +/***/ "../node_modules/prop-types/node_modules/react-is/index.js":
3933 +/*!*****************************************************************!*\
3934 + !*** ../node_modules/prop-types/node_modules/react-is/index.js ***!
3935 + \*****************************************************************/
3936 +/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3937 +
3938 +"use strict";
3939 +
3940 +
3941 +if (false) // removed by dead control flow
3942 +{} else {
3943 + module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js");
3944 +}
3945 +
3946 +
3947 +/***/ }),
3948 +
3949 +/***/ "../node_modules/react-dom/client.js":
3950 +/*!*******************************************!*\
3951 + !*** ../node_modules/react-dom/client.js ***!
3952 + \*******************************************/
3953 +/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3954 +
3955 +"use strict";
3956 +
3957 +
3958 +var m = __webpack_require__(/*! react-dom */ "react-dom");
3959 +if (false) // removed by dead control flow
3960 +{} else {
3961 + var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
3962 + exports.createRoot = function(c, o) {
3963 + i.usingClientEntryPoint = true;
3964 + try {
3965 + return m.createRoot(c, o);
3966 + } finally {
3967 + i.usingClientEntryPoint = false;
3968 + }
3969 + };
3970 + exports.hydrateRoot = function(c, h, o) {
3971 + i.usingClientEntryPoint = true;
3972 + try {
3973 + return m.hydrateRoot(c, h, o);
3974 + } finally {
3975 + i.usingClientEntryPoint = false;
3976 + }
3977 + };
3978 +}
3979 +
3980 +
3981 +/***/ }),
3982 +
3983 +/***/ "@elementor/icons":
3984 +/*!************************************!*\
3985 + !*** external "elementorV2.icons" ***!
3986 + \************************************/
3987 +/***/ ((module) => {
3988 +
3989 +"use strict";
3990 +module.exports = elementorV2.icons;
3991 +
3992 +/***/ }),
3993 +
3994 +/***/ "@elementor/ui":
3995 +/*!*********************************!*\
3996 + !*** external "elementorV2.ui" ***!
3997 + \*********************************/
3998 +/***/ ((module) => {
3999 +
4000 +"use strict";
4001 +module.exports = elementorV2.ui;
4002 +
4003 +/***/ }),
4004 +
4005 +/***/ "@elementor/ui/DialogHeader":
4006 +/*!*************************************************!*\
4007 + !*** external "elementorV2.ui['DialogHeader']" ***!
4008 + \*************************************************/
4009 +/***/ ((module) => {
4010 +
4011 +"use strict";
4012 +module.exports = elementorV2.ui['DialogHeader'];
4013 +
4014 +/***/ }),
4015 +
4016 +/***/ "@elementor/ui/DialogHeaderGroup":
4017 +/*!******************************************************!*\
4018 + !*** external "elementorV2.ui['DialogHeaderGroup']" ***!
4019 + \******************************************************/
4020 +/***/ ((module) => {
4021 +
4022 +"use strict";
4023 +module.exports = elementorV2.ui['DialogHeaderGroup'];
4024 +
4025 +/***/ }),
4026 +
4027 +/***/ "@wordpress/i18n":
4028 +/*!**************************!*\
4029 + !*** external "wp.i18n" ***!
4030 + \**************************/
4031 +/***/ ((module) => {
4032 +
4033 +"use strict";
4034 +module.exports = wp.i18n;
4035 +
4036 +/***/ }),
4037 +
4038 +/***/ "react":
4039 +/*!************************!*\
4040 + !*** external "React" ***!
4041 + \************************/
4042 +/***/ ((module) => {
4043 +
4044 +"use strict";
4045 +module.exports = React;
4046 +
4047 +/***/ }),
4048 +
4049 +/***/ "react-dom":
4050 +/*!***************************!*\
4051 + !*** external "ReactDOM" ***!
4052 + \***************************/
4053 +/***/ ((module) => {
4054 +
4055 +"use strict";
4056 +module.exports = ReactDOM;
4057 +
4058 +/***/ })
4059 +
4060 +/******/ });
4061 +/************************************************************************/
4062 +/******/ // The module cache
4063 +/******/ var __webpack_module_cache__ = {};
4064 +/******/
4065 +/******/ // The require function
4066 +/******/ function __webpack_require__(moduleId) {
4067 +/******/ // Check if module is in cache
4068 +/******/ var cachedModule = __webpack_module_cache__[moduleId];
4069 +/******/ if (cachedModule !== undefined) {
4070 +/******/ return cachedModule.exports;
4071 +/******/ }
4072 +/******/ // Create a new module (and put it into the cache)
4073 +/******/ var module = __webpack_module_cache__[moduleId] = {
4074 +/******/ // no module.id needed
4075 +/******/ // no module.loaded needed
4076 +/******/ exports: {}
4077 +/******/ };
4078 +/******/
4079 +/******/ // Execute the module function
4080 +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
4081 +/******/
4082 +/******/ // Return the exports of the module
4083 +/******/ return module.exports;
4084 +/******/ }
4085 +/******/
4086 +/************************************************************************/
4087 +var __webpack_exports__ = {};
4088 +// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
4089 +(() => {
4090 +"use strict";
4091 +/*!*************************************************************!*\
4092 + !*** ../modules/atomic-opt-in/assets/js/opt-in-page/app.js ***!
4093 + \*************************************************************/
4094 +/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
4095 +
4096 +
4097 +var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
4098 +var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
4099 +var _react2 = _interopRequireDefault(__webpack_require__(/*! elementor-utils/react */ "../assets/dev/js/utils/react.js"));
4100 +var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
4101 +var _optIn = __webpack_require__(/*! ./opt-in */ "../modules/atomic-opt-in/assets/js/opt-in-page/opt-in.js");
4102 +var App = function App(props) {
4103 + return /*#__PURE__*/_react.default.createElement(_ui.DirectionProvider, {
4104 + rtl: props.isRTL
4105 + }, /*#__PURE__*/_react.default.createElement(_ui.LocalizationProvider, null, /*#__PURE__*/_react.default.createElement(_ui.ThemeProvider, {
4106 + colorScheme: 'light'
4107 + }, /*#__PURE__*/_react.default.createElement(_optIn.OptIn, {
4108 + state: props === null || props === void 0 ? void 0 : props.state
4109 + }))));
4110 +};
4111 +App.propTypes = {
4112 + isRTL: PropTypes.bool,
4113 + state: PropTypes.object
4114 +};
4115 +var init = function init() {
4116 + var rootElement = document.querySelector('#page-editor-v4-opt-in');
4117 + if (!rootElement) {
4118 + return;
4119 + }
4120 + _react2.default.render(/*#__PURE__*/_react.default.createElement(App, {
4121 + isRTL: !!elementorCommon.config.isRTL,
4122 + state: elementorSettingsEditor4OptIn
4123 + }), rootElement);
4124 +};
4125 +init();
4126 +})();
4127 +
4128 +/******/ })()
4129 +;
3431 4130 //# sourceMappingURL=editor-v4-opt-in.js.map