PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta3
Elementor Website Builder – more than just a page builder v4.3.0-beta3
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 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
elementor / assets / js / chunks / lightbox-lightbox.js

lightbox-lightbox.js in Elementor Website Builder – more than just a page builder 4.3.0-beta3, at assets/js/chunks/lightbox-lightbox.js

4,766 lines 169.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function() {
2
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 __esmMin = (fn, res, err) => () => {
15 if (err) throw err[0];
16 try {
17 return fn && (res = fn(fn = 0)), res;
18 } catch (e) {
19 throw err = [e], e;
20 }
21 };
22 var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
23 var __copyProps = (to, from, except, desc) => {
24 if (from && typeof from === "object" || typeof from === "function") {
25 for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
26 key = keys[i];
27 if (!__hasOwnProp.call(to, key) && key !== except) {
28 __defProp(to, key, {
29 get: ((k) => from[k]).bind(null, key),
30 enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
31 });
32 }
33 }
34 }
35 return to;
36 };
37 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
38 value: mod,
39 enumerable: true
40 }) : target, mod));
41
42 //#endregion
43
44 //#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
45 function _typeof(o) {
46 "@babel/helpers - typeof";
47 return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
48 return typeof o;
49 } : function(o) {
50 return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
51 }, _typeof(o);
52 }
53 var init_typeof = __esmMin((() => {}));
54
55 //#endregion
56 //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
57 function toPrimitive(t, r) {
58 if ("object" != _typeof(t) || !t) return t;
59 var e = t[Symbol.toPrimitive];
60 if (void 0 !== e) {
61 var i = e.call(t, r || "default");
62 if ("object" != _typeof(i)) return i;
63 throw new TypeError("@@toPrimitive must return a primitive value.");
64 }
65 return ("string" === r ? String : Number)(t);
66 }
67 var init_toPrimitive = __esmMin((() => {
68 init_typeof();
69 }));
70
71 //#endregion
72 //#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
73 function toPropertyKey(t) {
74 var i = toPrimitive(t, "string");
75 return "symbol" == _typeof(i) ? i : i + "";
76 }
77 var init_toPropertyKey = __esmMin((() => {
78 init_typeof();
79 init_toPrimitive();
80 }));
81
82 //#endregion
83 //#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
84 function _defineProperty(e, r, t) {
85 return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
86 value: t,
87 enumerable: !0,
88 configurable: !0,
89 writable: !0
90 }) : e[r] = t, e;
91 }
92 var init_defineProperty = __esmMin((() => {
93 init_toPropertyKey();
94 }));
95
96 //#endregion
97 //#region \0@oxc-project+runtime@0.140.0/helpers/esm/objectSpread2.js
98 function ownKeys(e, r) {
99 var t = Object.keys(e);
100 if (Object.getOwnPropertySymbols) {
101 var o = Object.getOwnPropertySymbols(e);
102 r && (o = o.filter(function(r) {
103 return Object.getOwnPropertyDescriptor(e, r).enumerable;
104 })), t.push.apply(t, o);
105 }
106 return t;
107 }
108 function _objectSpread2(e) {
109 for (var r = 1; r < arguments.length; r++) {
110 var t = null != arguments[r] ? arguments[r] : {};
111 r % 2 ? ownKeys(Object(t), !0).forEach(function(r) {
112 _defineProperty(e, r, t[r]);
113 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r) {
114 Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
115 });
116 }
117 return e;
118 }
119 var init_objectSpread2 = __esmMin((() => {
120 init_defineProperty();
121 }));
122
123 //#endregion
124 //#region \0@oxc-project+runtime@0.140.0/helpers/esm/asyncToGenerator.js
125 function asyncGeneratorStep(n, t, e, r, o, a, c) {
126 try {
127 var i = n[a](c);
128 var u = i.value;
129 } catch (n) {
130 e(n);
131 return;
132 }
133 i.done ? t(u) : Promise.resolve(u).then(r, o);
134 }
135 function _asyncToGenerator(n) {
136 return function() {
137 var t = this;
138 var e = arguments;
139 return new Promise(function(r, o) {
140 var a = n.apply(t, e);
141 function _next(n) {
142 asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
143 }
144 function _throw(n) {
145 asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
146 }
147 _next(void 0);
148 });
149 };
150 }
151 var init_asyncToGenerator = __esmMin((() => {}));
152
153 //#endregion
154 //#region node_modules/@babel/runtime/helpers/interopRequireDefault.js
155 var require_interopRequireDefault = /* @__PURE__ */ __commonJSMin(((exports, module) => {
156 function _interopRequireDefault(e) {
157 return e && e.__esModule ? e : { "default": e };
158 }
159 module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
160 }));
161
162 //#endregion
163 //#region node_modules/core-js/internals/global-this.js
164 var require_global_this = /* @__PURE__ */ __commonJSMin(((exports, module) => {
165 var check = function(it) {
166 return it && it.Math === Math && it;
167 };
168 module.exports = check(typeof globalThis == "object" && globalThis) || check(typeof window == "object" && window) || check(typeof self == "object" && self) || check(typeof global == "object" && global) || check(typeof exports == "object" && exports) || (function() {
169 return this;
170 })() || Function("return this")();
171 }));
172
173 //#endregion
174 //#region node_modules/core-js/internals/fails.js
175 var require_fails = /* @__PURE__ */ __commonJSMin(((exports, module) => {
176 module.exports = function(exec) {
177 try {
178 return !!exec();
179 } catch (error) {
180 return true;
181 }
182 };
183 }));
184
185 //#endregion
186 //#region node_modules/core-js/internals/descriptors.js
187 var require_descriptors = /* @__PURE__ */ __commonJSMin(((exports, module) => {
188 var fails = require_fails();
189 module.exports = !fails(function() {
190 return Object.defineProperty({}, 1, { get: function() {
191 return 7;
192 } })[1] !== 7;
193 });
194 }));
195
196 //#endregion
197 //#region node_modules/core-js/internals/function-bind-native.js
198 var require_function_bind_native = /* @__PURE__ */ __commonJSMin(((exports, module) => {
199 var fails = require_fails();
200 module.exports = !fails(function() {
201 var test = (function() {}).bind();
202 return typeof test != "function" || test.hasOwnProperty("prototype");
203 });
204 }));
205
206 //#endregion
207 //#region node_modules/core-js/internals/function-call.js
208 var require_function_call = /* @__PURE__ */ __commonJSMin(((exports, module) => {
209 var NATIVE_BIND = require_function_bind_native();
210 var call = Function.prototype.call;
211 module.exports = NATIVE_BIND ? call.bind(call) : function() {
212 return call.apply(call, arguments);
213 };
214 }));
215
216 //#endregion
217 //#region node_modules/core-js/internals/object-property-is-enumerable.js
218 var require_object_property_is_enumerable = /* @__PURE__ */ __commonJSMin(((exports) => {
219 var $propertyIsEnumerable = {}.propertyIsEnumerable;
220 var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
221 var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
222 exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
223 var descriptor = getOwnPropertyDescriptor(this, V);
224 return !!descriptor && descriptor.enumerable;
225 } : $propertyIsEnumerable;
226 }));
227
228 //#endregion
229 //#region node_modules/core-js/internals/create-property-descriptor.js
230 var require_create_property_descriptor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
231 module.exports = function(bitmap, value) {
232 return {
233 enumerable: !(bitmap & 1),
234 configurable: !(bitmap & 2),
235 writable: !(bitmap & 4),
236 value
237 };
238 };
239 }));
240
241 //#endregion
242 //#region node_modules/core-js/internals/function-uncurry-this.js
243 var require_function_uncurry_this = /* @__PURE__ */ __commonJSMin(((exports, module) => {
244 var NATIVE_BIND = require_function_bind_native();
245 var FunctionPrototype = Function.prototype;
246 var call = FunctionPrototype.call;
247 var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
248 module.exports = NATIVE_BIND ? uncurryThisWithBind : function(fn) {
249 return function() {
250 return call.apply(fn, arguments);
251 };
252 };
253 }));
254
255 //#endregion
256 //#region node_modules/core-js/internals/classof-raw.js
257 var require_classof_raw = /* @__PURE__ */ __commonJSMin(((exports, module) => {
258 var uncurryThis = require_function_uncurry_this();
259 var toString = uncurryThis({}.toString);
260 var stringSlice = uncurryThis("".slice);
261 module.exports = function(it) {
262 return stringSlice(toString(it), 8, -1);
263 };
264 }));
265
266 //#endregion
267 //#region node_modules/core-js/internals/indexed-object.js
268 var require_indexed_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
269 var uncurryThis = require_function_uncurry_this();
270 var fails = require_fails();
271 var classof = require_classof_raw();
272 var $Object = Object;
273 var split = uncurryThis("".split);
274 module.exports = fails(function() {
275 return !$Object("z").propertyIsEnumerable(0);
276 }) ? function(it) {
277 return classof(it) === "String" ? split(it, "") : $Object(it);
278 } : $Object;
279 }));
280
281 //#endregion
282 //#region node_modules/core-js/internals/is-null-or-undefined.js
283 var require_is_null_or_undefined = /* @__PURE__ */ __commonJSMin(((exports, module) => {
284 module.exports = function(it) {
285 return it === null || it === void 0;
286 };
287 }));
288
289 //#endregion
290 //#region node_modules/core-js/internals/require-object-coercible.js
291 var require_require_object_coercible = /* @__PURE__ */ __commonJSMin(((exports, module) => {
292 var isNullOrUndefined = require_is_null_or_undefined();
293 var $TypeError = TypeError;
294 module.exports = function(it) {
295 if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it);
296 return it;
297 };
298 }));
299
300 //#endregion
301 //#region node_modules/core-js/internals/to-indexed-object.js
302 var require_to_indexed_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
303 var IndexedObject = require_indexed_object();
304 var requireObjectCoercible = require_require_object_coercible();
305 module.exports = function(it) {
306 return IndexedObject(requireObjectCoercible(it));
307 };
308 }));
309
310 //#endregion
311 //#region node_modules/core-js/internals/is-callable.js
312 var require_is_callable = /* @__PURE__ */ __commonJSMin(((exports, module) => {
313 var documentAll = typeof document == "object" && document.all;
314 module.exports = typeof documentAll == "undefined" && documentAll !== void 0 ? function(argument) {
315 return typeof argument == "function" || argument === documentAll;
316 } : function(argument) {
317 return typeof argument == "function";
318 };
319 }));
320
321 //#endregion
322 //#region node_modules/core-js/internals/is-object.js
323 var require_is_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
324 var isCallable = require_is_callable();
325 module.exports = function(it) {
326 return typeof it == "object" ? it !== null : isCallable(it);
327 };
328 }));
329
330 //#endregion
331 //#region node_modules/core-js/internals/get-built-in.js
332 var require_get_built_in = /* @__PURE__ */ __commonJSMin(((exports, module) => {
333 var globalThis = require_global_this();
334 var isCallable = require_is_callable();
335 var aFunction = function(argument) {
336 return isCallable(argument) ? argument : void 0;
337 };
338 module.exports = function(namespace, method) {
339 return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];
340 };
341 }));
342
343 //#endregion
344 //#region node_modules/core-js/internals/object-is-prototype-of.js
345 var require_object_is_prototype_of = /* @__PURE__ */ __commonJSMin(((exports, module) => {
346 var uncurryThis = require_function_uncurry_this();
347 module.exports = uncurryThis({}.isPrototypeOf);
348 }));
349
350 //#endregion
351 //#region node_modules/core-js/internals/environment-user-agent.js
352 var require_environment_user_agent = /* @__PURE__ */ __commonJSMin(((exports, module) => {
353 var navigator = require_global_this().navigator;
354 var userAgent = navigator && navigator.userAgent;
355 module.exports = userAgent ? String(userAgent) : "";
356 }));
357
358 //#endregion
359 //#region node_modules/core-js/internals/environment-v8-version.js
360 var require_environment_v8_version = /* @__PURE__ */ __commonJSMin(((exports, module) => {
361 var globalThis = require_global_this();
362 var userAgent = require_environment_user_agent();
363 var process = globalThis.process;
364 var Deno = globalThis.Deno;
365 var versions = process && process.versions || Deno && Deno.version;
366 var v8 = versions && versions.v8;
367 var match;
368 var version;
369 if (v8) {
370 match = v8.split(".");
371 version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
372 }
373 if (!version && userAgent) {
374 match = userAgent.match(/Edge\/(\d+)/);
375 if (!match || match[1] >= 74) {
376 match = userAgent.match(/Chrome\/(\d+)/);
377 if (match) version = +match[1];
378 }
379 }
380 module.exports = version;
381 }));
382
383 //#endregion
384 //#region node_modules/core-js/internals/symbol-constructor-detection.js
385 var require_symbol_constructor_detection = /* @__PURE__ */ __commonJSMin(((exports, module) => {
386 var V8_VERSION = require_environment_v8_version();
387 var fails = require_fails();
388 var $String = require_global_this().String;
389 module.exports = !!Object.getOwnPropertySymbols && !fails(function() {
390 var symbol = Symbol("symbol detection");
391 return !$String(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION && V8_VERSION < 41;
392 });
393 }));
394
395 //#endregion
396 //#region node_modules/core-js/internals/use-symbol-as-uid.js
397 var require_use_symbol_as_uid = /* @__PURE__ */ __commonJSMin(((exports, module) => {
398 var NATIVE_SYMBOL = require_symbol_constructor_detection();
399 module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == "symbol";
400 }));
401
402 //#endregion
403 //#region node_modules/core-js/internals/is-symbol.js
404 var require_is_symbol = /* @__PURE__ */ __commonJSMin(((exports, module) => {
405 var getBuiltIn = require_get_built_in();
406 var isCallable = require_is_callable();
407 var isPrototypeOf = require_object_is_prototype_of();
408 var USE_SYMBOL_AS_UID = require_use_symbol_as_uid();
409 var $Object = Object;
410 module.exports = USE_SYMBOL_AS_UID ? function(it) {
411 return typeof it == "symbol";
412 } : function(it) {
413 var $Symbol = getBuiltIn("Symbol");
414 return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));
415 };
416 }));
417
418 //#endregion
419 //#region node_modules/core-js/internals/try-to-string.js
420 var require_try_to_string = /* @__PURE__ */ __commonJSMin(((exports, module) => {
421 var $String = String;
422 module.exports = function(argument) {
423 try {
424 return $String(argument);
425 } catch (error) {
426 return "Object";
427 }
428 };
429 }));
430
431 //#endregion
432 //#region node_modules/core-js/internals/a-callable.js
433 var require_a_callable = /* @__PURE__ */ __commonJSMin(((exports, module) => {
434 var isCallable = require_is_callable();
435 var tryToString = require_try_to_string();
436 var $TypeError = TypeError;
437 module.exports = function(argument) {
438 if (isCallable(argument)) return argument;
439 throw new $TypeError(tryToString(argument) + " is not a function");
440 };
441 }));
442
443 //#endregion
444 //#region node_modules/core-js/internals/get-method.js
445 var require_get_method = /* @__PURE__ */ __commonJSMin(((exports, module) => {
446 var aCallable = require_a_callable();
447 var isNullOrUndefined = require_is_null_or_undefined();
448 module.exports = function(V, P) {
449 var func = V[P];
450 return isNullOrUndefined(func) ? void 0 : aCallable(func);
451 };
452 }));
453
454 //#endregion
455 //#region node_modules/core-js/internals/ordinary-to-primitive.js
456 var require_ordinary_to_primitive = /* @__PURE__ */ __commonJSMin(((exports, module) => {
457 var call = require_function_call();
458 var isCallable = require_is_callable();
459 var isObject = require_is_object();
460 var $TypeError = TypeError;
461 module.exports = function(input, pref) {
462 var fn;
463 var val;
464 if (pref === "string" && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
465 if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
466 if (pref !== "string" && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
467 throw new $TypeError("Can't convert object to primitive value");
468 };
469 }));
470
471 //#endregion
472 //#region node_modules/core-js/internals/is-pure.js
473 var require_is_pure = /* @__PURE__ */ __commonJSMin(((exports, module) => {
474 module.exports = false;
475 }));
476
477 //#endregion
478 //#region node_modules/core-js/internals/define-global-property.js
479 var require_define_global_property = /* @__PURE__ */ __commonJSMin(((exports, module) => {
480 var globalThis = require_global_this();
481 var defineProperty = Object.defineProperty;
482 module.exports = function(key, value) {
483 try {
484 defineProperty(globalThis, key, {
485 value,
486 configurable: true,
487 writable: true
488 });
489 } catch (error) {
490 globalThis[key] = value;
491 }
492 return value;
493 };
494 }));
495
496 //#endregion
497 //#region node_modules/core-js/internals/shared-store.js
498 var require_shared_store = /* @__PURE__ */ __commonJSMin(((exports, module) => {
499 var IS_PURE = require_is_pure();
500 var globalThis = require_global_this();
501 var defineGlobalProperty = require_define_global_property();
502 var SHARED = "__core-js_shared__";
503 var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
504 (store.versions || (store.versions = [])).push({
505 version: "3.46.0",
506 mode: IS_PURE ? "pure" : "global",
507 copyright: "© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",
508 license: "https://github.com/zloirock/core-js/blob/v3.46.0/LICENSE",
509 source: "https://github.com/zloirock/core-js"
510 });
511 }));
512
513 //#endregion
514 //#region node_modules/core-js/internals/shared.js
515 var require_shared = /* @__PURE__ */ __commonJSMin(((exports, module) => {
516 var store = require_shared_store();
517 module.exports = function(key, value) {
518 return store[key] || (store[key] = value || {});
519 };
520 }));
521
522 //#endregion
523 //#region node_modules/core-js/internals/to-object.js
524 var require_to_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
525 var requireObjectCoercible = require_require_object_coercible();
526 var $Object = Object;
527 module.exports = function(argument) {
528 return $Object(requireObjectCoercible(argument));
529 };
530 }));
531
532 //#endregion
533 //#region node_modules/core-js/internals/has-own-property.js
534 var require_has_own_property = /* @__PURE__ */ __commonJSMin(((exports, module) => {
535 var uncurryThis = require_function_uncurry_this();
536 var toObject = require_to_object();
537 var hasOwnProperty = uncurryThis({}.hasOwnProperty);
538 module.exports = Object.hasOwn || function hasOwn(it, key) {
539 return hasOwnProperty(toObject(it), key);
540 };
541 }));
542
543 //#endregion
544 //#region node_modules/core-js/internals/uid.js
545 var require_uid = /* @__PURE__ */ __commonJSMin(((exports, module) => {
546 var uncurryThis = require_function_uncurry_this();
547 var id = 0;
548 var postfix = Math.random();
549 var toString = uncurryThis(1.1.toString);
550 module.exports = function(key) {
551 return "Symbol(" + (key === void 0 ? "" : key) + ")_" + toString(++id + postfix, 36);
552 };
553 }));
554
555 //#endregion
556 //#region node_modules/core-js/internals/well-known-symbol.js
557 var require_well_known_symbol = /* @__PURE__ */ __commonJSMin(((exports, module) => {
558 var globalThis = require_global_this();
559 var shared = require_shared();
560 var hasOwn = require_has_own_property();
561 var uid = require_uid();
562 var NATIVE_SYMBOL = require_symbol_constructor_detection();
563 var USE_SYMBOL_AS_UID = require_use_symbol_as_uid();
564 var Symbol = globalThis.Symbol;
565 var WellKnownSymbolsStore = shared("wks");
566 var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol["for"] || Symbol : Symbol && Symbol.withoutSetter || uid;
567 module.exports = function(name) {
568 if (!hasOwn(WellKnownSymbolsStore, name)) WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name) ? Symbol[name] : createWellKnownSymbol("Symbol." + name);
569 return WellKnownSymbolsStore[name];
570 };
571 }));
572
573 //#endregion
574 //#region node_modules/core-js/internals/to-primitive.js
575 var require_to_primitive = /* @__PURE__ */ __commonJSMin(((exports, module) => {
576 var call = require_function_call();
577 var isObject = require_is_object();
578 var isSymbol = require_is_symbol();
579 var getMethod = require_get_method();
580 var ordinaryToPrimitive = require_ordinary_to_primitive();
581 var wellKnownSymbol = require_well_known_symbol();
582 var $TypeError = TypeError;
583 var TO_PRIMITIVE = wellKnownSymbol("toPrimitive");
584 module.exports = function(input, pref) {
585 if (!isObject(input) || isSymbol(input)) return input;
586 var exoticToPrim = getMethod(input, TO_PRIMITIVE);
587 var result;
588 if (exoticToPrim) {
589 if (pref === void 0) pref = "default";
590 result = call(exoticToPrim, input, pref);
591 if (!isObject(result) || isSymbol(result)) return result;
592 throw new $TypeError("Can't convert object to primitive value");
593 }
594 if (pref === void 0) pref = "number";
595 return ordinaryToPrimitive(input, pref);
596 };
597 }));
598
599 //#endregion
600 //#region node_modules/core-js/internals/to-property-key.js
601 var require_to_property_key = /* @__PURE__ */ __commonJSMin(((exports, module) => {
602 var toPrimitive = require_to_primitive();
603 var isSymbol = require_is_symbol();
604 module.exports = function(argument) {
605 var key = toPrimitive(argument, "string");
606 return isSymbol(key) ? key : key + "";
607 };
608 }));
609
610 //#endregion
611 //#region node_modules/core-js/internals/document-create-element.js
612 var require_document_create_element = /* @__PURE__ */ __commonJSMin(((exports, module) => {
613 var globalThis = require_global_this();
614 var isObject = require_is_object();
615 var document = globalThis.document;
616 var EXISTS = isObject(document) && isObject(document.createElement);
617 module.exports = function(it) {
618 return EXISTS ? document.createElement(it) : {};
619 };
620 }));
621
622 //#endregion
623 //#region node_modules/core-js/internals/ie8-dom-define.js
624 var require_ie8_dom_define = /* @__PURE__ */ __commonJSMin(((exports, module) => {
625 var DESCRIPTORS = require_descriptors();
626 var fails = require_fails();
627 var createElement = require_document_create_element();
628 module.exports = !DESCRIPTORS && !fails(function() {
629 return Object.defineProperty(createElement("div"), "a", { get: function() {
630 return 7;
631 } }).a !== 7;
632 });
633 }));
634
635 //#endregion
636 //#region node_modules/core-js/internals/object-get-own-property-descriptor.js
637 var require_object_get_own_property_descriptor = /* @__PURE__ */ __commonJSMin(((exports) => {
638 var DESCRIPTORS = require_descriptors();
639 var call = require_function_call();
640 var propertyIsEnumerableModule = require_object_property_is_enumerable();
641 var createPropertyDescriptor = require_create_property_descriptor();
642 var toIndexedObject = require_to_indexed_object();
643 var toPropertyKey = require_to_property_key();
644 var hasOwn = require_has_own_property();
645 var IE8_DOM_DEFINE = require_ie8_dom_define();
646 var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
647 exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
648 O = toIndexedObject(O);
649 P = toPropertyKey(P);
650 if (IE8_DOM_DEFINE) try {
651 return $getOwnPropertyDescriptor(O, P);
652 } catch (error) {}
653 if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
654 };
655 }));
656
657 //#endregion
658 //#region node_modules/core-js/internals/v8-prototype-define-bug.js
659 var require_v8_prototype_define_bug = /* @__PURE__ */ __commonJSMin(((exports, module) => {
660 var DESCRIPTORS = require_descriptors();
661 var fails = require_fails();
662 module.exports = DESCRIPTORS && fails(function() {
663 return Object.defineProperty(function() {}, "prototype", {
664 value: 42,
665 writable: false
666 }).prototype !== 42;
667 });
668 }));
669
670 //#endregion
671 //#region node_modules/core-js/internals/an-object.js
672 var require_an_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
673 var isObject = require_is_object();
674 var $String = String;
675 var $TypeError = TypeError;
676 module.exports = function(argument) {
677 if (isObject(argument)) return argument;
678 throw new $TypeError($String(argument) + " is not an object");
679 };
680 }));
681
682 //#endregion
683 //#region node_modules/core-js/internals/object-define-property.js
684 var require_object_define_property = /* @__PURE__ */ __commonJSMin(((exports) => {
685 var DESCRIPTORS = require_descriptors();
686 var IE8_DOM_DEFINE = require_ie8_dom_define();
687 var V8_PROTOTYPE_DEFINE_BUG = require_v8_prototype_define_bug();
688 var anObject = require_an_object();
689 var toPropertyKey = require_to_property_key();
690 var $TypeError = TypeError;
691 var $defineProperty = Object.defineProperty;
692 var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
693 var ENUMERABLE = "enumerable";
694 var CONFIGURABLE = "configurable";
695 var WRITABLE = "writable";
696 exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
697 anObject(O);
698 P = toPropertyKey(P);
699 anObject(Attributes);
700 if (typeof O === "function" && P === "prototype" && "value" in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
701 var current = $getOwnPropertyDescriptor(O, P);
702 if (current && current[WRITABLE]) {
703 O[P] = Attributes.value;
704 Attributes = {
705 configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
706 enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
707 writable: false
708 };
709 }
710 }
711 return $defineProperty(O, P, Attributes);
712 } : $defineProperty : function defineProperty(O, P, Attributes) {
713 anObject(O);
714 P = toPropertyKey(P);
715 anObject(Attributes);
716 if (IE8_DOM_DEFINE) try {
717 return $defineProperty(O, P, Attributes);
718 } catch (error) {}
719 if ("get" in Attributes || "set" in Attributes) throw new $TypeError("Accessors not supported");
720 if ("value" in Attributes) O[P] = Attributes.value;
721 return O;
722 };
723 }));
724
725 //#endregion
726 //#region node_modules/core-js/internals/create-non-enumerable-property.js
727 var require_create_non_enumerable_property = /* @__PURE__ */ __commonJSMin(((exports, module) => {
728 var DESCRIPTORS = require_descriptors();
729 var definePropertyModule = require_object_define_property();
730 var createPropertyDescriptor = require_create_property_descriptor();
731 module.exports = DESCRIPTORS ? function(object, key, value) {
732 return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
733 } : function(object, key, value) {
734 object[key] = value;
735 return object;
736 };
737 }));
738
739 //#endregion
740 //#region node_modules/core-js/internals/function-name.js
741 var require_function_name = /* @__PURE__ */ __commonJSMin(((exports, module) => {
742 var DESCRIPTORS = require_descriptors();
743 var hasOwn = require_has_own_property();
744 var FunctionPrototype = Function.prototype;
745 var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
746 var EXISTS = hasOwn(FunctionPrototype, "name");
747 var PROPER = EXISTS && (function something() {}).name === "something";
748 var CONFIGURABLE = EXISTS && (!DESCRIPTORS || DESCRIPTORS && getDescriptor(FunctionPrototype, "name").configurable);
749 module.exports = {
750 EXISTS,
751 PROPER,
752 CONFIGURABLE
753 };
754 }));
755
756 //#endregion
757 //#region node_modules/core-js/internals/inspect-source.js
758 var require_inspect_source = /* @__PURE__ */ __commonJSMin(((exports, module) => {
759 var uncurryThis = require_function_uncurry_this();
760 var isCallable = require_is_callable();
761 var store = require_shared_store();
762 var functionToString = uncurryThis(Function.toString);
763 if (!isCallable(store.inspectSource)) store.inspectSource = function(it) {
764 return functionToString(it);
765 };
766 module.exports = store.inspectSource;
767 }));
768
769 //#endregion
770 //#region node_modules/core-js/internals/weak-map-basic-detection.js
771 var require_weak_map_basic_detection = /* @__PURE__ */ __commonJSMin(((exports, module) => {
772 var globalThis = require_global_this();
773 var isCallable = require_is_callable();
774 var WeakMap = globalThis.WeakMap;
775 module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
776 }));
777
778 //#endregion
779 //#region node_modules/core-js/internals/shared-key.js
780 var require_shared_key = /* @__PURE__ */ __commonJSMin(((exports, module) => {
781 var shared = require_shared();
782 var uid = require_uid();
783 var keys = shared("keys");
784 module.exports = function(key) {
785 return keys[key] || (keys[key] = uid(key));
786 };
787 }));
788
789 //#endregion
790 //#region node_modules/core-js/internals/hidden-keys.js
791 var require_hidden_keys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
792 module.exports = {};
793 }));
794
795 //#endregion
796 //#region node_modules/core-js/internals/internal-state.js
797 var require_internal_state = /* @__PURE__ */ __commonJSMin(((exports, module) => {
798 var NATIVE_WEAK_MAP = require_weak_map_basic_detection();
799 var globalThis = require_global_this();
800 var isObject = require_is_object();
801 var createNonEnumerableProperty = require_create_non_enumerable_property();
802 var hasOwn = require_has_own_property();
803 var shared = require_shared_store();
804 var sharedKey = require_shared_key();
805 var hiddenKeys = require_hidden_keys();
806 var OBJECT_ALREADY_INITIALIZED = "Object already initialized";
807 var TypeError = globalThis.TypeError;
808 var WeakMap = globalThis.WeakMap;
809 var set;
810 var get;
811 var has;
812 var enforce = function(it) {
813 return has(it) ? get(it) : set(it, {});
814 };
815 var getterFor = function(TYPE) {
816 return function(it) {
817 var state;
818 if (!isObject(it) || (state = get(it)).type !== TYPE) throw new TypeError("Incompatible receiver, " + TYPE + " required");
819 return state;
820 };
821 };
822 if (NATIVE_WEAK_MAP || shared.state) {
823 var store = shared.state || (shared.state = new WeakMap());
824 store.get = store.get;
825 store.has = store.has;
826 store.set = store.set;
827 set = function(it, metadata) {
828 if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
829 metadata.facade = it;
830 store.set(it, metadata);
831 return metadata;
832 };
833 get = function(it) {
834 return store.get(it) || {};
835 };
836 has = function(it) {
837 return store.has(it);
838 };
839 } else {
840 var STATE = sharedKey("state");
841 hiddenKeys[STATE] = true;
842 set = function(it, metadata) {
843 if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
844 metadata.facade = it;
845 createNonEnumerableProperty(it, STATE, metadata);
846 return metadata;
847 };
848 get = function(it) {
849 return hasOwn(it, STATE) ? it[STATE] : {};
850 };
851 has = function(it) {
852 return hasOwn(it, STATE);
853 };
854 }
855 module.exports = {
856 set,
857 get,
858 has,
859 enforce,
860 getterFor
861 };
862 }));
863
864 //#endregion
865 //#region node_modules/core-js/internals/make-built-in.js
866 var require_make_built_in = /* @__PURE__ */ __commonJSMin(((exports, module) => {
867 var uncurryThis = require_function_uncurry_this();
868 var fails = require_fails();
869 var isCallable = require_is_callable();
870 var hasOwn = require_has_own_property();
871 var DESCRIPTORS = require_descriptors();
872 var CONFIGURABLE_FUNCTION_NAME = require_function_name().CONFIGURABLE;
873 var inspectSource = require_inspect_source();
874 var InternalStateModule = require_internal_state();
875 var enforceInternalState = InternalStateModule.enforce;
876 var getInternalState = InternalStateModule.get;
877 var $String = String;
878 var defineProperty = Object.defineProperty;
879 var stringSlice = uncurryThis("".slice);
880 var replace = uncurryThis("".replace);
881 var join = uncurryThis([].join);
882 var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function() {
883 return defineProperty(function() {}, "length", { value: 8 }).length !== 8;
884 });
885 var TEMPLATE = String(String).split("String");
886 var makeBuiltIn = module.exports = function(value, name, options) {
887 if (stringSlice($String(name), 0, 7) === "Symbol(") name = "[" + replace($String(name), /^Symbol\(([^)]*)\).*$/, "$1") + "]";
888 if (options && options.getter) name = "get " + name;
889 if (options && options.setter) name = "set " + name;
890 if (!hasOwn(value, "name") || CONFIGURABLE_FUNCTION_NAME && value.name !== name) if (DESCRIPTORS) defineProperty(value, "name", {
891 value: name,
892 configurable: true
893 });
894 else value.name = name;
895 if (CONFIGURABLE_LENGTH && options && hasOwn(options, "arity") && value.length !== options.arity) defineProperty(value, "length", { value: options.arity });
896 try {
897 if (options && hasOwn(options, "constructor") && options.constructor) {
898 if (DESCRIPTORS) defineProperty(value, "prototype", { writable: false });
899 } else if (value.prototype) value.prototype = void 0;
900 } catch (error) {}
901 var state = enforceInternalState(value);
902 if (!hasOwn(state, "source")) state.source = join(TEMPLATE, typeof name == "string" ? name : "");
903 return value;
904 };
905 Function.prototype.toString = makeBuiltIn(function toString() {
906 return isCallable(this) && getInternalState(this).source || inspectSource(this);
907 }, "toString");
908 }));
909
910 //#endregion
911 //#region node_modules/core-js/internals/define-built-in.js
912 var require_define_built_in = /* @__PURE__ */ __commonJSMin(((exports, module) => {
913 var isCallable = require_is_callable();
914 var definePropertyModule = require_object_define_property();
915 var makeBuiltIn = require_make_built_in();
916 var defineGlobalProperty = require_define_global_property();
917 module.exports = function(O, key, value, options) {
918 if (!options) options = {};
919 var simple = options.enumerable;
920 var name = options.name !== void 0 ? options.name : key;
921 if (isCallable(value)) makeBuiltIn(value, name, options);
922 if (options.global) if (simple) O[key] = value;
923 else defineGlobalProperty(key, value);
924 else {
925 try {
926 if (!options.unsafe) delete O[key];
927 else if (O[key]) simple = true;
928 } catch (error) {}
929 if (simple) O[key] = value;
930 else definePropertyModule.f(O, key, {
931 value,
932 enumerable: false,
933 configurable: !options.nonConfigurable,
934 writable: !options.nonWritable
935 });
936 }
937 return O;
938 };
939 }));
940
941 //#endregion
942 //#region node_modules/core-js/internals/math-trunc.js
943 var require_math_trunc = /* @__PURE__ */ __commonJSMin(((exports, module) => {
944 var ceil = Math.ceil;
945 var floor = Math.floor;
946 module.exports = Math.trunc || function trunc(x) {
947 var n = +x;
948 return (n > 0 ? floor : ceil)(n);
949 };
950 }));
951
952 //#endregion
953 //#region node_modules/core-js/internals/to-integer-or-infinity.js
954 var require_to_integer_or_infinity = /* @__PURE__ */ __commonJSMin(((exports, module) => {
955 var trunc = require_math_trunc();
956 module.exports = function(argument) {
957 var number = +argument;
958 return number !== number || number === 0 ? 0 : trunc(number);
959 };
960 }));
961
962 //#endregion
963 //#region node_modules/core-js/internals/to-absolute-index.js
964 var require_to_absolute_index = /* @__PURE__ */ __commonJSMin(((exports, module) => {
965 var toIntegerOrInfinity = require_to_integer_or_infinity();
966 var max = Math.max;
967 var min = Math.min;
968 module.exports = function(index, length) {
969 var integer = toIntegerOrInfinity(index);
970 return integer < 0 ? max(integer + length, 0) : min(integer, length);
971 };
972 }));
973
974 //#endregion
975 //#region node_modules/core-js/internals/to-length.js
976 var require_to_length = /* @__PURE__ */ __commonJSMin(((exports, module) => {
977 var toIntegerOrInfinity = require_to_integer_or_infinity();
978 var min = Math.min;
979 module.exports = function(argument) {
980 var len = toIntegerOrInfinity(argument);
981 return len > 0 ? min(len, 9007199254740991) : 0;
982 };
983 }));
984
985 //#endregion
986 //#region node_modules/core-js/internals/length-of-array-like.js
987 var require_length_of_array_like = /* @__PURE__ */ __commonJSMin(((exports, module) => {
988 var toLength = require_to_length();
989 module.exports = function(obj) {
990 return toLength(obj.length);
991 };
992 }));
993
994 //#endregion
995 //#region node_modules/core-js/internals/array-includes.js
996 var require_array_includes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
997 var toIndexedObject = require_to_indexed_object();
998 var toAbsoluteIndex = require_to_absolute_index();
999 var lengthOfArrayLike = require_length_of_array_like();
1000 var createMethod = function(IS_INCLUDES) {
1001 return function($this, el, fromIndex) {
1002 var O = toIndexedObject($this);
1003 var length = lengthOfArrayLike(O);
1004 if (length === 0) return !IS_INCLUDES && -1;
1005 var index = toAbsoluteIndex(fromIndex, length);
1006 var value;
1007 if (IS_INCLUDES && el !== el) while (length > index) {
1008 value = O[index++];
1009 if (value !== value) return true;
1010 }
1011 else for (; length > index; index++) if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
1012 return !IS_INCLUDES && -1;
1013 };
1014 };
1015 module.exports = {
1016 includes: createMethod(true),
1017 indexOf: createMethod(false)
1018 };
1019 }));
1020
1021 //#endregion
1022 //#region node_modules/core-js/internals/object-keys-internal.js
1023 var require_object_keys_internal = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1024 var uncurryThis = require_function_uncurry_this();
1025 var hasOwn = require_has_own_property();
1026 var toIndexedObject = require_to_indexed_object();
1027 var indexOf = require_array_includes().indexOf;
1028 var hiddenKeys = require_hidden_keys();
1029 var push = uncurryThis([].push);
1030 module.exports = function(object, names) {
1031 var O = toIndexedObject(object);
1032 var i = 0;
1033 var result = [];
1034 var key;
1035 for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
1036 while (names.length > i) if (hasOwn(O, key = names[i++])) ~indexOf(result, key) || push(result, key);
1037 return result;
1038 };
1039 }));
1040
1041 //#endregion
1042 //#region node_modules/core-js/internals/enum-bug-keys.js
1043 var require_enum_bug_keys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1044 module.exports = [
1045 "constructor",
1046 "hasOwnProperty",
1047 "isPrototypeOf",
1048 "propertyIsEnumerable",
1049 "toLocaleString",
1050 "toString",
1051 "valueOf"
1052 ];
1053 }));
1054
1055 //#endregion
1056 //#region node_modules/core-js/internals/object-get-own-property-names.js
1057 var require_object_get_own_property_names = /* @__PURE__ */ __commonJSMin(((exports) => {
1058 var internalObjectKeys = require_object_keys_internal();
1059 var hiddenKeys = require_enum_bug_keys().concat("length", "prototype");
1060 exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
1061 return internalObjectKeys(O, hiddenKeys);
1062 };
1063 }));
1064
1065 //#endregion
1066 //#region node_modules/core-js/internals/object-get-own-property-symbols.js
1067 var require_object_get_own_property_symbols = /* @__PURE__ */ __commonJSMin(((exports) => {
1068 exports.f = Object.getOwnPropertySymbols;
1069 }));
1070
1071 //#endregion
1072 //#region node_modules/core-js/internals/own-keys.js
1073 var require_own_keys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1074 var getBuiltIn = require_get_built_in();
1075 var uncurryThis = require_function_uncurry_this();
1076 var getOwnPropertyNamesModule = require_object_get_own_property_names();
1077 var getOwnPropertySymbolsModule = require_object_get_own_property_symbols();
1078 var anObject = require_an_object();
1079 var concat = uncurryThis([].concat);
1080 module.exports = getBuiltIn("Reflect", "ownKeys") || function ownKeys(it) {
1081 var keys = getOwnPropertyNamesModule.f(anObject(it));
1082 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
1083 return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
1084 };
1085 }));
1086
1087 //#endregion
1088 //#region node_modules/core-js/internals/copy-constructor-properties.js
1089 var require_copy_constructor_properties = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1090 var hasOwn = require_has_own_property();
1091 var ownKeys = require_own_keys();
1092 var getOwnPropertyDescriptorModule = require_object_get_own_property_descriptor();
1093 var definePropertyModule = require_object_define_property();
1094 module.exports = function(target, source, exceptions) {
1095 var keys = ownKeys(source);
1096 var defineProperty = definePropertyModule.f;
1097 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
1098 for (var i = 0; i < keys.length; i++) {
1099 var key = keys[i];
1100 if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
1101 }
1102 };
1103 }));
1104
1105 //#endregion
1106 //#region node_modules/core-js/internals/is-forced.js
1107 var require_is_forced = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1108 var fails = require_fails();
1109 var isCallable = require_is_callable();
1110 var replacement = /#|\.prototype\./;
1111 var isForced = function(feature, detection) {
1112 var value = data[normalize(feature)];
1113 return value === POLYFILL ? true : value === NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection;
1114 };
1115 var normalize = isForced.normalize = function(string) {
1116 return String(string).replace(replacement, ".").toLowerCase();
1117 };
1118 var data = isForced.data = {};
1119 var NATIVE = isForced.NATIVE = "N";
1120 var POLYFILL = isForced.POLYFILL = "P";
1121 module.exports = isForced;
1122 }));
1123
1124 //#endregion
1125 //#region node_modules/core-js/internals/export.js
1126 var require_export = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1127 var globalThis = require_global_this();
1128 var getOwnPropertyDescriptor = require_object_get_own_property_descriptor().f;
1129 var createNonEnumerableProperty = require_create_non_enumerable_property();
1130 var defineBuiltIn = require_define_built_in();
1131 var defineGlobalProperty = require_define_global_property();
1132 var copyConstructorProperties = require_copy_constructor_properties();
1133 var isForced = require_is_forced();
1134 module.exports = function(options, source) {
1135 var TARGET = options.target;
1136 var GLOBAL = options.global;
1137 var STATIC = options.stat;
1138 var FORCED;
1139 var target;
1140 var key;
1141 var targetProperty;
1142 var sourceProperty;
1143 var descriptor;
1144 if (GLOBAL) target = globalThis;
1145 else if (STATIC) target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});
1146 else target = globalThis[TARGET] && globalThis[TARGET].prototype;
1147 if (target) for (key in source) {
1148 sourceProperty = source[key];
1149 if (options.dontCallGetSet) {
1150 descriptor = getOwnPropertyDescriptor(target, key);
1151 targetProperty = descriptor && descriptor.value;
1152 } else targetProperty = target[key];
1153 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, options.forced);
1154 if (!FORCED && targetProperty !== void 0) {
1155 if (typeof sourceProperty == typeof targetProperty) continue;
1156 copyConstructorProperties(sourceProperty, targetProperty);
1157 }
1158 if (options.sham || targetProperty && targetProperty.sham) createNonEnumerableProperty(sourceProperty, "sham", true);
1159 defineBuiltIn(target, key, sourceProperty, options);
1160 }
1161 };
1162 }));
1163
1164 //#endregion
1165 //#region node_modules/core-js/internals/object-keys.js
1166 var require_object_keys = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1167 var internalObjectKeys = require_object_keys_internal();
1168 var enumBugKeys = require_enum_bug_keys();
1169 module.exports = Object.keys || function keys(O) {
1170 return internalObjectKeys(O, enumBugKeys);
1171 };
1172 }));
1173
1174 //#endregion
1175 //#region node_modules/core-js/internals/object-define-properties.js
1176 var require_object_define_properties = /* @__PURE__ */ __commonJSMin(((exports) => {
1177 var DESCRIPTORS = require_descriptors();
1178 var V8_PROTOTYPE_DEFINE_BUG = require_v8_prototype_define_bug();
1179 var definePropertyModule = require_object_define_property();
1180 var anObject = require_an_object();
1181 var toIndexedObject = require_to_indexed_object();
1182 var objectKeys = require_object_keys();
1183 exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
1184 anObject(O);
1185 var props = toIndexedObject(Properties);
1186 var keys = objectKeys(Properties);
1187 var length = keys.length;
1188 var index = 0;
1189 var key;
1190 while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
1191 return O;
1192 };
1193 }));
1194
1195 //#endregion
1196 //#region node_modules/core-js/internals/html.js
1197 var require_html = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1198 var getBuiltIn = require_get_built_in();
1199 module.exports = getBuiltIn("document", "documentElement");
1200 }));
1201
1202 //#endregion
1203 //#region node_modules/core-js/internals/object-create.js
1204 var require_object_create = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1205 var anObject = require_an_object();
1206 var definePropertiesModule = require_object_define_properties();
1207 var enumBugKeys = require_enum_bug_keys();
1208 var hiddenKeys = require_hidden_keys();
1209 var html = require_html();
1210 var documentCreateElement = require_document_create_element();
1211 var sharedKey = require_shared_key();
1212 var GT = ">";
1213 var LT = "<";
1214 var PROTOTYPE = "prototype";
1215 var SCRIPT = "script";
1216 var IE_PROTO = sharedKey("IE_PROTO");
1217 var EmptyConstructor = function() {};
1218 var scriptTag = function(content) {
1219 return LT + SCRIPT + GT + content + LT + "/" + SCRIPT + GT;
1220 };
1221 var NullProtoObjectViaActiveX = function(activeXDocument) {
1222 activeXDocument.write(scriptTag(""));
1223 activeXDocument.close();
1224 var temp = activeXDocument.parentWindow.Object;
1225 activeXDocument = null;
1226 return temp;
1227 };
1228 var NullProtoObjectViaIFrame = function() {
1229 var iframe = documentCreateElement("iframe");
1230 var JS = "java" + SCRIPT + ":";
1231 var iframeDocument;
1232 iframe.style.display = "none";
1233 html.appendChild(iframe);
1234 iframe.src = String(JS);
1235 iframeDocument = iframe.contentWindow.document;
1236 iframeDocument.open();
1237 iframeDocument.write(scriptTag("document.F=Object"));
1238 iframeDocument.close();
1239 return iframeDocument.F;
1240 };
1241 var activeXDocument;
1242 var NullProtoObject = function() {
1243 try {
1244 activeXDocument = new ActiveXObject("htmlfile");
1245 } catch (error) {}
1246 NullProtoObject = typeof document != "undefined" ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument);
1247 var length = enumBugKeys.length;
1248 while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
1249 return NullProtoObject();
1250 };
1251 hiddenKeys[IE_PROTO] = true;
1252 module.exports = Object.create || function create(O, Properties) {
1253 var result;
1254 if (O !== null) {
1255 EmptyConstructor[PROTOTYPE] = anObject(O);
1256 result = new EmptyConstructor();
1257 EmptyConstructor[PROTOTYPE] = null;
1258 result[IE_PROTO] = O;
1259 } else result = NullProtoObject();
1260 return Properties === void 0 ? result : definePropertiesModule.f(result, Properties);
1261 };
1262 }));
1263
1264 //#endregion
1265 //#region node_modules/core-js/internals/add-to-unscopables.js
1266 var require_add_to_unscopables = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1267 var wellKnownSymbol = require_well_known_symbol();
1268 var create = require_object_create();
1269 var defineProperty = require_object_define_property().f;
1270 var UNSCOPABLES = wellKnownSymbol("unscopables");
1271 var ArrayPrototype = Array.prototype;
1272 if (ArrayPrototype[UNSCOPABLES] === void 0) defineProperty(ArrayPrototype, UNSCOPABLES, {
1273 configurable: true,
1274 value: create(null)
1275 });
1276 module.exports = function(key) {
1277 ArrayPrototype[UNSCOPABLES][key] = true;
1278 };
1279 }));
1280
1281 //#endregion
1282 //#region node_modules/core-js/modules/es.array.includes.js
1283 var require_es_array_includes = /* @__PURE__ */ __commonJSMin((() => {
1284 var $ = require_export();
1285 var $includes = require_array_includes().includes;
1286 var fails = require_fails();
1287 var addToUnscopables = require_add_to_unscopables();
1288 $({
1289 target: "Array",
1290 proto: true,
1291 forced: fails(function() {
1292 return !Array(1).includes();
1293 })
1294 }, { includes: function includes(el) {
1295 return $includes(this, el, arguments.length > 1 ? arguments[1] : void 0);
1296 } });
1297 addToUnscopables("includes");
1298 }));
1299
1300 //#endregion
1301 //#region node_modules/core-js/internals/is-array.js
1302 var require_is_array = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1303 var classof = require_classof_raw();
1304 module.exports = Array.isArray || function isArray(argument) {
1305 return classof(argument) === "Array";
1306 };
1307 }));
1308
1309 //#endregion
1310 //#region node_modules/core-js/internals/array-set-length.js
1311 var require_array_set_length = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1312 var DESCRIPTORS = require_descriptors();
1313 var isArray = require_is_array();
1314 var $TypeError = TypeError;
1315 var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
1316 var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function() {
1317 if (this !== void 0) return true;
1318 try {
1319 Object.defineProperty([], "length", { writable: false }).length = 1;
1320 } catch (error) {
1321 return error instanceof TypeError;
1322 }
1323 }();
1324 module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function(O, length) {
1325 if (isArray(O) && !getOwnPropertyDescriptor(O, "length").writable) throw new $TypeError("Cannot set read only .length");
1326 return O.length = length;
1327 } : function(O, length) {
1328 return O.length = length;
1329 };
1330 }));
1331
1332 //#endregion
1333 //#region node_modules/core-js/internals/does-not-exceed-safe-integer.js
1334 var require_does_not_exceed_safe_integer = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1335 var $TypeError = TypeError;
1336 var MAX_SAFE_INTEGER = 9007199254740991;
1337 module.exports = function(it) {
1338 if (it > MAX_SAFE_INTEGER) throw $TypeError("Maximum allowed index exceeded");
1339 return it;
1340 };
1341 }));
1342
1343 //#endregion
1344 //#region node_modules/core-js/modules/es.array.push.js
1345 var require_es_array_push = /* @__PURE__ */ __commonJSMin((() => {
1346 var $ = require_export();
1347 var toObject = require_to_object();
1348 var lengthOfArrayLike = require_length_of_array_like();
1349 var setArrayLength = require_array_set_length();
1350 var doesNotExceedSafeInteger = require_does_not_exceed_safe_integer();
1351 var INCORRECT_TO_LENGTH = require_fails()(function() {
1352 return [].push.call({ length: 4294967296 }, 1) !== 4294967297;
1353 });
1354 var properErrorOnNonWritableLength = function() {
1355 try {
1356 Object.defineProperty([], "length", { writable: false }).push();
1357 } catch (error) {
1358 return error instanceof TypeError;
1359 }
1360 };
1361 $({
1362 target: "Array",
1363 proto: true,
1364 arity: 1,
1365 forced: INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength()
1366 }, { push: function push(item) {
1367 var O = toObject(this);
1368 var len = lengthOfArrayLike(O);
1369 var argCount = arguments.length;
1370 doesNotExceedSafeInteger(len + argCount);
1371 for (var i = 0; i < argCount; i++) {
1372 O[len] = arguments[i];
1373 len++;
1374 }
1375 setArrayLength(O, len);
1376 return len;
1377 } });
1378 }));
1379
1380 //#endregion
1381 //#region node_modules/core-js/internals/an-instance.js
1382 var require_an_instance = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1383 var isPrototypeOf = require_object_is_prototype_of();
1384 var $TypeError = TypeError;
1385 module.exports = function(it, Prototype) {
1386 if (isPrototypeOf(Prototype, it)) return it;
1387 throw new $TypeError("Incorrect invocation");
1388 };
1389 }));
1390
1391 //#endregion
1392 //#region node_modules/core-js/internals/correct-prototype-getter.js
1393 var require_correct_prototype_getter = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1394 var fails = require_fails();
1395 module.exports = !fails(function() {
1396 function F() {}
1397 F.prototype.constructor = null;
1398 return Object.getPrototypeOf(new F()) !== F.prototype;
1399 });
1400 }));
1401
1402 //#endregion
1403 //#region node_modules/core-js/internals/object-get-prototype-of.js
1404 var require_object_get_prototype_of = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1405 var hasOwn = require_has_own_property();
1406 var isCallable = require_is_callable();
1407 var toObject = require_to_object();
1408 var sharedKey = require_shared_key();
1409 var CORRECT_PROTOTYPE_GETTER = require_correct_prototype_getter();
1410 var IE_PROTO = sharedKey("IE_PROTO");
1411 var $Object = Object;
1412 var ObjectPrototype = $Object.prototype;
1413 module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function(O) {
1414 var object = toObject(O);
1415 if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
1416 var constructor = object.constructor;
1417 if (isCallable(constructor) && object instanceof constructor) return constructor.prototype;
1418 return object instanceof $Object ? ObjectPrototype : null;
1419 };
1420 }));
1421
1422 //#endregion
1423 //#region node_modules/core-js/internals/define-built-in-accessor.js
1424 var require_define_built_in_accessor = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1425 var makeBuiltIn = require_make_built_in();
1426 var defineProperty = require_object_define_property();
1427 module.exports = function(target, name, descriptor) {
1428 if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });
1429 if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });
1430 return defineProperty.f(target, name, descriptor);
1431 };
1432 }));
1433
1434 //#endregion
1435 //#region node_modules/core-js/internals/create-property.js
1436 var require_create_property = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1437 var DESCRIPTORS = require_descriptors();
1438 var definePropertyModule = require_object_define_property();
1439 var createPropertyDescriptor = require_create_property_descriptor();
1440 module.exports = function(object, key, value) {
1441 if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));
1442 else object[key] = value;
1443 };
1444 }));
1445
1446 //#endregion
1447 //#region node_modules/core-js/internals/iterators-core.js
1448 var require_iterators_core = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1449 var fails = require_fails();
1450 var isCallable = require_is_callable();
1451 var isObject = require_is_object();
1452 var create = require_object_create();
1453 var getPrototypeOf = require_object_get_prototype_of();
1454 var defineBuiltIn = require_define_built_in();
1455 var wellKnownSymbol = require_well_known_symbol();
1456 var IS_PURE = require_is_pure();
1457 var ITERATOR = wellKnownSymbol("iterator");
1458 var BUGGY_SAFARI_ITERATORS = false;
1459 var IteratorPrototype;
1460 var PrototypeOfArrayIteratorPrototype;
1461 var arrayIterator;
1462 if ([].keys) {
1463 arrayIterator = [].keys();
1464 if (!("next" in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
1465 else {
1466 PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
1467 if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
1468 }
1469 }
1470 if (!isObject(IteratorPrototype) || fails(function() {
1471 var test = {};
1472 return IteratorPrototype[ITERATOR].call(test) !== test;
1473 })) IteratorPrototype = {};
1474 else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
1475 if (!isCallable(IteratorPrototype[ITERATOR])) defineBuiltIn(IteratorPrototype, ITERATOR, function() {
1476 return this;
1477 });
1478 module.exports = {
1479 IteratorPrototype,
1480 BUGGY_SAFARI_ITERATORS
1481 };
1482 }));
1483
1484 //#endregion
1485 //#region node_modules/core-js/modules/es.iterator.constructor.js
1486 var require_es_iterator_constructor = /* @__PURE__ */ __commonJSMin((() => {
1487 var $ = require_export();
1488 var globalThis = require_global_this();
1489 var anInstance = require_an_instance();
1490 var anObject = require_an_object();
1491 var isCallable = require_is_callable();
1492 var getPrototypeOf = require_object_get_prototype_of();
1493 var defineBuiltInAccessor = require_define_built_in_accessor();
1494 var createProperty = require_create_property();
1495 var fails = require_fails();
1496 var hasOwn = require_has_own_property();
1497 var wellKnownSymbol = require_well_known_symbol();
1498 var IteratorPrototype = require_iterators_core().IteratorPrototype;
1499 var DESCRIPTORS = require_descriptors();
1500 var IS_PURE = require_is_pure();
1501 var CONSTRUCTOR = "constructor";
1502 var ITERATOR = "Iterator";
1503 var TO_STRING_TAG = wellKnownSymbol("toStringTag");
1504 var $TypeError = TypeError;
1505 var NativeIterator = globalThis[ITERATOR];
1506 var FORCED = IS_PURE || !isCallable(NativeIterator) || NativeIterator.prototype !== IteratorPrototype || !fails(function() {
1507 NativeIterator({});
1508 });
1509 var IteratorConstructor = function Iterator() {
1510 anInstance(this, IteratorPrototype);
1511 if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError("Abstract class Iterator not directly constructable");
1512 };
1513 var defineIteratorPrototypeAccessor = function(key, value) {
1514 if (DESCRIPTORS) defineBuiltInAccessor(IteratorPrototype, key, {
1515 configurable: true,
1516 get: function() {
1517 return value;
1518 },
1519 set: function(replacement) {
1520 anObject(this);
1521 if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property");
1522 if (hasOwn(this, key)) this[key] = replacement;
1523 else createProperty(this, key, replacement);
1524 }
1525 });
1526 else IteratorPrototype[key] = value;
1527 };
1528 if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);
1529 if (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);
1530 IteratorConstructor.prototype = IteratorPrototype;
1531 $({
1532 global: true,
1533 constructor: true,
1534 forced: FORCED
1535 }, { Iterator: IteratorConstructor });
1536 }));
1537
1538 //#endregion
1539 //#region node_modules/core-js/modules/esnext.iterator.constructor.js
1540 var require_esnext_iterator_constructor = /* @__PURE__ */ __commonJSMin((() => {
1541 require_es_iterator_constructor();
1542 }));
1543
1544 //#endregion
1545 //#region node_modules/core-js/internals/get-iterator-direct.js
1546 var require_get_iterator_direct = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1547 module.exports = function(obj) {
1548 return {
1549 iterator: obj,
1550 next: obj.next,
1551 done: false
1552 };
1553 };
1554 }));
1555
1556 //#endregion
1557 //#region node_modules/core-js/internals/define-built-ins.js
1558 var require_define_built_ins = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1559 var defineBuiltIn = require_define_built_in();
1560 module.exports = function(target, src, options) {
1561 for (var key in src) defineBuiltIn(target, key, src[key], options);
1562 return target;
1563 };
1564 }));
1565
1566 //#endregion
1567 //#region node_modules/core-js/internals/create-iter-result-object.js
1568 var require_create_iter_result_object = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1569 module.exports = function(value, done) {
1570 return {
1571 value,
1572 done
1573 };
1574 };
1575 }));
1576
1577 //#endregion
1578 //#region node_modules/core-js/internals/iterator-close.js
1579 var require_iterator_close = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1580 var call = require_function_call();
1581 var anObject = require_an_object();
1582 var getMethod = require_get_method();
1583 module.exports = function(iterator, kind, value) {
1584 var innerResult;
1585 var innerError;
1586 anObject(iterator);
1587 try {
1588 innerResult = getMethod(iterator, "return");
1589 if (!innerResult) {
1590 if (kind === "throw") throw value;
1591 return value;
1592 }
1593 innerResult = call(innerResult, iterator);
1594 } catch (error) {
1595 innerError = true;
1596 innerResult = error;
1597 }
1598 if (kind === "throw") throw value;
1599 if (innerError) throw innerResult;
1600 anObject(innerResult);
1601 return value;
1602 };
1603 }));
1604
1605 //#endregion
1606 //#region node_modules/core-js/internals/iterator-close-all.js
1607 var require_iterator_close_all = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1608 var iteratorClose = require_iterator_close();
1609 module.exports = function(iters, kind, value) {
1610 for (var i = iters.length - 1; i >= 0; i--) {
1611 if (iters[i] === void 0) continue;
1612 try {
1613 value = iteratorClose(iters[i].iterator, kind, value);
1614 } catch (error) {
1615 kind = "throw";
1616 value = error;
1617 }
1618 }
1619 if (kind === "throw") throw value;
1620 return value;
1621 };
1622 }));
1623
1624 //#endregion
1625 //#region node_modules/core-js/internals/iterator-create-proxy.js
1626 var require_iterator_create_proxy = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1627 var call = require_function_call();
1628 var create = require_object_create();
1629 var createNonEnumerableProperty = require_create_non_enumerable_property();
1630 var defineBuiltIns = require_define_built_ins();
1631 var wellKnownSymbol = require_well_known_symbol();
1632 var InternalStateModule = require_internal_state();
1633 var getMethod = require_get_method();
1634 var IteratorPrototype = require_iterators_core().IteratorPrototype;
1635 var createIterResultObject = require_create_iter_result_object();
1636 var iteratorClose = require_iterator_close();
1637 var iteratorCloseAll = require_iterator_close_all();
1638 var TO_STRING_TAG = wellKnownSymbol("toStringTag");
1639 var ITERATOR_HELPER = "IteratorHelper";
1640 var WRAP_FOR_VALID_ITERATOR = "WrapForValidIterator";
1641 var NORMAL = "normal";
1642 var THROW = "throw";
1643 var setInternalState = InternalStateModule.set;
1644 var createIteratorProxyPrototype = function(IS_ITERATOR) {
1645 var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);
1646 return defineBuiltIns(create(IteratorPrototype), {
1647 next: function next() {
1648 var state = getInternalState(this);
1649 if (IS_ITERATOR) return state.nextHandler();
1650 if (state.done) return createIterResultObject(void 0, true);
1651 try {
1652 var result = state.nextHandler();
1653 return state.returnHandlerResult ? result : createIterResultObject(result, state.done);
1654 } catch (error) {
1655 state.done = true;
1656 throw error;
1657 }
1658 },
1659 "return": function() {
1660 var state = getInternalState(this);
1661 var iterator = state.iterator;
1662 state.done = true;
1663 if (IS_ITERATOR) {
1664 var returnMethod = getMethod(iterator, "return");
1665 return returnMethod ? call(returnMethod, iterator) : createIterResultObject(void 0, true);
1666 }
1667 if (state.inner) try {
1668 iteratorClose(state.inner.iterator, NORMAL);
1669 } catch (error) {
1670 return iteratorClose(iterator, THROW, error);
1671 }
1672 if (state.openIters) try {
1673 iteratorCloseAll(state.openIters, NORMAL);
1674 } catch (error) {
1675 return iteratorClose(iterator, THROW, error);
1676 }
1677 if (iterator) iteratorClose(iterator, NORMAL);
1678 return createIterResultObject(void 0, true);
1679 }
1680 });
1681 };
1682 var WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);
1683 var IteratorHelperPrototype = createIteratorProxyPrototype(false);
1684 createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, "Iterator Helper");
1685 module.exports = function(nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {
1686 var IteratorProxy = function Iterator(record, state) {
1687 if (state) {
1688 state.iterator = record.iterator;
1689 state.next = record.next;
1690 } else state = record;
1691 state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;
1692 state.returnHandlerResult = !!RETURN_HANDLER_RESULT;
1693 state.nextHandler = nextHandler;
1694 state.counter = 0;
1695 state.done = false;
1696 setInternalState(this, state);
1697 };
1698 IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;
1699 return IteratorProxy;
1700 };
1701 }));
1702
1703 //#endregion
1704 //#region node_modules/core-js/internals/call-with-safe-iteration-closing.js
1705 var require_call_with_safe_iteration_closing = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1706 var anObject = require_an_object();
1707 var iteratorClose = require_iterator_close();
1708 module.exports = function(iterator, fn, value, ENTRIES) {
1709 try {
1710 return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
1711 } catch (error) {
1712 iteratorClose(iterator, "throw", error);
1713 }
1714 };
1715 }));
1716
1717 //#endregion
1718 //#region node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js
1719 var require_iterator_helper_throws_on_invalid_iterator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1720 module.exports = function(methodName, argument) {
1721 var method = typeof Iterator == "function" && Iterator.prototype[methodName];
1722 if (method) try {
1723 method.call({ next: null }, argument).next();
1724 } catch (error) {
1725 return true;
1726 }
1727 };
1728 }));
1729
1730 //#endregion
1731 //#region node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js
1732 var require_iterator_helper_without_closing_on_early_error = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1733 var globalThis = require_global_this();
1734 module.exports = function(METHOD_NAME, ExpectedError) {
1735 var Iterator = globalThis.Iterator;
1736 var IteratorPrototype = Iterator && Iterator.prototype;
1737 var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];
1738 var CLOSED = false;
1739 if (method) try {
1740 method.call({
1741 next: function() {
1742 return { done: true };
1743 },
1744 "return": function() {
1745 CLOSED = true;
1746 }
1747 }, -1);
1748 } catch (error) {
1749 if (!(error instanceof ExpectedError)) CLOSED = false;
1750 }
1751 if (!CLOSED) return method;
1752 };
1753 }));
1754
1755 //#endregion
1756 //#region node_modules/core-js/modules/es.iterator.filter.js
1757 var require_es_iterator_filter = /* @__PURE__ */ __commonJSMin((() => {
1758 var $ = require_export();
1759 var call = require_function_call();
1760 var aCallable = require_a_callable();
1761 var anObject = require_an_object();
1762 var getIteratorDirect = require_get_iterator_direct();
1763 var createIteratorProxy = require_iterator_create_proxy();
1764 var callWithSafeIterationClosing = require_call_with_safe_iteration_closing();
1765 var IS_PURE = require_is_pure();
1766 var iteratorClose = require_iterator_close();
1767 var iteratorHelperThrowsOnInvalidIterator = require_iterator_helper_throws_on_invalid_iterator();
1768 var iteratorHelperWithoutClosingOnEarlyError = require_iterator_helper_without_closing_on_early_error();
1769 var FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator("filter", function() {});
1770 var filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR && iteratorHelperWithoutClosingOnEarlyError("filter", TypeError);
1771 var FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;
1772 var IteratorProxy = createIteratorProxy(function() {
1773 var iterator = this.iterator;
1774 var predicate = this.predicate;
1775 var next = this.next;
1776 var result;
1777 var done;
1778 var value;
1779 while (true) {
1780 result = anObject(call(next, iterator));
1781 done = this.done = !!result.done;
1782 if (done) return;
1783 value = result.value;
1784 if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;
1785 }
1786 });
1787 $({
1788 target: "Iterator",
1789 proto: true,
1790 real: true,
1791 forced: FORCED
1792 }, { filter: function filter(predicate) {
1793 anObject(this);
1794 try {
1795 aCallable(predicate);
1796 } catch (error) {
1797 iteratorClose(this, "throw", error);
1798 }
1799 if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);
1800 return new IteratorProxy(getIteratorDirect(this), { predicate });
1801 } });
1802 }));
1803
1804 //#endregion
1805 //#region node_modules/core-js/modules/esnext.iterator.filter.js
1806 var require_esnext_iterator_filter = /* @__PURE__ */ __commonJSMin((() => {
1807 require_es_iterator_filter();
1808 }));
1809
1810 //#endregion
1811 //#region node_modules/core-js/internals/function-uncurry-this-clause.js
1812 var require_function_uncurry_this_clause = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1813 var classofRaw = require_classof_raw();
1814 var uncurryThis = require_function_uncurry_this();
1815 module.exports = function(fn) {
1816 if (classofRaw(fn) === "Function") return uncurryThis(fn);
1817 };
1818 }));
1819
1820 //#endregion
1821 //#region node_modules/core-js/internals/function-bind-context.js
1822 var require_function_bind_context = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1823 var uncurryThis = require_function_uncurry_this_clause();
1824 var aCallable = require_a_callable();
1825 var NATIVE_BIND = require_function_bind_native();
1826 var bind = uncurryThis(uncurryThis.bind);
1827 module.exports = function(fn, that) {
1828 aCallable(fn);
1829 return that === void 0 ? fn : NATIVE_BIND ? bind(fn, that) : function() {
1830 return fn.apply(that, arguments);
1831 };
1832 };
1833 }));
1834
1835 //#endregion
1836 //#region node_modules/core-js/internals/iterators.js
1837 var require_iterators = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1838 module.exports = {};
1839 }));
1840
1841 //#endregion
1842 //#region node_modules/core-js/internals/is-array-iterator-method.js
1843 var require_is_array_iterator_method = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1844 var wellKnownSymbol = require_well_known_symbol();
1845 var Iterators = require_iterators();
1846 var ITERATOR = wellKnownSymbol("iterator");
1847 var ArrayPrototype = Array.prototype;
1848 module.exports = function(it) {
1849 return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
1850 };
1851 }));
1852
1853 //#endregion
1854 //#region node_modules/core-js/internals/to-string-tag-support.js
1855 var require_to_string_tag_support = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1856 var TO_STRING_TAG = require_well_known_symbol()("toStringTag");
1857 var test = {};
1858 test[TO_STRING_TAG] = "z";
1859 module.exports = String(test) === "[object z]";
1860 }));
1861
1862 //#endregion
1863 //#region node_modules/core-js/internals/classof.js
1864 var require_classof = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1865 var TO_STRING_TAG_SUPPORT = require_to_string_tag_support();
1866 var isCallable = require_is_callable();
1867 var classofRaw = require_classof_raw();
1868 var TO_STRING_TAG = require_well_known_symbol()("toStringTag");
1869 var $Object = Object;
1870 var CORRECT_ARGUMENTS = classofRaw(function() {
1871 return arguments;
1872 }()) === "Arguments";
1873 var tryGet = function(it, key) {
1874 try {
1875 return it[key];
1876 } catch (error) {}
1877 };
1878 module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function(it) {
1879 var O;
1880 var tag;
1881 var result;
1882 return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) === "Object" && isCallable(O.callee) ? "Arguments" : result;
1883 };
1884 }));
1885
1886 //#endregion
1887 //#region node_modules/core-js/internals/get-iterator-method.js
1888 var require_get_iterator_method = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1889 var classof = require_classof();
1890 var getMethod = require_get_method();
1891 var isNullOrUndefined = require_is_null_or_undefined();
1892 var Iterators = require_iterators();
1893 var ITERATOR = require_well_known_symbol()("iterator");
1894 module.exports = function(it) {
1895 if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR) || getMethod(it, "@@iterator") || Iterators[classof(it)];
1896 };
1897 }));
1898
1899 //#endregion
1900 //#region node_modules/core-js/internals/get-iterator.js
1901 var require_get_iterator = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1902 var call = require_function_call();
1903 var aCallable = require_a_callable();
1904 var anObject = require_an_object();
1905 var tryToString = require_try_to_string();
1906 var getIteratorMethod = require_get_iterator_method();
1907 var $TypeError = TypeError;
1908 module.exports = function(argument, usingIterator) {
1909 var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
1910 if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
1911 throw new $TypeError(tryToString(argument) + " is not iterable");
1912 };
1913 }));
1914
1915 //#endregion
1916 //#region node_modules/core-js/internals/iterate.js
1917 var require_iterate = /* @__PURE__ */ __commonJSMin(((exports, module) => {
1918 var bind = require_function_bind_context();
1919 var call = require_function_call();
1920 var anObject = require_an_object();
1921 var tryToString = require_try_to_string();
1922 var isArrayIteratorMethod = require_is_array_iterator_method();
1923 var lengthOfArrayLike = require_length_of_array_like();
1924 var isPrototypeOf = require_object_is_prototype_of();
1925 var getIterator = require_get_iterator();
1926 var getIteratorMethod = require_get_iterator_method();
1927 var iteratorClose = require_iterator_close();
1928 var $TypeError = TypeError;
1929 var Result = function(stopped, result) {
1930 this.stopped = stopped;
1931 this.result = result;
1932 };
1933 var ResultPrototype = Result.prototype;
1934 module.exports = function(iterable, unboundFunction, options) {
1935 var that = options && options.that;
1936 var AS_ENTRIES = !!(options && options.AS_ENTRIES);
1937 var IS_RECORD = !!(options && options.IS_RECORD);
1938 var IS_ITERATOR = !!(options && options.IS_ITERATOR);
1939 var INTERRUPTED = !!(options && options.INTERRUPTED);
1940 var fn = bind(unboundFunction, that);
1941 var iterator;
1942 var iterFn;
1943 var index;
1944 var length;
1945 var result;
1946 var next;
1947 var step;
1948 var stop = function(condition) {
1949 if (iterator) iteratorClose(iterator, "normal");
1950 return new Result(true, condition);
1951 };
1952 var callFn = function(value) {
1953 if (AS_ENTRIES) {
1954 anObject(value);
1955 return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
1956 }
1957 return INTERRUPTED ? fn(value, stop) : fn(value);
1958 };
1959 if (IS_RECORD) iterator = iterable.iterator;
1960 else if (IS_ITERATOR) iterator = iterable;
1961 else {
1962 iterFn = getIteratorMethod(iterable);
1963 if (!iterFn) throw new $TypeError(tryToString(iterable) + " is not iterable");
1964 if (isArrayIteratorMethod(iterFn)) {
1965 for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
1966 result = callFn(iterable[index]);
1967 if (result && isPrototypeOf(ResultPrototype, result)) return result;
1968 }
1969 return new Result(false);
1970 }
1971 iterator = getIterator(iterable, iterFn);
1972 }
1973 next = IS_RECORD ? iterable.next : iterator.next;
1974 while (!(step = call(next, iterator)).done) {
1975 try {
1976 result = callFn(step.value);
1977 } catch (error) {
1978 iteratorClose(iterator, "throw", error);
1979 }
1980 if (typeof result == "object" && result && isPrototypeOf(ResultPrototype, result)) return result;
1981 }
1982 return new Result(false);
1983 };
1984 }));
1985
1986 //#endregion
1987 //#region node_modules/core-js/modules/es.iterator.find.js
1988 var require_es_iterator_find = /* @__PURE__ */ __commonJSMin((() => {
1989 var $ = require_export();
1990 var call = require_function_call();
1991 var iterate = require_iterate();
1992 var aCallable = require_a_callable();
1993 var anObject = require_an_object();
1994 var getIteratorDirect = require_get_iterator_direct();
1995 var iteratorClose = require_iterator_close();
1996 var findWithoutClosingOnEarlyError = require_iterator_helper_without_closing_on_early_error()("find", TypeError);
1997 $({
1998 target: "Iterator",
1999 proto: true,
2000 real: true,
2001 forced: findWithoutClosingOnEarlyError
2002 }, { find: function find(predicate) {
2003 anObject(this);
2004 try {
2005 aCallable(predicate);
2006 } catch (error) {
2007 iteratorClose(this, "throw", error);
2008 }
2009 if (findWithoutClosingOnEarlyError) return call(findWithoutClosingOnEarlyError, this, predicate);
2010 var record = getIteratorDirect(this);
2011 var counter = 0;
2012 return iterate(record, function(value, stop) {
2013 if (predicate(value, counter++)) return stop(value);
2014 }, {
2015 IS_RECORD: true,
2016 INTERRUPTED: true
2017 }).result;
2018 } });
2019 }));
2020
2021 //#endregion
2022 //#region node_modules/core-js/modules/esnext.iterator.find.js
2023 var require_esnext_iterator_find = /* @__PURE__ */ __commonJSMin((() => {
2024 require_es_iterator_find();
2025 }));
2026
2027 //#endregion
2028 //#region node_modules/core-js/modules/es.iterator.for-each.js
2029 var require_es_iterator_for_each = /* @__PURE__ */ __commonJSMin((() => {
2030 var $ = require_export();
2031 var call = require_function_call();
2032 var iterate = require_iterate();
2033 var aCallable = require_a_callable();
2034 var anObject = require_an_object();
2035 var getIteratorDirect = require_get_iterator_direct();
2036 var iteratorClose = require_iterator_close();
2037 var forEachWithoutClosingOnEarlyError = require_iterator_helper_without_closing_on_early_error()("forEach", TypeError);
2038 $({
2039 target: "Iterator",
2040 proto: true,
2041 real: true,
2042 forced: forEachWithoutClosingOnEarlyError
2043 }, { forEach: function forEach(fn) {
2044 anObject(this);
2045 try {
2046 aCallable(fn);
2047 } catch (error) {
2048 iteratorClose(this, "throw", error);
2049 }
2050 if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);
2051 var record = getIteratorDirect(this);
2052 var counter = 0;
2053 iterate(record, function(value) {
2054 fn(value, counter++);
2055 }, { IS_RECORD: true });
2056 } });
2057 }));
2058
2059 //#endregion
2060 //#region node_modules/core-js/modules/esnext.iterator.for-each.js
2061 var require_esnext_iterator_for_each = /* @__PURE__ */ __commonJSMin((() => {
2062 require_es_iterator_for_each();
2063 }));
2064
2065 //#endregion
2066 //#region node_modules/dompurify/dist/purify.cjs.js
2067 /*! @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 */
2068 var require_purify_cjs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2069 var { entries, setPrototypeOf, isFrozen, getPrototypeOf, getOwnPropertyDescriptor } = Object;
2070 var { freeze, seal, create } = Object;
2071 var { apply, construct } = typeof Reflect !== "undefined" && Reflect;
2072 if (!freeze) freeze = function freeze(x) {
2073 return x;
2074 };
2075 if (!seal) seal = function seal(x) {
2076 return x;
2077 };
2078 if (!apply) apply = function apply(func, thisArg) {
2079 for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) args[_key - 2] = arguments[_key];
2080 return func.apply(thisArg, args);
2081 };
2082 if (!construct) construct = function construct(Func) {
2083 for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) args[_key2 - 1] = arguments[_key2];
2084 return new Func(...args);
2085 };
2086 var arrayForEach = unapply(Array.prototype.forEach);
2087 var arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);
2088 var arrayPop = unapply(Array.prototype.pop);
2089 var arrayPush = unapply(Array.prototype.push);
2090 var arraySplice = unapply(Array.prototype.splice);
2091 var stringToLowerCase = unapply(String.prototype.toLowerCase);
2092 var stringToString = unapply(String.prototype.toString);
2093 var stringMatch = unapply(String.prototype.match);
2094 var stringReplace = unapply(String.prototype.replace);
2095 var stringIndexOf = unapply(String.prototype.indexOf);
2096 var stringTrim = unapply(String.prototype.trim);
2097 var objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);
2098 var regExpTest = unapply(RegExp.prototype.test);
2099 var typeErrorCreate = unconstruct(TypeError);
2100 /**
2101 * Creates a new function that calls the given function with a specified thisArg and arguments.
2102 *
2103 * @param func - The function to be wrapped and called.
2104 * @returns A new function that calls the given function with a specified thisArg and arguments.
2105 */
2106 function unapply(func) {
2107 return function(thisArg) {
2108 if (thisArg instanceof RegExp) thisArg.lastIndex = 0;
2109 for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) args[_key3 - 1] = arguments[_key3];
2110 return apply(func, thisArg, args);
2111 };
2112 }
2113 /**
2114 * Creates a new function that constructs an instance of the given constructor function with the provided arguments.
2115 *
2116 * @param func - The constructor function to be wrapped and called.
2117 * @returns A new function that constructs an instance of the given constructor function with the provided arguments.
2118 */
2119 function unconstruct(Func) {
2120 return function() {
2121 for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4];
2122 return construct(Func, args);
2123 };
2124 }
2125 /**
2126 * Add properties to a lookup table
2127 *
2128 * @param set - The set to which elements will be added.
2129 * @param array - The array containing elements to be added to the set.
2130 * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.
2131 * @returns The modified set with added elements.
2132 */
2133 function addToSet(set, array) {
2134 let transformCaseFunc = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : stringToLowerCase;
2135 if (setPrototypeOf) setPrototypeOf(set, null);
2136 let l = array.length;
2137 while (l--) {
2138 let element = array[l];
2139 if (typeof element === "string") {
2140 const lcElement = transformCaseFunc(element);
2141 if (lcElement !== element) {
2142 if (!isFrozen(array)) array[l] = lcElement;
2143 element = lcElement;
2144 }
2145 }
2146 set[element] = true;
2147 }
2148 return set;
2149 }
2150 /**
2151 * Clean up an array to harden against CSPP
2152 *
2153 * @param array - The array to be cleaned.
2154 * @returns The cleaned version of the array
2155 */
2156 function cleanArray(array) {
2157 for (let index = 0; index < array.length; index++) if (!objectHasOwnProperty(array, index)) array[index] = null;
2158 return array;
2159 }
2160 /**
2161 * Shallow clone an object
2162 *
2163 * @param object - The object to be cloned.
2164 * @returns A new object that copies the original.
2165 */
2166 function clone(object) {
2167 const newObject = create(null);
2168 for (const [property, value] of entries(object)) if (objectHasOwnProperty(object, property)) if (Array.isArray(value)) newObject[property] = cleanArray(value);
2169 else if (value && typeof value === "object" && value.constructor === Object) newObject[property] = clone(value);
2170 else newObject[property] = value;
2171 return newObject;
2172 }
2173 /**
2174 * This method automatically checks if the prop is function or getter and behaves accordingly.
2175 *
2176 * @param object - The object to look up the getter function in its prototype chain.
2177 * @param prop - The property name for which to find the getter function.
2178 * @returns The getter function found in the prototype chain or a fallback function.
2179 */
2180 function lookupGetter(object, prop) {
2181 while (object !== null) {
2182 const desc = getOwnPropertyDescriptor(object, prop);
2183 if (desc) {
2184 if (desc.get) return unapply(desc.get);
2185 if (typeof desc.value === "function") return unapply(desc.value);
2186 }
2187 object = getPrototypeOf(object);
2188 }
2189 function fallbackValue() {
2190 return null;
2191 }
2192 return fallbackValue;
2193 }
2194 var html$1 = freeze([
2195 "a",
2196 "abbr",
2197 "acronym",
2198 "address",
2199 "area",
2200 "article",
2201 "aside",
2202 "audio",
2203 "b",
2204 "bdi",
2205 "bdo",
2206 "big",
2207 "blink",
2208 "blockquote",
2209 "body",
2210 "br",
2211 "button",
2212 "canvas",
2213 "caption",
2214 "center",
2215 "cite",
2216 "code",
2217 "col",
2218 "colgroup",
2219 "content",
2220 "data",
2221 "datalist",
2222 "dd",
2223 "decorator",
2224 "del",
2225 "details",
2226 "dfn",
2227 "dialog",
2228 "dir",
2229 "div",
2230 "dl",
2231 "dt",
2232 "element",
2233 "em",
2234 "fieldset",
2235 "figcaption",
2236 "figure",
2237 "font",
2238 "footer",
2239 "form",
2240 "h1",
2241 "h2",
2242 "h3",
2243 "h4",
2244 "h5",
2245 "h6",
2246 "head",
2247 "header",
2248 "hgroup",
2249 "hr",
2250 "html",
2251 "i",
2252 "img",
2253 "input",
2254 "ins",
2255 "kbd",
2256 "label",
2257 "legend",
2258 "li",
2259 "main",
2260 "map",
2261 "mark",
2262 "marquee",
2263 "menu",
2264 "menuitem",
2265 "meter",
2266 "nav",
2267 "nobr",
2268 "ol",
2269 "optgroup",
2270 "option",
2271 "output",
2272 "p",
2273 "picture",
2274 "pre",
2275 "progress",
2276 "q",
2277 "rp",
2278 "rt",
2279 "ruby",
2280 "s",
2281 "samp",
2282 "search",
2283 "section",
2284 "select",
2285 "shadow",
2286 "slot",
2287 "small",
2288 "source",
2289 "spacer",
2290 "span",
2291 "strike",
2292 "strong",
2293 "style",
2294 "sub",
2295 "summary",
2296 "sup",
2297 "table",
2298 "tbody",
2299 "td",
2300 "template",
2301 "textarea",
2302 "tfoot",
2303 "th",
2304 "thead",
2305 "time",
2306 "tr",
2307 "track",
2308 "tt",
2309 "u",
2310 "ul",
2311 "var",
2312 "video",
2313 "wbr"
2314 ]);
2315 var svg$1 = freeze([
2316 "svg",
2317 "a",
2318 "altglyph",
2319 "altglyphdef",
2320 "altglyphitem",
2321 "animatecolor",
2322 "animatemotion",
2323 "animatetransform",
2324 "circle",
2325 "clippath",
2326 "defs",
2327 "desc",
2328 "ellipse",
2329 "enterkeyhint",
2330 "exportparts",
2331 "filter",
2332 "font",
2333 "g",
2334 "glyph",
2335 "glyphref",
2336 "hkern",
2337 "image",
2338 "inputmode",
2339 "line",
2340 "lineargradient",
2341 "marker",
2342 "mask",
2343 "metadata",
2344 "mpath",
2345 "part",
2346 "path",
2347 "pattern",
2348 "polygon",
2349 "polyline",
2350 "radialgradient",
2351 "rect",
2352 "stop",
2353 "style",
2354 "switch",
2355 "symbol",
2356 "text",
2357 "textpath",
2358 "title",
2359 "tref",
2360 "tspan",
2361 "view",
2362 "vkern"
2363 ]);
2364 var svgFilters = freeze([
2365 "feBlend",
2366 "feColorMatrix",
2367 "feComponentTransfer",
2368 "feComposite",
2369 "feConvolveMatrix",
2370 "feDiffuseLighting",
2371 "feDisplacementMap",
2372 "feDistantLight",
2373 "feDropShadow",
2374 "feFlood",
2375 "feFuncA",
2376 "feFuncB",
2377 "feFuncG",
2378 "feFuncR",
2379 "feGaussianBlur",
2380 "feImage",
2381 "feMerge",
2382 "feMergeNode",
2383 "feMorphology",
2384 "feOffset",
2385 "fePointLight",
2386 "feSpecularLighting",
2387 "feSpotLight",
2388 "feTile",
2389 "feTurbulence"
2390 ]);
2391 var svgDisallowed = freeze([
2392 "animate",
2393 "color-profile",
2394 "cursor",
2395 "discard",
2396 "font-face",
2397 "font-face-format",
2398 "font-face-name",
2399 "font-face-src",
2400 "font-face-uri",
2401 "foreignobject",
2402 "hatch",
2403 "hatchpath",
2404 "mesh",
2405 "meshgradient",
2406 "meshpatch",
2407 "meshrow",
2408 "missing-glyph",
2409 "script",
2410 "set",
2411 "solidcolor",
2412 "unknown",
2413 "use"
2414 ]);
2415 var mathMl$1 = freeze([
2416 "math",
2417 "menclose",
2418 "merror",
2419 "mfenced",
2420 "mfrac",
2421 "mglyph",
2422 "mi",
2423 "mlabeledtr",
2424 "mmultiscripts",
2425 "mn",
2426 "mo",
2427 "mover",
2428 "mpadded",
2429 "mphantom",
2430 "mroot",
2431 "mrow",
2432 "ms",
2433 "mspace",
2434 "msqrt",
2435 "mstyle",
2436 "msub",
2437 "msup",
2438 "msubsup",
2439 "mtable",
2440 "mtd",
2441 "mtext",
2442 "mtr",
2443 "munder",
2444 "munderover",
2445 "mprescripts"
2446 ]);
2447 var mathMlDisallowed = freeze([
2448 "maction",
2449 "maligngroup",
2450 "malignmark",
2451 "mlongdiv",
2452 "mscarries",
2453 "mscarry",
2454 "msgroup",
2455 "mstack",
2456 "msline",
2457 "msrow",
2458 "semantics",
2459 "annotation",
2460 "annotation-xml",
2461 "mprescripts",
2462 "none"
2463 ]);
2464 var text = freeze(["#text"]);
2465 var html = freeze([
2466 "accept",
2467 "action",
2468 "align",
2469 "alt",
2470 "autocapitalize",
2471 "autocomplete",
2472 "autopictureinpicture",
2473 "autoplay",
2474 "background",
2475 "bgcolor",
2476 "border",
2477 "capture",
2478 "cellpadding",
2479 "cellspacing",
2480 "checked",
2481 "cite",
2482 "class",
2483 "clear",
2484 "color",
2485 "cols",
2486 "colspan",
2487 "controls",
2488 "controlslist",
2489 "coords",
2490 "crossorigin",
2491 "datetime",
2492 "decoding",
2493 "default",
2494 "dir",
2495 "disabled",
2496 "disablepictureinpicture",
2497 "disableremoteplayback",
2498 "download",
2499 "draggable",
2500 "enctype",
2501 "enterkeyhint",
2502 "exportparts",
2503 "face",
2504 "for",
2505 "headers",
2506 "height",
2507 "hidden",
2508 "high",
2509 "href",
2510 "hreflang",
2511 "id",
2512 "inert",
2513 "inputmode",
2514 "integrity",
2515 "ismap",
2516 "kind",
2517 "label",
2518 "lang",
2519 "list",
2520 "loading",
2521 "loop",
2522 "low",
2523 "max",
2524 "maxlength",
2525 "media",
2526 "method",
2527 "min",
2528 "minlength",
2529 "multiple",
2530 "muted",
2531 "name",
2532 "nonce",
2533 "noshade",
2534 "novalidate",
2535 "nowrap",
2536 "open",
2537 "optimum",
2538 "part",
2539 "pattern",
2540 "placeholder",
2541 "playsinline",
2542 "popover",
2543 "popovertarget",
2544 "popovertargetaction",
2545 "poster",
2546 "preload",
2547 "pubdate",
2548 "radiogroup",
2549 "readonly",
2550 "rel",
2551 "required",
2552 "rev",
2553 "reversed",
2554 "role",
2555 "rows",
2556 "rowspan",
2557 "spellcheck",
2558 "scope",
2559 "selected",
2560 "shape",
2561 "size",
2562 "sizes",
2563 "slot",
2564 "span",
2565 "srclang",
2566 "start",
2567 "src",
2568 "srcset",
2569 "step",
2570 "style",
2571 "summary",
2572 "tabindex",
2573 "title",
2574 "translate",
2575 "type",
2576 "usemap",
2577 "valign",
2578 "value",
2579 "width",
2580 "wrap",
2581 "xmlns",
2582 "slot"
2583 ]);
2584 var svg = freeze([
2585 "accent-height",
2586 "accumulate",
2587 "additive",
2588 "alignment-baseline",
2589 "amplitude",
2590 "ascent",
2591 "attributename",
2592 "attributetype",
2593 "azimuth",
2594 "basefrequency",
2595 "baseline-shift",
2596 "begin",
2597 "bias",
2598 "by",
2599 "class",
2600 "clip",
2601 "clippathunits",
2602 "clip-path",
2603 "clip-rule",
2604 "color",
2605 "color-interpolation",
2606 "color-interpolation-filters",
2607 "color-profile",
2608 "color-rendering",
2609 "cx",
2610 "cy",
2611 "d",
2612 "dx",
2613 "dy",
2614 "diffuseconstant",
2615 "direction",
2616 "display",
2617 "divisor",
2618 "dur",
2619 "edgemode",
2620 "elevation",
2621 "end",
2622 "exponent",
2623 "fill",
2624 "fill-opacity",
2625 "fill-rule",
2626 "filter",
2627 "filterunits",
2628 "flood-color",
2629 "flood-opacity",
2630 "font-family",
2631 "font-size",
2632 "font-size-adjust",
2633 "font-stretch",
2634 "font-style",
2635 "font-variant",
2636 "font-weight",
2637 "fx",
2638 "fy",
2639 "g1",
2640 "g2",
2641 "glyph-name",
2642 "glyphref",
2643 "gradientunits",
2644 "gradienttransform",
2645 "height",
2646 "href",
2647 "id",
2648 "image-rendering",
2649 "in",
2650 "in2",
2651 "intercept",
2652 "k",
2653 "k1",
2654 "k2",
2655 "k3",
2656 "k4",
2657 "kerning",
2658 "keypoints",
2659 "keysplines",
2660 "keytimes",
2661 "lang",
2662 "lengthadjust",
2663 "letter-spacing",
2664 "kernelmatrix",
2665 "kernelunitlength",
2666 "lighting-color",
2667 "local",
2668 "marker-end",
2669 "marker-mid",
2670 "marker-start",
2671 "markerheight",
2672 "markerunits",
2673 "markerwidth",
2674 "maskcontentunits",
2675 "maskunits",
2676 "max",
2677 "mask",
2678 "mask-type",
2679 "media",
2680 "method",
2681 "mode",
2682 "min",
2683 "name",
2684 "numoctaves",
2685 "offset",
2686 "operator",
2687 "opacity",
2688 "order",
2689 "orient",
2690 "orientation",
2691 "origin",
2692 "overflow",
2693 "paint-order",
2694 "path",
2695 "pathlength",
2696 "patterncontentunits",
2697 "patterntransform",
2698 "patternunits",
2699 "points",
2700 "preservealpha",
2701 "preserveaspectratio",
2702 "primitiveunits",
2703 "r",
2704 "rx",
2705 "ry",
2706 "radius",
2707 "refx",
2708 "refy",
2709 "repeatcount",
2710 "repeatdur",
2711 "restart",
2712 "result",
2713 "rotate",
2714 "scale",
2715 "seed",
2716 "shape-rendering",
2717 "slope",
2718 "specularconstant",
2719 "specularexponent",
2720 "spreadmethod",
2721 "startoffset",
2722 "stddeviation",
2723 "stitchtiles",
2724 "stop-color",
2725 "stop-opacity",
2726 "stroke-dasharray",
2727 "stroke-dashoffset",
2728 "stroke-linecap",
2729 "stroke-linejoin",
2730 "stroke-miterlimit",
2731 "stroke-opacity",
2732 "stroke",
2733 "stroke-width",
2734 "style",
2735 "surfacescale",
2736 "systemlanguage",
2737 "tabindex",
2738 "tablevalues",
2739 "targetx",
2740 "targety",
2741 "transform",
2742 "transform-origin",
2743 "text-anchor",
2744 "text-decoration",
2745 "text-rendering",
2746 "textlength",
2747 "type",
2748 "u1",
2749 "u2",
2750 "unicode",
2751 "values",
2752 "viewbox",
2753 "visibility",
2754 "version",
2755 "vert-adv-y",
2756 "vert-origin-x",
2757 "vert-origin-y",
2758 "width",
2759 "word-spacing",
2760 "wrap",
2761 "writing-mode",
2762 "xchannelselector",
2763 "ychannelselector",
2764 "x",
2765 "x1",
2766 "x2",
2767 "xmlns",
2768 "y",
2769 "y1",
2770 "y2",
2771 "z",
2772 "zoomandpan"
2773 ]);
2774 var mathMl = freeze([
2775 "accent",
2776 "accentunder",
2777 "align",
2778 "bevelled",
2779 "close",
2780 "columnsalign",
2781 "columnlines",
2782 "columnspan",
2783 "denomalign",
2784 "depth",
2785 "dir",
2786 "display",
2787 "displaystyle",
2788 "encoding",
2789 "fence",
2790 "frame",
2791 "height",
2792 "href",
2793 "id",
2794 "largeop",
2795 "length",
2796 "linethickness",
2797 "lspace",
2798 "lquote",
2799 "mathbackground",
2800 "mathcolor",
2801 "mathsize",
2802 "mathvariant",
2803 "maxsize",
2804 "minsize",
2805 "movablelimits",
2806 "notation",
2807 "numalign",
2808 "open",
2809 "rowalign",
2810 "rowlines",
2811 "rowspacing",
2812 "rowspan",
2813 "rspace",
2814 "rquote",
2815 "scriptlevel",
2816 "scriptminsize",
2817 "scriptsizemultiplier",
2818 "selection",
2819 "separator",
2820 "separators",
2821 "stretchy",
2822 "subscriptshift",
2823 "supscriptshift",
2824 "symmetric",
2825 "voffset",
2826 "width",
2827 "xmlns"
2828 ]);
2829 var xml = freeze([
2830 "xlink:href",
2831 "xml:id",
2832 "xlink:title",
2833 "xml:space",
2834 "xmlns:xlink"
2835 ]);
2836 var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
2837 var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
2838 var TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm);
2839 var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/);
2840 var ARIA_ATTR = seal(/^aria-[\-\w]+$/);
2841 var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i);
2842 var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
2843 var ATTR_WHITESPACE = seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g);
2844 var DOCTYPE_NAME = seal(/^html$/i);
2845 var CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
2846 var EXPRESSIONS = /*#__PURE__*/ Object.freeze({
2847 __proto__: null,
2848 ARIA_ATTR,
2849 ATTR_WHITESPACE,
2850 CUSTOM_ELEMENT,
2851 DATA_ATTR,
2852 DOCTYPE_NAME,
2853 ERB_EXPR,
2854 IS_ALLOWED_URI,
2855 IS_SCRIPT_OR_DATA,
2856 MUSTACHE_EXPR,
2857 TMPLIT_EXPR
2858 });
2859 var NODE_TYPE = {
2860 element: 1,
2861 attribute: 2,
2862 text: 3,
2863 cdataSection: 4,
2864 entityReference: 5,
2865 entityNode: 6,
2866 progressingInstruction: 7,
2867 comment: 8,
2868 document: 9,
2869 documentType: 10,
2870 documentFragment: 11,
2871 notation: 12
2872 };
2873 var getGlobal = function getGlobal() {
2874 return typeof window === "undefined" ? null : window;
2875 };
2876 /**
2877 * Creates a no-op policy for internal use only.
2878 * Don't export this function outside this module!
2879 * @param trustedTypes The policy factory.
2880 * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).
2881 * @return The policy created (or null, if Trusted Types
2882 * are not supported or creating the policy failed).
2883 */
2884 var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {
2885 if (typeof trustedTypes !== "object" || typeof trustedTypes.createPolicy !== "function") return null;
2886 let suffix = null;
2887 const ATTR_NAME = "data-tt-policy-suffix";
2888 if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) suffix = purifyHostElement.getAttribute(ATTR_NAME);
2889 const policyName = "dompurify" + (suffix ? "#" + suffix : "");
2890 try {
2891 return trustedTypes.createPolicy(policyName, {
2892 createHTML(html) {
2893 return html;
2894 },
2895 createScriptURL(scriptUrl) {
2896 return scriptUrl;
2897 }
2898 });
2899 } catch (_) {
2900 console.warn("TrustedTypes policy " + policyName + " could not be created.");
2901 return null;
2902 }
2903 };
2904 var _createHooksMap = function _createHooksMap() {
2905 return {
2906 afterSanitizeAttributes: [],
2907 afterSanitizeElements: [],
2908 afterSanitizeShadowDOM: [],
2909 beforeSanitizeAttributes: [],
2910 beforeSanitizeElements: [],
2911 beforeSanitizeShadowDOM: [],
2912 uponSanitizeAttribute: [],
2913 uponSanitizeElement: [],
2914 uponSanitizeShadowNode: []
2915 };
2916 };
2917 function createDOMPurify() {
2918 let window = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
2919 const DOMPurify = (root) => createDOMPurify(root);
2920 DOMPurify.version = "3.3.0";
2921 DOMPurify.removed = [];
2922 if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
2923 DOMPurify.isSupported = false;
2924 return DOMPurify;
2925 }
2926 let { document } = window;
2927 const originalDocument = document;
2928 const currentScript = originalDocument.currentScript;
2929 const { DocumentFragment, HTMLTemplateElement, Node, Element, NodeFilter, NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap, HTMLFormElement, DOMParser, trustedTypes } = window;
2930 const ElementPrototype = Element.prototype;
2931 const cloneNode = lookupGetter(ElementPrototype, "cloneNode");
2932 const remove = lookupGetter(ElementPrototype, "remove");
2933 const getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
2934 const getChildNodes = lookupGetter(ElementPrototype, "childNodes");
2935 const getParentNode = lookupGetter(ElementPrototype, "parentNode");
2936 if (typeof HTMLTemplateElement === "function") {
2937 const template = document.createElement("template");
2938 if (template.content && template.content.ownerDocument) document = template.content.ownerDocument;
2939 }
2940 let trustedTypesPolicy;
2941 let emptyHTML = "";
2942 const { implementation, createNodeIterator, createDocumentFragment, getElementsByTagName } = document;
2943 const { importNode } = originalDocument;
2944 let hooks = _createHooksMap();
2945 /**
2946 * Expose whether this browser supports running the full DOMPurify.
2947 */
2948 DOMPurify.isSupported = typeof entries === "function" && typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0;
2949 const { MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR, DATA_ATTR, ARIA_ATTR, IS_SCRIPT_OR_DATA, ATTR_WHITESPACE, CUSTOM_ELEMENT } = EXPRESSIONS;
2950 let { IS_ALLOWED_URI: IS_ALLOWED_URI$1 } = EXPRESSIONS;
2951 /**
2952 * We consider the elements and attributes below to be safe. Ideally
2953 * don't add any new ones but feel free to remove unwanted ones.
2954 */
2955 let ALLOWED_TAGS = null;
2956 const DEFAULT_ALLOWED_TAGS = addToSet({}, [
2957 ...html$1,
2958 ...svg$1,
2959 ...svgFilters,
2960 ...mathMl$1,
2961 ...text
2962 ]);
2963 let ALLOWED_ATTR = null;
2964 const DEFAULT_ALLOWED_ATTR = addToSet({}, [
2965 ...html,
2966 ...svg,
2967 ...mathMl,
2968 ...xml
2969 ]);
2970 let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {
2971 tagNameCheck: {
2972 writable: true,
2973 configurable: false,
2974 enumerable: true,
2975 value: null
2976 },
2977 attributeNameCheck: {
2978 writable: true,
2979 configurable: false,
2980 enumerable: true,
2981 value: null
2982 },
2983 allowCustomizedBuiltInElements: {
2984 writable: true,
2985 configurable: false,
2986 enumerable: true,
2987 value: false
2988 }
2989 }));
2990 let FORBID_TAGS = null;
2991 let FORBID_ATTR = null;
2992 const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {
2993 tagCheck: {
2994 writable: true,
2995 configurable: false,
2996 enumerable: true,
2997 value: null
2998 },
2999 attributeCheck: {
3000 writable: true,
3001 configurable: false,
3002 enumerable: true,
3003 value: null
3004 }
3005 }));
3006 let ALLOW_ARIA_ATTR = true;
3007 let ALLOW_DATA_ATTR = true;
3008 let ALLOW_UNKNOWN_PROTOCOLS = false;
3009 let ALLOW_SELF_CLOSE_IN_ATTR = true;
3010 let SAFE_FOR_TEMPLATES = false;
3011 let SAFE_FOR_XML = true;
3012 let WHOLE_DOCUMENT = false;
3013 let SET_CONFIG = false;
3014 let FORCE_BODY = false;
3015 let RETURN_DOM = false;
3016 let RETURN_DOM_FRAGMENT = false;
3017 let RETURN_TRUSTED_TYPE = false;
3018 let SANITIZE_DOM = true;
3019 let SANITIZE_NAMED_PROPS = false;
3020 const SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
3021 let KEEP_CONTENT = true;
3022 let IN_PLACE = false;
3023 let USE_PROFILES = {};
3024 let FORBID_CONTENTS = null;
3025 const DEFAULT_FORBID_CONTENTS = addToSet({}, [
3026 "annotation-xml",
3027 "audio",
3028 "colgroup",
3029 "desc",
3030 "foreignobject",
3031 "head",
3032 "iframe",
3033 "math",
3034 "mi",
3035 "mn",
3036 "mo",
3037 "ms",
3038 "mtext",
3039 "noembed",
3040 "noframes",
3041 "noscript",
3042 "plaintext",
3043 "script",
3044 "style",
3045 "svg",
3046 "template",
3047 "thead",
3048 "title",
3049 "video",
3050 "xmp"
3051 ]);
3052 let DATA_URI_TAGS = null;
3053 const DEFAULT_DATA_URI_TAGS = addToSet({}, [
3054 "audio",
3055 "video",
3056 "img",
3057 "source",
3058 "image",
3059 "track"
3060 ]);
3061 let URI_SAFE_ATTRIBUTES = null;
3062 const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [
3063 "alt",
3064 "class",
3065 "for",
3066 "id",
3067 "label",
3068 "name",
3069 "pattern",
3070 "placeholder",
3071 "role",
3072 "summary",
3073 "title",
3074 "value",
3075 "style",
3076 "xmlns"
3077 ]);
3078 const MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
3079 const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
3080 const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
3081 let NAMESPACE = HTML_NAMESPACE;
3082 let IS_EMPTY_INPUT = false;
3083 let ALLOWED_NAMESPACES = null;
3084 const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [
3085 MATHML_NAMESPACE,
3086 SVG_NAMESPACE,
3087 HTML_NAMESPACE
3088 ], stringToString);
3089 let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [
3090 "mi",
3091 "mo",
3092 "mn",
3093 "ms",
3094 "mtext"
3095 ]);
3096 let HTML_INTEGRATION_POINTS = addToSet({}, ["annotation-xml"]);
3097 const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [
3098 "title",
3099 "style",
3100 "font",
3101 "a",
3102 "script"
3103 ]);
3104 let PARSER_MEDIA_TYPE = null;
3105 const SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
3106 const DEFAULT_PARSER_MEDIA_TYPE = "text/html";
3107 let transformCaseFunc = null;
3108 let CONFIG = null;
3109 const formElement = document.createElement("form");
3110 const isRegexOrFunction = function isRegexOrFunction(testValue) {
3111 return testValue instanceof RegExp || testValue instanceof Function;
3112 };
3113 /**
3114 * _parseConfig
3115 *
3116 * @param cfg optional config literal
3117 */
3118 const _parseConfig = function _parseConfig() {
3119 let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
3120 if (CONFIG && CONFIG === cfg) return;
3121 if (!cfg || typeof cfg !== "object") cfg = {};
3122 cfg = clone(cfg);
3123 PARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;
3124 transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
3125 ALLOWED_TAGS = objectHasOwnProperty(cfg, "ALLOWED_TAGS") ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
3126 ALLOWED_ATTR = objectHasOwnProperty(cfg, "ALLOWED_ATTR") ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
3127 ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, "ALLOWED_NAMESPACES") ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
3128 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;
3129 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;
3130 FORBID_CONTENTS = objectHasOwnProperty(cfg, "FORBID_CONTENTS") ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
3131 FORBID_TAGS = objectHasOwnProperty(cfg, "FORBID_TAGS") ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});
3132 FORBID_ATTR = objectHasOwnProperty(cfg, "FORBID_ATTR") ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});
3133 USE_PROFILES = objectHasOwnProperty(cfg, "USE_PROFILES") ? cfg.USE_PROFILES : false;
3134 ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
3135 ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
3136 ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
3137 ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;
3138 SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
3139 SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false;
3140 WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
3141 RETURN_DOM = cfg.RETURN_DOM || false;
3142 RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
3143 RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
3144 FORCE_BODY = cfg.FORCE_BODY || false;
3145 SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
3146 SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
3147 KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
3148 IN_PLACE = cfg.IN_PLACE || false;
3149 IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
3150 NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
3151 MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;
3152 HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;
3153 CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
3154 if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
3155 if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
3156 if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
3157 if (SAFE_FOR_TEMPLATES) ALLOW_DATA_ATTR = false;
3158 if (RETURN_DOM_FRAGMENT) RETURN_DOM = true;
3159 if (USE_PROFILES) {
3160 ALLOWED_TAGS = addToSet({}, text);
3161 ALLOWED_ATTR = [];
3162 if (USE_PROFILES.html === true) {
3163 addToSet(ALLOWED_TAGS, html$1);
3164 addToSet(ALLOWED_ATTR, html);
3165 }
3166 if (USE_PROFILES.svg === true) {
3167 addToSet(ALLOWED_TAGS, svg$1);
3168 addToSet(ALLOWED_ATTR, svg);
3169 addToSet(ALLOWED_ATTR, xml);
3170 }
3171 if (USE_PROFILES.svgFilters === true) {
3172 addToSet(ALLOWED_TAGS, svgFilters);
3173 addToSet(ALLOWED_ATTR, svg);
3174 addToSet(ALLOWED_ATTR, xml);
3175 }
3176 if (USE_PROFILES.mathMl === true) {
3177 addToSet(ALLOWED_TAGS, mathMl$1);
3178 addToSet(ALLOWED_ATTR, mathMl);
3179 addToSet(ALLOWED_ATTR, xml);
3180 }
3181 }
3182 if (cfg.ADD_TAGS) if (typeof cfg.ADD_TAGS === "function") EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;
3183 else {
3184 if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) ALLOWED_TAGS = clone(ALLOWED_TAGS);
3185 addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
3186 }
3187 if (cfg.ADD_ATTR) if (typeof cfg.ADD_ATTR === "function") EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;
3188 else {
3189 if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) ALLOWED_ATTR = clone(ALLOWED_ATTR);
3190 addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
3191 }
3192 if (cfg.ADD_URI_SAFE_ATTR) addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
3193 if (cfg.FORBID_CONTENTS) {
3194 if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) FORBID_CONTENTS = clone(FORBID_CONTENTS);
3195 addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
3196 }
3197 if (KEEP_CONTENT) ALLOWED_TAGS["#text"] = true;
3198 if (WHOLE_DOCUMENT) addToSet(ALLOWED_TAGS, [
3199 "html",
3200 "head",
3201 "body"
3202 ]);
3203 if (ALLOWED_TAGS.table) {
3204 addToSet(ALLOWED_TAGS, ["tbody"]);
3205 delete FORBID_TAGS.tbody;
3206 }
3207 if (cfg.TRUSTED_TYPES_POLICY) {
3208 if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== "function") throw typeErrorCreate("TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.");
3209 if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function") throw typeErrorCreate("TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.");
3210 trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
3211 emptyHTML = trustedTypesPolicy.createHTML("");
3212 } else {
3213 if (trustedTypesPolicy === void 0) trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
3214 if (trustedTypesPolicy !== null && typeof emptyHTML === "string") emptyHTML = trustedTypesPolicy.createHTML("");
3215 }
3216 if (freeze) freeze(cfg);
3217 CONFIG = cfg;
3218 };
3219 const ALL_SVG_TAGS = addToSet({}, [
3220 ...svg$1,
3221 ...svgFilters,
3222 ...svgDisallowed
3223 ]);
3224 const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
3225 /**
3226 * @param element a DOM element whose namespace is being checked
3227 * @returns Return false if the element has a
3228 * namespace that a spec-compliant parser would never
3229 * return. Return true otherwise.
3230 */
3231 const _checkValidNamespace = function _checkValidNamespace(element) {
3232 let parent = getParentNode(element);
3233 if (!parent || !parent.tagName) parent = {
3234 namespaceURI: NAMESPACE,
3235 tagName: "template"
3236 };
3237 const tagName = stringToLowerCase(element.tagName);
3238 const parentTagName = stringToLowerCase(parent.tagName);
3239 if (!ALLOWED_NAMESPACES[element.namespaceURI]) return false;
3240 if (element.namespaceURI === SVG_NAMESPACE) {
3241 if (parent.namespaceURI === HTML_NAMESPACE) return tagName === "svg";
3242 if (parent.namespaceURI === MATHML_NAMESPACE) return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
3243 return Boolean(ALL_SVG_TAGS[tagName]);
3244 }
3245 if (element.namespaceURI === MATHML_NAMESPACE) {
3246 if (parent.namespaceURI === HTML_NAMESPACE) return tagName === "math";
3247 if (parent.namespaceURI === SVG_NAMESPACE) return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
3248 return Boolean(ALL_MATHML_TAGS[tagName]);
3249 }
3250 if (element.namespaceURI === HTML_NAMESPACE) {
3251 if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) return false;
3252 if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) return false;
3253 return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
3254 }
3255 if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element.namespaceURI]) return true;
3256 return false;
3257 };
3258 /**
3259 * _forceRemove
3260 *
3261 * @param node a DOM node
3262 */
3263 const _forceRemove = function _forceRemove(node) {
3264 arrayPush(DOMPurify.removed, { element: node });
3265 try {
3266 getParentNode(node).removeChild(node);
3267 } catch (_) {
3268 remove(node);
3269 }
3270 };
3271 /**
3272 * _removeAttribute
3273 *
3274 * @param name an Attribute name
3275 * @param element a DOM node
3276 */
3277 const _removeAttribute = function _removeAttribute(name, element) {
3278 try {
3279 arrayPush(DOMPurify.removed, {
3280 attribute: element.getAttributeNode(name),
3281 from: element
3282 });
3283 } catch (_) {
3284 arrayPush(DOMPurify.removed, {
3285 attribute: null,
3286 from: element
3287 });
3288 }
3289 element.removeAttribute(name);
3290 if (name === "is") if (RETURN_DOM || RETURN_DOM_FRAGMENT) try {
3291 _forceRemove(element);
3292 } catch (_) {}
3293 else try {
3294 element.setAttribute(name, "");
3295 } catch (_) {}
3296 };
3297 /**
3298 * _initDocument
3299 *
3300 * @param dirty - a string of dirty markup
3301 * @return a DOM, filled with the dirty markup
3302 */
3303 const _initDocument = function _initDocument(dirty) {
3304 let doc = null;
3305 let leadingWhitespace = null;
3306 if (FORCE_BODY) dirty = "<remove></remove>" + dirty;
3307 else {
3308 const matches = stringMatch(dirty, /^[\r\n\t ]+/);
3309 leadingWhitespace = matches && matches[0];
3310 }
3311 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>";
3312 const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
3313 if (NAMESPACE === HTML_NAMESPACE) try {
3314 doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
3315 } catch (_) {}
3316 if (!doc || !doc.documentElement) {
3317 doc = implementation.createDocument(NAMESPACE, "template", null);
3318 try {
3319 doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
3320 } catch (_) {}
3321 }
3322 const body = doc.body || doc.documentElement;
3323 if (dirty && leadingWhitespace) body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);
3324 if (NAMESPACE === HTML_NAMESPACE) return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
3325 return WHOLE_DOCUMENT ? doc.documentElement : body;
3326 };
3327 /**
3328 * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.
3329 *
3330 * @param root The root element or node to start traversing on.
3331 * @return The created NodeIterator
3332 */
3333 const _createNodeIterator = function _createNodeIterator(root) {
3334 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);
3335 };
3336 /**
3337 * _isClobbered
3338 *
3339 * @param element element to check for clobbering attacks
3340 * @return true if clobbered, false if safe
3341 */
3342 const _isClobbered = function _isClobbered(element) {
3343 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");
3344 };
3345 /**
3346 * Checks whether the given object is a DOM node.
3347 *
3348 * @param value object to check whether it's a DOM node
3349 * @return true is object is a DOM node
3350 */
3351 const _isNode = function _isNode(value) {
3352 return typeof Node === "function" && value instanceof Node;
3353 };
3354 function _executeHooks(hooks, currentNode, data) {
3355 arrayForEach(hooks, (hook) => {
3356 hook.call(DOMPurify, currentNode, data, CONFIG);
3357 });
3358 }
3359 /**
3360 * _sanitizeElements
3361 *
3362 * @protect nodeName
3363 * @protect textContent
3364 * @protect removeChild
3365 * @param currentNode to check for permission to exist
3366 * @return true if node was killed, false if left alive
3367 */
3368 const _sanitizeElements = function _sanitizeElements(currentNode) {
3369 let content = null;
3370 _executeHooks(hooks.beforeSanitizeElements, currentNode, null);
3371 if (_isClobbered(currentNode)) {
3372 _forceRemove(currentNode);
3373 return true;
3374 }
3375 const tagName = transformCaseFunc(currentNode.nodeName);
3376 _executeHooks(hooks.uponSanitizeElement, currentNode, {
3377 tagName,
3378 allowedTags: ALLOWED_TAGS
3379 });
3380 if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\w!]/g, currentNode.textContent)) {
3381 _forceRemove(currentNode);
3382 return true;
3383 }
3384 if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {
3385 _forceRemove(currentNode);
3386 return true;
3387 }
3388 if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\w]/g, currentNode.data)) {
3389 _forceRemove(currentNode);
3390 return true;
3391 }
3392 if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {
3393 if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
3394 if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;
3395 if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;
3396 }
3397 if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
3398 const parentNode = getParentNode(currentNode) || currentNode.parentNode;
3399 const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
3400 if (childNodes && parentNode) {
3401 const childCount = childNodes.length;
3402 for (let i = childCount - 1; i >= 0; --i) {
3403 const childClone = cloneNode(childNodes[i], true);
3404 childClone.__removalCount = (currentNode.__removalCount || 0) + 1;
3405 parentNode.insertBefore(childClone, getNextSibling(currentNode));
3406 }
3407 }
3408 }
3409 _forceRemove(currentNode);
3410 return true;
3411 }
3412 if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
3413 _forceRemove(currentNode);
3414 return true;
3415 }
3416 if ((tagName === "noscript" || tagName === "noembed" || tagName === "noframes") && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
3417 _forceRemove(currentNode);
3418 return true;
3419 }
3420 if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
3421 content = currentNode.textContent;
3422 arrayForEach([
3423 MUSTACHE_EXPR,
3424 ERB_EXPR,
3425 TMPLIT_EXPR
3426 ], (expr) => {
3427 content = stringReplace(content, expr, " ");
3428 });
3429 if (currentNode.textContent !== content) {
3430 arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });
3431 currentNode.textContent = content;
3432 }
3433 }
3434 _executeHooks(hooks.afterSanitizeElements, currentNode, null);
3435 return false;
3436 };
3437 /**
3438 * _isValidAttribute
3439 *
3440 * @param lcTag Lowercase tag name of containing element.
3441 * @param lcName Lowercase attribute name.
3442 * @param value Attribute value.
3443 * @return Returns true if `value` is valid, otherwise false.
3444 */
3445 const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {
3446 if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document || value in formElement)) return false;
3447 if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName));
3448 else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName));
3449 else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag));
3450 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)));
3451 else return false;
3452 else if (URI_SAFE_ATTRIBUTES[lcName]);
3453 else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, "")));
3454 else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag]);
3455 else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, "")));
3456 else if (value) return false;
3457 return true;
3458 };
3459 /**
3460 * _isBasicCustomElement
3461 * checks if at least one dash is included in tagName, and it's not the first char
3462 * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name
3463 *
3464 * @param tagName name of the tag of the node to sanitize
3465 * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.
3466 */
3467 const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
3468 return tagName !== "annotation-xml" && stringMatch(tagName, CUSTOM_ELEMENT);
3469 };
3470 /**
3471 * _sanitizeAttributes
3472 *
3473 * @protect attributes
3474 * @protect nodeName
3475 * @protect removeAttribute
3476 * @protect setAttribute
3477 *
3478 * @param currentNode to sanitize
3479 */
3480 const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {
3481 _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
3482 const { attributes } = currentNode;
3483 if (!attributes || _isClobbered(currentNode)) return;
3484 const hookEvent = {
3485 attrName: "",
3486 attrValue: "",
3487 keepAttr: true,
3488 allowedAttributes: ALLOWED_ATTR,
3489 forceKeepAttr: void 0
3490 };
3491 let l = attributes.length;
3492 while (l--) {
3493 const { name, namespaceURI, value: attrValue } = attributes[l];
3494 const lcName = transformCaseFunc(name);
3495 const initValue = attrValue;
3496 let value = name === "value" ? initValue : stringTrim(initValue);
3497 hookEvent.attrName = lcName;
3498 hookEvent.attrValue = value;
3499 hookEvent.keepAttr = true;
3500 hookEvent.forceKeepAttr = void 0;
3501 _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);
3502 value = hookEvent.attrValue;
3503 if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
3504 _removeAttribute(name, currentNode);
3505 value = SANITIZE_NAMED_PROPS_PREFIX + value;
3506 }
3507 if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i, value)) {
3508 _removeAttribute(name, currentNode);
3509 continue;
3510 }
3511 if (lcName === "attributename" && stringMatch(value, "href")) {
3512 _removeAttribute(name, currentNode);
3513 continue;
3514 }
3515 if (hookEvent.forceKeepAttr) continue;
3516 if (!hookEvent.keepAttr) {
3517 _removeAttribute(name, currentNode);
3518 continue;
3519 }
3520 if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
3521 _removeAttribute(name, currentNode);
3522 continue;
3523 }
3524 if (SAFE_FOR_TEMPLATES) arrayForEach([
3525 MUSTACHE_EXPR,
3526 ERB_EXPR,
3527 TMPLIT_EXPR
3528 ], (expr) => {
3529 value = stringReplace(value, expr, " ");
3530 });
3531 const lcTag = transformCaseFunc(currentNode.nodeName);
3532 if (!_isValidAttribute(lcTag, lcName, value)) {
3533 _removeAttribute(name, currentNode);
3534 continue;
3535 }
3536 if (trustedTypesPolicy && typeof trustedTypes === "object" && typeof trustedTypes.getAttributeType === "function") if (namespaceURI);
3537 else switch (trustedTypes.getAttributeType(lcTag, lcName)) {
3538 case "TrustedHTML":
3539 value = trustedTypesPolicy.createHTML(value);
3540 break;
3541 case "TrustedScriptURL":
3542 value = trustedTypesPolicy.createScriptURL(value);
3543 break;
3544 }
3545 if (value !== initValue) try {
3546 if (namespaceURI) currentNode.setAttributeNS(namespaceURI, name, value);
3547 else currentNode.setAttribute(name, value);
3548 if (_isClobbered(currentNode)) _forceRemove(currentNode);
3549 else arrayPop(DOMPurify.removed);
3550 } catch (_) {
3551 _removeAttribute(name, currentNode);
3552 }
3553 }
3554 _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
3555 };
3556 /**
3557 * _sanitizeShadowDOM
3558 *
3559 * @param fragment to iterate over recursively
3560 */
3561 const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {
3562 let shadowNode = null;
3563 const shadowIterator = _createNodeIterator(fragment);
3564 _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);
3565 while (shadowNode = shadowIterator.nextNode()) {
3566 _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
3567 _sanitizeElements(shadowNode);
3568 _sanitizeAttributes(shadowNode);
3569 if (shadowNode.content instanceof DocumentFragment) _sanitizeShadowDOM(shadowNode.content);
3570 }
3571 _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
3572 };
3573 DOMPurify.sanitize = function(dirty) {
3574 let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
3575 let body = null;
3576 let importedNode = null;
3577 let currentNode = null;
3578 let returnNode = null;
3579 IS_EMPTY_INPUT = !dirty;
3580 if (IS_EMPTY_INPUT) dirty = "<!-->";
3581 if (typeof dirty !== "string" && !_isNode(dirty)) if (typeof dirty.toString === "function") {
3582 dirty = dirty.toString();
3583 if (typeof dirty !== "string") throw typeErrorCreate("dirty is not a string, aborting");
3584 } else throw typeErrorCreate("toString is not a function");
3585 if (!DOMPurify.isSupported) return dirty;
3586 if (!SET_CONFIG) _parseConfig(cfg);
3587 DOMPurify.removed = [];
3588 if (typeof dirty === "string") IN_PLACE = false;
3589 if (IN_PLACE) {
3590 if (dirty.nodeName) {
3591 const tagName = transformCaseFunc(dirty.nodeName);
3592 if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
3593 }
3594 } else if (dirty instanceof Node) {
3595 body = _initDocument("<!---->");
3596 importedNode = body.ownerDocument.importNode(dirty, true);
3597 if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === "BODY") body = importedNode;
3598 else if (importedNode.nodeName === "HTML") body = importedNode;
3599 else body.appendChild(importedNode);
3600 } else {
3601 if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf("<") === -1) return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
3602 body = _initDocument(dirty);
3603 if (!body) return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
3604 }
3605 if (body && FORCE_BODY) _forceRemove(body.firstChild);
3606 const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);
3607 while (currentNode = nodeIterator.nextNode()) {
3608 _sanitizeElements(currentNode);
3609 _sanitizeAttributes(currentNode);
3610 if (currentNode.content instanceof DocumentFragment) _sanitizeShadowDOM(currentNode.content);
3611 }
3612 if (IN_PLACE) return dirty;
3613 if (RETURN_DOM) {
3614 if (RETURN_DOM_FRAGMENT) {
3615 returnNode = createDocumentFragment.call(body.ownerDocument);
3616 while (body.firstChild) returnNode.appendChild(body.firstChild);
3617 } else returnNode = body;
3618 if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) returnNode = importNode.call(originalDocument, returnNode, true);
3619 return returnNode;
3620 }
3621 let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
3622 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;
3623 if (SAFE_FOR_TEMPLATES) arrayForEach([
3624 MUSTACHE_EXPR,
3625 ERB_EXPR,
3626 TMPLIT_EXPR
3627 ], (expr) => {
3628 serializedHTML = stringReplace(serializedHTML, expr, " ");
3629 });
3630 return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
3631 };
3632 DOMPurify.setConfig = function() {
3633 let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
3634 _parseConfig(cfg);
3635 SET_CONFIG = true;
3636 };
3637 DOMPurify.clearConfig = function() {
3638 CONFIG = null;
3639 SET_CONFIG = false;
3640 };
3641 DOMPurify.isValidAttribute = function(tag, attr, value) {
3642 if (!CONFIG) _parseConfig({});
3643 const lcTag = transformCaseFunc(tag);
3644 const lcName = transformCaseFunc(attr);
3645 return _isValidAttribute(lcTag, lcName, value);
3646 };
3647 DOMPurify.addHook = function(entryPoint, hookFunction) {
3648 if (typeof hookFunction !== "function") return;
3649 arrayPush(hooks[entryPoint], hookFunction);
3650 };
3651 DOMPurify.removeHook = function(entryPoint, hookFunction) {
3652 if (hookFunction !== void 0) {
3653 const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
3654 return index === -1 ? void 0 : arraySplice(hooks[entryPoint], index, 1)[0];
3655 }
3656 return arrayPop(hooks[entryPoint]);
3657 };
3658 DOMPurify.removeHooks = function(entryPoint) {
3659 hooks[entryPoint] = [];
3660 };
3661 DOMPurify.removeAllHooks = function() {
3662 hooks = _createHooksMap();
3663 };
3664 return DOMPurify;
3665 }
3666 var purify = createDOMPurify();
3667 module.exports = purify;
3668 }));
3669
3670 //#endregion
3671 //#region assets/dev/js/frontend/utils/lightbox/screenfull.js
3672 var require_screenfull = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3673 (function() {
3674 "use strict";
3675 var document = typeof window !== "undefined" && typeof window.document !== "undefined" ? window.document : {};
3676 var isCommonjs = typeof module !== "undefined" && module.exports;
3677 var fn = function() {
3678 var val;
3679 var fnMap = [
3680 [
3681 "requestFullscreen",
3682 "exitFullscreen",
3683 "fullscreenElement",
3684 "fullscreenEnabled",
3685 "fullscreenchange",
3686 "fullscreenerror"
3687 ],
3688 [
3689 "webkitRequestFullscreen",
3690 "webkitExitFullscreen",
3691 "webkitFullscreenElement",
3692 "webkitFullscreenEnabled",
3693 "webkitfullscreenchange",
3694 "webkitfullscreenerror"
3695 ],
3696 [
3697 "webkitRequestFullScreen",
3698 "webkitCancelFullScreen",
3699 "webkitCurrentFullScreenElement",
3700 "webkitCancelFullScreen",
3701 "webkitfullscreenchange",
3702 "webkitfullscreenerror"
3703 ],
3704 [
3705 "mozRequestFullScreen",
3706 "mozCancelFullScreen",
3707 "mozFullScreenElement",
3708 "mozFullScreenEnabled",
3709 "mozfullscreenchange",
3710 "mozfullscreenerror"
3711 ],
3712 [
3713 "msRequestFullscreen",
3714 "msExitFullscreen",
3715 "msFullscreenElement",
3716 "msFullscreenEnabled",
3717 "MSFullscreenChange",
3718 "MSFullscreenError"
3719 ]
3720 ];
3721 var i = 0;
3722 var l = fnMap.length;
3723 var ret = {};
3724 for (; i < l; i++) {
3725 val = fnMap[i];
3726 if (val && val[1] in document) {
3727 var valLength = val.length;
3728 for (i = 0; i < valLength; i++) ret[fnMap[0][i]] = val[i];
3729 return ret;
3730 }
3731 }
3732 return false;
3733 }();
3734 var eventNameMap = {
3735 change: fn.fullscreenchange,
3736 error: fn.fullscreenerror
3737 };
3738 var screenfull = {
3739 request(element) {
3740 return new Promise(function(resolve, reject) {
3741 var onFullScreenEntered = function() {
3742 this.off("change", onFullScreenEntered);
3743 resolve();
3744 }.bind(this);
3745 this.on("change", onFullScreenEntered);
3746 element = element || document.documentElement;
3747 Promise.resolve(element[fn.requestFullscreen]()).catch(reject);
3748 }.bind(this));
3749 },
3750 exit() {
3751 return new Promise(function(resolve, reject) {
3752 if (!this.isFullscreen) {
3753 resolve();
3754 return;
3755 }
3756 var onFullScreenExit = function() {
3757 this.off("change", onFullScreenExit);
3758 resolve();
3759 }.bind(this);
3760 this.on("change", onFullScreenExit);
3761 Promise.resolve(document[fn.exitFullscreen]()).catch(reject);
3762 }.bind(this));
3763 },
3764 toggle(element) {
3765 return this.isFullscreen ? this.exit() : this.request(element);
3766 },
3767 onchange(callback) {
3768 this.on("change", callback);
3769 },
3770 onerror(callback) {
3771 this.on("error", callback);
3772 },
3773 on(event, callback) {
3774 var eventName = eventNameMap[event];
3775 if (eventName) document.addEventListener(eventName, callback, false);
3776 },
3777 off(event, callback) {
3778 var eventName = eventNameMap[event];
3779 if (eventName) document.removeEventListener(eventName, callback, false);
3780 },
3781 raw: fn
3782 };
3783 if (!fn) {
3784 if (isCommonjs) module.exports = { isEnabled: false };
3785 else window.screenfull = { isEnabled: false };
3786 return;
3787 }
3788 Object.defineProperties(screenfull, {
3789 isFullscreen: { get() {
3790 return Boolean(document[fn.fullscreenElement]);
3791 } },
3792 element: {
3793 enumerable: true,
3794 get() {
3795 return document[fn.fullscreenElement];
3796 }
3797 },
3798 isEnabled: {
3799 enumerable: true,
3800 get() {
3801 return Boolean(document[fn.fullscreenEnabled]);
3802 }
3803 }
3804 });
3805 if (isCommonjs) module.exports = screenfull;
3806 else window.screenfull = screenfull;
3807 })();
3808 }));
3809
3810 //#endregion
3811 //#region node_modules/core-js/modules/es.iterator.map.js
3812 var require_es_iterator_map = /* @__PURE__ */ __commonJSMin((() => {
3813 var $ = require_export();
3814 var call = require_function_call();
3815 var aCallable = require_a_callable();
3816 var anObject = require_an_object();
3817 var getIteratorDirect = require_get_iterator_direct();
3818 var createIteratorProxy = require_iterator_create_proxy();
3819 var callWithSafeIterationClosing = require_call_with_safe_iteration_closing();
3820 var iteratorClose = require_iterator_close();
3821 var iteratorHelperThrowsOnInvalidIterator = require_iterator_helper_throws_on_invalid_iterator();
3822 var iteratorHelperWithoutClosingOnEarlyError = require_iterator_helper_without_closing_on_early_error();
3823 var IS_PURE = require_is_pure();
3824 var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator("map", function() {});
3825 var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR && iteratorHelperWithoutClosingOnEarlyError("map", TypeError);
3826 var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
3827 var IteratorProxy = createIteratorProxy(function() {
3828 var iterator = this.iterator;
3829 var result = anObject(call(this.next, iterator));
3830 if (!(this.done = !!result.done)) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
3831 });
3832 $({
3833 target: "Iterator",
3834 proto: true,
3835 real: true,
3836 forced: FORCED
3837 }, { map: function map(mapper) {
3838 anObject(this);
3839 try {
3840 aCallable(mapper);
3841 } catch (error) {
3842 iteratorClose(this, "throw", error);
3843 }
3844 if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);
3845 return new IteratorProxy(getIteratorDirect(this), { mapper });
3846 } });
3847 }));
3848
3849 //#endregion
3850 //#region node_modules/core-js/modules/esnext.iterator.map.js
3851 var require_esnext_iterator_map = /* @__PURE__ */ __commonJSMin((() => {
3852 require_es_iterator_map();
3853 }));
3854
3855 //#endregion
3856 //#region assets/dev/js/frontend/utils/icons/manager.js
3857 var require_manager = /* @__PURE__ */ __commonJSMin(((exports) => {
3858 init_defineProperty();
3859 Object.defineProperty(exports, "__esModule", { value: true });
3860 exports.default = void 0;
3861 require_es_array_includes();
3862 require_es_array_push();
3863 require_esnext_iterator_constructor();
3864 require_esnext_iterator_map();
3865 var IconsManager = class IconsManager {
3866 constructor(elementsPrefix) {
3867 this.prefix = `${elementsPrefix}-`;
3868 this.createSvgSymbolsContainer();
3869 }
3870 createSvgElement(name, { path, width, height }) {
3871 const iconName = this.prefix + name;
3872 const iconSelector = "#" + this.prefix + name;
3873 if (!IconsManager.iconsUsageList.includes(iconName)) {
3874 if (!IconsManager.symbolsContainer.querySelector(iconSelector)) {
3875 const symbol = this.createSymbolElement({
3876 id: iconName,
3877 path,
3878 width,
3879 height
3880 });
3881 IconsManager.symbolsContainer.appendChild(symbol);
3882 }
3883 IconsManager.iconsUsageList.push(iconName);
3884 }
3885 return this.createSvgIconElement({
3886 iconName,
3887 iconSelector
3888 });
3889 }
3890 createSvgNode(tag, { props = {}, attrs = {} }) {
3891 const node = document.createElementNS("http://www.w3.org/2000/svg", tag);
3892 Object.keys(props).map((key) => node[key] = props[key]);
3893 Object.keys(attrs).map((key) => node.setAttributeNS(null, key, attrs[key]));
3894 return node;
3895 }
3896 createSvgIconElement({ iconName, iconSelector }) {
3897 return this.createSvgNode("svg", {
3898 props: { innerHTML: "<use xlink:href=\"" + iconSelector + "\" />" },
3899 attrs: { class: "e-font-icon-svg e-" + iconName }
3900 });
3901 }
3902 createSvgSymbolsContainer() {
3903 if (!IconsManager.symbolsContainer) {
3904 const symbolsContainerId = "e-font-icon-svg-symbols";
3905 IconsManager.symbolsContainer = document.getElementById(symbolsContainerId);
3906 if (!IconsManager.symbolsContainer) {
3907 IconsManager.symbolsContainer = this.createSvgNode("svg", { attrs: {
3908 style: "display: none;",
3909 class: symbolsContainerId
3910 } });
3911 document.body.appendChild(IconsManager.symbolsContainer);
3912 }
3913 }
3914 }
3915 createSymbolElement({ id, path, width, height }) {
3916 return this.createSvgNode("symbol", {
3917 props: {
3918 innerHTML: "<path d=\"" + path + "\"></path>",
3919 id
3920 },
3921 attrs: { viewBox: "0 0 " + width + " " + height }
3922 });
3923 }
3924 };
3925 _defineProperty(IconsManager, "symbolsContainer", void 0);
3926 _defineProperty(IconsManager, "iconsUsageList", []);
3927 exports.default = IconsManager;
3928 }));
3929
3930 //#endregion
3931 //#region assets/dev/js/frontend/utils/icons/e-icons.js
3932 var require_e_icons = /* @__PURE__ */ __commonJSMin(((exports) => {
3933 var _interopRequireDefault = require_interopRequireDefault();
3934 Object.defineProperty(exports, "__esModule", { value: true });
3935 exports.zoomOutBold = exports.zoomInBold = exports.xTwitter = exports.twitter = exports.shareArrow = exports.pinterest = exports.loading = exports.frameMinimize = exports.frameExpand = exports.facebook = exports.downloadBold = exports.close = exports.chevronRight = exports.chevronLeft = void 0;
3936 var iconsManager = new (_interopRequireDefault(require_manager())).default("eicon");
3937 exports.chevronLeft = { get element() {
3938 return iconsManager.createSvgElement("chevron-left", {
3939 path: "M646 125C629 125 613 133 604 142L308 442C296 454 292 471 292 487 292 504 296 521 308 533L604 854C617 867 629 875 646 875 663 875 679 871 692 858 704 846 713 829 713 812 713 796 708 779 692 767L438 487 692 225C700 217 708 204 708 187 708 171 704 154 692 142 675 129 663 125 646 125Z",
3940 width: 1e3,
3941 height: 1e3
3942 });
3943 } };
3944 exports.chevronRight = { get element() {
3945 return iconsManager.createSvgElement("chevron-right", {
3946 path: "M696 533C708 521 713 504 713 487 713 471 708 454 696 446L400 146C388 133 375 125 354 125 338 125 325 129 313 142 300 154 292 171 292 187 292 204 296 221 308 233L563 492 304 771C292 783 288 800 288 817 288 833 296 850 308 863 321 871 338 875 354 875 371 875 388 867 400 854L696 533Z",
3947 width: 1e3,
3948 height: 1e3
3949 });
3950 } };
3951 exports.close = { get element() {
3952 return iconsManager.createSvgElement("close", {
3953 path: "M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z",
3954 width: 1e3,
3955 height: 1e3
3956 });
3957 } };
3958 exports.downloadBold = { get element() {
3959 return iconsManager.createSvgElement("download-bold", {
3960 path: "M572 42H428C405 42 385 61 385 85V385H228C197 385 180 424 203 447L475 719C489 732 511 732 524 719L797 447C819 424 803 385 771 385H614V85C615 61 595 42 572 42ZM958 915V715C958 691 939 672 915 672H653L565 760C529 796 471 796 435 760L347 672H85C61 672 42 691 42 715V915C42 939 61 958 85 958H915C939 958 958 939 958 915ZM736 873C736 853 720 837 700 837 681 837 665 853 665 873 665 892 681 908 700 908 720 908 736 892 736 873ZM815 837C835 837 851 853 851 873 851 892 835 908 815 908 795 908 779 892 779 873 779 853 795 837 815 837Z",
3961 width: 1e3,
3962 height: 1e3
3963 });
3964 } };
3965 exports.facebook = { get element() {
3966 return iconsManager.createSvgElement("facebook", {
3967 path: "M858 42H142C88 42 42 87 42 142V863C42 913 88 958 142 958H421V646H292V500H421V387C421 258 496 192 613 192 667 192 725 200 725 200V325H663C600 325 579 362 579 404V500H721L700 646H583V958H863C917 958 963 913 963 858V142C958 87 913 42 858 42L858 42Z",
3968 width: 1e3,
3969 height: 1e3
3970 });
3971 } };
3972 exports.frameExpand = { get element() {
3973 return iconsManager.createSvgElement("frame-expand", {
3974 path: "M863 583C890 583 914 605 916 632L917 637V863L916 868C914 893 893 914 868 916L863 917H638L632 916C607 914 586 893 584 868L583 863 584 857C586 832 607 811 632 809L638 808H808V637L809 632C811 605 835 583 863 583ZM138 583C165 583 189 605 191 632L192 637V808H363C390 808 414 830 416 857L417 863C417 890 395 914 368 916L363 917H138C110 917 86 895 84 868L83 863V637C83 607 108 583 138 583ZM863 83C890 83 914 105 916 132L917 137V362C917 392 893 417 863 417 835 417 811 395 809 368L808 362V192H638C610 192 586 170 584 143L583 137C583 110 605 86 632 84L638 83H863ZM363 83L368 84C393 86 414 107 416 132L417 137 416 143C414 168 393 189 368 191L363 192H192V362L191 368C189 395 165 417 138 417S86 395 84 368L83 362V137L84 132C86 107 107 86 132 84L138 83H363Z",
3975 width: 1e3,
3976 height: 1e3
3977 });
3978 } };
3979 exports.frameMinimize = { get element() {
3980 return iconsManager.createSvgElement("frame-minimize", {
3981 path: "M363 583C392 583 413 604 417 633L417 637V863C417 892 392 917 363 917 333 917 313 896 308 867L308 863V692H138C108 692 88 671 83 642L83 637C83 608 104 587 133 583L138 583H363ZM638 583C608 583 588 604 583 633L583 637V863C583 892 608 917 638 917 667 917 688 896 692 867L692 863V692H863C892 692 913 671 917 642L917 637C917 608 896 587 867 583L863 583H638ZM363 417C392 417 413 396 417 367L417 362V137C417 108 392 83 363 83 333 83 313 104 308 133L308 137V308H138C108 308 88 329 83 358L83 362C83 392 104 412 133 417L138 417H363ZM638 417C608 417 588 396 583 367L583 362V137C583 108 608 83 638 83 667 83 688 104 692 133L692 137V308H863C892 308 913 329 917 358L917 362C917 392 896 412 867 417L863 417H638Z",
3982 width: 1e3,
3983 height: 1e3
3984 });
3985 } };
3986 exports.loading = { get element() {
3987 return iconsManager.createSvgElement("loading", {
3988 path: "M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z",
3989 width: 1e3,
3990 height: 1e3
3991 });
3992 } };
3993 exports.pinterest = { get element() {
3994 return iconsManager.createSvgElement("pinterest", {
3995 path: "M950 496C950 746 746 950 496 950 450 950 404 942 363 929 379 900 408 850 421 808 425 787 450 700 450 700 467 729 508 754 554 754 692 754 792 629 792 471 792 321 671 208 513 208 317 208 213 342 213 483 213 550 250 633 304 658 313 662 317 662 321 654 321 650 329 617 333 604 333 600 333 596 329 592 313 567 296 525 296 487 288 387 367 292 496 292 608 292 688 367 688 475 688 600 625 683 546 683 500 683 467 646 479 600 492 546 517 487 517 450 517 417 500 387 458 387 413 387 375 433 375 496 375 537 388 562 388 562S342 754 333 787C325 825 329 883 333 917 163 854 42 687 42 496 42 246 246 42 496 42S950 246 950 496Z",
3996 width: 1e3,
3997 height: 1e3
3998 });
3999 } };
4000 exports.shareArrow = { get element() {
4001 return iconsManager.createSvgElement("share-arrow", {
4002 path: "M946 383L667 133C642 112 604 129 604 162V292C238 296 71 637 42 812 238 587 363 521 604 517V658C604 692 642 708 667 687L946 442C963 425 963 400 946 383Z",
4003 width: 1e3,
4004 height: 1e3
4005 });
4006 } };
4007 exports.twitter = { get element() {
4008 return iconsManager.createSvgElement("twitter", {
4009 path: "M863 312C863 321 863 329 863 337 863 587 675 871 329 871 221 871 125 842 42 787 58 787 71 792 88 792 175 792 254 762 321 712 238 712 171 658 146 583 158 583 171 587 183 587 200 587 217 583 233 579 146 562 83 487 83 396V387C108 400 138 408 167 412 117 379 83 321 83 254 83 221 92 187 108 158 200 271 342 346 496 354 492 342 492 325 492 312 492 208 575 125 679 125 733 125 783 146 817 183 858 175 900 158 938 137 925 179 896 217 854 242 892 237 929 229 963 212 933 250 900 283 863 312Z",
4010 width: 1e3,
4011 height: 1e3
4012 });
4013 } };
4014 exports.xTwitter = { get element() {
4015 return iconsManager.createSvgElement("x-twitter", {
4016 path: "M760.16 93.75h137.89L596.88 437.89 951.17 906.25H673.83L456.45 622.27 208.01 906.25H69.92L391.99 538.09 52.34 93.75H336.72L533.01 353.32 760.16 93.75zM711.72 823.83h76.37L295.12 171.88h-82.03L711.72 823.83z",
4017 width: 1e3,
4018 height: 1e3
4019 });
4020 } };
4021 exports.zoomInBold = { get element() {
4022 return iconsManager.createSvgElement("zoom-in-bold", {
4023 path: "M388 383V312C388 283 413 258 442 258 471 258 496 283 496 312V383H567C596 383 621 408 621 437S596 492 567 492H496V562C496 592 471 617 442 617 413 617 388 592 388 562V492H317C288 492 263 467 263 437S288 383 317 383H388ZM654 733C592 779 517 804 438 804 233 804 71 642 71 437S233 71 438 71 804 233 804 437C804 521 779 596 733 654L896 817C917 837 917 871 896 892 875 913 842 913 821 892L654 733ZM438 696C579 696 696 579 696 437S579 179 438 179 179 296 179 437 296 696 438 696Z",
4024 width: 1e3,
4025 height: 1e3
4026 });
4027 } };
4028 exports.zoomOutBold = { get element() {
4029 return iconsManager.createSvgElement("zoom-out-bold", {
4030 path: "M750 683L946 879C963 896 963 929 946 946 929 963 896 967 879 946L683 750C617 804 533 833 438 833 221 833 42 654 42 437S221 42 438 42 833 221 833 437C833 529 800 612 750 683ZM296 392H575C600 392 621 412 621 442 621 467 600 487 575 487H296C271 487 250 467 250 442 250 412 271 392 296 392ZM438 737C604 737 738 604 738 437S604 137 438 137 138 271 138 437 271 737 438 737Z",
4031 width: 1e3,
4032 height: 1e3
4033 });
4034 } };
4035 }));
4036
4037 //#endregion
4038 //#region assets/dev/js/frontend/utils/lightbox/lightbox.js
4039 var require_lightbox = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4040 init_objectSpread2();
4041 init_asyncToGenerator();
4042 var _interopRequireDefault = require_interopRequireDefault();
4043 require_es_array_includes();
4044 require_es_array_push();
4045 require_esnext_iterator_constructor();
4046 require_esnext_iterator_filter();
4047 require_esnext_iterator_find();
4048 require_esnext_iterator_for_each();
4049 var _dompurify = _interopRequireDefault(require_purify_cjs());
4050 var _screenfull = _interopRequireDefault(require_screenfull());
4051 var _eIcons = require_e_icons();
4052 module.exports = elementorModules.ViewModule.extend({
4053 oldAnimation: null,
4054 swiper: null,
4055 player: null,
4056 isFontIconSvgExperiment: elementorFrontend.config.experimentalFeatures.e_font_icon_svg,
4057 getDefaultSettings() {
4058 return {
4059 classes: {
4060 item: "elementor-lightbox-item",
4061 image: "elementor-lightbox-image",
4062 videoContainer: "elementor-video-container",
4063 videoWrapper: "elementor-video-wrapper",
4064 playButton: "elementor-custom-embed-play",
4065 playButtonIcon: "fa",
4066 playing: "elementor-playing",
4067 hidden: "elementor-hidden",
4068 invisible: "elementor-invisible",
4069 preventClose: "elementor-lightbox-prevent-close",
4070 slideshow: {
4071 container: "swiper",
4072 slidesWrapper: "swiper-wrapper",
4073 prevButton: "elementor-swiper-button elementor-swiper-button-prev",
4074 nextButton: "elementor-swiper-button elementor-swiper-button-next",
4075 prevButtonIcon: "eicon-chevron-left",
4076 nextButtonIcon: "eicon-chevron-right",
4077 slide: "swiper-slide",
4078 header: "elementor-slideshow__header",
4079 footer: "elementor-slideshow__footer",
4080 title: "elementor-slideshow__title",
4081 description: "elementor-slideshow__description",
4082 counter: "elementor-slideshow__counter",
4083 iconExpand: "eicon-frame-expand",
4084 iconShrink: "eicon-frame-minimize",
4085 iconZoomIn: "eicon-zoom-in-bold",
4086 iconZoomOut: "eicon-zoom-out-bold",
4087 iconShare: "eicon-share-arrow",
4088 shareMenu: "elementor-slideshow__share-menu",
4089 shareLinks: "elementor-slideshow__share-links",
4090 hideUiVisibility: "elementor-slideshow--ui-hidden",
4091 shareMode: "elementor-slideshow--share-mode",
4092 fullscreenMode: "elementor-slideshow--fullscreen-mode",
4093 zoomMode: "elementor-slideshow--zoom-mode"
4094 }
4095 },
4096 selectors: {
4097 image: ".elementor-lightbox-image",
4098 links: "a, [data-elementor-lightbox]",
4099 slideshow: {
4100 activeSlide: ".swiper-slide-active",
4101 prevSlide: ".swiper-slide-prev",
4102 nextSlide: ".swiper-slide-next"
4103 }
4104 },
4105 modalOptions: {
4106 id: "elementor-lightbox",
4107 entranceAnimation: "zoomIn",
4108 videoAspectRatio: 169,
4109 position: { enable: false }
4110 }
4111 };
4112 },
4113 getModal() {
4114 if (!module.exports.modal) this.initModal();
4115 return module.exports.modal;
4116 },
4117 initModal() {
4118 const closeIcon = {};
4119 if (this.isFontIconSvgExperiment) closeIcon.iconElement = _eIcons.close.element;
4120 else closeIcon.iconClass = "eicon-close";
4121 const modal = module.exports.modal = elementorFrontend.getDialogsManager().createWidget("lightbox", {
4122 className: "elementor-lightbox",
4123 closeButton: true,
4124 closeButtonOptions: _objectSpread2(_objectSpread2({}, closeIcon), {}, { attributes: {
4125 role: "button",
4126 tabindex: 0,
4127 "aria-label": elementorFrontend.config.i18n.close + " (Esc)"
4128 } }),
4129 selectors: { preventClose: "." + this.getSettings("classes.preventClose") },
4130 hide: { onClick: true }
4131 });
4132 modal.on("hide", function() {
4133 modal.setMessage("");
4134 });
4135 },
4136 showModal(options) {
4137 if (options.url && !options.url.startsWith("http")) return;
4138 this.elements.$closeButton = this.getModal().getElements("closeButton");
4139 this.$buttons = this.elements.$closeButton;
4140 this.focusedButton = null;
4141 const self = this;
4142 const defaultOptions = self.getDefaultSettings().modalOptions;
4143 self.id = options.id;
4144 self.setSettings("modalOptions", jQuery.extend(defaultOptions, options.modalOptions));
4145 const modal = self.getModal();
4146 modal.setID(self.getSettings("modalOptions.id"));
4147 modal.onShow = function() {
4148 DialogsManager.getWidgetType("lightbox").prototype.onShow.apply(modal, arguments);
4149 self.setEntranceAnimation();
4150 };
4151 modal.onHide = function() {
4152 DialogsManager.getWidgetType("lightbox").prototype.onHide.apply(modal, arguments);
4153 modal.getElements("message").removeClass("animated");
4154 if (_screenfull.default.isFullscreen) self.deactivateFullscreen();
4155 self.unbindHotKeys();
4156 };
4157 switch (options.type) {
4158 case "video":
4159 self.setVideoContent(options);
4160 break;
4161 case "image":
4162 options.slideshow = {
4163 slides: [{
4164 image: options.url,
4165 index: 0,
4166 title: options.title,
4167 description: options.description,
4168 hash: options.hash
4169 }],
4170 swiper: {
4171 loop: false,
4172 pagination: false
4173 }
4174 };
4175 self.setSlideshowContent(options.slideshow);
4176 break;
4177 case "slideshow":
4178 self.setSlideshowContent(options.slideshow);
4179 break;
4180 default: self.setHTMLContent(options.html);
4181 }
4182 modal.show();
4183 },
4184 createLightbox(element) {
4185 let lightboxData = {};
4186 if (element.dataset.elementorLightbox) lightboxData = JSON.parse(element.dataset.elementorLightbox);
4187 if (lightboxData.type && "slideshow" !== lightboxData.type) {
4188 this.showModal(lightboxData);
4189 return;
4190 }
4191 if (!element.dataset.elementorLightboxSlideshow) {
4192 this.showModal({
4193 type: "image",
4194 id: "single-img",
4195 url: element.href,
4196 hash: element.getAttribute("data-e-action-hash"),
4197 title: element.dataset.elementorLightboxTitle,
4198 description: element.dataset.elementorLightboxDescription,
4199 modalOptions: { id: "elementor-lightbox-slideshow-single-img" }
4200 });
4201 return;
4202 }
4203 const initialSlideURL = element.dataset.elementorLightboxVideo || element.href;
4204 this.openSlideshow(element.dataset.elementorLightboxSlideshow, initialSlideURL);
4205 },
4206 setHTMLContent(html) {
4207 if (window.elementorCommon) elementorDevTools.deprecation.deprecated("elementorFrontend.utils.lightbox.setHTMLContent()", "3.1.4");
4208 this.getModal().setMessage(_dompurify.default.sanitize(html));
4209 },
4210 setVideoContent(options) {
4211 const $ = jQuery;
4212 let $videoElement;
4213 if ([
4214 "hosted",
4215 "videopress",
4216 "dailymotion"
4217 ].includes(options.videoType)) {
4218 const videoParams = $.extend({
4219 src: options.url,
4220 autoplay: ""
4221 }, options.videoParams);
4222 Object.keys(videoParams).forEach((key) => {
4223 if (key.toLowerCase().startsWith("on")) delete videoParams[key];
4224 });
4225 $videoElement = $("<video>", videoParams);
4226 } else {
4227 let apiProvider;
4228 if (-1 !== options.url.indexOf("vimeo.com")) apiProvider = elementorFrontend.utils.vimeo;
4229 else if (options.url.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com|youtube-nocookie\.com)/)) apiProvider = elementorFrontend.utils.youtube;
4230 else return;
4231 $videoElement = $("<iframe>", { allowfullscreen: 1 });
4232 if ("yes" === options.autoplay) {
4233 $videoElement.attr("allow", "autoplay");
4234 $videoElement.attr("src", apiProvider.getAutoplayURL(options.url));
4235 } else $videoElement.attr("src", options.url);
4236 }
4237 const classes = this.getSettings("classes");
4238 const aspectRatio = this.getRatioDictionry(this.getSettings("modalOptions.videoAspectRatio"));
4239 const $videoContainer = $("<div>", { class: `${classes.videoContainer} ${classes.preventClose}` });
4240 const $videoWrapper = $("<div>", {
4241 class: `${classes.videoWrapper} elementor-video-${this.getRatioType(aspectRatio)}`,
4242 style: "--video-aspect-ratio: " + aspectRatio
4243 });
4244 $videoWrapper.append($videoElement);
4245 $videoContainer.append($videoWrapper);
4246 const modal = this.getModal();
4247 modal.setMessage($videoContainer);
4248 const onHideMethod = modal.onHide;
4249 modal.onHide = function() {
4250 onHideMethod();
4251 this.$buttons = jQuery();
4252 this.focusedButton = null;
4253 modal.getElements("message").removeClass("elementor-video-wrapper");
4254 };
4255 },
4256 getRatioDictionry(ratio) {
4257 return {
4258 219: 2.33333,
4259 169: 1.77777,
4260 43: 1.33333,
4261 32: 1.5,
4262 11: 1,
4263 916: .5625
4264 }[ratio] || ratio;
4265 },
4266 getRatioType(ratio) {
4267 let type = "";
4268 if (1 === ratio) type = "square";
4269 else type = ratio < 1 ? "portrait" : "landscape";
4270 return type;
4271 },
4272 getShareLinks() {
4273 const { i18n } = elementorFrontend.config, socialNetworks = {
4274 facebook: {
4275 label: i18n.shareOnFacebook,
4276 iconElement: _eIcons.facebook
4277 },
4278 "x-twitter": {
4279 label: i18n.shareOnX,
4280 iconElement: _eIcons.xTwitter
4281 },
4282 pinterest: {
4283 label: i18n.pinIt,
4284 iconElement: _eIcons.pinterest
4285 }
4286 }, $ = jQuery, classes = this.getSettings("classes"), selectors = this.getSettings("selectors"), $linkList = $("<div>", { class: classes.slideshow.shareLinks }), $activeSlide = this.getSlide("active"), $image = $activeSlide.find(selectors.image), videoUrl = $activeSlide.data("elementor-slideshow-video");
4287 let itemUrl;
4288 if (videoUrl) itemUrl = videoUrl;
4289 else itemUrl = $image.attr("src");
4290 $.each(socialNetworks, (key, data) => {
4291 const networkLabel = data.label;
4292 const $link = $("<a>", {
4293 href: this.createShareLink(key, itemUrl, $activeSlide.attr("data-e-action-hash")),
4294 target: "_blank"
4295 }).text(networkLabel);
4296 const $socialNetworkIconElement = this.isFontIconSvgExperiment ? $(data.iconElement.element) : $("<i>", {
4297 class: "eicon-" + key,
4298 "aria-hidden": "true"
4299 });
4300 $link.prepend($socialNetworkIconElement);
4301 $linkList.append($link);
4302 });
4303 if (!videoUrl) {
4304 const $downloadIcon = this.isFontIconSvgExperiment ? $(_eIcons.downloadBold.element) : $("<i>", { class: "eicon-download-bold" });
4305 $downloadIcon.attr("aria-label", i18n.download);
4306 $linkList.append($("<a>", {
4307 href: itemUrl,
4308 download: ""
4309 }).text(i18n.downloadImage).prepend($downloadIcon));
4310 }
4311 return $linkList;
4312 },
4313 createShareLink(networkName, itemUrl, hash = null) {
4314 const options = {};
4315 if ("pinterest" === networkName) options.image = encodeURIComponent(itemUrl);
4316 else options.url = encodeURIComponent(location.href.replace(/#.*/, "") + hash);
4317 return ShareLink.getNetworkLink(networkName, options);
4318 },
4319 getSlideshowHeader() {
4320 const { i18n } = elementorFrontend.config, $ = jQuery, showCounter = "yes" === elementorFrontend.getKitSettings("lightbox_enable_counter"), showFullscreen = "yes" === elementorFrontend.getKitSettings("lightbox_enable_fullscreen"), showZoom = "yes" === elementorFrontend.getKitSettings("lightbox_enable_zoom"), showShare = "yes" === elementorFrontend.getKitSettings("lightbox_enable_share"), classes = this.getSettings("classes"), slideshowClasses = classes.slideshow, elements = this.elements;
4321 if (!(showCounter || showFullscreen || showZoom || showShare)) return;
4322 elements.$header = $("<header>", { class: slideshowClasses.header + " " + classes.preventClose });
4323 if (showShare) {
4324 elements.$iconShare = $(this.isFontIconSvgExperiment ? _eIcons.shareArrow.element : "<i>", {
4325 class: slideshowClasses.iconShare,
4326 role: "button",
4327 tabindex: 0,
4328 "aria-label": i18n.share,
4329 "aria-expanded": false
4330 }).append($("<span>"));
4331 const $shareLinks = $("<div>");
4332 $shareLinks.on("click", (e) => {
4333 e.stopPropagation();
4334 });
4335 elements.$shareMenu = $("<div>", { class: slideshowClasses.shareMenu }).append($shareLinks);
4336 elements.$iconShare.add(elements.$shareMenu).on("click", this.toggleShareMenu);
4337 elements.$header.append(elements.$iconShare, elements.$shareMenu);
4338 this.$buttons = this.$buttons.add(elements.$iconShare);
4339 }
4340 if (showZoom) {
4341 const iconElement = this.isFontIconSvgExperiment ? _eIcons.zoomInBold.element : "<i>";
4342 const showZoomElements = [];
4343 const showZoomAttrs = {
4344 role: "switch",
4345 tabindex: 0,
4346 "aria-checked": false,
4347 "aria-label": i18n.zoom
4348 };
4349 const zoomAttrs = _objectSpread2({}, showZoomAttrs);
4350 if (!this.isFontIconSvgExperiment) zoomAttrs.class = slideshowClasses.iconZoomIn;
4351 elements.$iconZoom = $(iconElement).attr(zoomAttrs).on("click", this.toggleZoomMode);
4352 showZoomElements.push(elements.$iconZoom);
4353 if (this.isFontIconSvgExperiment) {
4354 elements.$iconZoomOut = $(_eIcons.zoomOutBold.element).attr(showZoomAttrs).addClass(classes.hidden).on("click", this.toggleZoomMode);
4355 showZoomElements.push(elements.$iconZoomOut);
4356 }
4357 elements.$header.append(showZoomElements);
4358 this.$buttons = this.$buttons.add(showZoomElements);
4359 }
4360 if (showFullscreen) {
4361 const iconElement = this.isFontIconSvgExperiment ? _eIcons.frameExpand.element : "<i>";
4362 const fullScreenElements = [];
4363 const fullScreenAttrs = {
4364 role: "switch",
4365 tabindex: 0,
4366 "aria-checked": false,
4367 "aria-label": i18n.fullscreen
4368 };
4369 const expandAttrs = _objectSpread2({}, fullScreenAttrs);
4370 if (!this.isFontIconSvgExperiment) expandAttrs.class = slideshowClasses.iconExpand;
4371 elements.$iconExpand = $(iconElement).append($("<span>"), $("<span>")).attr(expandAttrs).on("click", this.toggleFullscreen);
4372 fullScreenElements.push(elements.$iconExpand);
4373 if (this.isFontIconSvgExperiment) {
4374 elements.$iconMinimize = $(_eIcons.frameMinimize.element).attr(fullScreenAttrs).addClass(classes.hidden).on("click", this.toggleFullscreen);
4375 fullScreenElements.push(elements.$iconMinimize);
4376 }
4377 elements.$header.append(fullScreenElements);
4378 this.$buttons = this.$buttons.add(fullScreenElements);
4379 }
4380 if (showCounter) {
4381 elements.$counter = $("<span>", { class: slideshowClasses.counter });
4382 elements.$header.append(elements.$counter);
4383 }
4384 return elements.$header;
4385 },
4386 toggleFullscreen() {
4387 if (_screenfull.default.isFullscreen) this.deactivateFullscreen();
4388 else if (_screenfull.default.isEnabled) this.activateFullscreen();
4389 },
4390 toggleZoomMode() {
4391 if (1 !== this.swiper.zoom.scale) this.deactivateZoom();
4392 else this.activateZoom();
4393 },
4394 toggleShareMenu() {
4395 if (this.shareMode) this.deactivateShareMode();
4396 else {
4397 this.elements.$shareMenu.html(this.getShareLinks());
4398 this.activateShareMode();
4399 }
4400 },
4401 activateShareMode() {
4402 const classes = this.getSettings("classes");
4403 this.elements.$container.addClass(classes.slideshow.shareMode);
4404 this.elements.$iconShare.attr("aria-expanded", true);
4405 this.swiper.detachEvents();
4406 this.$originalButtons = this.$buttons;
4407 this.$buttons = this.elements.$iconShare.add(this.elements.$shareMenu.find("a"));
4408 this.shareMode = true;
4409 },
4410 deactivateShareMode() {
4411 const classes = this.getSettings("classes");
4412 this.elements.$container.removeClass(classes.slideshow.shareMode);
4413 this.elements.$iconShare.attr("aria-expanded", false);
4414 this.swiper.attachEvents();
4415 this.$buttons = this.$originalButtons;
4416 this.shareMode = false;
4417 },
4418 activateFullscreen() {
4419 const classes = this.getSettings("classes");
4420 _screenfull.default.request(this.elements.$container.parents(".dialog-widget")[0]);
4421 if (this.isFontIconSvgExperiment) {
4422 this.elements.$iconExpand.addClass(classes.hidden).attr("aria-checked", "false");
4423 this.elements.$iconMinimize.removeClass(classes.hidden).attr("aria-checked", "true");
4424 } else this.elements.$iconExpand.removeClass(classes.slideshow.iconExpand).addClass(classes.slideshow.iconShrink).attr("aria-checked", "true");
4425 this.elements.$container.addClass(classes.slideshow.fullscreenMode);
4426 },
4427 deactivateFullscreen() {
4428 const classes = this.getSettings("classes");
4429 _screenfull.default.exit();
4430 if (this.isFontIconSvgExperiment) {
4431 this.elements.$iconExpand.removeClass(classes.hidden).attr("aria-checked", "true");
4432 this.elements.$iconMinimize.addClass(classes.hidden).attr("aria-checked", "false");
4433 } else this.elements.$iconExpand.removeClass(classes.slideshow.iconShrink).addClass(classes.slideshow.iconExpand).attr("aria-checked", "false");
4434 this.elements.$container.removeClass(classes.slideshow.fullscreenMode);
4435 },
4436 activateZoom() {
4437 const swiper = this.swiper;
4438 const elements = this.elements;
4439 const classes = this.getSettings("classes");
4440 swiper.zoom.in();
4441 swiper.allowSlideNext = false;
4442 swiper.allowSlidePrev = false;
4443 swiper.allowTouchMove = false;
4444 elements.$container.addClass(classes.slideshow.zoomMode);
4445 if (this.isFontIconSvgExperiment) {
4446 elements.$iconZoom.addClass(classes.hidden).attr("aria-checked", "false");
4447 elements.$iconZoomOut.removeClass(classes.hidden).attr("aria-checked", "true");
4448 } else elements.$iconZoom.removeClass(classes.slideshow.iconZoomIn).addClass(classes.slideshow.iconZoomOut);
4449 },
4450 deactivateZoom() {
4451 const swiper = this.swiper;
4452 const elements = this.elements;
4453 const classes = this.getSettings("classes");
4454 swiper.zoom.out();
4455 swiper.allowSlideNext = true;
4456 swiper.allowSlidePrev = true;
4457 swiper.allowTouchMove = true;
4458 elements.$container.removeClass(classes.slideshow.zoomMode);
4459 if (this.isFontIconSvgExperiment) {
4460 elements.$iconZoom.removeClass(classes.hidden).attr("aria-checked", "true");
4461 elements.$iconZoomOut.addClass(classes.hidden).attr("aria-checked", "false");
4462 } else elements.$iconZoom.removeClass(classes.slideshow.iconZoomOut).addClass(classes.slideshow.iconZoomIn);
4463 },
4464 getSlideshowFooter() {
4465 const $ = jQuery;
4466 const classes = this.getSettings("classes");
4467 const $footer = $("<footer>", { class: classes.slideshow.footer + " " + classes.preventClose });
4468 const $title = $("<div>", { class: classes.slideshow.title });
4469 const $description = $("<div>", { class: classes.slideshow.description });
4470 $footer.append($title, $description);
4471 return $footer;
4472 },
4473 isValidUrl(url) {
4474 if (!url) return false;
4475 const dangerous = [
4476 "javascript:",
4477 "data:",
4478 "vbscript:",
4479 "file:"
4480 ];
4481 const urlLower = url.toLowerCase().trim();
4482 return !dangerous.some((protocol) => urlLower.startsWith(protocol));
4483 },
4484 setSlideshowContent(options) {
4485 var _this = this;
4486 const { i18n } = elementorFrontend.config, $ = jQuery, isSingleSlide = 1 === options.slides.length, hasTitle = "" !== elementorFrontend.getKitSettings("lightbox_title_src"), hasDescription = "" !== elementorFrontend.getKitSettings("lightbox_description_src"), showFooter = hasTitle || hasDescription, classes = this.getSettings("classes"), slideshowClasses = classes.slideshow, $container = $("<div>", { class: slideshowClasses.container }), $slidesWrapper = $("<div>", { class: slideshowClasses.slidesWrapper });
4487 let $prevButton;
4488 let $nextButton;
4489 options.slides.forEach((slide) => {
4490 const isVideo = !!slide.video;
4491 if (!(isVideo ? this.isValidUrl(slide.video) : this.isValidUrl(slide.image))) return;
4492 let slideClass = slideshowClasses.slide + " " + classes.item;
4493 if (isVideo) slideClass += " " + classes.video;
4494 const $slide = $("<div>", { class: slideClass });
4495 if (isVideo) {
4496 $slide.attr("data-elementor-slideshow-video", slide.video);
4497 const playVideoLoadingElement = this.isFontIconSvgExperiment ? _eIcons.loading.element : "<i>";
4498 const $playIcon = $("<div>", { class: classes.playButton }).html($(playVideoLoadingElement).attr("aria-label", i18n.playVideo).addClass(classes.playButtonIcon));
4499 $slide.append($playIcon);
4500 } else {
4501 const $zoomContainer = $("<div>", { class: "swiper-zoom-container" });
4502 const $slidePlaceholder = $("<div class=\"swiper-lazy-preloader\"></div>");
4503 const imageAttributes = {
4504 "data-src": slide.image,
4505 class: classes.image + " " + classes.preventClose + " swiper-lazy"
4506 };
4507 if (slide.title) {
4508 imageAttributes["data-title"] = slide.title;
4509 imageAttributes.alt = slide.title;
4510 }
4511 if (slide.description) {
4512 imageAttributes["data-description"] = slide.description;
4513 imageAttributes.alt += " - " + slide.description;
4514 }
4515 const $slideImage = $("<img>", imageAttributes);
4516 $zoomContainer.append([$slideImage, $slidePlaceholder]);
4517 $slide.append($zoomContainer);
4518 }
4519 if (slide.hash) $slide.attr("data-e-action-hash", slide.hash);
4520 $slidesWrapper.append($slide);
4521 });
4522 this.elements.$container = $container;
4523 this.elements.$header = this.getSlideshowHeader();
4524 $container.prepend(this.elements.$header).append($slidesWrapper);
4525 if (!isSingleSlide) {
4526 const $prevButtonIcon = this.isFontIconSvgExperiment ? $(_eIcons.chevronLeft.element) : $("<i>", {
4527 class: slideshowClasses.prevButtonIcon,
4528 "aria-hidden": "true"
4529 });
4530 const $nextButtonIcon = this.isFontIconSvgExperiment ? $(_eIcons.chevronRight.element) : $("<i>", {
4531 class: slideshowClasses.nextButtonIcon,
4532 "aria-hidden": "true"
4533 });
4534 const $prevButtonLabel = $("<span>", { class: "screen-reader-text" }).html(i18n.previous);
4535 const $nextButtonLabel = $("<span>", { class: "screen-reader-text" }).html(i18n.next);
4536 $prevButton = $("<div>", { class: slideshowClasses.prevButton + " " + classes.preventClose }).append($prevButtonIcon, $prevButtonLabel);
4537 $nextButton = $("<div>", { class: slideshowClasses.nextButton + " " + classes.preventClose }).append($nextButtonIcon, $nextButtonLabel);
4538 $container.append($nextButton, $prevButton);
4539 this.$buttons = this.$buttons.add($nextButton).add($prevButton);
4540 }
4541 if (showFooter) {
4542 this.elements.$footer = this.getSlideshowFooter();
4543 $container.append(this.elements.$footer);
4544 }
4545 this.setSettings("hideUiTimeout", "");
4546 $container.on("click mousemove keypress", this.showLightboxUi);
4547 const modal = this.getModal();
4548 modal.setMessage($container);
4549 const onShowMethod = modal.onShow;
4550 modal.onShow = _asyncToGenerator(function* () {
4551 onShowMethod();
4552 const swiperOptions = {
4553 pagination: {
4554 el: "." + slideshowClasses.counter,
4555 type: "fraction"
4556 },
4557 on: { slideChangeTransitionEnd: _this.onSlideChange },
4558 lazy: { loadPrevNext: true },
4559 zoom: true,
4560 spaceBetween: 100,
4561 grabCursor: true,
4562 runCallbacksOnInit: false,
4563 loop: true,
4564 keyboard: true,
4565 handleElementorBreakpoints: true
4566 };
4567 if (!isSingleSlide) swiperOptions.navigation = {
4568 prevEl: $prevButton[0],
4569 nextEl: $nextButton[0]
4570 };
4571 if (options.swiper) $.extend(swiperOptions, options.swiper);
4572 const Swiper = elementorFrontend.utils.swiper;
4573 _this.swiper = yield new Swiper($container, swiperOptions);
4574 $container.data("swiper", _this.swiper);
4575 _this.playSlideVideo();
4576 if (showFooter) _this.updateFooterText();
4577 _this.bindHotKeys();
4578 _this.makeButtonsAccessible();
4579 });
4580 },
4581 makeButtonsAccessible() {
4582 this.$buttons.attr("tabindex", 0).on("keypress", (event) => {
4583 if (13 === event.which || 32 === event.which) jQuery(event.currentTarget).trigger("click");
4584 });
4585 },
4586 showLightboxUi() {
4587 const slideshowClasses = this.getSettings("classes").slideshow;
4588 this.elements.$container.removeClass(slideshowClasses.hideUiVisibility);
4589 clearTimeout(this.getSettings("hideUiTimeout"));
4590 this.setSettings("hideUiTimeout", setTimeout(() => {
4591 if (!this.shareMode) this.elements.$container.addClass(slideshowClasses.hideUiVisibility);
4592 }, 3500));
4593 },
4594 bindHotKeys() {
4595 this.getModal().getElements("window").on("keydown", this.activeKeyDown);
4596 },
4597 unbindHotKeys() {
4598 this.getModal().getElements("window").off("keydown", this.activeKeyDown);
4599 },
4600 activeKeyDown(event) {
4601 this.showLightboxUi();
4602 if (event.which === 9) {
4603 const $buttons = this.$buttons;
4604 let focusedButton;
4605 let isFirst = false;
4606 let isLast = false;
4607 $buttons.each((index) => {
4608 const item = $buttons[index];
4609 if (jQuery(item).is(":focus")) {
4610 focusedButton = item;
4611 isFirst = 0 === index;
4612 isLast = $buttons.length - 1 === index;
4613 return false;
4614 }
4615 });
4616 if (event.shiftKey) {
4617 if (isFirst) {
4618 event.preventDefault();
4619 $buttons.last().trigger("focus");
4620 }
4621 } else if (isLast || !focusedButton) {
4622 event.preventDefault();
4623 $buttons.first().trigger("focus");
4624 }
4625 }
4626 },
4627 getSlide(slideState) {
4628 return jQuery(this.swiper.slides).filter(this.getSettings("selectors.slideshow." + slideState + "Slide"));
4629 },
4630 updateFooterText() {
4631 if (!this.elements.$footer) return;
4632 const classes = this.getSettings("classes");
4633 const $image = this.getSlide("active").find(".elementor-lightbox-image");
4634 const titleText = $image.data("title");
4635 const descriptionText = $image.data("description");
4636 const $title = this.elements.$footer.find("." + classes.slideshow.title);
4637 const $description = this.elements.$footer.find("." + classes.slideshow.description);
4638 $title.text(titleText || "");
4639 $description.text(descriptionText || "");
4640 },
4641 playSlideVideo() {
4642 const $activeSlide = this.getSlide("active");
4643 const videoURL = $activeSlide.data("elementor-slideshow-video");
4644 if (!videoURL) return;
4645 const classes = this.getSettings("classes");
4646 const aspectRatio = this.getRatioDictionry(this.getSettings("modalOptions.videoAspectRatio"));
4647 const $videoContainer = jQuery("<div>", { class: classes.videoContainer + " " + classes.invisible });
4648 const $videoWrapper = jQuery("<div>", {
4649 class: `${classes.videoWrapper} elementor-video-${this.getRatioType(aspectRatio)}`,
4650 style: "--video-aspect-ratio: " + aspectRatio
4651 });
4652 const $playIcon = $activeSlide.children("." + classes.playButton);
4653 let videoType;
4654 let apiProvider;
4655 $videoContainer.append($videoWrapper);
4656 $activeSlide.append($videoContainer);
4657 if (-1 !== videoURL.indexOf("vimeo.com")) {
4658 videoType = "vimeo";
4659 apiProvider = elementorFrontend.utils.vimeo;
4660 } else if (videoURL.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com)/)) {
4661 videoType = "youtube";
4662 apiProvider = elementorFrontend.utils.youtube;
4663 }
4664 const videoID = apiProvider.getVideoIDFromURL(videoURL);
4665 apiProvider.onApiReady((apiObject) => {
4666 if ("youtube" === videoType) this.prepareYTVideo(apiObject, videoID, $videoContainer, $videoWrapper, $playIcon);
4667 else if ("vimeo" === videoType) this.prepareVimeoVideo(apiObject, videoURL, $videoContainer, $videoWrapper, $playIcon);
4668 });
4669 $playIcon.addClass(classes.playing).removeClass(classes.hidden);
4670 },
4671 prepareYTVideo(YT, videoID, $videoContainer, $videoWrapper, $playIcon) {
4672 const classes = this.getSettings("classes");
4673 const $videoPlaceholderElement = jQuery("<div>");
4674 let startStateCode = YT.PlayerState.PLAYING;
4675 $videoWrapper.append($videoPlaceholderElement);
4676 if (window.chrome) startStateCode = YT.PlayerState.UNSTARTED;
4677 $videoContainer.addClass("elementor-loading " + classes.invisible);
4678 this.player = new YT.Player($videoPlaceholderElement[0], {
4679 videoId: videoID,
4680 events: {
4681 onReady: () => {
4682 $playIcon.addClass(classes.hidden);
4683 $videoContainer.removeClass(classes.invisible);
4684 this.player.playVideo();
4685 },
4686 onStateChange: (event) => {
4687 if (event.data === startStateCode) $videoContainer.removeClass("elementor-loading " + classes.invisible);
4688 }
4689 },
4690 playerVars: {
4691 controls: 0,
4692 rel: 0
4693 }
4694 });
4695 },
4696 prepareVimeoVideo(Vimeo, videoURL, $videoContainer, $videoWrapper, $playIcon) {
4697 const classes = this.getSettings("classes");
4698 const vimeoOptions = {
4699 url: videoURL,
4700 autoplay: true,
4701 transparent: false,
4702 playsinline: false,
4703 cc_load_policy: false
4704 };
4705 this.player = new Vimeo.Player($videoWrapper, vimeoOptions);
4706 this.player.ready().then(() => {
4707 $playIcon.addClass(classes.hidden);
4708 $videoContainer.removeClass(classes.invisible);
4709 });
4710 },
4711 setEntranceAnimation(animation) {
4712 animation = animation || elementorFrontend.getCurrentDeviceSetting(this.getSettings("modalOptions"), "entranceAnimation");
4713 const $widgetMessage = this.getModal().getElements("message");
4714 if (this.oldAnimation) $widgetMessage.removeClass(this.oldAnimation);
4715 this.oldAnimation = animation;
4716 if (animation) $widgetMessage.addClass("animated " + animation);
4717 },
4718 openSlideshow(slideshowID, initialSlideURL) {
4719 const $allSlideshowLinks = jQuery(this.getSettings("selectors.links")).filter((index, element) => {
4720 const $element = jQuery(element);
4721 return slideshowID === element.dataset.elementorLightboxSlideshow && !$element.parent(".swiper-slide-duplicate").length && !$element.parents(".slick-cloned").length;
4722 });
4723 const slides = [];
4724 let initialSlideIndex = 0;
4725 $allSlideshowLinks.each(function() {
4726 const slideVideo = this.dataset.elementorLightboxVideo;
4727 let slideIndex = this.dataset.elementorLightboxIndex;
4728 if (void 0 === slideIndex) slideIndex = $allSlideshowLinks.index(this);
4729 if (initialSlideURL === this.href || slideVideo && initialSlideURL === slideVideo) initialSlideIndex = slideIndex;
4730 const slideData = {
4731 image: this.href,
4732 index: slideIndex,
4733 title: this.dataset.elementorLightboxTitle,
4734 description: this.dataset.elementorLightboxDescription,
4735 hash: this.getAttribute("data-e-action-hash")
4736 };
4737 if (slideVideo) slideData.video = slideVideo;
4738 slides.push(slideData);
4739 });
4740 slides.sort((a, b) => a.index - b.index);
4741 this.showModal({
4742 type: "slideshow",
4743 id: slideshowID,
4744 modalOptions: { id: "elementor-lightbox-slideshow-" + slideshowID },
4745 slideshow: {
4746 slides,
4747 swiper: { initialSlide: +initialSlideIndex }
4748 }
4749 });
4750 },
4751 onSlideChange() {
4752 this.getSlide("prev").add(this.getSlide("next")).add(this.getSlide("active")).find("." + this.getSettings("classes.videoWrapper")).remove();
4753 this.playSlideVideo();
4754 this.updateFooterText();
4755 }
4756 });
4757 }));
4758
4759 //#endregion
4760 //#region \0elementor-chunk-entry
4761 var import_lightbox = /* @__PURE__ */ __toESM(require_lightbox());
4762 (window.__elementorChunks = window.__elementorChunks || {})["lightbox-lightbox"] = import_lightbox;
4763
4764 //#endregion
4765 })();
4766 //# sourceMappingURL=lightbox-lightbox.js.map