a||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","let colors = require('./lib/public/colors')\nmodule.exports = (colors.__esModule ? colors : { default: colors }).default\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _log = _interopRequireDefault(require(\"../util/log\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction warn({ version , from , to }) {\n _log.default.warn(`${from}-color-renamed`, [\n `As of Tailwind CSS ${version}, \\`${from}\\` has been renamed to \\`${to}\\`.`,\n \"Update your configuration file to silence this warning.\", \n ]);\n}\nvar _default = {\n inherit: \"inherit\",\n current: \"currentColor\",\n transparent: \"transparent\",\n black: \"#000\",\n white: \"#fff\",\n slate: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\"\n },\n gray: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\"\n },\n zinc: {\n 50: \"#fafafa\",\n 100: \"#f4f4f5\",\n 200: \"#e4e4e7\",\n 300: \"#d4d4d8\",\n 400: \"#a1a1aa\",\n 500: \"#71717a\",\n 600: \"#52525b\",\n 700: \"#3f3f46\",\n 800: \"#27272a\",\n 900: \"#18181b\"\n },\n neutral: {\n 50: \"#fafafa\",\n 100: \"#f5f5f5\",\n 200: \"#e5e5e5\",\n 300: \"#d4d4d4\",\n 400: \"#a3a3a3\",\n 500: \"#737373\",\n 600: \"#525252\",\n 700: \"#404040\",\n 800: \"#262626\",\n 900: \"#171717\"\n },\n stone: {\n 50: \"#fafaf9\",\n 100: \"#f5f5f4\",\n 200: \"#e7e5e4\",\n 300: \"#d6d3d1\",\n 400: \"#a8a29e\",\n 500: \"#78716c\",\n 600: \"#57534e\",\n 700: \"#44403c\",\n 800: \"#292524\",\n 900: \"#1c1917\"\n },\n red: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\"\n },\n orange: {\n 50: \"#fff7ed\",\n 100: \"#ffedd5\",\n 200: \"#fed7aa\",\n 300: \"#fdba74\",\n 400: \"#fb923c\",\n 500: \"#f97316\",\n 600: \"#ea580c\",\n 700: \"#c2410c\",\n 800: \"#9a3412\",\n 900: \"#7c2d12\"\n },\n amber: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\"\n },\n yellow: {\n 50: \"#fefce8\",\n 100: \"#fef9c3\",\n 200: \"#fef08a\",\n 300: \"#fde047\",\n 400: \"#facc15\",\n 500: \"#eab308\",\n 600: \"#ca8a04\",\n 700: \"#a16207\",\n 800: \"#854d0e\",\n 900: \"#713f12\"\n },\n lime: {\n 50: \"#f7fee7\",\n 100: \"#ecfccb\",\n 200: \"#d9f99d\",\n 300: \"#bef264\",\n 400: \"#a3e635\",\n 500: \"#84cc16\",\n 600: \"#65a30d\",\n 700: \"#4d7c0f\",\n 800: \"#3f6212\",\n 900: \"#365314\"\n },\n green: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\"\n },\n emerald: {\n 50: \"#ecfdf5\",\n 100: \"#d1fae5\",\n 200: \"#a7f3d0\",\n 300: \"#6ee7b7\",\n 400: \"#34d399\",\n 500: \"#10b981\",\n 600: \"#059669\",\n 700: \"#047857\",\n 800: \"#065f46\",\n 900: \"#064e3b\"\n },\n teal: {\n 50: \"#f0fdfa\",\n 100: \"#ccfbf1\",\n 200: \"#99f6e4\",\n 300: \"#5eead4\",\n 400: \"#2dd4bf\",\n 500: \"#14b8a6\",\n 600: \"#0d9488\",\n 700: \"#0f766e\",\n 800: \"#115e59\",\n 900: \"#134e4a\"\n },\n cyan: {\n 50: \"#ecfeff\",\n 100: \"#cffafe\",\n 200: \"#a5f3fc\",\n 300: \"#67e8f9\",\n 400: \"#22d3ee\",\n 500: \"#06b6d4\",\n 600: \"#0891b2\",\n 700: \"#0e7490\",\n 800: \"#155e75\",\n 900: \"#164e63\"\n },\n sky: {\n 50: \"#f0f9ff\",\n 100: \"#e0f2fe\",\n 200: \"#bae6fd\",\n 300: \"#7dd3fc\",\n 400: \"#38bdf8\",\n 500: \"#0ea5e9\",\n 600: \"#0284c7\",\n 700: \"#0369a1\",\n 800: \"#075985\",\n 900: \"#0c4a6e\"\n },\n blue: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\"\n },\n indigo: {\n 50: \"#eef2ff\",\n 100: \"#e0e7ff\",\n 200: \"#c7d2fe\",\n 300: \"#a5b4fc\",\n 400: \"#818cf8\",\n 500: \"#6366f1\",\n 600: \"#4f46e5\",\n 700: \"#4338ca\",\n 800: \"#3730a3\",\n 900: \"#312e81\"\n },\n violet: {\n 50: \"#f5f3ff\",\n 100: \"#ede9fe\",\n 200: \"#ddd6fe\",\n 300: \"#c4b5fd\",\n 400: \"#a78bfa\",\n 500: \"#8b5cf6\",\n 600: \"#7c3aed\",\n 700: \"#6d28d9\",\n 800: \"#5b21b6\",\n 900: \"#4c1d95\"\n },\n purple: {\n 50: \"#faf5ff\",\n 100: \"#f3e8ff\",\n 200: \"#e9d5ff\",\n 300: \"#d8b4fe\",\n 400: \"#c084fc\",\n 500: \"#a855f7\",\n 600: \"#9333ea\",\n 700: \"#7e22ce\",\n 800: \"#6b21a8\",\n 900: \"#581c87\"\n },\n fuchsia: {\n 50: \"#fdf4ff\",\n 100: \"#fae8ff\",\n 200: \"#f5d0fe\",\n 300: \"#f0abfc\",\n 400: \"#e879f9\",\n 500: \"#d946ef\",\n 600: \"#c026d3\",\n 700: \"#a21caf\",\n 800: \"#86198f\",\n 900: \"#701a75\"\n },\n pink: {\n 50: \"#fdf2f8\",\n 100: \"#fce7f3\",\n 200: \"#fbcfe8\",\n 300: \"#f9a8d4\",\n 400: \"#f472b6\",\n 500: \"#ec4899\",\n 600: \"#db2777\",\n 700: \"#be185d\",\n 800: \"#9d174d\",\n 900: \"#831843\"\n },\n rose: {\n 50: \"#fff1f2\",\n 100: \"#ffe4e6\",\n 200: \"#fecdd3\",\n 300: \"#fda4af\",\n 400: \"#fb7185\",\n 500: \"#f43f5e\",\n 600: \"#e11d48\",\n 700: \"#be123c\",\n 800: \"#9f1239\",\n 900: \"#881337\"\n },\n get lightBlue () {\n warn({\n version: \"v2.2\",\n from: \"lightBlue\",\n to: \"sky\"\n });\n return this.sky;\n },\n get warmGray () {\n warn({\n version: \"v3.0\",\n from: \"warmGray\",\n to: \"stone\"\n });\n return this.stone;\n },\n get trueGray () {\n warn({\n version: \"v3.0\",\n from: \"trueGray\",\n to: \"neutral\"\n });\n return this.neutral;\n },\n get coolGray () {\n warn({\n version: \"v3.0\",\n from: \"coolGray\",\n to: \"gray\"\n });\n return this.gray;\n },\n get blueGray () {\n warn({\n version: \"v3.0\",\n from: \"blueGray\",\n to: \"slate\"\n });\n return this.slate;\n }\n};\nexports.default = _default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dim = dim;\nexports.default = void 0;\nvar _picocolors = _interopRequireDefault(require(\"picocolors\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nlet alreadyShown = new Set();\nfunction log(type, messages, key) {\n if (process.env.JEST_WORKER_ID !== undefined) return;\n if (key && alreadyShown.has(key)) return;\n if (key) alreadyShown.add(key);\n console.warn(\"\");\n messages.forEach((message)=>console.warn(type, \"-\", message)\n );\n}\nfunction dim(input) {\n return _picocolors.default.dim(input);\n}\nvar _default = {\n info (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.cyan(\"info\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n warn (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.yellow(\"warn\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n },\n risk (key, messages) {\n log(_picocolors.default.bold(_picocolors.default.magenta(\"risk\")), ...Array.isArray(key) ? [\n key\n ] : [\n messages,\n key\n ]);\n }\n};\nexports.default = _default;\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EventDispatcher_listeners;\nexport class EventDispatcher {\n constructor() {\n _EventDispatcher_listeners.set(this, void 0);\n __classPrivateFieldSet(this, _EventDispatcher_listeners, new Map(), \"f\");\n }\n addEventListener(type, listener) {\n var _a;\n this.removeEventListener(type, listener);\n if (!__classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").set(type, []);\n }\n (_a = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) === null || _a === void 0 ? void 0 : _a.push(listener);\n }\n removeEventListener(type, listener) {\n const arr = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type);\n if (!arr) {\n return;\n }\n const length = arr.length, idx = arr.indexOf(listener);\n if (idx < 0) {\n return;\n }\n if (length === 1) {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").delete(type);\n }\n else {\n arr.splice(idx, 1);\n }\n }\n removeAllEventListeners(type) {\n if (!type) {\n __classPrivateFieldSet(this, _EventDispatcher_listeners, new Map(), \"f\");\n }\n else {\n __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").delete(type);\n }\n }\n dispatchEvent(type, args) {\n var _a;\n (_a = __classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type)) === null || _a === void 0 ? void 0 : _a.forEach((handler) => handler(args));\n }\n hasEventListener(type) {\n return !!__classPrivateFieldGet(this, _EventDispatcher_listeners, \"f\").get(type);\n }\n}\n_EventDispatcher_listeners = new WeakMap();\n","export class Vector {\n constructor(xOrCoords, y) {\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n }\n else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n }\n else {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n static get origin() {\n return Vector.create(0, 0);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this.updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this.updateFromAngle(this.angle, length);\n }\n add(v) {\n return Vector.create(this.x + v.x, this.y + v.y);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n }\n sub(v) {\n return Vector.create(this.x - v.x, this.y - v.y);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n }\n mult(n) {\n return Vector.create(this.x * n, this.y * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n }\n div(n) {\n return Vector.create(this.x / n, this.y / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n getLengthSq() {\n return this.x ** 2 + this.y ** 2;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n manhattanDistanceTo(v) {\n return Math.abs(v.x - this.x) + Math.abs(v.y - this.y);\n }\n copy() {\n return Vector.clone(this);\n }\n setTo(v) {\n this.x = v.x;\n this.y = v.y;\n }\n rotate(angle) {\n return Vector.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle));\n }\n updateFromAngle(angle, length) {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n }\n}\n","import { Vector } from \"../Core/Utils/Vector\";\nexport function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexport function mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexport function randomInRange(r) {\n const max = getRangeMax(r);\n let min = getRangeMin(r);\n if (max === min) {\n min = 0;\n }\n return Math.random() * (max - min) + min;\n}\nexport function getRangeValue(value) {\n return typeof value === \"number\" ? value : randomInRange(value);\n}\nexport function getRangeMin(value) {\n return typeof value === \"number\" ? value : value.min;\n}\nexport function getRangeMax(value) {\n return typeof value === \"number\" ? value : value.max;\n}\nexport function setRangeValue(source, value) {\n if (source === value || (value === undefined && typeof source === \"number\")) {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexport function getValue(options) {\n const random = options.random, { enable, minimumValue } = typeof random === \"boolean\"\n ? {\n enable: random,\n minimumValue: 0,\n }\n : random;\n return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value);\n}\nexport function getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx * dx + dy * dy) };\n}\nexport function getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexport function getParticleDirectionAngle(direction, position, center) {\n if (typeof direction === \"number\") {\n return (direction * Math.PI) / 180;\n }\n else {\n switch (direction) {\n case \"top\":\n return -Math.PI / 2;\n case \"top-right\":\n return -Math.PI / 4;\n case \"right\":\n return 0;\n case \"bottom-right\":\n return Math.PI / 4;\n case \"bottom\":\n return Math.PI / 2;\n case \"bottom-left\":\n return (3 * Math.PI) / 4;\n case \"left\":\n return Math.PI;\n case \"top-left\":\n return (-3 * Math.PI) / 4;\n case \"inside\":\n return Math.atan2(center.y - position.y, center.x - position.x);\n case \"outside\":\n return Math.atan2(position.y - center.y, position.x - center.x);\n case \"none\":\n default:\n return Math.random() * Math.PI * 2;\n }\n }\n}\nexport function getParticleBaseVelocity(direction) {\n const baseVelocity = Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexport function collisionVelocity(v1, v2, m1, m2) {\n return Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * 2 * m2) / (m1 + m2), v1.y);\n}\nexport function calcEasing(value, type) {\n switch (type) {\n case \"ease-out-quad\":\n return 1 - (1 - value) ** 2;\n case \"ease-out-cubic\":\n return 1 - (1 - value) ** 3;\n case \"ease-out-quart\":\n return 1 - (1 - value) ** 4;\n case \"ease-out-quint\":\n return 1 - (1 - value) ** 5;\n case \"ease-out-expo\":\n return value === 1 ? 1 : 1 - Math.pow(2, -10 * value);\n case \"ease-out-sine\":\n return Math.sin((value * Math.PI) / 2);\n case \"ease-out-back\": {\n const c1 = 1.70158, c3 = c1 + 1;\n return 1 + c3 * Math.pow(value - 1, 3) + c1 * Math.pow(value - 1, 2);\n }\n case \"ease-out-circ\":\n return Math.sqrt(1 - Math.pow(value - 1, 2));\n default:\n return value;\n }\n}\nexport function calcPositionFromSize(data) {\n var _a, _b;\n return ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined && ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined\n ? {\n x: (data.position.x * data.size.width) / 100,\n y: (data.position.y * data.size.height) / 100,\n }\n : undefined;\n}\nexport function calcPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: (((_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : Math.random() * 100) * data.size.width) / 100,\n y: (((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : Math.random() * 100) * data.size.height) / 100,\n };\n}\nexport function calcPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function calcExactPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: (_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : Math.random() * data.size.width,\n y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : Math.random() * data.size.height,\n };\n}\nexport function calcExactPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcExactPositionOrRandomFromSize({ size: data.size, position });\n}\n","export class OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if ((data === null || data === void 0 ? void 0 : data.value) === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class Background {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { BackgroundMaskCover } from \"./BackgroundMaskCover\";\nexport class BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover;\n const color = (typeof data.cover === \"string\" ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","export class FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\n","export class ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\n","export class DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = \"circle\";\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n const ids = (_b = (_a = data.ids) !== null && _a !== void 0 ? _a : data.elementId) !== null && _b !== void 0 ? _b : data.el;\n if (ids !== undefined) {\n this.ids = ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n","export class Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\n","import { Parallax } from \"./Parallax\";\nexport class HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\n","import { ClickEvent } from \"./ClickEvent\";\nimport { DivEvent } from \"./DivEvent\";\nimport { HoverEvent } from \"./HoverEvent\";\nexport class Events {\n constructor() {\n this.onClick = new ClickEvent();\n this.onDiv = new DivEvent();\n this.onHover = new HoverEvent();\n this.resize = true;\n }\n get onclick() {\n return this.onClick;\n }\n set onclick(value) {\n this.onClick = value;\n }\n get ondiv() {\n return this.onDiv;\n }\n set ondiv(value) {\n this.onDiv = value;\n }\n get onhover() {\n return this.onHover;\n }\n set onhover(value) {\n this.onHover = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n this.onClick.load((_a = data.onClick) !== null && _a !== void 0 ? _a : data.onclick);\n const onDiv = (_b = data.onDiv) !== null && _b !== void 0 ? _b : data.ondiv;\n if (onDiv !== undefined) {\n if (onDiv instanceof Array) {\n this.onDiv = onDiv.map((div) => {\n const tmp = new DivEvent();\n tmp.load(div);\n return tmp;\n });\n }\n else {\n this.onDiv = new DivEvent();\n this.onDiv.load(onDiv);\n }\n }\n this.onHover.load((_c = data.onHover) !== null && _c !== void 0 ? _c : data.onhover);\n if (data.resize !== undefined) {\n this.resize = data.resize;\n }\n }\n}\n","export class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = \"ease-out-quad\";\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n","export class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import { OptionsColor } from \"../../OptionsColor\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n if (data.color instanceof Array) {\n this.color = data.color.map((s) => OptionsColor.create(undefined, s));\n }\n else {\n if (this.color instanceof Array) {\n this.color = new OptionsColor();\n }\n this.color = OptionsColor.create(this.color, data.color);\n }\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Options_instances, _Options_engine, _Options_findDefaultTheme;\nimport { deepExtend, loadParticlesOptions } from \"../../Utils/Utils\";\nimport { Background } from \"./Background/Background\";\nimport { BackgroundMask } from \"./BackgroundMask/BackgroundMask\";\nimport { FullScreen } from \"./FullScreen/FullScreen\";\nimport { Interactivity } from \"./Interactivity/Interactivity\";\nimport { ManualParticle } from \"./ManualParticle\";\nimport { Motion } from \"./Motion/Motion\";\nimport { Responsive } from \"./Responsive\";\nimport { Theme } from \"./Theme/Theme\";\nexport class Options {\n constructor(engine) {\n _Options_instances.add(this);\n _Options_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Options_engine, engine, \"f\");\n this.autoPlay = true;\n this.background = new Background();\n this.backgroundMask = new BackgroundMask();\n this.fullScreen = new FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new Interactivity();\n this.manualParticles = [];\n this.motion = new Motion();\n this.particles = loadParticlesOptions();\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n get fps_limit() {\n return this.fpsLimit;\n }\n set fps_limit(value) {\n this.fpsLimit = value;\n }\n get retina_detect() {\n return this.detectRetina;\n }\n set retina_detect(value) {\n this.detectRetina = value;\n }\n get backgroundMode() {\n return this.fullScreen;\n }\n set backgroundMode(value) {\n this.fullScreen.load(value);\n }\n load(data) {\n var _a, _b, _c, _d, _e;\n if (!data) {\n return;\n }\n if (data.preset !== undefined) {\n if (data.preset instanceof Array) {\n for (const preset of data.preset) {\n this.importPreset(preset);\n }\n }\n else {\n this.importPreset(data.preset);\n }\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n const detectRetina = (_a = data.detectRetina) !== null && _a !== void 0 ? _a : data.retina_detect;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n const fpsLimit = (_b = data.fpsLimit) !== null && _b !== void 0 ? _b : data.fps_limit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = (_c = data.fullScreen) !== null && _c !== void 0 ? _c : data.backgroundMode;\n if (typeof fullScreen === \"boolean\") {\n this.fullScreen.enable = fullScreen;\n }\n else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles !== undefined) {\n this.manualParticles = data.manualParticles.map((t) => {\n const tmp = new ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.motion.load(data.motion);\n this.particles.load(data.particles);\n this.style = deepExtend(this.style, data.style);\n __classPrivateFieldGet(this, _Options_engine, \"f\").plugins.loadOptions(this, data);\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const optTheme = new Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n }\n this.defaultDarkTheme = (_d = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, \"dark\")) === null || _d === void 0 ? void 0 : _d.name;\n this.defaultLightTheme = (_e = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, \"light\")) === null || _e === void 0 ? void 0 : _e.name;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find((theme) => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const mediaMatch = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = __classPrivateFieldGet(this, _Options_instances, \"m\", _Options_findDefaultTheme).call(this, clientDarkMode ? \"dark\" : \"light\");\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find((t) => t.mode === \"screen\" && screen\n ? t.maxWidth * pxRatio > screen.availWidth\n : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.options);\n return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;\n }\n importPreset(preset) {\n this.load(__classPrivateFieldGet(this, _Options_engine, \"f\").plugins.getPreset(preset));\n }\n}\n_Options_engine = new WeakMap(), _Options_instances = new WeakSet(), _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {\n var _a;\n return ((_a = this.themes.find((theme) => theme.default.value && theme.default.mode === mode)) !== null && _a !== void 0 ? _a : this.themes.find((theme) => theme.default.value && theme.default.mode === \"any\"));\n};\n","import { BubbleBase } from \"./BubbleBase\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return this.selectors instanceof Array\n ? this.selectors.map((t) => t.replace(\"#\", \"\"))\n : this.selectors.replace(\"#\", \"\");\n }\n set ids(value) {\n this.selectors = value instanceof Array ? value.map((t) => `#${t}`) : `#${value}`;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","import { BubbleBase } from \"./BubbleBase\";\nimport { BubbleDiv } from \"./BubbleDiv\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new BubbleDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new BubbleDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\n","export class ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!(data !== undefined && data.opacity !== undefined)) {\n return;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { ConnectLinks } from \"./ConnectLinks\";\nexport class Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks();\n this.radius = 60;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { GrabLinks } from \"./GrabLinks\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LightGradient {\n constructor() {\n this.start = new OptionsColor();\n this.stop = new OptionsColor();\n this.start.value = \"#ffffff\";\n this.stop.value = \"#000000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.start = OptionsColor.create(this.start, data.start);\n this.stop = OptionsColor.create(this.stop, data.stop);\n }\n}\n","import { LightGradient } from \"./LightGradient\";\nexport class LightArea {\n constructor() {\n this.gradient = new LightGradient();\n this.radius = 1000;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.gradient.load(data.gradient);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LightShadow {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#000000\";\n this.length = 2000;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n","import { LightArea } from \"./LightArea\";\nimport { LightShadow } from \"./LightShadow\";\nexport class Light {\n constructor() {\n this.area = new LightArea();\n this.shadow = new LightShadow();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.area.load(data.area);\n this.shadow.load(data.shadow);\n }\n}\n","export class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map((t) => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\n","export class Remove {\n constructor() {\n this.quantity = 2;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\n","export class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = \"ease-out-quad\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map(() => `#${value}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase\";\nimport { RepulseDiv } from \"./RepulseDiv\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new RepulseDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new RepulseDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\n","export class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n get active() {\n return false;\n }\n set active(_value) {\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nexport class Trail {\n constructor() {\n this.delay = 1;\n this.pauseOnStop = false;\n this.quantity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.particles !== undefined) {\n this.particles = deepExtend({}, data.particles);\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n }\n}\n","import { Attract } from \"./Attract\";\nimport { Bounce } from \"./Bounce\";\nimport { Bubble } from \"./Bubble\";\nimport { Connect } from \"./Connect\";\nimport { Grab } from \"./Grab\";\nimport { Light } from \"./Light\";\nimport { Push } from \"./Push\";\nimport { Remove } from \"./Remove\";\nimport { Repulse } from \"./Repulse\";\nimport { Slow } from \"./Slow\";\nimport { Trail } from \"./Trail\";\nexport class Modes {\n constructor() {\n this.attract = new Attract();\n this.bounce = new Bounce();\n this.bubble = new Bubble();\n this.connect = new Connect();\n this.grab = new Grab();\n this.light = new Light();\n this.push = new Push();\n this.remove = new Remove();\n this.repulse = new Repulse();\n this.slow = new Slow();\n this.trail = new Trail();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.attract.load(data.attract);\n this.bubble.load(data.bubble);\n this.connect.load(data.connect);\n this.grab.load(data.grab);\n this.light.load(data.light);\n this.push.load(data.push);\n this.remove.load(data.remove);\n this.repulse.load(data.repulse);\n this.slow.load(data.slow);\n this.trail.load(data.trail);\n }\n}\n","import { Events } from \"./Events/Events\";\nimport { Modes } from \"./Modes/Modes\";\nexport class Interactivity {\n constructor() {\n this.detectsOn = \"window\";\n this.events = new Events();\n this.modes = new Modes();\n }\n get detect_on() {\n return this.detectsOn;\n }\n set detect_on(value) {\n this.detectsOn = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n const detectsOn = (_a = data.detectsOn) !== null && _a !== void 0 ? _a : data.detect_on;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n if (((_c = (_b = data.modes) === null || _b === void 0 ? void 0 : _b.slow) === null || _c === void 0 ? void 0 : _c.active) === true) {\n if (this.events.onHover.mode instanceof Array) {\n if (this.events.onHover.mode.indexOf(\"slow\") < 0) {\n this.events.onHover.mode.push(\"slow\");\n }\n }\n else if (this.events.onHover.mode !== \"slow\") {\n this.events.onHover.mode = [this.events.onHover.mode, \"slow\"];\n }\n }\n }\n}\n","import { deepExtend } from \"../../Utils/Utils\";\nexport class ManualParticle {\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.position !== undefined) {\n this.position = {\n x: (_a = data.position.x) !== null && _a !== void 0 ? _a : 50,\n y: (_b = data.position.y) !== null && _b !== void 0 ? _b : 50,\n };\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","export class MotionReduce {\n constructor() {\n this.factor = 4;\n this.value = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { MotionReduce } from \"./MotionReduce\";\nexport class Motion {\n constructor() {\n this.disable = false;\n this.reduce = new MotionReduce();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.disable !== undefined) {\n this.disable = data.disable;\n }\n this.reduce.load(data.reduce);\n }\n}\n","import { deepExtend } from \"../../Utils/Utils\";\nexport class Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = \"canvas\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.maxWidth !== undefined) {\n this.maxWidth = data.maxWidth;\n }\n if (data.mode !== undefined) {\n if (data.mode === \"screen\") {\n this.mode = \"screen\";\n }\n else {\n this.mode = \"canvas\";\n }\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","export class ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = \"any\";\n this.value = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { ThemeDefault } from \"./ThemeDefault\";\nimport { deepExtend } from \"../../../Utils/Utils\";\nexport class Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ColorAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.offset = 0;\n this.speed = 1;\n this.sync = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ColorAnimation } from \"./ColorAnimation\";\nexport class HslAnimation {\n constructor() {\n this.h = new ColorAnimation();\n this.s = new ColorAnimation();\n this.l = new ColorAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}\n","import { HslAnimation } from \"./HslAnimation\";\nimport { OptionsColor } from \"./OptionsColor\";\nexport class AnimatableColor extends OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\n","import { AnimatableColor } from \"./AnimatableColor\";\nimport { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class AnimatableGradient {\n constructor() {\n this.angle = new GradientAngle();\n this.colors = [];\n this.type = \"random\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.angle.load(data.angle);\n if (data.colors !== undefined) {\n this.colors = data.colors.map((s) => {\n const tmp = new AnimatableGradientColor();\n tmp.load(s);\n return tmp;\n });\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\nexport class GradientAngle {\n constructor() {\n this.value = 0;\n this.animation = new GradientAngleAnimation();\n this.direction = \"clockwise\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = data.value;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n }\n}\nexport class GradientColorOpacity {\n constructor() {\n this.value = 0;\n this.animation = new GradientColorOpacityAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\nexport class AnimatableGradientColor {\n constructor() {\n this.stop = 0;\n this.value = new AnimatableColor();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.stop !== undefined) {\n this.stop = data.stop;\n }\n this.value = AnimatableColor.create(this.value, data.value);\n if (data.opacity !== undefined) {\n this.opacity = new GradientColorOpacity();\n if (typeof data.opacity === \"number\") {\n this.opacity.value = data.opacity;\n }\n else {\n this.opacity.load(data.opacity);\n }\n }\n }\n}\nexport class GradientAngleAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexport class GradientColorOpacityAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n this.startValue = \"random\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n }\n}\n","export class CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\n","export class Random {\n constructor() {\n this.enable = false;\n this.minimumValue = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.minimumValue !== undefined) {\n this.minimumValue = data.minimumValue;\n }\n }\n}\n","import { Random } from \"./Random\";\nimport { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ValueWithRandom {\n constructor() {\n this.random = new Random();\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (typeof data.random === \"boolean\") {\n this.random.enable = data.random;\n }\n else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value, this.random.enable ? this.random.minimumValue : undefined);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ParticlesBounceFactor extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}\n","import { ParticlesBounceFactor } from \"./ParticlesBounceFactor\";\nexport class ParticlesBounce {\n constructor() {\n this.horizontal = new ParticlesBounceFactor();\n this.vertical = new ParticlesBounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\n","import { CollisionsOverlap } from \"./CollisionsOverlap\";\nimport { ParticlesBounce } from \"../Bounce/ParticlesBounce\";\nexport class Collisions {\n constructor() {\n this.bounce = new ParticlesBounce();\n this.enable = false;\n this.mode = \"bounce\";\n this.overlap = new CollisionsOverlap();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class SplitFactor extends ValueWithRandom {\n constructor() {\n super();\n this.value = 3;\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class SplitRate extends ValueWithRandom {\n constructor() {\n super();\n this.value = { min: 4, max: 9 };\n }\n}\n","import { SplitFactor } from \"./SplitFactor\";\nimport { SplitRate } from \"./SplitRate\";\nimport { deepExtend } from \"../../../../Utils/Utils\";\nexport class Split {\n constructor() {\n this.count = 1;\n this.factor = new SplitFactor();\n this.rate = new SplitRate();\n this.sizeOffset = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.factor.load(data.factor);\n this.rate.load(data.rate);\n if (data.particles !== undefined) {\n this.particles = deepExtend({}, data.particles);\n }\n if (data.sizeOffset !== undefined) {\n this.sizeOffset = data.sizeOffset;\n }\n }\n}\n","import { Split } from \"./Split\";\nexport class Destroy {\n constructor() {\n this.mode = \"none\";\n this.split = new Split();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.split.load(data.split);\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { LifeDelay } from \"./LifeDelay\";\nimport { LifeDuration } from \"./LifeDuration\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { LinksShadow } from \"./LinksShadow\";\nimport { LinksTriangle } from \"./LinksTriangle\";\nimport { OptionsColor } from \"../../OptionsColor\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAttract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n get rotateX() {\n return this.rotate.x;\n }\n set rotateX(value) {\n this.rotate.x = value;\n }\n get rotateY() {\n return this.rotate.y;\n }\n set rotateY(value) {\n this.rotate.y = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n }\n}\n","import { ValueWithRandom } from \"../../../ValueWithRandom\";\nexport class MovePathDelay extends ValueWithRandom {\n constructor() {\n super();\n }\n}\n","import { MovePathDelay } from \"./MovePathDelay\";\nimport { deepExtend } from \"../../../../../Utils/Utils\";\nexport class MovePath {\n constructor() {\n this.clamp = true;\n this.delay = new MovePathDelay();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = deepExtend(this.options, data.options);\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class MoveTrail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fillColor = new OptionsColor();\n this.fillColor.value = \"#000000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.fillColor = OptionsColor.create(this.fillColor, data.fillColor);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n","export class OutModes {\n constructor() {\n this.default = \"out\";\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = (_a = data.bottom) !== null && _a !== void 0 ? _a : data.default;\n this.left = (_b = data.left) !== null && _b !== void 0 ? _b : data.default;\n this.right = (_c = data.right) !== null && _c !== void 0 ? _c : data.default;\n this.top = (_d = data.top) !== null && _d !== void 0 ? _d : data.default;\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.position = data.position ? deepExtend({}, data.position) : undefined;\n }\n}\n","import { MoveAngle } from \"./MoveAngle\";\nimport { MoveAttract } from \"./MoveAttract\";\nimport { MoveGravity } from \"./MoveGravity\";\nimport { MovePath } from \"./Path/MovePath\";\nimport { MoveTrail } from \"./MoveTrail\";\nimport { OutModes } from \"./OutModes\";\nimport { Spin } from \"./Spin\";\nimport { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Move {\n constructor() {\n this.angle = new MoveAngle();\n this.attract = new MoveAttract();\n this.center = {\n x: 50,\n y: 50,\n radius: 0,\n };\n this.decay = 0;\n this.distance = {};\n this.direction = \"none\";\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity();\n this.path = new MovePath();\n this.outModes = new OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin();\n this.straight = false;\n this.trail = new MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n get collisions() {\n return false;\n }\n set collisions(value) {\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n get noise() {\n return this.path;\n }\n set noise(value) {\n this.path = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n if (data.angle !== undefined) {\n if (typeof data.angle === \"number\") {\n this.angle.value = data.angle;\n }\n else {\n this.angle.load(data.angle);\n }\n }\n this.attract.load(data.attract);\n this.center = deepExtend(this.center, data.center);\n if (data.decay !== undefined) {\n this.decay = data.decay;\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance =\n typeof data.distance === \"number\"\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : deepExtend({}, data.distance);\n }\n if (data.drift !== undefined) {\n this.drift = setRangeValue(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outMode = (_a = data.outMode) !== null && _a !== void 0 ? _a : data.out_mode;\n if (data.outModes !== undefined || outMode !== undefined) {\n if (typeof data.outModes === \"string\" || (data.outModes === undefined && outMode !== undefined)) {\n this.outModes.load({\n default: (_b = data.outModes) !== null && _b !== void 0 ? _b : outMode,\n });\n }\n else {\n this.outModes.load(data.outModes);\n }\n }\n this.path.load((_c = data.path) !== null && _c !== void 0 ? _c : data.noise);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class OpacityAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 2;\n this.startValue = \"random\";\n this.sync = false;\n }\n get opacity_min() {\n return this.minimumValue;\n }\n set opacity_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { OpacityAnimation } from \"./OpacityAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Opacity extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class OrbitRotation extends ValueWithRandom {\n constructor() {\n super();\n this.value = 45;\n this.random.enable = false;\n this.random.minimumValue = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nimport { OptionsColor } from \"../../OptionsColor\";\nimport { OrbitRotation } from \"./OrbitRotation\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Orbit {\n constructor() {\n this.animation = new AnimationOptions();\n this.enable = false;\n this.opacity = 1;\n this.rotation = new OrbitRotation();\n this.width = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n this.rotation.load(data.rotation);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n if (data.width !== undefined) {\n this.width = setRangeValue(data.width);\n }\n if (data.radius !== undefined) {\n this.radius = setRangeValue(data.radius);\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n }\n}\n","export class ParticlesDensity {\n constructor() {\n this.enable = false;\n this.area = 800;\n this.factor = 1000;\n }\n get value_area() {\n return this.area;\n }\n set value_area(value) {\n this.area = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const area = (_a = data.area) !== null && _a !== void 0 ? _a : data.value_area;\n if (area !== undefined) {\n this.area = area;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n }\n}\n","import { ParticlesDensity } from \"./ParticlesDensity\";\nexport class ParticlesNumber {\n constructor() {\n this.density = new ParticlesDensity();\n this.limit = 0;\n this.value = 100;\n }\n get max() {\n return this.limit;\n }\n set max(value) {\n this.limit = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n this.density.load(data.density);\n const limit = (_a = data.limit) !== null && _a !== void 0 ? _a : data.max;\n if (limit !== undefined) {\n this.limit = limit;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class ParticlesRepulse extends ValueWithRandom {\n constructor() {\n super();\n this.enabled = false;\n this.distance = 1;\n this.duration = 1;\n this.factor = 1;\n this.speed = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.enabled !== undefined) {\n this.enabled = data.enabled;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.duration !== undefined) {\n this.duration = setRangeValue(data.duration);\n }\n if (data.factor !== undefined) {\n this.factor = setRangeValue(data.factor);\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class RollLight {\n constructor() {\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nimport { RollLight } from \"./RollLight\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Roll {\n constructor() {\n this.darken = new RollLight();\n this.enable = false;\n this.enlighten = new RollLight();\n this.mode = \"vertical\";\n this.speed = 25;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.backColor !== undefined) {\n this.backColor = OptionsColor.create(this.backColor, data.backColor);\n }\n this.darken.load(data.darken);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.enlighten.load(data.enlighten);\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { RotateAnimation } from \"./RotateAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class Rotate extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation();\n this.direction = \"clockwise\";\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nexport class Shape {\n constructor() {\n this.options = {};\n this.type = \"circle\";\n }\n get image() {\n var _a;\n return ((_a = this.options[\"image\"]) !== null && _a !== void 0 ? _a : this.options[\"images\"]);\n }\n set image(value) {\n this.options[\"image\"] = value;\n this.options[\"images\"] = value;\n }\n get custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get images() {\n return this.image;\n }\n set images(value) {\n this.image = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {\n }\n get character() {\n var _a;\n return ((_a = this.options[\"character\"]) !== null && _a !== void 0 ? _a : this.options[\"char\"]);\n }\n set character(value) {\n this.options[\"character\"] = value;\n this.options[\"char\"] = value;\n }\n get polygon() {\n var _a;\n return ((_a = this.options[\"polygon\"]) !== null && _a !== void 0 ? _a : this.options[\"star\"]);\n }\n set polygon(value) {\n this.options[\"polygon\"] = value;\n this.options[\"star\"] = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n const options = (_a = data.options) !== null && _a !== void 0 ? _a : data.custom;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item) {\n this.options[shape] = deepExtend((_b = this.options[shape]) !== null && _b !== void 0 ? _b : {}, item);\n }\n }\n }\n this.loadShape(data.character, \"character\", \"char\", true);\n this.loadShape(data.polygon, \"polygon\", \"star\", false);\n this.loadShape((_c = data.image) !== null && _c !== void 0 ? _c : data.images, \"image\", \"images\", true);\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n loadShape(item, mainKey, altKey, altOverride) {\n var _a, _b, _c, _d;\n if (item === undefined) {\n return;\n }\n if (item instanceof Array) {\n if (!(this.options[mainKey] instanceof Array)) {\n this.options[mainKey] = [];\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = [];\n }\n }\n this.options[mainKey] = deepExtend((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : [], item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = deepExtend((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : [], item);\n }\n }\n else {\n if (this.options[mainKey] instanceof Array) {\n this.options[mainKey] = {};\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = {};\n }\n }\n this.options[mainKey] = deepExtend((_c = this.options[mainKey]) !== null && _c !== void 0 ? _c : {}, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = deepExtend((_d = this.options[altKey]) !== null && _d !== void 0 ? _d : {}, item);\n }\n }\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class SizeAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 5;\n this.startValue = \"random\";\n this.sync = false;\n }\n get size_min() {\n return this.minimumValue;\n }\n set size_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { SizeAnimation } from \"./SizeAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Size extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation();\n this.random.minimumValue = 1;\n this.value = 3;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\n","import { AnimatableColor } from \"../AnimatableColor\";\nexport class Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class TiltAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { TiltAnimation } from \"./TiltAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class Tilt extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new TiltAnimation();\n this.direction = \"clockwise\";\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n }\n}\n","import { TwinkleValues } from \"./TwinkleValues\";\nexport class Twinkle {\n constructor() {\n this.lines = new TwinkleValues();\n this.particles = new TwinkleValues();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Wobble {\n constructor() {\n this.distance = 5;\n this.enable = false;\n this.speed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ZIndex extends ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}\n","import { AnimatableColor } from \"../AnimatableColor\";\nimport { AnimatableGradient } from \"../AnimatableGradient\";\nimport { Collisions } from \"./Collisions/Collisions\";\nimport { Destroy } from \"./Destroy/Destroy\";\nimport { Life } from \"./Life/Life\";\nimport { Links } from \"./Links/Links\";\nimport { Move } from \"./Move/Move\";\nimport { Opacity } from \"./Opacity/Opacity\";\nimport { Orbit } from \"./Orbit/Orbit\";\nimport { ParticlesBounce } from \"./Bounce/ParticlesBounce\";\nimport { ParticlesNumber } from \"./Number/ParticlesNumber\";\nimport { ParticlesRepulse } from \"./Repulse/ParticlesRepulse\";\nimport { Roll } from \"./Roll/Roll\";\nimport { Rotate } from \"./Rotate/Rotate\";\nimport { Shadow } from \"./Shadow\";\nimport { Shape } from \"./Shape/Shape\";\nimport { Size } from \"./Size/Size\";\nimport { Stroke } from \"./Stroke\";\nimport { Tilt } from \"./Tilt/Tilt\";\nimport { Twinkle } from \"./Twinkle/Twinkle\";\nimport { Wobble } from \"./Wobble/Wobble\";\nimport { ZIndex } from \"./ZIndex/ZIndex\";\nimport { deepExtend } from \"../../../Utils/Utils\";\nexport class ParticlesOptions {\n constructor() {\n this.bounce = new ParticlesBounce();\n this.collisions = new Collisions();\n this.color = new AnimatableColor();\n this.color.value = \"#fff\";\n this.destroy = new Destroy();\n this.gradient = [];\n this.groups = {};\n this.life = new Life();\n this.links = new Links();\n this.move = new Move();\n this.number = new ParticlesNumber();\n this.opacity = new Opacity();\n this.orbit = new Orbit();\n this.reduceDuplicates = false;\n this.repulse = new ParticlesRepulse();\n this.roll = new Roll();\n this.rotate = new Rotate();\n this.shadow = new Shadow();\n this.shape = new Shape();\n this.size = new Size();\n this.stroke = new Stroke();\n this.tilt = new Tilt();\n this.twinkle = new Twinkle();\n this.wobble = new Wobble();\n this.zIndex = new ZIndex();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor.create(this.color, data.color));\n this.destroy.load(data.destroy);\n this.life.load(data.life);\n const links = (_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked;\n if (links !== undefined) {\n this.links.load(links);\n }\n if (data.groups !== undefined) {\n for (const group in data.groups) {\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = deepExtend((_c = this.groups[group]) !== null && _c !== void 0 ? _c : {}, item);\n }\n }\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.orbit.load(data.orbit);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.repulse.load(data.repulse);\n this.roll.load(data.roll);\n this.rotate.load(data.rotate);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.tilt.load(data.tilt);\n this.twinkle.load(data.twinkle);\n this.wobble.load(data.wobble);\n this.zIndex.load(data.zIndex);\n const collisions = (_e = (_d = data.move) === null || _d === void 0 ? void 0 : _d.collisions) !== null && _e !== void 0 ? _e : (_f = data.move) === null || _f === void 0 ? void 0 : _f.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n const strokeToLoad = (_g = data.stroke) !== null && _g !== void 0 ? _g : (_h = data.shape) === null || _h === void 0 ? void 0 : _h.stroke;\n if (strokeToLoad) {\n if (strokeToLoad instanceof Array) {\n this.stroke = strokeToLoad.map((s) => {\n const tmp = new Stroke();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.stroke instanceof Array) {\n this.stroke = new Stroke();\n }\n this.stroke.load(strokeToLoad);\n }\n }\n const gradientToLoad = data.gradient;\n if (gradientToLoad) {\n if (gradientToLoad instanceof Array) {\n this.gradient = gradientToLoad.map((s) => {\n const tmp = new AnimatableGradient();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.gradient instanceof Array) {\n this.gradient = new AnimatableGradient();\n }\n this.gradient.load(gradientToLoad);\n }\n }\n }\n}\n","import { collisionVelocity, getDistances, getValue } from \"./NumberUtils\";\nimport { Options } from \"../Options/Classes/Options\";\nimport { ParticlesOptions } from \"../Options/Classes/Particles/ParticlesOptions\";\nimport { Vector } from \"../Core/Utils/Vector\";\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = { bounced: false };\n if (pOtherSide.min < rectOtherSide.min ||\n pOtherSide.min > rectOtherSide.max ||\n pOtherSide.max < rectOtherSide.min ||\n pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0) ||\n (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0)) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n if (!(selectors instanceof Array)) {\n return element.matches(selectors);\n }\n for (const selector of selectors) {\n if (element.matches(selector)) {\n return true;\n }\n }\n return false;\n}\nexport function isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexport function animate() {\n return isSsr()\n ? (callback) => setTimeout(callback)\n : (callback) => (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n window.setTimeout)(callback);\n}\nexport function cancelAnimation() {\n return isSsr()\n ? (handle) => clearTimeout(handle)\n : (handle) => (window.cancelAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.clearTimeout)(handle);\n}\nexport function isInArray(value, array) {\n return value === array || (array instanceof Array && array.indexOf(value) > -1);\n}\nexport async function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight !== null && weight !== void 0 ? weight : \"400\"} 36px '${font !== null && font !== void 0 ? font : \"Verdana\"}'`);\n }\n catch (_a) {\n }\n}\nexport function arrayRandomIndex(array) {\n return Math.floor(Math.random() * array.length);\n}\nexport function itemFromArray(array, index, useIndex = true) {\n const fixedIndex = index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array);\n return array[fixedIndex];\n}\nexport function isPointInside(point, size, offset, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, offset, direction);\n}\nexport function areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === \"bottom\") {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === \"left\")) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === \"right\")) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === \"top\")) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nexport function calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n}\nexport function deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (typeof source !== \"object\") {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (typeof destination !== \"object\" || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray && (typeof destination !== \"object\" || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source, value = sourceDict[key], isObject = typeof value === \"object\", destDict = destination;\n destDict[key] =\n isObject && Array.isArray(value)\n ? value.map((v) => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexport function isDivModeEnabled(mode, divs) {\n return divs instanceof Array ? !!divs.find((t) => t.enable && isInArray(mode, t.mode)) : isInArray(mode, divs.mode);\n}\nexport function divModeExecute(mode, divs, callback) {\n if (divs instanceof Array) {\n for (const div of divs) {\n const divMode = div.mode, divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n }\n }\n else {\n const divMode = divs.mode, divEnabled = divs.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(divs, callback);\n }\n }\n}\nexport function singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n callback(selector, div);\n }\n }\n else {\n callback(selectors, div);\n }\n}\nexport function divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n if (divs instanceof Array) {\n return divs.find((d) => checkSelector(element, d.selectors));\n }\n else if (checkSelector(element, divs.selectors)) {\n return divs;\n }\n}\nexport function circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector.create(getValue(p.options.bounce.horizontal), getValue(p.options.bounce.vertical)),\n };\n}\nexport function circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = getDistances(pos2, pos1);\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < 0) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = collisionVelocity(u1, u2, m1, m2), v2 = collisionVelocity(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nexport function rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size);\n const resH = rectSideBounce({\n min: bounds.left,\n max: bounds.right,\n }, {\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, particle.velocity.x, getValue(particle.options.bounce.horizontal));\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: bounds.left,\n max: bounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, particle.velocity.y, getValue(particle.options.bounce.vertical));\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nfunction loadOptions(options, ...sourceOptionsArr) {\n for (const sourceOptions of sourceOptionsArr) {\n options.load(sourceOptions);\n }\n}\nexport function loadContainerOptions(engine, ...sourceOptionsArr) {\n const options = new Options(engine);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nexport function loadParticlesOptions(...sourceOptionsArr) {\n const options = new ParticlesOptions();\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\n","export const generatedAttribute = \"generated\";\nexport const randomColorValue = \"random\";\nexport const midColorValue = \"mid\";\nexport const touchEndEvent = \"touchend\";\nexport const mouseDownEvent = \"mousedown\";\nexport const mouseUpEvent = \"mouseup\";\nexport const mouseMoveEvent = \"mousemove\";\nexport const touchStartEvent = \"touchstart\";\nexport const touchMoveEvent = \"touchmove\";\nexport const mouseLeaveEvent = \"mouseleave\";\nexport const mouseOutEvent = \"mouseout\";\nexport const touchCancelEvent = \"touchcancel\";\nexport const resizeEvent = \"resize\";\nexport const visibilityChangeEvent = \"visibilitychange\";\nexport const noPolygonDataLoaded = \"No polygon data loaded.\";\nexport const noPolygonFound = \"No polygon found, you need to specify SVG url in config.\";\n","import { getRangeValue, mix, randomInRange, setRangeValue } from \"./NumberUtils\";\nimport { midColorValue, randomColorValue } from \"../Core/Utils/Constants\";\nimport { itemFromArray } from \"./Utils\";\nfunction hue2rgb(p, q, t) {\n let tCalc = t;\n if (tCalc < 0) {\n tCalc += 1;\n }\n if (tCalc > 1) {\n tCalc -= 1;\n }\n if (tCalc < 1 / 6) {\n return p + (q - p) * 6 * tCalc;\n }\n if (tCalc < 1 / 2) {\n return q;\n }\n if (tCalc < 2 / 3) {\n return p + (q - p) * (2 / 3 - tCalc) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n if (input.startsWith(\"rgb\")) {\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? {\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10),\n }\n : undefined;\n }\n else if (input.startsWith(\"hsl\")) {\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hslaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10),\n })\n : undefined;\n }\n else if (input.startsWith(\"hsv\")) {\n const regex = /hsva?\\(\\s*(\\d+)°\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? hsvaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n s: parseInt(result[2], 10),\n v: parseInt(result[3], 10),\n })\n : undefined;\n }\n else {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\n const hexFixed = input.replace(shorthandRegex, (_m, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n });\n const regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\n const result = regex.exec(hexFixed);\n return result\n ? {\n a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1,\n b: parseInt(result[3], 16),\n g: parseInt(result[2], 16),\n r: parseInt(result[1], 16),\n }\n : undefined;\n }\n}\nexport function colorToRgb(input, index, useIndex = true) {\n var _a, _b, _c;\n if (input === undefined) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n let res;\n if (typeof color.value === \"string\") {\n res = color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);\n }\n else {\n if (color.value instanceof Array) {\n const colorSelected = itemFromArray(color.value, index, useIndex);\n res = colorToRgb({ value: colorSelected });\n }\n else {\n const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n res = rgbColor;\n }\n else {\n const hslColor = (_b = colorValue.hsl) !== null && _b !== void 0 ? _b : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n res = hslToRgb(hslColor);\n }\n else {\n const hsvColor = (_c = colorValue.hsv) !== null && _c !== void 0 ? _c : color.value;\n if (hsvColor.h !== undefined && hsvColor.v !== undefined) {\n res = hsvToRgb(hsvColor);\n }\n }\n }\n }\n }\n return res;\n}\nexport function colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb !== undefined ? rgbToHsl(rgb) : undefined;\n}\nexport function rgbToHsl(color) {\n const r1 = color.r / 255, g1 = color.g / 255, b1 = color.b / 255;\n const max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1);\n const res = {\n h: 0,\n l: (max + min) / 2,\n s: 0,\n };\n if (max !== min) {\n res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min));\n }\n res.l *= 100;\n res.s *= 100;\n res.h *= 60;\n if (res.h < 0) {\n res.h += 360;\n }\n return res;\n}\nexport function stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n}\nexport function stringToRgb(input) {\n return stringToRgba(input);\n}\nexport function hslToRgb(hsl) {\n const result = { b: 0, g: 0, r: 0 }, hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100,\n };\n if (hslPercent.s === 0) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n }\n else {\n const q = hslPercent.l < 0.5\n ? hslPercent.l * (1 + hslPercent.s)\n : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s, p = 2 * hslPercent.l - q;\n result.r = hue2rgb(p, q, hslPercent.h + 1 / 3);\n result.g = hue2rgb(p, q, hslPercent.h);\n result.b = hue2rgb(p, q, hslPercent.h - 1 / 3);\n }\n result.r = Math.floor(result.r * 255);\n result.g = Math.floor(result.g * 255);\n result.b = Math.floor(result.b * 255);\n return result;\n}\nexport function hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexport function hslToHsv(hsl) {\n const l = hsl.l / 100, sl = hsl.s / 100, v = l + sl * Math.min(l, 1 - l), sv = !v ? 0 : 2 * (1 - l / v);\n return {\n h: hsl.h,\n s: sv * 100,\n v: v * 100,\n };\n}\nexport function hslaToHsva(hsla) {\n const hsvResult = hslToHsv(hsla);\n return {\n a: hsla.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexport function hsvToHsl(hsv) {\n const v = hsv.v / 100, sv = hsv.s / 100, l = v * (1 - sv / 2), sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h: hsv.h,\n l: l * 100,\n s: sl * 100,\n };\n}\nexport function hsvaToHsla(hsva) {\n const hslResult = hsvToHsl(hsva);\n return {\n a: hsva.a,\n h: hslResult.h,\n l: hslResult.l,\n s: hslResult.s,\n };\n}\nexport function hsvToRgb(hsv) {\n const result = { b: 0, g: 0, r: 0 }, hsvPercent = {\n h: hsv.h / 60,\n s: hsv.s / 100,\n v: hsv.v / 100,\n };\n const c = hsvPercent.v * hsvPercent.s, x = c * (1 - Math.abs((hsvPercent.h % 2) - 1));\n let tempRgb;\n if (hsvPercent.h >= 0 && hsvPercent.h <= 1) {\n tempRgb = {\n r: c,\n g: x,\n b: 0,\n };\n }\n else if (hsvPercent.h > 1 && hsvPercent.h <= 2) {\n tempRgb = {\n r: x,\n g: c,\n b: 0,\n };\n }\n else if (hsvPercent.h > 2 && hsvPercent.h <= 3) {\n tempRgb = {\n r: 0,\n g: c,\n b: x,\n };\n }\n else if (hsvPercent.h > 3 && hsvPercent.h <= 4) {\n tempRgb = {\n r: 0,\n g: x,\n b: c,\n };\n }\n else if (hsvPercent.h > 4 && hsvPercent.h <= 5) {\n tempRgb = {\n r: x,\n g: 0,\n b: c,\n };\n }\n else if (hsvPercent.h > 5 && hsvPercent.h <= 6) {\n tempRgb = {\n r: c,\n g: 0,\n b: x,\n };\n }\n if (tempRgb) {\n const m = hsvPercent.v - c;\n result.r = Math.floor((tempRgb.r + m) * 255);\n result.g = Math.floor((tempRgb.g + m) * 255);\n result.b = Math.floor((tempRgb.b + m) * 255);\n }\n return result;\n}\nexport function hsvaToRgba(hsva) {\n const rgbResult = hsvToRgb(hsva);\n return {\n a: hsva.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexport function rgbToHsv(rgb) {\n const rgbPercent = {\n r: rgb.r / 255,\n g: rgb.g / 255,\n b: rgb.b / 255,\n }, xMax = Math.max(rgbPercent.r, rgbPercent.g, rgbPercent.b), xMin = Math.min(rgbPercent.r, rgbPercent.g, rgbPercent.b), v = xMax, c = xMax - xMin;\n let h = 0;\n if (v === rgbPercent.r) {\n h = 60 * ((rgbPercent.g - rgbPercent.b) / c);\n }\n else if (v === rgbPercent.g) {\n h = 60 * (2 + (rgbPercent.b - rgbPercent.r) / c);\n }\n else if (v === rgbPercent.b) {\n h = 60 * (4 + (rgbPercent.r - rgbPercent.g) / c);\n }\n const s = !v ? 0 : c / v;\n return {\n h,\n s: s * 100,\n v: v * 100,\n };\n}\nexport function rgbaToHsva(rgba) {\n const hsvResult = rgbToHsv(rgba);\n return {\n a: rgba.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n}\nexport function getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n g: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n r: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n };\n}\nexport function getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function getStyleFromHsv(color, opacity) {\n return getStyleFromHsl(hsvToHsl(color), opacity);\n}\nexport function colorMix(color1, color2, size1, size2) {\n let rgb1 = color1, rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: mix(rgb1.b, rgb2.b, size1, size2),\n g: mix(rgb1.g, rgb2.g, size1, size2),\n r: mix(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexport function getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === \"mid\") {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor(), destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexport function getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return colorToRgb({\n value: color,\n });\n }\n else if (blink) {\n return randomColorValue;\n }\n else {\n return midColorValue;\n }\n }\n else {\n return colorToRgb({\n value: color,\n });\n }\n}\nexport function getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexport function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h,\n },\n s: {\n enable: false,\n value: hsl.s,\n },\n l: {\n enable: false,\n value: hsl.l,\n },\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (getRangeValue(colorAnimation.speed) / 100) * reduceFactor;\n if (colorAnimation.sync) {\n return;\n }\n colorValue.status = 0;\n colorValue.velocity *= Math.random();\n if (colorValue.value) {\n colorValue.value *= Math.random();\n }\n }\n else {\n colorValue.velocity = 0;\n }\n}\n","import { colorMix, getStyleFromHsl, getStyleFromRgb } from \"./ColorUtils\";\nexport function drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function paintBase(context, dimension, baseColor) {\n context.save();\n context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : \"rgba(0,0,0,0)\";\n context.fillRect(0, 0, dimension.width, dimension.height);\n context.restore();\n}\nexport function clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n}\nexport function drawConnectLine(context, width, lineStyle, begin, end) {\n context.save();\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n context.restore();\n}\nexport function gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), color1 = p1.getFillColor(), color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(), destPos = p2.getPosition(), midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()), grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, getStyleFromHsl(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(1, getStyleFromHsl(color2, opacity));\n return grad;\n}\nexport function drawGrabLine(context, width, begin, end, colorLine, opacity) {\n context.save();\n drawLine(context, begin, end);\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n context.restore();\n}\nexport function drawParticle(container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow) {\n var _a, _b, _c, _d;\n const pos = particle.getPosition(), tiltOptions = particle.options.tilt, rollOptions = particle.options.roll;\n context.save();\n if (tiltOptions.enable || rollOptions.enable) {\n const roll = rollOptions.enable && particle.roll, tilt = tiltOptions.enable && particle.tilt, rollHorizontal = roll && (rollOptions.mode === \"horizontal\" || rollOptions.mode === \"both\"), rollVertical = roll && (rollOptions.mode === \"vertical\" || rollOptions.mode === \"both\");\n context.setTransform(rollHorizontal ? Math.cos(particle.roll.angle) : 1, tilt ? Math.cos(particle.tilt.value) * particle.tilt.cosDirection : 0, tilt ? Math.sin(particle.tilt.value) * particle.tilt.sinDirection : 0, rollVertical ? Math.sin(particle.roll.angle) : 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n context.beginPath();\n const angle = ((_b = (_a = particle.rotate) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0) + (particle.options.rotate.path ? particle.velocity.angle : 0);\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const stroke = particle.stroke;\n context.lineWidth = (_c = particle.strokeWidth) !== null && _c !== void 0 ? _c : 0;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n drawShape(container, context, particle, radius, opacity, delta);\n if (((_d = stroke === null || stroke === void 0 ? void 0 : stroke.width) !== null && _d !== void 0 ? _d : 0) > 0) {\n context.stroke();\n }\n if (particle.close) {\n context.closePath();\n }\n if (particle.fill) {\n context.fill();\n }\n context.restore();\n context.save();\n if (tiltOptions.enable && particle.tilt) {\n context.setTransform(1, Math.cos(particle.tilt.value) * particle.tilt.cosDirection, Math.sin(particle.tilt.value) * particle.tilt.sinDirection, 1, pos.x, pos.y);\n }\n else {\n context.translate(pos.x, pos.y);\n }\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.restore();\n}\nexport function drawShape(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n drawer.draw(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawShapeAfterEffect(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {\n return;\n }\n drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n context.save();\n plugin.draw(context, delta);\n context.restore();\n}\nexport function drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n context.save();\n plugin.drawParticle(context, particle, delta);\n context.restore();\n}\nexport function drawEllipse(context, particle, fillColorValue, radius, opacity, width, rotation, start, end) {\n if (width <= 0) {\n return;\n }\n const pos = particle.getPosition();\n if (fillColorValue) {\n context.strokeStyle = getStyleFromHsl(fillColorValue, opacity);\n }\n context.lineWidth = width;\n const rotationRadian = (rotation * Math.PI) / 180;\n context.beginPath();\n context.ellipse(pos.x, pos.y, radius / 2, radius * 2, rotationRadian, start, end);\n context.stroke();\n}\nexport function alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === \"darken\" ? -1 : 1) * value,\n };\n}\n","import { clear, drawConnectLine, drawGrabLine, drawParticle, drawParticlePlugin, drawPlugin, gradient, paintBase, } from \"../Utils/CanvasUtils\";\nimport { colorToHsl, colorToRgb, getStyleFromHsl, getStyleFromRgb } from \"../Utils/ColorUtils\";\nimport { deepExtend } from \"../Utils/Utils\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nexport class Canvas {\n constructor(container) {\n this.container = container;\n this.size = {\n height: 0,\n width: 0,\n };\n this.context = null;\n this.generatedCanvas = false;\n }\n init() {\n this.resize();\n this.initStyle();\n this.initCover();\n this.initTrail();\n this.initBackground();\n this.paint();\n }\n loadCanvas(canvas) {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.generatedCanvas =\n canvas.dataset && generatedAttribute in canvas.dataset\n ? canvas.dataset[generatedAttribute] === \"true\"\n : this.generatedCanvas;\n this.element = canvas;\n this.originalStyle = deepExtend({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this.context = this.element.getContext(\"2d\");\n this.container.retina.init();\n this.initBackground();\n }\n destroy() {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n this.paintBase(this.coverColorStyle);\n }\n else {\n this.paintBase();\n }\n });\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > 0 && this.trailFillColor) {\n this.paintBase(getStyleFromRgb(this.trailFillColor, 1 / trail.length));\n }\n else {\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n }\n async windowResize() {\n if (!this.element) {\n return;\n }\n this.resize();\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n for (const [, plugin] of container.plugins) {\n if (plugin.resize !== undefined) {\n plugin.resize();\n }\n }\n if (needsRefresh) {\n await container.refresh();\n }\n }\n resize() {\n if (!this.element) {\n return;\n }\n const container = this.container, pxRatio = container.retina.pixelRatio, size = container.canvas.size, newSize = {\n width: this.element.offsetWidth * pxRatio,\n height: this.element.offsetHeight * pxRatio,\n };\n if (newSize.height === size.height &&\n newSize.width === size.width &&\n newSize.height === this.element.height &&\n newSize.width === this.element.width) {\n return;\n }\n const oldSize = Object.assign({}, size);\n this.element.width = size.width = this.element.offsetWidth * pxRatio;\n this.element.height = size.height = this.element.offsetHeight * pxRatio;\n if (this.container.started) {\n this.resizeFactor = {\n width: size.width / oldSize.width,\n height: size.height / oldSize.height,\n };\n }\n }\n drawConnectLine(p1, p2) {\n this.draw((ctx) => {\n var _a;\n const lineStyle = this.lineStyle(p1, p2);\n if (!lineStyle) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n drawConnectLine(ctx, (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : this.container.retina.linksWidth, lineStyle, pos1, pos2);\n });\n }\n drawGrabLine(particle, lineColor, opacity, mousePos) {\n const container = this.container;\n this.draw((ctx) => {\n var _a;\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, (_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, beginPos, mousePos, lineColor, opacity);\n });\n }\n drawParticle(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius();\n if (radius <= 0) {\n return;\n }\n const pfColor = particle.getFillColor(), psColor = (_a = particle.getStrokeColor()) !== null && _a !== void 0 ? _a : pfColor;\n if (!pfColor && !psColor) {\n return;\n }\n let [fColor, sColor] = this.getPluginParticleColors(particle);\n if (!fColor || !sColor) {\n if (!fColor) {\n fColor = pfColor ? pfColor : undefined;\n }\n if (!sColor) {\n sColor = psColor ? psColor : undefined;\n }\n }\n const options = this.container.actualOptions, zIndexOptions = particle.options.zIndex, zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, opacity = (_d = (_b = particle.bubble.opacity) !== null && _b !== void 0 ? _b : (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1, strokeOpacity = (_f = (_e = particle.stroke) === null || _e === void 0 ? void 0 : _e.opacity) !== null && _f !== void 0 ? _f : opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor;\n const colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this.draw((ctx) => {\n const zSizeFactor = (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate, container = this.container;\n for (const updater of container.particles.updaters) {\n if (updater.beforeDraw) {\n updater.beforeDraw(particle);\n }\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n }\n drawParticle(container, ctx, particle, delta, colorStyles, options.backgroundMask.enable, options.backgroundMask.composite, radius * zSizeFactor, zOpacity, particle.options.shadow);\n for (const updater of container.particles.updaters) {\n if (updater.afterDraw) {\n updater.afterDraw(particle);\n }\n }\n });\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => {\n drawPlugin(ctx, plugin, delta);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => {\n drawParticlePlugin(ctx, plugin, particle, delta);\n });\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element, elementStyle = element === null || element === void 0 ? void 0 : element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = colorToRgb(background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n draw(cb) {\n if (!this.context) {\n return;\n }\n return cb(this.context);\n }\n initCover() {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color, coverRgb = colorToRgb(color);\n if (coverRgb) {\n const coverColor = {\n r: coverRgb.r,\n g: coverRgb.g,\n b: coverRgb.b,\n a: cover.opacity,\n };\n this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n initTrail() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, fillColor = colorToRgb(trail.fillColor);\n if (fillColor) {\n const trail = options.particles.move.trail;\n this.trailFillColor = {\n r: fillColor.r,\n g: fillColor.g,\n b: fillColor.b,\n a: 1 / trail.length,\n };\n }\n }\n getPluginParticleColors(particle) {\n let fColor, sColor;\n for (const [, plugin] of this.container.plugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = colorToHsl(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = colorToHsl(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n }\n initStyle() {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n const originalStyle = this.originalStyle;\n if (options.fullScreen.enable) {\n this.originalStyle = deepExtend({}, element.style);\n element.style.setProperty(\"position\", \"fixed\", \"important\");\n element.style.setProperty(\"z-index\", options.fullScreen.zIndex.toString(10), \"important\");\n element.style.setProperty(\"top\", \"0\", \"important\");\n element.style.setProperty(\"left\", \"0\", \"important\");\n element.style.setProperty(\"width\", \"100%\", \"important\");\n element.style.setProperty(\"height\", \"100%\", \"important\");\n }\n else if (originalStyle) {\n element.style.position = originalStyle.position;\n element.style.zIndex = originalStyle.zIndex;\n element.style.top = originalStyle.top;\n element.style.left = originalStyle.left;\n element.style.width = originalStyle.width;\n element.style.height = originalStyle.height;\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n }\n paintBase(baseColor) {\n this.draw((ctx) => {\n paintBase(ctx, this.size, baseColor);\n });\n }\n lineStyle(p1, p2) {\n return this.draw((ctx) => {\n const options = this.container.actualOptions, connectOptions = options.interactivity.modes.connect;\n return gradient(ctx, p1, p2, connectOptions.links.opacity);\n });\n }\n}\n","import { mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from \"./Constants\";\nimport { isSsr } from \"../../Utils/Utils\";\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this.canPush = true;\n this.mouseMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchStartHandler = (e) => this.mouseTouchMove(e);\n this.touchMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchEndHandler = () => this.mouseTouchFinish();\n this.mouseLeaveHandler = () => this.mouseTouchFinish();\n this.touchCancelHandler = () => this.mouseTouchFinish();\n this.touchEndClickHandler = (e) => this.mouseTouchClick(e);\n this.mouseUpHandler = (e) => this.mouseTouchClick(e);\n this.mouseDownHandler = () => this.mouseDown();\n this.visibilityChangeHandler = () => this.handleVisibilityChange();\n this.themeChangeHandler = (e) => this.handleThemeChange(e);\n this.oldThemeChangeHandler = (e) => this.handleThemeChange(e);\n this.resizeHandler = () => this.handleWindowResize();\n }\n addListeners() {\n this.manageListeners(true);\n }\n removeListeners() {\n this.manageListeners(false);\n }\n manageListeners(add) {\n var _a;\n const container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === \"window\") {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n }\n else if (detectType === \"parent\" && container.canvas.element) {\n const canvasEl = container.canvas.element;\n container.interactivity.element = (_a = canvasEl.parentElement) !== null && _a !== void 0 ? _a : canvasEl.parentNode;\n }\n else {\n container.interactivity.element = container.canvas.element;\n }\n const mediaMatch = !isSsr() && typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\");\n if (mediaMatch) {\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", this.themeChangeHandler, add);\n }\n else if (mediaMatch.addListener !== undefined) {\n if (add) {\n mediaMatch.addListener(this.oldThemeChangeHandler);\n }\n else {\n mediaMatch.removeListener(this.oldThemeChangeHandler);\n }\n }\n }\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl;\n if (options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, mouseMoveEvent, this.mouseMoveHandler, add);\n manageListener(interactivityEl, touchStartEvent, this.touchStartHandler, add);\n manageListener(interactivityEl, touchMoveEvent, this.touchMoveHandler, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, this.touchEndHandler, add);\n }\n else {\n manageListener(interactivityEl, touchEndEvent, this.touchEndClickHandler, add);\n manageListener(interactivityEl, mouseUpEvent, this.mouseUpHandler, add);\n manageListener(interactivityEl, mouseDownEvent, this.mouseDownHandler, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, this.mouseLeaveHandler, add);\n manageListener(interactivityEl, touchCancelEvent, this.touchCancelHandler, add);\n }\n if (container.canvas.element) {\n container.canvas.element.style.pointerEvents = html === container.canvas.element ? \"initial\" : \"none\";\n }\n if (options.interactivity.events.resize) {\n if (typeof ResizeObserver !== \"undefined\") {\n if (this.resizeObserver && !add) {\n if (container.canvas.element) {\n this.resizeObserver.unobserve(container.canvas.element);\n }\n this.resizeObserver.disconnect();\n delete this.resizeObserver;\n }\n else if (!this.resizeObserver && add && container.canvas.element) {\n this.resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === container.canvas.element);\n if (!entry) {\n return;\n }\n this.handleWindowResize();\n });\n this.resizeObserver.observe(container.canvas.element);\n }\n }\n else {\n manageListener(window, resizeEvent, this.resizeHandler, add);\n }\n }\n if (document) {\n manageListener(document, visibilityChangeEvent, this.visibilityChangeHandler, add, false);\n }\n }\n handleWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n delete this.resizeTimeout;\n }\n this.resizeTimeout = setTimeout(async () => { var _a; return (_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize(); }, 500);\n }\n handleVisibilityChange() {\n const container = this.container, options = container.actualOptions;\n this.mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document === null || document === void 0 ? void 0 : document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n }\n else {\n container.draw(true);\n }\n }\n }\n mouseDown() {\n const interactivity = this.container.interactivity;\n if (interactivity) {\n const mouse = interactivity.mouse;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n }\n }\n mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container, options = container.actualOptions;\n if (!((_a = container.interactivity) === null || _a === void 0 ? void 0 : _a.element)) {\n return;\n }\n container.interactivity.mouse.inside = true;\n let pos;\n const canvas = container.canvas.element;\n if (e.type.startsWith(\"mouse\")) {\n this.canPush = true;\n const mouseEvent = e;\n if (container.interactivity.element === window) {\n if (canvas) {\n const clientRect = canvas.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === \"parent\") {\n const source = mouseEvent.target;\n const target = mouseEvent.currentTarget;\n const canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n const canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: (_b = mouseEvent.offsetX) !== null && _b !== void 0 ? _b : mouseEvent.clientX,\n y: (_c = mouseEvent.offsetY) !== null && _c !== void 0 ? _c : mouseEvent.clientY,\n };\n }\n }\n else {\n if (mouseEvent.target === container.canvas.element) {\n pos = {\n x: (_d = mouseEvent.offsetX) !== null && _d !== void 0 ? _d : mouseEvent.clientX,\n y: (_e = mouseEvent.offsetY) !== null && _e !== void 0 ? _e : mouseEvent.clientY,\n };\n }\n }\n }\n else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e;\n const lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n const canvasRect = canvas === null || canvas === void 0 ? void 0 : canvas.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - ((_f = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _f !== void 0 ? _f : 0),\n y: lastTouch.clientY - ((_g = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _g !== void 0 ? _g : 0),\n };\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n container.interactivity.mouse.position = pos;\n container.interactivity.status = mouseMoveEvent;\n }\n mouseTouchFinish() {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchClick(e) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this.doMouseTouchClick(e);\n }\n mouse.clicking = false;\n }\n doMouseTouchClick(e) {\n const container = this.container, options = container.actualOptions;\n if (this.canPush) {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n container.interactivity.mouse.clickPosition = {\n x: mousePos.x,\n y: mousePos.y,\n };\n container.interactivity.mouse.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n if (onClick.mode instanceof Array) {\n for (const mode of onClick.mode) {\n this.handleClickMode(mode);\n }\n }\n else {\n this.handleClickMode(onClick.mode);\n }\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleThemeChange(e) {\n const mediaEvent = e, themeName = mediaEvent.matches\n ? this.container.options.defaultDarkTheme\n : this.container.options.defaultLightTheme, theme = this.container.options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n this.container.loadTheme(themeName);\n }\n }\n handleClickMode(mode) {\n this.container.handleClickMode(mode);\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _InteractionManager_engine;\nexport class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n _InteractionManager_engine.set(this, void 0);\n __classPrivateFieldSet(this, _InteractionManager_engine, engine, \"f\");\n this.externalInteractors = [];\n this.particleInteractors = [];\n this.init();\n }\n init() {\n const interactors = __classPrivateFieldGet(this, _InteractionManager_engine, \"f\").plugins.getInteractors(this.container, true);\n this.externalInteractors = [];\n this.particleInteractors = [];\n for (const interactor of interactors) {\n switch (interactor.type) {\n case 0:\n this.externalInteractors.push(interactor);\n break;\n case 1:\n this.particleInteractors.push(interactor);\n break;\n }\n }\n }\n async externalInteract(delta) {\n for (const interactor of this.externalInteractors) {\n if (interactor.isEnabled()) {\n await interactor.interact(delta);\n }\n }\n }\n async particlesInteract(particle, delta) {\n for (const interactor of this.externalInteractors) {\n interactor.reset(particle);\n }\n for (const interactor of this.particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.interact(particle, delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this.externalInteractors) {\n if (interactor.handleClickMode) {\n interactor.handleClickMode(mode);\n }\n }\n }\n}\n_InteractionManager_engine = new WeakMap();\n","export class FrameManager {\n constructor(container) {\n this.container = container;\n }\n async nextFrame(timestamp) {\n var _a;\n try {\n const container = this.container;\n if (container.lastFrameTime !== undefined &&\n timestamp < container.lastFrameTime + 1000 / container.fpsLimit) {\n container.draw(false);\n return;\n }\n (_a = container.lastFrameTime) !== null && _a !== void 0 ? _a : (container.lastFrameTime = timestamp);\n const deltaValue = timestamp - container.lastFrameTime, delta = {\n value: deltaValue,\n factor: (60 * deltaValue) / 1000,\n };\n container.lifeTime += delta.value;\n container.lastFrameTime = timestamp;\n if (deltaValue > 1000) {\n container.draw(false);\n return;\n }\n await container.particles.draw(delta);\n if (container.duration > 0 && container.lifeTime > container.duration) {\n container.destroy();\n return;\n }\n if (container.getAnimationStatus()) {\n container.draw(false);\n }\n }\n catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}\n","import { Vector } from \"./Vector\";\nexport class Vector3d extends Vector {\n constructor(xOrCoords, y, z) {\n super(xOrCoords, y);\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.z = xOrCoords.z;\n }\n else if (z !== undefined) {\n this.z = z;\n }\n else {\n throw new Error(\"tsParticles - Vector not initialized correctly\");\n }\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n static get origin() {\n return Vector3d.create(0, 0, 0);\n }\n add(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z) : super.add(v);\n }\n addTo(v) {\n super.addTo(v);\n if (v instanceof Vector3d) {\n this.z += v.z;\n }\n }\n sub(v) {\n return v instanceof Vector3d ? Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z) : super.sub(v);\n }\n subFrom(v) {\n super.subFrom(v);\n if (v instanceof Vector3d) {\n this.z -= v.z;\n }\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n super.multTo(n);\n this.z *= n;\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n super.divTo(n);\n this.z /= n;\n }\n copy() {\n return Vector3d.clone(this);\n }\n setTo(v) {\n super.setTo(v);\n const v3d = v;\n if (v3d.z !== undefined) {\n this.z = v3d.z;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Particle_engine;\nimport { calcExactPositionOrRandomFromSize, clamp, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRangeMax, getRangeMin, getRangeValue, getValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils\";\nimport { colorToRgb, getHslFromAnimation } from \"../Utils/ColorUtils\";\nimport { deepExtend, isInArray, itemFromArray, loadParticlesOptions } from \"../Utils/Utils\";\nimport { Shape } from \"../Options/Classes/Particles/Shape/Shape\";\nimport { Vector } from \"./Utils/Vector\";\nimport { Vector3d } from \"./Utils/Vector3d\";\nimport { alterHsl } from \"../Utils/CanvasUtils\";\nconst fixOutMode = (data) => {\n if (!(isInArray(data.outMode, data.checkModes) || isInArray(data.outMode, data.checkModes))) {\n return;\n }\n if (data.coord > data.maxCoord - data.radius * 2) {\n data.setCb(-data.radius);\n }\n else if (data.coord < data.radius * 2) {\n data.setCb(data.radius);\n }\n};\nexport class Particle {\n constructor(engine, id, container, position, overrideOptions, group) {\n var _a, _b, _c, _d, _e, _f, _g;\n this.id = id;\n this.container = container;\n this.group = group;\n _Particle_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Particle_engine, engine, \"f\");\n this.fill = true;\n this.close = true;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.splitCount = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.outType = \"normal\";\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = loadParticlesOptions(mainOptions.particles);\n const shapeType = particlesOptions.shape.type, reduceDuplicates = particlesOptions.reduceDuplicates;\n this.shape = shapeType instanceof Array ? itemFromArray(shapeType, this.id, reduceDuplicates) : shapeType;\n if (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.shape) {\n if (overrideOptions.shape.type) {\n const overrideShapeType = overrideOptions.shape.type;\n this.shape =\n overrideShapeType instanceof Array\n ? itemFromArray(overrideShapeType, this.id, reduceDuplicates)\n : overrideShapeType;\n }\n const shapeOptions = new Shape();\n shapeOptions.load(overrideOptions.shape);\n if (this.shape) {\n this.shapeData = this.loadShapeData(shapeOptions, reduceDuplicates);\n }\n }\n else {\n this.shapeData = this.loadShapeData(particlesOptions.shape, reduceDuplicates);\n }\n if (overrideOptions !== undefined) {\n particlesOptions.load(overrideOptions);\n }\n if (((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles) !== undefined) {\n particlesOptions.load((_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.particles);\n }\n this.fill = (_d = (_c = this.shapeData) === null || _c === void 0 ? void 0 : _c.fill) !== null && _d !== void 0 ? _d : this.fill;\n this.close = (_f = (_e = this.shapeData) === null || _e === void 0 ? void 0 : _e.close) !== null && _f !== void 0 ? _f : this.close;\n this.options = particlesOptions;\n this.pathDelay = getValue(this.options.move.path.delay) * 1000;\n const zIndexValue = getRangeValue(this.options.zIndex.value);\n container.retina.initParticle(this);\n const sizeOptions = this.options.size, sizeRange = sizeOptions.value;\n this.size = {\n enable: sizeOptions.animation.enable,\n value: getRangeValue(sizeOptions.value) * container.retina.pixelRatio,\n max: getRangeMax(sizeRange) * pxRatio,\n min: getRangeMin(sizeRange) * pxRatio,\n loops: 0,\n maxLoops: getRangeValue(sizeOptions.animation.count),\n };\n const sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n this.size.status = 0;\n switch (sizeAnimation.startValue) {\n case \"min\":\n this.size.value = this.size.min;\n this.size.status = 0;\n break;\n case \"random\":\n this.size.value = randomInRange(this.size) * pxRatio;\n this.size.status = Math.random() >= 0.5 ? 0 : 1;\n break;\n case \"max\":\n default:\n this.size.value = this.size.max;\n this.size.status = 1;\n break;\n }\n this.size.velocity =\n (((_g = this.retina.sizeAnimationSpeed) !== null && _g !== void 0 ? _g : container.retina.sizeAnimationSpeed) / 100) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n this.size.velocity *= Math.random();\n }\n }\n this.bubble = {\n inRange: false,\n };\n this.position = this.calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size, moveCenterPerc = this.options.move.center;\n this.moveCenter = {\n x: (canvasSize.width * moveCenterPerc.x) / 100,\n y: (canvasSize.height * moveCenterPerc.y) / 100,\n radius: this.options.move.center.radius,\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case \"inside\":\n this.outType = \"inside\";\n break;\n case \"outside\":\n this.outType = \"outside\";\n break;\n }\n this.initialVelocity = this.calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = 1 - getRangeValue(this.options.move.decay);\n const gravityOptions = this.options.move.gravity;\n this.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n this.offset = Vector.origin;\n const particles = container.particles;\n particles.needsSort = particles.needsSort || particles.lastZIndex < this.position.z;\n particles.lastZIndex = this.position.z;\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let drawer = container.drawers.get(this.shape);\n if (!drawer) {\n drawer = __classPrivateFieldGet(this, _Particle_engine, \"f\").plugins.getShapeDrawer(this.shape);\n if (drawer) {\n container.drawers.set(this.shape, drawer);\n }\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.loadShape) {\n drawer === null || drawer === void 0 ? void 0 : drawer.loadShape(this);\n }\n const sideCountFunc = drawer === null || drawer === void 0 ? void 0 : drawer.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.life = this.loadLife();\n this.spawning = this.life.delay > 0;\n this.shadowColor = colorToRgb(this.options.shadow.color);\n for (const updater of container.particles.updaters) {\n if (updater.init) {\n updater.init(this);\n }\n }\n for (const mover of container.particles.movers) {\n if (mover.init) {\n mover.init(this);\n }\n }\n if (drawer && drawer.particleInit) {\n drawer.particleInit(container, this);\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.particleCreated) {\n plugin.particleCreated(this);\n }\n }\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size;\n return (this.position.x >= -radius &&\n this.position.y >= -radius &&\n this.position.y <= canvasSize.height + radius &&\n this.position.x <= canvasSize.width + radius);\n }\n draw(delta) {\n const container = this.container;\n for (const [, plugin] of container.plugins) {\n container.canvas.drawParticlePlugin(plugin, this, delta);\n }\n container.canvas.drawParticle(this, delta);\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n var _a;\n return (_a = this.bubble.radius) !== null && _a !== void 0 ? _a : this.size.value;\n }\n getMass() {\n return (this.getRadius() ** 2 * Math.PI) / 2;\n }\n getFillColor() {\n var _a, _b;\n const color = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.color);\n if (color && this.roll && (this.backColor || this.roll.alter)) {\n const backFactor = this.options.roll.mode === \"both\" ? 2 : 1, backSum = this.options.roll.mode === \"horizontal\" ? Math.PI / 2 : 0, rolled = Math.floor((((_b = this.roll.angle) !== null && _b !== void 0 ? _b : 0) + backSum) / (Math.PI / backFactor)) % 2;\n if (rolled) {\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n }\n }\n return color;\n }\n getStrokeColor() {\n var _a, _b;\n return (_b = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.strokeColor)) !== null && _b !== void 0 ? _b : this.getFillColor();\n }\n destroy(override) {\n this.destroyed = true;\n this.bubble.inRange = false;\n if (this.unbreakable) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (plugin.particleDestroyed) {\n plugin.particleDestroyed(this, override);\n }\n }\n if (override) {\n return;\n }\n const destroyOptions = this.options.destroy;\n if (destroyOptions.mode === \"split\") {\n this.split();\n }\n }\n reset() {\n if (this.opacity) {\n this.opacity.loops = 0;\n }\n this.size.loops = 0;\n }\n split() {\n const splitOptions = this.options.destroy.split;\n if (splitOptions.count >= 0 && this.splitCount++ > splitOptions.count) {\n return;\n }\n const rate = getValue(splitOptions.rate);\n for (let i = 0; i < rate; i++) {\n this.container.particles.addSplitParticle(this);\n }\n }\n calcPosition(container, position, zIndex, tryCount = 0) {\n var _a, _b, _c, _d;\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos !== undefined) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position,\n }), pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-horizontal\"],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-vertical\"],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal((_a = outModes.left) !== null && _a !== void 0 ? _a : outModes.default);\n fixHorizontal((_b = outModes.right) !== null && _b !== void 0 ? _b : outModes.default);\n fixVertical((_c = outModes.top) !== null && _c !== void 0 ? _c : outModes.default);\n fixVertical((_d = outModes.bottom) !== null && _d !== void 0 ? _d : outModes.default);\n if (this.checkOverlap(pos, tryCount)) {\n return this.calcPosition(container, undefined, zIndex, tryCount + 1);\n }\n return pos;\n }\n checkOverlap(pos, tryCount = 0) {\n const collisionsOptions = this.options.collisions, radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= 0 && tryCount > retries) {\n throw new Error(\"Particle is overlapping and can't be placed\");\n }\n let overlaps = false;\n for (const particle of this.container.particles.array) {\n if (getDistance(pos, particle.position) < radius + particle.getRadius()) {\n overlaps = true;\n break;\n }\n }\n return overlaps;\n }\n calculateVelocity() {\n const baseVelocity = getParticleBaseVelocity(this.direction);\n const res = baseVelocity.copy();\n const moveOptions = this.options.move;\n if (moveOptions.direction === \"inside\" || moveOptions.direction === \"outside\") {\n return res;\n }\n const rad = (Math.PI / 180) * getRangeValue(moveOptions.angle.value);\n const radOffset = (Math.PI / 180) * getRangeValue(moveOptions.angle.offset);\n const range = {\n left: radOffset - rad / 2,\n right: radOffset + rad / 2,\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= Math.random();\n }\n return res;\n }\n loadShapeData(shapeOptions, reduceDuplicates) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n return deepExtend({}, shapeData instanceof Array ? itemFromArray(shapeData, this.id, reduceDuplicates) : shapeData);\n }\n }\n loadLife() {\n const container = this.container, particlesOptions = this.options, lifeOptions = particlesOptions.life, life = {\n delay: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n delayTime: 0,\n duration: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n time: 0,\n count: particlesOptions.life.count,\n };\n if (life.duration <= 0) {\n life.duration = -1;\n }\n if (life.count <= 0) {\n life.count = -1;\n }\n return life;\n }\n}\n_Particle_engine = new WeakMap();\n","export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Particles_engine;\nimport { calcPositionFromSize, getRangeMax, getRangeMin, getValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils\";\nimport { InteractionManager } from \"./Utils/InteractionManager\";\nimport { Particle } from \"./Particle\";\nimport { Point } from \"./Utils/Point\";\nimport { QuadTree } from \"./Utils/QuadTree\";\nimport { Rectangle } from \"./Utils/Rectangle\";\nimport { loadParticlesOptions } from \"../Utils/Utils\";\nexport class Particles {\n constructor(engine, container) {\n this.container = container;\n _Particles_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Particles_engine, engine, \"f\");\n this.nextId = 0;\n this.array = [];\n this.zArray = [];\n this.limit = 0;\n this.needsSort = false;\n this.lastZIndex = 0;\n this.freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n this.interactionManager = new InteractionManager(__classPrivateFieldGet(this, _Particles_engine, \"f\"), container);\n const canvasSize = this.container.canvas.size;\n this.linksColors = new Map();\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.movers = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getMovers(container, true);\n this.updaters = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getUpdaters(container, true);\n }\n get count() {\n return this.array.length;\n }\n init() {\n var _a;\n const container = this.container, options = container.actualOptions;\n this.lastZIndex = 0;\n this.needsSort = false;\n this.freqs.links = new Map();\n this.freqs.triangles = new Map();\n let handled = false;\n this.updaters = __classPrivateFieldGet(this, _Particles_engine, \"f\").plugins.getUpdaters(container, true);\n this.interactionManager.init();\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n for (const group in options.particles.groups) {\n const groupOptions = options.particles.groups[group];\n for (let i = this.count, j = 0; j < ((_a = groupOptions.number) === null || _a === void 0 ? void 0 : _a.value) && i < options.particles.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < options.particles.number.value; i++) {\n this.addParticle();\n }\n }\n container.pathGenerator.init(container);\n }\n async redraw() {\n this.clear();\n this.init();\n await this.draw({ value: 0, factor: 0 });\n }\n removeAt(index, quantity = 1, group, override) {\n if (!(index >= 0 && index <= this.count)) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n const particle = this.array[i];\n if (!particle || particle.group !== group) {\n continue;\n }\n particle.destroy(override);\n this.array.splice(i--, 1);\n const zIdx = this.zArray.indexOf(particle);\n this.zArray.splice(zIdx, 1);\n deleted++;\n __classPrivateFieldGet(this, _Particles_engine, \"f\").dispatchEvent(\"particleRemoved\", {\n container: this.container,\n data: {\n particle,\n },\n });\n }\n }\n remove(particle, group, override) {\n this.removeAt(this.array.indexOf(particle), undefined, group, override);\n }\n async update(delta) {\n const container = this.container, particlesToDelete = [];\n container.pathGenerator.update();\n for (const [, plugin] of container.plugins) {\n if (plugin.update !== undefined) {\n plugin.update(delta);\n }\n }\n for (const particle of this.array) {\n const resizeFactor = container.canvas.resizeFactor;\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n particle.bubble.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n if (plugin.particleUpdate) {\n plugin.particleUpdate(particle, delta);\n }\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.push(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n for (const particle of particlesToDelete) {\n this.remove(particle);\n }\n await this.interactionManager.externalInteract(delta);\n for (const particle of container.particles.array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n await this.interactionManager.particlesInteract(particle, delta);\n }\n }\n delete container.canvas.resizeFactor;\n }\n async draw(delta) {\n const container = this.container, canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n container.canvas.clear();\n await this.update(delta);\n if (this.needsSort) {\n this.zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;\n this.needsSort = false;\n }\n for (const [, plugin] of container.plugins) {\n container.canvas.drawPlugin(plugin, delta);\n }\n for (const p of this.zArray) {\n p.draw(delta);\n }\n }\n clear() {\n this.array = [];\n this.zArray = [];\n }\n push(nb, mouse, overrideOptions, group) {\n this.pushing = true;\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse === null || mouse === void 0 ? void 0 : mouse.position, overrideOptions, group);\n }\n this.pushing = false;\n }\n addParticle(position, overrideOptions, group) {\n const container = this.container, options = container.actualOptions, limit = options.particles.number.limit * container.density;\n if (limit > 0) {\n const countToRemove = this.count + 1 - limit;\n if (countToRemove > 0) {\n this.removeQuantity(countToRemove);\n }\n }\n return this.pushParticle(position, overrideOptions, group);\n }\n addSplitParticle(parent) {\n const splitOptions = parent.options.destroy.split;\n const options = loadParticlesOptions(parent.options);\n const factor = getValue(splitOptions.factor);\n options.color.load({\n value: {\n hsl: parent.getFillColor(),\n },\n });\n if (typeof options.size.value === \"number\") {\n options.size.value /= factor;\n }\n else {\n options.size.value.min /= factor;\n options.size.value.max /= factor;\n }\n options.load(splitOptions.particles);\n const offset = splitOptions.sizeOffset ? setRangeValue(-parent.size.value, parent.size.value) : 0, position = {\n x: parent.position.x + randomInRange(offset),\n y: parent.position.y + randomInRange(offset),\n };\n return this.pushParticle(position, options, parent.group, (particle) => {\n if (particle.size.value < 0.5) {\n return false;\n }\n particle.velocity.length = randomInRange(setRangeValue(parent.velocity.length, particle.velocity.length));\n particle.splitCount = parent.splitCount + 1;\n particle.unbreakable = true;\n setTimeout(() => {\n particle.unbreakable = false;\n }, 500);\n return true;\n });\n }\n removeQuantity(quantity, group) {\n this.removeAt(0, quantity, group);\n }\n getLinkFrequency(p1, p2) {\n const range = setRangeValue(p1.id, p2.id), key = `${getRangeMin(range)}_${getRangeMax(range)}`;\n let res = this.freqs.links.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.links.set(key, res);\n }\n return res;\n }\n getTriangleFrequency(p1, p2, p3) {\n let [id1, id2, id3] = [p1.id, p2.id, p3.id];\n if (id1 > id2) {\n [id2, id1] = [id1, id2];\n }\n if (id2 > id3) {\n [id3, id2] = [id2, id3];\n }\n if (id1 > id3) {\n [id3, id1] = [id1, id3];\n }\n const key = `${id1}_${id2}_${id3}`;\n let res = this.freqs.triangles.get(key);\n if (res === undefined) {\n res = Math.random();\n this.freqs.triangles.set(key, res);\n }\n return res;\n }\n addManualParticles() {\n const container = this.container, options = container.actualOptions;\n for (const particle of options.manualParticles) {\n this.addParticle(calcPositionFromSize({\n size: container.canvas.size,\n position: particle.position,\n }), particle.options);\n }\n }\n setDensity() {\n const options = this.container.actualOptions;\n for (const group in options.particles.groups) {\n this.applyDensity(options.particles.groups[group], 0, group);\n }\n this.applyDensity(options.particles, options.manualParticles.length);\n }\n handleClickMode(mode) {\n this.interactionManager.handleClickMode(mode);\n }\n applyDensity(options, manualCount, group) {\n var _a;\n if (!((_a = options.number.density) === null || _a === void 0 ? void 0 : _a.enable)) {\n return;\n }\n const numberOptions = options.number, densityFactor = this.initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.array.filter((t) => t.group === group).length);\n this.limit = numberOptions.limit * densityFactor;\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n }\n initDensityFactor(densityOptions) {\n const container = this.container;\n if (!container.canvas.element || !densityOptions.enable) {\n return 1;\n }\n const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.factor * pxRatio ** 2 * densityOptions.area);\n }\n pushParticle(position, overrideOptions, group, initializer) {\n try {\n const particle = new Particle(__classPrivateFieldGet(this, _Particles_engine, \"f\"), this.nextId, this.container, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this.array.push(particle);\n this.zArray.push(particle);\n this.nextId++;\n __classPrivateFieldGet(this, _Particles_engine, \"f\").dispatchEvent(\"particleAdded\", {\n container: this.container,\n data: {\n particle,\n },\n });\n return particle;\n }\n catch (e) {\n console.warn(`error adding particle: ${e}`);\n return;\n }\n }\n}\n_Particles_engine = new WeakMap();\n","export class Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y,\n };\n }\n}\n","import { Range } from \"./Range\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class Circle extends Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return getDistance(point, this.position) <= this.radius;\n }\n intersects(range) {\n const rect = range, circle = range, pos1 = this.position, pos2 = range.position, xDist = Math.abs(pos2.x - pos1.x), yDist = Math.abs(pos2.y - pos1.y), r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius, dist = Math.sqrt(xDist * xDist + yDist + yDist);\n return rSum > dist;\n }\n else if (rect.size !== undefined) {\n const w = rect.size.width, h = rect.size.height, edges = Math.pow(xDist - w, 2) + Math.pow(yDist - h, 2);\n if (xDist > r + w || yDist > r + h) {\n return false;\n }\n if (xDist <= w || yDist <= h) {\n return true;\n }\n return edges <= r * r;\n }\n return false;\n }\n}\n","import { Range } from \"./Range\";\nexport class Rectangle extends Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width, h = this.size.height, pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n const rect = range, circle = range, w = this.size.width, h = this.size.height, pos1 = this.position, pos2 = range.position;\n if (circle.radius !== undefined) {\n return circle.intersects(this);\n }\n if (!rect.size) {\n return false;\n }\n const size2 = rect.size, w2 = size2.width, h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}\n","import { Circle } from \"./Circle\";\nimport { Rectangle } from \"./Rectangle\";\nexport class CircleWarp extends Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = Object.assign({}, canvasSize);\n }\n contains(point) {\n if (super.contains(point)) {\n return true;\n }\n const posNE = {\n x: point.x - this.canvasSize.width,\n y: point.y,\n };\n if (super.contains(posNE)) {\n return true;\n }\n const posSE = {\n x: point.x - this.canvasSize.width,\n y: point.y - this.canvasSize.height,\n };\n if (super.contains(posSE)) {\n return true;\n }\n const posSW = {\n x: point.x,\n y: point.y - this.canvasSize.height,\n };\n return super.contains(posSW);\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range, circle = range, newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\n","import { Circle } from \"./Circle\";\nimport { CircleWarp } from \"./CircleWarp\";\nimport { Rectangle } from \"./Rectangle\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this.points = [];\n this.divided = false;\n }\n insert(point) {\n var _a, _b, _c, _d, _e;\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this.points.length < this.capacity) {\n this.points.push(point);\n return true;\n }\n if (!this.divided) {\n this.subdivide();\n }\n return ((_e = (((_a = this.northEast) === null || _a === void 0 ? void 0 : _a.insert(point)) ||\n ((_b = this.northWest) === null || _b === void 0 ? void 0 : _b.insert(point)) ||\n ((_c = this.southEast) === null || _c === void 0 ? void 0 : _c.insert(point)) ||\n ((_d = this.southWest) === null || _d === void 0 ? void 0 : _d.insert(point)))) !== null && _e !== void 0 ? _e : false);\n }\n queryCircle(position, radius) {\n return this.query(new Circle(position.x, position.y, radius));\n }\n queryCircleWarp(position, radius, containerOrSize) {\n const container = containerOrSize, size = containerOrSize;\n return this.query(new CircleWarp(position.x, position.y, radius, container.canvas !== undefined ? container.canvas.size : size));\n }\n queryRectangle(position, size) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height));\n }\n query(range, found) {\n var _a, _b, _c, _d;\n const res = found !== null && found !== void 0 ? found : [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this.points) {\n if (!range.contains(p.position) && getDistance(range.position, p.position) > p.particle.getRadius()) {\n continue;\n }\n res.push(p.particle);\n }\n if (this.divided) {\n (_a = this.northEast) === null || _a === void 0 ? void 0 : _a.query(range, res);\n (_b = this.northWest) === null || _b === void 0 ? void 0 : _b.query(range, res);\n (_c = this.southEast) === null || _c === void 0 ? void 0 : _c.query(range, res);\n (_d = this.southWest) === null || _d === void 0 ? void 0 : _d.query(range, res);\n }\n return res;\n }\n subdivide() {\n const x = this.rectangle.position.x, y = this.rectangle.position.y, w = this.rectangle.size.width, h = this.rectangle.size.height, capacity = this.capacity;\n this.northEast = new QuadTree(new Rectangle(x, y, w / 2, h / 2), capacity);\n this.northWest = new QuadTree(new Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this.southEast = new QuadTree(new Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this.southWest = new QuadTree(new Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this.divided = true;\n }\n}\n","import { getRangeValue } from \"../Utils/NumberUtils\";\nimport { isSsr } from \"../Utils/Utils\";\nexport class Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? 1 : window.devicePixelRatio;\n const motionOptions = this.container.actualOptions.motion;\n if (motionOptions && (motionOptions.disable || motionOptions.reduce.value)) {\n if (isSsr() || typeof matchMedia === \"undefined\" || !matchMedia) {\n this.reduceFactor = 1;\n }\n else {\n const mediaQuery = matchMedia(\"(prefers-reduced-motion: reduce)\");\n if (mediaQuery) {\n this.handleMotionChange(mediaQuery);\n const handleChange = () => {\n this.handleMotionChange(mediaQuery);\n container.refresh().catch(() => {\n });\n };\n if (mediaQuery.addEventListener !== undefined) {\n mediaQuery.addEventListener(\"change\", handleChange);\n }\n else if (mediaQuery.addListener !== undefined) {\n mediaQuery.addListener(handleChange);\n }\n }\n }\n }\n else {\n this.reduceFactor = 1;\n }\n const ratio = this.pixelRatio;\n if (container.canvas.element) {\n const element = container.canvas.element;\n container.canvas.size.width = element.offsetWidth * ratio;\n container.canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles;\n this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;\n this.linksDistance = particles.links.distance * ratio;\n this.linksWidth = particles.links.width * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;\n const modes = options.interactivity.modes;\n this.connectModeDistance = modes.connect.distance * ratio;\n this.connectModeRadius = modes.connect.radius * ratio;\n this.grabModeDistance = modes.grab.distance * ratio;\n this.repulseModeDistance = modes.repulse.distance * ratio;\n this.bounceModeDistance = modes.bounce.distance * ratio;\n this.attractModeDistance = modes.attract.distance * ratio;\n this.slowModeRadius = modes.slow.radius * ratio;\n this.bubbleModeDistance = modes.bubble.distance * ratio;\n if (modes.bubble.size) {\n this.bubbleModeSize = modes.bubble.size * ratio;\n }\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveDistance = options.move.distance, props = particle.retina;\n props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;\n props.linksDistance = options.links.distance * ratio;\n props.linksWidth = options.links.width * ratio;\n props.moveDrift = getRangeValue(options.move.drift) * ratio;\n props.moveSpeed = getRangeValue(options.move.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;\n }\n handleMotionChange(mediaQuery) {\n const options = this.container.actualOptions;\n if (mediaQuery.matches) {\n const motion = options.motion;\n this.reduceFactor = motion.disable ? 0 : motion.reduce.value ? 1 / motion.reduce.factor : 1;\n }\n else {\n this.reduceFactor = 1;\n }\n }\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Container_engine;\nimport { animate, cancelAnimation, loadContainerOptions } from \"../Utils/Utils\";\nimport { Canvas } from \"./Canvas\";\nimport { EventListeners } from \"./Utils/EventListeners\";\nimport { FrameManager } from \"./Utils/FrameManager\";\nimport { Particles } from \"./Particles\";\nimport { Retina } from \"./Retina\";\nimport { getRangeValue } from \"../Utils/NumberUtils\";\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this.id = id;\n _Container_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Container_engine, engine, \"f\");\n this.fpsLimit = 120;\n this.duration = 0;\n this.lifeTime = 0;\n this.firstStart = true;\n this.started = false;\n this.destroyed = false;\n this.paused = true;\n this.lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this);\n this.particles = new Particles(__classPrivateFieldGet(this, _Container_engine, \"f\"), this);\n this.drawer = new FrameManager(this);\n this.pathGenerator = {\n generate: (p) => {\n const v = p.velocity.copy();\n v.angle += (v.length * Math.PI) / 180;\n return v;\n },\n init: () => {\n },\n update: () => {\n },\n };\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.plugins = new Map();\n this.drawers = new Map();\n this.density = 1;\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n this.actualOptions = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n this.eventListeners = new EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this.intersectionObserver = new IntersectionObserver((entries) => this.intersectionManager(entries));\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerBuilt\", { container: this });\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n play(force) {\n const needsUpdate = this.paused || force;\n if (this.firstStart && !this.actualOptions.autoPlay) {\n this.firstStart = false;\n return;\n }\n if (this.paused) {\n this.paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerPlay\", { container: this });\n this.draw(needsUpdate || false);\n }\n pause() {\n if (this.drawAnimationFrame !== undefined) {\n cancelAnimation()(this.drawAnimationFrame);\n delete this.drawAnimationFrame;\n }\n if (this.paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.pause) {\n plugin.pause();\n }\n }\n if (!this.pageHidden) {\n this.paused = true;\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerPaused\", { container: this });\n }\n draw(force) {\n let refreshTime = force;\n this.drawAnimationFrame = animate()(async (timestamp) => {\n if (refreshTime) {\n this.lastFrameTime = undefined;\n refreshTime = false;\n }\n await this.drawer.nextFrame(timestamp);\n });\n }\n getAnimationStatus() {\n return !this.paused && !this.pageHidden;\n }\n setNoise(noiseOrGenerator, init, update) {\n this.setPath(noiseOrGenerator, init, update);\n }\n setPath(pathOrGenerator, init, update) {\n var _a, _b, _c;\n if (!pathOrGenerator) {\n return;\n }\n if (typeof pathOrGenerator === \"function\") {\n this.pathGenerator.generate = pathOrGenerator;\n if (init) {\n this.pathGenerator.init = init;\n }\n if (update) {\n this.pathGenerator.update = update;\n }\n }\n else {\n const oldGenerator = this.pathGenerator;\n this.pathGenerator = pathOrGenerator;\n (_a = this.pathGenerator).generate || (_a.generate = oldGenerator.generate);\n (_b = this.pathGenerator).init || (_b.init = oldGenerator.init);\n (_c = this.pathGenerator).update || (_c.update = oldGenerator.update);\n }\n }\n destroy() {\n this.stop();\n this.canvas.destroy();\n for (const [, drawer] of this.drawers) {\n if (drawer.destroy) {\n drawer.destroy(this);\n }\n }\n for (const key of this.drawers.keys()) {\n this.drawers.delete(key);\n }\n this.destroyed = true;\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerDestroyed\", { container: this });\n }\n exportImg(callback) {\n this.exportImage(callback);\n }\n exportImage(callback, type, quality) {\n var _a;\n return (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.toBlob(callback, type !== null && type !== void 0 ? type : \"image/png\", quality);\n }\n exportConfiguration() {\n return JSON.stringify(this.actualOptions, undefined, 2);\n }\n refresh() {\n this.stop();\n return this.start();\n }\n reset() {\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"));\n return this.refresh();\n }\n stop() {\n if (!this.started) {\n return;\n }\n this.firstStart = true;\n this.started = false;\n this.eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.clear();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.stop) {\n plugin.stop();\n }\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this.particles.linksColors = new Map();\n delete this.particles.grabLineColor;\n delete this.particles.linksColor;\n this._sourceOptions = this._options;\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerStopped\", { container: this });\n }\n async loadTheme(name) {\n this.currentTheme = name;\n await this.refresh();\n }\n async start() {\n if (this.started) {\n return;\n }\n await this.init();\n this.started = true;\n this.eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.startAsync !== undefined) {\n await plugin.startAsync();\n }\n else if (plugin.start !== undefined) {\n plugin.start();\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerStarted\", { container: this });\n this.play();\n }\n addClickHandler(callback) {\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (this.destroyed) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (this.destroyed) {\n return;\n }\n const mouseEvent = e, pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos, 1);\n };\n const touchStartHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (this.destroyed) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n var _a, _b, _c;\n if (this.destroyed) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - 1];\n if (!lastTouch) {\n return;\n }\n }\n const canvasRect = (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(), pos = {\n x: lastTouch.clientX - ((_b = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _b !== void 0 ? _b : 0),\n y: lastTouch.clientY - ((_c = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _c !== void 0 ? _c : 0),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (this.destroyed) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false;\n let touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n handleClickMode(mode) {\n this.particles.handleClickMode(mode);\n for (const [, plugin] of this.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\n }\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this.currentTheme);\n if (this.responsiveMaxWidth != newMaxWidth) {\n this.responsiveMaxWidth = newMaxWidth;\n return true;\n }\n return false;\n }\n async init() {\n const shapes = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n this._options = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(__classPrivateFieldGet(this, _Container_engine, \"f\"), this._options);\n this.retina.init();\n this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this.duration = getRangeValue(this.actualOptions.duration);\n this.lifeTime = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120;\n const availablePlugins = __classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n for (const [, drawer] of this.drawers) {\n if (drawer.init) {\n await drawer.init(this);\n }\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.init) {\n plugin.init(this.actualOptions);\n }\n else if (plugin.initAsync !== undefined) {\n await plugin.initAsync(this.actualOptions);\n }\n }\n const pathOptions = this.actualOptions.particles.move.path;\n if (pathOptions.generator) {\n this.setPath(__classPrivateFieldGet(this, _Container_engine, \"f\").plugins.getPathGenerator(pathOptions.generator));\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"containerInit\", { container: this });\n this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n if (plugin.particlesSetup !== undefined) {\n plugin.particlesSetup();\n }\n }\n __classPrivateFieldGet(this, _Container_engine, \"f\").dispatchEvent(\"particlesSetup\", { container: this });\n }\n intersectionManager(entries) {\n if (!this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n this.play();\n }\n else {\n this.pause();\n }\n }\n }\n}\n_Container_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Loader_engine;\nimport { Container } from \"./Container\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nimport { itemFromArray } from \"../Utils/Utils\";\nfunction fetchError(statusCode) {\n console.error(`Error tsParticles - fetch status: ${statusCode}`);\n console.error(\"Error tsParticles - File config not found\");\n}\nexport class Loader {\n constructor(engine) {\n _Loader_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Loader_engine, engine, \"f\");\n }\n dom() {\n return __classPrivateFieldGet(this, _Loader_engine, \"f\").domArray;\n }\n domItem(index) {\n const dom = this.dom();\n const item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n async loadOptions(params) {\n var _a, _b, _c;\n const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(Math.random() * 10000)}`, { options, index } = params;\n let domContainer = (_b = params.element) !== null && _b !== void 0 ? _b : document.getElementById(tagId);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = tagId;\n (_c = document.querySelector(\"body\")) === null || _c === void 0 ? void 0 : _c.append(domContainer);\n }\n const currentOptions = options instanceof Array ? itemFromArray(options, index) : options, dom = this.dom(), oldIndex = dom.findIndex((v) => v.id === tagId);\n if (oldIndex >= 0) {\n const old = this.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n dom.splice(oldIndex, 1);\n }\n }\n let canvasEl;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n canvasEl.dataset[generatedAttribute] = \"false\";\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n canvasEl.dataset[generatedAttribute] = \"false\";\n }\n else {\n canvasEl = document.createElement(\"canvas\");\n canvasEl.dataset[generatedAttribute] = \"true\";\n canvasEl.style.width = \"100%\";\n canvasEl.style.height = \"100%\";\n domContainer.appendChild(canvasEl);\n }\n }\n const newItem = new Container(__classPrivateFieldGet(this, _Loader_engine, \"f\"), tagId, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n }\n else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n async loadRemoteOptions(params) {\n const { url: jsonUrl, index } = params, url = jsonUrl instanceof Array ? itemFromArray(jsonUrl, index) : jsonUrl;\n if (!url) {\n return;\n }\n const response = await fetch(url);\n if (!response.ok) {\n fetchError(response.status);\n return;\n }\n const data = await response.json();\n return this.loadOptions({\n tagId: params.tagId,\n element: params.element,\n index,\n options: data,\n });\n }\n load(tagId, options, index) {\n const params = { index };\n if (typeof tagId === \"string\") {\n params.tagId = tagId;\n }\n else {\n params.options = tagId;\n }\n if (typeof options === \"number\") {\n params.index = options !== null && options !== void 0 ? options : params.index;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async set(id, domContainer, options, index) {\n const params = { index };\n if (typeof id === \"string\") {\n params.tagId = id;\n }\n else {\n params.element = id;\n }\n if (domContainer instanceof HTMLElement) {\n params.element = domContainer;\n }\n else {\n params.options = domContainer;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async loadJSON(tagId, jsonUrl, index) {\n let url, id;\n if (typeof jsonUrl === \"number\" || jsonUrl === undefined) {\n url = tagId;\n }\n else {\n id = tagId;\n url = jsonUrl;\n }\n return this.loadRemoteOptions({ tagId: id, url, index });\n }\n async setJSON(id, domContainer, jsonUrl, index) {\n let url, newId, newIndex, element;\n if (id instanceof HTMLElement) {\n element = id;\n url = domContainer;\n newIndex = jsonUrl;\n }\n else {\n newId = id;\n element = domContainer;\n url = jsonUrl;\n newIndex = index;\n }\n return this.loadRemoteOptions({ tagId: newId, url, index: newIndex, element });\n }\n setOnClickHandler(callback) {\n const dom = this.dom();\n if (!dom.length) {\n throw new Error(\"Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()\");\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n addEventListener(type, listener) {\n __classPrivateFieldGet(this, _Loader_engine, \"f\").eventDispatcher.addEventListener(type, listener);\n }\n removeEventListener(type, listener) {\n __classPrivateFieldGet(this, _Loader_engine, \"f\").eventDispatcher.removeEventListener(type, listener);\n }\n dispatchEvent(type, args) {\n __classPrivateFieldGet(this, _Loader_engine, \"f\").eventDispatcher.dispatchEvent(type, args);\n }\n}\n_Loader_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Plugins_engine;\nexport class Plugins {\n constructor(engine) {\n _Plugins_engine.set(this, void 0);\n __classPrivateFieldSet(this, _Plugins_engine, engine, \"f\");\n this.plugins = [];\n this.interactorsInitializers = new Map();\n this.moversInitializers = new Map();\n this.updatersInitializers = new Map();\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.drawers = new Map();\n this.pathGenerators = new Map();\n }\n getPlugin(plugin) {\n return this.plugins.find((t) => t.id === plugin);\n }\n addPlugin(plugin) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n }\n getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (!plugin.needsPlugin(container.actualOptions)) {\n continue;\n }\n res.set(plugin.id, plugin.getPlugin(container));\n }\n return res;\n }\n loadOptions(options, sourceOptions) {\n for (const plugin of this.plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n addPreset(presetKey, options, override = false) {\n if (override || !this.getPreset(presetKey)) {\n this.presets.set(presetKey, options);\n }\n }\n getShapeDrawer(type) {\n return this.drawers.get(type);\n }\n addShapeDrawer(type, drawer) {\n if (!this.getShapeDrawer(type)) {\n this.drawers.set(type, drawer);\n }\n }\n getSupportedShapes() {\n return this.drawers.keys();\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n addPathGenerator(type, pathGenerator) {\n if (!this.getPathGenerator(type)) {\n this.pathGenerators.set(type, pathGenerator);\n }\n }\n getInteractors(container, force = false) {\n let res = this.interactors.get(container);\n if (!res || force) {\n res = [...this.interactorsInitializers.values()].map((t) => t(container));\n this.interactors.set(container, res);\n }\n return res;\n }\n addInteractor(name, initInteractor) {\n this.interactorsInitializers.set(name, initInteractor);\n }\n getUpdaters(container, force = false) {\n let res = this.updaters.get(container);\n if (!res || force) {\n res = [...this.updatersInitializers.values()].map((t) => t(container));\n this.updaters.set(container, res);\n }\n return res;\n }\n addParticleUpdater(name, initUpdater) {\n this.updatersInitializers.set(name, initUpdater);\n }\n getMovers(container, force = false) {\n let res = this.movers.get(container);\n if (!res || force) {\n res = [...this.moversInitializers.values()].map((t) => t(container));\n this.movers.set(container, res);\n }\n return res;\n }\n addParticleMover(name, initMover) {\n this.moversInitializers.set(name, initMover);\n }\n}\n_Plugins_engine = new WeakMap();\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Engine_initialized, _Engine_loader;\nimport { EventDispatcher } from \"./Utils/EventDispatcher\";\nimport { Loader } from \"./Core/Loader\";\nimport { Plugins } from \"./Core/Utils/Plugins\";\nexport class Engine {\n constructor() {\n _Engine_initialized.set(this, void 0);\n _Engine_loader.set(this, void 0);\n this.domArray = [];\n this.eventDispatcher = new EventDispatcher();\n __classPrivateFieldSet(this, _Engine_initialized, false, \"f\");\n __classPrivateFieldSet(this, _Engine_loader, new Loader(this), \"f\");\n this.plugins = new Plugins(this);\n }\n init() {\n if (!__classPrivateFieldGet(this, _Engine_initialized, \"f\")) {\n __classPrivateFieldSet(this, _Engine_initialized, true, \"f\");\n }\n }\n async loadFromArray(tagId, options, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").load(tagId, options, index);\n }\n async load(tagId, options) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").load(tagId, options);\n }\n async set(id, element, options) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").set(id, element, options);\n }\n async loadJSON(tagId, pathConfigJson, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").loadJSON(tagId, pathConfigJson, index);\n }\n async setJSON(id, element, pathConfigJson, index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").setJSON(id, element, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").setOnClickHandler(callback);\n }\n dom() {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").dom();\n }\n domItem(index) {\n return __classPrivateFieldGet(this, _Engine_loader, \"f\").domItem(index);\n }\n async refresh() {\n for (const instance of this.dom()) {\n await instance.refresh();\n }\n }\n async addShape(shape, drawer, init, afterEffect, destroy) {\n let customDrawer;\n if (typeof drawer === \"function\") {\n customDrawer = {\n afterEffect: afterEffect,\n destroy: destroy,\n draw: drawer,\n init: init,\n };\n }\n else {\n customDrawer = drawer;\n }\n this.plugins.addShapeDrawer(shape, customDrawer);\n await this.refresh();\n }\n async addPreset(preset, options, override = false) {\n this.plugins.addPreset(preset, options, override);\n await this.refresh();\n }\n async addPlugin(plugin) {\n this.plugins.addPlugin(plugin);\n await this.refresh();\n }\n async addPathGenerator(name, generator) {\n this.plugins.addPathGenerator(name, generator);\n await this.refresh();\n }\n async addInteractor(name, interactorInitializer) {\n this.plugins.addInteractor(name, interactorInitializer);\n await this.refresh();\n }\n async addMover(name, moverInitializer) {\n this.plugins.addParticleMover(name, moverInitializer);\n await this.refresh();\n }\n async addParticleUpdater(name, updaterInitializer) {\n this.plugins.addParticleUpdater(name, updaterInitializer);\n await this.refresh();\n }\n addEventListener(type, listener) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").addEventListener(type, listener);\n }\n removeEventListener(type, listener) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").removeEventListener(type, listener);\n }\n dispatchEvent(type, args) {\n __classPrivateFieldGet(this, _Engine_loader, \"f\").dispatchEvent(type, args);\n }\n}\n_Engine_initialized = new WeakMap(), _Engine_loader = new WeakMap();\n","export class ExternalInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 0;\n }\n}\n","export class ParticlesInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = 1;\n }\n}\n","import { Engine } from \"./engine\";\nconst tsParticles = new Engine();\ntsParticles.init();\nexport * from \"./Core/Interfaces/Colors\";\nexport * from \"./Core/Interfaces/Gradients\";\nexport * from \"./Core/Interfaces/IBounds\";\nexport * from \"./Core/Interfaces/IBubbleParticleData\";\nexport * from \"./Core/Interfaces/ICircleBouncer\";\nexport * from \"./Core/Interfaces/IContainerInteractivity\";\nexport * from \"./Core/Interfaces/IContainerPlugin\";\nexport * from \"./Core/Interfaces/ICoordinates\";\nexport * from \"./Core/Interfaces/IDelta\";\nexport * from \"./Core/Interfaces/IDimension\";\nexport * from \"./Core/Interfaces/IDistance\";\nexport * from \"./Core/Interfaces/IExternalInteractor\";\nexport * from \"./Core/Interfaces/IInteractor\";\nexport * from \"./Core/Interfaces/IMouseData\";\nexport * from \"./Core/Interfaces/IMovePathGenerator\";\nexport * from \"./Core/Interfaces/IParticle\";\nexport * from \"./Core/Interfaces/IParticleColorStyle\";\nexport * from \"./Core/Interfaces/IParticleGravity\";\nexport * from \"./Core/Interfaces/IParticleHslAnimation\";\nexport * from \"./Core/Interfaces/IParticlesInteractor\";\nexport * from \"./Core/Interfaces/IParticleLife\";\nexport * from \"./Core/Interfaces/IParticleLoops\";\nexport * from \"./Core/Interfaces/IParticleRetinaProps\";\nexport * from \"./Core/Interfaces/IParticleRoll\";\nexport * from \"./Core/Interfaces/IParticleUpdater\";\nexport * from \"./Core/Interfaces/IParticleValueAnimation\";\nexport * from \"./Core/Interfaces/IParticleWobble\";\nexport * from \"./Core/Interfaces/IParticlesMover\";\nexport * from \"./Core/Interfaces/IPlugin\";\nexport * from \"./Core/Interfaces/IRangeValue\";\nexport * from \"./Core/Interfaces/IRectSideResult\";\nexport * from \"./Core/Interfaces/IShapeDrawer\";\nexport * from \"./Core/Interfaces/IShapeValues\";\nexport * from \"./Core/Utils/Circle\";\nexport * from \"./Core/Utils/CircleWarp\";\nexport * from \"./Core/Utils/Constants\";\nexport * from \"./Core/Utils/EventListeners\";\nexport * from \"./Core/Utils/ExternalInteractorBase\";\nexport * from \"./Core/Utils/FrameManager\";\nexport * from \"./Core/Utils/InteractionManager\";\nexport * from \"./Core/Utils/ParticlesInteractorBase\";\nexport * from \"./Core/Utils/Plugins\";\nexport * from \"./Core/Utils/Point\";\nexport * from \"./Core/Utils/QuadTree\";\nexport * from \"./Core/Utils/Range\";\nexport * from \"./Core/Utils/Rectangle\";\nexport * from \"./Core/Utils/Vector\";\nexport * from \"./Core/Utils/Vector3d\";\nexport * from \"./Core/Canvas\";\nexport * from \"./Core/Container\";\nexport * from \"./Core/Loader\";\nexport * from \"./Core/Particle\";\nexport * from \"./Core/Particles\";\nexport * from \"./Core/Retina\";\nexport * from \"./Enums/Directions/MoveDirection\";\nexport * from \"./Enums/Directions/RotateDirection\";\nexport * from \"./Enums/Directions/OutModeDirection\";\nexport * from \"./Enums/Directions/TiltDirection\";\nexport * from \"./Enums/Modes/ClickMode\";\nexport * from \"./Enums/Modes/DestroyMode\";\nexport * from \"./Enums/Modes/DivMode\";\nexport * from \"./Enums/Modes/HoverMode\";\nexport * from \"./Enums/Modes/CollisionMode\";\nexport * from \"./Enums/Modes/OutMode\";\nexport * from \"./Enums/Modes/RollMode\";\nexport * from \"./Enums/Modes/SizeMode\";\nexport * from \"./Enums/Modes/ThemeMode\";\nexport * from \"./Enums/Modes/ResponsiveMode\";\nexport * from \"./Enums/Types/AlterType\";\nexport * from \"./Enums/Types/DestroyType\";\nexport * from \"./Enums/Types/GradientType\";\nexport * from \"./Enums/Types/InteractorType\";\nexport * from \"./Enums/Types/ParticleOutType\";\nexport * from \"./Enums/Types/StartValueType\";\nexport * from \"./Enums/Types/DivType\";\nexport * from \"./Enums/Types/EasingType\";\nexport * from \"./Enums/AnimationStatus\";\nexport * from \"./Enums/InteractivityDetect\";\nexport { Engine, Engine as Main };\nexport * from \"./Options/Classes/AnimatableColor\";\nexport * from \"./Options/Classes/AnimatableGradient\";\nexport * from \"./Options/Classes/AnimationOptions\";\nexport * from \"./Options/Classes/Background/Background\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMask\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMaskCover\";\nexport * from \"./Options/Classes/ColorAnimation\";\nexport * from \"./Options/Classes/FullScreen/FullScreen\";\nexport * from \"./Options/Classes/HslAnimation\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Events\";\nexport * from \"./Options/Classes/Interactivity/Events/HoverEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Parallax\";\nexport * from \"./Options/Classes/Interactivity/Interactivity\";\nexport * from \"./Options/Classes/Interactivity/Modes/Attract\";\nexport * from \"./Options/Classes/Interactivity/Modes/Bounce\";\nexport * from \"./Options/Classes/Interactivity/Modes/Bubble\";\nexport * from \"./Options/Classes/Interactivity/Modes/BubbleBase\";\nexport * from \"./Options/Classes/Interactivity/Modes/BubbleDiv\";\nexport * from \"./Options/Classes/Interactivity/Modes/Connect\";\nexport * from \"./Options/Classes/Interactivity/Modes/ConnectLinks\";\nexport * from \"./Options/Classes/Interactivity/Modes/Grab\";\nexport * from \"./Options/Classes/Interactivity/Modes/GrabLinks\";\nexport * from \"./Options/Classes/Interactivity/Modes/Light\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightArea\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightGradient\";\nexport * from \"./Options/Classes/Interactivity/Modes/LightShadow\";\nexport * from \"./Options/Classes/Interactivity/Modes/Modes\";\nexport * from \"./Options/Classes/Interactivity/Modes/Push\";\nexport * from \"./Options/Classes/Interactivity/Modes/Remove\";\nexport * from \"./Options/Classes/Interactivity/Modes/Repulse\";\nexport * from \"./Options/Classes/Interactivity/Modes/RepulseBase\";\nexport * from \"./Options/Classes/Interactivity/Modes/RepulseDiv\";\nexport * from \"./Options/Classes/Interactivity/Modes/Slow\";\nexport * from \"./Options/Classes/Interactivity/Modes/Trail\";\nexport * from \"./Options/Classes/ManualParticle\";\nexport * from \"./Options/Classes/Motion/Motion\";\nexport * from \"./Options/Classes/Motion/MotionReduce\";\nexport * from \"./Options/Classes/Options\";\nexport * from \"./Options/Classes/OptionsColor\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounce\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounceFactor\";\nexport * from \"./Options/Classes/Particles/Collisions/Collisions\";\nexport * from \"./Options/Classes/Particles/Collisions/CollisionsOverlap\";\nexport * from \"./Options/Classes/Particles/Destroy/Destroy\";\nexport * from \"./Options/Classes/Particles/Destroy/Split\";\nexport * from \"./Options/Classes/Particles/Destroy/SplitFactor\";\nexport * from \"./Options/Classes/Particles/Destroy/SplitRate\";\nexport * from \"./Options/Classes/Particles/ParticlesOptions\";\nexport * from \"./Options/Classes/Particles/Shadow\";\nexport * from \"./Options/Classes/Particles/Stroke\";\nexport * from \"./Options/Classes/Particles/Life/Life\";\nexport * from \"./Options/Classes/Particles/Life/LifeDelay\";\nexport * from \"./Options/Classes/Particles/Life/LifeDuration\";\nexport * from \"./Options/Classes/Particles/Links/Links\";\nexport * from \"./Options/Classes/Particles/Links/LinksShadow\";\nexport * from \"./Options/Classes/Particles/Links/LinksTriangle\";\nexport * from \"./Options/Classes/Particles/Move/MoveAttract\";\nexport * from \"./Options/Classes/Particles/Move/Move\";\nexport * from \"./Options/Classes/Particles/Move/MoveAngle\";\nexport * from \"./Options/Classes/Particles/Move/MoveGravity\";\nexport * from \"./Options/Classes/Particles/Move/OutModes\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePath\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePathDelay\";\nexport * from \"./Options/Classes/Particles/Move/Spin\";\nexport * from \"./Options/Classes/Particles/Move/MoveTrail\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesNumber\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesDensity\";\nexport * from \"./Options/Classes/Particles/Opacity/Opacity\";\nexport * from \"./Options/Classes/Particles/Opacity/OpacityAnimation\";\nexport * from \"./Options/Classes/Particles/Orbit/Orbit\";\nexport * from \"./Options/Classes/Particles/Orbit/OrbitRotation\";\nexport * from \"./Options/Classes/Particles/Repulse/ParticlesRepulse\";\nexport * from \"./Options/Classes/Particles/Roll/Roll\";\nexport * from \"./Options/Classes/Particles/Roll/RollLight\";\nexport * from \"./Options/Classes/Particles/Rotate/Rotate\";\nexport * from \"./Options/Classes/Particles/Rotate/RotateAnimation\";\nexport * from \"./Options/Classes/Particles/Shape/Shape\";\nexport * from \"./Options/Classes/Particles/Size/Size\";\nexport * from \"./Options/Classes/Particles/Size/SizeAnimation\";\nexport * from \"./Options/Classes/Particles/Tilt/Tilt\";\nexport * from \"./Options/Classes/Particles/Tilt/TiltAnimation\";\nexport * from \"./Options/Classes/Particles/Twinkle/Twinkle\";\nexport * from \"./Options/Classes/Particles/Twinkle/TwinkleValues\";\nexport * from \"./Options/Classes/Particles/Wobble/Wobble\";\nexport * from \"./Options/Classes/Particles/ZIndex/ZIndex\";\nexport * from \"./Options/Classes/Responsive\";\nexport * from \"./Options/Classes/Theme/Theme\";\nexport * from \"./Options/Classes/Theme/ThemeDefault\";\nexport * from \"./Options/Classes/ValueWithRandom\";\nexport * from \"./Options/Interfaces/Background/IBackground\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMask\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMaskCover\";\nexport * from \"./Options/Interfaces/FullScreen/IFullScreen\";\nexport * from \"./Options/Interfaces/IAnimatable\";\nexport * from \"./Options/Interfaces/IAnimatableColor\";\nexport * from \"./Options/Interfaces/IAnimatableGradient\";\nexport * from \"./Options/Interfaces/IAnimation\";\nexport * from \"./Options/Interfaces/IColorAnimation\";\nexport * from \"./Options/Interfaces/IHslAnimation\";\nexport * from \"./Options/Interfaces/IManualParticle\";\nexport * from \"./Options/Interfaces/IOptionLoader\";\nexport * from \"./Options/Interfaces/IOptions\";\nexport * from \"./Options/Interfaces/IOptionsColor\";\nexport * from \"./Options/Interfaces/IOptionsGradient\";\nexport * from \"./Options/Interfaces/IResponsive\";\nexport * from \"./Options/Interfaces/IValueWithRandom\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IClickEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IDivEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IEvents\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IHoverEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IParallax\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IAttract\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBounce\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubble\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubbleBase\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IBubbleDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IConnect\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IConnectLinks\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IGrab\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IGrabLinks\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILight\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightArea\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightGradient\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ILightShadow\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModeDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModes\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IPush\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRemove\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulse\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulseBase\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IRepulseDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ISlow\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/ITrail\";\nexport * from \"./Options/Interfaces/Interactivity/IInteractivity\";\nexport * from \"./Options/Interfaces/Motion/IMotion\";\nexport * from \"./Options/Interfaces/Motion/IMotionReduce\";\nexport * from \"./Options/Interfaces/Particles/Bounce/IParticlesBounce\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisions\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisionsOverlap\";\nexport * from \"./Options/Interfaces/Particles/Destroy/IDestroy\";\nexport * from \"./Options/Interfaces/Particles/Destroy/ISplit\";\nexport * from \"./Options/Interfaces/Particles/IParticlesOptions\";\nexport * from \"./Options/Interfaces/Particles/IShadow\";\nexport * from \"./Options/Interfaces/Particles/IStroke\";\nexport * from \"./Options/Interfaces/Particles/Life/ILife\";\nexport * from \"./Options/Interfaces/Particles/Life/ILifeDelay\";\nexport * from \"./Options/Interfaces/Particles/Life/ILifeDuration\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinks\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinksShadow\";\nexport * from \"./Options/Interfaces/Particles/Links/ILinksTriangle\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAttract\";\nexport * from \"./Options/Interfaces/Particles/Move/IMove\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAngle\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveGravity\";\nexport * from \"./Options/Interfaces/Particles/Move/Path/IMovePath\";\nexport * from \"./Options/Interfaces/Particles/Move/IOutModes\";\nexport * from \"./Options/Interfaces/Particles/Move/ISpin\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveTrail\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesDensity\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesNumber\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacity\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacityAnimation\";\nexport * from \"./Options/Interfaces/Particles/Orbit/IOrbit\";\nexport * from \"./Options/Interfaces/Particles/Repulse/IParticlesRepulse\";\nexport * from \"./Options/Interfaces/Particles/Roll/IRoll\";\nexport * from \"./Options/Interfaces/Particles/Roll/IRollLight\";\nexport * from \"./Options/Interfaces/Particles/Rotate/IRotate\";\nexport * from \"./Options/Interfaces/Particles/Rotate/IRotateAnimation\";\nexport * from \"./Options/Interfaces/Particles/Shape/ICharacterShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IImageShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IPolygonShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShapeValues\";\nexport * from \"./Options/Interfaces/Particles/Shape/IStarShape\";\nexport * from \"./Options/Interfaces/Particles/Size/ISize\";\nexport * from \"./Options/Interfaces/Particles/Size/ISizeAnimation\";\nexport * from \"./Options/Interfaces/Particles/Tilt/ITilt\";\nexport * from \"./Options/Interfaces/Particles/Tilt/ITiltAnimation\";\nexport * from \"./Options/Interfaces/Particles/Twinkle/ITwinkle\";\nexport * from \"./Options/Interfaces/Particles/Twinkle/ITwinkleValues\";\nexport * from \"./Options/Interfaces/Particles/Wobble/IWobble\";\nexport * from \"./Options/Interfaces/Particles/ZIndex/IZIndex\";\nexport * from \"./Options/Interfaces/Theme/ITheme\";\nexport * from \"./Options/Interfaces/Theme/IThemeDefault\";\nexport * from \"./Types/RangeValue\";\nexport * from \"./Types/RecursivePartial\";\nexport * from \"./Types/ShapeData\";\nexport * from \"./Types/ShapeDrawerFunctions\";\nexport * from \"./Types/SingleOrMultiple\";\nexport * from \"./Types/PathOptions\";\nexport * from \"./Utils/CanvasUtils\";\nexport * from \"./Utils/ColorUtils\";\nexport * from \"./Utils/NumberUtils\";\nexport * from \"./Utils/Utils\";\nexport { tsParticles };\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 193);\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return un$Slice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar regExpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar getFlags = uncurryThis(regExpFlags);\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only propper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr = chr + charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = 'flags' in rawPattern ? rawPattern.flags : getFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxy(keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","module.exports = false;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","module.exports = {};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.21.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar Object = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof Object ? ObjectPrototype : null;\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n redefine(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar TypeError = global.TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw TypeError('RegExp#exec called on incompatible receiver');\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var $ = require('../internals/export');\nvar parseFloat = require('../internals/number-parse-float');\n\n// `Number.parseFloat` method\n// https://tc39.es/ecma262/#sec-number.parseFloat\n// eslint-disable-next-line es/no-number-parsefloat -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {\n parseFloat: parseFloat\n});\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n// eslint-disable-next-line es/no-number-parseint -- required for testing\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n parseInt: parseInt\n});\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar Function = global.Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar n$ParseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = n$ParseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : n$ParseFloat;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar Array = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","var hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number != number;\n }\n});\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/index.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst MAX_UID = 1000000;\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\nconst TRANSITION_END = 'transitionend';\r\n\r\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\r\nconst toType = (obj) => {\r\n if (obj === null || obj === undefined) {\r\n return `${obj}`;\r\n }\r\n\r\n return {}.toString\r\n .call(obj)\r\n .match(/\\s([a-z]+)/i)[1]\r\n .toLowerCase();\r\n};\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Public Util Api\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst getUID = (prefix) => {\r\n do {\r\n prefix += Math.floor(Math.random() * MAX_UID);\r\n } while (document.getElementById(prefix));\r\n\r\n return prefix;\r\n};\r\n\r\nconst getSelector = (element) => {\r\n let selector = element.getAttribute('data-bs-target');\r\n\r\n if (!selector || selector === '#') {\r\n let hrefAttr = element.getAttribute('href');\r\n\r\n // The only valid content that could double as a selector are IDs or classes,\r\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\r\n // `document.querySelector` will rightfully complain it is invalid.\r\n // See https://github.com/twbs/bootstrap/issues/32273\r\n if (!hrefAttr || (!hrefAttr.includes('#') && !hrefAttr.startsWith('.'))) {\r\n return null;\r\n }\r\n\r\n // Just in case some CMS puts out a full URL with the anchor appended\r\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\r\n hrefAttr = `#${hrefAttr.split('#')[1]}`;\r\n }\r\n\r\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\r\n }\r\n\r\n return selector;\r\n};\r\n\r\nconst getSelectorFromElement = (element) => {\r\n const selector = getSelector(element);\r\n\r\n if (selector) {\r\n return document.querySelector(selector) ? selector : null;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getElementFromSelector = (element) => {\r\n const selector = getSelector(element);\r\n\r\n return selector ? document.querySelector(selector) : null;\r\n};\r\n\r\nconst getTransitionDurationFromElement = (element) => {\r\n if (!element) {\r\n return 0;\r\n }\r\n\r\n // Get transition-duration of the element\r\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element);\r\n\r\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\r\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\r\n\r\n // Return 0 if element or transition duration is not found\r\n if (!floatTransitionDuration && !floatTransitionDelay) {\r\n return 0;\r\n }\r\n\r\n // If multiple durations are defined, take the first\r\n transitionDuration = transitionDuration.split(',')[0];\r\n transitionDelay = transitionDelay.split(',')[0];\r\n\r\n return (\r\n (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) *\r\n MILLISECONDS_MULTIPLIER\r\n );\r\n};\r\n\r\nconst triggerTransitionEnd = (element) => {\r\n element.dispatchEvent(new Event(TRANSITION_END));\r\n};\r\n\r\nconst isElement = (obj) => {\r\n if (!obj || typeof obj !== 'object') {\r\n return false;\r\n }\r\n\r\n if (typeof obj.jquery !== 'undefined') {\r\n obj = obj[0];\r\n }\r\n\r\n return typeof obj.nodeType !== 'undefined';\r\n};\r\n\r\nconst getElement = (obj) => {\r\n if (isElement(obj)) {\r\n // it's a jQuery object or a node element\r\n return obj.jquery ? obj[0] : obj;\r\n }\r\n\r\n if (typeof obj === 'string' && obj.length > 0) {\r\n return document.querySelector(obj);\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst typeCheckConfig = (componentName, config, configTypes) => {\r\n Object.keys(configTypes).forEach((property) => {\r\n const expectedTypes = configTypes[property];\r\n const value = config[property];\r\n const valueType = value && isElement(value) ? 'element' : toType(value);\r\n\r\n if (!new RegExp(expectedTypes).test(valueType)) {\r\n throw new TypeError(\r\n `${componentName.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\r\n );\r\n }\r\n });\r\n};\r\n\r\nconst isVisible = (element) => {\r\n if (!isElement(element) || element.getClientRects().length === 0) {\r\n return false;\r\n }\r\n\r\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible';\r\n};\r\n\r\nconst isDisabled = (element) => {\r\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n return true;\r\n }\r\n\r\n if (element.classList.contains('disabled')) {\r\n return true;\r\n }\r\n\r\n if (typeof element.disabled !== 'undefined') {\r\n return element.disabled;\r\n }\r\n\r\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\r\n};\r\n\r\nconst findShadowRoot = (element) => {\r\n if (!document.documentElement.attachShadow) {\r\n return null;\r\n }\r\n\r\n // Can find the shadow root otherwise it'll return the document\r\n if (typeof element.getRootNode === 'function') {\r\n const root = element.getRootNode();\r\n return root instanceof ShadowRoot ? root : null;\r\n }\r\n\r\n if (element instanceof ShadowRoot) {\r\n return element;\r\n }\r\n\r\n // when we don't find a shadow root\r\n if (!element.parentNode) {\r\n return null;\r\n }\r\n\r\n return findShadowRoot(element.parentNode);\r\n};\r\n\r\nconst noop = () => {};\r\n\r\n/**\r\n * Trick to restart an element's animation\r\n *\r\n * @param {HTMLElement} element\r\n * @return void\r\n *\r\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\r\n */\r\nconst reflow = (element) => {\r\n // eslint-disable-next-line no-unused-expressions\r\n element.offsetHeight;\r\n};\r\n\r\nconst getjQuery = () => {\r\n const { jQuery } = window;\r\n\r\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\r\n return jQuery;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst DOMContentLoadedCallbacks = [];\r\n\r\nconst onDOMContentLoaded = (callback) => {\r\n if (document.readyState === 'loading') {\r\n // add listener on the first call when the document is in loading state\r\n if (!DOMContentLoadedCallbacks.length) {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n DOMContentLoadedCallbacks.forEach((callback) => callback());\r\n });\r\n }\r\n\r\n DOMContentLoadedCallbacks.push(callback);\r\n } else {\r\n callback();\r\n }\r\n};\r\n\r\nconst isRTL = () => document.documentElement.dir === 'rtl';\r\n\r\nconst defineJQueryPlugin = (plugin) => {\r\n onDOMContentLoaded(() => {\r\n const $ = getjQuery();\r\n /* istanbul ignore if */\r\n if ($) {\r\n const name = plugin.NAME;\r\n const JQUERY_NO_CONFLICT = $.fn[name];\r\n $.fn[name] = plugin.jQueryInterface;\r\n $.fn[name].Constructor = plugin;\r\n $.fn[name].noConflict = () => {\r\n $.fn[name] = JQUERY_NO_CONFLICT;\r\n return plugin.jQueryInterface;\r\n };\r\n }\r\n });\r\n};\r\n\r\nconst execute = (callback) => {\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n};\r\n\r\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\r\n if (!waitForTransition) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n const durationPadding = 5;\r\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\r\n\r\n let called = false;\r\n\r\n const handler = ({ target }) => {\r\n if (target !== transitionElement) {\r\n return;\r\n }\r\n\r\n called = true;\r\n transitionElement.removeEventListener(TRANSITION_END, handler);\r\n execute(callback);\r\n };\r\n\r\n transitionElement.addEventListener(TRANSITION_END, handler);\r\n setTimeout(() => {\r\n if (!called) {\r\n triggerTransitionEnd(transitionElement);\r\n }\r\n }, emulatedDuration);\r\n};\r\n\r\n/**\r\n * Return the previous/next element of a list.\r\n *\r\n * @param {array} list The list of elements\r\n * @param activeElement The active element\r\n * @param shouldGetNext Choose to get next or previous element\r\n * @param isCycleAllowed\r\n * @return {Element|elem} The proper element\r\n */\r\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\r\n let index = list.indexOf(activeElement);\r\n\r\n // if the element does not exist in the list return an element depending on the direction and if cycle is allowed\r\n if (index === -1) {\r\n return list[!shouldGetNext && isCycleAllowed ? list.length - 1 : 0];\r\n }\r\n\r\n const listLength = list.length;\r\n\r\n index += shouldGetNext ? 1 : -1;\r\n\r\n if (isCycleAllowed) {\r\n index = (index + listLength) % listLength;\r\n }\r\n\r\n return list[Math.max(0, Math.min(index, listLength - 1))];\r\n};\r\n\r\nexport {\r\n getElement,\r\n getUID,\r\n getSelectorFromElement,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n triggerTransitionEnd,\r\n isElement,\r\n typeCheckConfig,\r\n isVisible,\r\n isDisabled,\r\n findShadowRoot,\r\n noop,\r\n getNextActiveElement,\r\n reflow,\r\n getjQuery,\r\n onDOMContentLoaded,\r\n isRTL,\r\n defineJQueryPlugin,\r\n execute,\r\n executeAfterTransition,\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/event-handler.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getjQuery } from '../util/index';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\r\nconst stripNameRegex = /\\..*/;\r\nconst stripUidRegex = /::\\d+$/;\r\nconst eventRegistry = {}; // Events storage\r\nlet uidEvent = 1;\r\nconst customEvents = {\r\n mouseenter: 'mouseover',\r\n mouseleave: 'mouseout',\r\n};\r\nconst customEventsRegex = /^(mouseenter|mouseleave)/i;\r\nconst nativeEvents = new Set([\r\n 'click',\r\n 'dblclick',\r\n 'mouseup',\r\n 'mousedown',\r\n 'contextmenu',\r\n 'mousewheel',\r\n 'DOMMouseScroll',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'selectstart',\r\n 'selectend',\r\n 'keydown',\r\n 'keypress',\r\n 'keyup',\r\n 'orientationchange',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchend',\r\n 'touchcancel',\r\n 'pointerdown',\r\n 'pointermove',\r\n 'pointerup',\r\n 'pointerleave',\r\n 'pointercancel',\r\n 'gesturestart',\r\n 'gesturechange',\r\n 'gestureend',\r\n 'focus',\r\n 'blur',\r\n 'change',\r\n 'reset',\r\n 'select',\r\n 'submit',\r\n 'focusin',\r\n 'focusout',\r\n 'load',\r\n 'unload',\r\n 'beforeunload',\r\n 'resize',\r\n 'move',\r\n 'DOMContentLoaded',\r\n 'readystatechange',\r\n 'error',\r\n 'abort',\r\n 'scroll',\r\n]);\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Private methods\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nfunction getUidEvent(element, uid) {\r\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++;\r\n}\r\n\r\nfunction getEvent(element) {\r\n const uid = getUidEvent(element);\r\n\r\n element.uidEvent = uid;\r\n eventRegistry[uid] = eventRegistry[uid] || {};\r\n\r\n return eventRegistry[uid];\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n return function handler(event) {\r\n event.delegateTarget = element;\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(element, [event]);\r\n };\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n return function handler(event) {\r\n const domElements = element.querySelectorAll(selector);\r\n\r\n for (let { target } = event; target && target !== this; target = target.parentNode) {\r\n for (let i = domElements.length; i--; ) {\r\n if (domElements[i] === target) {\r\n event.delegateTarget = target;\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, selector, fn);\r\n }\r\n\r\n return fn.apply(target, [event]);\r\n }\r\n }\r\n }\r\n\r\n // To please ESLint\r\n return null;\r\n };\r\n}\r\n\r\nfunction findHandler(events, handler, delegationSelector = null) {\r\n const uidEventList = Object.keys(events);\r\n\r\n for (let i = 0, len = uidEventList.length; i < len; i++) {\r\n const event = events[uidEventList[i]];\r\n\r\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\r\n return event;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\r\n const delegation = typeof handler === 'string';\r\n const originalHandler = delegation ? delegationFn : handler;\r\n\r\n let typeEvent = getTypeEvent(originalTypeEvent);\r\n const isNative = nativeEvents.has(typeEvent);\r\n\r\n if (!isNative) {\r\n typeEvent = originalTypeEvent;\r\n }\r\n\r\n return [delegation, originalHandler, typeEvent];\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n if (!handler) {\r\n handler = delegationFn;\r\n delegationFn = null;\r\n }\r\n\r\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\r\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\r\n if (customEventsRegex.test(originalTypeEvent)) {\r\n const wrapFn = (fn) => {\r\n return function (event) {\r\n if (\r\n !event.relatedTarget ||\r\n (event.relatedTarget !== event.delegateTarget &&\r\n !event.delegateTarget.contains(event.relatedTarget))\r\n ) {\r\n return fn.call(this, event);\r\n }\r\n };\r\n };\r\n\r\n if (delegationFn) {\r\n delegationFn = wrapFn(delegationFn);\r\n } else {\r\n handler = wrapFn(handler);\r\n }\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const events = getEvent(element);\r\n const handlers = events[typeEvent] || (events[typeEvent] = {});\r\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\r\n\r\n if (previousFn) {\r\n previousFn.oneOff = previousFn.oneOff && oneOff;\r\n\r\n return;\r\n }\r\n\r\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\r\n const fn = delegation\r\n ? bootstrapDelegationHandler(element, handler, delegationFn)\r\n : bootstrapHandler(element, handler);\r\n\r\n fn.delegationSelector = delegation ? handler : null;\r\n fn.originalHandler = originalHandler;\r\n fn.oneOff = oneOff;\r\n fn.uidEvent = uid;\r\n handlers[uid] = fn;\r\n\r\n element.addEventListener(typeEvent, fn, delegation);\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\r\n\r\n if (!fn) {\r\n return;\r\n }\r\n\r\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\r\n delete events[typeEvent][fn.uidEvent];\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n const storeElementEvent = events[typeEvent] || {};\r\n\r\n Object.keys(storeElementEvent).forEach((handlerKey) => {\r\n if (handlerKey.includes(namespace)) {\r\n const event = storeElementEvent[handlerKey];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n}\r\n\r\nfunction getTypeEvent(event) {\r\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n event = event.replace(stripNameRegex, '');\r\n return customEvents[event] || event;\r\n}\r\n\r\nconst EventHandler = {\r\n on(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, false);\r\n },\r\n\r\n one(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, true);\r\n },\r\n\r\n off(element, originalTypeEvent, handler, delegationFn) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const inNamespace = typeEvent !== originalTypeEvent;\r\n const events = getEvent(element);\r\n const isNamespace = originalTypeEvent.startsWith('.');\r\n\r\n if (typeof originalHandler !== 'undefined') {\r\n // Simplest case: handler is passed, remove that listener ONLY.\r\n if (!events || !events[typeEvent]) {\r\n return;\r\n }\r\n\r\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\r\n return;\r\n }\r\n\r\n if (isNamespace) {\r\n Object.keys(events).forEach((elementEvent) => {\r\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\r\n });\r\n }\r\n\r\n const storeElementEvent = events[typeEvent] || {};\r\n Object.keys(storeElementEvent).forEach((keyHandlers) => {\r\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\r\n\r\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\r\n const event = storeElementEvent[keyHandlers];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n },\r\n\r\n trigger(element, event, args) {\r\n if (typeof event !== 'string' || !element) {\r\n return null;\r\n }\r\n\r\n const $ = getjQuery();\r\n const typeEvent = getTypeEvent(event);\r\n const inNamespace = event !== typeEvent;\r\n const isNative = nativeEvents.has(typeEvent);\r\n\r\n let jQueryEvent;\r\n let bubbles = true;\r\n let nativeDispatch = true;\r\n let defaultPrevented = false;\r\n let evt = null;\r\n\r\n if (inNamespace && $) {\r\n jQueryEvent = $.Event(event, args);\r\n\r\n $(element).trigger(jQueryEvent);\r\n bubbles = !jQueryEvent.isPropagationStopped();\r\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\r\n defaultPrevented = jQueryEvent.isDefaultPrevented();\r\n }\r\n\r\n if (isNative) {\r\n evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(typeEvent, bubbles, true);\r\n } else {\r\n evt = new CustomEvent(event, {\r\n bubbles,\r\n cancelable: true,\r\n });\r\n }\r\n\r\n // merge custom information in our event\r\n if (typeof args !== 'undefined') {\r\n Object.keys(args).forEach((key) => {\r\n Object.defineProperty(evt, key, {\r\n get() {\r\n return args[key];\r\n },\r\n });\r\n });\r\n }\r\n\r\n if (defaultPrevented) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (nativeDispatch) {\r\n element.dispatchEvent(evt);\r\n }\r\n\r\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\r\n jQueryEvent.preventDefault();\r\n }\r\n\r\n return evt;\r\n },\r\n};\r\n\r\nexport default EventHandler;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst elementMap = new Map();\r\n\r\nexport default {\r\n set(element, key, instance) {\r\n if (!elementMap.has(element)) {\r\n elementMap.set(element, new Map());\r\n }\r\n\r\n const instanceMap = elementMap.get(element);\r\n\r\n // make it clear we only want one instance per element\r\n // can be removed later when multiple key/instances are fine to be used\r\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\r\n // eslint-disable-next-line no-console\r\n console.error(\r\n `Bootstrap doesn't allow more than one instance per element. Bound instance: ${\r\n Array.from(instanceMap.keys())[0]\r\n }.`\r\n );\r\n return;\r\n }\r\n\r\n instanceMap.set(key, instance);\r\n },\r\n\r\n get(element, key) {\r\n if (elementMap.has(element)) {\r\n return elementMap.get(element).get(key) || null;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n remove(element, key) {\r\n if (!elementMap.has(element)) {\r\n return;\r\n }\r\n\r\n const instanceMap = elementMap.get(element);\r\n\r\n instanceMap.delete(key);\r\n\r\n // free up element references if there are no instances left for an element\r\n if (instanceMap.size === 0) {\r\n elementMap.delete(element);\r\n }\r\n },\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): base-component.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport Data from './dom/data';\r\nimport { executeAfterTransition, getElement } from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst VERSION = '5.1.3';\r\n\r\nclass BaseComponent {\r\n constructor(element) {\r\n element = getElement(element);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n this._element = element;\r\n Data.set(this._element, this.constructor.DATA_KEY, this);\r\n }\r\n\r\n dispose() {\r\n Data.remove(this._element, this.constructor.DATA_KEY);\r\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\r\n\r\n Object.getOwnPropertyNames(this).forEach((propertyName) => {\r\n this[propertyName] = null;\r\n });\r\n }\r\n\r\n _queueCallback(callback, element, isAnimated = true) {\r\n executeAfterTransition(callback, element, isAnimated);\r\n }\r\n\r\n /** Static */\r\n\r\n static getInstance(element) {\r\n return Data.get(getElement(element), this.DATA_KEY);\r\n }\r\n\r\n static getOrCreateInstance(element, config = {}) {\r\n return (\r\n this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\r\n );\r\n }\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get NAME() {\r\n throw new Error('You have to implement the static method \"NAME\", for each component!');\r\n }\r\n\r\n static get DATA_KEY() {\r\n return `bs.${this.NAME}`;\r\n }\r\n\r\n static get EVENT_KEY() {\r\n return `.${this.DATA_KEY}`;\r\n }\r\n}\r\n\r\nexport default BaseComponent;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): button.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { defineJQueryPlugin } from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'button';\r\nconst DATA_KEY = 'bs.button';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst CLASS_NAME_ACTIVE = 'active';\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"button\"]';\r\n\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Button extends BaseComponent {\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\r\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Button.getOrCreateInstance(this);\r\n\r\n if (config === 'toggle') {\r\n data[config]();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, (event) => {\r\n event.preventDefault();\r\n\r\n const button = event.target.closest(SELECTOR_DATA_TOGGLE);\r\n const data = Button.getOrCreateInstance(button);\r\n\r\n data.toggle();\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Button to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Button);\r\n\r\nexport default Button;\r\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/manipulator.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nfunction normalizeData(val) {\r\n if (val === 'true') {\r\n return true;\r\n }\r\n\r\n if (val === 'false') {\r\n return false;\r\n }\r\n\r\n if (val === Number(val).toString()) {\r\n return Number(val);\r\n }\r\n\r\n if (val === '' || val === 'null') {\r\n return null;\r\n }\r\n\r\n return val;\r\n}\r\n\r\nfunction normalizeDataKey(key) {\r\n return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);\r\n}\r\n\r\nconst Manipulator = {\r\n setDataAttribute(element, key, value) {\r\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\r\n },\r\n\r\n removeDataAttribute(element, key) {\r\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\r\n },\r\n\r\n getDataAttributes(element) {\r\n if (!element) {\r\n return {};\r\n }\r\n\r\n const attributes = {};\r\n\r\n Object.keys(element.dataset)\r\n .filter((key) => key.startsWith('bs'))\r\n .forEach((key) => {\r\n let pureKey = key.replace(/^bs/, '');\r\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\r\n attributes[pureKey] = normalizeData(element.dataset[key]);\r\n });\r\n\r\n return attributes;\r\n },\r\n\r\n getDataAttribute(element, key) {\r\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\r\n },\r\n\r\n offset(element) {\r\n const rect = element.getBoundingClientRect();\r\n\r\n return {\r\n top: rect.top + window.pageYOffset,\r\n left: rect.left + window.pageXOffset,\r\n };\r\n },\r\n\r\n position(element) {\r\n return {\r\n top: element.offsetTop,\r\n left: element.offsetLeft,\r\n };\r\n },\r\n};\r\n\r\nexport default Manipulator;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dom/selector-engine.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nimport { isDisabled, isVisible } from '../util/index';\r\n\r\nconst NODE_TEXT = 3;\r\n\r\nconst SelectorEngine = {\r\n find(selector, element = document.documentElement) {\r\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\r\n },\r\n\r\n findOne(selector, element = document.documentElement) {\r\n return Element.prototype.querySelector.call(element, selector);\r\n },\r\n\r\n children(element, selector) {\r\n return [].concat(...element.children).filter((child) => child.matches(selector));\r\n },\r\n\r\n parents(element, selector) {\r\n const parents = [];\r\n\r\n let ancestor = element.parentNode;\r\n\r\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\r\n if (ancestor.matches(selector)) {\r\n parents.push(ancestor);\r\n }\r\n\r\n ancestor = ancestor.parentNode;\r\n }\r\n\r\n return parents;\r\n },\r\n\r\n prev(element, selector) {\r\n let previous = element.previousElementSibling;\r\n\r\n while (previous) {\r\n if (previous.matches(selector)) {\r\n return [previous];\r\n }\r\n\r\n previous = previous.previousElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n\r\n next(element, selector) {\r\n let next = element.nextElementSibling;\r\n\r\n while (next) {\r\n if (next.matches(selector)) {\r\n return [next];\r\n }\r\n\r\n next = next.nextElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n\r\n focusableChildren(element) {\r\n const focusables = [\r\n 'a',\r\n 'button',\r\n 'input',\r\n 'textarea',\r\n 'select',\r\n 'details',\r\n '[tabindex]',\r\n '[contenteditable=\"true\"]',\r\n ]\r\n .map((selector) => `${selector}:not([tabindex^=\"-\"])`)\r\n .join(', ');\r\n\r\n return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el));\r\n },\r\n};\r\n\r\nexport default SelectorEngine;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): dropdown.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport * as Popper from '@popperjs/core';\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElement,\r\n getElementFromSelector,\r\n getNextActiveElement,\r\n isDisabled,\r\n isElement,\r\n isRTL,\r\n isVisible,\r\n noop,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'dropdown';\r\nconst DATA_KEY = 'bs.dropdown';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst ESCAPE_KEY = 'Escape';\r\nconst SPACE_KEY = 'Space';\r\nconst TAB_KEY = 'Tab';\r\nconst ARROW_UP_KEY = 'ArrowUp';\r\nconst ARROW_DOWN_KEY = 'ArrowDown';\r\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\r\n\r\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`);\r\n\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_DROPUP = 'dropup';\r\nconst CLASS_NAME_DROPEND = 'dropend';\r\nconst CLASS_NAME_DROPSTART = 'dropstart';\r\nconst CLASS_NAME_NAVBAR = 'navbar';\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"dropdown\"]';\r\nconst SELECTOR_MENU = '.dropdown-menu';\r\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\r\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\r\n\r\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\r\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\r\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\r\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\r\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\r\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\r\n\r\nconst Default = {\r\n offset: [0, 2],\r\n boundary: 'clippingParents',\r\n reference: 'toggle',\r\n display: 'dynamic',\r\n popperConfig: null,\r\n autoClose: true,\r\n};\r\n\r\nconst DefaultType = {\r\n offset: '(array|string|function)',\r\n boundary: '(string|element)',\r\n reference: '(string|element|object)',\r\n display: 'string',\r\n popperConfig: '(null|object|function)',\r\n autoClose: '(boolean|string)',\r\n};\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Dropdown extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._popper = null;\r\n this._config = this._getConfig(config);\r\n this._menu = this._getMenuElement();\r\n this._inNavbar = this._detectNavbar();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n return this._isShown() ? this.hide() : this.show();\r\n }\r\n\r\n show() {\r\n if (isDisabled(this._element) || this._isShown(this._menu)) {\r\n return;\r\n }\r\n\r\n const relatedTarget = {\r\n relatedTarget: this._element,\r\n };\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget);\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const parent = Dropdown.getParentFromElement(this._element);\r\n // Totally disable Popper for Dropdowns in Navbar\r\n if (this._inNavbar) {\r\n Manipulator.setDataAttribute(this._menu, 'popper', 'none');\r\n } else {\r\n this._createPopper(parent);\r\n }\r\n\r\n // If this is a touch-enabled device we add extra\r\n // empty mouseover listeners to the body's immediate children;\r\n // only needed because of broken event delegation on iOS\r\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\r\n if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {\r\n []\r\n .concat(...document.body.children)\r\n .forEach((elem) => EventHandler.on(elem, 'mouseover', noop));\r\n }\r\n\r\n this._element.focus();\r\n this._element.setAttribute('aria-expanded', true);\r\n\r\n this._menu.classList.add(CLASS_NAME_SHOW);\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n EventHandler.trigger(this._element, EVENT_SHOWN, relatedTarget);\r\n }\r\n\r\n hide() {\r\n if (isDisabled(this._element) || !this._isShown(this._menu)) {\r\n return;\r\n }\r\n\r\n const relatedTarget = {\r\n relatedTarget: this._element,\r\n };\r\n\r\n this._completeHide(relatedTarget);\r\n }\r\n\r\n dispose() {\r\n if (this._popper) {\r\n this._popper.destroy();\r\n }\r\n\r\n super.dispose();\r\n }\r\n\r\n update() {\r\n this._inNavbar = this._detectNavbar();\r\n if (this._popper) {\r\n this._popper.update();\r\n }\r\n }\r\n\r\n // Private\r\n\r\n _completeHide(relatedTarget) {\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE, relatedTarget);\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n // If this is a touch-enabled device we remove the extra\r\n // empty mouseover listeners we added for iOS support\r\n if ('ontouchstart' in document.documentElement) {\r\n []\r\n .concat(...document.body.children)\r\n .forEach((elem) => EventHandler.off(elem, 'mouseover', noop));\r\n }\r\n\r\n if (this._popper) {\r\n this._popper.destroy();\r\n }\r\n\r\n this._menu.classList.remove(CLASS_NAME_SHOW);\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n this._element.setAttribute('aria-expanded', 'false');\r\n Manipulator.removeDataAttribute(this._menu, 'popper');\r\n EventHandler.trigger(this._element, EVENT_HIDDEN, relatedTarget);\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...this.constructor.Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...config,\r\n };\r\n\r\n typeCheckConfig(NAME, config, this.constructor.DefaultType);\r\n\r\n if (\r\n typeof config.reference === 'object' &&\r\n !isElement(config.reference) &&\r\n typeof config.reference.getBoundingClientRect !== 'function'\r\n ) {\r\n // Popper virtual elements require a getBoundingClientRect method\r\n throw new TypeError(\r\n `${NAME.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`\r\n );\r\n }\r\n\r\n return config;\r\n }\r\n\r\n _createPopper(parent) {\r\n if (typeof Popper === 'undefined') {\r\n throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org)\");\r\n }\r\n\r\n let referenceElement = this._element;\r\n\r\n if (this._config.reference === 'parent') {\r\n referenceElement = parent;\r\n } else if (isElement(this._config.reference)) {\r\n referenceElement = getElement(this._config.reference);\r\n } else if (typeof this._config.reference === 'object') {\r\n referenceElement = this._config.reference;\r\n }\r\n\r\n const popperConfig = this._getPopperConfig();\r\n const isDisplayStatic = popperConfig.modifiers.find(\r\n (modifier) => modifier.name === 'applyStyles' && modifier.enabled === false\r\n );\r\n\r\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\r\n\r\n if (isDisplayStatic) {\r\n Manipulator.setDataAttribute(this._menu, 'popper', 'static');\r\n }\r\n }\r\n\r\n _isShown(element = this._element) {\r\n return element.classList.contains(CLASS_NAME_SHOW);\r\n }\r\n\r\n _getMenuElement() {\r\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0];\r\n }\r\n\r\n _getPlacement() {\r\n const parentDropdown = this._element.parentNode;\r\n\r\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\r\n return PLACEMENT_RIGHT;\r\n }\r\n\r\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\r\n return PLACEMENT_LEFT;\r\n }\r\n\r\n // We need to trim the value because custom properties can also include spaces\r\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\r\n\r\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\r\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\r\n }\r\n\r\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\r\n }\r\n\r\n _detectNavbar() {\r\n return this._element.closest(`.${CLASS_NAME_NAVBAR}`) !== null;\r\n }\r\n\r\n _getOffset() {\r\n const { offset } = this._config;\r\n\r\n if (typeof offset === 'string') {\r\n return offset.split(',').map((val) => Number.parseInt(val, 10));\r\n }\r\n\r\n if (typeof offset === 'function') {\r\n return (popperData) => offset(popperData, this._element);\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n _getPopperConfig() {\r\n const defaultBsPopperConfig = {\r\n placement: this._getPlacement(),\r\n modifiers: [\r\n {\r\n name: 'preventOverflow',\r\n options: {\r\n boundary: this._config.boundary,\r\n },\r\n },\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: this._getOffset(),\r\n },\r\n },\r\n ],\r\n };\r\n\r\n // Disable Popper if we have a static display\r\n if (this._config.display === 'static') {\r\n defaultBsPopperConfig.modifiers = [\r\n {\r\n name: 'applyStyles',\r\n enabled: false,\r\n },\r\n ];\r\n }\r\n\r\n return {\r\n ...defaultBsPopperConfig,\r\n ...(typeof this._config.popperConfig === 'function'\r\n ? this._config.popperConfig(defaultBsPopperConfig)\r\n : this._config.popperConfig),\r\n };\r\n }\r\n\r\n _selectMenuItem({ key, target }) {\r\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);\r\n\r\n if (!items.length) {\r\n return;\r\n }\r\n\r\n // if target isn't included in items (e.g. when expanding the dropdown)\r\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\r\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus();\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Dropdown.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n });\r\n }\r\n\r\n static clearMenus(event) {\r\n if (\r\n event &&\r\n (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))\r\n ) {\r\n return;\r\n }\r\n\r\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\r\n\r\n for (let i = 0, len = toggles.length; i < len; i++) {\r\n const context = Dropdown.getInstance(toggles[i]);\r\n if (!context || context._config.autoClose === false) {\r\n continue;\r\n }\r\n\r\n if (!context._isShown()) {\r\n continue;\r\n }\r\n\r\n const relatedTarget = {\r\n relatedTarget: context._element,\r\n };\r\n\r\n if (event) {\r\n const composedPath = event.composedPath();\r\n const isMenuTarget = composedPath.includes(context._menu);\r\n if (\r\n composedPath.includes(context._element) ||\r\n (context._config.autoClose === 'inside' && !isMenuTarget) ||\r\n (context._config.autoClose === 'outside' && isMenuTarget)\r\n ) {\r\n continue;\r\n }\r\n\r\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\r\n if (\r\n context._menu.contains(event.target) &&\r\n ((event.type === 'keyup' && event.key === TAB_KEY) ||\r\n /input|select|option|textarea|form/i.test(event.target.tagName))\r\n ) {\r\n continue;\r\n }\r\n\r\n if (event.type === 'click') {\r\n relatedTarget.clickEvent = event;\r\n }\r\n }\r\n\r\n context._completeHide(relatedTarget);\r\n }\r\n }\r\n\r\n static getParentFromElement(element) {\r\n return getElementFromSelector(element) || element.parentNode;\r\n }\r\n\r\n static dataApiKeydownHandler(event) {\r\n // If not input/textarea:\r\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\r\n // If input/textarea:\r\n // - If space key => not a dropdown command\r\n // - If key is other than escape\r\n // - If key is not up or down => not a dropdown command\r\n // - If trigger inside the menu => not a dropdown command\r\n if (\r\n /input|textarea/i.test(event.target.tagName)\r\n ? event.key === SPACE_KEY ||\r\n (event.key !== ESCAPE_KEY &&\r\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\r\n event.target.closest(SELECTOR_MENU)))\r\n : !REGEXP_KEYDOWN.test(event.key)\r\n ) {\r\n return;\r\n }\r\n\r\n const isActive = this.classList.contains(CLASS_NAME_SHOW);\r\n\r\n if (!isActive && event.key === ESCAPE_KEY) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n if (isDisabled(this)) {\r\n return;\r\n }\r\n\r\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE)\r\n ? this\r\n : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0];\r\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\r\n\r\n if (event.key === ESCAPE_KEY) {\r\n instance.hide();\r\n return;\r\n }\r\n\r\n if (event.key === ARROW_UP_KEY || event.key === ARROW_DOWN_KEY) {\r\n if (!isActive) {\r\n instance.show();\r\n }\r\n\r\n instance._selectMenuItem(event);\r\n return;\r\n }\r\n\r\n if (!isActive || event.key === SPACE_KEY) {\r\n Dropdown.clearMenus();\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(\r\n document,\r\n EVENT_KEYDOWN_DATA_API,\r\n SELECTOR_DATA_TOGGLE,\r\n Dropdown.dataApiKeydownHandler\r\n);\r\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus);\r\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n event.preventDefault();\r\n Dropdown.getOrCreateInstance(this).toggle();\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Dropdown to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Dropdown);\r\n\r\nexport default Dropdown;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): collapse.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElement,\r\n getSelectorFromElement,\r\n getElementFromSelector,\r\n reflow,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'collapse';\r\nconst DATA_KEY = 'bs.collapse';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst Default = {\r\n toggle: true,\r\n parent: null,\r\n};\r\n\r\nconst DefaultType = {\r\n toggle: 'boolean',\r\n parent: '(null|element)',\r\n};\r\n\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_COLLAPSE = 'collapse';\r\nconst CLASS_NAME_COLLAPSING = 'collapsing';\r\nconst CLASS_NAME_COLLAPSED = 'collapsed';\r\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\r\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\r\n\r\nconst WIDTH = 'width';\r\nconst HEIGHT = 'height';\r\n\r\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Collapse extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._isTransitioning = false;\r\n this._config = this._getConfig(config);\r\n this._triggerArray = [];\r\n\r\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\r\n\r\n for (let i = 0, len = toggleList.length; i < len; i++) {\r\n const elem = toggleList[i];\r\n const selector = getSelectorFromElement(elem);\r\n const filterElement = SelectorEngine.find(selector).filter(\r\n (foundElem) => foundElem === this._element\r\n );\r\n\r\n if (selector !== null && filterElement.length) {\r\n this._selector = selector;\r\n this._triggerArray.push(elem);\r\n }\r\n }\r\n\r\n this._initializeChildren();\r\n\r\n if (!this._config.parent) {\r\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\r\n }\r\n\r\n if (this._config.toggle) {\r\n this.toggle();\r\n }\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n toggle() {\r\n if (this._isShown()) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n\r\n show() {\r\n if (this._isTransitioning || this._isShown()) {\r\n return;\r\n }\r\n\r\n let actives = [];\r\n let activesData;\r\n\r\n if (this._config.parent) {\r\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\r\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(\r\n (elem) => !children.includes(elem)\r\n ); // remove children if greater depth\r\n }\r\n\r\n const container = SelectorEngine.findOne(this._selector);\r\n if (actives.length) {\r\n const tempActiveData = actives.find((elem) => container !== elem);\r\n activesData = tempActiveData ? Collapse.getInstance(tempActiveData) : null;\r\n\r\n if (activesData && activesData._isTransitioning) {\r\n return;\r\n }\r\n }\r\n\r\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW);\r\n if (startEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n actives.forEach((elemActive) => {\r\n if (container !== elemActive) {\r\n Collapse.getOrCreateInstance(elemActive, { toggle: false }).hide();\r\n }\r\n\r\n if (!activesData) {\r\n Data.set(elemActive, DATA_KEY, null);\r\n }\r\n });\r\n\r\n const dimension = this._getDimension();\r\n\r\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\r\n this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n\r\n this._element.style[dimension] = 0;\r\n\r\n this._addAriaAndCollapsedClass(this._triggerArray, true);\r\n this._isTransitioning = true;\r\n\r\n const complete = () => {\r\n this._isTransitioning = false;\r\n\r\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n this._element.style[dimension] = '';\r\n\r\n EventHandler.trigger(this._element, EVENT_SHOWN);\r\n };\r\n\r\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\r\n const scrollSize = `scroll${capitalizedDimension}`;\r\n\r\n this._queueCallback(complete, this._element, true);\r\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\r\n }\r\n\r\n hide() {\r\n if (this._isTransitioning || !this._isShown()) {\r\n return;\r\n }\r\n\r\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n if (startEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const dimension = this._getDimension();\r\n\r\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\r\n\r\n reflow(this._element);\r\n\r\n this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n const triggerArrayLength = this._triggerArray.length;\r\n for (let i = 0; i < triggerArrayLength; i++) {\r\n const trigger = this._triggerArray[i];\r\n const elem = getElementFromSelector(trigger);\r\n\r\n if (elem && !this._isShown(elem)) {\r\n this._addAriaAndCollapsedClass([trigger], false);\r\n }\r\n }\r\n\r\n this._isTransitioning = true;\r\n\r\n const complete = () => {\r\n this._isTransitioning = false;\r\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n this._element.classList.add(CLASS_NAME_COLLAPSE);\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n };\r\n\r\n this._element.style[dimension] = '';\r\n\r\n this._queueCallback(complete, this._element, true);\r\n }\r\n\r\n _isShown(element = this._element) {\r\n return element.classList.contains(CLASS_NAME_SHOW);\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...config,\r\n };\r\n config.toggle = Boolean(config.toggle); // Coerce string values\r\n config.parent = getElement(config.parent);\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _getDimension() {\r\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\r\n }\r\n\r\n _initializeChildren() {\r\n if (!this._config.parent) {\r\n return;\r\n }\r\n\r\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\r\n SelectorEngine.find(SELECTOR_DATA_TOGGLE, this._config.parent)\r\n .filter((elem) => !children.includes(elem))\r\n .forEach((element) => {\r\n const selected = getElementFromSelector(element);\r\n\r\n if (selected) {\r\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\r\n }\r\n });\r\n }\r\n\r\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\r\n if (!triggerArray.length) {\r\n return;\r\n }\r\n\r\n triggerArray.forEach((elem) => {\r\n if (isOpen) {\r\n elem.classList.remove(CLASS_NAME_COLLAPSED);\r\n } else {\r\n elem.classList.add(CLASS_NAME_COLLAPSED);\r\n }\r\n\r\n elem.setAttribute('aria-expanded', isOpen);\r\n });\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const _config = {};\r\n if (typeof config === 'string' && /show|hide/.test(config)) {\r\n _config.toggle = false;\r\n }\r\n\r\n const data = Collapse.getOrCreateInstance(this, _config);\r\n\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n // preventDefault only for elements (which change the URL) not inside the collapsible element\r\n if (\r\n event.target.tagName === 'A' ||\r\n (event.delegateTarget && event.delegateTarget.tagName === 'A')\r\n ) {\r\n event.preventDefault();\r\n }\r\n\r\n const selector = getSelectorFromElement(this);\r\n const selectorElements = SelectorEngine.find(selector);\r\n\r\n selectorElements.forEach((element) => {\r\n Collapse.getOrCreateInstance(element, { toggle: false }).toggle();\r\n });\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Collapse to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Collapse);\r\n\r\nexport default Collapse;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport SelectorEngine from '../dom/selector-engine';\r\nimport Manipulator from '../dom/manipulator';\r\nimport { isElement } from './index';\r\n\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\r\n\r\nclass ScrollBarHelper {\r\n constructor() {\r\n this._element = document.body;\r\n }\r\n\r\n getWidth() {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n const documentWidth = document.documentElement.clientWidth;\r\n return Math.abs(window.innerWidth - documentWidth);\r\n }\r\n\r\n hide() {\r\n const width = this.getWidth();\r\n this._disableOverFlow();\r\n // give padding to element to balance the hidden scrollbar width\r\n this._setElementAttributes(\r\n this._element,\r\n 'paddingRight',\r\n (calculatedValue) => calculatedValue + width\r\n );\r\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n this._setElementAttributes(\r\n SELECTOR_FIXED_CONTENT,\r\n 'paddingRight',\r\n (calculatedValue) => calculatedValue + width\r\n );\r\n this._setElementAttributes(\r\n SELECTOR_STICKY_CONTENT,\r\n 'marginRight',\r\n (calculatedValue) => calculatedValue - width\r\n );\r\n }\r\n\r\n _disableOverFlow() {\r\n this._saveInitialAttribute(this._element, 'overflow');\r\n this._element.style.overflow = 'hidden';\r\n }\r\n\r\n _setElementAttributes(selector, styleProp, callback) {\r\n const scrollbarWidth = this.getWidth();\r\n const manipulationCallBack = (element) => {\r\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n return;\r\n }\r\n\r\n this._saveInitialAttribute(element, styleProp);\r\n const calculatedValue = window.getComputedStyle(element)[styleProp];\r\n element.style[styleProp] = `${callback(Number.parseFloat(calculatedValue))}px`;\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n reset() {\r\n this._resetElementAttributes(this._element, 'overflow');\r\n this._resetElementAttributes(this._element, 'paddingRight');\r\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\r\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\r\n }\r\n\r\n _saveInitialAttribute(element, styleProp) {\r\n const actualValue = element.style[styleProp];\r\n if (actualValue) {\r\n Manipulator.setDataAttribute(element, styleProp, actualValue);\r\n }\r\n }\r\n\r\n _resetElementAttributes(selector, styleProp) {\r\n const manipulationCallBack = (element) => {\r\n const value = Manipulator.getDataAttribute(element, styleProp);\r\n if (typeof value === 'undefined') {\r\n element.style.removeProperty(styleProp);\r\n } else {\r\n Manipulator.removeDataAttribute(element, styleProp);\r\n element.style[styleProp] = value;\r\n }\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n _applyManipulationCallback(selector, callBack) {\r\n if (isElement(selector)) {\r\n callBack(selector);\r\n } else {\r\n SelectorEngine.find(selector, this._element).forEach(callBack);\r\n }\r\n }\r\n\r\n isOverflowing() {\r\n return this.getWidth() > 0;\r\n }\r\n}\r\n\r\nexport default ScrollBarHelper;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/backdrop.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler';\r\nimport { execute, executeAfterTransition, getElement, reflow, typeCheckConfig } from './index';\r\n\r\nconst Default = {\r\n className: 'modal-backdrop',\r\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\r\n isAnimated: false,\r\n rootElement: 'body', // give the choice to place backdrop under different elements\r\n clickCallback: null,\r\n};\r\n\r\nconst DefaultType = {\r\n className: 'string',\r\n isVisible: 'boolean',\r\n isAnimated: 'boolean',\r\n rootElement: '(element|string)',\r\n clickCallback: '(function|null)',\r\n};\r\nconst NAME = 'backdrop';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`;\r\n\r\nclass Backdrop {\r\n constructor(config) {\r\n this._config = this._getConfig(config);\r\n this._isAppended = false;\r\n this._element = null;\r\n }\r\n\r\n show(callback) {\r\n if (!this._config.isVisible) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n this._append();\r\n\r\n if (this._config.isAnimated) {\r\n reflow(this._getElement());\r\n }\r\n\r\n this._getElement().classList.add(CLASS_NAME_SHOW);\r\n\r\n this._emulateAnimation(() => {\r\n execute(callback);\r\n });\r\n }\r\n\r\n hide(callback) {\r\n if (!this._config.isVisible) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n this._getElement().classList.remove(CLASS_NAME_SHOW);\r\n\r\n this._emulateAnimation(() => {\r\n this.dispose();\r\n execute(callback);\r\n });\r\n }\r\n\r\n // Private\r\n\r\n _getElement() {\r\n if (!this._element) {\r\n const backdrop = document.createElement('div');\r\n backdrop.className = this._config.className;\r\n if (this._config.isAnimated) {\r\n backdrop.classList.add(CLASS_NAME_FADE);\r\n }\r\n\r\n this._element = backdrop;\r\n }\r\n\r\n return this._element;\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n\r\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\r\n config.rootElement = getElement(config.rootElement);\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _append() {\r\n if (this._isAppended) {\r\n return;\r\n }\r\n\r\n this._config.rootElement.append(this._getElement());\r\n\r\n EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, () => {\r\n execute(this._config.clickCallback);\r\n });\r\n\r\n this._isAppended = true;\r\n }\r\n\r\n dispose() {\r\n if (!this._isAppended) {\r\n return;\r\n }\r\n\r\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\r\n\r\n this._element.remove();\r\n this._isAppended = false;\r\n }\r\n\r\n _emulateAnimation(callback) {\r\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\r\n }\r\n}\r\n\r\nexport default Backdrop;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/component-functions.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler';\r\nimport { getElementFromSelector, isDisabled } from './index';\r\n\r\nconst enableDismissTrigger = (component, method = 'hide') => {\r\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\r\n const name = component.NAME;\r\n\r\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (isDisabled(this)) {\r\n return;\r\n }\r\n\r\n const target = getElementFromSelector(this) || this.closest(`.${name}`);\r\n const instance = component.getOrCreateInstance(target);\r\n\r\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\r\n instance[method]();\r\n });\r\n};\r\n\r\nexport { enableDismissTrigger };\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/focustrap.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler';\r\nimport SelectorEngine from '../dom/selector-engine';\r\nimport { typeCheckConfig } from './index';\r\n\r\nconst Default = {\r\n trapElement: null, // The element to trap focus inside of\r\n autofocus: true,\r\n};\r\n\r\nconst DefaultType = {\r\n trapElement: 'element',\r\n autofocus: 'boolean',\r\n};\r\n\r\nconst NAME = 'focustrap';\r\nconst DATA_KEY = 'bs.focustrap';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`;\r\n\r\nconst TAB_KEY = 'Tab';\r\nconst TAB_NAV_FORWARD = 'forward';\r\nconst TAB_NAV_BACKWARD = 'backward';\r\n\r\nclass FocusTrap {\r\n constructor(config) {\r\n this._config = this._getConfig(config);\r\n this._isActive = false;\r\n this._lastTabNavDirection = null;\r\n }\r\n\r\n activate() {\r\n const { trapElement, autofocus } = this._config;\r\n\r\n if (this._isActive) {\r\n return;\r\n }\r\n\r\n if (autofocus) {\r\n trapElement.focus();\r\n }\r\n\r\n EventHandler.off(document, EVENT_KEY); // guard against infinite focus loop\r\n EventHandler.on(document, EVENT_FOCUSIN, (event) => this._handleFocusin(event));\r\n EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));\r\n\r\n this._isActive = true;\r\n }\r\n\r\n deactivate() {\r\n if (!this._isActive) {\r\n return;\r\n }\r\n\r\n this._isActive = false;\r\n EventHandler.off(document, EVENT_KEY);\r\n }\r\n\r\n // Private\r\n\r\n _handleFocusin(event) {\r\n const { target } = event;\r\n const { trapElement } = this._config;\r\n\r\n if (target === document || target === trapElement || trapElement.contains(target)) {\r\n return;\r\n }\r\n\r\n const elements = SelectorEngine.focusableChildren(trapElement);\r\n\r\n if (elements.length === 0) {\r\n trapElement.focus();\r\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\r\n elements[elements.length - 1].focus();\r\n } else {\r\n elements[0].focus();\r\n }\r\n }\r\n\r\n _handleKeydown(event) {\r\n if (event.key !== TAB_KEY) {\r\n return;\r\n }\r\n\r\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n}\r\n\r\nexport default FocusTrap;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): offcanvas.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElementFromSelector,\r\n isDisabled,\r\n isVisible,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport ScrollBarHelper from './util/scrollbar';\r\nimport EventHandler from './dom/event-handler';\r\nimport BaseComponent from './base-component';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport Manipulator from './dom/manipulator';\r\nimport Backdrop from './util/backdrop';\r\nimport FocusTrap from './util/focustrap';\r\nimport { enableDismissTrigger } from './util/component-functions';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'offcanvas';\r\nconst DATA_KEY = 'bs.offcanvas';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst Default = {\r\n backdrop: true,\r\n keyboard: true,\r\n scroll: false,\r\n};\r\n\r\nconst DefaultType = {\r\n backdrop: 'boolean',\r\n keyboard: 'boolean',\r\n scroll: 'boolean',\r\n};\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\r\nconst OPEN_SELECTOR = '.offcanvas.show';\r\n\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"offcanvas\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Offcanvas extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._config = this._getConfig(config);\r\n this._isShown = false;\r\n this._backdrop = this._initializeBackDrop();\r\n this._focustrap = this._initializeFocusTrap();\r\n this._addEventListeners();\r\n }\r\n\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n // Public\r\n\r\n toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget);\r\n }\r\n\r\n show(relatedTarget) {\r\n if (this._isShown) {\r\n return;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget });\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = true;\r\n this._element.style.visibility = 'visible';\r\n\r\n this._backdrop.show();\r\n\r\n if (!this._config.scroll) {\r\n new ScrollBarHelper().hide();\r\n }\r\n\r\n this._element.removeAttribute('aria-hidden');\r\n this._element.setAttribute('aria-modal', true);\r\n this._element.setAttribute('role', 'dialog');\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n const completeCallBack = () => {\r\n if (!this._config.scroll) {\r\n this._focustrap.activate();\r\n }\r\n\r\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget });\r\n };\r\n\r\n this._queueCallback(completeCallBack, this._element, true);\r\n }\r\n\r\n hide() {\r\n if (!this._isShown) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._focustrap.deactivate();\r\n this._element.blur();\r\n this._isShown = false;\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n this._backdrop.hide();\r\n\r\n const completeCallback = () => {\r\n this._element.setAttribute('aria-hidden', true);\r\n this._element.removeAttribute('aria-modal');\r\n this._element.removeAttribute('role');\r\n this._element.style.visibility = 'hidden';\r\n\r\n if (!this._config.scroll) {\r\n new ScrollBarHelper().reset();\r\n }\r\n\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n };\r\n\r\n this._queueCallback(completeCallback, this._element, true);\r\n }\r\n\r\n dispose() {\r\n this._backdrop.dispose();\r\n this._focustrap.deactivate();\r\n super.dispose();\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _initializeBackDrop() {\r\n return new Backdrop({\r\n className: CLASS_NAME_BACKDROP,\r\n isVisible: this._config.backdrop,\r\n isAnimated: true,\r\n rootElement: this._element.parentNode,\r\n clickCallback: () => this.hide(),\r\n });\r\n }\r\n\r\n _initializeFocusTrap() {\r\n return new FocusTrap({\r\n trapElement: this._element,\r\n });\r\n }\r\n\r\n _addEventListeners() {\r\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {\r\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\r\n this.hide();\r\n }\r\n });\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Offcanvas.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](this);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (isDisabled(this)) {\r\n return;\r\n }\r\n\r\n EventHandler.one(target, EVENT_HIDDEN, () => {\r\n // focus on trigger when it is closed\r\n if (isVisible(this)) {\r\n this.focus();\r\n }\r\n });\r\n\r\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\r\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\r\n if (allReadyOpen && allReadyOpen !== target) {\r\n Offcanvas.getInstance(allReadyOpen).hide();\r\n }\r\n\r\n const data = Offcanvas.getOrCreateInstance(target);\r\n data.toggle(this);\r\n});\r\n\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () =>\r\n SelectorEngine.find(OPEN_SELECTOR).forEach((el) => Offcanvas.getOrCreateInstance(el).show())\r\n);\r\n\r\nenableDismissTrigger(Offcanvas);\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\ndefineJQueryPlugin(Offcanvas);\r\n\r\nexport default Offcanvas;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): alert.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { defineJQueryPlugin } from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport BaseComponent from './base-component';\r\nimport { enableDismissTrigger } from './util/component-functions';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'alert';\r\nconst DATA_KEY = 'bs.alert';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\n\r\nconst EVENT_CLOSE = `close${EVENT_KEY}`;\r\nconst EVENT_CLOSED = `closed${EVENT_KEY}`;\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Alert extends BaseComponent {\r\n // Getters\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n close() {\r\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\r\n\r\n if (closeEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE);\r\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\r\n }\r\n\r\n // Private\r\n _destroyElement() {\r\n this._element.remove();\r\n EventHandler.trigger(this._element, EVENT_CLOSED);\r\n this.dispose();\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Alert.getOrCreateInstance(this);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](this);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nenableDismissTrigger(Alert, 'close');\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Alert to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Alert);\r\n\r\nexport default Alert;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): carousel.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElementFromSelector,\r\n isRTL,\r\n isVisible,\r\n getNextActiveElement,\r\n reflow,\r\n triggerTransitionEnd,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'carousel';\r\nconst DATA_KEY = 'bs.carousel';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst ARROW_LEFT_KEY = 'ArrowLeft';\r\nconst ARROW_RIGHT_KEY = 'ArrowRight';\r\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\r\nconst SWIPE_THRESHOLD = 40;\r\n\r\nconst Default = {\r\n interval: 5000,\r\n keyboard: true,\r\n slide: false,\r\n pause: 'hover',\r\n wrap: true,\r\n touch: true,\r\n};\r\n\r\nconst DefaultType = {\r\n interval: '(number|boolean)',\r\n keyboard: 'boolean',\r\n slide: '(boolean|string)',\r\n pause: '(string|boolean)',\r\n wrap: 'boolean',\r\n touch: 'boolean',\r\n};\r\n\r\nconst ORDER_NEXT = 'next';\r\nconst ORDER_PREV = 'prev';\r\nconst DIRECTION_LEFT = 'left';\r\nconst DIRECTION_RIGHT = 'right';\r\n\r\nconst KEY_TO_DIRECTION = {\r\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\r\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT,\r\n};\r\n\r\nconst EVENT_SLIDE = `slide${EVENT_KEY}`;\r\nconst EVENT_SLID = `slid${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`;\r\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`;\r\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`;\r\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`;\r\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`;\r\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`;\r\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`;\r\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`;\r\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_CAROUSEL = 'carousel';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_SLIDE = 'slide';\r\nconst CLASS_NAME_END = 'carousel-item-end';\r\nconst CLASS_NAME_START = 'carousel-item-start';\r\nconst CLASS_NAME_NEXT = 'carousel-item-next';\r\nconst CLASS_NAME_PREV = 'carousel-item-prev';\r\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\r\n\r\nconst SELECTOR_ACTIVE = '.active';\r\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\r\nconst SELECTOR_ITEM = '.carousel-item';\r\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\r\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\r\nconst SELECTOR_INDICATORS = '.carousel-indicators';\r\nconst SELECTOR_INDICATOR = '[data-bs-target]';\r\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\r\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\r\n\r\nconst POINTER_TYPE_TOUCH = 'touch';\r\nconst POINTER_TYPE_PEN = 'pen';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\nclass Carousel extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._items = null;\r\n this._interval = null;\r\n this._activeElement = null;\r\n this._isPaused = false;\r\n this._isSliding = false;\r\n this.touchTimeout = null;\r\n this.touchStartX = 0;\r\n this.touchDeltaX = 0;\r\n\r\n this._config = this._getConfig(config);\r\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\r\n this._touchSupported =\r\n 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\r\n this._pointerEvent = Boolean(window.PointerEvent);\r\n\r\n this._addEventListeners();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n next() {\r\n this._slide(ORDER_NEXT);\r\n }\r\n\r\n nextWhenVisible() {\r\n // Don't call next when the page isn't visible\r\n // or the carousel or its parent isn't visible\r\n if (!document.hidden && isVisible(this._element)) {\r\n this.next();\r\n }\r\n }\r\n\r\n prev() {\r\n this._slide(ORDER_PREV);\r\n }\r\n\r\n pause(event) {\r\n if (!event) {\r\n this._isPaused = true;\r\n }\r\n\r\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\r\n triggerTransitionEnd(this._element);\r\n this.cycle(true);\r\n }\r\n\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n\r\n cycle(event) {\r\n if (!event) {\r\n this._isPaused = false;\r\n }\r\n\r\n if (this._interval) {\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n\r\n if (this._config && this._config.interval && !this._isPaused) {\r\n this._updateInterval();\r\n\r\n this._interval = setInterval(\r\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\r\n this._config.interval\r\n );\r\n }\r\n }\r\n\r\n to(index) {\r\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n const activeIndex = this._getItemIndex(this._activeElement);\r\n\r\n if (index > this._items.length - 1 || index < 0) {\r\n return;\r\n }\r\n\r\n if (this._isSliding) {\r\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\r\n return;\r\n }\r\n\r\n if (activeIndex === index) {\r\n this.pause();\r\n this.cycle();\r\n return;\r\n }\r\n\r\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\r\n\r\n this._slide(order, this._items[index]);\r\n }\r\n\r\n // Private\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _handleSwipe() {\r\n const absDeltax = Math.abs(this.touchDeltaX);\r\n\r\n if (absDeltax <= SWIPE_THRESHOLD) {\r\n return;\r\n }\r\n\r\n const direction = absDeltax / this.touchDeltaX;\r\n\r\n this.touchDeltaX = 0;\r\n\r\n if (!direction) {\r\n return;\r\n }\r\n\r\n this._slide(direction > 0 ? DIRECTION_RIGHT : DIRECTION_LEFT);\r\n }\r\n\r\n _addEventListeners() {\r\n if (this._config.keyboard) {\r\n EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event));\r\n }\r\n\r\n if (this._config.pause === 'hover') {\r\n EventHandler.on(this._element, EVENT_MOUSEENTER, (event) => this.pause(event));\r\n EventHandler.on(this._element, EVENT_MOUSELEAVE, (event) => this.cycle(event));\r\n }\r\n\r\n if (this._config.touch && this._touchSupported) {\r\n this._addTouchEventListeners();\r\n }\r\n }\r\n\r\n _addTouchEventListeners() {\r\n const hasPointerPenTouch = (event) => {\r\n return (\r\n this._pointerEvent &&\r\n (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\r\n );\r\n };\r\n\r\n const start = (event) => {\r\n if (hasPointerPenTouch(event)) {\r\n this.touchStartX = event.clientX;\r\n } else if (!this._pointerEvent) {\r\n this.touchStartX = event.touches[0].clientX;\r\n }\r\n };\r\n\r\n const move = (event) => {\r\n // ensure swiping with one touch and not pinching\r\n this.touchDeltaX =\r\n event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this.touchStartX;\r\n };\r\n\r\n const end = (event) => {\r\n if (hasPointerPenTouch(event)) {\r\n this.touchDeltaX = event.clientX - this.touchStartX;\r\n }\r\n\r\n this._handleSwipe();\r\n if (this._config.pause === 'hover') {\r\n // If it's a touch-enabled device, mouseenter/leave are fired as\r\n // part of the mouse compatibility events on first tap - the carousel\r\n // would stop cycling until user tapped out of it;\r\n // here, we listen for touchend, explicitly pause the carousel\r\n // (as if it's the second time we tap on it, mouseenter compat event\r\n // is NOT fired) and after a timeout (to allow for mouse compatibility\r\n // events to fire) we explicitly restart cycling\r\n\r\n this.pause();\r\n if (this.touchTimeout) {\r\n clearTimeout(this.touchTimeout);\r\n }\r\n\r\n this.touchTimeout = setTimeout(\r\n (event) => this.cycle(event),\r\n TOUCHEVENT_COMPAT_WAIT + this._config.interval\r\n );\r\n }\r\n };\r\n\r\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach((itemImg) => {\r\n EventHandler.on(itemImg, EVENT_DRAG_START, (event) => event.preventDefault());\r\n });\r\n\r\n if (this._pointerEvent) {\r\n EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => start(event));\r\n EventHandler.on(this._element, EVENT_POINTERUP, (event) => end(event));\r\n\r\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\r\n } else {\r\n EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => start(event));\r\n EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => move(event));\r\n EventHandler.on(this._element, EVENT_TOUCHEND, (event) => end(event));\r\n }\r\n }\r\n\r\n _keydown(event) {\r\n if (/input|textarea/i.test(event.target.tagName)) {\r\n return;\r\n }\r\n\r\n const direction = KEY_TO_DIRECTION[event.key];\r\n if (direction) {\r\n event.preventDefault();\r\n this._slide(direction);\r\n }\r\n }\r\n\r\n _getItemIndex(element) {\r\n this._items =\r\n element && element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode) : [];\r\n\r\n return this._items.indexOf(element);\r\n }\r\n\r\n _getItemByOrder(order, activeElement) {\r\n const isNext = order === ORDER_NEXT;\r\n return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);\r\n }\r\n\r\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\r\n const targetIndex = this._getItemIndex(relatedTarget);\r\n const fromIndex = this._getItemIndex(\r\n SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\r\n );\r\n\r\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\r\n relatedTarget,\r\n direction: eventDirectionName,\r\n from: fromIndex,\r\n to: targetIndex,\r\n });\r\n }\r\n\r\n _setActiveIndicatorElement(element) {\r\n if (this._indicatorsElement) {\r\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\r\n\r\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE);\r\n activeIndicator.removeAttribute('aria-current');\r\n\r\n const indicators = SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement);\r\n\r\n for (let i = 0; i < indicators.length; i++) {\r\n if (\r\n Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10) ===\r\n this._getItemIndex(element)\r\n ) {\r\n indicators[i].classList.add(CLASS_NAME_ACTIVE);\r\n indicators[i].setAttribute('aria-current', 'true');\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n _updateInterval() {\r\n const element =\r\n this._activeElement || SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\r\n\r\n if (elementInterval) {\r\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\r\n this._config.interval = elementInterval;\r\n } else {\r\n this._config.interval = this._config.defaultInterval || this._config.interval;\r\n }\r\n }\r\n\r\n _slide(directionOrOrder, element) {\r\n const order = this._directionToOrder(directionOrOrder);\r\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n const activeElementIndex = this._getItemIndex(activeElement);\r\n const nextElement = element || this._getItemByOrder(order, activeElement);\r\n\r\n const nextElementIndex = this._getItemIndex(nextElement);\r\n const isCycling = Boolean(this._interval);\r\n\r\n const isNext = order === ORDER_NEXT;\r\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\r\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\r\n const eventDirectionName = this._orderToDirection(order);\r\n\r\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\r\n this._isSliding = false;\r\n return;\r\n }\r\n\r\n if (this._isSliding) {\r\n return;\r\n }\r\n\r\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\r\n if (slideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (!activeElement || !nextElement) {\r\n // Some weirdness is happening, so we bail\r\n return;\r\n }\r\n\r\n this._isSliding = true;\r\n\r\n if (isCycling) {\r\n this.pause();\r\n }\r\n\r\n this._setActiveIndicatorElement(nextElement);\r\n this._activeElement = nextElement;\r\n\r\n const triggerSlidEvent = () => {\r\n EventHandler.trigger(this._element, EVENT_SLID, {\r\n relatedTarget: nextElement,\r\n direction: eventDirectionName,\r\n from: activeElementIndex,\r\n to: nextElementIndex,\r\n });\r\n };\r\n\r\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\r\n nextElement.classList.add(orderClassName);\r\n\r\n reflow(nextElement);\r\n\r\n activeElement.classList.add(directionalClassName);\r\n nextElement.classList.add(directionalClassName);\r\n\r\n const completeCallBack = () => {\r\n nextElement.classList.remove(directionalClassName, orderClassName);\r\n nextElement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);\r\n\r\n this._isSliding = false;\r\n\r\n setTimeout(triggerSlidEvent, 0);\r\n };\r\n\r\n this._queueCallback(completeCallBack, activeElement, true);\r\n } else {\r\n activeElement.classList.remove(CLASS_NAME_ACTIVE);\r\n nextElement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n this._isSliding = false;\r\n triggerSlidEvent();\r\n }\r\n\r\n if (isCycling) {\r\n this.cycle();\r\n }\r\n }\r\n\r\n _directionToOrder(direction) {\r\n if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {\r\n return direction;\r\n }\r\n\r\n if (isRTL()) {\r\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\r\n }\r\n\r\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\r\n }\r\n\r\n _orderToDirection(order) {\r\n if (![ORDER_NEXT, ORDER_PREV].includes(order)) {\r\n return order;\r\n }\r\n\r\n if (isRTL()) {\r\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\r\n }\r\n\r\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\r\n }\r\n\r\n // Static\r\n\r\n static carouselInterface(element, config) {\r\n const data = Carousel.getOrCreateInstance(element, config);\r\n\r\n let { _config } = data;\r\n if (typeof config === 'object') {\r\n _config = {\r\n ..._config,\r\n ...config,\r\n };\r\n }\r\n\r\n const action = typeof config === 'string' ? config : _config.slide;\r\n\r\n if (typeof config === 'number') {\r\n data.to(config);\r\n } else if (typeof action === 'string') {\r\n if (typeof data[action] === 'undefined') {\r\n throw new TypeError(`No method named \"${action}\"`);\r\n }\r\n\r\n data[action]();\r\n } else if (_config.interval && _config.ride) {\r\n data.pause();\r\n data.cycle();\r\n }\r\n }\r\n\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n Carousel.carouselInterface(this, config);\r\n });\r\n }\r\n\r\n static dataApiClickHandler(event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\r\n return;\r\n }\r\n\r\n const config = {\r\n ...Manipulator.getDataAttributes(target),\r\n ...Manipulator.getDataAttributes(this),\r\n };\r\n const slideIndex = this.getAttribute('data-bs-slide-to');\r\n\r\n if (slideIndex) {\r\n config.interval = false;\r\n }\r\n\r\n Carousel.carouselInterface(target, config);\r\n\r\n if (slideIndex) {\r\n Carousel.getInstance(target).to(slideIndex);\r\n }\r\n\r\n event.preventDefault();\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);\r\n\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\r\n\r\n for (let i = 0, len = carousels.length; i < len; i++) {\r\n Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));\r\n }\r\n});\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Carousel to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Carousel);\r\n\r\nexport default Carousel;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): modal.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n getElementFromSelector,\r\n isRTL,\r\n isVisible,\r\n reflow,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport ScrollBarHelper from './util/scrollbar';\r\nimport BaseComponent from './base-component';\r\nimport Backdrop from './util/backdrop';\r\nimport FocusTrap from './util/focustrap';\r\nimport { enableDismissTrigger } from './util/component-functions';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'modal';\r\nconst DATA_KEY = 'bs.modal';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst Default = {\r\n backdrop: true,\r\n keyboard: true,\r\n focus: true,\r\n};\r\n\r\nconst DefaultType = {\r\n backdrop: '(boolean|string)',\r\n keyboard: 'boolean',\r\n focus: 'boolean',\r\n};\r\n\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_RESIZE = `resize${EVENT_KEY}`;\r\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\r\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`;\r\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_OPEN = 'modal-open';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_STATIC = 'modal-static';\r\n\r\nconst OPEN_SELECTOR = '.modal.show';\r\nconst SELECTOR_DIALOG = '.modal-dialog';\r\nconst SELECTOR_MODAL_BODY = '.modal-body';\r\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Class Definition\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nclass Modal extends BaseComponent {\r\n constructor(element, config) {\r\n super(element);\r\n\r\n this._config = this._getConfig(config);\r\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\r\n this._backdrop = this._initializeBackDrop();\r\n this._focustrap = this._initializeFocusTrap();\r\n this._isShown = false;\r\n this._ignoreBackdropClick = false;\r\n this._isTransitioning = false;\r\n this._scrollBar = new ScrollBarHelper();\r\n }\r\n\r\n // Getters\r\n\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n\r\n toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget);\r\n }\r\n\r\n show(relatedTarget) {\r\n if (this._isShown || this._isTransitioning) {\r\n return;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\r\n relatedTarget,\r\n });\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = true;\r\n\r\n if (this._isAnimated()) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n this._scrollBar.hide();\r\n\r\n document.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n this._adjustDialog();\r\n\r\n this._setEscapeEvent();\r\n this._setResizeEvent();\r\n\r\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\r\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, (event) => {\r\n if (event.target === this._element) {\r\n this._ignoreBackdropClick = true;\r\n }\r\n });\r\n });\r\n\r\n this._showBackdrop(() => this._showElement(relatedTarget));\r\n }\r\n\r\n hide() {\r\n if (!this._isShown || this._isTransitioning) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = false;\r\n const isAnimated = this._isAnimated();\r\n\r\n if (isAnimated) {\r\n this._isTransitioning = true;\r\n }\r\n\r\n this._setEscapeEvent();\r\n this._setResizeEvent();\r\n\r\n this._focustrap.deactivate();\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n EventHandler.off(this._element, EVENT_CLICK_DISMISS);\r\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\r\n\r\n this._queueCallback(() => this._hideModal(), this._element, isAnimated);\r\n }\r\n\r\n dispose() {\r\n [window, this._dialog].forEach((htmlElement) => EventHandler.off(htmlElement, EVENT_KEY));\r\n\r\n this._backdrop.dispose();\r\n this._focustrap.deactivate();\r\n super.dispose();\r\n }\r\n\r\n handleUpdate() {\r\n this._adjustDialog();\r\n }\r\n\r\n // Private\r\n\r\n _initializeBackDrop() {\r\n return new Backdrop({\r\n isVisible: Boolean(this._config.backdrop), // 'static' option will be translated to true, and booleans will keep their value\r\n isAnimated: this._isAnimated(),\r\n });\r\n }\r\n\r\n _initializeFocusTrap() {\r\n return new FocusTrap({\r\n trapElement: this._element,\r\n });\r\n }\r\n\r\n _getConfig(config) {\r\n config = {\r\n ...Default,\r\n ...Manipulator.getDataAttributes(this._element),\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n typeCheckConfig(NAME, config, DefaultType);\r\n return config;\r\n }\r\n\r\n _showElement(relatedTarget) {\r\n const isAnimated = this._isAnimated();\r\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\r\n\r\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\r\n // Don't move modal's DOM position\r\n document.body.append(this._element);\r\n }\r\n\r\n this._element.style.display = 'block';\r\n this._element.removeAttribute('aria-hidden');\r\n this._element.setAttribute('aria-modal', true);\r\n this._element.setAttribute('role', 'dialog');\r\n this._element.scrollTop = 0;\r\n\r\n if (modalBody) {\r\n modalBody.scrollTop = 0;\r\n }\r\n\r\n if (isAnimated) {\r\n reflow(this._element);\r\n }\r\n\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n const transitionComplete = () => {\r\n if (this._config.focus) {\r\n this._focustrap.activate();\r\n }\r\n\r\n this._isTransitioning = false;\r\n EventHandler.trigger(this._element, EVENT_SHOWN, {\r\n relatedTarget,\r\n });\r\n };\r\n\r\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\r\n }\r\n\r\n _setEscapeEvent() {\r\n if (this._isShown) {\r\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {\r\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\r\n event.preventDefault();\r\n this.hide();\r\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\r\n this._triggerBackdropTransition();\r\n }\r\n });\r\n } else {\r\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS);\r\n }\r\n }\r\n\r\n _setResizeEvent() {\r\n if (this._isShown) {\r\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog());\r\n } else {\r\n EventHandler.off(window, EVENT_RESIZE);\r\n }\r\n }\r\n\r\n _hideModal() {\r\n this._element.style.display = 'none';\r\n this._element.setAttribute('aria-hidden', true);\r\n this._element.removeAttribute('aria-modal');\r\n this._element.removeAttribute('role');\r\n this._isTransitioning = false;\r\n this._backdrop.hide(() => {\r\n document.body.classList.remove(CLASS_NAME_OPEN);\r\n this._resetAdjustments();\r\n this._scrollBar.reset();\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n });\r\n }\r\n\r\n _showBackdrop(callback) {\r\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, (event) => {\r\n if (this._ignoreBackdropClick) {\r\n this._ignoreBackdropClick = false;\r\n return;\r\n }\r\n\r\n if (event.target !== event.currentTarget) {\r\n return;\r\n }\r\n\r\n if (this._config.backdrop === true) {\r\n this.hide();\r\n } else if (this._config.backdrop === 'static') {\r\n this._triggerBackdropTransition();\r\n }\r\n });\r\n\r\n this._backdrop.show(callback);\r\n }\r\n\r\n _isAnimated() {\r\n return this._element.classList.contains(CLASS_NAME_FADE);\r\n }\r\n\r\n _triggerBackdropTransition() {\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const { classList, scrollHeight, style } = this._element;\r\n const isModalOverflowing = scrollHeight > document.documentElement.clientHeight;\r\n\r\n // return if the following background transition hasn't yet completed\r\n if (\r\n (!isModalOverflowing && style.overflowY === 'hidden') ||\r\n classList.contains(CLASS_NAME_STATIC)\r\n ) {\r\n return;\r\n }\r\n\r\n if (!isModalOverflowing) {\r\n style.overflowY = 'hidden';\r\n }\r\n\r\n classList.add(CLASS_NAME_STATIC);\r\n this._queueCallback(() => {\r\n classList.remove(CLASS_NAME_STATIC);\r\n if (!isModalOverflowing) {\r\n this._queueCallback(() => {\r\n style.overflowY = '';\r\n }, this._dialog);\r\n }\r\n }, this._dialog);\r\n\r\n this._element.focus();\r\n }\r\n\r\n // ----------------------------------------------------------------------\r\n // the following methods are used to handle overflowing modals\r\n // ----------------------------------------------------------------------\r\n\r\n _adjustDialog() {\r\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n const scrollbarWidth = this._scrollBar.getWidth();\r\n const isBodyOverflowing = scrollbarWidth > 0;\r\n\r\n if (\r\n (!isBodyOverflowing && isModalOverflowing && !isRTL()) ||\r\n (isBodyOverflowing && !isModalOverflowing && isRTL())\r\n ) {\r\n this._element.style.paddingLeft = `${scrollbarWidth}px`;\r\n }\r\n\r\n if (\r\n (isBodyOverflowing && !isModalOverflowing && !isRTL()) ||\r\n (!isBodyOverflowing && isModalOverflowing && isRTL())\r\n ) {\r\n this._element.style.paddingRight = `${scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n _resetAdjustments() {\r\n this._element.style.paddingLeft = '';\r\n this._element.style.paddingRight = '';\r\n }\r\n\r\n // Static\r\n\r\n static jQueryInterface(config, relatedTarget) {\r\n return this.each(function () {\r\n const data = Modal.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](relatedTarget);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Data Api implementation\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n const target = getElementFromSelector(this);\r\n\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n EventHandler.one(target, EVENT_SHOW, (showEvent) => {\r\n if (showEvent.defaultPrevented) {\r\n // only register focus restorer if modal will actually get shown\r\n return;\r\n }\r\n\r\n EventHandler.one(target, EVENT_HIDDEN, () => {\r\n if (isVisible(this)) {\r\n this.focus();\r\n }\r\n });\r\n });\r\n\r\n // avoid conflict when clicking moddal toggler while another one is open\r\n const allReadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\r\n if (allReadyOpen) {\r\n Modal.getInstance(allReadyOpen).hide();\r\n }\r\n\r\n const data = Modal.getOrCreateInstance(target);\r\n\r\n data.toggle(this);\r\n});\r\n\r\nenableDismissTrigger(Modal);\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * jQuery\r\n * ------------------------------------------------------------------------\r\n * add .Modal to jQuery only if jQuery is present\r\n */\r\n\r\ndefineJQueryPlugin(Modal);\r\n\r\nexport default Modal;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): util/sanitizer.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst uriAttributes = new Set([\r\n 'background',\r\n 'cite',\r\n 'href',\r\n 'itemtype',\r\n 'longdesc',\r\n 'poster',\r\n 'src',\r\n 'xlink:href',\r\n]);\r\n\r\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\r\n\r\n/**\r\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\r\n *\r\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;\r\n\r\n/**\r\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\r\n *\r\n * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts\r\n */\r\nconst DATA_URL_PATTERN =\r\n /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\r\n\r\nconst allowedAttribute = (attribute, allowedAttributeList) => {\r\n const attributeName = attribute.nodeName.toLowerCase();\r\n\r\n if (allowedAttributeList.includes(attributeName)) {\r\n if (uriAttributes.has(attributeName)) {\r\n return Boolean(\r\n SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue)\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const regExp = allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp);\r\n\r\n // Check if a regular expression validates the attribute.\r\n for (let i = 0, len = regExp.length; i < len; i++) {\r\n if (regExp[i].test(attributeName)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const DefaultAllowlist = {\r\n // Global attributes allowed on any supplied element below.\r\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\r\n a: ['target', 'href', 'title', 'rel'],\r\n area: [],\r\n b: [],\r\n br: [],\r\n col: [],\r\n code: [],\r\n div: [],\r\n em: [],\r\n hr: [],\r\n h1: [],\r\n h2: [],\r\n h3: [],\r\n h4: [],\r\n h5: [],\r\n h6: [],\r\n i: [],\r\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\r\n li: [],\r\n ol: [],\r\n p: [],\r\n pre: [],\r\n s: [],\r\n small: [],\r\n span: [],\r\n sub: [],\r\n sup: [],\r\n strong: [],\r\n u: [],\r\n ul: [],\r\n};\r\n\r\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFn) {\r\n if (!unsafeHtml.length) {\r\n return unsafeHtml;\r\n }\r\n\r\n if (sanitizeFn && typeof sanitizeFn === 'function') {\r\n return sanitizeFn(unsafeHtml);\r\n }\r\n\r\n const domParser = new window.DOMParser();\r\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\r\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\r\n\r\n for (let i = 0, len = elements.length; i < len; i++) {\r\n const element = elements[i];\r\n const elementName = element.nodeName.toLowerCase();\r\n\r\n if (!Object.keys(allowList).includes(elementName)) {\r\n element.remove();\r\n\r\n continue;\r\n }\r\n\r\n const attributeList = [].concat(...element.attributes);\r\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\r\n\r\n attributeList.forEach((attribute) => {\r\n if (!allowedAttribute(attribute, allowedAttributes)) {\r\n element.removeAttribute(attribute.nodeName);\r\n }\r\n });\r\n }\r\n\r\n return createdDocument.body.innerHTML;\r\n}\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.1.3): tooltip.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport * as Popper from '@popperjs/core';\r\n\r\nimport {\r\n defineJQueryPlugin,\r\n findShadowRoot,\r\n getElement,\r\n getUID,\r\n isElement,\r\n isRTL,\r\n noop,\r\n typeCheckConfig,\r\n} from './util/index';\r\nimport { DefaultAllowlist, sanitizeHtml } from './util/sanitizer';\r\nimport Data from './dom/data';\r\nimport EventHandler from './dom/event-handler';\r\nimport Manipulator from './dom/manipulator';\r\nimport SelectorEngine from './dom/selector-engine';\r\nimport BaseComponent from './base-component';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'tooltip';\r\nconst DATA_KEY = 'bs.tooltip';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst CLASS_PREFIX = 'bs-tooltip';\r\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\r\n\r\nconst DefaultType = {\r\n animation: 'boolean',\r\n template: 'string',\r\n title: '(string|element|function)',\r\n trigger: 'string',\r\n delay: '(number|object)',\r\n html: 'boolean',\r\n selector: '(string|boolean)',\r\n placement: '(string|function)',\r\n offset: '(array|string|function)',\r\n container: '(string|element|boolean)',\r\n fallbackPlacements: 'array',\r\n boundary: '(string|element)',\r\n customClass: '(string|function)',\r\n sanitize: 'boolean',\r\n sanitizeFn: '(null|function)',\r\n allowList: 'object',\r\n popperConfig: '(null|object|function)',\r\n};\r\n\r\nconst AttachmentMap = {\r\n AUTO: 'auto',\r\n TOP: 'top',\r\n RIGHT: isRTL() ? 'left' : 'right',\r\n BOTTOM: 'bottom',\r\n LEFT: isRTL() ? 'right' : 'left',\r\n};\r\n\r\nconst Default = {\r\n animation: true,\r\n template:\r\n ' and
\n Have your services hosted with us, on a worry free billing, pay as you use model. \n
\n A dedicated centralised management tool to view your usage and billing.\n
\n Have your services hosted on your AWS account, where you will have full control access rights to the project.
Recommended for high volume use.\n
Many organisations understand the importance of data acquisition, or more specifically the accessibility to the right data. Using it with AI to discover the past and anticipate the future. But for most times, we struggle to make sense of it or we find the lack of it.
\n\n \n Enable user insight for your organisation. \n \n
\nLearn more
\n Seamless intergration to your architechture.
\nLearn more
\n Visualize your market insights.\n
\n \n {/*Learn more
A POD can be described as a \n container of encrypted user's information. \n Each POD is individually encrypted, and contains self identifiable user's information,\n they consist of Signatures, which are encrypted identifiable information\n for a user,\n and blocks, which contains encrypted application values.\n
\nEach POD account is authenticated to the unique end-user. All derived data belongs under the end-user’s choice and control. User has full control over the privacy-settings of the data in her POD account. Each POD account is individually encrypted, and even Noggin has no access unless permitted. All authorized accesses to a POD account is individually controlled by secure cryptographic token.
\nNoggin Client runs on a pay as you use model, allowing your application to scale linearly. Simply transform your application to become PDPA/GDPR Compliance without bill shock.
\nThe Personal Data Protection Act (PDPA) & The General Data Protection Regulation (GDPR) provides a baseline standard of protection for personal data. It complements sector-specific legislative and regulatory frameworks such as the Banking Act and Insurance Act.
\nEach POD account is authenticated to the unique end-user. All derived data belongs under the end-user’s choice and control. User has full control over the privacy-settings of the data in her POD account. Each POD account is individually encrypted, and even Noggin has no access unless permitted. All authorized accesses to a POD account is individually controlled by secure cryptographic token.
\nNoggin Client runs on a pay as you use model, allowing your application to scale linearly. Simply transform your application to become PDPA/GDPR Compliance without bill shock.
\nThe Personal Data Protection Act (PDPA) & The General Data Protection Regulation (GDPR) provides a baseline standard of protection for personal data. It complements sector-specific legislative and regulatory frameworks such as the Banking Act and Insurance Act.
\n\n Some of our clients in alphabetical order\n
\nAnd Many More...
\nAnd Many More...
And Many More...
\nAnd Many More...
\nAnd Many More...
\n\n Some of our partners in alphabetical order.\n
\nAnd Many More...
\nAnd Many More...
\nAnd Many More...
*/}\nAnd Many More...
\n\n \n
Noggin For Users
\n {/*Noggin For Users
\n {/*\n Our Goals and Aims\n
\n\n Return Data
\n To the individual\n
\n Rights to claim and control data, regaining full\n control of your own data.\n
\n\n Democratizing
\n Data\n
\n Data democratization is the ongoing process of\n enabling everybody in an organization, irrespective\n of their technical know-how, to work with data\n comfortably, to feel confident talking about it,\n and, as a result, make data-informed decisions and\n build customer experiences powered by data.\n
\n\n Data Portability\n
is key\n
\n To move the data from the platform/company to the\n individual\n
\n\n Insights\n
\n\n Get business to share insight without sharing their\n data\n
\n\n The Team\n
\n\n Kong Soon{\" \"}\n \n Chak\n \n
\n\n CEO, CO-Founder\n
\n\n Chak Kong Soon is a Managing Partner of Stream\n Global Pte Ltd and was the President of the\n Singapore Computer Society. He has been in the\n Information and Communications Technology (ICT)\n industry for more than 30 years. His passion in\n building and nurturing organisations led him to\n collaborate with several prominent individuals\n to start Stream Global Pte. Ltd.\n
\n\n Aow{\" \"}\n \n Jia Rong\n \n
\n\n Solutions Director, Co-Founder\n
\n\n At the young age of 27, Jia Rong has been\n recognized and appointed as an Honorary\n Secretary in SCS's IT Youth Council. He is also\n part of the IT Advisory Council in Nanyang\n Polytechnic and the Digital Readiness Network\n under the MCI's Digital Readiness Council. Prior\n to NOGGIN.AI. Jia Rong has delivered multiple\n projects developing custom enterprise solutions\n for SMEs in the last decade, including the\n development and launch of SCS's new website.\n
\n\n Lukas{\" \"}\n \n Ng\n \n
\n\n Director of Operations, CO-Founder\n
\n\n Establishing and maintaining processes to ensure\n that the company's objectives are met. Involved\n with the Project Management of the company\n ensuring that the team has clear goals and\n deadlines. As well as to act as a bridge between\n the technical and non-technical folks.\n
\n\n \n
\n Noggin Private Limited\n
\n 77 High Street, #02-13\n
\n High Street Plaza\n
\n Singapore 179433\n
\n EW13/NS25,{\" \"}\n \n City Hall MRT Station\n \n
\n\n NE5,{\" \"}\n \n Clarke Quay MRT Station\n \n
\n {/*\n \n Bus 160\n {\" \"}\n and{\" \"}\n \n Bus 170\n \n ,
\n 5 stops away from Kranji\n Station\n
hello@noggin.ai
\n \n {/*\n Use NovoCall\n
\n \n Call us with ease\n \n
Companies exchange inferred data outputted by analytics and algorithms from \n
\n the “raw” data collected, while preventing access to the original “raw” data. \n
Noggin.ai uses machine-learning algorithms to produce “smart data”. You must first obtain the user data and permit its safe exchange.\n
\nNoggin.ai uses machine-learning algorithms to produce “smart data”. You must first obtain the user data and permit its safe exchange.
\nNoggin.ai offers the innovative solution of collaborative data pooling. This form of data exchange is more secure and private, while retaining the benefits of smart data.\n
\nIntegrating all facets of an operation into a single application\n
\nBusiness process automation with artificial intelligence\n
\n Integrating all facets
\n of an operation into \n
\n a single application.\n
Business Process
\n automation with\n
\n artificial intelligence.\n
Custom-designed Applications Such as Enterprise Resource Planning (ERP) and Robotic Process Automation (RPA) Systems.\n
\nHollistic amalgamation & aggregation to accomplish an overarching function\n
\n Holistic amalgamation & aggregation to accomplish
an overarching functionality that is more than the sum of
its parts \n
Linking Together Different Computing Systems And Software Applications as a Coordinated Whole.\n
\nHollistic amalgamation & aggregation to accomplish an overarching function\n
\nModern sites for the modern world, where technology meets finesse.\n
\nEnticing digital platforms for the 21st-century consumer.\n
\n Powerful, strategic and
\n respledent digital
\n solutions\n
Modern Sites for the
\n modern world, where
\n technology meets
finesse.\n
Enticing digital platforms
\n for the 21st-century
\n consumer.\n
Company Site, Website Revamp, E-commerce Site\n
\nOur expertise translates to your commerical success in Data Protection and Cybersecurity Advisory Services.\n
\nOur expertise translates
\n to your commercial success in Data Protection and Cybersecurity Advisory Services.\n
\n
\n\n \n
\n For each account/organisation, every unique user
would be stored as a POD in their records/data.
Each POD has multiple blocks, with \n each block
being seen as a dataset/database.\n
\n A contract can be applied to each block,
with each contract determining what
\n information can be stored and retrieved
from the block.\n
\n Introducing global contracts. This allows \n
different accounts/organisation to cross share
\n data using the contracts they have defined.\n
\n Introducing global contracts. This allows
\n different accounts/organisation to cross share
\n data using the contracts they have defined.\n
\n \n
Focus on building a easily scalable, easily deployable noggin
\nSelf hosted or Noggin hosted
\nIntegrated client management tools
\nPay as you use...
\nDelivers a step by step walkthrough process to guide the client
throughout the onboarding process.
Once configured, noggin will be built and api endpoints
will be generated.
The objective is to enable new instances of noggin to be easily deployed,
whenever a new client onboards.
The usage tracking tools are built on top of logging services,
which can be fetched or pushed into Noggin core, at a periodical timeframe.
Fundamentally, each client onboard will be hosting / running a series of
AWS services / microservices (Noggin Client).
The core component (Noggin Core) is the primary intersection for Noggin
\nRegistry Service
\nDashboard Service
\nCore Deploy (CI/CD)
\nLogging Service
\nVault (Hashicorp Vault)
\nPOD Service
\nFederated Learning Service
\nContract Service (CI/CD)
\nLogging Service
\nVault (Hashicorp Vault)
\nA POD can be described as a container of encrypted user’s information.
\nEach POD are Individually encrypted, and contains self identifiable user’s information
\n\n POD
Structure\n
\n A Pod consists of Signatures, which are
encrypted identifiable information for a user,
and Blocks, which contain encrypted
application values.\n
\n POD
Signatures\n
A signature is an encrypted value of the user’s
Personal Identifiable Information (PII)
A client can pre set unlimited numbers of
identifiers for each POD
With more signatures, it will be highly useful
for future application’s integration,
e.g. Federated Learning
\n POD
Blocks\n
A block is a set of application data
that has been stored and encrypted
These encrypted data can be used for future
application / analysis
A data contract is needed to exercise these blocks
\nA Data Contract is an agreement which consists of a set of rules / attributes which are used
to exercise and access the data in the block. They are either defined by the clients
(the organisation) or the end-users.
This set of rules are used to encrypt / decrypt the data in the block
\nData Contract will be accessed and exercised during an integration call for a federated learning
\nAll incoming API calls are authenticated via Noggin CORE, which then returns
the corresponding authentication token and its endpoint to the incoming API.
With the authenticated token, the Noggin CLIENT will authenticate the user
and return an individualised authentication token.
Each user’s data is encrypted by their unique set of encryption keys.
\nHence, no single user data are encrypted by the same set of encryption keys
\n\n For each account/organisation, every unique user
would be stored as a POD in their records/data.
Each POD has multiple blocks, with \n each block
being seen as a dataset/database.\n
\n A contract can be applied to each block,
with each contract determining what
\n information can be stored and retrieved
from the block.\n
\n Introducing global contracts. This allows \n
different accounts/organisation to cross share
\n data using the contracts they have defined.\n
\n Introducing global contracts. This allows \n
different accounts/organisation to cross share
\n data using the contracts they have defined.\n
\n \n
Visualise your market insights, user or consumer panels.
\nPredicts where, when and what customers are likely to be doing
\nMatches a customer with their preferred stimuli.
\nOffer specific recommendations.
\n\n \n