@floe-ai/sdk 0.1.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +36 -0
- package/README.md +144 -0
- package/dist-sdk/floe-sdk.es.js +18107 -0
- package/dist-sdk/floe-sdk.es.js.map +1 -0
- package/dist-sdk/floe-sdk.iife.js +918 -0
- package/dist-sdk/floe-sdk.iife.js.map +1 -0
- package/dist-sdk/floe-sdk.umd.js +918 -0
- package/dist-sdk/floe-sdk.umd.js.map +1 -0
- package/dist-sdk/index.d.ts +561 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floe-sdk.iife.js","sources":["../node_modules/events/events.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/bowser/src/constants.js","../node_modules/bowser/src/utils.js","../node_modules/bowser/src/parser-browsers.js","../node_modules/bowser/src/parser-os.js","../node_modules/bowser/src/parser-platforms.js","../node_modules/bowser/src/parser-engines.js","../node_modules/bowser/src/parser.js","../node_modules/bowser/src/bowser.js","../node_modules/@pipecat-ai/client-js/dist/index.module.js","../node_modules/@pipecat-ai/daily-transport/node_modules/@daily-co/daily-js/dist/daily-esm.js","../node_modules/@pipecat-ai/daily-transport/dist/index.module.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-dom/client.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/jsx-runtime.js","../src/components/AudioWaveform.tsx","../src/components/ControlHub.tsx","../src/components/TranscriptSidebar.tsx","../src/sdk/AgentUI.tsx","../src/sdk/accessible-snapshot.ts","../src/sdk/onboarding-sdk.ts","../src/sdk/index.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","var randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","// NOTE: this list must be up-to-date with browsers listed in\n// test/acceptance/useragentstrings.yml\nexport const BROWSER_ALIASES_MAP = {\n 'Amazon Silk': 'amazon_silk',\n 'Android Browser': 'android',\n Bada: 'bada',\n BlackBerry: 'blackberry',\n Chrome: 'chrome',\n Chromium: 'chromium',\n Electron: 'electron',\n Epiphany: 'epiphany',\n Firefox: 'firefox',\n Focus: 'focus',\n Generic: 'generic',\n 'Google Search': 'google_search',\n Googlebot: 'googlebot',\n 'Internet Explorer': 'ie',\n 'K-Meleon': 'k_meleon',\n Maxthon: 'maxthon',\n 'Microsoft Edge': 'edge',\n 'MZ Browser': 'mz',\n 'NAVER Whale Browser': 'naver',\n Opera: 'opera',\n 'Opera Coast': 'opera_coast',\n 'Pale Moon': 'pale_moon',\n PhantomJS: 'phantomjs',\n Puffin: 'puffin',\n QupZilla: 'qupzilla',\n QQ: 'qq',\n QQLite: 'qqlite',\n Safari: 'safari',\n Sailfish: 'sailfish',\n 'Samsung Internet for Android': 'samsung_internet',\n SeaMonkey: 'seamonkey',\n Sleipnir: 'sleipnir',\n Swing: 'swing',\n Tizen: 'tizen',\n 'UC Browser': 'uc',\n Vivaldi: 'vivaldi',\n 'WebOS Browser': 'webos',\n WeChat: 'wechat',\n 'Yandex Browser': 'yandex',\n Roku: 'roku',\n};\n\nexport const BROWSER_MAP = {\n amazon_silk: 'Amazon Silk',\n android: 'Android Browser',\n bada: 'Bada',\n blackberry: 'BlackBerry',\n chrome: 'Chrome',\n chromium: 'Chromium',\n electron: 'Electron',\n epiphany: 'Epiphany',\n firefox: 'Firefox',\n focus: 'Focus',\n generic: 'Generic',\n googlebot: 'Googlebot',\n google_search: 'Google Search',\n ie: 'Internet Explorer',\n k_meleon: 'K-Meleon',\n maxthon: 'Maxthon',\n edge: 'Microsoft Edge',\n mz: 'MZ Browser',\n naver: 'NAVER Whale Browser',\n opera: 'Opera',\n opera_coast: 'Opera Coast',\n pale_moon: 'Pale Moon',\n phantomjs: 'PhantomJS',\n puffin: 'Puffin',\n qupzilla: 'QupZilla',\n qq: 'QQ Browser',\n qqlite: 'QQ Browser Lite',\n safari: 'Safari',\n sailfish: 'Sailfish',\n samsung_internet: 'Samsung Internet for Android',\n seamonkey: 'SeaMonkey',\n sleipnir: 'Sleipnir',\n swing: 'Swing',\n tizen: 'Tizen',\n uc: 'UC Browser',\n vivaldi: 'Vivaldi',\n webos: 'WebOS Browser',\n wechat: 'WeChat',\n yandex: 'Yandex Browser',\n};\n\nexport const PLATFORMS_MAP = {\n tablet: 'tablet',\n mobile: 'mobile',\n desktop: 'desktop',\n tv: 'tv',\n bot: 'bot',\n};\n\nexport const OS_MAP = {\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MacOS: 'macOS',\n iOS: 'iOS',\n Android: 'Android',\n WebOS: 'WebOS',\n BlackBerry: 'BlackBerry',\n Bada: 'Bada',\n Tizen: 'Tizen',\n Linux: 'Linux',\n ChromeOS: 'Chrome OS',\n PlayStation4: 'PlayStation 4',\n Roku: 'Roku',\n};\n\nexport const ENGINE_MAP = {\n EdgeHTML: 'EdgeHTML',\n Blink: 'Blink',\n Trident: 'Trident',\n Presto: 'Presto',\n Gecko: 'Gecko',\n WebKit: 'WebKit',\n};\n","import { BROWSER_MAP, BROWSER_ALIASES_MAP } from './constants.js';\n\nexport default class Utils {\n /**\n * Get first matched item for a string\n * @param {RegExp} regexp\n * @param {String} ua\n * @return {Array|{index: number, input: string}|*|boolean|string}\n */\n static getFirstMatch(regexp, ua) {\n const match = ua.match(regexp);\n return (match && match.length > 0 && match[1]) || '';\n }\n\n /**\n * Get second matched item for a string\n * @param regexp\n * @param {String} ua\n * @return {Array|{index: number, input: string}|*|boolean|string}\n */\n static getSecondMatch(regexp, ua) {\n const match = ua.match(regexp);\n return (match && match.length > 1 && match[2]) || '';\n }\n\n /**\n * Match a regexp and return a constant or undefined\n * @param {RegExp} regexp\n * @param {String} ua\n * @param {*} _const Any const that will be returned if regexp matches the string\n * @return {*}\n */\n static matchAndReturnConst(regexp, ua, _const) {\n if (regexp.test(ua)) {\n return _const;\n }\n return void (0);\n }\n\n static getWindowsVersionName(version) {\n switch (version) {\n case 'NT': return 'NT';\n case 'XP': return 'XP';\n case 'NT 5.0': return '2000';\n case 'NT 5.1': return 'XP';\n case 'NT 5.2': return '2003';\n case 'NT 6.0': return 'Vista';\n case 'NT 6.1': return '7';\n case 'NT 6.2': return '8';\n case 'NT 6.3': return '8.1';\n case 'NT 10.0': return '10';\n default: return undefined;\n }\n }\n\n /**\n * Get macOS version name\n * 10.5 - Leopard\n * 10.6 - Snow Leopard\n * 10.7 - Lion\n * 10.8 - Mountain Lion\n * 10.9 - Mavericks\n * 10.10 - Yosemite\n * 10.11 - El Capitan\n * 10.12 - Sierra\n * 10.13 - High Sierra\n * 10.14 - Mojave\n * 10.15 - Catalina\n *\n * @example\n * getMacOSVersionName(\"10.14\") // 'Mojave'\n *\n * @param {string} version\n * @return {string} versionName\n */\n static getMacOSVersionName(version) {\n const v = version.split('.').splice(0, 2).map(s => parseInt(s, 10) || 0);\n v.push(0);\n if (v[0] !== 10) return undefined;\n switch (v[1]) {\n case 5: return 'Leopard';\n case 6: return 'Snow Leopard';\n case 7: return 'Lion';\n case 8: return 'Mountain Lion';\n case 9: return 'Mavericks';\n case 10: return 'Yosemite';\n case 11: return 'El Capitan';\n case 12: return 'Sierra';\n case 13: return 'High Sierra';\n case 14: return 'Mojave';\n case 15: return 'Catalina';\n default: return undefined;\n }\n }\n\n /**\n * Get Android version name\n * 1.5 - Cupcake\n * 1.6 - Donut\n * 2.0 - Eclair\n * 2.1 - Eclair\n * 2.2 - Froyo\n * 2.x - Gingerbread\n * 3.x - Honeycomb\n * 4.0 - Ice Cream Sandwich\n * 4.1 - Jelly Bean\n * 4.4 - KitKat\n * 5.x - Lollipop\n * 6.x - Marshmallow\n * 7.x - Nougat\n * 8.x - Oreo\n * 9.x - Pie\n *\n * @example\n * getAndroidVersionName(\"7.0\") // 'Nougat'\n *\n * @param {string} version\n * @return {string} versionName\n */\n static getAndroidVersionName(version) {\n const v = version.split('.').splice(0, 2).map(s => parseInt(s, 10) || 0);\n v.push(0);\n if (v[0] === 1 && v[1] < 5) return undefined;\n if (v[0] === 1 && v[1] < 6) return 'Cupcake';\n if (v[0] === 1 && v[1] >= 6) return 'Donut';\n if (v[0] === 2 && v[1] < 2) return 'Eclair';\n if (v[0] === 2 && v[1] === 2) return 'Froyo';\n if (v[0] === 2 && v[1] > 2) return 'Gingerbread';\n if (v[0] === 3) return 'Honeycomb';\n if (v[0] === 4 && v[1] < 1) return 'Ice Cream Sandwich';\n if (v[0] === 4 && v[1] < 4) return 'Jelly Bean';\n if (v[0] === 4 && v[1] >= 4) return 'KitKat';\n if (v[0] === 5) return 'Lollipop';\n if (v[0] === 6) return 'Marshmallow';\n if (v[0] === 7) return 'Nougat';\n if (v[0] === 8) return 'Oreo';\n if (v[0] === 9) return 'Pie';\n return undefined;\n }\n\n /**\n * Get version precisions count\n *\n * @example\n * getVersionPrecision(\"1.10.3\") // 3\n *\n * @param {string} version\n * @return {number}\n */\n static getVersionPrecision(version) {\n return version.split('.').length;\n }\n\n /**\n * Calculate browser version weight\n *\n * @example\n * compareVersions('1.10.2.1', '1.8.2.1.90') // 1\n * compareVersions('1.010.2.1', '1.09.2.1.90'); // 1\n * compareVersions('1.10.2.1', '1.10.2.1'); // 0\n * compareVersions('1.10.2.1', '1.0800.2'); // -1\n * compareVersions('1.10.2.1', '1.10', true); // 0\n *\n * @param {String} versionA versions versions to compare\n * @param {String} versionB versions versions to compare\n * @param {boolean} [isLoose] enable loose comparison\n * @return {Number} comparison result: -1 when versionA is lower,\n * 1 when versionA is bigger, 0 when both equal\n */\n /* eslint consistent-return: 1 */\n static compareVersions(versionA, versionB, isLoose = false) {\n // 1) get common precision for both versions, for example for \"10.0\" and \"9\" it should be 2\n const versionAPrecision = Utils.getVersionPrecision(versionA);\n const versionBPrecision = Utils.getVersionPrecision(versionB);\n\n let precision = Math.max(versionAPrecision, versionBPrecision);\n let lastPrecision = 0;\n\n const chunks = Utils.map([versionA, versionB], (version) => {\n const delta = precision - Utils.getVersionPrecision(version);\n\n // 2) \"9\" -> \"9.0\" (for precision = 2)\n const _version = version + new Array(delta + 1).join('.0');\n\n // 3) \"9.0\" -> [\"000000000\"\", \"000000009\"]\n return Utils.map(_version.split('.'), chunk => new Array(20 - chunk.length).join('0') + chunk).reverse();\n });\n\n // adjust precision for loose comparison\n if (isLoose) {\n lastPrecision = precision - Math.min(versionAPrecision, versionBPrecision);\n }\n\n // iterate in reverse order by reversed chunks array\n precision -= 1;\n while (precision >= lastPrecision) {\n // 4) compare: \"000000009\" > \"000000010\" = false (but \"9\" > \"10\" = true)\n if (chunks[0][precision] > chunks[1][precision]) {\n return 1;\n }\n\n if (chunks[0][precision] === chunks[1][precision]) {\n if (precision === lastPrecision) {\n // all version chunks are same\n return 0;\n }\n\n precision -= 1;\n } else if (chunks[0][precision] < chunks[1][precision]) {\n return -1;\n }\n }\n\n return undefined;\n }\n\n /**\n * Array::map polyfill\n *\n * @param {Array} arr\n * @param {Function} iterator\n * @return {Array}\n */\n static map(arr, iterator) {\n const result = [];\n let i;\n if (Array.prototype.map) {\n return Array.prototype.map.call(arr, iterator);\n }\n for (i = 0; i < arr.length; i += 1) {\n result.push(iterator(arr[i]));\n }\n return result;\n }\n\n /**\n * Array::find polyfill\n *\n * @param {Array} arr\n * @param {Function} predicate\n * @return {Array}\n */\n static find(arr, predicate) {\n let i;\n let l;\n if (Array.prototype.find) {\n return Array.prototype.find.call(arr, predicate);\n }\n for (i = 0, l = arr.length; i < l; i += 1) {\n const value = arr[i];\n if (predicate(value, i)) {\n return value;\n }\n }\n return undefined;\n }\n\n /**\n * Object::assign polyfill\n *\n * @param {Object} obj\n * @param {Object} ...objs\n * @return {Object}\n */\n static assign(obj, ...assigners) {\n const result = obj;\n let i;\n let l;\n if (Object.assign) {\n return Object.assign(obj, ...assigners);\n }\n for (i = 0, l = assigners.length; i < l; i += 1) {\n const assigner = assigners[i];\n if (typeof assigner === 'object' && assigner !== null) {\n const keys = Object.keys(assigner);\n keys.forEach((key) => {\n result[key] = assigner[key];\n });\n }\n }\n return obj;\n }\n\n /**\n * Get short version/alias for a browser name\n *\n * @example\n * getBrowserAlias('Microsoft Edge') // edge\n *\n * @param {string} browserName\n * @return {string}\n */\n static getBrowserAlias(browserName) {\n return BROWSER_ALIASES_MAP[browserName];\n }\n\n /**\n * Get browser name for a short version/alias\n *\n * @example\n * getBrowserTypeByAlias('edge') // Microsoft Edge\n *\n * @param {string} browserAlias\n * @return {string}\n */\n static getBrowserTypeByAlias(browserAlias) {\n return BROWSER_MAP[browserAlias] || '';\n }\n}\n","/**\n * Browsers' descriptors\n *\n * The idea of descriptors is simple. You should know about them two simple things:\n * 1. Every descriptor has a method or property called `test` and a `describe` method.\n * 2. Order of descriptors is important.\n *\n * More details:\n * 1. Method or property `test` serves as a way to detect whether the UA string\n * matches some certain browser or not. The `describe` method helps to make a result\n * object with params that show some browser-specific things: name, version, etc.\n * 2. Order of descriptors is important because a Parser goes through them one by one\n * in course. For example, if you insert Chrome's descriptor as the first one,\n * more then a half of browsers will be described as Chrome, because they will pass\n * the Chrome descriptor's test.\n *\n * Descriptor's `test` could be a property with an array of RegExps, where every RegExp\n * will be applied to a UA string to test it whether it matches or not.\n * If a descriptor has two or more regexps in the `test` array it tests them one by one\n * with a logical sum operation. Parser stops if it has found any RegExp that matches the UA.\n *\n * Or `test` could be a method. In that case it gets a Parser instance and should\n * return true/false to get the Parser know if this browser descriptor matches the UA or not.\n */\n\nimport Utils from './utils.js';\n\nconst commonVersionIdentifier = /version\\/(\\d+(\\.?_?\\d+)+)/i;\n\nconst browsersList = [\n /* Googlebot */\n {\n test: [/googlebot/i],\n describe(ua) {\n const browser = {\n name: 'Googlebot',\n };\n const version = Utils.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Opera < 13.0 */\n {\n test: [/opera/i],\n describe(ua) {\n const browser = {\n name: 'Opera',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Opera > 13.0 */\n {\n test: [/opr\\/|opios/i],\n describe(ua) {\n const browser = {\n name: 'Opera',\n };\n const version = Utils.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/SamsungBrowser/i],\n describe(ua) {\n const browser = {\n name: 'Samsung Internet for Android',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/Whale/i],\n describe(ua) {\n const browser = {\n name: 'NAVER Whale Browser',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/PaleMoon/i],\n describe(ua) {\n const browser = {\n name: 'Pale Moon',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:PaleMoon)[\\s/](\\d+(?:\\.\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/MZBrowser/i],\n describe(ua) {\n const browser = {\n name: 'MZ Browser',\n };\n const version = Utils.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/focus/i],\n describe(ua) {\n const browser = {\n name: 'Focus',\n };\n const version = Utils.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/swing/i],\n describe(ua) {\n const browser = {\n name: 'Swing',\n };\n const version = Utils.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/coast/i],\n describe(ua) {\n const browser = {\n name: 'Opera Coast',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/opt\\/\\d+(?:.?_?\\d+)+/i],\n describe(ua) {\n const browser = {\n name: 'Opera Touch',\n };\n const version = Utils.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/yabrowser/i],\n describe(ua) {\n const browser = {\n name: 'Yandex Browser',\n };\n const version = Utils.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/ucbrowser/i],\n describe(ua) {\n const browser = {\n name: 'UC Browser',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/Maxthon|mxios/i],\n describe(ua) {\n const browser = {\n name: 'Maxthon',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/epiphany/i],\n describe(ua) {\n const browser = {\n name: 'Epiphany',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/puffin/i],\n describe(ua) {\n const browser = {\n name: 'Puffin',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/sleipnir/i],\n describe(ua) {\n const browser = {\n name: 'Sleipnir',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/k-meleon/i],\n describe(ua) {\n const browser = {\n name: 'K-Meleon',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/micromessenger/i],\n describe(ua) {\n const browser = {\n name: 'WeChat',\n };\n const version = Utils.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/qqbrowser/i],\n describe(ua) {\n const browser = {\n name: (/qqbrowserlite/i).test(ua) ? 'QQ Browser Lite' : 'QQ Browser',\n };\n const version = Utils.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/msie|trident/i],\n describe(ua) {\n const browser = {\n name: 'Internet Explorer',\n };\n const version = Utils.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/\\sedg\\//i],\n describe(ua) {\n const browser = {\n name: 'Microsoft Edge',\n };\n\n const version = Utils.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/edg([ea]|ios)/i],\n describe(ua) {\n const browser = {\n name: 'Microsoft Edge',\n };\n\n const version = Utils.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/vivaldi/i],\n describe(ua) {\n const browser = {\n name: 'Vivaldi',\n };\n const version = Utils.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/seamonkey/i],\n describe(ua) {\n const browser = {\n name: 'SeaMonkey',\n };\n const version = Utils.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/sailfish/i],\n describe(ua) {\n const browser = {\n name: 'Sailfish',\n };\n\n const version = Utils.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/silk/i],\n describe(ua) {\n const browser = {\n name: 'Amazon Silk',\n };\n const version = Utils.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/phantom/i],\n describe(ua) {\n const browser = {\n name: 'PhantomJS',\n };\n const version = Utils.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/slimerjs/i],\n describe(ua) {\n const browser = {\n name: 'SlimerJS',\n };\n const version = Utils.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe(ua) {\n const browser = {\n name: 'BlackBerry',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/(web|hpw)[o0]s/i],\n describe(ua) {\n const browser = {\n name: 'WebOS Browser',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/bada/i],\n describe(ua) {\n const browser = {\n name: 'Bada',\n };\n const version = Utils.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/tizen/i],\n describe(ua) {\n const browser = {\n name: 'Tizen',\n };\n const version = Utils.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/qupzilla/i],\n describe(ua) {\n const browser = {\n name: 'QupZilla',\n };\n const version = Utils.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/firefox|iceweasel|fxios/i],\n describe(ua) {\n const browser = {\n name: 'Firefox',\n };\n const version = Utils.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/electron/i],\n describe(ua) {\n const browser = {\n name: 'Electron',\n };\n const version = Utils.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/MiuiBrowser/i],\n describe(ua) {\n const browser = {\n name: 'Miui',\n };\n const version = Utils.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/chromium/i],\n describe(ua) {\n const browser = {\n name: 'Chromium',\n };\n const version = Utils.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/chrome|crios|crmo/i],\n describe(ua) {\n const browser = {\n name: 'Chrome',\n };\n const version = Utils.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n {\n test: [/GSA/i],\n describe(ua) {\n const browser = {\n name: 'Google Search',\n };\n const version = Utils.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Android Browser */\n {\n test(parser) {\n const notLikeAndroid = !parser.test(/like android/i);\n const butAndroid = parser.test(/android/i);\n return notLikeAndroid && butAndroid;\n },\n describe(ua) {\n const browser = {\n name: 'Android Browser',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* PlayStation 4 */\n {\n test: [/playstation 4/i],\n describe(ua) {\n const browser = {\n name: 'PlayStation 4',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Safari */\n {\n test: [/safari|applewebkit/i],\n describe(ua) {\n const browser = {\n name: 'Safari',\n };\n const version = Utils.getFirstMatch(commonVersionIdentifier, ua);\n\n if (version) {\n browser.version = version;\n }\n\n return browser;\n },\n },\n\n /* Something else */\n {\n test: [/.*/i],\n describe(ua) {\n /* Here we try to make sure that there are explicit details about the device\n * in order to decide what regexp exactly we want to apply\n * (as there is a specific decision based on that conclusion)\n */\n const regexpWithoutDeviceSpec = /^(.*)\\/(.*) /;\n const regexpWithDeviceSpec = /^(.*)\\/(.*)[ \\t]\\((.*)/;\n const hasDeviceSpec = ua.search('\\\\(') !== -1;\n const regexp = hasDeviceSpec ? regexpWithDeviceSpec : regexpWithoutDeviceSpec;\n return {\n name: Utils.getFirstMatch(regexp, ua),\n version: Utils.getSecondMatch(regexp, ua),\n };\n },\n },\n];\n\nexport default browsersList;\n","import Utils from './utils.js';\nimport { OS_MAP } from './constants.js';\n\nexport default [\n /* Roku */\n {\n test: [/Roku\\/DVP/],\n describe(ua) {\n const version = Utils.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i, ua);\n return {\n name: OS_MAP.Roku,\n version,\n };\n },\n },\n\n /* Windows Phone */\n {\n test: [/windows phone/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i, ua);\n return {\n name: OS_MAP.WindowsPhone,\n version,\n };\n },\n },\n\n /* Windows */\n {\n test: [/windows /i],\n describe(ua) {\n const version = Utils.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i, ua);\n const versionName = Utils.getWindowsVersionName(version);\n\n return {\n name: OS_MAP.Windows,\n version,\n versionName,\n };\n },\n },\n\n /* Firefox on iPad */\n {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe(ua) {\n const result = {\n name: OS_MAP.iOS,\n };\n const version = Utils.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/, ua);\n if (version) {\n result.version = version;\n }\n return result;\n },\n },\n\n /* macOS */\n {\n test: [/macintosh/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i, ua).replace(/[_\\s]/g, '.');\n const versionName = Utils.getMacOSVersionName(version);\n\n const os = {\n name: OS_MAP.MacOS,\n version,\n };\n if (versionName) {\n os.versionName = versionName;\n }\n return os;\n },\n },\n\n /* iOS */\n {\n test: [/(ipod|iphone|ipad)/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i, ua).replace(/[_\\s]/g, '.');\n\n return {\n name: OS_MAP.iOS,\n version,\n };\n },\n },\n\n /* Android */\n {\n test(parser) {\n const notLikeAndroid = !parser.test(/like android/i);\n const butAndroid = parser.test(/android/i);\n return notLikeAndroid && butAndroid;\n },\n describe(ua) {\n const version = Utils.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i, ua);\n const versionName = Utils.getAndroidVersionName(version);\n const os = {\n name: OS_MAP.Android,\n version,\n };\n if (versionName) {\n os.versionName = versionName;\n }\n return os;\n },\n },\n\n /* WebOS */\n {\n test: [/(web|hpw)[o0]s/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i, ua);\n const os = {\n name: OS_MAP.WebOS,\n };\n\n if (version && version.length) {\n os.version = version;\n }\n return os;\n },\n },\n\n /* BlackBerry */\n {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i, ua)\n || Utils.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i, ua)\n || Utils.getFirstMatch(/\\bbb(\\d+)/i, ua);\n\n return {\n name: OS_MAP.BlackBerry,\n version,\n };\n },\n },\n\n /* Bada */\n {\n test: [/bada/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i, ua);\n\n return {\n name: OS_MAP.Bada,\n version,\n };\n },\n },\n\n /* Tizen */\n {\n test: [/tizen/i],\n describe(ua) {\n const version = Utils.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i, ua);\n\n return {\n name: OS_MAP.Tizen,\n version,\n };\n },\n },\n\n /* Linux */\n {\n test: [/linux/i],\n describe() {\n return {\n name: OS_MAP.Linux,\n };\n },\n },\n\n /* Chrome OS */\n {\n test: [/CrOS/],\n describe() {\n return {\n name: OS_MAP.ChromeOS,\n };\n },\n },\n\n /* Playstation 4 */\n {\n test: [/PlayStation 4/],\n describe(ua) {\n const version = Utils.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i, ua);\n return {\n name: OS_MAP.PlayStation4,\n version,\n };\n },\n },\n];\n","import Utils from './utils.js';\nimport { PLATFORMS_MAP } from './constants.js';\n\n/*\n * Tablets go first since usually they have more specific\n * signs to detect.\n */\n\nexport default [\n /* Googlebot */\n {\n test: [/googlebot/i],\n describe() {\n return {\n type: PLATFORMS_MAP.bot,\n vendor: 'Google',\n };\n },\n },\n\n /* Huawei */\n {\n test: [/huawei/i],\n describe(ua) {\n const model = Utils.getFirstMatch(/(can-l01)/i, ua) && 'Nova';\n const platform = {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Huawei',\n };\n if (model) {\n platform.model = model;\n }\n return platform;\n },\n },\n\n /* Nexus Tablet */\n {\n test: [/nexus\\s*(?:7|8|9|10).*/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Nexus',\n };\n },\n },\n\n /* iPad */\n {\n test: [/ipad/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Apple',\n model: 'iPad',\n };\n },\n },\n\n /* Firefox on iPad */\n {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Apple',\n model: 'iPad',\n };\n },\n },\n\n /* Amazon Kindle Fire */\n {\n test: [/kftt build/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Amazon',\n model: 'Kindle Fire HD 7',\n };\n },\n },\n\n /* Another Amazon Tablet with Silk */\n {\n test: [/silk/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n vendor: 'Amazon',\n };\n },\n },\n\n /* Tablet */\n {\n test: [/tablet(?! pc)/i],\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n };\n },\n },\n\n /* iPod/iPhone */\n {\n test(parser) {\n const iDevice = parser.test(/ipod|iphone/i);\n const likeIDevice = parser.test(/like (ipod|iphone)/i);\n return iDevice && !likeIDevice;\n },\n describe(ua) {\n const model = Utils.getFirstMatch(/(ipod|iphone)/i, ua);\n return {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Apple',\n model,\n };\n },\n },\n\n /* Nexus Mobile */\n {\n test: [/nexus\\s*[0-6].*/i, /galaxy nexus/i],\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Nexus',\n };\n },\n },\n\n /* Nokia */\n {\n test: [/Nokia/i],\n describe(ua) {\n const model = Utils.getFirstMatch(/Nokia\\s+([0-9]+(\\.[0-9]+)?)/i, ua);\n const platform = {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Nokia',\n };\n if (model) {\n platform.model = model;\n }\n return platform;\n },\n },\n\n /* Mobile */\n {\n test: [/[^-]mobi/i],\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n };\n },\n },\n\n /* BlackBerry */\n {\n test(parser) {\n return parser.getBrowserName(true) === 'blackberry';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n vendor: 'BlackBerry',\n };\n },\n },\n\n /* Bada */\n {\n test(parser) {\n return parser.getBrowserName(true) === 'bada';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n };\n },\n },\n\n /* Windows Phone */\n {\n test(parser) {\n return parser.getBrowserName() === 'windows phone';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n vendor: 'Microsoft',\n };\n },\n },\n\n /* Android Tablet */\n {\n test(parser) {\n const osMajorVersion = Number(String(parser.getOSVersion()).split('.')[0]);\n return parser.getOSName(true) === 'android' && (osMajorVersion >= 3);\n },\n describe() {\n return {\n type: PLATFORMS_MAP.tablet,\n };\n },\n },\n\n /* Android Mobile */\n {\n test(parser) {\n return parser.getOSName(true) === 'android';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.mobile,\n };\n },\n },\n\n /* desktop */\n {\n test(parser) {\n return parser.getOSName(true) === 'macos';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.desktop,\n vendor: 'Apple',\n };\n },\n },\n\n /* Windows */\n {\n test(parser) {\n return parser.getOSName(true) === 'windows';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.desktop,\n };\n },\n },\n\n /* Linux */\n {\n test(parser) {\n return parser.getOSName(true) === 'linux';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.desktop,\n };\n },\n },\n\n /* PlayStation 4 */\n {\n test(parser) {\n return parser.getOSName(true) === 'playstation 4';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.tv,\n };\n },\n },\n\n /* Roku */\n {\n test(parser) {\n return parser.getOSName(true) === 'roku';\n },\n describe() {\n return {\n type: PLATFORMS_MAP.tv,\n };\n },\n },\n];\n","import Utils from './utils.js';\nimport { ENGINE_MAP } from './constants.js';\n\n/*\n * More specific goes first\n */\nexport default [\n /* EdgeHTML */\n {\n test(parser) {\n return parser.getBrowserName(true) === 'microsoft edge';\n },\n describe(ua) {\n const isBlinkBased = /\\sedg\\//i.test(ua);\n\n // return blink if it's blink-based one\n if (isBlinkBased) {\n return {\n name: ENGINE_MAP.Blink,\n };\n }\n\n // otherwise match the version and return EdgeHTML\n const version = Utils.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n return {\n name: ENGINE_MAP.EdgeHTML,\n version,\n };\n },\n },\n\n /* Trident */\n {\n test: [/trident/i],\n describe(ua) {\n const engine = {\n name: ENGINE_MAP.Trident,\n };\n\n const version = Utils.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n engine.version = version;\n }\n\n return engine;\n },\n },\n\n /* Presto */\n {\n test(parser) {\n return parser.test(/presto/i);\n },\n describe(ua) {\n const engine = {\n name: ENGINE_MAP.Presto,\n };\n\n const version = Utils.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n engine.version = version;\n }\n\n return engine;\n },\n },\n\n /* Gecko */\n {\n test(parser) {\n const isGecko = parser.test(/gecko/i);\n const likeGecko = parser.test(/like gecko/i);\n return isGecko && !likeGecko;\n },\n describe(ua) {\n const engine = {\n name: ENGINE_MAP.Gecko,\n };\n\n const version = Utils.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n engine.version = version;\n }\n\n return engine;\n },\n },\n\n /* Blink */\n {\n test: [/(apple)?webkit\\/537\\.36/i],\n describe() {\n return {\n name: ENGINE_MAP.Blink,\n };\n },\n },\n\n /* WebKit */\n {\n test: [/(apple)?webkit/i],\n describe(ua) {\n const engine = {\n name: ENGINE_MAP.WebKit,\n };\n\n const version = Utils.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i, ua);\n\n if (version) {\n engine.version = version;\n }\n\n return engine;\n },\n },\n];\n","import browserParsersList from './parser-browsers.js';\nimport osParsersList from './parser-os.js';\nimport platformParsersList from './parser-platforms.js';\nimport enginesParsersList from './parser-engines.js';\nimport Utils from './utils.js';\n\n/**\n * The main class that arranges the whole parsing process.\n */\nclass Parser {\n /**\n * Create instance of Parser\n *\n * @param {String} UA User-Agent string\n * @param {Boolean} [skipParsing=false] parser can skip parsing in purpose of performance\n * improvements if you need to make a more particular parsing\n * like {@link Parser#parseBrowser} or {@link Parser#parsePlatform}\n *\n * @throw {Error} in case of empty UA String\n *\n * @constructor\n */\n constructor(UA, skipParsing = false) {\n if (UA === void (0) || UA === null || UA === '') {\n throw new Error(\"UserAgent parameter can't be empty\");\n }\n\n this._ua = UA;\n\n /**\n * @typedef ParsedResult\n * @property {Object} browser\n * @property {String|undefined} [browser.name]\n * Browser name, like `\"Chrome\"` or `\"Internet Explorer\"`\n * @property {String|undefined} [browser.version] Browser version as a String `\"12.01.45334.10\"`\n * @property {Object} os\n * @property {String|undefined} [os.name] OS name, like `\"Windows\"` or `\"macOS\"`\n * @property {String|undefined} [os.version] OS version, like `\"NT 5.1\"` or `\"10.11.1\"`\n * @property {String|undefined} [os.versionName] OS name, like `\"XP\"` or `\"High Sierra\"`\n * @property {Object} platform\n * @property {String|undefined} [platform.type]\n * platform type, can be either `\"desktop\"`, `\"tablet\"` or `\"mobile\"`\n * @property {String|undefined} [platform.vendor] Vendor of the device,\n * like `\"Apple\"` or `\"Samsung\"`\n * @property {String|undefined} [platform.model] Device model,\n * like `\"iPhone\"` or `\"Kindle Fire HD 7\"`\n * @property {Object} engine\n * @property {String|undefined} [engine.name]\n * Can be any of this: `WebKit`, `Blink`, `Gecko`, `Trident`, `Presto`, `EdgeHTML`\n * @property {String|undefined} [engine.version] String version of the engine\n */\n this.parsedResult = {};\n\n if (skipParsing !== true) {\n this.parse();\n }\n }\n\n /**\n * Get UserAgent string of current Parser instance\n * @return {String} User-Agent String of the current <Parser> object\n *\n * @public\n */\n getUA() {\n return this._ua;\n }\n\n /**\n * Test a UA string for a regexp\n * @param {RegExp} regex\n * @return {Boolean}\n */\n test(regex) {\n return regex.test(this._ua);\n }\n\n /**\n * Get parsed browser object\n * @return {Object}\n */\n parseBrowser() {\n this.parsedResult.browser = {};\n\n const browserDescriptor = Utils.find(browserParsersList, (_browser) => {\n if (typeof _browser.test === 'function') {\n return _browser.test(this);\n }\n\n if (Array.isArray(_browser.test)) {\n return _browser.test.some(condition => this.test(condition));\n }\n\n throw new Error(\"Browser's test function is not valid\");\n });\n\n if (browserDescriptor) {\n this.parsedResult.browser = browserDescriptor.describe(this.getUA());\n }\n\n return this.parsedResult.browser;\n }\n\n /**\n * Get parsed browser object\n * @return {Object}\n *\n * @public\n */\n getBrowser() {\n if (this.parsedResult.browser) {\n return this.parsedResult.browser;\n }\n\n return this.parseBrowser();\n }\n\n /**\n * Get browser's name\n * @return {String} Browser's name or an empty string\n *\n * @public\n */\n getBrowserName(toLowerCase) {\n if (toLowerCase) {\n return String(this.getBrowser().name).toLowerCase() || '';\n }\n return this.getBrowser().name || '';\n }\n\n\n /**\n * Get browser's version\n * @return {String} version of browser\n *\n * @public\n */\n getBrowserVersion() {\n return this.getBrowser().version;\n }\n\n /**\n * Get OS\n * @return {Object}\n *\n * @example\n * this.getOS();\n * {\n * name: 'macOS',\n * version: '10.11.12'\n * }\n */\n getOS() {\n if (this.parsedResult.os) {\n return this.parsedResult.os;\n }\n\n return this.parseOS();\n }\n\n /**\n * Parse OS and save it to this.parsedResult.os\n * @return {*|{}}\n */\n parseOS() {\n this.parsedResult.os = {};\n\n const os = Utils.find(osParsersList, (_os) => {\n if (typeof _os.test === 'function') {\n return _os.test(this);\n }\n\n if (Array.isArray(_os.test)) {\n return _os.test.some(condition => this.test(condition));\n }\n\n throw new Error(\"Browser's test function is not valid\");\n });\n\n if (os) {\n this.parsedResult.os = os.describe(this.getUA());\n }\n\n return this.parsedResult.os;\n }\n\n /**\n * Get OS name\n * @param {Boolean} [toLowerCase] return lower-cased value\n * @return {String} name of the OS — macOS, Windows, Linux, etc.\n */\n getOSName(toLowerCase) {\n const { name } = this.getOS();\n\n if (toLowerCase) {\n return String(name).toLowerCase() || '';\n }\n\n return name || '';\n }\n\n /**\n * Get OS version\n * @return {String} full version with dots ('10.11.12', '5.6', etc)\n */\n getOSVersion() {\n return this.getOS().version;\n }\n\n /**\n * Get parsed platform\n * @return {{}}\n */\n getPlatform() {\n if (this.parsedResult.platform) {\n return this.parsedResult.platform;\n }\n\n return this.parsePlatform();\n }\n\n /**\n * Get platform name\n * @param {Boolean} [toLowerCase=false]\n * @return {*}\n */\n getPlatformType(toLowerCase = false) {\n const { type } = this.getPlatform();\n\n if (toLowerCase) {\n return String(type).toLowerCase() || '';\n }\n\n return type || '';\n }\n\n /**\n * Get parsed platform\n * @return {{}}\n */\n parsePlatform() {\n this.parsedResult.platform = {};\n\n const platform = Utils.find(platformParsersList, (_platform) => {\n if (typeof _platform.test === 'function') {\n return _platform.test(this);\n }\n\n if (Array.isArray(_platform.test)) {\n return _platform.test.some(condition => this.test(condition));\n }\n\n throw new Error(\"Browser's test function is not valid\");\n });\n\n if (platform) {\n this.parsedResult.platform = platform.describe(this.getUA());\n }\n\n return this.parsedResult.platform;\n }\n\n /**\n * Get parsed engine\n * @return {{}}\n */\n getEngine() {\n if (this.parsedResult.engine) {\n return this.parsedResult.engine;\n }\n\n return this.parseEngine();\n }\n\n /**\n * Get engines's name\n * @return {String} Engines's name or an empty string\n *\n * @public\n */\n getEngineName(toLowerCase) {\n if (toLowerCase) {\n return String(this.getEngine().name).toLowerCase() || '';\n }\n return this.getEngine().name || '';\n }\n\n /**\n * Get parsed platform\n * @return {{}}\n */\n parseEngine() {\n this.parsedResult.engine = {};\n\n const engine = Utils.find(enginesParsersList, (_engine) => {\n if (typeof _engine.test === 'function') {\n return _engine.test(this);\n }\n\n if (Array.isArray(_engine.test)) {\n return _engine.test.some(condition => this.test(condition));\n }\n\n throw new Error(\"Browser's test function is not valid\");\n });\n\n if (engine) {\n this.parsedResult.engine = engine.describe(this.getUA());\n }\n\n return this.parsedResult.engine;\n }\n\n /**\n * Parse full information about the browser\n * @returns {Parser}\n */\n parse() {\n this.parseBrowser();\n this.parseOS();\n this.parsePlatform();\n this.parseEngine();\n\n return this;\n }\n\n /**\n * Get parsed result\n * @return {ParsedResult}\n */\n getResult() {\n return Utils.assign({}, this.parsedResult);\n }\n\n /**\n * Check if parsed browser matches certain conditions\n *\n * @param {Object} checkTree It's one or two layered object,\n * which can include a platform or an OS on the first layer\n * and should have browsers specs on the bottom-laying layer\n *\n * @returns {Boolean|undefined} Whether the browser satisfies the set conditions or not.\n * Returns `undefined` when the browser is no described in the checkTree object.\n *\n * @example\n * const browser = Bowser.getParser(window.navigator.userAgent);\n * if (browser.satisfies({chrome: '>118.01.1322' }))\n * // or with os\n * if (browser.satisfies({windows: { chrome: '>118.01.1322' } }))\n * // or with platforms\n * if (browser.satisfies({desktop: { chrome: '>118.01.1322' } }))\n */\n satisfies(checkTree) {\n const platformsAndOSes = {};\n let platformsAndOSCounter = 0;\n const browsers = {};\n let browsersCounter = 0;\n\n const allDefinitions = Object.keys(checkTree);\n\n allDefinitions.forEach((key) => {\n const currentDefinition = checkTree[key];\n if (typeof currentDefinition === 'string') {\n browsers[key] = currentDefinition;\n browsersCounter += 1;\n } else if (typeof currentDefinition === 'object') {\n platformsAndOSes[key] = currentDefinition;\n platformsAndOSCounter += 1;\n }\n });\n\n if (platformsAndOSCounter > 0) {\n const platformsAndOSNames = Object.keys(platformsAndOSes);\n const OSMatchingDefinition = Utils.find(platformsAndOSNames, name => (this.isOS(name)));\n\n if (OSMatchingDefinition) {\n const osResult = this.satisfies(platformsAndOSes[OSMatchingDefinition]);\n\n if (osResult !== void 0) {\n return osResult;\n }\n }\n\n const platformMatchingDefinition = Utils.find(\n platformsAndOSNames,\n name => (this.isPlatform(name)),\n );\n if (platformMatchingDefinition) {\n const platformResult = this.satisfies(platformsAndOSes[platformMatchingDefinition]);\n\n if (platformResult !== void 0) {\n return platformResult;\n }\n }\n }\n\n if (browsersCounter > 0) {\n const browserNames = Object.keys(browsers);\n const matchingDefinition = Utils.find(browserNames, name => (this.isBrowser(name, true)));\n\n if (matchingDefinition !== void 0) {\n return this.compareVersion(browsers[matchingDefinition]);\n }\n }\n\n return undefined;\n }\n\n /**\n * Check if the browser name equals the passed string\n * @param {string} browserName The string to compare with the browser name\n * @param [includingAlias=false] The flag showing whether alias will be included into comparison\n * @returns {boolean}\n */\n isBrowser(browserName, includingAlias = false) {\n const defaultBrowserName = this.getBrowserName().toLowerCase();\n let browserNameLower = browserName.toLowerCase();\n const alias = Utils.getBrowserTypeByAlias(browserNameLower);\n\n if (includingAlias && alias) {\n browserNameLower = alias.toLowerCase();\n }\n return browserNameLower === defaultBrowserName;\n }\n\n compareVersion(version) {\n let expectedResults = [0];\n let comparableVersion = version;\n let isLoose = false;\n\n const currentBrowserVersion = this.getBrowserVersion();\n\n if (typeof currentBrowserVersion !== 'string') {\n return void 0;\n }\n\n if (version[0] === '>' || version[0] === '<') {\n comparableVersion = version.substr(1);\n if (version[1] === '=') {\n isLoose = true;\n comparableVersion = version.substr(2);\n } else {\n expectedResults = [];\n }\n if (version[0] === '>') {\n expectedResults.push(1);\n } else {\n expectedResults.push(-1);\n }\n } else if (version[0] === '=') {\n comparableVersion = version.substr(1);\n } else if (version[0] === '~') {\n isLoose = true;\n comparableVersion = version.substr(1);\n }\n\n return expectedResults.indexOf(\n Utils.compareVersions(currentBrowserVersion, comparableVersion, isLoose),\n ) > -1;\n }\n\n /**\n * Check if the OS name equals the passed string\n * @param {string} osName The string to compare with the OS name\n * @returns {boolean}\n */\n isOS(osName) {\n return this.getOSName(true) === String(osName).toLowerCase();\n }\n\n /**\n * Check if the platform type equals the passed string\n * @param {string} platformType The string to compare with the platform type\n * @returns {boolean}\n */\n isPlatform(platformType) {\n return this.getPlatformType(true) === String(platformType).toLowerCase();\n }\n\n /**\n * Check if the engine name equals the passed string\n * @param {string} engineName The string to compare with the engine name\n * @returns {boolean}\n */\n isEngine(engineName) {\n return this.getEngineName(true) === String(engineName).toLowerCase();\n }\n\n /**\n * Is anything? Check if the browser is called \"anything\",\n * the OS called \"anything\" or the platform called \"anything\"\n * @param {String} anything\n * @param [includingAlias=false] The flag showing whether alias will be included into comparison\n * @returns {Boolean}\n */\n is(anything, includingAlias = false) {\n return this.isBrowser(anything, includingAlias) || this.isOS(anything)\n || this.isPlatform(anything);\n }\n\n /**\n * Check if any of the given values satisfies this.is(anything)\n * @param {String[]} anythings\n * @returns {Boolean}\n */\n some(anythings = []) {\n return anythings.some(anything => this.is(anything));\n }\n}\n\nexport default Parser;\n","/*!\n * Bowser - a browser detector\n * https://github.com/lancedikson/bowser\n * MIT License | (c) Dustin Diaz 2012-2015\n * MIT License | (c) Denis Demchenko 2015-2019\n */\nimport Parser from './parser.js';\nimport {\n BROWSER_MAP,\n ENGINE_MAP,\n OS_MAP,\n PLATFORMS_MAP,\n} from './constants.js';\n\n/**\n * Bowser class.\n * Keep it simple as much as it can be.\n * It's supposed to work with collections of {@link Parser} instances\n * rather then solve one-instance problems.\n * All the one-instance stuff is located in Parser class.\n *\n * @class\n * @classdesc Bowser is a static object, that provides an API to the Parsers\n * @hideconstructor\n */\nclass Bowser {\n /**\n * Creates a {@link Parser} instance\n *\n * @param {String} UA UserAgent string\n * @param {Boolean} [skipParsing=false] Will make the Parser postpone parsing until you ask it\n * explicitly. Same as `skipParsing` for {@link Parser}.\n * @returns {Parser}\n * @throws {Error} when UA is not a String\n *\n * @example\n * const parser = Bowser.getParser(window.navigator.userAgent);\n * const result = parser.getResult();\n */\n static getParser(UA, skipParsing = false) {\n if (typeof UA !== 'string') {\n throw new Error('UserAgent should be a string');\n }\n return new Parser(UA, skipParsing);\n }\n\n /**\n * Creates a {@link Parser} instance and runs {@link Parser.getResult} immediately\n *\n * @param UA\n * @return {ParsedResult}\n *\n * @example\n * const result = Bowser.parse(window.navigator.userAgent);\n */\n static parse(UA) {\n return (new Parser(UA)).getResult();\n }\n\n static get BROWSER_MAP() {\n return BROWSER_MAP;\n }\n\n static get ENGINE_MAP() {\n return ENGINE_MAP;\n }\n\n static get OS_MAP() {\n return OS_MAP;\n }\n\n static get PLATFORMS_MAP() {\n return PLATFORMS_MAP;\n }\n}\n\nexport default Bowser;\n","import $gH2WJ$events from \"events\";\nimport {v4 as $gH2WJ$v4} from \"uuid\";\nimport $gH2WJ$bowser from \"bowser\";\n\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n }\n });\n });\n\n return dest;\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ var $05fa7b586184a19c$exports = {};\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ var $364c127d152b1085$exports = {};\n\n$parcel$export($364c127d152b1085$exports, \"PipecatClient\", () => $364c127d152b1085$export$8f7f86a77535f7a3);\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ \nvar $e3bad9cc25e327f7$exports = {};\n$e3bad9cc25e327f7$exports = JSON.parse(\"{\\\"name\\\":\\\"@pipecat-ai/client-js\\\",\\\"version\\\":\\\"1.4.0\\\",\\\"license\\\":\\\"BSD-2-Clause\\\",\\\"main\\\":\\\"dist/index.js\\\",\\\"module\\\":\\\"dist/index.module.js\\\",\\\"types\\\":\\\"dist/index.d.ts\\\",\\\"source\\\":\\\"index.ts\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/pipecat-ai/pipecat-client-web.git\\\"},\\\"files\\\":[\\\"dist\\\",\\\"package.json\\\",\\\"README.md\\\"],\\\"scripts\\\":{\\\"build\\\":\\\"jest --silent --passWithNoTests && parcel build --no-cache\\\",\\\"dev\\\":\\\"parcel watch\\\",\\\"lint\\\":\\\"eslint . --report-unused-disable-directives --max-warnings 0\\\",\\\"test\\\":\\\"jest\\\"},\\\"jest\\\":{\\\"preset\\\":\\\"ts-jest\\\",\\\"testEnvironment\\\":\\\"jsdom\\\"},\\\"devDependencies\\\":{\\\"@jest/globals\\\":\\\"^29.7.0\\\",\\\"@types/clone-deep\\\":\\\"^4.0.4\\\",\\\"@types/jest\\\":\\\"^29.5.12\\\",\\\"@types/uuid\\\":\\\"^10.0.0\\\",\\\"eslint\\\":\\\"^9.11.1\\\",\\\"eslint-config-prettier\\\":\\\"^9.1.0\\\",\\\"eslint-plugin-simple-import-sort\\\":\\\"^12.1.1\\\",\\\"jest\\\":\\\"^29.7.0\\\",\\\"jest-environment-jsdom\\\":\\\"^30.0.2\\\",\\\"ts-jest\\\":\\\"^29.2.5\\\"},\\\"dependencies\\\":{\\\"@types/events\\\":\\\"^3.0.3\\\",\\\"bowser\\\":\\\"^2.11.0\\\",\\\"clone-deep\\\":\\\"^4.0.1\\\",\\\"events\\\":\\\"^3.3.0\\\",\\\"typed-emitter\\\":\\\"^2.1.0\\\",\\\"uuid\\\":\\\"^10.0.0\\\"}}\");\n\n\nvar $fc3f408bb0b1f921$exports = {};\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ var $6396333126da0e76$exports = {};\n\n$parcel$export($6396333126da0e76$exports, \"TransportStateEnum\", () => $6396333126da0e76$export$8f2038d3679a1d9b);\nvar $6396333126da0e76$export$8f2038d3679a1d9b;\n(function(TransportStateEnum) {\n TransportStateEnum[\"DISCONNECTED\"] = \"disconnected\";\n TransportStateEnum[\"INITIALIZING\"] = \"initializing\";\n TransportStateEnum[\"INITIALIZED\"] = \"initialized\";\n TransportStateEnum[\"AUTHENTICATING\"] = \"authenticating\";\n TransportStateEnum[\"AUTHENTICATED\"] = \"authenticated\";\n TransportStateEnum[\"CONNECTING\"] = \"connecting\";\n TransportStateEnum[\"CONNECTED\"] = \"connected\";\n TransportStateEnum[\"READY\"] = \"ready\";\n TransportStateEnum[\"DISCONNECTING\"] = \"disconnecting\";\n TransportStateEnum[\"ERROR\"] = \"error\";\n})($6396333126da0e76$export$8f2038d3679a1d9b || ($6396333126da0e76$export$8f2038d3679a1d9b = {}));\n\n\nvar $db6391dc7d757577$exports = {};\n\n$parcel$export($db6391dc7d757577$exports, \"RTVIError\", () => $db6391dc7d757577$export$59b4786f333aac02);\n$parcel$export($db6391dc7d757577$exports, \"ConnectionTimeoutError\", () => $db6391dc7d757577$export$c67992fa684a81a6);\n$parcel$export($db6391dc7d757577$exports, \"StartBotError\", () => $db6391dc7d757577$export$e7544ab812238a61);\n$parcel$export($db6391dc7d757577$exports, \"TransportStartError\", () => $db6391dc7d757577$export$e0624a511a2c4e9);\n$parcel$export($db6391dc7d757577$exports, \"InvalidTransportParamsError\", () => $db6391dc7d757577$export$b6ce555ea7f95fba);\n$parcel$export($db6391dc7d757577$exports, \"BotNotReadyError\", () => $db6391dc7d757577$export$885fb96b850e8fbb);\n$parcel$export($db6391dc7d757577$exports, \"BotAlreadyStartedError\", () => $db6391dc7d757577$export$cc240eab14fa4f50);\n$parcel$export($db6391dc7d757577$exports, \"UnsupportedFeatureError\", () => $db6391dc7d757577$export$bd0820eb8444fcd9);\n$parcel$export($db6391dc7d757577$exports, \"DeviceError\", () => $db6391dc7d757577$export$64c9f614187c1e59);\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ class $db6391dc7d757577$export$59b4786f333aac02 extends Error {\n constructor(message, status){\n super(message);\n this.status = status;\n }\n}\nclass $db6391dc7d757577$export$c67992fa684a81a6 extends $db6391dc7d757577$export$59b4786f333aac02 {\n constructor(message){\n super(message ?? \"Bot did not enter ready state within the specified timeout period.\");\n }\n}\nclass $db6391dc7d757577$export$e7544ab812238a61 extends $db6391dc7d757577$export$59b4786f333aac02 {\n constructor(message, status){\n super(message ?? `Failed to connect / invalid auth bundle from base url`, status ?? 500);\n this.error = \"invalid-request-error\";\n }\n}\nclass $db6391dc7d757577$export$e0624a511a2c4e9 extends $db6391dc7d757577$export$59b4786f333aac02 {\n constructor(message){\n super(message ?? \"Unable to connect to transport\");\n }\n}\nclass $db6391dc7d757577$export$b6ce555ea7f95fba extends $db6391dc7d757577$export$59b4786f333aac02 {\n constructor(message){\n super(message ?? \"Invalid transport connection parameters\");\n }\n}\nclass $db6391dc7d757577$export$885fb96b850e8fbb extends $db6391dc7d757577$export$59b4786f333aac02 {\n constructor(message){\n super(message ?? \"Attempt to call action on transport when not in 'ready' state.\");\n }\n}\nclass $db6391dc7d757577$export$cc240eab14fa4f50 extends $db6391dc7d757577$export$59b4786f333aac02 {\n constructor(message){\n super(message ?? \"Pipecat client has already been started. Please call disconnect() before starting again.\");\n }\n}\nclass $db6391dc7d757577$export$bd0820eb8444fcd9 extends $db6391dc7d757577$export$59b4786f333aac02 {\n constructor(feature, source, message){\n let msg = `${feature} not supported${message ? `: ${message}` : \"\"}`;\n if (source) msg = `${source} does not support ${feature}${message ? `: ${message}` : \"\"}`;\n super(msg);\n this.feature = feature;\n }\n}\nclass $db6391dc7d757577$export$64c9f614187c1e59 extends $db6391dc7d757577$export$59b4786f333aac02 {\n constructor(devices, type, message, details){\n super(message ?? `Device error for ${devices.join(\", \")}: ${type}`);\n this.devices = devices;\n this.type = type;\n this.details = details;\n }\n}\n\n\nvar $c1b4da4af54f4fa1$exports = {};\n\n$parcel$export($c1b4da4af54f4fa1$exports, \"RTVIEvent\", () => $c1b4da4af54f4fa1$export$6b4624d233c61fcb);\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ var $c1b4da4af54f4fa1$export$6b4624d233c61fcb;\n(function(RTVIEvent) {\n /** local connection state events */ RTVIEvent[\"Connected\"] = \"connected\";\n RTVIEvent[\"Disconnected\"] = \"disconnected\";\n RTVIEvent[\"TransportStateChanged\"] = \"transportStateChanged\";\n /** remote connection state events */ RTVIEvent[\"BotStarted\"] = \"botStarted\";\n RTVIEvent[\"BotConnected\"] = \"botConnected\";\n RTVIEvent[\"BotReady\"] = \"botReady\";\n RTVIEvent[\"BotDisconnected\"] = \"botDisconnected\";\n RTVIEvent[\"Error\"] = \"error\";\n /** server messaging */ RTVIEvent[\"ServerMessage\"] = \"serverMessage\";\n RTVIEvent[\"ServerResponse\"] = \"serverResponse\";\n RTVIEvent[\"MessageError\"] = \"messageError\";\n /** service events */ RTVIEvent[\"Metrics\"] = \"metrics\";\n // vad events\n RTVIEvent[\"BotStartedSpeaking\"] = \"botStartedSpeaking\";\n RTVIEvent[\"BotStoppedSpeaking\"] = \"botStoppedSpeaking\";\n RTVIEvent[\"UserStartedSpeaking\"] = \"userStartedSpeaking\";\n RTVIEvent[\"UserStoppedSpeaking\"] = \"userStoppedSpeaking\";\n // stt events\n RTVIEvent[\"UserTranscript\"] = \"userTranscript\";\n RTVIEvent[\"BotTranscript\"] = \"botTranscript\";\n // llm events\n RTVIEvent[\"BotLlmText\"] = \"botLlmText\";\n RTVIEvent[\"BotLlmStarted\"] = \"botLlmStarted\";\n RTVIEvent[\"BotLlmStopped\"] = \"botLlmStopped\";\n RTVIEvent[\"LLMFunctionCall\"] = \"llmFunctionCall\";\n RTVIEvent[\"BotLlmSearchResponse\"] = \"botLlmSearchResponse\";\n // tts events\n RTVIEvent[\"BotTtsText\"] = \"botTtsText\";\n RTVIEvent[\"BotTtsStarted\"] = \"botTtsStarted\";\n RTVIEvent[\"BotTtsStopped\"] = \"botTtsStopped\";\n /** participant events */ RTVIEvent[\"ParticipantConnected\"] = \"participantConnected\";\n RTVIEvent[\"ParticipantLeft\"] = \"participantLeft\";\n /** media events */ RTVIEvent[\"TrackStarted\"] = \"trackStarted\";\n RTVIEvent[\"TrackStopped\"] = \"trackStopped\";\n RTVIEvent[\"ScreenTrackStarted\"] = \"screenTrackStarted\";\n RTVIEvent[\"ScreenTrackStopped\"] = \"screenTrackStopped\";\n RTVIEvent[\"ScreenShareError\"] = \"screenShareError\";\n RTVIEvent[\"LocalAudioLevel\"] = \"localAudioLevel\";\n RTVIEvent[\"RemoteAudioLevel\"] = \"remoteAudioLevel\";\n /** media device events */ RTVIEvent[\"AvailableCamsUpdated\"] = \"availableCamsUpdated\";\n RTVIEvent[\"AvailableMicsUpdated\"] = \"availableMicsUpdated\";\n RTVIEvent[\"AvailableSpeakersUpdated\"] = \"availableSpeakersUpdated\";\n RTVIEvent[\"CamUpdated\"] = \"camUpdated\";\n RTVIEvent[\"MicUpdated\"] = \"micUpdated\";\n RTVIEvent[\"SpeakerUpdated\"] = \"speakerUpdated\";\n RTVIEvent[\"DeviceError\"] = \"deviceError\";\n})($c1b4da4af54f4fa1$export$6b4624d233c61fcb || ($c1b4da4af54f4fa1$export$6b4624d233c61fcb = {}));\n\n\nvar $c0d10c4690969999$exports = {};\n\n$parcel$export($c0d10c4690969999$exports, \"RTVI_PROTOCOL_VERSION\", () => $c0d10c4690969999$export$7bdaf0e0d661a8f5);\n$parcel$export($c0d10c4690969999$exports, \"RTVI_MESSAGE_LABEL\", () => $c0d10c4690969999$export$882b13c7fda338f5);\n$parcel$export($c0d10c4690969999$exports, \"RTVIMessageType\", () => $c0d10c4690969999$export$38b3db05cbf0e240);\n$parcel$export($c0d10c4690969999$exports, \"setAboutClient\", () => $c0d10c4690969999$export$e4036f9b8ddb7379);\n$parcel$export($c0d10c4690969999$exports, \"RTVIMessage\", () => $c0d10c4690969999$export$69aa9ab0334b212);\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ \n\nconst $c0d10c4690969999$export$7bdaf0e0d661a8f5 = \"1.0.0\";\nconst $c0d10c4690969999$export$882b13c7fda338f5 = \"rtvi-ai\";\nvar $c0d10c4690969999$export$38b3db05cbf0e240;\n(function(RTVIMessageType) {\n /** Outbound Messages */ RTVIMessageType[\"CLIENT_READY\"] = \"client-ready\";\n RTVIMessageType[\"DISCONNECT_BOT\"] = \"disconnect-bot\";\n // Client-to-server messages\n RTVIMessageType[\"CLIENT_MESSAGE\"] = \"client-message\";\n RTVIMessageType[\"SEND_TEXT\"] = \"send-text\";\n // DEPRECATED\n RTVIMessageType[\"APPEND_TO_CONTEXT\"] = \"append-to-context\";\n /**\n * Inbound Messages\n * Messages the server-side client sends to our client-side client regarding\n * its state or other non-service-specific messaging.\n */ RTVIMessageType[\"BOT_READY\"] = \"bot-ready\";\n RTVIMessageType[\"ERROR\"] = \"error\";\n RTVIMessageType[\"METRICS\"] = \"metrics\";\n RTVIMessageType[\"SERVER_MESSAGE\"] = \"server-message\";\n RTVIMessageType[\"SERVER_RESPONSE\"] = \"server-response\";\n RTVIMessageType[\"ERROR_RESPONSE\"] = \"error-response\";\n RTVIMessageType[\"APPEND_TO_CONTEXT_RESULT\"] = \"append-to-context-result\";\n /** Transcription Messages */ RTVIMessageType[\"USER_TRANSCRIPTION\"] = \"user-transcription\";\n RTVIMessageType[\"BOT_TRANSCRIPTION\"] = \"bot-transcription\";\n RTVIMessageType[\"USER_STARTED_SPEAKING\"] = \"user-started-speaking\";\n RTVIMessageType[\"USER_STOPPED_SPEAKING\"] = \"user-stopped-speaking\";\n RTVIMessageType[\"BOT_STARTED_SPEAKING\"] = \"bot-started-speaking\";\n RTVIMessageType[\"BOT_STOPPED_SPEAKING\"] = \"bot-stopped-speaking\";\n /** LLM Messages */ RTVIMessageType[\"USER_LLM_TEXT\"] = \"user-llm-text\";\n RTVIMessageType[\"BOT_LLM_TEXT\"] = \"bot-llm-text\";\n RTVIMessageType[\"BOT_LLM_STARTED\"] = \"bot-llm-started\";\n RTVIMessageType[\"BOT_LLM_STOPPED\"] = \"bot-llm-stopped\";\n // Function calling\n RTVIMessageType[\"LLM_FUNCTION_CALL\"] = \"llm-function-call\";\n RTVIMessageType[\"LLM_FUNCTION_CALL_RESULT\"] = \"llm-function-call-result\";\n RTVIMessageType[\"BOT_LLM_SEARCH_RESPONSE\"] = \"bot-llm-search-response\";\n /** TTS Messages */ RTVIMessageType[\"BOT_TTS_TEXT\"] = \"bot-tts-text\";\n RTVIMessageType[\"BOT_TTS_STARTED\"] = \"bot-tts-started\";\n RTVIMessageType[\"BOT_TTS_STOPPED\"] = \"bot-tts-stopped\";\n})($c0d10c4690969999$export$38b3db05cbf0e240 || ($c0d10c4690969999$export$38b3db05cbf0e240 = {}));\n// ----- Message Classes\nlet $c0d10c4690969999$var$_aboutClient;\nfunction $c0d10c4690969999$export$e4036f9b8ddb7379(about) {\n // allow for partial updates to the about data\n // this allows the client to set the about data at any time\n // before sending the `client-ready` message and not worry about\n // overwriting existing data\n if ($c0d10c4690969999$var$_aboutClient) $c0d10c4690969999$var$_aboutClient = {\n ...$c0d10c4690969999$var$_aboutClient,\n ...about\n };\n else // if no about data is set, set it to the provided value\n $c0d10c4690969999$var$_aboutClient = about;\n}\nclass $c0d10c4690969999$export$69aa9ab0334b212 {\n constructor(type, data, id){\n this.label = $c0d10c4690969999$export$882b13c7fda338f5;\n this.type = type;\n this.data = data;\n this.id = id || (0, $gH2WJ$v4)().slice(0, 8);\n }\n // Outbound message types\n static clientReady() {\n return new $c0d10c4690969999$export$69aa9ab0334b212($c0d10c4690969999$export$38b3db05cbf0e240.CLIENT_READY, {\n version: $c0d10c4690969999$export$7bdaf0e0d661a8f5,\n about: $c0d10c4690969999$var$_aboutClient || {\n library: (0, $e3bad9cc25e327f7$exports.name),\n library_version: (0, $e3bad9cc25e327f7$exports.version)\n }\n });\n }\n static disconnectBot() {\n return new $c0d10c4690969999$export$69aa9ab0334b212($c0d10c4690969999$export$38b3db05cbf0e240.DISCONNECT_BOT, {});\n }\n static error(message, fatal = false) {\n return new $c0d10c4690969999$export$69aa9ab0334b212($c0d10c4690969999$export$38b3db05cbf0e240.ERROR, {\n message: message,\n fatal: fatal\n });\n }\n}\n\n\n$parcel$exportWildcard($fc3f408bb0b1f921$exports, $6396333126da0e76$exports);\n$parcel$exportWildcard($fc3f408bb0b1f921$exports, $db6391dc7d757577$exports);\n$parcel$exportWildcard($fc3f408bb0b1f921$exports, $c1b4da4af54f4fa1$exports);\n$parcel$exportWildcard($fc3f408bb0b1f921$exports, $c0d10c4690969999$exports);\n\n\n\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ \nfunction $c68ef2498d1a7177$export$f1586721024c4dab(_target, propertyKey, descriptor) {\n const originalMethod = descriptor.value;\n descriptor.value = function(...args) {\n if (this.state === \"ready\") return originalMethod.apply(this, args);\n else throw new (0, $db6391dc7d757577$export$885fb96b850e8fbb)(`Attempt to call ${propertyKey.toString()} when transport not in ready state. Await connect() first.`);\n };\n return descriptor;\n}\nfunction $c68ef2498d1a7177$export$ebc0d747cf8770bc(_target, propertyKey, descriptor) {\n const originalMethod = descriptor.value;\n const states = [\n \"authenticating\",\n \"connecting\",\n \"connected\",\n \"ready\"\n ];\n descriptor.value = function(...args) {\n if (states.includes(this.state)) throw new (0, $db6391dc7d757577$export$cc240eab14fa4f50)(`Attempt to call ${propertyKey.toString()} when client already started. Please call disconnect() before starting again.`);\n else return originalMethod.apply(this, args);\n };\n return descriptor;\n}\nfunction $c68ef2498d1a7177$export$808994d0d8c9acb3(states) {\n return function(_target, propertyKey, descriptor) {\n const originalMethod = descriptor.value;\n descriptor.get = function(...args) {\n if (states.includes(this.state)) return originalMethod.apply(this, args);\n else throw new (0, $db6391dc7d757577$export$885fb96b850e8fbb)(`Attempt to call ${propertyKey.toString()} when transport not in ${states}.`);\n };\n return descriptor;\n };\n}\nfunction $c68ef2498d1a7177$export$5c35b4fe6fa8c9a6(...states) {\n states = [\n \"ready\",\n ...states\n ];\n return function(_target, propertyKey, descriptor) {\n const originalGetter = descriptor.get;\n descriptor.get = function() {\n if (states.includes(this.state)) return originalGetter?.apply(this);\n else throw new (0, $db6391dc7d757577$export$885fb96b850e8fbb)(`Attempt to call ${propertyKey.toString()} when transport not in ${states}. Await connect() first.`);\n };\n return descriptor;\n };\n}\n\n\nvar $769bb602511974a1$exports = {};\n\n$parcel$export($769bb602511974a1$exports, \"MessageDispatcher\", () => $769bb602511974a1$export$e9a960646cc432aa);\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ \nvar $e0900798b6cc045b$exports = {};\n\n$parcel$export($e0900798b6cc045b$exports, \"LogLevel\", () => $e0900798b6cc045b$export$243e62d78d3b544d);\n$parcel$export($e0900798b6cc045b$exports, \"logger\", () => $e0900798b6cc045b$export$af88d00dbe7f521);\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ var $e0900798b6cc045b$export$243e62d78d3b544d;\n(function(LogLevel) {\n LogLevel[LogLevel[\"NONE\"] = 0] = \"NONE\";\n LogLevel[LogLevel[\"ERROR\"] = 1] = \"ERROR\";\n LogLevel[LogLevel[\"WARN\"] = 2] = \"WARN\";\n LogLevel[LogLevel[\"INFO\"] = 3] = \"INFO\";\n LogLevel[LogLevel[\"DEBUG\"] = 4] = \"DEBUG\";\n})($e0900798b6cc045b$export$243e62d78d3b544d || ($e0900798b6cc045b$export$243e62d78d3b544d = {}));\nclass $e0900798b6cc045b$var$Logger {\n constructor(){\n this.level = $e0900798b6cc045b$export$243e62d78d3b544d.DEBUG;\n }\n static getInstance() {\n if (!$e0900798b6cc045b$var$Logger.instance) $e0900798b6cc045b$var$Logger.instance = new $e0900798b6cc045b$var$Logger();\n return $e0900798b6cc045b$var$Logger.instance;\n }\n setLevel(level) {\n this.level = level;\n }\n debug(...args) {\n if (this.level >= $e0900798b6cc045b$export$243e62d78d3b544d.DEBUG) console.debug(...args);\n }\n info(...args) {\n if (this.level >= $e0900798b6cc045b$export$243e62d78d3b544d.INFO) console.info(...args);\n }\n warn(...args) {\n if (this.level >= $e0900798b6cc045b$export$243e62d78d3b544d.WARN) console.warn(...args);\n }\n error(...args) {\n if (this.level >= $e0900798b6cc045b$export$243e62d78d3b544d.ERROR) console.error(...args);\n }\n}\nconst $e0900798b6cc045b$export$af88d00dbe7f521 = $e0900798b6cc045b$var$Logger.getInstance();\n\n\nclass $769bb602511974a1$export$e9a960646cc432aa {\n constructor(sendMethod){\n this._queue = new Array();\n this._gcInterval = undefined;\n this._queue = [];\n this._sendMethod = sendMethod;\n }\n disconnect() {\n this.clearQueue();\n clearInterval(this._gcInterval);\n this._gcInterval = undefined;\n }\n dispatch(message_data, type = (0, $c0d10c4690969999$export$38b3db05cbf0e240).CLIENT_MESSAGE, timeout = 10000) {\n if (!this._gcInterval) // start garbage collection if not already running\n this._gcInterval = setInterval(()=>{\n this._gc();\n }, 2000); // Run garbage collection every 2 seconds\n const message = new (0, $c0d10c4690969999$export$69aa9ab0334b212)(type, message_data);\n const promise = new Promise((resolve, reject)=>{\n this._queue.push({\n message: message,\n timestamp: Date.now(),\n timeout: timeout,\n resolve: resolve,\n reject: reject\n });\n });\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[MessageDispatcher] dispatch\", message);\n try {\n this._sendMethod(message);\n } catch (e) {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).error(\"[MessageDispatcher] Error sending message\", e);\n return Promise.reject(e);\n }\n this._gc();\n return promise;\n }\n clearQueue() {\n this._queue = [];\n }\n _resolveReject(message, resolve = true) {\n const queuedMessage = this._queue.find((msg)=>msg.message.id === message.id);\n if (queuedMessage) {\n if (resolve) {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[MessageDispatcher] Resolve\", message);\n queuedMessage.resolve(message);\n } else {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[MessageDispatcher] Reject\", message);\n queuedMessage.reject(message);\n }\n // Remove message from queue\n this._queue = this._queue.filter((msg)=>msg.message.id !== message.id);\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[MessageDispatcher] Queue\", this._queue);\n }\n return message;\n }\n resolve(message) {\n return this._resolveReject(message, true);\n }\n reject(message) {\n return this._resolveReject(message, false);\n }\n _gc() {\n const expired = [];\n this._queue = this._queue.filter((msg)=>{\n const isValid = Date.now() - msg.timestamp < msg.timeout;\n if (!isValid) expired.push(msg);\n return isValid;\n });\n expired.forEach((msg)=>{\n if (msg.message.type === (0, $c0d10c4690969999$export$38b3db05cbf0e240).CLIENT_MESSAGE) msg.reject(new (0, $c0d10c4690969999$export$69aa9ab0334b212)((0, $c0d10c4690969999$export$38b3db05cbf0e240).ERROR_RESPONSE, {\n error: \"Timed out waiting for response\",\n msgType: msg.message.data.t,\n data: msg.message.data.d,\n fatal: false\n }));\n });\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[MessageDispatcher] GC\", this._queue);\n }\n}\n\n\n\nvar $d0e914667cc5346b$exports = {};\n\n$parcel$export($d0e914667cc5346b$exports, \"isAPIRequest\", () => $d0e914667cc5346b$export$2dd7ca293b2783);\n$parcel$export($d0e914667cc5346b$exports, \"makeRequest\", () => $d0e914667cc5346b$export$699251e5611cc6db);\n\nfunction $d0e914667cc5346b$export$2dd7ca293b2783(value) {\n if (typeof value === \"object\" && value !== null && Object.keys(value).includes(\"endpoint\")) {\n const endpoint = value[\"endpoint\"];\n return typeof endpoint === \"string\" || endpoint instanceof URL || typeof Request !== \"undefined\" && endpoint instanceof Request;\n }\n return false;\n}\nasync function $d0e914667cc5346b$export$699251e5611cc6db(cxnOpts, abortController) {\n if (!abortController) abortController = new AbortController();\n let handshakeTimeout;\n return new Promise((resolve, reject)=>{\n (async ()=>{\n if (cxnOpts.timeout) handshakeTimeout = setTimeout(async ()=>{\n abortController.abort();\n reject(new Error(\"Timed out\"));\n }, cxnOpts.timeout);\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(`[Pipecat Client] Fetching from ${cxnOpts.endpoint}`);\n fetch(cxnOpts.endpoint, {\n method: \"POST\",\n mode: \"cors\",\n headers: new Headers({\n \"Content-Type\": \"application/json\",\n ...Object.fromEntries((cxnOpts.headers ?? new Headers()).entries())\n }),\n body: JSON.stringify(cxnOpts.requestData),\n signal: abortController?.signal\n }).then((res)=>{\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(`[Pipecat Client] Received response from ${cxnOpts.endpoint}`, res);\n if (!res.ok) reject(res);\n res.json().then((data)=>resolve(data));\n }).catch((err)=>{\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).error(`[Pipecat Client] Error fetching: ${err}`);\n reject(err);\n }).finally(()=>{\n if (handshakeTimeout) clearTimeout(handshakeTimeout);\n });\n })();\n });\n}\n\n\nvar $7ef5cee66c377f4d$exports = {};\n\n$parcel$export($7ef5cee66c377f4d$exports, \"Transport\", () => $7ef5cee66c377f4d$export$86495b081fef8e52);\n$parcel$export($7ef5cee66c377f4d$exports, \"TransportWrapper\", () => $7ef5cee66c377f4d$export$82b6ede160a64a3c);\n/**\n * Copyright (c) 2024, Daily.\n *\n * SPDX-License-Identifier: BSD-2-Clause\n */ \nclass $7ef5cee66c377f4d$export$86495b081fef8e52 {\n constructor(){\n this._state = \"disconnected\";\n }\n /**\n * Establishes a connection with the remote server. This is the main entry\n * point for the transport to start sending and receiving media and messages.\n * This is called from PipecatClient.connect() and should not be called directly.\n * @param connectParams - This type will ultimately be defned by the transport\n * implementation. It is used to pass connection parameters to the transport.\n */ connect(connectParams) {\n this._abortController = new AbortController();\n let validatedParams = connectParams;\n try {\n validatedParams = this._validateConnectionParams(connectParams);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (e) {\n throw new (0, $db6391dc7d757577$export$59b4786f333aac02)(`Invalid connection params: ${e.message}. Please check your connection params and try again.`);\n }\n return this._connect(validatedParams);\n }\n /**\n * Allow the transports to determine how the bot was started.\n */ get startBotParams() {\n return this._startBotParams;\n }\n /**\n * Set the parameters used to start the bot.\n * @param startBotParams\n */ set startBotParams(startBotParams) {\n this._startBotParams = startBotParams;\n }\n /**\n * Disconnects the transport from the remote server. This is called from\n * PipecatClient.disconnect() and should not be called directly.\n */ disconnect() {\n if (this._abortController) this._abortController.abort();\n return this._disconnect();\n }\n}\nclass $7ef5cee66c377f4d$export$82b6ede160a64a3c {\n constructor(transport){\n this._transport = transport;\n this._proxy = new Proxy(this._transport, {\n get: (target, prop, receiver)=>{\n if (typeof target[prop] === \"function\") {\n let errMsg;\n switch(String(prop)){\n // Disable methods that modify the lifecycle of the call. These operations\n // should be performed via the Pipecat client in order to keep state in sync.\n case \"initialize\":\n errMsg = `Direct calls to initialize() are disabled and used internally by the PipecatClient.`;\n break;\n case \"initDevices\":\n errMsg = `Direct calls to initDevices() are disabled. Please use the PipecatClient.initDevices() wrapper or let PipecatClient.connect() call it for you.`;\n break;\n case \"sendReadyMessage\":\n errMsg = `Direct calls to sendReadyMessage() are disabled and used internally by the PipecatClient.`;\n break;\n case \"connect\":\n errMsg = `Direct calls to connect() are disabled. Please use the PipecatClient.connect() wrapper.`;\n break;\n case \"disconnect\":\n errMsg = `Direct calls to disconnect() are disabled. Please use the PipecatClient.disconnect() wrapper.`;\n break;\n }\n if (errMsg) return ()=>{\n throw new Error(errMsg);\n };\n // Forward other method calls\n return (...args)=>{\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n return target[prop](...args);\n };\n }\n // Forward property access\n return Reflect.get(target, prop, receiver);\n }\n });\n }\n get proxy() {\n return this._proxy;\n }\n}\n\n\nvar $dfd757760e36925b$exports = {};\n\n$parcel$export($dfd757760e36925b$exports, \"learnAboutClient\", () => $dfd757760e36925b$export$7eb7b0a641098f31);\n\n\nfunction $dfd757760e36925b$export$7eb7b0a641098f31() {\n let about = {\n library: (0, $e3bad9cc25e327f7$exports.name),\n library_version: (0, $e3bad9cc25e327f7$exports.version),\n platform_details: {}\n };\n // This uses legacy browser user agent parsing, which we still fall\n // back to if the User Agent Hints API is not available\n let navAgentInfo = null;\n if (window?.navigator?.userAgent) try {\n navAgentInfo = (0, $gH2WJ$bowser).parse(window.navigator.userAgent);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_) {\n // void\n }\n if (navAgentInfo?.browser?.name) about.platform_details.browser = navAgentInfo.browser.name;\n if (navAgentInfo?.browser?.name === \"Safari\" && !navAgentInfo.browser.version) about.platform_details.browser_version = \"Web View\";\n else if (navAgentInfo?.browser?.version) about.platform_details.browser_version = navAgentInfo.browser.version;\n if (navAgentInfo?.platform?.type) about.platform_details.platform_type = navAgentInfo.platform.type;\n if (navAgentInfo?.engine?.name) about.platform_details.engine = navAgentInfo.engine.name;\n if (navAgentInfo?.os) {\n about.platform = navAgentInfo.os.name;\n about.platform_version = navAgentInfo.os.version;\n }\n return about;\n}\n\n\nvar $364c127d152b1085$var$__decorate = undefined && undefined.__decorate || function(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nclass $364c127d152b1085$var$RTVIEventEmitter extends (0, $gH2WJ$events) {\n}\nclass $364c127d152b1085$export$8f7f86a77535f7a3 extends $364c127d152b1085$var$RTVIEventEmitter {\n constructor(options){\n super();\n this._functionCallCallbacks = {};\n (0, $c0d10c4690969999$export$e4036f9b8ddb7379)((0, $dfd757760e36925b$export$7eb7b0a641098f31)());\n this._transport = options.transport;\n this._transportWrapper = new (0, $7ef5cee66c377f4d$export$82b6ede160a64a3c)(this._transport);\n // Wrap transport callbacks with event triggers\n // This allows for either functional callbacks or .on / .off event listeners\n const wrappedCallbacks = {\n ...options.callbacks,\n onMessageError: (message)=>{\n options?.callbacks?.onMessageError?.(message);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).MessageError, message);\n },\n onError: (message)=>{\n options?.callbacks?.onError?.(message);\n try {\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).Error, message);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"Could not emit error\", message);\n }\n const data = message.data;\n if (data?.fatal) {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).error(\"Fatal error reported. Disconnecting...\");\n this.disconnect();\n }\n },\n onConnected: ()=>{\n options?.callbacks?.onConnected?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).Connected);\n },\n onDisconnected: ()=>{\n options?.callbacks?.onDisconnected?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).Disconnected);\n },\n onTransportStateChanged: (state)=>{\n options?.callbacks?.onTransportStateChanged?.(state);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).TransportStateChanged, state);\n },\n onParticipantJoined: (p)=>{\n options?.callbacks?.onParticipantJoined?.(p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).ParticipantConnected, p);\n },\n onParticipantLeft: (p)=>{\n options?.callbacks?.onParticipantLeft?.(p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).ParticipantLeft, p);\n },\n onTrackStarted: (track, p)=>{\n options?.callbacks?.onTrackStarted?.(track, p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).TrackStarted, track, p);\n },\n onTrackStopped: (track, p)=>{\n options?.callbacks?.onTrackStopped?.(track, p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).TrackStopped, track, p);\n },\n onScreenTrackStarted: (track, p)=>{\n options?.callbacks?.onScreenTrackStarted?.(track, p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).ScreenTrackStarted, track, p);\n },\n onScreenTrackStopped: (track, p)=>{\n options?.callbacks?.onScreenTrackStopped?.(track, p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).ScreenTrackStopped, track, p);\n },\n onScreenShareError: (errorMessage)=>{\n options?.callbacks?.onScreenShareError?.(errorMessage);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).ScreenShareError, errorMessage);\n },\n onAvailableCamsUpdated: (cams)=>{\n options?.callbacks?.onAvailableCamsUpdated?.(cams);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).AvailableCamsUpdated, cams);\n },\n onAvailableMicsUpdated: (mics)=>{\n options?.callbacks?.onAvailableMicsUpdated?.(mics);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).AvailableMicsUpdated, mics);\n },\n onAvailableSpeakersUpdated: (speakers)=>{\n options?.callbacks?.onAvailableSpeakersUpdated?.(speakers);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).AvailableSpeakersUpdated, speakers);\n },\n onCamUpdated: (cam)=>{\n options?.callbacks?.onCamUpdated?.(cam);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).CamUpdated, cam);\n },\n onMicUpdated: (mic)=>{\n options?.callbacks?.onMicUpdated?.(mic);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).MicUpdated, mic);\n },\n onSpeakerUpdated: (speaker)=>{\n options?.callbacks?.onSpeakerUpdated?.(speaker);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).SpeakerUpdated, speaker);\n },\n onDeviceError: (error)=>{\n options?.callbacks?.onDeviceError?.(error);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).DeviceError, error);\n },\n onBotStarted: (botResponse)=>{\n options?.callbacks?.onBotStarted?.(botResponse);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotStarted, botResponse);\n },\n onBotConnected: (p)=>{\n options?.callbacks?.onBotConnected?.(p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotConnected, p);\n },\n onBotReady: (botReadyData)=>{\n options?.callbacks?.onBotReady?.(botReadyData);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotReady, botReadyData);\n },\n onBotDisconnected: (p)=>{\n options?.callbacks?.onBotDisconnected?.(p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotDisconnected, p);\n },\n onBotStartedSpeaking: ()=>{\n options?.callbacks?.onBotStartedSpeaking?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotStartedSpeaking);\n },\n onBotStoppedSpeaking: ()=>{\n options?.callbacks?.onBotStoppedSpeaking?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotStoppedSpeaking);\n },\n onRemoteAudioLevel: (level, p)=>{\n options?.callbacks?.onRemoteAudioLevel?.(level, p);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).RemoteAudioLevel, level, p);\n },\n onUserStartedSpeaking: ()=>{\n options?.callbacks?.onUserStartedSpeaking?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).UserStartedSpeaking);\n },\n onUserStoppedSpeaking: ()=>{\n options?.callbacks?.onUserStoppedSpeaking?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).UserStoppedSpeaking);\n },\n onLocalAudioLevel: (level)=>{\n options?.callbacks?.onLocalAudioLevel?.(level);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).LocalAudioLevel, level);\n },\n onUserTranscript: (data)=>{\n options?.callbacks?.onUserTranscript?.(data);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).UserTranscript, data);\n },\n onBotTranscript: (text)=>{\n options?.callbacks?.onBotTranscript?.(text);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotTranscript, text);\n },\n onBotLlmText: (text)=>{\n options?.callbacks?.onBotLlmText?.(text);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotLlmText, text);\n },\n onBotLlmStarted: ()=>{\n options?.callbacks?.onBotLlmStarted?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotLlmStarted);\n },\n onBotLlmStopped: ()=>{\n options?.callbacks?.onBotLlmStopped?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotLlmStopped);\n },\n onBotTtsText: (text)=>{\n options?.callbacks?.onBotTtsText?.(text);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotTtsText, text);\n },\n onBotTtsStarted: ()=>{\n options?.callbacks?.onBotTtsStarted?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotTtsStarted);\n },\n onBotTtsStopped: ()=>{\n options?.callbacks?.onBotTtsStopped?.();\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotTtsStopped);\n }\n };\n // Update options to reference wrapped callbacks and config defaults\n this._options = {\n ...options,\n callbacks: wrappedCallbacks,\n enableMic: options.enableMic ?? true,\n enableCam: options.enableCam ?? false,\n enableScreenShare: options.enableScreenShare ?? false\n };\n // Instantiate the transport class and bind message handler\n this._initialize();\n // Get package version number\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[Pipecat Client] Initialized\", this.version);\n }\n setLogLevel(level) {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).setLevel(level);\n }\n // ------ Transport methods\n /**\n * Initialize local media devices\n */ async initDevices() {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[Pipecat Client] Initializing devices...\");\n await this._transport.initDevices();\n }\n /**\n * startBot() is a method that initiates the bot by posting to a specified endpoint\n * that optionally returns connection parameters for establishing a transport session.\n * @param startBotParams\n * @returns Promise that resolves to TransportConnectionParams or unknown\n */ async startBot(startBotParams) {\n this._transport.state = \"authenticating\";\n this._transport.startBotParams = startBotParams;\n this._abortController = new AbortController();\n let response;\n try {\n response = await (0, $d0e914667cc5346b$export$699251e5611cc6db)(startBotParams, this._abortController);\n } catch (e) {\n let errMsg = \"An unknown error occurred while starting the bot.\";\n let status;\n if (e instanceof Response) {\n const errResp = await e.json();\n errMsg = errResp.info ?? errResp.detail ?? e.statusText;\n status = e.status;\n } else if (e instanceof Error) errMsg = e.message;\n this._options.callbacks?.onError?.(new (0, $c0d10c4690969999$export$69aa9ab0334b212)((0, $c0d10c4690969999$export$38b3db05cbf0e240).ERROR_RESPONSE, {\n message: errMsg,\n fatal: true\n }));\n throw new $db6391dc7d757577$export$e7544ab812238a61(errMsg, status);\n }\n this._transport.state = \"authenticated\";\n this._options.callbacks?.onBotStarted?.(response);\n return response;\n }\n /**\n * The `connect` function establishes a transport session and awaits a\n * bot-ready signal, handling various connection states and errors.\n * @param {TransportConnectionParams} [connectParams] -\n * The `connectParams` parameter in the `connect` method should be of type\n * `TransportConnectionParams`. This parameter is passed to the transport\n * for establishing a transport session.\n * NOTE: `connectParams` as type `ConnectionEndpoint` IS NOW DEPRECATED. If you\n * want to authenticate and connect to a bot in one step, use\n * `startBotAndConnect()` instead.\n * @returns The `connect` method returns a Promise that resolves to an unknown value.\n */ async connect(connectParams) {\n if (connectParams && (0, $d0e914667cc5346b$export$2dd7ca293b2783)(connectParams)) {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).warn(\"Calling connect with an API endpoint is deprecated. Use startBotAndConnect() instead.\");\n return this.startBotAndConnect(connectParams);\n }\n // Establish transport session and await bot ready signal\n return new Promise((resolve, reject)=>{\n (async ()=>{\n this._connectResolve = resolve;\n if (this._transport.state === \"disconnected\") await this._transport.initDevices();\n try {\n await this._transport.connect(connectParams);\n await this._transport.sendReadyMessage();\n } catch (e) {\n this.disconnect();\n reject(e);\n return;\n }\n })();\n });\n }\n async startBotAndConnect(startBotParams) {\n // since startBot() will change the transport state, we need\n // to do device initialization here.\n if (this._transport.state === \"disconnected\") await this._transport.initDevices();\n const connectionParams = await this.startBot(startBotParams);\n return this.connect(connectionParams);\n }\n /**\n * Disconnect the voice client from the transport\n * Reset / reinitialize transport and abort any pending requests\n */ async disconnect() {\n await this._transport.disconnect();\n this._messageDispatcher.disconnect();\n }\n /**\n * The _initialize function performs internal set up of the transport and\n * message dispatcher.\n */ _initialize() {\n this._transport.initialize(this._options, this.handleMessage.bind(this));\n // Create a new message dispatch queue for async message handling\n this._messageDispatcher = new (0, $769bb602511974a1$export$e9a960646cc432aa)(this._transport.sendMessage.bind(this._transport));\n }\n /**\n * Get the current state of the transport\n */ get connected() {\n return [\n \"connected\",\n \"ready\"\n ].includes(this._transport.state);\n }\n get transport() {\n return this._transportWrapper.proxy;\n }\n get state() {\n return this._transport.state;\n }\n get version() {\n return (0, (/*@__PURE__*/$parcel$interopDefault($e3bad9cc25e327f7$exports))).version;\n }\n // ------ Device methods\n async getAllMics() {\n return await this._transport.getAllMics();\n }\n async getAllCams() {\n return await this._transport.getAllCams();\n }\n async getAllSpeakers() {\n return await this._transport.getAllSpeakers();\n }\n get selectedMic() {\n return this._transport.selectedMic;\n }\n get selectedCam() {\n return this._transport.selectedCam;\n }\n get selectedSpeaker() {\n return this._transport.selectedSpeaker;\n }\n updateMic(micId) {\n this._transport.updateMic(micId);\n }\n updateCam(camId) {\n this._transport.updateCam(camId);\n }\n updateSpeaker(speakerId) {\n this._transport.updateSpeaker(speakerId);\n }\n enableMic(enable) {\n this._transport.enableMic(enable);\n }\n get isMicEnabled() {\n return this._transport.isMicEnabled;\n }\n enableCam(enable) {\n this._transport.enableCam(enable);\n }\n get isCamEnabled() {\n return this._transport.isCamEnabled;\n }\n tracks() {\n return this._transport.tracks();\n }\n enableScreenShare(enable) {\n return this._transport.enableScreenShare(enable);\n }\n get isSharingScreen() {\n return this._transport.isSharingScreen;\n }\n // ------ Messages\n /**\n * Directly send a message to the bot via the transport.\n * Do not await a response.\n * @param msgType - a string representing the message type\n * @param data - a dictionary of data to send with the message\n */ sendClientMessage(msgType, data) {\n this._transport.sendMessage(new (0, $c0d10c4690969999$export$69aa9ab0334b212)((0, $c0d10c4690969999$export$38b3db05cbf0e240).CLIENT_MESSAGE, {\n t: msgType,\n d: data\n }));\n }\n /**\n * Directly send a message to the bot via the transport.\n * Wait for and return the response.\n * @param msgType - a string representing the message type\n * @param data - a dictionary of data to send with the message\n * @param timeout - optional timeout in milliseconds for the response\n */ async sendClientRequest(msgType, data, timeout) {\n const msgData = {\n t: msgType,\n d: data\n };\n const response = await this._messageDispatcher.dispatch(msgData, (0, $c0d10c4690969999$export$38b3db05cbf0e240).CLIENT_MESSAGE, timeout);\n const ret_data = response.data;\n return ret_data.d;\n }\n registerFunctionCallHandler(functionName, callback) {\n this._functionCallCallbacks[functionName] = callback;\n }\n unregisterFunctionCallHandler(functionName) {\n delete this._functionCallCallbacks[functionName];\n }\n unregisterAllFunctionCallHandlers() {\n this._functionCallCallbacks = {};\n }\n async appendToContext(context) {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).warn(\"appendToContext() is deprecated. Use sendText() instead.\");\n await this._transport.sendMessage(new (0, $c0d10c4690969999$export$69aa9ab0334b212)((0, $c0d10c4690969999$export$38b3db05cbf0e240).APPEND_TO_CONTEXT, {\n role: context.role,\n content: context.content,\n run_immediately: context.run_immediately\n }));\n return true;\n }\n async sendText(content, options = {}) {\n await this._transport.sendMessage(new (0, $c0d10c4690969999$export$69aa9ab0334b212)((0, $c0d10c4690969999$export$38b3db05cbf0e240).SEND_TEXT, {\n content: content,\n options: options\n }));\n }\n /**\n * Disconnects the bot, but keeps the session alive\n */ disconnectBot() {\n this._transport.sendMessage(new (0, $c0d10c4690969999$export$69aa9ab0334b212)((0, $c0d10c4690969999$export$38b3db05cbf0e240).DISCONNECT_BOT, {}));\n }\n handleMessage(ev) {\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[RTVI Message]\", ev);\n switch(ev.type){\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_READY:\n {\n const data = ev.data;\n const botVersion = data.version ? data.version.split(\".\").map(Number) : [\n 0,\n 0,\n 0\n ];\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(`[Pipecat Client] Bot is ready. Version: ${data.version}`);\n if (botVersion[0] < 1) (0, $e0900798b6cc045b$export$af88d00dbe7f521).warn(\"[Pipecat Client] Bot version is less than 1.0.0, which may not be compatible with this client.\");\n this._connectResolve?.(ev.data);\n this._options.callbacks?.onBotReady?.(ev.data);\n break;\n }\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).ERROR:\n this._options.callbacks?.onError?.(ev);\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).SERVER_RESPONSE:\n this._messageDispatcher.resolve(ev);\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).ERROR_RESPONSE:\n {\n const resp = this._messageDispatcher.reject(ev);\n this._options.callbacks?.onMessageError?.(resp);\n break;\n }\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).USER_STARTED_SPEAKING:\n this._options.callbacks?.onUserStartedSpeaking?.();\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).USER_STOPPED_SPEAKING:\n this._options.callbacks?.onUserStoppedSpeaking?.();\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_STARTED_SPEAKING:\n this._options.callbacks?.onBotStartedSpeaking?.();\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_STOPPED_SPEAKING:\n this._options.callbacks?.onBotStoppedSpeaking?.();\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).USER_TRANSCRIPTION:\n {\n const TranscriptData = ev.data;\n this._options.callbacks?.onUserTranscript?.(TranscriptData);\n break;\n }\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_TRANSCRIPTION:\n this._options.callbacks?.onBotTranscript?.(ev.data);\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_LLM_TEXT:\n this._options.callbacks?.onBotLlmText?.(ev.data);\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_LLM_STARTED:\n this._options.callbacks?.onBotLlmStarted?.();\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_LLM_STOPPED:\n this._options.callbacks?.onBotLlmStopped?.();\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_TTS_TEXT:\n this._options.callbacks?.onBotTtsText?.(ev.data);\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_TTS_STARTED:\n this._options.callbacks?.onBotTtsStarted?.();\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_TTS_STOPPED:\n this._options.callbacks?.onBotTtsStopped?.();\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).METRICS:\n this._options.callbacks?.onMetrics?.(ev.data);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).Metrics, ev.data);\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).SERVER_MESSAGE:\n this._options.callbacks?.onServerMessage?.(ev.data);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).ServerMessage, ev.data);\n break;\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).LLM_FUNCTION_CALL:\n {\n const data = ev.data;\n // First check if there's a registered function call handler\n // and trigger it if so.\n const fc = this._functionCallCallbacks[data.function_name];\n if (fc) {\n const params = {\n functionName: data.function_name,\n arguments: data.args\n };\n /*\n * registered function call handlers have the ability to\n * asynchronously return a result that is sent back to the server\n * as an automatically crafted LLM_FUNCTION_CALL_RESULT message.\n * Note: If the callback returns null or undefined, no result message\n * is sent.\n */ fc(params).then((result)=>{\n // == intentional to check for null or undefined\n if (result == undefined) return;\n this._transport.sendMessage(new (0, $c0d10c4690969999$export$69aa9ab0334b212)((0, $c0d10c4690969999$export$38b3db05cbf0e240).LLM_FUNCTION_CALL_RESULT, {\n function_name: data.function_name,\n tool_call_id: data.tool_call_id,\n arguments: data.args,\n result: result\n }));\n });\n }\n /*\n * Now emit the event for any generic LLMFunctionCall listeners/callbacks\n * Note: When using these, the onus is on the client to generate and\n * send the LLM_FUNCTION_CALL_RESULT message if needed.\n */ this._options.callbacks?.onLLMFunctionCall?.(data);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).LLMFunctionCall, data);\n break;\n }\n case (0, $c0d10c4690969999$export$38b3db05cbf0e240).BOT_LLM_SEARCH_RESPONSE:\n {\n const data = ev.data;\n this._options.callbacks?.onBotLlmSearchResponse?.(data);\n this.emit((0, $c1b4da4af54f4fa1$export$6b4624d233c61fcb).BotLlmSearchResponse, data);\n break;\n }\n default:\n (0, $e0900798b6cc045b$export$af88d00dbe7f521).debug(\"[Pipecat Client] Unrecognized message type\", ev.type);\n break;\n }\n }\n}\n$364c127d152b1085$var$__decorate([\n (0, $c68ef2498d1a7177$export$ebc0d747cf8770bc)\n], $364c127d152b1085$export$8f7f86a77535f7a3.prototype, \"startBot\", null);\n$364c127d152b1085$var$__decorate([\n (0, $c68ef2498d1a7177$export$ebc0d747cf8770bc)\n], $364c127d152b1085$export$8f7f86a77535f7a3.prototype, \"connect\", null);\n$364c127d152b1085$var$__decorate([\n (0, $c68ef2498d1a7177$export$ebc0d747cf8770bc)\n], $364c127d152b1085$export$8f7f86a77535f7a3.prototype, \"startBotAndConnect\", null);\n$364c127d152b1085$var$__decorate([\n (0, $c68ef2498d1a7177$export$f1586721024c4dab)\n], $364c127d152b1085$export$8f7f86a77535f7a3.prototype, \"sendClientMessage\", null);\n$364c127d152b1085$var$__decorate([\n (0, $c68ef2498d1a7177$export$f1586721024c4dab)\n], $364c127d152b1085$export$8f7f86a77535f7a3.prototype, \"sendClientRequest\", null);\n$364c127d152b1085$var$__decorate([\n (0, $c68ef2498d1a7177$export$f1586721024c4dab)\n], $364c127d152b1085$export$8f7f86a77535f7a3.prototype, \"appendToContext\", null);\n$364c127d152b1085$var$__decorate([\n (0, $c68ef2498d1a7177$export$f1586721024c4dab)\n], $364c127d152b1085$export$8f7f86a77535f7a3.prototype, \"sendText\", null);\n$364c127d152b1085$var$__decorate([\n (0, $c68ef2498d1a7177$export$f1586721024c4dab)\n], $364c127d152b1085$export$8f7f86a77535f7a3.prototype, \"disconnectBot\", null);\n\n\n\n\n\n\n\n$parcel$exportWildcard($05fa7b586184a19c$exports, $364c127d152b1085$exports);\n$parcel$exportWildcard($05fa7b586184a19c$exports, $769bb602511974a1$exports);\n$parcel$exportWildcard($05fa7b586184a19c$exports, $e0900798b6cc045b$exports);\n$parcel$exportWildcard($05fa7b586184a19c$exports, $d0e914667cc5346b$exports);\n$parcel$exportWildcard($05fa7b586184a19c$exports, $7ef5cee66c377f4d$exports);\n$parcel$exportWildcard($05fa7b586184a19c$exports, $dfd757760e36925b$exports);\n\n\n\n\n\nexport {$364c127d152b1085$export$8f7f86a77535f7a3 as PipecatClient, $769bb602511974a1$export$e9a960646cc432aa as MessageDispatcher, $e0900798b6cc045b$export$243e62d78d3b544d as LogLevel, $e0900798b6cc045b$export$af88d00dbe7f521 as logger, $d0e914667cc5346b$export$2dd7ca293b2783 as isAPIRequest, $d0e914667cc5346b$export$699251e5611cc6db as makeRequest, $7ef5cee66c377f4d$export$86495b081fef8e52 as Transport, $7ef5cee66c377f4d$export$82b6ede160a64a3c as TransportWrapper, $dfd757760e36925b$export$7eb7b0a641098f31 as learnAboutClient, $6396333126da0e76$export$8f2038d3679a1d9b as TransportStateEnum, $db6391dc7d757577$export$59b4786f333aac02 as RTVIError, $db6391dc7d757577$export$c67992fa684a81a6 as ConnectionTimeoutError, $db6391dc7d757577$export$e7544ab812238a61 as StartBotError, $db6391dc7d757577$export$e0624a511a2c4e9 as TransportStartError, $db6391dc7d757577$export$b6ce555ea7f95fba as InvalidTransportParamsError, $db6391dc7d757577$export$885fb96b850e8fbb as BotNotReadyError, $db6391dc7d757577$export$cc240eab14fa4f50 as BotAlreadyStartedError, $db6391dc7d757577$export$bd0820eb8444fcd9 as UnsupportedFeatureError, $db6391dc7d757577$export$64c9f614187c1e59 as DeviceError, $c1b4da4af54f4fa1$export$6b4624d233c61fcb as RTVIEvent, $c0d10c4690969999$export$7bdaf0e0d661a8f5 as RTVI_PROTOCOL_VERSION, $c0d10c4690969999$export$882b13c7fda338f5 as RTVI_MESSAGE_LABEL, $c0d10c4690969999$export$38b3db05cbf0e240 as RTVIMessageType, $c0d10c4690969999$export$e4036f9b8ddb7379 as setAboutClient, $c0d10c4690969999$export$69aa9ab0334b212 as RTVIMessage};\n//# sourceMappingURL=index.module.js.map\n","function e(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],-1===t.indexOf(n)&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function t(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(e){return n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},n(e)}function r(e){var t=function(e,t){if(\"object\"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var i=r.call(e,t||\"default\");if(\"object\"!=n(i))return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==n(t)?t:t+\"\"}function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(e,r(i.key),i)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function s(e,t){if(t&&(\"object\"==n(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(e)}function a(e){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},a(e)}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function l(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&c(e,t)}function u(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t,n,r,i,o,s){try{var a=e[o](s),c=a.value}catch(e){return void n(e)}a.done?t(c):Promise.resolve(c).then(r,i)}function p(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function s(e){d(o,r,i,s,a,\"next\",e)}function a(e){d(o,r,i,s,a,\"throw\",e)}s(void 0)}))}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,i,o,s,a=[],c=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw i}}return a}}(e,t)||function(e,t){if(e){if(\"string\"==typeof e)return h(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function v(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var g,m={exports:{}};var y=function(){if(g)return m.exports;g=1;var e,t=\"object\"==typeof Reflect?Reflect:null,n=t&&\"function\"==typeof t.apply?t.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};e=t&&\"function\"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}m.exports=i,m.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){\"function\"==typeof e.removeListener&&e.removeListener(\"error\",i),n([].slice.call(arguments))}f(e,t,o,{once:!0}),\"error\"!==t&&function(e,t,n){\"function\"==typeof e.on&&f(e,\"error\",t,n)}(e,i,{once:!0})}))},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var o=10;function s(e){if(\"function\"!=typeof e)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof e)}function a(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var i,o,c,l;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit(\"newListener\",t,n.listener?n.listener:n),o=e._events),c=o[t]),void 0===c)c=o[t]=n,++e._eventsCount;else if(\"function\"==typeof c?c=o[t]=r?[n,c]:[c,n]:r?c.unshift(n):c.push(n),(i=a(e))>0&&c.length>i&&!c.warned){c.warned=!0;var u=new Error(\"Possible EventEmitter memory leak detected. \"+c.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");u.name=\"MaxListenersExceededWarning\",u.emitter=e,u.type=t,u.count=c.length,l=u,console&&console.warn&&console.warn(l)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=l.bind(r);return i.listener=n,r.wrapFn=i,i}function d(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:\"function\"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):h(i,i.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if(\"function\"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function f(e,t,n,r){if(\"function\"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if(\"function\"!=typeof e.addEventListener)throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(o){r.once&&e.removeEventListener(t,i),n(o)}))}}return Object.defineProperty(i,\"defaultMaxListeners\",{enumerable:!0,get:function(){return o},set:function(e){if(\"number\"!=typeof e||e<0||r(e))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+e+\".\");o=e}}),i.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},i.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||r(e))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+e+\".\");return this._maxListeners=e,this},i.prototype.getMaxListeners=function(){return a(this)},i.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var i=\"error\"===e,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var a=new Error(\"Unhandled error.\"+(s?\" (\"+s.message+\")\":\"\"));throw a.context=s,a}var c=o[e];if(void 0===c)return!1;if(\"function\"==typeof c)n(c,this,t);else{var l=c.length,u=h(c,l);for(r=0;r<l;++r)n(u[r],this,t)}return!0},i.prototype.addListener=function(e,t){return c(this,e,t,!1)},i.prototype.on=i.prototype.addListener,i.prototype.prependListener=function(e,t){return c(this,e,t,!0)},i.prototype.once=function(e,t){return s(t),this.on(e,u(this,e,t)),this},i.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,u(this,e,t)),this},i.prototype.removeListener=function(e,t){var n,r,i,o,a;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(\"removeListener\",e,n.listener||t));else if(\"function\"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit(\"removeListener\",e,a||t)}return this},i.prototype.off=i.prototype.removeListener,i.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)\"removeListener\"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=0,this}if(\"function\"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},i.prototype.listeners=function(e){return d(this,e,!0)},i.prototype.rawListeners=function(e){return d(this,e,!1)},i.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},i.prototype.listenerCount=p,i.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]},m.exports}(),b=v(y),_=Object.prototype.hasOwnProperty;function w(e,t,n){for(n of e.keys())if(S(n,t))return n}function S(e,t){var n,r,i;if(e===t)return!0;if(e&&t&&(n=e.constructor)===t.constructor){if(n===Date)return e.getTime()===t.getTime();if(n===RegExp)return e.toString()===t.toString();if(n===Array){if((r=e.length)===t.length)for(;r--&&S(e[r],t[r]););return-1===r}if(n===Set){if(e.size!==t.size)return!1;for(r of e){if((i=r)&&\"object\"==typeof i&&!(i=w(t,i)))return!1;if(!t.has(i))return!1}return!0}if(n===Map){if(e.size!==t.size)return!1;for(r of e){if((i=r[0])&&\"object\"==typeof i&&!(i=w(t,i)))return!1;if(!S(r[1],t.get(i)))return!1}return!0}if(n===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(n===DataView){if((r=e.byteLength)===t.byteLength)for(;r--&&e.getInt8(r)===t.getInt8(r););return-1===r}if(ArrayBuffer.isView(e)){if((r=e.byteLength)===t.byteLength)for(;r--&&e[r]===t[r];);return-1===r}if(!n||\"object\"==typeof e){for(n in r=0,e){if(_.call(e,n)&&++r&&!_.call(t,n))return!1;if(!(n in t)||!S(e[n],t[n]))return!1}return Object.keys(t).length===r}}return e!=e&&t!=t}const k={\"Amazon Silk\":\"amazon_silk\",\"Android Browser\":\"android\",Bada:\"bada\",BlackBerry:\"blackberry\",Chrome:\"chrome\",Chromium:\"chromium\",Electron:\"electron\",Epiphany:\"epiphany\",Firefox:\"firefox\",Focus:\"focus\",Generic:\"generic\",\"Google Search\":\"google_search\",Googlebot:\"googlebot\",\"Internet Explorer\":\"ie\",\"K-Meleon\":\"k_meleon\",Maxthon:\"maxthon\",\"Microsoft Edge\":\"edge\",\"MZ Browser\":\"mz\",\"NAVER Whale Browser\":\"naver\",Opera:\"opera\",\"Opera Coast\":\"opera_coast\",PhantomJS:\"phantomjs\",Puffin:\"puffin\",QupZilla:\"qupzilla\",QQ:\"qq\",QQLite:\"qqlite\",Safari:\"safari\",Sailfish:\"sailfish\",\"Samsung Internet for Android\":\"samsung_internet\",SeaMonkey:\"seamonkey\",Sleipnir:\"sleipnir\",Swing:\"swing\",Tizen:\"tizen\",\"UC Browser\":\"uc\",Vivaldi:\"vivaldi\",\"WebOS Browser\":\"webos\",WeChat:\"wechat\",\"Yandex Browser\":\"yandex\",Roku:\"roku\"},M={amazon_silk:\"Amazon Silk\",android:\"Android Browser\",bada:\"Bada\",blackberry:\"BlackBerry\",chrome:\"Chrome\",chromium:\"Chromium\",electron:\"Electron\",epiphany:\"Epiphany\",firefox:\"Firefox\",focus:\"Focus\",generic:\"Generic\",googlebot:\"Googlebot\",google_search:\"Google Search\",ie:\"Internet Explorer\",k_meleon:\"K-Meleon\",maxthon:\"Maxthon\",edge:\"Microsoft Edge\",mz:\"MZ Browser\",naver:\"NAVER Whale Browser\",opera:\"Opera\",opera_coast:\"Opera Coast\",phantomjs:\"PhantomJS\",puffin:\"Puffin\",qupzilla:\"QupZilla\",qq:\"QQ Browser\",qqlite:\"QQ Browser Lite\",safari:\"Safari\",sailfish:\"Sailfish\",samsung_internet:\"Samsung Internet for Android\",seamonkey:\"SeaMonkey\",sleipnir:\"Sleipnir\",swing:\"Swing\",tizen:\"Tizen\",uc:\"UC Browser\",vivaldi:\"Vivaldi\",webos:\"WebOS Browser\",wechat:\"WeChat\",yandex:\"Yandex Browser\"},C={tablet:\"tablet\",mobile:\"mobile\",desktop:\"desktop\",tv:\"tv\"},E={WindowsPhone:\"Windows Phone\",Windows:\"Windows\",MacOS:\"macOS\",iOS:\"iOS\",Android:\"Android\",WebOS:\"WebOS\",BlackBerry:\"BlackBerry\",Bada:\"Bada\",Tizen:\"Tizen\",Linux:\"Linux\",ChromeOS:\"Chrome OS\",PlayStation4:\"PlayStation 4\",Roku:\"Roku\"},T={EdgeHTML:\"EdgeHTML\",Blink:\"Blink\",Trident:\"Trident\",Presto:\"Presto\",Gecko:\"Gecko\",WebKit:\"WebKit\"};class O{static getFirstMatch(e,t){const n=t.match(e);return n&&n.length>0&&n[1]||\"\"}static getSecondMatch(e,t){const n=t.match(e);return n&&n.length>1&&n[2]||\"\"}static matchAndReturnConst(e,t,n){if(e.test(t))return n}static getWindowsVersionName(e){switch(e){case\"NT\":return\"NT\";case\"XP\":case\"NT 5.1\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}}static getMacOSVersionName(e){const t=e.split(\".\").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}}static getAndroidVersionName(e){const t=e.split(\".\").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0}static getVersionPrecision(e){return e.split(\".\").length}static compareVersions(e,t,n=!1){const r=O.getVersionPrecision(e),i=O.getVersionPrecision(t);let o=Math.max(r,i),s=0;const a=O.map([e,t],(e=>{const t=o-O.getVersionPrecision(e),n=e+new Array(t+1).join(\".0\");return O.map(n.split(\".\"),(e=>new Array(20-e.length).join(\"0\")+e)).reverse()}));for(n&&(s=o-Math.min(r,i)),o-=1;o>=s;){if(a[0][o]>a[1][o])return 1;if(a[0][o]===a[1][o]){if(o===s)return 0;o-=1}else if(a[0][o]<a[1][o])return-1}}static map(e,t){const n=[];let r;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n}static find(e,t){let n,r;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(n=0,r=e.length;n<r;n+=1){const r=e[n];if(t(r,n))return r}}static assign(e,...t){const n=e;let r,i;if(Object.assign)return Object.assign(e,...t);for(r=0,i=t.length;r<i;r+=1){const e=t[r];if(\"object\"==typeof e&&null!==e){Object.keys(e).forEach((t=>{n[t]=e[t]}))}}return e}static getBrowserAlias(e){return k[e]}static getBrowserTypeByAlias(e){return M[e]||\"\"}}const P=/version\\/(\\d+(\\.?_?\\d+)+)/i,A=[{test:[/googlebot/i],describe(e){const t={name:\"Googlebot\"},n=O.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/opera/i],describe(e){const t={name:\"Opera\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opr\\/|opios/i],describe(e){const t={name:\"Opera\"},n=O.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/SamsungBrowser/i],describe(e){const t={name:\"Samsung Internet for Android\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Whale/i],describe(e){const t={name:\"NAVER Whale Browser\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MZBrowser/i],describe(e){const t={name:\"MZ Browser\"},n=O.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/focus/i],describe(e){const t={name:\"Focus\"},n=O.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/swing/i],describe(e){const t={name:\"Swing\"},n=O.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/coast/i],describe(e){const t={name:\"Opera Coast\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe(e){const t={name:\"Opera Touch\"},n=O.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/yabrowser/i],describe(e){const t={name:\"Yandex Browser\"},n=O.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/ucbrowser/i],describe(e){const t={name:\"UC Browser\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/Maxthon|mxios/i],describe(e){const t={name:\"Maxthon\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/epiphany/i],describe(e){const t={name:\"Epiphany\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/puffin/i],describe(e){const t={name:\"Puffin\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sleipnir/i],describe(e){const t={name:\"Sleipnir\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/k-meleon/i],describe(e){const t={name:\"K-Meleon\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/micromessenger/i],describe(e){const t={name:\"WeChat\"},n=O.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/qqbrowser/i],describe(e){const t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},n=O.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/msie|trident/i],describe(e){const t={name:\"Internet Explorer\"},n=O.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/\\sedg\\//i],describe(e){const t={name:\"Microsoft Edge\"},n=O.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/edg([ea]|ios)/i],describe(e){const t={name:\"Microsoft Edge\"},n=O.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/vivaldi/i],describe(e){const t={name:\"Vivaldi\"},n=O.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/seamonkey/i],describe(e){const t={name:\"SeaMonkey\"},n=O.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/sailfish/i],describe(e){const t={name:\"Sailfish\"},n=O.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return n&&(t.version=n),t}},{test:[/silk/i],describe(e){const t={name:\"Amazon Silk\"},n=O.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/phantom/i],describe(e){const t={name:\"PhantomJS\"},n=O.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/slimerjs/i],describe(e){const t={name:\"SlimerJS\"},n=O.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe(e){const t={name:\"BlackBerry\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(web|hpw)[o0]s/i],describe(e){const t={name:\"WebOS Browser\"},n=O.getFirstMatch(P,e)||O.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/bada/i],describe(e){const t={name:\"Bada\"},n=O.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/tizen/i],describe(e){const t={name:\"Tizen\"},n=O.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/qupzilla/i],describe(e){const t={name:\"QupZilla\"},n=O.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/firefox|iceweasel|fxios/i],describe(e){const t={name:\"Firefox\"},n=O.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/electron/i],describe(e){const t={name:\"Electron\"},n=O.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/MiuiBrowser/i],describe(e){const t={name:\"Miui\"},n=O.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/chromium/i],describe(e){const t={name:\"Chromium\"},n=O.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/chrome|crios|crmo/i],describe(e){const t={name:\"Chrome\"},n=O.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/GSA/i],describe(e){const t={name:\"Google Search\"},n=O.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test(e){const t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe(e){const t={name:\"Android Browser\"},n=O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/playstation 4/i],describe(e){const t={name:\"PlayStation 4\"},n=O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/safari|applewebkit/i],describe(e){const t={name:\"Safari\"},n=O.getFirstMatch(P,e);return n&&(t.version=n),t}},{test:[/.*/i],describe(e){const t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:O.getFirstMatch(t,e),version:O.getSecondMatch(t,e)}}}];var j=[{test:[/Roku\\/DVP/],describe(e){const t=O.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:E.Roku,version:t}}},{test:[/windows phone/i],describe(e){const t=O.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:E.WindowsPhone,version:t}}},{test:[/windows /i],describe(e){const t=O.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),n=O.getWindowsVersionName(t);return{name:E.Windows,version:t,versionName:n}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe(e){const t={name:E.iOS},n=O.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return n&&(t.version=n),t}},{test:[/macintosh/i],describe(e){const t=O.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),n=O.getMacOSVersionName(t),r={name:E.MacOS,version:t};return n&&(r.versionName=n),r}},{test:[/(ipod|iphone|ipad)/i],describe(e){const t=O.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:E.iOS,version:t}}},{test(e){const t=!e.test(/like android/i),n=e.test(/android/i);return t&&n},describe(e){const t=O.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),n=O.getAndroidVersionName(t),r={name:E.Android,version:t};return n&&(r.versionName=n),r}},{test:[/(web|hpw)[o0]s/i],describe(e){const t=O.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),n={name:E.WebOS};return t&&t.length&&(n.version=t),n}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe(e){const t=O.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||O.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||O.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:E.BlackBerry,version:t}}},{test:[/bada/i],describe(e){const t=O.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:E.Bada,version:t}}},{test:[/tizen/i],describe(e){const t=O.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:E.Tizen,version:t}}},{test:[/linux/i],describe:()=>({name:E.Linux})},{test:[/CrOS/],describe:()=>({name:E.ChromeOS})},{test:[/PlayStation 4/],describe(e){const t=O.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:E.PlayStation4,version:t}}}],I=[{test:[/googlebot/i],describe:()=>({type:\"bot\",vendor:\"Google\"})},{test:[/huawei/i],describe(e){const t=O.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",n={type:C.mobile,vendor:\"Huawei\"};return t&&(n.model=t),n}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:()=>({type:C.tablet,vendor:\"Nexus\"})},{test:[/ipad/i],describe:()=>({type:C.tablet,vendor:\"Apple\",model:\"iPad\"})},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:()=>({type:C.tablet,vendor:\"Apple\",model:\"iPad\"})},{test:[/kftt build/i],describe:()=>({type:C.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"})},{test:[/silk/i],describe:()=>({type:C.tablet,vendor:\"Amazon\"})},{test:[/tablet(?! pc)/i],describe:()=>({type:C.tablet})},{test(e){const t=e.test(/ipod|iphone/i),n=e.test(/like (ipod|iphone)/i);return t&&!n},describe(e){const t=O.getFirstMatch(/(ipod|iphone)/i,e);return{type:C.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:C.mobile,vendor:\"Nexus\"})},{test:[/[^-]mobi/i],describe:()=>({type:C.mobile})},{test:e=>\"blackberry\"===e.getBrowserName(!0),describe:()=>({type:C.mobile,vendor:\"BlackBerry\"})},{test:e=>\"bada\"===e.getBrowserName(!0),describe:()=>({type:C.mobile})},{test:e=>\"windows phone\"===e.getBrowserName(),describe:()=>({type:C.mobile,vendor:\"Microsoft\"})},{test(e){const t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:()=>({type:C.tablet})},{test:e=>\"android\"===e.getOSName(!0),describe:()=>({type:C.mobile})},{test:e=>\"macos\"===e.getOSName(!0),describe:()=>({type:C.desktop,vendor:\"Apple\"})},{test:e=>\"windows\"===e.getOSName(!0),describe:()=>({type:C.desktop})},{test:e=>\"linux\"===e.getOSName(!0),describe:()=>({type:C.desktop})},{test:e=>\"playstation 4\"===e.getOSName(!0),describe:()=>({type:C.tv})},{test:e=>\"roku\"===e.getOSName(!0),describe:()=>({type:C.tv})}],x=[{test:e=>\"microsoft edge\"===e.getBrowserName(!0),describe(e){if(/\\sedg\\//i.test(e))return{name:T.Blink};const t=O.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:T.EdgeHTML,version:t}}},{test:[/trident/i],describe(e){const t={name:T.Trident},n=O.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:e=>e.test(/presto/i),describe(e){const t={name:T.Presto},n=O.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test(e){const t=e.test(/gecko/i),n=e.test(/like gecko/i);return t&&!n},describe(e){const t={name:T.Gecko},n=O.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:()=>({name:T.Blink})},{test:[/(apple)?webkit/i],describe(e){const t={name:T.WebKit},n=O.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return n&&(t.version=n),t}}];class L{constructor(e,t=!1){if(null==e||\"\"===e)throw new Error(\"UserAgent parameter can't be empty\");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=O.find(A,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||\"\":this.getBrowser().name||\"\"}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=O.find(j,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:t}=this.getOS();return e?String(t).toLowerCase()||\"\":t||\"\"}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:t}=this.getPlatform();return e?String(t).toLowerCase()||\"\":t||\"\"}parsePlatform(){this.parsedResult.platform={};const e=O.find(I,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||\"\":this.getEngine().name||\"\"}parseEngine(){this.parsedResult.engine={};const e=O.find(x,(e=>{if(\"function\"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error(\"Browser's test function is not valid\")}));return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return O.assign({},this.parsedResult)}satisfies(e){const t={};let n=0;const r={};let i=0;if(Object.keys(e).forEach((o=>{const s=e[o];\"string\"==typeof s?(r[o]=s,i+=1):\"object\"==typeof s&&(t[o]=s,n+=1)})),n>0){const e=Object.keys(t),n=O.find(e,(e=>this.isOS(e)));if(n){const e=this.satisfies(t[n]);if(void 0!==e)return e}const r=O.find(e,(e=>this.isPlatform(e)));if(r){const e=this.satisfies(t[r]);if(void 0!==e)return e}}if(i>0){const e=Object.keys(r),t=O.find(e,(e=>this.isBrowser(e,!0)));if(void 0!==t)return this.compareVersion(r[t])}}isBrowser(e,t=!1){const n=this.getBrowserName().toLowerCase();let r=e.toLowerCase();const i=O.getBrowserTypeByAlias(r);return t&&i&&(r=i.toLowerCase()),r===n}compareVersion(e){let t=[0],n=e,r=!1;const i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(n=e.substr(1),\"=\"===e[1]?(r=!0,n=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?n=e.substr(1):\"~\"===e[0]&&(r=!0,n=e.substr(1)),t.indexOf(O.compareVersions(i,n,r))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,t=!1){return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some((e=>this.is(e)))}}\n/*!\n * Bowser - a browser detector\n * https://github.com/lancedikson/bowser\n * MIT License | (c) Dustin Diaz 2012-2015\n * MIT License | (c) Denis Demchenko 2015-2019\n */class D{static getParser(e,t=!1){if(\"string\"!=typeof e)throw new Error(\"UserAgent should be a string\");return new L(e,t)}static parse(e){return new L(e).getResult()}static get BROWSER_MAP(){return M}static get ENGINE_MAP(){return T}static get OS_MAP(){return E}static get PLATFORMS_MAP(){return C}}function N(){return Date.now()+Math.random().toString()}function R(){throw new Error(\"Method must be implemented in subclass\")}function F(e,t){return null!=t&&t.proxyUrl?t.proxyUrl+(\"/\"===t.proxyUrl.slice(-1)?\"\":\"/\")+e.substring(8):e}function B(e){return null!=e&&e.callObjectBundleUrlOverride?e.callObjectBundleUrlOverride:F(\"https://c.daily.co/call-machine/versioned/\".concat(\"0.84.0\",\"/static/call-machine-object-bundle.js\"),e)}function U(e){try{new URL(e)}catch(e){return!1}return!0}const V=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,J=\"8.55.0\",$=globalThis;function q(e,t,n){const r=n||$,i=r.__SENTRY__=r.__SENTRY__||{},o=i[J]=i[J]||{};return o[e]||(o[e]=t())}const z=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,W=[\"debug\",\"info\",\"warn\",\"error\",\"log\",\"assert\",\"trace\"],H={};function G(e){if(!(\"console\"in $))return e();const t=$.console,n={},r=Object.keys(H);r.forEach((e=>{const r=H[e];n[e]=t[e],t[e]=r}));try{return e()}finally{r.forEach((e=>{t[e]=n[e]}))}}const Q=q(\"logger\",(function(){let e=!1;const t={enable:()=>{e=!0},disable:()=>{e=!1},isEnabled:()=>e};return z?W.forEach((n=>{t[n]=(...t)=>{e&&G((()=>{$.console[n](`Sentry Logger [${n}]:`,...t)}))}})):W.forEach((e=>{t[e]=()=>{}})),t})),K=\"?\",Y=/\\(error: (.*)\\)/,X=/captureMessage|captureException/;function Z(e){return e[e.length-1]||{}}const ee=\"<anonymous>\";function te(e){try{return e&&\"function\"==typeof e&&e.name||ee}catch(e){return ee}}function ne(e){const t=e.exception;if(t){const e=[];try{return t.values.forEach((t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)})),e}catch(e){return}}}const re={},ie={};function oe(e,t){re[e]=re[e]||[],re[e].push(t)}function se(e,t){if(!ie[e]){ie[e]=!0;try{t()}catch(t){z&&Q.error(`Error while instrumenting ${e}`,t)}}}function ae(e,t){const n=e&&re[e];if(n)for(const r of n)try{r(t)}catch(t){z&&Q.error(`Error while triggering instrumentation handler.\\nType: ${e}\\nName: ${te(r)}\\nError:`,t)}}let ce=null;function le(){ce=$.onerror,$.onerror=function(e,t,n,r,i){return ae(\"error\",{column:r,error:i,line:n,msg:e,url:t}),!!ce&&ce.apply(this,arguments)},$.onerror.__SENTRY_INSTRUMENTED__=!0}let ue=null;function de(){ue=$.onunhandledrejection,$.onunhandledrejection=function(e){return ae(\"unhandledrejection\",e),!ue||ue.apply(this,arguments)},$.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}function pe(){return he($),$}function he(e){const t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||J,t[J]=t[J]||{}}const fe=Object.prototype.toString;function ve(e){switch(fe.call(e)){case\"[object Error]\":case\"[object Exception]\":case\"[object DOMException]\":case\"[object WebAssembly.Exception]\":return!0;default:return Ce(e,Error)}}function ge(e,t){return fe.call(e)===`[object ${t}]`}function me(e){return ge(e,\"ErrorEvent\")}function ye(e){return ge(e,\"DOMError\")}function be(e){return ge(e,\"String\")}function _e(e){return\"object\"==typeof e&&null!==e&&\"__sentry_template_string__\"in e&&\"__sentry_template_values__\"in e}function we(e){return null===e||_e(e)||\"object\"!=typeof e&&\"function\"!=typeof e}function Se(e){return ge(e,\"Object\")}function ke(e){return\"undefined\"!=typeof Event&&Ce(e,Event)}function Me(e){return Boolean(e&&e.then&&\"function\"==typeof e.then)}function Ce(e,t){try{return e instanceof t}catch(e){return!1}}function Ee(e){return!(\"object\"!=typeof e||null===e||!e.__isVue&&!e._isVue)}const Te=$;function Oe(e,t={}){if(!e)return\"<unknown>\";try{let n=e;const r=5,i=[];let o=0,s=0;const a=\" > \",c=a.length;let l;const u=Array.isArray(t)?t:t.keyAttrs,d=!Array.isArray(t)&&t.maxStringLength||80;for(;n&&o++<r&&(l=Pe(n,u),!(\"html\"===l||o>1&&s+i.length*c+l.length>=d));)i.push(l),s+=l.length,n=n.parentNode;return i.reverse().join(a)}catch(e){return\"<unknown>\"}}function Pe(e,t){const n=e,r=[];if(!n||!n.tagName)return\"\";if(Te.HTMLElement&&n instanceof HTMLElement&&n.dataset){if(n.dataset.sentryComponent)return n.dataset.sentryComponent;if(n.dataset.sentryElement)return n.dataset.sentryElement}r.push(n.tagName.toLowerCase());const i=t&&t.length?t.filter((e=>n.getAttribute(e))).map((e=>[e,n.getAttribute(e)])):null;if(i&&i.length)i.forEach((e=>{r.push(`[${e[0]}=\"${e[1]}\"]`)}));else{n.id&&r.push(`#${n.id}`);const e=n.className;if(e&&be(e)){const t=e.split(/\\s+/);for(const e of t)r.push(`.${e}`)}}const o=[\"aria-label\",\"type\",\"name\",\"title\",\"alt\"];for(const e of o){const t=n.getAttribute(e);t&&r.push(`[${e}=\"${t}\"]`)}return r.join(\"\")}function Ae(e,t=0){return\"string\"!=typeof e||0===t||e.length<=t?e:`${e.slice(0,t)}...`}function je(e,t){if(!Array.isArray(e))return\"\";const n=[];for(let t=0;t<e.length;t++){const r=e[t];try{Ee(r)?n.push(\"[VueViewModel]\"):n.push(String(r))}catch(e){n.push(\"[value cannot be serialized]\")}}return n.join(t)}function Ie(e,t,n=!1){return!!be(e)&&(ge(t,\"RegExp\")?t.test(e):!!be(t)&&(n?e===t:e.includes(t)))}function xe(e,t=[],n=!1){return t.some((t=>Ie(e,t,n)))}function Le(e,t,n){if(!(t in e))return;const r=e[t],i=n(r);\"function\"==typeof i&&Ne(i,r);try{e[t]=i}catch(n){z&&Q.log(`Failed to replace method \"${t}\" in object`,e)}}function De(e,t,n){try{Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0})}catch(n){z&&Q.log(`Failed to add non-enumerable property \"${t}\" to object`,e)}}function Ne(e,t){try{const n=t.prototype||{};e.prototype=t.prototype=n,De(e,\"__sentry_original__\",t)}catch(e){}}function Re(e){return e.__sentry_original__}function Fe(e){if(ve(e))return{message:e.message,name:e.name,stack:e.stack,...Ue(e)};if(ke(e)){const t={type:e.type,target:Be(e.target),currentTarget:Be(e.currentTarget),...Ue(e)};return\"undefined\"!=typeof CustomEvent&&Ce(e,CustomEvent)&&(t.detail=e.detail),t}return e}function Be(e){try{return t=e,\"undefined\"!=typeof Element&&Ce(t,Element)?Oe(e):Object.prototype.toString.call(e)}catch(e){return\"<unknown>\"}var t}function Ue(e){if(\"object\"==typeof e&&null!==e){const t={};for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}return{}}function Ve(e){return Je(e,new Map)}function Je(e,t){if(function(e){if(!Se(e))return!1;try{const t=Object.getPrototypeOf(e).constructor.name;return!t||\"Object\"===t}catch(e){return!0}}(e)){const n=t.get(e);if(void 0!==n)return n;const r={};t.set(e,r);for(const n of Object.getOwnPropertyNames(e))void 0!==e[n]&&(r[n]=Je(e[n],t));return r}if(Array.isArray(e)){const n=t.get(e);if(void 0!==n)return n;const r=[];return t.set(e,r),e.forEach((e=>{r.push(Je(e,t))})),r}return e}function $e(){return Date.now()/1e3}const qe=function(){const{performance:e}=$;if(!e||!e.now)return $e;const t=Date.now()-e.now(),n=null==e.timeOrigin?t:e.timeOrigin;return()=>(n+e.now())/1e3}();function ze(){const e=$,t=e.crypto||e.msCrypto;let n=()=>16*Math.random();try{if(t&&t.randomUUID)return t.randomUUID().replace(/-/g,\"\");t&&t.getRandomValues&&(n=()=>{const e=new Uint8Array(1);return t.getRandomValues(e),e[0]})}catch(e){}return([1e7]+1e3+4e3+8e3+1e11).replace(/[018]/g,(e=>(e^(15&n())>>e/4).toString(16)))}function We(e){return e.exception&&e.exception.values?e.exception.values[0]:void 0}function He(e){const{message:t,event_id:n}=e;if(t)return t;const r=We(e);return r?r.type&&r.value?`${r.type}: ${r.value}`:r.type||r.value||n||\"<unknown>\":n||\"<unknown>\"}function Ge(e,t,n){const r=e.exception=e.exception||{},i=r.values=r.values||[],o=i[0]=i[0]||{};o.value||(o.value=t||\"\"),o.type||(o.type=n||\"Error\")}function Qe(e,t){const n=We(e);if(!n)return;const r=n.mechanism;if(n.mechanism={type:\"generic\",handled:!0,...r,...t},t&&\"data\"in t){const e={...r&&r.data,...t.data};n.mechanism.data=e}}function Ke(e){if(function(e){try{return e.__sentry_captured__}catch(e){}}(e))return!0;try{De(e,\"__sentry_captured__\",!0)}catch(e){}return!1}var Ye;function Xe(e){return new et((t=>{t(e)}))}function Ze(e){return new et(((t,n)=>{n(e)}))}(()=>{const{performance:e}=$;if(!e||!e.now)return;const t=36e5,n=e.now(),r=Date.now(),i=e.timeOrigin?Math.abs(e.timeOrigin+n-r):t,o=i<t,s=e.timing&&e.timing.navigationStart,a=\"number\"==typeof s?Math.abs(s+n-r):t;(o||a<t)&&(i<=a&&e.timeOrigin)})(),function(e){e[e.PENDING=0]=\"PENDING\";e[e.RESOLVED=1]=\"RESOLVED\";e[e.REJECTED=2]=\"REJECTED\"}(Ye||(Ye={}));class et{constructor(e){et.prototype.__init.call(this),et.prototype.__init2.call(this),et.prototype.__init3.call(this),et.prototype.__init4.call(this),this._state=Ye.PENDING,this._handlers=[];try{e(this._resolve,this._reject)}catch(e){this._reject(e)}}then(e,t){return new et(((n,r)=>{this._handlers.push([!1,t=>{if(e)try{n(e(t))}catch(e){r(e)}else n(t)},e=>{if(t)try{n(t(e))}catch(e){r(e)}else r(e)}]),this._executeHandlers()}))}catch(e){return this.then((e=>e),e)}finally(e){return new et(((t,n)=>{let r,i;return this.then((t=>{i=!1,r=t,e&&e()}),(t=>{i=!0,r=t,e&&e()})).then((()=>{i?n(r):t(r)}))}))}__init(){this._resolve=e=>{this._setResult(Ye.RESOLVED,e)}}__init2(){this._reject=e=>{this._setResult(Ye.REJECTED,e)}}__init3(){this._setResult=(e,t)=>{this._state===Ye.PENDING&&(Me(t)?t.then(this._resolve,this._reject):(this._state=e,this._value=t,this._executeHandlers()))}}__init4(){this._executeHandlers=()=>{if(this._state===Ye.PENDING)return;const e=this._handlers.slice();this._handlers=[],e.forEach((e=>{e[0]||(this._state===Ye.RESOLVED&&e[1](this._value),this._state===Ye.REJECTED&&e[2](this._value),e[0]=!0)}))}}}function tt(e){const t=qe(),n={sid:ze(),init:!0,timestamp:t,started:t,duration:0,status:\"ok\",errors:0,ignoreDuration:!1,toJSON:()=>function(e){return Ve({sid:`${e.sid}`,init:e.init,started:new Date(1e3*e.started).toISOString(),timestamp:new Date(1e3*e.timestamp).toISOString(),status:e.status,errors:e.errors,did:\"number\"==typeof e.did||\"string\"==typeof e.did?`${e.did}`:void 0,duration:e.duration,abnormal_mechanism:e.abnormal_mechanism,attrs:{release:e.release,environment:e.environment,ip_address:e.ipAddress,user_agent:e.userAgent}})}(n)};return e&&nt(n,e),n}function nt(e,t={}){if(t.user&&(!e.ipAddress&&t.user.ip_address&&(e.ipAddress=t.user.ip_address),e.did||t.did||(e.did=t.user.id||t.user.email||t.user.username)),e.timestamp=t.timestamp||qe(),t.abnormal_mechanism&&(e.abnormal_mechanism=t.abnormal_mechanism),t.ignoreDuration&&(e.ignoreDuration=t.ignoreDuration),t.sid&&(e.sid=32===t.sid.length?t.sid:ze()),void 0!==t.init&&(e.init=t.init),!e.did&&t.did&&(e.did=`${t.did}`),\"number\"==typeof t.started&&(e.started=t.started),e.ignoreDuration)e.duration=void 0;else if(\"number\"==typeof t.duration)e.duration=t.duration;else{const t=e.timestamp-e.started;e.duration=t>=0?t:0}t.release&&(e.release=t.release),t.environment&&(e.environment=t.environment),!e.ipAddress&&t.ipAddress&&(e.ipAddress=t.ipAddress),!e.userAgent&&t.userAgent&&(e.userAgent=t.userAgent),\"number\"==typeof t.errors&&(e.errors=t.errors),t.status&&(e.status=t.status)}function rt(){return ze()}function it(){return ze().substring(16)}function ot(e,t,n=2){if(!t||\"object\"!=typeof t||n<=0)return t;if(e&&t&&0===Object.keys(t).length)return e;const r={...e};for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=ot(r[e],t[e],n-1));return r}const st=\"_sentrySpan\";function at(e,t){t?De(e,st,t):delete e[st]}function ct(e){return e[st]}class lt{constructor(){this._notifyingListeners=!1,this._scopeListeners=[],this._eventProcessors=[],this._breadcrumbs=[],this._attachments=[],this._user={},this._tags={},this._extra={},this._contexts={},this._sdkProcessingMetadata={},this._propagationContext={traceId:rt(),spanId:it()}}clone(){const e=new lt;return e._breadcrumbs=[...this._breadcrumbs],e._tags={...this._tags},e._extra={...this._extra},e._contexts={...this._contexts},this._contexts.flags&&(e._contexts.flags={values:[...this._contexts.flags.values]}),e._user=this._user,e._level=this._level,e._session=this._session,e._transactionName=this._transactionName,e._fingerprint=this._fingerprint,e._eventProcessors=[...this._eventProcessors],e._requestSession=this._requestSession,e._attachments=[...this._attachments],e._sdkProcessingMetadata={...this._sdkProcessingMetadata},e._propagationContext={...this._propagationContext},e._client=this._client,e._lastEventId=this._lastEventId,at(e,ct(this)),e}setClient(e){this._client=e}setLastEventId(e){this._lastEventId=e}getClient(){return this._client}lastEventId(){return this._lastEventId}addScopeListener(e){this._scopeListeners.push(e)}addEventProcessor(e){return this._eventProcessors.push(e),this}setUser(e){return this._user=e||{email:void 0,id:void 0,ip_address:void 0,username:void 0},this._session&&nt(this._session,{user:e}),this._notifyScopeListeners(),this}getUser(){return this._user}getRequestSession(){return this._requestSession}setRequestSession(e){return this._requestSession=e,this}setTags(e){return this._tags={...this._tags,...e},this._notifyScopeListeners(),this}setTag(e,t){return this._tags={...this._tags,[e]:t},this._notifyScopeListeners(),this}setExtras(e){return this._extra={...this._extra,...e},this._notifyScopeListeners(),this}setExtra(e,t){return this._extra={...this._extra,[e]:t},this._notifyScopeListeners(),this}setFingerprint(e){return this._fingerprint=e,this._notifyScopeListeners(),this}setLevel(e){return this._level=e,this._notifyScopeListeners(),this}setTransactionName(e){return this._transactionName=e,this._notifyScopeListeners(),this}setContext(e,t){return null===t?delete this._contexts[e]:this._contexts[e]=t,this._notifyScopeListeners(),this}setSession(e){return e?this._session=e:delete this._session,this._notifyScopeListeners(),this}getSession(){return this._session}update(e){if(!e)return this;const t=\"function\"==typeof e?e(this):e,[n,r]=t instanceof ut?[t.getScopeData(),t.getRequestSession()]:Se(t)?[e,e.requestSession]:[],{tags:i,extra:o,user:s,contexts:a,level:c,fingerprint:l=[],propagationContext:u}=n||{};return this._tags={...this._tags,...i},this._extra={...this._extra,...o},this._contexts={...this._contexts,...a},s&&Object.keys(s).length&&(this._user=s),c&&(this._level=c),l.length&&(this._fingerprint=l),u&&(this._propagationContext=u),r&&(this._requestSession=r),this}clear(){return this._breadcrumbs=[],this._tags={},this._extra={},this._user={},this._contexts={},this._level=void 0,this._transactionName=void 0,this._fingerprint=void 0,this._requestSession=void 0,this._session=void 0,at(this,void 0),this._attachments=[],this.setPropagationContext({traceId:rt()}),this._notifyScopeListeners(),this}addBreadcrumb(e,t){const n=\"number\"==typeof t?t:100;if(n<=0)return this;const r={timestamp:$e(),...e};return this._breadcrumbs.push(r),this._breadcrumbs.length>n&&(this._breadcrumbs=this._breadcrumbs.slice(-n),this._client&&this._client.recordDroppedEvent(\"buffer_overflow\",\"log_item\")),this._notifyScopeListeners(),this}getLastBreadcrumb(){return this._breadcrumbs[this._breadcrumbs.length-1]}clearBreadcrumbs(){return this._breadcrumbs=[],this._notifyScopeListeners(),this}addAttachment(e){return this._attachments.push(e),this}clearAttachments(){return this._attachments=[],this}getScopeData(){return{breadcrumbs:this._breadcrumbs,attachments:this._attachments,contexts:this._contexts,tags:this._tags,extra:this._extra,user:this._user,level:this._level,fingerprint:this._fingerprint||[],eventProcessors:this._eventProcessors,propagationContext:this._propagationContext,sdkProcessingMetadata:this._sdkProcessingMetadata,transactionName:this._transactionName,span:ct(this)}}setSDKProcessingMetadata(e){return this._sdkProcessingMetadata=ot(this._sdkProcessingMetadata,e,2),this}setPropagationContext(e){return this._propagationContext={spanId:it(),...e},this}getPropagationContext(){return this._propagationContext}captureException(e,t){const n=t&&t.event_id?t.event_id:ze();if(!this._client)return Q.warn(\"No client configured on scope - will not capture exception!\"),n;const r=new Error(\"Sentry syntheticException\");return this._client.captureException(e,{originalException:e,syntheticException:r,...t,event_id:n},this),n}captureMessage(e,t,n){const r=n&&n.event_id?n.event_id:ze();if(!this._client)return Q.warn(\"No client configured on scope - will not capture message!\"),r;const i=new Error(e);return this._client.captureMessage(e,t,{originalException:e,syntheticException:i,...n,event_id:r},this),r}captureEvent(e,t){const n=t&&t.event_id?t.event_id:ze();return this._client?(this._client.captureEvent(e,{...t,event_id:n},this),n):(Q.warn(\"No client configured on scope - will not capture event!\"),n)}_notifyScopeListeners(){this._notifyingListeners||(this._notifyingListeners=!0,this._scopeListeners.forEach((e=>{e(this)})),this._notifyingListeners=!1)}}const ut=lt;class dt{constructor(e,t){let n,r;n=e||new ut,r=t||new ut,this._stack=[{scope:n}],this._isolationScope=r}withScope(e){const t=this._pushScope();let n;try{n=e(t)}catch(e){throw this._popScope(),e}return Me(n)?n.then((e=>(this._popScope(),e)),(e=>{throw this._popScope(),e})):(this._popScope(),n)}getClient(){return this.getStackTop().client}getScope(){return this.getStackTop().scope}getIsolationScope(){return this._isolationScope}getStackTop(){return this._stack[this._stack.length-1]}_pushScope(){const e=this.getScope().clone();return this._stack.push({client:this.getClient(),scope:e}),e}_popScope(){return!(this._stack.length<=1)&&!!this._stack.pop()}}function pt(){const e=he(pe());return e.stack=e.stack||new dt(q(\"defaultCurrentScope\",(()=>new ut)),q(\"defaultIsolationScope\",(()=>new ut)))}function ht(e){return pt().withScope(e)}function ft(e,t){const n=pt();return n.withScope((()=>(n.getStackTop().scope=e,t(e))))}function vt(e){return pt().withScope((()=>e(pt().getIsolationScope())))}function gt(e){const t=he(e);return t.acs?t.acs:{withIsolationScope:vt,withScope:ht,withSetScope:ft,withSetIsolationScope:(e,t)=>vt(t),getCurrentScope:()=>pt().getScope(),getIsolationScope:()=>pt().getIsolationScope()}}function mt(){return gt(pe()).getCurrentScope()}function yt(){return gt(pe()).getIsolationScope()}function bt(){return mt().getClient()}function _t(e){const t=e.getPropagationContext(),{traceId:n,spanId:r,parentSpanId:i}=t;return Ve({trace_id:n,span_id:r,parent_span_id:i})}function wt(e){const t=e._sentryMetrics;if(!t)return;const n={};for(const[,[e,r]]of t){(n[e]||(n[e]=[])).push(Ve(r))}return n}const St=/^sentry-/;function kt(e){const t=function(e){if(!e||!be(e)&&!Array.isArray(e))return;if(Array.isArray(e))return e.reduce(((e,t)=>{const n=Mt(t);return Object.entries(n).forEach((([t,n])=>{e[t]=n})),e}),{});return Mt(e)}(e);if(!t)return;const n=Object.entries(t).reduce(((e,[t,n])=>{if(t.match(St)){e[t.slice(7)]=n}return e}),{});return Object.keys(n).length>0?n:void 0}function Mt(e){return e.split(\",\").map((e=>e.split(\"=\").map((e=>decodeURIComponent(e.trim()))))).reduce(((e,[t,n])=>(t&&n&&(e[t]=n),e)),{})}let Ct=!1;function Et(e){const{spanId:t,traceId:n,isRemote:r}=e.spanContext();return Ve({parent_span_id:r?t:Pt(e).parent_span_id,span_id:r?it():t,trace_id:n})}function Tt(e){return\"number\"==typeof e?Ot(e):Array.isArray(e)?e[0]+e[1]/1e9:e instanceof Date?Ot(e.getTime()):qe()}function Ot(e){return e>9999999999?e/1e3:e}function Pt(e){if(function(e){return\"function\"==typeof e.getSpanJSON}(e))return e.getSpanJSON();try{const{spanId:t,traceId:n}=e.spanContext();if(function(e){const t=e;return!!(t.attributes&&t.startTime&&t.name&&t.endTime&&t.status)}(e)){const{attributes:r,startTime:i,name:o,endTime:s,parentSpanId:a,status:c}=e;return Ve({span_id:t,trace_id:n,data:r,description:o,parent_span_id:a,start_timestamp:Tt(i),timestamp:Tt(s)||void 0,status:At(c),op:r[\"sentry.op\"],origin:r[\"sentry.origin\"],_metrics_summary:wt(e)})}return{span_id:t,trace_id:n}}catch(e){return{}}}function At(e){if(e&&0!==e.code)return 1===e.code?\"ok\":e.message||\"unknown_error\"}function jt(e){return e._sentryRootSpan||e}function It(){Ct||(G((()=>{console.warn(\"[Sentry] Deprecation warning: Returning null from `beforeSendSpan` will be disallowed from SDK version 9.0.0 onwards. The callback will only support mutating spans. To drop certain spans, configure the respective integrations directly.\")})),Ct=!0)}const xt=\"production\";function Lt(e,t){const n=t.getOptions(),{publicKey:r}=t.getDsn()||{},i=Ve({environment:n.environment||xt,release:n.release,public_key:r,trace_id:e});return t.emit(\"createDsc\",i),i}function Dt(e){const t=bt();if(!t)return{};const n=jt(e),r=n._frozenDsc;if(r)return r;const i=n.spanContext().traceState,o=i&&i.get(\"sentry.dsc\"),s=o&&kt(o);if(s)return s;const a=Lt(e.spanContext().traceId,t),c=Pt(n),l=c.data||{},u=l[\"sentry.sample_rate\"];null!=u&&(a.sample_rate=`${u}`);const d=l[\"sentry.source\"],p=c.description;return\"url\"!==d&&p&&(a.transaction=p),function(e){if(\"boolean\"==typeof __SENTRY_TRACING__&&!__SENTRY_TRACING__)return!1;const t=bt(),n=e||t&&t.getOptions();return!!n&&(n.enableTracing||\"tracesSampleRate\"in n||\"tracesSampler\"in n)}()&&(a.sampled=String(function(e){const{traceFlags:t}=e.spanContext();return 1===t}(n))),t.emit(\"createDsc\",a,n),a}const Nt=/^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;function Rt(e,t=!1){const{host:n,path:r,pass:i,port:o,projectId:s,protocol:a,publicKey:c}=e;return`${a}://${c}${t&&i?`:${i}`:\"\"}@${n}${o?`:${o}`:\"\"}/${r?`${r}/`:r}${s}`}function Ft(e){return{protocol:e.protocol,publicKey:e.publicKey||\"\",pass:e.pass||\"\",host:e.host,port:e.port||\"\",path:e.path||\"\",projectId:e.projectId}}function Bt(e){const t=\"string\"==typeof e?function(e){const t=Nt.exec(e);if(!t)return void G((()=>{console.error(`Invalid Sentry Dsn: ${e}`)}));const[n,r,i=\"\",o=\"\",s=\"\",a=\"\"]=t.slice(1);let c=\"\",l=a;const u=l.split(\"/\");if(u.length>1&&(c=u.slice(0,-1).join(\"/\"),l=u.pop()),l){const e=l.match(/^\\d+/);e&&(l=e[0])}return Ft({host:o,pass:i,path:c,projectId:l,port:s,protocol:n,publicKey:r})}(e):Ft(e);if(t&&function(e){if(!z)return!0;const{port:t,projectId:n,protocol:r}=e;return!([\"protocol\",\"publicKey\",\"host\",\"projectId\"].find((t=>!e[t]&&(Q.error(`Invalid Sentry Dsn: ${t} missing`),!0)))||(n.match(/^\\d+$/)?function(e){return\"http\"===e||\"https\"===e}(r)?t&&isNaN(parseInt(t,10))&&(Q.error(`Invalid Sentry Dsn: Invalid port ${t}`),1):(Q.error(`Invalid Sentry Dsn: Invalid protocol ${r}`),1):(Q.error(`Invalid Sentry Dsn: Invalid projectId ${n}`),1)))}(t))return t}function Ut(e,t=100,n=1/0){try{return Jt(\"\",e,t,n)}catch(e){return{ERROR:`**non-serializable** (${e})`}}}function Vt(e,t=3,n=102400){const r=Ut(e,t);return i=r,function(e){return~-encodeURI(e).split(/%..|./).length}(JSON.stringify(i))>n?Vt(e,t-1,n):r;var i}function Jt(e,t,n=1/0,r=1/0,i=function(){const e=\"function\"==typeof WeakSet,t=e?new WeakSet:[];return[function(n){if(e)return!!t.has(n)||(t.add(n),!1);for(let e=0;e<t.length;e++)if(t[e]===n)return!0;return t.push(n),!1},function(n){if(e)t.delete(n);else for(let e=0;e<t.length;e++)if(t[e]===n){t.splice(e,1);break}}]}()){const[o,s]=i;if(null==t||[\"boolean\",\"string\"].includes(typeof t)||\"number\"==typeof t&&Number.isFinite(t))return t;const a=function(e,t){try{if(\"domain\"===e&&t&&\"object\"==typeof t&&t._events)return\"[Domain]\";if(\"domainEmitter\"===e)return\"[DomainEmitter]\";if(\"undefined\"!=typeof global&&t===global)return\"[Global]\";if(\"undefined\"!=typeof window&&t===window)return\"[Window]\";if(\"undefined\"!=typeof document&&t===document)return\"[Document]\";if(Ee(t))return\"[VueViewModel]\";if(Se(n=t)&&\"nativeEvent\"in n&&\"preventDefault\"in n&&\"stopPropagation\"in n)return\"[SyntheticEvent]\";if(\"number\"==typeof t&&!Number.isFinite(t))return`[${t}]`;if(\"function\"==typeof t)return`[Function: ${te(t)}]`;if(\"symbol\"==typeof t)return`[${String(t)}]`;if(\"bigint\"==typeof t)return`[BigInt: ${String(t)}]`;const r=function(e){const t=Object.getPrototypeOf(e);return t?t.constructor.name:\"null prototype\"}(t);return/^HTML(\\w*)Element$/.test(r)?`[HTMLElement: ${r}]`:`[object ${r}]`}catch(e){return`**non-serializable** (${e})`}var n}(e,t);if(!a.startsWith(\"[object \"))return a;if(t.__sentry_skip_normalization__)return t;const c=\"number\"==typeof t.__sentry_override_normalization_depth__?t.__sentry_override_normalization_depth__:n;if(0===c)return a.replace(\"object \",\"\");if(o(t))return\"[Circular ~]\";const l=t;if(l&&\"function\"==typeof l.toJSON)try{return Jt(\"\",l.toJSON(),c-1,r,i)}catch(e){}const u=Array.isArray(t)?[]:{};let d=0;const p=Fe(t);for(const e in p){if(!Object.prototype.hasOwnProperty.call(p,e))continue;if(d>=r){u[e]=\"[MaxProperties ~]\";break}const t=p[e];u[e]=Jt(e,t,c-1,r,i),d++}return s(t),u}function $t(e,t=[]){return[e,t]}function qt(e,t){const[n,r]=e;return[n,[...r,t]]}function zt(e,t){const n=e[1];for(const e of n){if(t(e,e[0].type))return!0}return!1}function Wt(e){return $.__SENTRY__&&$.__SENTRY__.encodePolyfill?$.__SENTRY__.encodePolyfill(e):(new TextEncoder).encode(e)}function Ht(e){const[t,n]=e;let r=JSON.stringify(t);function i(e){\"string\"==typeof r?r=\"string\"==typeof e?r+e:[Wt(r),e]:r.push(\"string\"==typeof e?Wt(e):e)}for(const e of n){const[t,n]=e;if(i(`\\n${JSON.stringify(t)}\\n`),\"string\"==typeof n||n instanceof Uint8Array)i(n);else{let e;try{e=JSON.stringify(n)}catch(t){e=JSON.stringify(Ut(n))}i(e)}}return\"string\"==typeof r?r:function(e){const t=e.reduce(((e,t)=>e+t.length),0),n=new Uint8Array(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return n}(r)}function Gt(e){const t=\"string\"==typeof e.data?Wt(e.data):e.data;return[Ve({type:\"attachment\",length:t.length,filename:e.filename,content_type:e.contentType,attachment_type:e.attachmentType}),t]}const Qt={session:\"session\",sessions:\"session\",attachment:\"attachment\",transaction:\"transaction\",event:\"error\",client_report:\"internal\",user_report:\"default\",profile:\"profile\",profile_chunk:\"profile\",replay_event:\"replay\",replay_recording:\"replay\",check_in:\"monitor\",feedback:\"feedback\",span:\"span\",statsd:\"metric_bucket\",raw_security:\"security\"};function Kt(e){return Qt[e]}function Yt(e){if(!e||!e.sdk)return;const{name:t,version:n}=e.sdk;return{name:t,version:n}}function Xt(e,t,n,r){const i=Yt(n),o=e.type&&\"replay_event\"!==e.type?e.type:\"event\";!function(e,t){t&&(e.sdk=e.sdk||{},e.sdk.name=e.sdk.name||t.name,e.sdk.version=e.sdk.version||t.version,e.sdk.integrations=[...e.sdk.integrations||[],...t.integrations||[]],e.sdk.packages=[...e.sdk.packages||[],...t.packages||[]])}(e,n&&n.sdk);const s=function(e,t,n,r){const i=e.sdkProcessingMetadata&&e.sdkProcessingMetadata.dynamicSamplingContext;return{event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&{sdk:t},...!!n&&r&&{dsn:Rt(r)},...i&&{trace:Ve({...i})}}}(e,i,r,t);delete e.sdkProcessingMetadata;return $t(s,[[{type:o},e]])}function Zt(e,t,n,r=0){return new et(((i,o)=>{const s=e[r];if(null===t||\"function\"!=typeof s)i(t);else{const a=s({...t},n);V&&s.id&&null===a&&Q.log(`Event processor \"${s.id}\" dropped event`),Me(a)?a.then((t=>Zt(e,t,n,r+1).then(i))).then(null,o):Zt(e,a,n,r+1).then(i).then(null,o)}}))}let en,tn,nn;function rn(e,t){const{fingerprint:n,span:r,breadcrumbs:i,sdkProcessingMetadata:o}=t;!function(e,t){const{extra:n,tags:r,user:i,contexts:o,level:s,transactionName:a}=t,c=Ve(n);c&&Object.keys(c).length&&(e.extra={...c,...e.extra});const l=Ve(r);l&&Object.keys(l).length&&(e.tags={...l,...e.tags});const u=Ve(i);u&&Object.keys(u).length&&(e.user={...u,...e.user});const d=Ve(o);d&&Object.keys(d).length&&(e.contexts={...d,...e.contexts});s&&(e.level=s);a&&\"transaction\"!==e.type&&(e.transaction=a)}(e,t),r&&function(e,t){e.contexts={trace:Et(t),...e.contexts},e.sdkProcessingMetadata={dynamicSamplingContext:Dt(t),...e.sdkProcessingMetadata};const n=jt(t),r=Pt(n).description;r&&!e.transaction&&\"transaction\"===e.type&&(e.transaction=r)}(e,r),function(e,t){e.fingerprint=e.fingerprint?Array.isArray(e.fingerprint)?e.fingerprint:[e.fingerprint]:[],t&&(e.fingerprint=e.fingerprint.concat(t));e.fingerprint&&!e.fingerprint.length&&delete e.fingerprint}(e,n),function(e,t){const n=[...e.breadcrumbs||[],...t];e.breadcrumbs=n.length?n:void 0}(e,i),function(e,t){e.sdkProcessingMetadata={...e.sdkProcessingMetadata,...t}}(e,o)}function on(e,t){const{extra:n,tags:r,user:i,contexts:o,level:s,sdkProcessingMetadata:a,breadcrumbs:c,fingerprint:l,eventProcessors:u,attachments:d,propagationContext:p,transactionName:h,span:f}=t;sn(e,\"extra\",n),sn(e,\"tags\",r),sn(e,\"user\",i),sn(e,\"contexts\",o),e.sdkProcessingMetadata=ot(e.sdkProcessingMetadata,a,2),s&&(e.level=s),h&&(e.transactionName=h),f&&(e.span=f),c.length&&(e.breadcrumbs=[...e.breadcrumbs,...c]),l.length&&(e.fingerprint=[...e.fingerprint,...l]),u.length&&(e.eventProcessors=[...e.eventProcessors,...u]),d.length&&(e.attachments=[...e.attachments,...d]),e.propagationContext={...e.propagationContext,...p}}function sn(e,t,n){e[t]=ot(e[t],n,1)}function an(e,t,n,r,i,o){const{normalizeDepth:s=3,normalizeMaxBreadth:a=1e3}=e,c={...t,event_id:t.event_id||n.event_id||ze(),timestamp:t.timestamp||$e()},l=n.integrations||e.integrations.map((e=>e.name));!function(e,t){const{environment:n,release:r,dist:i,maxValueLength:o=250}=t;e.environment=e.environment||n||xt,!e.release&&r&&(e.release=r);!e.dist&&i&&(e.dist=i);e.message&&(e.message=Ae(e.message,o));const s=e.exception&&e.exception.values&&e.exception.values[0];s&&s.value&&(s.value=Ae(s.value,o));const a=e.request;a&&a.url&&(a.url=Ae(a.url,o))}(c,e),function(e,t){t.length>0&&(e.sdk=e.sdk||{},e.sdk.integrations=[...e.sdk.integrations||[],...t])}(c,l),i&&i.emit(\"applyFrameMetadata\",t),void 0===t.type&&function(e,t){const n=function(e){const t=$._sentryDebugIds;if(!t)return{};const n=Object.keys(t);return nn&&n.length===tn||(tn=n.length,nn=n.reduce(((n,r)=>{en||(en={});const i=en[r];if(i)n[i[0]]=i[1];else{const i=e(r);for(let e=i.length-1;e>=0;e--){const o=i[e],s=o&&o.filename,a=t[r];if(s&&a){n[s]=a,en[r]=[s,a];break}}}return n}),{})),nn}(t);try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{n&&e.filename&&(e.debug_id=n[e.filename])}))}))}catch(e){}}(c,e.stackParser);const u=function(e,t){if(!t)return e;const n=e?e.clone():new ut;return n.update(t),n}(r,n.captureContext);n.mechanism&&Qe(c,n.mechanism);const d=i?i.getEventProcessors():[],p=q(\"globalScope\",(()=>new ut)).getScopeData();if(o){on(p,o.getScopeData())}if(u){on(p,u.getScopeData())}const h=[...n.attachments||[],...p.attachments];h.length&&(n.attachments=h),rn(c,p);return Zt([...d,...p.eventProcessors],c,n).then((e=>(e&&function(e){const t={};try{e.exception.values.forEach((e=>{e.stacktrace.frames.forEach((e=>{e.debug_id&&(e.abs_path?t[e.abs_path]=e.debug_id:e.filename&&(t[e.filename]=e.debug_id),delete e.debug_id)}))}))}catch(e){}if(0===Object.keys(t).length)return;e.debug_meta=e.debug_meta||{},e.debug_meta.images=e.debug_meta.images||[];const n=e.debug_meta.images;Object.entries(t).forEach((([e,t])=>{n.push({type:\"sourcemap\",code_file:e,debug_id:t})}))}(e),\"number\"==typeof s&&s>0?function(e,t,n){if(!e)return null;const r={...e,...e.breadcrumbs&&{breadcrumbs:e.breadcrumbs.map((e=>({...e,...e.data&&{data:Ut(e.data,t,n)}})))},...e.user&&{user:Ut(e.user,t,n)},...e.contexts&&{contexts:Ut(e.contexts,t,n)},...e.extra&&{extra:Ut(e.extra,t,n)}};e.contexts&&e.contexts.trace&&r.contexts&&(r.contexts.trace=e.contexts.trace,e.contexts.trace.data&&(r.contexts.trace.data=Ut(e.contexts.trace.data,t,n)));e.spans&&(r.spans=e.spans.map((e=>({...e,...e.data&&{data:Ut(e.data,t,n)}}))));e.contexts&&e.contexts.flags&&r.contexts&&(r.contexts.flags=Ut(e.contexts.flags,3,n));return r}(e,s,a):e)))}function cn(e){if(e)return function(e){return e instanceof ut||\"function\"==typeof e}(e)||function(e){return Object.keys(e).some((e=>ln.includes(e)))}(e)?{captureContext:e}:e}const ln=[\"user\",\"level\",\"extra\",\"contexts\",\"tags\",\"fingerprint\",\"requestSession\",\"propagationContext\"];function un(e,t){return mt().captureEvent(e,t)}function dn(e){const t=bt(),n=yt(),r=mt(),{release:i,environment:o=xt}=t&&t.getOptions()||{},{userAgent:s}=$.navigator||{},a=tt({release:i,environment:o,user:r.getUser()||n.getUser(),...s&&{userAgent:s},...e}),c=n.getSession();return c&&\"ok\"===c.status&&nt(c,{status:\"exited\"}),pn(),n.setSession(a),r.setSession(a),a}function pn(){const e=yt(),t=mt(),n=t.getSession()||e.getSession();n&&function(e,t){let n={};t?n={status:t}:\"ok\"===e.status&&(n={status:\"exited\"}),nt(e,n)}(n),hn(),e.setSession(),t.setSession()}function hn(){const e=yt(),t=mt(),n=bt(),r=t.getSession()||e.getSession();r&&n&&n.captureSession(r)}function fn(e=!1){e?pn():hn()}function vn(e,t,n){return t||`${function(e){return`${function(e){const t=e.protocol?`${e.protocol}:`:\"\",n=e.port?`:${e.port}`:\"\";return`${t}//${e.host}${n}${e.path?`/${e.path}`:\"\"}/api/`}(e)}${e.projectId}/envelope/`}(e)}?${function(e,t){const n={sentry_version:\"7\"};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}(e,n)}`}const gn=[];function mn(e,t){for(const n of t)n&&n.afterAllSetup&&n.afterAllSetup(e)}function yn(e,t,n){if(n[t.name])V&&Q.log(`Integration skipped because it was already installed: ${t.name}`);else{if(n[t.name]=t,-1===gn.indexOf(t.name)&&\"function\"==typeof t.setupOnce&&(t.setupOnce(),gn.push(t.name)),t.setup&&\"function\"==typeof t.setup&&t.setup(e),\"function\"==typeof t.preprocessEvent){const n=t.preprocessEvent.bind(t);e.on(\"preprocessEvent\",((t,r)=>n(t,r,e)))}if(\"function\"==typeof t.processEvent){const n=t.processEvent.bind(t),r=Object.assign(((t,r)=>n(t,r,e)),{id:t.name});e.addEventProcessor(r)}V&&Q.log(`Integration installed: ${t.name}`)}}class bn extends Error{constructor(e,t=\"warn\"){super(e),this.message=e,this.logLevel=t}}const _n=\"Not capturing exception because it's already been captured.\";class wn{constructor(e){if(this._options=e,this._integrations={},this._numProcessing=0,this._outcomes={},this._hooks={},this._eventProcessors=[],e.dsn?this._dsn=Bt(e.dsn):V&&Q.warn(\"No DSN provided, client will not send events.\"),this._dsn){const t=vn(this._dsn,e.tunnel,e._metadata?e._metadata.sdk:void 0);this._transport=e.transport({tunnel:this._options.tunnel,recordDroppedEvent:this.recordDroppedEvent.bind(this),...e.transportOptions,url:t})}const t=[\"enableTracing\",\"tracesSampleRate\",\"tracesSampler\"].find((t=>t in e&&null==e[t]));t&&G((()=>{console.warn(`[Sentry] Deprecation warning: \\`${t}\\` is set to undefined, which leads to tracing being enabled. In v9, a value of \\`undefined\\` will result in tracing being disabled.`)}))}captureException(e,t,n){const r=ze();if(Ke(e))return V&&Q.log(_n),r;const i={event_id:r,...t};return this._process(this.eventFromException(e,i).then((e=>this._captureEvent(e,i,n)))),i.event_id}captureMessage(e,t,n,r){const i={event_id:ze(),...n},o=_e(e)?e:String(e),s=we(e)?this.eventFromMessage(o,t,i):this.eventFromException(e,i);return this._process(s.then((e=>this._captureEvent(e,i,r)))),i.event_id}captureEvent(e,t,n){const r=ze();if(t&&t.originalException&&Ke(t.originalException))return V&&Q.log(_n),r;const i={event_id:r,...t},o=(e.sdkProcessingMetadata||{}).capturedSpanScope;return this._process(this._captureEvent(e,i,o||n)),i.event_id}captureSession(e){\"string\"!=typeof e.release?V&&Q.warn(\"Discarded session because of missing or non-string release\"):(this.sendSession(e),nt(e,{init:!1}))}getDsn(){return this._dsn}getOptions(){return this._options}getSdkMetadata(){return this._options._metadata}getTransport(){return this._transport}flush(e){const t=this._transport;return t?(this.emit(\"flush\"),this._isClientDoneProcessing(e).then((n=>t.flush(e).then((e=>n&&e))))):Xe(!0)}close(e){return this.flush(e).then((e=>(this.getOptions().enabled=!1,this.emit(\"close\"),e)))}getEventProcessors(){return this._eventProcessors}addEventProcessor(e){this._eventProcessors.push(e)}init(){(this._isEnabled()||this._options.integrations.some((({name:e})=>e.startsWith(\"Spotlight\"))))&&this._setupIntegrations()}getIntegrationByName(e){return this._integrations[e]}addIntegration(e){const t=this._integrations[e.name];yn(this,e,this._integrations),t||mn(this,[e])}sendEvent(e,t={}){this.emit(\"beforeSendEvent\",e,t);let n=Xt(e,this._dsn,this._options._metadata,this._options.tunnel);for(const e of t.attachments||[])n=qt(n,Gt(e));const r=this.sendEnvelope(n);r&&r.then((t=>this.emit(\"afterSendEvent\",e,t)),null)}sendSession(e){const t=function(e,t,n,r){const i=Yt(n);return $t({sent_at:(new Date).toISOString(),...i&&{sdk:i},...!!r&&t&&{dsn:Rt(t)}},[\"aggregates\"in e?[{type:\"sessions\"},e]:[{type:\"session\"},e.toJSON()]])}(e,this._dsn,this._options._metadata,this._options.tunnel);this.sendEnvelope(t)}recordDroppedEvent(e,t,n){if(this._options.sendClientReports){const r=\"number\"==typeof n?n:1,i=`${e}:${t}`;V&&Q.log(`Recording outcome: \"${i}\"${r>1?` (${r} times)`:\"\"}`),this._outcomes[i]=(this._outcomes[i]||0)+r}}on(e,t){const n=this._hooks[e]=this._hooks[e]||[];return n.push(t),()=>{const e=n.indexOf(t);e>-1&&n.splice(e,1)}}emit(e,...t){const n=this._hooks[e];n&&n.forEach((e=>e(...t)))}sendEnvelope(e){return this.emit(\"beforeEnvelope\",e),this._isEnabled()&&this._transport?this._transport.send(e).then(null,(e=>(V&&Q.error(\"Error while sending envelope:\",e),e))):(V&&Q.error(\"Transport disabled\"),Xe({}))}_setupIntegrations(){const{integrations:e}=this._options;this._integrations=function(e,t){const n={};return t.forEach((t=>{t&&yn(e,t,n)})),n}(this,e),mn(this,e)}_updateSessionFromEvent(e,t){let n=\"fatal\"===t.level,r=!1;const i=t.exception&&t.exception.values;if(i){r=!0;for(const e of i){const t=e.mechanism;if(t&&!1===t.handled){n=!0;break}}}const o=\"ok\"===e.status;(o&&0===e.errors||o&&n)&&(nt(e,{...n&&{status:\"crashed\"},errors:e.errors||Number(r||n)}),this.captureSession(e))}_isClientDoneProcessing(e){return new et((t=>{let n=0;const r=setInterval((()=>{0==this._numProcessing?(clearInterval(r),t(!0)):(n+=1,e&&n>=e&&(clearInterval(r),t(!1)))}),1)}))}_isEnabled(){return!1!==this.getOptions().enabled&&void 0!==this._transport}_prepareEvent(e,t,n=mt(),r=yt()){const i=this.getOptions(),o=Object.keys(this._integrations);return!t.integrations&&o.length>0&&(t.integrations=o),this.emit(\"preprocessEvent\",e,t),e.type||r.setLastEventId(e.event_id||t.event_id),an(i,e,t,n,this,r).then((e=>{if(null===e)return e;e.contexts={trace:_t(n),...e.contexts};const t=function(e,t){const n=t.getPropagationContext();return n.dsc||Lt(n.traceId,e)}(this,n);return e.sdkProcessingMetadata={dynamicSamplingContext:t,...e.sdkProcessingMetadata},e}))}_captureEvent(e,t={},n){return this._processEvent(e,t,n).then((e=>e.event_id),(e=>{V&&(e instanceof bn&&\"log\"===e.logLevel?Q.log(e.message):Q.warn(e))}))}_processEvent(e,t,n){const r=this.getOptions(),{sampleRate:i}=r,o=kn(e),s=Sn(e),a=e.type||\"error\",c=`before send for type \\`${a}\\``,l=void 0===i?void 0:function(e){if(\"boolean\"==typeof e)return Number(e);const t=\"string\"==typeof e?parseFloat(e):e;if(!(\"number\"!=typeof t||isNaN(t)||t<0||t>1))return t;V&&Q.warn(`[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(e)} of type ${JSON.stringify(typeof e)}.`)}(i);if(s&&\"number\"==typeof l&&Math.random()>l)return this.recordDroppedEvent(\"sample_rate\",\"error\",e),Ze(new bn(`Discarding event because it's not included in the random sample (sampling rate = ${i})`,\"log\"));const u=\"replay_event\"===a?\"replay\":a,d=(e.sdkProcessingMetadata||{}).capturedSpanIsolationScope;return this._prepareEvent(e,t,n,d).then((n=>{if(null===n)throw this.recordDroppedEvent(\"event_processor\",u,e),new bn(\"An event processor returned `null`, will not send event.\",\"log\");if(t.data&&!0===t.data.__sentry__)return n;const i=function(e,t,n,r){const{beforeSend:i,beforeSendTransaction:o,beforeSendSpan:s}=t;if(Sn(n)&&i)return i(n,r);if(kn(n)){if(n.spans&&s){const t=[];for(const r of n.spans){const n=s(r);n?t.push(n):(It(),e.recordDroppedEvent(\"before_send\",\"span\"))}n.spans=t}if(o){if(n.spans){const e=n.spans.length;n.sdkProcessingMetadata={...n.sdkProcessingMetadata,spanCountBeforeProcessing:e}}return o(n,r)}}return n}(this,r,n,t);return function(e,t){const n=`${t} must return \\`null\\` or a valid event.`;if(Me(e))return e.then((e=>{if(!Se(e)&&null!==e)throw new bn(n);return e}),(e=>{throw new bn(`${t} rejected with ${e}`)}));if(!Se(e)&&null!==e)throw new bn(n);return e}(i,c)})).then((r=>{if(null===r){if(this.recordDroppedEvent(\"before_send\",u,e),o){const t=1+(e.spans||[]).length;this.recordDroppedEvent(\"before_send\",\"span\",t)}throw new bn(`${c} returned \\`null\\`, will not send event.`,\"log\")}const i=n&&n.getSession();if(!o&&i&&this._updateSessionFromEvent(i,r),o){const e=(r.sdkProcessingMetadata&&r.sdkProcessingMetadata.spanCountBeforeProcessing||0)-(r.spans?r.spans.length:0);e>0&&this.recordDroppedEvent(\"before_send\",\"span\",e)}const s=r.transaction_info;if(o&&s&&r.transaction!==e.transaction){const e=\"custom\";r.transaction_info={...s,source:e}}return this.sendEvent(r,t),r})).then(null,(e=>{if(e instanceof bn)throw e;throw this.captureException(e,{data:{__sentry__:!0},originalException:e}),new bn(`Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${e}`)}))}_process(e){this._numProcessing++,e.then((e=>(this._numProcessing--,e)),(e=>(this._numProcessing--,e)))}_clearOutcomes(){const e=this._outcomes;return this._outcomes={},Object.entries(e).map((([e,t])=>{const[n,r]=e.split(\":\");return{reason:n,category:r,quantity:t}}))}_flushOutcomes(){V&&Q.log(\"Flushing outcomes...\");const e=this._clearOutcomes();if(0===e.length)return void(V&&Q.log(\"No outcomes to send\"));if(!this._dsn)return void(V&&Q.log(\"No dsn provided, will not send outcomes\"));V&&Q.log(\"Sending outcomes:\",e);const t=(n=e,$t((r=this._options.tunnel&&Rt(this._dsn))?{dsn:r}:{},[[{type:\"client_report\"},{timestamp:i||$e(),discarded_events:n}]]));var n,r,i;this.sendEnvelope(t)}}function Sn(e){return void 0===e.type}function kn(e){return\"transaction\"===e.type}function Mn(e){const t=[];function n(e){return t.splice(t.indexOf(e),1)[0]||Promise.resolve(void 0)}return{$:t,add:function(r){if(!(void 0===e||t.length<e))return Ze(new bn(\"Not adding Promise because buffer limit was reached.\"));const i=r();return-1===t.indexOf(i)&&t.push(i),i.then((()=>n(i))).then(null,(()=>n(i).then(null,(()=>{})))),i},drain:function(e){return new et(((n,r)=>{let i=t.length;if(!i)return n(!0);const o=setTimeout((()=>{e&&e>0&&n(!1)}),e);t.forEach((e=>{Xe(e).then((()=>{--i||(clearTimeout(o),n(!0))}),r)}))}))}}}function Cn(e,{statusCode:t,headers:n},r=Date.now()){const i={...e},o=n&&n[\"x-sentry-rate-limits\"],s=n&&n[\"retry-after\"];if(o)for(const e of o.trim().split(\",\")){const[t,n,,,o]=e.split(\":\",5),s=parseInt(t,10),a=1e3*(isNaN(s)?60:s);if(n)for(const e of n.split(\";\"))\"metric_bucket\"===e&&o&&!o.split(\";\").includes(\"custom\")||(i[e]=r+a);else i.all=r+a}else s?i.all=r+function(e,t=Date.now()){const n=parseInt(`${e}`,10);if(!isNaN(n))return 1e3*n;const r=Date.parse(`${e}`);return isNaN(r)?6e4:r-t}(s,r):429===t&&(i.all=r+6e4);return i}function En(e,t,n=Mn(e.bufferSize||64)){let r={};return{send:function(i){const o=[];if(zt(i,((t,n)=>{const i=Kt(n);if(function(e,t,n=Date.now()){return function(e,t){return e[t]||e.all||0}(e,t)>n}(r,i)){const r=Tn(t,n);e.recordDroppedEvent(\"ratelimit_backoff\",i,r)}else o.push(t)})),0===o.length)return Xe({});const s=$t(i[0],o),a=t=>{zt(s,((n,r)=>{const i=Tn(n,r);e.recordDroppedEvent(t,Kt(r),i)}))};return n.add((()=>t({body:Ht(s)}).then((e=>(void 0!==e.statusCode&&(e.statusCode<200||e.statusCode>=300)&&V&&Q.warn(`Sentry responded with status code ${e.statusCode} to sent event.`),r=Cn(r,e),e)),(e=>{throw a(\"network_error\"),e})))).then((e=>e),(e=>{if(e instanceof bn)return V&&Q.error(\"Skipped sending event because buffer is full.\"),a(\"queue_overflow\"),Xe({});throw e}))},flush:e=>n.drain(e)}}function Tn(e,t){if(\"event\"===t||\"transaction\"===t)return Array.isArray(e)?e[1]:void 0}const On=100;function Pn(e,t){const n=bt(),r=yt();if(!n)return;const{beforeBreadcrumb:i=null,maxBreadcrumbs:o=On}=n.getOptions();if(o<=0)return;const s={timestamp:$e(),...e},a=i?G((()=>i(s,t))):s;null!==a&&(n.emit&&n.emit(\"beforeAddBreadcrumb\",a,t),r.addBreadcrumb(a,o))}let An;const jn=new WeakMap,In=()=>({name:\"FunctionToString\",setupOnce(){An=Function.prototype.toString;try{Function.prototype.toString=function(...e){const t=Re(this),n=jn.has(bt())&&void 0!==t?t:this;return An.apply(n,e)}}catch(e){}},setup(e){jn.set(e,!0)}}),xn=[/^Script error\\.?$/,/^Javascript error: Script error\\.? on line 0$/,/^ResizeObserver loop completed with undelivered notifications.$/,/^Cannot redefine property: googletag$/,\"undefined is not an object (evaluating 'a.L')\",'can\\'t redefine non-configurable property \"solana\"',\"vv().getRestrictions is not a function. (In 'vv().getRestrictions(1,a)', 'vv().getRestrictions' is undefined)\",\"Can't find variable: _AutofillCallbackHandler\",/^Non-Error promise rejection captured with value: Object Not Found Matching Id:\\d+, MethodName:simulateEvent, ParamCount:\\d+$/],Ln=(e={})=>({name:\"InboundFilters\",processEvent(t,n,r){const i=r.getOptions(),o=function(e={},t={}){return{allowUrls:[...e.allowUrls||[],...t.allowUrls||[]],denyUrls:[...e.denyUrls||[],...t.denyUrls||[]],ignoreErrors:[...e.ignoreErrors||[],...t.ignoreErrors||[],...e.disableErrorDefaults?[]:xn],ignoreTransactions:[...e.ignoreTransactions||[],...t.ignoreTransactions||[]],ignoreInternal:void 0===e.ignoreInternal||e.ignoreInternal}}(e,i);return function(e,t){if(t.ignoreInternal&&function(e){try{return\"SentryError\"===e.exception.values[0].type}catch(e){}return!1}(e))return V&&Q.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${He(e)}`),!0;if(function(e,t){if(e.type||!t||!t.length)return!1;return function(e){const t=[];e.message&&t.push(e.message);let n;try{n=e.exception.values[e.exception.values.length-1]}catch(e){}n&&n.value&&(t.push(n.value),n.type&&t.push(`${n.type}: ${n.value}`));return t}(e).some((e=>xe(e,t)))}(e,t.ignoreErrors))return V&&Q.warn(`Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${He(e)}`),!0;if(function(e){if(e.type)return!1;if(!e.exception||!e.exception.values||0===e.exception.values.length)return!1;return!e.message&&!e.exception.values.some((e=>e.stacktrace||e.type&&\"Error\"!==e.type||e.value))}(e))return V&&Q.warn(`Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${He(e)}`),!0;if(function(e,t){if(\"transaction\"!==e.type||!t||!t.length)return!1;const n=e.transaction;return!!n&&xe(n,t)}(e,t.ignoreTransactions))return V&&Q.warn(`Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${He(e)}`),!0;if(function(e,t){if(!t||!t.length)return!1;const n=Dn(e);return!!n&&xe(n,t)}(e,t.denyUrls))return V&&Q.warn(`Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${He(e)}.\\nUrl: ${Dn(e)}`),!0;if(!function(e,t){if(!t||!t.length)return!0;const n=Dn(e);return!n||xe(n,t)}(e,t.allowUrls))return V&&Q.warn(`Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${He(e)}.\\nUrl: ${Dn(e)}`),!0;return!1}(t,o)?null:t}});function Dn(e){try{let t;try{t=e.exception.values[0].stacktrace.frames}catch(e){}return t?function(e=[]){for(let t=e.length-1;t>=0;t--){const n=e[t];if(n&&\"<anonymous>\"!==n.filename&&\"[native code]\"!==n.filename)return n.filename||null}return null}(t):null}catch(t){return V&&Q.error(`Cannot extract url for event ${He(e)}`),null}}function Nn(e,t,n=250,r,i,o,s){if(!(o.exception&&o.exception.values&&s&&Ce(s.originalException,Error)))return;const a=o.exception.values.length>0?o.exception.values[o.exception.values.length-1]:void 0;var c,l;a&&(o.exception.values=(c=Rn(e,t,i,s.originalException,r,o.exception.values,a,0),l=n,c.map((e=>(e.value&&(e.value=Ae(e.value,l)),e)))))}function Rn(e,t,n,r,i,o,s,a){if(o.length>=n+1)return o;let c=[...o];if(Ce(r[i],Error)){Fn(s,a);const o=e(t,r[i]),l=c.length;Bn(o,i,l,a),c=Rn(e,t,n,r[i],i,[o,...c],o,l)}return Array.isArray(r.errors)&&r.errors.forEach(((r,o)=>{if(Ce(r,Error)){Fn(s,a);const l=e(t,r),u=c.length;Bn(l,`errors[${o}]`,u,a),c=Rn(e,t,n,r,i,[l,...c],l,u)}})),c}function Fn(e,t){e.mechanism=e.mechanism||{type:\"generic\",handled:!0},e.mechanism={...e.mechanism,...\"AggregateError\"===e.type&&{is_exception_group:!0},exception_id:t}}function Bn(e,t,n,r){e.mechanism=e.mechanism||{type:\"generic\",handled:!0},e.mechanism={...e.mechanism,type:\"chained\",source:t,exception_id:n,parent_id:r}}function Un(e){if(!e)return{};const t=e.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);if(!t)return{};const n=t[6]||\"\",r=t[8]||\"\";return{host:t[4],path:t[5],protocol:t[2],search:n,hash:r,relative:t[5]+n+r}}function Vn(){\"console\"in $&&W.forEach((function(e){e in $.console&&Le($.console,e,(function(t){return H[e]=t,function(...t){ae(\"console\",{args:t,level:e});const n=H[e];n&&n.apply($.console,t)}}))}))}function Jn(e){return\"warn\"===e?\"warning\":[\"fatal\",\"error\",\"warning\",\"log\",\"info\",\"debug\"].includes(e)?e:\"log\"}const $n=()=>{let e;return{name:\"Dedupe\",processEvent(t){if(t.type)return t;try{if(function(e,t){if(!t)return!1;if(function(e,t){const n=e.message,r=t.message;if(!n&&!r)return!1;if(n&&!r||!n&&r)return!1;if(n!==r)return!1;if(!zn(e,t))return!1;if(!qn(e,t))return!1;return!0}(e,t))return!0;if(function(e,t){const n=Wn(t),r=Wn(e);if(!n||!r)return!1;if(n.type!==r.type||n.value!==r.value)return!1;if(!zn(e,t))return!1;if(!qn(e,t))return!1;return!0}(e,t))return!0;return!1}(t,e))return V&&Q.warn(\"Event dropped due to being a duplicate of previously captured event.\"),null}catch(e){}return e=t}}};function qn(e,t){let n=ne(e),r=ne(t);if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;if(r.length!==n.length)return!1;for(let e=0;e<r.length;e++){const t=r[e],i=n[e];if(t.filename!==i.filename||t.lineno!==i.lineno||t.colno!==i.colno||t.function!==i.function)return!1}return!0}function zn(e,t){let n=e.fingerprint,r=t.fingerprint;if(!n&&!r)return!0;if(n&&!r||!n&&r)return!1;try{return!(n.join(\"\")!==r.join(\"\"))}catch(e){return!1}}function Wn(e){return e.exception&&e.exception.values&&e.exception.values[0]}function Hn(e){return void 0===e?void 0:e>=400&&e<500?\"warning\":e>=500?\"error\":void 0}const Gn=$;function Qn(e){return e&&/^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(e.toString())}function Kn(){if(\"string\"==typeof EdgeRuntime)return!0;if(!function(){if(!(\"fetch\"in Gn))return!1;try{return new Headers,new Request(\"http://www.example.com\"),new Response,!0}catch(e){return!1}}())return!1;if(Qn(Gn.fetch))return!0;let e=!1;const t=Gn.document;if(t&&\"function\"==typeof t.createElement)try{const n=t.createElement(\"iframe\");n.hidden=!0,t.head.appendChild(n),n.contentWindow&&n.contentWindow.fetch&&(e=Qn(n.contentWindow.fetch)),t.head.removeChild(n)}catch(e){z&&Q.warn(\"Could not create sandbox iframe for pure fetch check, bailing to window.fetch: \",e)}return e}function Yn(e,t){const n=\"fetch\";oe(n,e),se(n,(()=>function(e,t=!1){if(t&&!Kn())return;Le($,\"fetch\",(function(t){return function(...n){const r=new Error,{method:i,url:o}=function(e){if(0===e.length)return{method:\"GET\",url:\"\"};if(2===e.length){const[t,n]=e;return{url:Zn(t),method:Xn(n,\"method\")?String(n.method).toUpperCase():\"GET\"}}const t=e[0];return{url:Zn(t),method:Xn(t,\"method\")?String(t.method).toUpperCase():\"GET\"}}(n),s={args:n,fetchData:{method:i,url:o},startTimestamp:1e3*qe(),virtualError:r};return e||ae(\"fetch\",{...s}),t.apply($,n).then((async t=>(e?e(t):ae(\"fetch\",{...s,endTimestamp:1e3*qe(),response:t}),t)),(e=>{throw ae(\"fetch\",{...s,endTimestamp:1e3*qe(),error:e}),ve(e)&&void 0===e.stack&&(e.stack=r.stack,De(e,\"framesToPop\",1)),e}))}}))}(void 0,t)))}function Xn(e,t){return!!e&&\"object\"==typeof e&&!!e[t]}function Zn(e){return\"string\"==typeof e?e:e?Xn(e,\"url\")?e.url:e.toString?e.toString():\"\":\"\"}const er=$;const tr=$;let nr=0;function rr(){return nr>0}function ir(e,t={}){if(!function(e){return\"function\"==typeof e}(e))return e;try{const t=e.__sentry_wrapped__;if(t)return\"function\"==typeof t?t:e;if(Re(e))return e}catch(t){return e}const n=function(...n){try{const r=n.map((e=>ir(e,t)));return e.apply(this,r)}catch(e){throw nr++,setTimeout((()=>{nr--})),function(...e){const t=gt(pe());if(2===e.length){const[n,r]=e;return n?t.withSetScope(n,r):t.withScope(r)}t.withScope(e[0])}((r=>{var i,o;r.addEventProcessor((e=>(t.mechanism&&(Ge(e,void 0,void 0),Qe(e,t.mechanism)),e.extra={...e.extra,arguments:n},e))),i=e,mt().captureException(i,cn(o))})),e}};try{for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])}catch(e){}Ne(n,e),De(e,\"__sentry_wrapped__\",n);try{Object.getOwnPropertyDescriptor(n,\"name\").configurable&&Object.defineProperty(n,\"name\",{get:()=>e.name})}catch(e){}return n}const or=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__;function sr(e,t){const n=lr(e,t),r={type:pr(t),value:hr(t)};return n.length&&(r.stacktrace={frames:n}),void 0===r.type&&\"\"===r.value&&(r.value=\"Unrecoverable error caught\"),r}function ar(e,t,n,r){const i=bt(),o=i&&i.getOptions().normalizeDepth,s=function(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const n=e[t];if(n instanceof Error)return n}return}(t),a={__serialized__:Vt(t,o)};if(s)return{exception:{values:[sr(e,s)]},extra:a};const c={exception:{values:[{type:ke(t)?t.constructor.name:r?\"UnhandledRejection\":\"Error\",value:gr(t,{isUnhandledRejection:r})}]},extra:a};if(n){const t=lr(e,n);t.length&&(c.exception.values[0].stacktrace={frames:t})}return c}function cr(e,t){return{exception:{values:[sr(e,t)]}}}function lr(e,t){const n=t.stacktrace||t.stack||\"\",r=function(e){if(e&&ur.test(e.message))return 1;return 0}(t),i=function(e){if(\"number\"==typeof e.framesToPop)return e.framesToPop;return 0}(t);try{return e(n,r,i)}catch(e){}return[]}const ur=/Minified React error #\\d+;/i;function dr(e){return\"undefined\"!=typeof WebAssembly&&void 0!==WebAssembly.Exception&&e instanceof WebAssembly.Exception}function pr(e){const t=e&&e.name;if(!t&&dr(e)){return e.message&&Array.isArray(e.message)&&2==e.message.length?e.message[0]:\"WebAssembly.Exception\"}return t}function hr(e){const t=e&&e.message;return t?t.error&&\"string\"==typeof t.error.message?t.error.message:dr(e)&&Array.isArray(e.message)&&2==e.message.length?e.message[1]:t:\"No error message\"}function fr(e,t,n,r,i){let o;if(me(t)&&t.error){return cr(e,t.error)}if(ye(t)||ge(t,\"DOMException\")){const i=t;if(\"stack\"in t)o=cr(e,t);else{const t=i.name||(ye(i)?\"DOMError\":\"DOMException\"),s=i.message?`${t}: ${i.message}`:t;o=vr(e,s,n,r),Ge(o,s)}return\"code\"in i&&(o.tags={...o.tags,\"DOMException.code\":`${i.code}`}),o}if(ve(t))return cr(e,t);if(Se(t)||ke(t)){return o=ar(e,t,n,i),Qe(o,{synthetic:!0}),o}return o=vr(e,t,n,r),Ge(o,`${t}`,void 0),Qe(o,{synthetic:!0}),o}function vr(e,t,n,r){const i={};if(r&&n){const r=lr(e,n);r.length&&(i.exception={values:[{value:t,stacktrace:{frames:r}}]}),Qe(i,{synthetic:!0})}if(_e(t)){const{__sentry_template_string__:e,__sentry_template_values__:n}=t;return i.logentry={message:e,params:n},i}return i.message=t,i}function gr(e,{isUnhandledRejection:t}){const n=function(e,t=40){const n=Object.keys(Fe(e));n.sort();const r=n[0];if(!r)return\"[object has no keys]\";if(r.length>=t)return Ae(r,t);for(let e=n.length;e>0;e--){const r=n.slice(0,e).join(\", \");if(!(r.length>t))return e===n.length?r:Ae(r,t)}return\"\"}(e),r=t?\"promise rejection\":\"exception\";if(me(e))return`Event \\`ErrorEvent\\` captured as ${r} with message \\`${e.message}\\``;if(ke(e)){return`Event \\`${function(e){try{const t=Object.getPrototypeOf(e);return t?t.constructor.name:void 0}catch(e){}}(e)}\\` (type=${e.type}) captured as ${r}`}return`Object captured as ${r} with keys: ${n}`}class mr extends wn{constructor(e){const t={parentSpanIsAlwaysRootSpan:!0,...e};!function(e,t,n=[t],r=\"npm\"){const i=e._metadata||{};i.sdk||(i.sdk={name:`sentry.javascript.${t}`,packages:n.map((e=>({name:`${r}:@sentry/${e}`,version:J}))),version:J}),e._metadata=i}(t,\"browser\",[\"browser\"],tr.SENTRY_SDK_SOURCE||\"npm\"),super(t),t.sendClientReports&&tr.document&&tr.document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===tr.document.visibilityState&&this._flushOutcomes()}))}eventFromException(e,t){return function(e,t,n,r){const i=fr(e,t,n&&n.syntheticException||void 0,r);return Qe(i),i.level=\"error\",n&&n.event_id&&(i.event_id=n.event_id),Xe(i)}(this._options.stackParser,e,t,this._options.attachStacktrace)}eventFromMessage(e,t=\"info\",n){return function(e,t,n=\"info\",r,i){const o=vr(e,t,r&&r.syntheticException||void 0,i);return o.level=n,r&&r.event_id&&(o.event_id=r.event_id),Xe(o)}(this._options.stackParser,e,t,n,this._options.attachStacktrace)}captureUserFeedback(e){if(!this._isEnabled())return void(or&&Q.warn(\"SDK not enabled, will not capture user feedback.\"));const t=function(e,{metadata:t,tunnel:n,dsn:r}){const i={event_id:e.event_id,sent_at:(new Date).toISOString(),...t&&t.sdk&&{sdk:{name:t.sdk.name,version:t.sdk.version}},...!!n&&!!r&&{dsn:Rt(r)}},o=function(e){return[{type:\"user_report\"},e]}(e);return $t(i,[o])}(e,{metadata:this.getSdkMetadata(),dsn:this.getDsn(),tunnel:this.getOptions().tunnel});this.sendEnvelope(t)}_prepareEvent(e,t,n){return e.platform=e.platform||\"javascript\",super._prepareEvent(e,t,n)}}const yr=\"undefined\"==typeof __SENTRY_DEBUG__||__SENTRY_DEBUG__,br=$;let _r,wr,Sr,kr;function Mr(){if(!br.document)return;const e=ae.bind(null,\"dom\"),t=Cr(e,!0);br.document.addEventListener(\"click\",t,!1),br.document.addEventListener(\"keypress\",t,!1),[\"EventTarget\",\"Node\"].forEach((t=>{const n=br[t],r=n&&n.prototype;r&&r.hasOwnProperty&&r.hasOwnProperty(\"addEventListener\")&&(Le(r,\"addEventListener\",(function(t){return function(n,r,i){if(\"click\"===n||\"keypress\"==n)try{const r=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},o=r[n]=r[n]||{refCount:0};if(!o.handler){const r=Cr(e);o.handler=r,t.call(this,n,r,i)}o.refCount++}catch(e){}return t.call(this,n,r,i)}})),Le(r,\"removeEventListener\",(function(e){return function(t,n,r){if(\"click\"===t||\"keypress\"==t)try{const n=this.__sentry_instrumentation_handlers__||{},i=n[t];i&&(i.refCount--,i.refCount<=0&&(e.call(this,t,i.handler,r),i.handler=void 0,delete n[t]),0===Object.keys(n).length&&delete this.__sentry_instrumentation_handlers__)}catch(e){}return e.call(this,t,n,r)}})))}))}function Cr(e,t=!1){return n=>{if(!n||n._sentryCaptured)return;const r=function(e){try{return e.target}catch(e){return null}}(n);if(function(e,t){return\"keypress\"===e&&(!t||!t.tagName||\"INPUT\"!==t.tagName&&\"TEXTAREA\"!==t.tagName&&!t.isContentEditable)}(n.type,r))return;De(n,\"_sentryCaptured\",!0),r&&!r._sentryId&&De(r,\"_sentryId\",ze());const i=\"keypress\"===n.type?\"input\":n.type;if(!function(e){if(e.type!==wr)return!1;try{if(!e.target||e.target._sentryId!==Sr)return!1}catch(e){}return!0}(n)){e({event:n,name:i,global:t}),wr=n.type,Sr=r?r._sentryId:void 0}clearTimeout(_r),_r=br.setTimeout((()=>{Sr=void 0,wr=void 0}),1e3)}}function Er(e){const t=\"history\";oe(t,e),se(t,Tr)}function Tr(){if(!function(){const e=er.chrome,t=e&&e.app&&e.app.runtime,n=\"history\"in er&&!!er.history.pushState&&!!er.history.replaceState;return!t&&n}())return;const e=br.onpopstate;function t(e){return function(...t){const n=t.length>2?t[2]:void 0;if(n){const e=kr,t=String(n);kr=t;ae(\"history\",{from:e,to:t})}return e.apply(this,t)}}br.onpopstate=function(...t){const n=br.location.href,r=kr;kr=n;if(ae(\"history\",{from:r,to:n}),e)try{return e.apply(this,t)}catch(e){}},Le(br.history,\"pushState\",t),Le(br.history,\"replaceState\",t)}const Or={};function Pr(e){Or[e]=void 0}const Ar=\"__sentry_xhr_v3__\";function jr(){if(!br.XMLHttpRequest)return;const e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(e,t,n){const r=new Error,i=1e3*qe(),o=be(n[0])?n[0].toUpperCase():void 0,s=function(e){if(be(e))return e;try{return e.toString()}catch(e){}return}(n[1]);if(!o||!s)return e.apply(t,n);t[Ar]={method:o,url:s,request_headers:{}},\"POST\"===o&&s.match(/sentry_key/)&&(t.__sentry_own_request__=!0);const a=()=>{const e=t[Ar];if(e&&4===t.readyState){try{e.status_code=t.status}catch(e){}ae(\"xhr\",{endTimestamp:1e3*qe(),startTimestamp:i,xhr:t,virtualError:r})}};return\"onreadystatechange\"in t&&\"function\"==typeof t.onreadystatechange?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply:(e,t,n)=>(a(),e.apply(t,n))}):t.addEventListener(\"readystatechange\",a),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(e,t,n){const[r,i]=n,o=t[Ar];return o&&be(r)&&be(i)&&(o.request_headers[r.toLowerCase()]=i),e.apply(t,n)}}),e.apply(t,n)}}),e.send=new Proxy(e.send,{apply(e,t,n){const r=t[Ar];if(!r)return e.apply(t,n);void 0!==n[0]&&(r.body=n[0]);return ae(\"xhr\",{startTimestamp:1e3*qe(),xhr:t}),e.apply(t,n)}})}function Ir(e,t=function(e){const t=Or[e];if(t)return t;let n=br[e];if(Qn(n))return Or[e]=n.bind(br);const r=br.document;if(r&&\"function\"==typeof r.createElement)try{const t=r.createElement(\"iframe\");t.hidden=!0,r.head.appendChild(t);const i=t.contentWindow;i&&i[e]&&(n=i[e]),r.head.removeChild(t)}catch(t){yr&&Q.warn(`Could not create sandbox iframe for ${e} check, bailing to window.${e}: `,t)}return n?Or[e]=n.bind(br):n}(\"fetch\")){let n=0,r=0;return En(e,(function(i){const o=i.body.length;n+=o,r++;const s={body:i.body,method:\"POST\",referrerPolicy:\"origin\",headers:e.headers,keepalive:n<=6e4&&r<15,...e.fetchOptions};if(!t)return Pr(\"fetch\"),Ze(\"No fetch implementation available\");try{return t(e.url,s).then((e=>(n-=o,r--,{statusCode:e.status,headers:{\"x-sentry-rate-limits\":e.headers.get(\"X-Sentry-Rate-Limits\"),\"retry-after\":e.headers.get(\"Retry-After\")}})))}catch(e){return Pr(\"fetch\"),n-=o,r--,Ze(e)}}))}function xr(e,t,n,r){const i={filename:e,function:\"<anonymous>\"===t?K:t,in_app:!0};return void 0!==n&&(i.lineno=n),void 0!==r&&(i.colno=r),i}const Lr=/^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i,Dr=/^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,Nr=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,Rr=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i,Fr=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,Br=function(...e){const t=e.sort(((e,t)=>e[0]-t[0])).map((e=>e[1]));return(e,n=0,r=0)=>{const i=[],o=e.split(\"\\n\");for(let e=n;e<o.length;e++){const n=o[e];if(n.length>1024)continue;const s=Y.test(n)?n.replace(Y,\"$1\"):n;if(!s.match(/\\S*Error: /)){for(const e of t){const t=e(s);if(t){i.push(t);break}}if(i.length>=50+r)break}}return function(e){if(!e.length)return[];const t=Array.from(e);/sentryWrapped/.test(Z(t).function||\"\")&&t.pop();t.reverse(),X.test(Z(t).function||\"\")&&(t.pop(),X.test(Z(t).function||\"\")&&t.pop());return t.slice(0,50).map((e=>({...e,filename:e.filename||Z(t).filename,function:e.function||K})))}(i.slice(r))}}(...[[30,e=>{const t=Lr.exec(e);if(t){const[,e,n,r]=t;return xr(e,K,+n,+r)}const n=Dr.exec(e);if(n){if(n[2]&&0===n[2].indexOf(\"eval\")){const e=Nr.exec(n[2]);e&&(n[2]=e[1],n[3]=e[2],n[4]=e[3])}const[e,t]=Ur(n[1]||K,n[2]);return xr(t,e,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}}],[50,e=>{const t=Rr.exec(e);if(t){if(t[3]&&t[3].indexOf(\" > eval\")>-1){const e=Fr.exec(t[3]);e&&(t[1]=t[1]||\"eval\",t[3]=e[1],t[4]=e[2],t[5]=\"\")}let e=t[3],n=t[1]||K;return[n,e]=Ur(n,e),xr(e,n,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}]]),Ur=(e,t)=>{const n=-1!==e.indexOf(\"safari-extension\"),r=-1!==e.indexOf(\"safari-web-extension\");return n||r?[-1!==e.indexOf(\"@\")?e.split(\"@\")[0]:K,n?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},Vr=1024,Jr=(e={})=>{const t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:\"Breadcrumbs\",setup(e){var n;t.console&&function(e){const t=\"console\";oe(t,e),se(t,Vn)}(function(e){return function(t){if(bt()!==e)return;const n={category:\"console\",data:{arguments:t.args,logger:\"console\"},level:Jn(t.level),message:je(t.args,\" \")};if(\"assert\"===t.level){if(!1!==t.args[0])return;n.message=`Assertion failed: ${je(t.args.slice(1),\" \")||\"console.assert\"}`,n.data.arguments=t.args.slice(1)}Pn(n,{input:t.args,level:t.level})}}(e)),t.dom&&(n=function(e,t){return function(n){if(bt()!==e)return;let r,i,o=\"object\"==typeof t?t.serializeAttribute:void 0,s=\"object\"==typeof t&&\"number\"==typeof t.maxStringLength?t.maxStringLength:void 0;s&&s>Vr&&(or&&Q.warn(`\\`dom.maxStringLength\\` cannot exceed 1024, but a value of ${s} was configured. Sentry will use 1024 instead.`),s=Vr),\"string\"==typeof o&&(o=[o]);try{const e=n.event,t=function(e){return!!e&&!!e.target}(e)?e.target:e;r=Oe(t,{keyAttrs:o,maxStringLength:s}),i=function(e){if(!Te.HTMLElement)return null;let t=e;for(let e=0;e<5;e++){if(!t)return null;if(t instanceof HTMLElement){if(t.dataset.sentryComponent)return t.dataset.sentryComponent;if(t.dataset.sentryElement)return t.dataset.sentryElement}t=t.parentNode}return null}(t)}catch(e){r=\"<unknown>\"}if(0===r.length)return;const a={category:`ui.${n.name}`,message:r};i&&(a.data={\"ui.component_name\":i}),Pn(a,{event:n.event,name:n.name,global:n.global})}}(e,t.dom),oe(\"dom\",n),se(\"dom\",Mr)),t.xhr&&function(e){oe(\"xhr\",e),se(\"xhr\",jr)}(function(e){return function(t){if(bt()!==e)return;const{startTimestamp:n,endTimestamp:r}=t,i=t.xhr[Ar];if(!n||!r||!i)return;const{method:o,url:s,status_code:a,body:c}=i,l={method:o,url:s,status_code:a},u={xhr:t.xhr,input:c,startTimestamp:n,endTimestamp:r};Pn({category:\"xhr\",data:l,type:\"http\",level:Hn(a)},u)}}(e)),t.fetch&&Yn(function(e){return function(t){if(bt()!==e)return;const{startTimestamp:n,endTimestamp:r}=t;if(r&&(!t.fetchData.url.match(/sentry_key/)||\"POST\"!==t.fetchData.method))if(t.error){Pn({category:\"fetch\",data:t.fetchData,level:\"error\",type:\"http\"},{data:t.error,input:t.args,startTimestamp:n,endTimestamp:r})}else{const e=t.response,i={...t.fetchData,status_code:e&&e.status},o={input:t.args,response:e,startTimestamp:n,endTimestamp:r};Pn({category:\"fetch\",data:i,type:\"http\",level:Hn(i.status_code)},o)}}}(e)),t.history&&Er(function(e){return function(t){if(bt()!==e)return;let n=t.from,r=t.to;const i=Un(tr.location.href);let o=n?Un(n):void 0;const s=Un(r);o&&o.path||(o=i),i.protocol===s.protocol&&i.host===s.host&&(r=s.relative),i.protocol===o.protocol&&i.host===o.host&&(n=o.relative),Pn({category:\"navigation\",data:{from:n,to:r}})}}(e)),t.sentry&&e.on(\"beforeSendEvent\",function(e){return function(t){bt()===e&&Pn({category:\"sentry.\"+(\"transaction\"===t.type?\"transaction\":\"event\"),event_id:t.event_id,level:t.level,message:He(t)},{event:t})}}(e))}}};const $r=[\"EventTarget\",\"Window\",\"Node\",\"ApplicationCache\",\"AudioTrackList\",\"BroadcastChannel\",\"ChannelMergerNode\",\"CryptoOperation\",\"EventSource\",\"FileReader\",\"HTMLUnknownElement\",\"IDBDatabase\",\"IDBRequest\",\"IDBTransaction\",\"KeyOperation\",\"MediaController\",\"MessagePort\",\"ModalWindow\",\"Notification\",\"SVGElementInstance\",\"Screen\",\"SharedWorker\",\"TextTrack\",\"TextTrackCue\",\"TextTrackList\",\"WebSocket\",\"WebSocketWorker\",\"Worker\",\"XMLHttpRequest\",\"XMLHttpRequestEventTarget\",\"XMLHttpRequestUpload\"],qr=(e={})=>{const t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,...e};return{name:\"BrowserApiErrors\",setupOnce(){t.setTimeout&&Le(tr,\"setTimeout\",zr),t.setInterval&&Le(tr,\"setInterval\",zr),t.requestAnimationFrame&&Le(tr,\"requestAnimationFrame\",Wr),t.XMLHttpRequest&&\"XMLHttpRequest\"in tr&&Le(XMLHttpRequest.prototype,\"send\",Hr);const e=t.eventTarget;if(e){(Array.isArray(e)?e:$r).forEach(Gr)}}}};function zr(e){return function(...t){const n=t[0];return t[0]=ir(n,{mechanism:{data:{function:te(e)},handled:!1,type:\"instrument\"}}),e.apply(this,t)}}function Wr(e){return function(t){return e.apply(this,[ir(t,{mechanism:{data:{function:\"requestAnimationFrame\",handler:te(e)},handled:!1,type:\"instrument\"}})])}}function Hr(e){return function(...t){const n=this;return[\"onload\",\"onerror\",\"onprogress\",\"onreadystatechange\"].forEach((e=>{e in n&&\"function\"==typeof n[e]&&Le(n,e,(function(t){const n={mechanism:{data:{function:e,handler:te(t)},handled:!1,type:\"instrument\"}},r=Re(t);return r&&(n.mechanism.data.handler=te(r)),ir(t,n)}))})),e.apply(this,t)}}function Gr(e){const t=tr[e],n=t&&t.prototype;n&&n.hasOwnProperty&&n.hasOwnProperty(\"addEventListener\")&&(Le(n,\"addEventListener\",(function(t){return function(n,r,i){try{\"function\"==typeof r.handleEvent&&(r.handleEvent=ir(r.handleEvent,{mechanism:{data:{function:\"handleEvent\",handler:te(r),target:e},handled:!1,type:\"instrument\"}}))}catch(e){}return t.apply(this,[n,ir(r,{mechanism:{data:{function:\"addEventListener\",handler:te(r),target:e},handled:!1,type:\"instrument\"}}),i])}})),Le(n,\"removeEventListener\",(function(e){return function(t,n,r){try{const i=n.__sentry_wrapped__;i&&e.call(this,t,i,r)}catch(e){}return e.call(this,t,n,r)}})))}const Qr=()=>({name:\"BrowserSession\",setupOnce(){void 0!==tr.document?(dn({ignoreDuration:!0}),fn(),Er((({from:e,to:t})=>{void 0!==e&&e!==t&&(dn({ignoreDuration:!0}),fn())}))):or&&Q.warn(\"Using the `browserSessionIntegration` in non-browser environments is not supported.\")}}),Kr=(e={})=>{const t={onerror:!0,onunhandledrejection:!0,...e};return{name:\"GlobalHandlers\",setupOnce(){Error.stackTraceLimit=50},setup(e){t.onerror&&(!function(e){!function(e){const t=\"error\";oe(t,e),se(t,le)}((t=>{const{stackParser:n,attachStacktrace:r}=Xr();if(bt()!==e||rr())return;const{msg:i,url:o,line:s,column:a,error:c}=t,l=function(e,t,n,r){const i=e.exception=e.exception||{},o=i.values=i.values||[],s=o[0]=o[0]||{},a=s.stacktrace=s.stacktrace||{},c=a.frames=a.frames||[],l=r,u=n,d=be(t)&&t.length>0?t:function(){try{return Te.document.location.href}catch(e){return\"\"}}();0===c.length&&c.push({colno:l,filename:d,function:K,in_app:!0,lineno:u});return e}(fr(n,c||i,void 0,r,!1),o,s,a);l.level=\"error\",un(l,{originalException:c,mechanism:{handled:!1,type:\"onerror\"}})}))}(e),Yr(\"onerror\")),t.onunhandledrejection&&(!function(e){!function(e){const t=\"unhandledrejection\";oe(t,e),se(t,de)}((t=>{const{stackParser:n,attachStacktrace:r}=Xr();if(bt()!==e||rr())return;const i=function(e){if(we(e))return e;try{if(\"reason\"in e)return e.reason;if(\"detail\"in e&&\"reason\"in e.detail)return e.detail.reason}catch(e){}return e}(t),o=we(i)?{exception:{values:[{type:\"UnhandledRejection\",value:`Non-Error promise rejection captured with value: ${String(i)}`}]}}:fr(n,i,void 0,r,!0);o.level=\"error\",un(o,{originalException:i,mechanism:{handled:!1,type:\"onunhandledrejection\"}})}))}(e),Yr(\"onunhandledrejection\"))}}};function Yr(e){or&&Q.log(`Global Handler attached: ${e}`)}function Xr(){const e=bt();return e&&e.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}const Zr=()=>({name:\"HttpContext\",preprocessEvent(e){if(!tr.navigator&&!tr.location&&!tr.document)return;const t=e.request&&e.request.url||tr.location&&tr.location.href,{referrer:n}=tr.document||{},{userAgent:r}=tr.navigator||{},i={...e.request&&e.request.headers,...n&&{Referer:n},...r&&{\"User-Agent\":r}},o={...e.request,...t&&{url:t},headers:i};e.request=o}}),ei=(e={})=>{const t=e.limit||5,n=e.key||\"cause\";return{name:\"LinkedErrors\",preprocessEvent(e,r,i){const o=i.getOptions();Nn(sr,o.stackParser,o.maxValueLength,n,t,e,r)}}};var ti=\"new\",ni=\"loading\",ri=\"loaded\",ii=\"joining-meeting\",oi=\"joined-meeting\",si=\"left-meeting\",ai=\"error\",ci=\"blocked\",li=\"off\",ui=\"sendable\",di=\"loading\",pi=\"interrupted\",hi=\"playable\",fi=\"unknown\",vi=\"full\",gi=\"lobby\",mi=\"none\",yi=\"base\",bi=\"*\",_i=\"ejected\",wi=\"nbf-room\",Si=\"nbf-token\",ki=\"exp-room\",Mi=\"exp-token\",Ci=\"no-room\",Ei=\"meeting-full\",Ti=\"end-of-life\",Oi=\"not-allowed\",Pi=\"connection-error\",Ai=\"cam-in-use\",ji=\"mic-in-use\",Ii=\"cam-mic-in-use\",xi=\"permissions\",Li=\"undefined-mediadevices\",Di=\"not-found\",Ni=\"constraints\",Ri=\"unknown\",Fi=\"iframe-ready-for-launch-config\",Bi=\"iframe-launch-config\",Ui=\"theme-updated\",Vi=\"loading\",Ji=\"load-attempt-failed\",$i=\"loaded\",qi=\"started-camera\",zi=\"camera-error\",Wi=\"joining-meeting\",Hi=\"joined-meeting\",Gi=\"left-meeting\",Qi=\"participant-joined\",Ki=\"participant-updated\",Yi=\"participant-left\",Xi=\"participant-counts-updated\",Zi=\"access-state-updated\",eo=\"meeting-session-summary-updated\",to=\"meeting-session-state-updated\",no=\"meeting-session-data-error\",ro=\"waiting-participant-added\",io=\"waiting-participant-updated\",oo=\"waiting-participant-removed\",so=\"track-started\",ao=\"track-stopped\",co=\"transcription-started\",lo=\"transcription-stopped\",uo=\"transcription-error\",po=\"recording-started\",ho=\"recording-stopped\",fo=\"recording-stats\",vo=\"recording-error\",go=\"recording-upload-completed\",mo=\"recording-data\",yo=\"app-message\",bo=\"transcription-message\",_o=\"remote-media-player-started\",wo=\"remote-media-player-updated\",So=\"remote-media-player-stopped\",ko=\"local-screen-share-started\",Mo=\"local-screen-share-stopped\",Co=\"local-screen-share-canceled\",Eo=\"active-speaker-change\",To=\"active-speaker-mode-change\",Oo=\"network-quality-change\",Po=\"network-connection\",Ao=\"cpu-load-change\",jo=\"face-counts-updated\",Io=\"fullscreen\",xo=\"exited-fullscreen\",Lo=\"live-streaming-started\",Do=\"live-streaming-updated\",No=\"live-streaming-stopped\",Ro=\"live-streaming-error\",Fo=\"lang-updated\",Bo=\"receive-settings-updated\",Uo=\"input-settings-updated\",Vo=\"nonfatal-error\",Jo=\"error\",$o=4096,qo=102400,zo=\"iframe-call-message\",Wo=\"local-screen-start\",Ho=\"daily-method-update-live-streaming-endpoints\",Go=\"transmit-log\",Qo=\"daily-custom-track\",Ko={NONE:\"none\",BGBLUR:\"background-blur\",BGIMAGE:\"background-image\",FACE_DETECTION:\"face-detection\"},Yo={NONE:\"none\",NOISE_CANCELLATION:\"noise-cancellation\"},Xo={PLAY:\"play\",PAUSE:\"pause\"},Zo=[\"jpg\",\"png\",\"jpeg\"],es=\"add-endpoints\",ts=\"remove-endpoints\",ns=\"sip-call-transfer\";function rs(){return!is()&&\"undefined\"!=typeof window&&window.navigator&&window.navigator.userAgent?window.navigator.userAgent:\"\"}function is(){return\"undefined\"!=typeof navigator&&navigator.product&&\"ReactNative\"===navigator.product}function os(){return navigator&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function ss(){return!!(navigator&&navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)&&(function(e,t){if(!e||!t)return!0;switch(e){case\"Chrome\":return t.major>=75;case\"Safari\":return RTCRtpTransceiver.prototype.hasOwnProperty(\"currentDirection\")&&!(13===t.major&&0===t.minor&&0===t.point);case\"Firefox\":return t.major>=67}return!0}(ms(),ys())||is())}function as(){if(is())return!1;if(!document)return!1;var e=document.createElement(\"iframe\");return!!e.requestFullscreen||!!e.webkitRequestFullscreen}var cs=\"none\",ls=\"software\",us=\"hardware\";var ds=function(){try{var e,t=document.createElement(\"canvas\"),n=!1;(e=t.getContext(\"webgl2\",{failIfMajorPerformanceCaveat:!0}))||(n=!0,e=t.getContext(\"webgl2\"));var r=null!=e;return t.remove(),r?n?ls:us:cs}catch(e){return cs}}();function ps(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return!is()&&(ds!==cs&&(e?function(){if(gs())return!1;return[\"Chrome\",\"Firefox\"].includes(ms())}():function(){if(gs())return!1;var e=ms();if(\"Safari\"===e){var t=Ss();if(t.major<15||15===t.major&&t.minor<4)return!1}if(\"Chrome\"===e){return bs().major>=77}if(\"Firefox\"===e){return ks().major>=97}return[\"Chrome\",\"Firefox\",\"Safari\"].includes(e)}()))}function hs(){if(is())return!1;if(vs())return!1;if(\"undefined\"==typeof AudioWorkletNode)return!1;switch(ms()){case\"Chrome\":case\"Firefox\":return!0;case\"Safari\":var e=ys();return e.major>17||17===e.major&&e.minor>=4}return!1}function fs(){return os()&&\"undefined\"!=typeof MediaStreamTrack&&!function(){var e,t=ms();if(!rs())return!0;switch(t){case\"Chrome\":return(e=bs()).major&&e.major>0&&e.major<75;case\"Firefox\":return(e=ks()).major<91;case\"Safari\":return(e=Ss()).major<13||13===e.major&&e.minor<1;default:return!0}}()}function vs(){return rs().match(/Linux; Android/)}function gs(){var e,t=rs(),n=t.match(/Mac/)&&(!is()&&\"undefined\"!=typeof window&&null!==(e=window)&&void 0!==e&&null!==(e=e.navigator)&&void 0!==e&&e.maxTouchPoints?window.navigator.maxTouchPoints:0)>=5;return!!(t.match(/Mobi/)||t.match(/Android/)||n)||(!!rs().match(/DailyAnd\\//)||void 0)}function ms(){if(\"undefined\"!=typeof window){var e=rs();return _s()?\"Safari\":e.indexOf(\"Edge\")>-1?\"Edge\":e.match(/Chrome\\//)?\"Chrome\":e.indexOf(\"Safari\")>-1||ws()?\"Safari\":e.indexOf(\"Firefox\")>-1?\"Firefox\":e.indexOf(\"MSIE\")>-1||e.indexOf(\".NET\")>-1?\"IE\":\"Unknown Browser\"}}function ys(){switch(ms()){case\"Chrome\":return bs();case\"Safari\":return Ss();case\"Firefox\":return ks();case\"Edge\":return function(){var e=0,t=0;if(\"undefined\"!=typeof window){var n=rs().match(/Edge\\/(\\d+).(\\d+)/);if(n)try{e=parseInt(n[1]),t=parseInt(n[2])}catch(e){}}return{major:e,minor:t}}()}}function bs(){var e=0,t=0,n=0,r=0,i=!1;if(\"undefined\"!=typeof window){var o=rs(),s=o.match(/Chrome\\/(\\d+).(\\d+).(\\d+).(\\d+)/);if(s)try{e=parseInt(s[1]),t=parseInt(s[2]),n=parseInt(s[3]),r=parseInt(s[4]),i=o.indexOf(\"OPR/\")>-1}catch(e){}}return{major:e,minor:t,build:n,patch:r,opera:i}}function _s(){return!!rs().match(/iPad|iPhone|iPod/i)&&os()}function ws(){return rs().indexOf(\"AppleWebKit/605.1.15\")>-1}function Ss(){var e=0,t=0,n=0;if(\"undefined\"!=typeof window){var r=rs().match(/Version\\/(\\d+).(\\d+)(.(\\d+))?/);if(r)try{e=parseInt(r[1]),t=parseInt(r[2]),n=parseInt(r[4])}catch(e){}else(_s()||ws())&&(e=14,t=0,n=3)}return{major:e,minor:t,point:n}}function ks(){var e=0,t=0;if(\"undefined\"!=typeof window){var n=rs().match(/Firefox\\/(\\d+).(\\d+)/);if(n)try{e=parseInt(n[1]),t=parseInt(n[2])}catch(e){}}return{major:e,minor:t}}var Ms=function(){return o((function e(){t(this,e)}),[{key:\"addListenerForMessagesFromCallMachine\",value:function(e,t,n){R()}},{key:\"addListenerForMessagesFromDailyJs\",value:function(e,t,n){R()}},{key:\"sendMessageToCallMachine\",value:function(e,t,n,r){R()}},{key:\"sendMessageToDailyJs\",value:function(e,t){R()}},{key:\"removeListener\",value:function(e){R()}}])}();function Cs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Es(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cs(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cs(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ts(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ts=function(){return!!e})()}var Os=function(){function e(){var n,r,i,o;return t(this,e),r=this,i=a(i=e),(n=s(r,Ts()?Reflect.construct(i,o||[],a(r).constructor):i.apply(r,o)))._wrappedListeners={},n._messageCallbacks={},n}return l(e,Ms),o(e,[{key:\"addListenerForMessagesFromCallMachine\",value:function(e,t,n){var r=this,i=function(i){if(i.data&&\"iframe-call-message\"===i.data.what&&(!i.data.callClientId||i.data.callClientId===t)&&(!i.data.from||\"module\"!==i.data.from)){var o=Es({},i.data);if(delete o.from,o.callbackStamp&&r._messageCallbacks[o.callbackStamp]){var s=o.callbackStamp;r._messageCallbacks[s].call(n,o),delete r._messageCallbacks[s]}delete o.what,delete o.callbackStamp,e.call(n,o)}};this._wrappedListeners[e]=i,window.addEventListener(\"message\",i)}},{key:\"addListenerForMessagesFromDailyJs\",value:function(e,t,n){var r=function(r){var i;if(!(!r.data||r.data.what!==zo||!r.data.action||r.data.from&&\"module\"!==r.data.from||r.data.callClientId&&t&&r.data.callClientId!==t||null!=r&&null!==(i=r.data)&&void 0!==i&&i.callFrameId)){var o=r.data;e.call(n,o)}};this._wrappedListeners[e]=r,window.addEventListener(\"message\",r)}},{key:\"sendMessageToCallMachine\",value:function(e,t,n,r){if(!n)throw new Error(\"undefined callClientId. Are you trying to use a DailyCall instance previously destroyed?\");var i=Es({},e);if(i.what=zo,i.from=\"module\",i.callClientId=n,t){var o=N();this._messageCallbacks[o]=t,i.callbackStamp=o}var s=r?r.contentWindow:window,a=this._callMachineTargetOrigin(r);a&&s.postMessage(i,a)}},{key:\"sendMessageToDailyJs\",value:function(e,t){e.what=zo,e.callClientId=t,e.from=\"embedded\",window.postMessage(e,this._targetOriginFromWindowLocation())}},{key:\"removeListener\",value:function(e){var t=this._wrappedListeners[e];t&&(window.removeEventListener(\"message\",t),delete this._wrappedListeners[e])}},{key:\"forwardPackagedMessageToCallMachine\",value:function(e,t,n){var r=Es({},e);r.callClientId=n;var i=t?t.contentWindow:window,o=this._callMachineTargetOrigin(t);o&&i.postMessage(r,o)}},{key:\"addListenerForPackagedMessagesFromCallMachine\",value:function(e,t){var n=function(n){if(n.data&&\"iframe-call-message\"===n.data.what&&(!n.data.callClientId||n.data.callClientId===t)&&(!n.data.from||\"module\"!==n.data.from)){var r=n.data;e(r)}};return this._wrappedListeners[e]=n,window.addEventListener(\"message\",n),e}},{key:\"removeListenerForPackagedMessagesFromCallMachine\",value:function(e){var t=this._wrappedListeners[e];t&&(window.removeEventListener(\"message\",t),delete this._wrappedListeners[e])}},{key:\"_callMachineTargetOrigin\",value:function(e){return e?e.src?new URL(e.src).origin:void 0:this._targetOriginFromWindowLocation()}},{key:\"_targetOriginFromWindowLocation\",value:function(){return\"file:\"===window.location.protocol?\"*\":window.location.origin}}])}();function Ps(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function As(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(As=function(){return!!e})()}var js=function(){function e(){var n,r,i,o;return t(this,e),r=this,i=a(i=e),n=s(r,As()?Reflect.construct(i,o||[],a(r).constructor):i.apply(r,o)),global.callMachineToDailyJsEmitter=global.callMachineToDailyJsEmitter||new y.EventEmitter,global.dailyJsToCallMachineEmitter=global.dailyJsToCallMachineEmitter||new y.EventEmitter,n._wrappedListeners={},n._messageCallbacks={},n}return l(e,Ms),o(e,[{key:\"addListenerForMessagesFromCallMachine\",value:function(e,t,n){this._addListener(e,global.callMachineToDailyJsEmitter,t,n,\"received call machine message\")}},{key:\"addListenerForMessagesFromDailyJs\",value:function(e,t,n){this._addListener(e,global.dailyJsToCallMachineEmitter,t,n,\"received daily-js message\")}},{key:\"sendMessageToCallMachine\",value:function(e,t,n){this._sendMessage(e,global.dailyJsToCallMachineEmitter,n,t,\"sending message to call machine\")}},{key:\"sendMessageToDailyJs\",value:function(e,t){this._sendMessage(e,global.callMachineToDailyJsEmitter,t,null,\"sending message to daily-js\")}},{key:\"removeListener\",value:function(e){var t=this._wrappedListeners[e];t&&(global.callMachineToDailyJsEmitter.removeListener(\"message\",t),global.dailyJsToCallMachineEmitter.removeListener(\"message\",t),delete this._wrappedListeners[e])}},{key:\"_addListener\",value:function(e,t,n,r,i){var o=this,s=function(t){if(t.callClientId===n){if(t.callbackStamp&&o._messageCallbacks[t.callbackStamp]){var i=t.callbackStamp;o._messageCallbacks[i].call(r,t),delete o._messageCallbacks[i]}e.call(r,t)}};this._wrappedListeners[e]=s,t.addListener(\"message\",s)}},{key:\"_sendMessage\",value:function(e,t,n,r,i){var o=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ps(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ps(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e);if(o.callClientId=n,r){var s=N();this._messageCallbacks[s]=r,o.callbackStamp=s}t.emit(\"message\",o)}}])}(),Is=\"replace\",xs=\"shallow-merge\",Ls=[Is,xs];var Ds=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.data,i=n.mergeStrategy,o=void 0===i?Is:i;t(this,e),e._validateMergeStrategy(o),e._validateData(r,o),this.mergeStrategy=o,this.data=r}return o(e,[{key:\"isNoOp\",value:function(){return e.isNoOpUpdate(this.data,this.mergeStrategy)}}],[{key:\"isNoOpUpdate\",value:function(e,t){return 0===Object.keys(e).length&&t===xs}},{key:\"_validateMergeStrategy\",value:function(e){if(!Ls.includes(e))throw Error(\"Unrecognized mergeStrategy provided. Options are: [\".concat(Ls,\"]\"))}},{key:\"_validateData\",value:function(e,t){if(!function(e){if(null==e||\"object\"!==n(e))return!1;var t=Object.getPrototypeOf(e);return null==t||t===Object.prototype}(e))throw Error(\"Meeting session data must be a plain (map-like) object\");var r;try{if(r=JSON.stringify(e),t===Is){var i=JSON.parse(r);S(i,e)||console.warn(\"The meeting session data provided will be modified when serialized.\",i,e)}else if(t===xs)for(var o in e)if(Object.hasOwnProperty.call(e,o)&&void 0!==e[o]){var s=JSON.parse(JSON.stringify(e[o]));S(e[o],s)||console.warn(\"At least one key in the meeting session data provided will be modified when serialized.\",s,e[o])}}catch(e){throw Error(\"Meeting session data must be serializable to JSON: \".concat(e))}if(r.length>qo)throw Error(\"Meeting session data is too large (\".concat(r.length,\" characters). Maximum size suppported is \").concat(qo,\".\"))}}])}();function Ns(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ns=function(){return!!e})()}function Rs(e){var t=\"function\"==typeof Map?new Map:void 0;return Rs=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf(\"[native code]\")}catch(t){return\"function\"==typeof e}}(e))return e;if(\"function\"!=typeof e)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(Ns())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&c(i,n.prototype),i}(e,arguments,a(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),c(n,e)},Rs(e)}function Fs(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Fs=function(){return!!e})()}function Bs(e){var t,n=null===(t=window._daily)||void 0===t?void 0:t.pendings;if(n){var r=n.indexOf(e);-1!==r&&n.splice(r,1)}}var Us=function(){return o((function e(n){t(this,e),this._currentLoad=null,this._callClientId=n}),[{key:\"load\",value:function(){var e,t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0;if(this.loaded)return window._daily.instances[this._callClientId].callMachine.reset(),void r(!0);e=this._callClientId,window._daily.pendings.push(e),this._currentLoad&&this._currentLoad.cancel(),this._currentLoad=new Vs(n,(function(){r(!1)}),(function(e,n){n||Bs(t._callClientId),i(e,n)})),this._currentLoad.start()}},{key:\"cancel\",value:function(){this._currentLoad&&this._currentLoad.cancel(),Bs(this._callClientId)}},{key:\"loaded\",get:function(){return this._currentLoad&&this._currentLoad.succeeded}}])}(),Vs=function(){return o((function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0;t(this,e),this._attemptsRemaining=3,this._currentAttempt=null,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i}),[{key:\"start\",value:function(){var e=this;if(!this._currentAttempt){var t=function(n){e._currentAttempt.cancelled||(e._attemptsRemaining--,e._failureCallback(n,e._attemptsRemaining>0),e._attemptsRemaining<=0||setTimeout((function(){e._currentAttempt.cancelled||(e._currentAttempt=new qs(e._dailyConfig,e._successCallback,t),e._currentAttempt.start())}),3e3))};this._currentAttempt=new qs(this._dailyConfig,this._successCallback,t),this._currentAttempt.start()}}},{key:\"cancel\",value:function(){this._currentAttempt&&this._currentAttempt.cancel()}},{key:\"cancelled\",get:function(){return this._currentAttempt&&this._currentAttempt.cancelled}},{key:\"succeeded\",get:function(){return this._currentAttempt&&this._currentAttempt.succeeded}}])}(),Js=function(){function e(){return t(this,e),n=this,i=arguments,r=a(r=e),s(n,Fs()?Reflect.construct(r,i||[],a(n).constructor):r.apply(n,i));var n,r,i}return l(e,Rs(Error)),o(e)}(),$s=2e4,qs=function(){return o((function e(n,r,i){t(this,e),this._loadAttemptImpl=is()||!n.avoidEval?new zs(n,r,i):new Ws(n,r,i)}),[{key:\"start\",value:(e=p((function*(){return this._loadAttemptImpl.start()})),function(){return e.apply(this,arguments)})},{key:\"cancel\",value:function(){this._loadAttemptImpl.cancel()}},{key:\"cancelled\",get:function(){return this._loadAttemptImpl.cancelled}},{key:\"succeeded\",get:function(){return this._loadAttemptImpl.succeeded}}]);var e}(),zs=function(){return o((function e(n,r,i){t(this,e),this.cancelled=!1,this.succeeded=!1,this._networkTimedOut=!1,this._networkTimeout=null,this._iosCache=\"undefined\"!=typeof iOSCallObjectBundleCache&&iOSCallObjectBundleCache,this._refetchHeaders=null,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i}),[{key:\"start\",value:(i=p((function*(){var e=B(this._dailyConfig);!(yield this._tryLoadFromIOSCache(e))&&this._loadFromNetwork(e)})),function(){return i.apply(this,arguments)})},{key:\"cancel\",value:function(){clearTimeout(this._networkTimeout),this.cancelled=!0}},{key:\"_tryLoadFromIOSCache\",value:(r=p((function*(e){if(!this._iosCache)return!1;try{var t=yield this._iosCache.get(e);return!!this.cancelled||!!t&&(t.code?(Function('\"use strict\";'+t.code)(),this.succeeded=!0,this._successCallback(),!0):(this._refetchHeaders=t.refetchHeaders,!1))}catch(e){return!1}})),function(e){return r.apply(this,arguments)})},{key:\"_loadFromNetwork\",value:(n=p((function*(e){var t=this;this._networkTimeout=setTimeout((function(){t._networkTimedOut=!0,t._failureCallback({msg:\"Timed out (>\".concat($s,\" ms) when loading call object bundle \").concat(e),type:\"timeout\"})}),$s);try{var n=this._refetchHeaders?{headers:this._refetchHeaders}:{},r=yield fetch(e,n);if(clearTimeout(this._networkTimeout),this.cancelled||this._networkTimedOut)throw new Js;var i=yield this._getBundleCodeFromResponse(e,r);if(this.cancelled)throw new Js;Function('\"use strict\";'+i)(),this._iosCache&&this._iosCache.set(e,i,r.headers),this.succeeded=!0,this._successCallback()}catch(t){if(clearTimeout(this._networkTimeout),t instanceof Js||this.cancelled||this._networkTimedOut)return;this._failureCallback({msg:\"Failed to load call object bundle \".concat(e,\": \").concat(t),type:t.message})}})),function(e){return n.apply(this,arguments)})},{key:\"_getBundleCodeFromResponse\",value:(e=p((function*(e,t){if(t.ok)return yield t.text();if(this._iosCache&&304===t.status)return(yield this._iosCache.renew(e,t.headers)).code;throw new Error(\"Received \".concat(t.status,\" response\"))})),function(t,n){return e.apply(this,arguments)})}]);var e,n,r,i}(),Ws=function(){return o((function e(n,r,i){t(this,e),this.cancelled=!1,this.succeeded=!1,this._dailyConfig=n,this._successCallback=r,this._failureCallback=i,this._attemptId=N(),this._networkTimeout=null,this._scriptElement=null}),[{key:\"start\",value:function(){window._dailyCallMachineLoadWaitlist||(window._dailyCallMachineLoadWaitlist=new Set);var e=B(this._dailyConfig);\"object\"===(\"undefined\"==typeof document?\"undefined\":n(document))?this._startLoading(e):this._failureCallback({msg:\"Call object bundle must be loaded in a DOM/web context\",type:\"missing context\"})}},{key:\"cancel\",value:function(){this._stopLoading(),this.cancelled=!0}},{key:\"_startLoading\",value:function(e){var t=this;this._signUpForCallMachineLoadWaitlist(),this._networkTimeout=setTimeout((function(){t._stopLoading(),t._failureCallback({msg:\"Timed out (>\".concat($s,\" ms) when loading call object bundle \").concat(e),type:\"timeout\"})}),$s);var n=document.getElementsByTagName(\"head\")[0],r=document.createElement(\"script\");this._scriptElement=r,r.onload=function(){t._stopLoading(),t.succeeded=!0,t._successCallback()},r.onerror=function(e){t._stopLoading(),t._failureCallback({msg:\"Failed to load call object bundle \".concat(e.target.src),type:e.message})},r.src=e,n.appendChild(r)}},{key:\"_stopLoading\",value:function(){this._withdrawFromCallMachineLoadWaitlist(),clearTimeout(this._networkTimeout),this._scriptElement&&(this._scriptElement.onload=null,this._scriptElement.onerror=null)}},{key:\"_signUpForCallMachineLoadWaitlist\",value:function(){window._dailyCallMachineLoadWaitlist.add(this._attemptId)}},{key:\"_withdrawFromCallMachineLoadWaitlist\",value:function(){window._dailyCallMachineLoadWaitlist.delete(this._attemptId)}}])}(),Hs=function(e,t,n){return!0===Ks(e.local,t,n)},Gs=function(e,t,n){return e.local.streams&&e.local.streams[t]&&e.local.streams[t].stream&&e.local.streams[t].stream[\"get\".concat(\"video\"===n?\"Video\":\"Audio\",\"Tracks\")]()[0]},Qs=function(e,t,n,r){var i=Ys(e,t,n,r);return i&&i.pendingTrack},Ks=function(e,t,n){if(!e)return!1;var r=function(e){switch(e){case\"avatar\":return!0;case\"staged\":return e;default:return!!e}},i=e.public.subscribedTracks;return i&&i[t]?-1===[\"cam-audio\",\"cam-video\",\"screen-video\",\"screen-audio\",\"rmpAudio\",\"rmpVideo\"].indexOf(n)&&i[t].custom?[!0,\"staged\"].includes(i[t].custom)?r(i[t].custom):r(i[t].custom[n]):r(i[t][n]):!i||r(i.ALL)},Ys=function(e,t,n,r){var i=Object.values(e.streams||{}).filter((function(e){return e.participantId===t&&e.type===n&&e.pendingTrack&&e.pendingTrack.kind===r})).sort((function(e,t){return new Date(t.starttime)-new Date(e.starttime)}));return i&&i[0]},Xs=function(e,t){var n=e.local.public.customTracks;if(n&&n[t])return n[t].track};function Zs(e,t){for(var n=t.getState(),r=0,i=[\"cam\",\"screen\"];r<i.length;r++)for(var o=i[r],s=0,a=[\"video\",\"audio\"];s<a.length;s++){var c=a[s],l=\"cam\"===o?c:\"screen\".concat(c.charAt(0).toUpperCase()+c.slice(1)),u=e.tracks[l];if(u){var d=e.local?Gs(n,o,c):Qs(n,e.session_id,o,c);\"playable\"===u.state&&(u.track=d),u.persistentTrack=d}}}function ea(e,t){try{var n=t.getState();for(var r in e.tracks)if(!ta(r)){var i=e.tracks[r].kind;if(i){var o=e.tracks[r];if(o){var s=e.local?Xs(n,r):Qs(n,e.session_id,r,i);\"playable\"===o.state&&(e.tracks[r].track=s),o.persistentTrack=s}}else console.error(\"unknown type for custom track\")}}catch(e){console.error(e)}}function ta(e){return[\"video\",\"audio\",\"screenVideo\",\"screenAudio\"].includes(e)}function na(e,t,n){var r=n.getState();if(e.local){if(e.audio)try{e.audioTrack=r.local.streams.cam.stream.getAudioTracks()[0],e.audioTrack||(e.audio=!1)}catch(e){}if(e.video)try{e.videoTrack=r.local.streams.cam.stream.getVideoTracks()[0],e.videoTrack||(e.video=!1)}catch(e){}if(e.screen)try{e.screenVideoTrack=r.local.streams.screen.stream.getVideoTracks()[0],e.screenAudioTrack=r.local.streams.screen.stream.getAudioTracks()[0],e.screenVideoTrack||e.screenAudioTrack||(e.screen=!1)}catch(e){}}else{var i=!0;try{var o=r.participants[e.session_id];o&&o.public&&o.public.rtcType&&\"peer-to-peer\"===o.public.rtcType.impl&&o.private&&![\"connected\",\"completed\"].includes(o.private.peeringState)&&(i=!1)}catch(e){console.error(e)}if(!i)return e.audio=!1,e.audioTrack=!1,e.video=!1,e.videoTrack=!1,e.screen=!1,void(e.screenTrack=!1);try{r.streams;if(e.audio&&Hs(r,e.session_id,\"cam-audio\")){var s=Qs(r,e.session_id,\"cam\",\"audio\");s&&(t&&t.audioTrack&&t.audioTrack.id===s.id?e.audioTrack=s:s.muted||(e.audioTrack=s)),e.audioTrack||(e.audio=!1)}if(e.video&&Hs(r,e.session_id,\"cam-video\")){var a=Qs(r,e.session_id,\"cam\",\"video\");a&&(t&&t.videoTrack&&t.videoTrack.id===a.id?e.videoTrack=a:a.muted||(e.videoTrack=a)),e.videoTrack||(e.video=!1)}if(e.screen&&Hs(r,e.session_id,\"screen-audio\")){var c=Qs(r,e.session_id,\"screen\",\"audio\");c&&(t&&t.screenAudioTrack&&t.screenAudioTrack.id===c.id?e.screenAudioTrack=c:c.muted||(e.screenAudioTrack=c))}if(e.screen&&Hs(r,e.session_id,\"screen-video\")){var l=Qs(r,e.session_id,\"screen\",\"video\");l&&(t&&t.screenVideoTrack&&t.screenVideoTrack.id===l.id?e.screenVideoTrack=l:l.muted||(e.screenVideoTrack=l))}e.screenVideoTrack||e.screenAudioTrack||(e.screen=!1)}catch(e){console.error(\"unexpected error matching up tracks\",e)}}}function ra(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return ia(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ia(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function ia(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var oa=new Map,sa=null;function aa(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return ca(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ca(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function ca(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var la=new Map,ua=null;function da(e){ha()?function(e){oa.has(e)||(oa.set(e,{}),navigator.mediaDevices.enumerateDevices().then((function(t){oa.has(e)&&(oa.get(e).lastDevicesString=JSON.stringify(t),sa||(sa=function(){var e=p((function*(){var e,t=yield navigator.mediaDevices.enumerateDevices(),n=ra(oa.keys());try{for(n.s();!(e=n.n()).done;){var r=e.value,i=JSON.stringify(t);i!==oa.get(r).lastDevicesString&&(oa.get(r).lastDevicesString=i,r(t))}}catch(e){n.e(e)}finally{n.f()}}));return function(){return e.apply(this,arguments)}}(),navigator.mediaDevices.addEventListener(\"devicechange\",sa)))})).catch((function(){})))}(e):function(e){la.has(e)||(la.set(e,{}),navigator.mediaDevices.enumerateDevices().then((function(t){la.has(e)&&(la.get(e).lastDevicesString=JSON.stringify(t),ua||(ua=setInterval(p((function*(){var e,t=yield navigator.mediaDevices.enumerateDevices(),n=aa(la.keys());try{for(n.s();!(e=n.n()).done;){var r=e.value,i=JSON.stringify(t);i!==la.get(r).lastDevicesString&&(la.get(r).lastDevicesString=i,r(t))}}catch(e){n.e(e)}finally{n.f()}})),3e3)))})))}(e)}function pa(e){ha()?function(e){oa.has(e)&&(oa.delete(e),0===oa.size&&sa&&(navigator.mediaDevices.removeEventListener(\"devicechange\",sa),sa=null))}(e):function(e){la.has(e)&&(la.delete(e),0===la.size&&ua&&(clearInterval(ua),ua=null))}(e)}function ha(){var e;return is()||void 0!==(null===(e=navigator.mediaDevices)||void 0===e?void 0:e.ondevicechange)}var fa=new Set;function va(e,t){var n=t.isLocalScreenVideo;return e&&\"live\"===e.readyState&&!function(e,t){return(!t.isLocalScreenVideo||\"Chrome\"!==ms())&&e.muted&&!fa.has(e.id)}(e,{isLocalScreenVideo:n})}function ga(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ma(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ga(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ga(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ya=Object.freeze({VIDEO:\"video\",AUDIO:\"audio\",SCREEN_VIDEO:\"screenVideo\",SCREEN_AUDIO:\"screenAudio\",CUSTOM_VIDEO:\"customVideo\",CUSTOM_AUDIO:\"customAudio\"}),ba=Object.freeze({PARTICIPANTS:\"participants\",STREAMING:\"streaming\",TRANSCRIPTION:\"transcription\"}),_a=Object.values(ya),wa=[\"v\",\"a\",\"sv\",\"sa\",\"cv\",\"ca\"];Object.freeze(_a.reduce((function(e,t,n){return e[t]=wa[n],e}),{})),Object.freeze(wa.reduce((function(e,t,n){return e[t]=_a[n],e}),{}));var Sa=[ya.VIDEO,ya.AUDIO,ya.SCREEN_VIDEO,ya.SCREEN_AUDIO],ka=Object.values(ba),Ma=[\"p\",\"s\",\"t\"];Object.freeze(ka.reduce((function(e,t,n){return e[t]=Ma[n],e}),{})),Object.freeze(Ma.reduce((function(e,t,n){return e[t]=ka[n],e}),{}));var Ca=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.base,i=n.byUserId,o=n.byParticipantId;t(this,e),this.base=r,this.byUserId=i,this.byParticipantId=o}return o(e,[{key:\"clone\",value:function(){var t=new e;if(this.base instanceof Ea?t.base=this.base.clone():t.base=this.base,void 0!==this.byUserId)for(var n in t.byUserId={},this.byUserId){var r=this.byUserId[n];t.byUserId[n]=r instanceof Ea?r.clone():r}if(void 0!==this.byParticipantId)for(var i in t.byParticipantId={},this.byParticipantId){var o=this.byParticipantId[i];t.byParticipantId[i]=o instanceof Ea?o.clone():o}return t}},{key:\"toJSONObject\",value:function(){var e={};if(\"boolean\"==typeof this.base?e.base=this.base:this.base instanceof Ea&&(e.base=this.base.toJSONObject()),void 0!==this.byUserId)for(var t in e.byUserId={},this.byUserId){var n=this.byUserId[t];e.byUserId[t]=n instanceof Ea?n.toJSONObject():n}if(void 0!==this.byParticipantId)for(var r in e.byParticipantId={},this.byParticipantId){var i=this.byParticipantId[r];e.byParticipantId[r]=i instanceof Ea?i.toJSONObject():i}return e}},{key:\"toMinifiedJSONObject\",value:function(){var e={};if(void 0!==this.base&&(\"boolean\"==typeof this.base?e.b=this.base:e.b=this.base.toMinifiedJSONObject()),void 0!==this.byUserId)for(var t in e.u={},this.byUserId){var n=this.byUserId[t];e.u[t]=\"boolean\"==typeof n?n:n.toMinifiedJSONObject()}if(void 0!==this.byParticipantId)for(var r in e.p={},this.byParticipantId){var i=this.byParticipantId[r];e.p[r]=\"boolean\"==typeof i?i:i.toMinifiedJSONObject()}return e}},{key:\"normalize\",value:function(){return this.base instanceof Ea&&(this.base=this.base.normalize()),this.byUserId&&(this.byUserId=Object.fromEntries(Object.entries(this.byUserId).map((function(e){var t=f(e,2),n=t[0],r=t[1];return[n,r instanceof Ea?r.normalize():r]})))),this.byParticipantId&&(this.byParticipantId=Object.fromEntries(Object.entries(this.byParticipantId).map((function(e){var t=f(e,2),n=t[0],r=t[1];return[n,r instanceof Ea?r.normalize():r]})))),this}}],[{key:\"fromJSONObject\",value:function(t){var n,r,i;if(void 0!==t.base&&(n=\"boolean\"==typeof t.base?t.base:Ea.fromJSONObject(t.base)),void 0!==t.byUserId)for(var o in r={},t.byUserId){var s=t.byUserId[o];r[o]=\"boolean\"==typeof s?s:Ea.fromJSONObject(s)}if(void 0!==t.byParticipantId)for(var a in i={},t.byParticipantId){var c=t.byParticipantId[a];i[a]=\"boolean\"==typeof c?c:Ea.fromJSONObject(c)}return new e({base:n,byUserId:r,byParticipantId:i})}},{key:\"fromMinifiedJSONObject\",value:function(t){var n,r,i;if(void 0!==t.b&&(n=\"boolean\"==typeof t.b?t.b:Ea.fromMinifiedJSONObject(t.b)),void 0!==t.u)for(var o in r={},t.u){var s=t.u[o];r[o]=\"boolean\"==typeof s?s:Ea.fromMinifiedJSONObject(s)}if(void 0!==t.p)for(var a in i={},t.p){var c=t.p[a];i[a]=\"boolean\"==typeof c?c:Ea.fromMinifiedJSONObject(c)}return new e({base:n,byUserId:r,byParticipantId:i})}},{key:\"validateJSONObject\",value:function(e){if(\"object\"!==n(e))return[!1,\"canReceive must be an object\"];for(var t=[\"base\",\"byUserId\",\"byParticipantId\"],r=0,i=Object.keys(e);r<i.length;r++){var o=i[r];if(!t.includes(o))return[!1,\"canReceive can only contain keys (\".concat(t.join(\", \"),\")\")];if(\"base\"===o){var s=f(Ea.validateJSONObject(e.base,!0),2),a=s[0],c=s[1];if(!a)return[!1,c]}else{if(\"object\"!==n(e[o]))return[!1,\"invalid (non-object) value for field '\".concat(o,\"' in canReceive\")];for(var l=0,u=Object.values(e[o]);l<u.length;l++){var d=u[l],p=f(Ea.validateJSONObject(d),2),h=p[0],v=p[1];if(!h)return[!1,v]}}}return[!0]}}])}(),Ea=function(){function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.video,i=n.audio,o=n.screenVideo,s=n.screenAudio,a=n.customVideo,c=n.customAudio;t(this,e),this.video=r,this.audio=i,this.screenVideo=o,this.screenAudio=s,this.customVideo=a,this.customAudio=c}return o(e,[{key:\"clone\",value:function(){var t=new e;return void 0!==this.video&&(t.video=this.video),void 0!==this.audio&&(t.audio=this.audio),void 0!==this.screenVideo&&(t.screenVideo=this.screenVideo),void 0!==this.screenAudio&&(t.screenAudio=this.screenAudio),void 0!==this.customVideo&&(t.customVideo=ma({},this.customVideo)),void 0!==this.customAudio&&(t.customAudio=ma({},this.customAudio)),t}},{key:\"toJSONObject\",value:function(){var e={};return void 0!==this.video&&(e.video=this.video),void 0!==this.audio&&(e.audio=this.audio),void 0!==this.screenVideo&&(e.screenVideo=this.screenVideo),void 0!==this.screenAudio&&(e.screenAudio=this.screenAudio),void 0!==this.customVideo&&(e.customVideo=ma({},this.customVideo)),void 0!==this.customAudio&&(e.customAudio=ma({},this.customAudio)),e}},{key:\"toMinifiedJSONObject\",value:function(){var e={};return void 0!==this.video&&(e.v=this.video),void 0!==this.audio&&(e.a=this.audio),void 0!==this.screenVideo&&(e.sv=this.screenVideo),void 0!==this.screenAudio&&(e.sa=this.screenAudio),void 0!==this.customVideo&&(e.cv=ma({},this.customVideo)),void 0!==this.customAudio&&(e.ca=ma({},this.customAudio)),e}},{key:\"normalize\",value:function(){function e(e,t){return e&&1===Object.keys(e).length&&e[\"*\"]===t}return!(!0!==this.video||!0!==this.audio||!0!==this.screenVideo||!0!==this.screenAudio||!e(this.customVideo,!0)||!e(this.customAudio,!0))||(!1!==this.video||!1!==this.audio||!1!==this.screenVideo||!1!==this.screenAudio||!e(this.customVideo,!1)||!e(this.customAudio,!1))&&this}}],[{key:\"fromBoolean\",value:function(t){return new e({video:t,audio:t,screenVideo:t,screenAudio:t,customVideo:{\"*\":t},customAudio:{\"*\":t}})}},{key:\"fromJSONObject\",value:function(t){return new e({video:t.video,audio:t.audio,screenVideo:t.screenVideo,screenAudio:t.screenAudio,customVideo:void 0!==t.customVideo?ma({},t.customVideo):void 0,customAudio:void 0!==t.customAudio?ma({},t.customAudio):void 0})}},{key:\"fromMinifiedJSONObject\",value:function(t){return new e({video:t.v,audio:t.a,screenVideo:t.sv,screenAudio:t.sa,customVideo:t.cv,customAudio:t.ca})}},{key:\"validateJSONObject\",value:function(e,t){if(\"boolean\"==typeof e)return[!0];if(\"object\"!==n(e))return[!1,\"invalid (non-object, non-boolean) value in canReceive\"];for(var r=Object.keys(e),i=0,o=r;i<o.length;i++){var s=o[i];if(!_a.includes(s))return[!1,\"invalid media type '\".concat(s,\"' in canReceive\")];if(Sa.includes(s)){if(\"boolean\"!=typeof e[s])return[!1,\"invalid (non-boolean) value for media type '\".concat(s,\"' in canReceive\")]}else{if(\"object\"!==n(e[s]))return[!1,\"invalid (non-object) value for media type '\".concat(s,\"' in canReceive\")];for(var a=0,c=Object.values(e[s]);a<c.length;a++){if(\"boolean\"!=typeof c[a])return[!1,\"invalid (non-boolean) value for entry within '\".concat(s,\"' in canReceive\")]}if(t&&void 0===e[s][\"*\"])return[!1,'canReceive \"base\" permission must specify \"*\" as an entry within \\''.concat(s,\"'\")]}}return t&&r.length!==_a.length?[!1,'canReceive \"base\" permission must specify all media types: '.concat(_a.join(\", \"),\" (or be set to a boolean shorthand)\")]:[!0]}}])}(),Ta=[\"result\"],Oa=[\"preserveIframe\"];function Pa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Aa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pa(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pa(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ja(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ja=function(){return!!e})()}function Ia(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return xa(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?xa(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw o}}}}function xa(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var La={};var Da=\"video\",Na=\"voice\",Ra=is()?{data:{}}:{data:{},topology:\"none\"},Fa={present:0,hidden:0},Ba={maxBitrate:{min:1e5,max:25e5},maxFramerate:{min:1,max:30},scaleResolutionDownBy:{min:1,max:8}},Ua=Object.keys(Ba),Va=[\"state\",\"volume\",\"simulcastEncodings\"],Ja={androidInCallNotification:{title:\"string\",subtitle:\"string\",iconName:\"string\",disableForCustomOverride:\"boolean\"},disableAutoDeviceManagement:{audio:\"boolean\",video:\"boolean\"}},$a={id:{iconPath:\"string\",iconPathDarkMode:\"string\",label:\"string\",tooltip:\"string\",visualState:\"'default' | 'sidebar-open' | 'active'\"}},qa={id:{allow:\"string\",controlledBy:\"'*' | 'owners' | string[]\",csp:\"string\",iconURL:\"string\",label:\"string\",loading:\"'eager' | 'lazy'\",location:\"'main' | 'sidebar'\",name:\"string\",referrerPolicy:\"string\",sandbox:\"string\",src:\"string\",srcdoc:\"string\",shared:\"string[] | 'owners' | boolean\"}},za={customIntegrations:{validate:gc,help:fc()},customTrayButtons:{validate:vc,help:\"customTrayButtons should be a dictionary of the type \".concat(JSON.stringify($a))},url:{validate:function(e){return\"string\"==typeof e},help:\"url should be a string\"},baseUrl:{validate:function(e){return\"string\"==typeof e},help:\"baseUrl should be a string\"},token:{validate:function(e){return\"string\"==typeof e},help:\"token should be a string\",queryString:\"t\"},dailyConfig:{validate:function(e,t){try{return t.validateDailyConfig(e),!0}catch(e){console.error(\"Failed to validate dailyConfig\",e)}return!1},help:\"Unsupported dailyConfig. Check error logs for detailed info.\"},reactNativeConfig:{validate:function(e){return mc(e,Ja)},help:\"reactNativeConfig should look like \".concat(JSON.stringify(Ja),\", all fields optional\")},lang:{validate:function(e){return[\"da\",\"de\",\"en-us\",\"en\",\"es\",\"fi\",\"fr\",\"it\",\"jp\",\"ka\",\"nl\",\"no\",\"pl\",\"pt\",\"pt-BR\",\"ru\",\"sv\",\"tr\",\"user\"].includes(e)},help:\"language not supported. Options are: da, de, en-us, en, es, fi, fr, it, jp, ka, nl, no, pl, pt, pt-BR, ru, sv, tr, user\"},userName:!0,userData:{validate:function(e){try{return oc(e),!0}catch(e){return console.error(e),!1}},help:\"invalid userData type provided\"},startVideoOff:!0,startAudioOff:!0,allowLocalVideo:!0,allowLocalAudio:!0,activeSpeakerMode:!0,showLeaveButton:!0,showLocalVideo:!0,showParticipantsBar:!0,showFullscreenButton:!0,showUserNameChangeUI:!0,iframeStyle:!0,customLayout:!0,cssFile:!0,cssText:!0,bodyClass:!0,videoSource:{validate:function(e,t){if(\"boolean\"==typeof e)return t._preloadCache.allowLocalVideo=e,!0;var n;if(e instanceof MediaStreamTrack)t._sharedTracks.videoTrack=e,n={customTrack:Qo};else{if(delete t._sharedTracks.videoTrack,\"string\"!=typeof e)return console.error(\"videoSource must be a MediaStreamTrack, boolean, or a string\"),!1;n={deviceId:e}}return t._updatePreloadCacheInputSettings({video:{settings:n}},!1),!0}},audioSource:{validate:function(e,t){if(\"boolean\"==typeof e)return t._preloadCache.allowLocalAudio=e,!0;var n;if(e instanceof MediaStreamTrack)t._sharedTracks.audioTrack=e,n={customTrack:Qo};else{if(delete t._sharedTracks.audioTrack,\"string\"!=typeof e)return console.error(\"audioSource must be a MediaStreamTrack, boolean, or a string\"),!1;n={deviceId:e}}return t._updatePreloadCacheInputSettings({audio:{settings:n}},!1),!0}},subscribeToTracksAutomatically:{validate:function(e,t){return t._preloadCache.subscribeToTracksAutomatically=e,!0}},theme:{validate:function(e){var t=[\"accent\",\"accentText\",\"background\",\"backgroundAccent\",\"baseText\",\"border\",\"mainAreaBg\",\"mainAreaBgAccent\",\"mainAreaText\",\"supportiveText\"],r=function(e){for(var n=0,r=Object.keys(e);n<r.length;n++){var i=r[n];if(!t.includes(i))return console.error('unsupported color \"'.concat(i,'\". Valid colors: ').concat(t.join(\", \"))),!1;if(!e[i].match(/^#[0-9a-f]{6}|#[0-9a-f]{3}$/i))return console.error(\"\".concat(i,' theme color should be provided in valid hex color format. Received: \"').concat(e[i],'\"')),!1}return!0};return\"object\"===n(e)&&(\"light\"in e&&\"dark\"in e||\"colors\"in e)?\"light\"in e&&\"dark\"in e?\"colors\"in e.light?\"colors\"in e.dark?r(e.light.colors)&&r(e.dark.colors):(console.error('Dark theme is missing \"colors\" property.',e),!1):(console.error('Light theme is missing \"colors\" property.',e),!1):r(e.colors):(console.error('Theme must contain either both \"light\" and \"dark\" properties, or \"colors\".',e),!1)},help:\"unsupported theme configuration. Check error logs for detailed info.\"},layoutConfig:{validate:function(e){if(\"grid\"in e){var t=e.grid;if(\"maxTilesPerPage\"in t){if(!Number.isInteger(t.maxTilesPerPage))return console.error(\"grid.maxTilesPerPage should be an integer. You passed \".concat(t.maxTilesPerPage,\".\")),!1;if(t.maxTilesPerPage>49)return console.error(\"grid.maxTilesPerPage can't be larger than 49 without sacrificing browser performance. Please contact us at https://www.daily.co/contact to talk about your use case.\"),!1}if(\"minTilesPerPage\"in t){if(!Number.isInteger(t.minTilesPerPage))return console.error(\"grid.minTilesPerPage should be an integer. You passed \".concat(t.minTilesPerPage,\".\")),!1;if(t.minTilesPerPage<1)return console.error(\"grid.minTilesPerPage can't be lower than 1.\"),!1;if(\"maxTilesPerPage\"in t&&t.minTilesPerPage>t.maxTilesPerPage)return console.error(\"grid.minTilesPerPage can't be higher than grid.maxTilesPerPage.\"),!1}}return!0},help:\"unsupported layoutConfig. Check error logs for detailed info.\"},receiveSettings:{validate:function(e){return sc(e,{allowAllParticipantsKey:!1})},help:hc({allowAllParticipantsKey:!1})},sendSettings:{validate:function(e,t){return!!function(e,t){try{return t.validateUpdateSendSettings(e),!0}catch(e){return console.error(\"Failed to validate send settings\",e),!1}}(e,t)&&(t._preloadCache.sendSettings=e,!0)},help:\"Invalid sendSettings provided. Check error logs for detailed info.\"},inputSettings:{validate:function(e,t){var n;return!!ac(e)&&(t._inputSettings||(t._inputSettings={}),cc(e,null===(n=t.properties)||void 0===n?void 0:n.dailyConfig,t._sharedTracks),t._updatePreloadCacheInputSettings(e,!0),!0)},help:pc()},layout:{validate:function(e){return\"custom-v1\"===e||\"browser\"===e||\"none\"===e},help:'layout may only be set to \"custom-v1\"',queryString:\"layout\"},emb:{queryString:\"emb\"},embHref:{queryString:\"embHref\"},dailyJsVersion:{queryString:\"dailyJsVersion\"},proxy:{queryString:\"proxy\"},strictMode:!0,allowMultipleCallInstances:!0},Wa={styles:{validate:function(e){for(var t in e)if(\"cam\"!==t&&\"screen\"!==t)return!1;if(e.cam)for(var n in e.cam)if(\"div\"!==n&&\"video\"!==n)return!1;if(e.screen)for(var r in e.screen)if(\"div\"!==r&&\"video\"!==r)return!1;return!0},help:\"styles format should be a subset of: { cam: {div: {}, video: {}}, screen: {div: {}, video: {}} }\"},setSubscribedTracks:{validate:function(e,t){if(t._preloadCache.subscribeToTracksAutomatically)return!1;var n=[!0,!1,\"staged\"];if(n.includes(e)||!is()&&\"avatar\"===e)return!0;var r=[\"audio\",\"video\",\"screenAudio\",\"screenVideo\",\"rmpAudio\",\"rmpVideo\"],i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(var o in e)if(\"custom\"===o){if(!n.includes(e[o])&&!i(e[o],!0))return!1}else{var s=!t&&!r.includes(o),a=!n.includes(e[o]);if(s||a)return!1}return!0};return i(e)},help:\"setSubscribedTracks cannot be used when setSubscribeToTracksAutomatically is enabled, and should be of the form: \"+\"true\".concat(is()?\"\":\" | 'avatar'\",\" | false | 'staged' | { [audio: true|false|'staged'], [video: true|false|'staged'], [screenAudio: true|false|'staged'], [screenVideo: true|false|'staged'] }\")},setAudio:!0,setVideo:!0,setScreenShare:{validate:function(e){return!1===e},help:\"setScreenShare must be false, as it's only meant for stopping remote participants' screen shares\"},eject:!0,updatePermissions:{validate:function(e){for(var t=0,n=Object.entries(e);t<n.length;t++){var r=f(n[t],2),i=r[0],o=r[1];switch(i){case\"hasPresence\":if(\"boolean\"!=typeof o)return!1;break;case\"canSend\":if(o instanceof Set||o instanceof Array||Array.isArray(o)){var s,a=[\"video\",\"audio\",\"screenVideo\",\"screenAudio\",\"customVideo\",\"customAudio\"],c=Ia(o);try{for(c.s();!(s=c.n()).done;){var l=s.value;if(!a.includes(l))return!1}}catch(e){c.e(e)}finally{c.f()}}else if(\"boolean\"!=typeof o)return!1;(o instanceof Array||Array.isArray(o))&&(e.canSend=new Set(o));break;case\"canReceive\":var u=f(Ca.validateJSONObject(o),2),d=u[0],p=u[1];if(!d)return console.error(p),!1;break;case\"canAdmin\":if(o instanceof Set||o instanceof Array||Array.isArray(o)){var h,v=[\"participants\",\"streaming\",\"transcription\"],g=Ia(o);try{for(g.s();!(h=g.n()).done;){var m=h.value;if(!v.includes(m))return!1}}catch(e){g.e(e)}finally{g.f()}}else if(\"boolean\"!=typeof o)return!1;(o instanceof Array||Array.isArray(o))&&(e.canAdmin=new Set(o));break;default:return!1}}return!0},help:\"updatePermissions can take hasPresence, canSend, canReceive, and canAdmin permissions. hasPresence must be a boolean. canSend can be a boolean or an Array or Set of media types (video, audio, screenVideo, screenAudio, customVideo, customAudio). canReceive must be an object specifying base, byUserId, and/or byParticipantId fields (see documentation for more details). canAdmin can be a boolean or an Array or Set of admin types (participants, streaming, transcription).\"}};Promise.any||(Promise.any=function(){var e=p((function*(e){return new Promise((function(t,n){var r=[];e.forEach((function(i){return Promise.resolve(i).then((function(e){t(e)})).catch((function(t){r.push(t),r.length===e.length&&n(r)}))}))}))}));return function(t){return e.apply(this,arguments)}}());var Ha=function(){function r(e){var n,i,o,c,l,d,h=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t(this,r),o=this,c=a(c=r),u(i=s(o,ja()?Reflect.construct(c,l||[],a(o).constructor):c.apply(o,l)),\"startListeningForDeviceChanges\",(function(){da(i.handleDeviceChange)})),u(i,\"stopListeningForDeviceChanges\",(function(){pa(i.handleDeviceChange)})),u(i,\"handleDeviceChange\",(function(e){e=e.map((function(e){return JSON.parse(JSON.stringify(e))})),i.emitDailyJSEvent({action:\"available-devices-updated\",availableDevices:e})})),u(i,\"handleNativeAppStateChange\",function(){var e=p((function*(e){if(\"destroyed\"===e)return console.warn(\"App has been destroyed before leaving the meeting. Cleaning up all the resources!\"),void(yield i.destroy());var t=\"active\"===e;i.disableReactNativeAutoDeviceManagement(\"video\")||(t?i.camUnmutedBeforeLosingNativeActiveState&&i.setLocalVideo(!0):(i.camUnmutedBeforeLosingNativeActiveState=i.localVideo(),i.camUnmutedBeforeLosingNativeActiveState&&i.setLocalVideo(!1)))}));return function(t){return e.apply(this,arguments)}}()),u(i,\"handleNativeAudioFocusChange\",(function(e){i.disableReactNativeAutoDeviceManagement(\"audio\")||(i._hasNativeAudioFocus=e,i.toggleParticipantAudioBasedOnNativeAudioFocus(),i._hasNativeAudioFocus?i.micUnmutedBeforeLosingNativeAudioFocus&&i.setLocalAudio(!0):(i.micUnmutedBeforeLosingNativeAudioFocus=i.localAudio(),i.setLocalAudio(!1)))})),u(i,\"handleNativeSystemScreenCaptureStop\",(function(){i.stopScreenShare()})),!fs()&&!is())throw new Error(\"WebRTC not supported or suppressed\");if(i.strictMode=void 0===h.strictMode||h.strictMode,i.allowMultipleCallInstances=null!==(n=h.allowMultipleCallInstances)&&void 0!==n&&n,Object.keys(La).length&&(i._logDuplicateInstanceAttempt(),!i.allowMultipleCallInstances)){if(i.strictMode)throw new Error(\"Duplicate DailyIframe instances are not allowed\");console.warn(\"Using strictMode: false to allow multiple call instances is now deprecated. Set `allowMultipleCallInstances: true`\")}if(window._daily||(window._daily={pendings:[],instances:{}}),i.callClientId=N(),La[(d=i).callClientId]=d,window._daily.instances[i.callClientId]={},i._sharedTracks={},window._daily.instances[i.callClientId].tracks=i._sharedTracks,h.dailyJsVersion=r.version(),i._iframe=e,i._callObjectMode=\"none\"===h.layout&&!i._iframe,i._preloadCache={subscribeToTracksAutomatically:!0,outputDeviceId:null,inputSettings:null,sendSettings:null,videoTrackForNetworkConnectivityTest:null,videoTrackForConnectionQualityTest:null},void 0!==h.showLocalVideo?i._callObjectMode?console.error(\"showLocalVideo is not available in call object mode\"):i._showLocalVideo=!!h.showLocalVideo:i._showLocalVideo=!0,void 0!==h.showParticipantsBar?i._callObjectMode?console.error(\"showParticipantsBar is not available in call object mode\"):i._showParticipantsBar=!!h.showParticipantsBar:i._showParticipantsBar=!0,void 0!==h.customIntegrations?i._callObjectMode?console.error(\"customIntegrations is not available in call object mode\"):i._customIntegrations=h.customIntegrations:i._customIntegrations={},void 0!==h.customTrayButtons?i._callObjectMode?console.error(\"customTrayButtons is not available in call object mode\"):i._customTrayButtons=h.customTrayButtons:i._customTrayButtons={},void 0!==h.activeSpeakerMode?i._callObjectMode?console.error(\"activeSpeakerMode is not available in call object mode\"):i._activeSpeakerMode=!!h.activeSpeakerMode:i._activeSpeakerMode=!1,h.receiveSettings?i._callObjectMode?i._receiveSettings=h.receiveSettings:console.error(\"receiveSettings is only available in call object mode\"):i._receiveSettings={},i.validateProperties(h),i.properties=Aa({},h),i._inputSettings||(i._inputSettings={}),i._callObjectLoader=i._callObjectMode?new Us(i.callClientId):null,i._callState=ti,i._isPreparingToJoin=!1,i._accessState={access:fi},i._meetingSessionSummary={},i._finalSummaryOfPrevSession={},i._meetingSessionState=wc(Ra,i._callObjectMode),i._nativeInCallAudioMode=Da,i._participants={},i._isScreenSharing=!1,i._participantCounts=Fa,i._rmpPlayerState={},i._waitingParticipants={},i._network={threshold:\"good\",quality:100,networkState:\"unknown\",stats:{}},i._activeSpeaker={},i._localAudioLevel=0,i._isLocalAudioLevelObserverRunning=!1,i._remoteParticipantsAudioLevel={},i._isRemoteParticipantsAudioLevelObserverRunning=!1,i._maxAppMessageSize=$o,i._messageChannel=is()?new js:new Os,i._iframe&&(i._iframe.requestFullscreen?i._iframe.addEventListener(\"fullscreenchange\",(function(){document.fullscreenElement===i._iframe?(i.emitDailyJSEvent({action:Io}),i.sendMessageToCallMachine({action:Io})):(i.emitDailyJSEvent({action:xo}),i.sendMessageToCallMachine({action:xo}))})):i._iframe.webkitRequestFullscreen&&i._iframe.addEventListener(\"webkitfullscreenchange\",(function(){document.webkitFullscreenElement===i._iframe?(i.emitDailyJSEvent({action:Io}),i.sendMessageToCallMachine({action:Io})):(i.emitDailyJSEvent({action:xo}),i.sendMessageToCallMachine({action:xo}))}))),is()){var f=i.nativeUtils();f.addAudioFocusChangeListener&&f.removeAudioFocusChangeListener&&f.addAppStateChangeListener&&f.removeAppStateChangeListener&&f.addSystemScreenCaptureStopListener&&f.removeSystemScreenCaptureStopListener||console.warn(\"expected (add|remove)(AudioFocusChange|AppActiveStateChange|SystemScreenCaptureStop)Listener to be available in React Native\"),i._hasNativeAudioFocus=!0,f.addAudioFocusChangeListener(i.handleNativeAudioFocusChange),f.addAppStateChangeListener(i.handleNativeAppStateChange),f.addSystemScreenCaptureStopListener(i.handleNativeSystemScreenCaptureStop)}return i._callObjectMode&&i.startListeningForDeviceChanges(),i._messageChannel.addListenerForMessagesFromCallMachine(i.handleMessageFromCallMachine,i.callClientId,i),i}return l(r,b),o(r,[{key:\"destroy\",value:(ee=p((function*(){var e;try{yield this.leave()}catch(e){}var t=this._iframe;if(t){var n=t.parentElement;n&&n.removeChild(t)}if(this._messageChannel.removeListener(this.handleMessageFromCallMachine),is()){var r=this.nativeUtils();r.removeAudioFocusChangeListener(this.handleNativeAudioFocusChange),r.removeAppStateChangeListener(this.handleNativeAppStateChange),r.removeSystemScreenCaptureStopListener(this.handleNativeSystemScreenCaptureStop)}this._callObjectMode&&this.stopListeningForDeviceChanges(),this.resetMeetingDependentVars(),this._destroyed=!0,this.emitDailyJSEvent({action:\"call-instance-destroyed\"}),delete La[this.callClientId],(null===(e=window)||void 0===e||null===(e=e._daily)||void 0===e?void 0:e.instances)&&delete window._daily.instances[this.callClientId],this.strictMode&&(this.callClientId=void 0)})),function(){return ee.apply(this,arguments)})},{key:\"isDestroyed\",value:function(){return!!this._destroyed}},{key:\"loadCss\",value:function(e){var t=e.bodyClass,n=e.cssFile,r=e.cssText;return rc(),this.sendMessageToCallMachine({action:\"load-css\",cssFile:this.absoluteUrl(n),bodyClass:t,cssText:r}),this}},{key:\"iframe\",value:function(){return rc(),this._iframe}},{key:\"meetingState\",value:function(){return this._callState}},{key:\"accessState\",value:function(){return tc(this._callObjectMode,\"accessState()\"),this._accessState}},{key:\"participants\",value:function(){return this._participants}},{key:\"participantCounts\",value:function(){return this._participantCounts}},{key:\"waitingParticipants\",value:function(){return tc(this._callObjectMode,\"waitingParticipants()\"),this._waitingParticipants}},{key:\"validateParticipantProperties\",value:function(e,t){for(var n in t){if(!Wa[n])throw new Error(\"unrecognized updateParticipant property \".concat(n));if(Wa[n].validate&&!Wa[n].validate(t[n],this,this._participants[e]))throw new Error(Wa[n].help)}}},{key:\"updateParticipant\",value:function(e,t){return this._participants.local&&this._participants.local.session_id===e&&(e=\"local\"),e&&t&&(this.validateParticipantProperties(e,t),this.sendMessageToCallMachine({action:\"update-participant\",id:e,properties:t})),this}},{key:\"updateParticipants\",value:function(e){var t=this._participants.local&&this._participants.local.session_id;for(var n in e)n===t&&(n=\"local\"),n&&e[n]&&this.validateParticipantProperties(n,e[n]);return this.sendMessageToCallMachine({action:\"update-participants\",participants:e}),this}},{key:\"updateWaitingParticipant\",value:(Z=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"\",r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(tc(this._callObjectMode,\"updateWaitingParticipant()\"),Ka(this._callState,\"updateWaitingParticipant()\"),\"string\"!=typeof t||\"object\"!==n(r))throw new Error(\"updateWaitingParticipant() must take an id string and a updates object\");return new Promise((function(n,i){e.sendMessageToCallMachine({action:\"daily-method-update-waiting-participant\",id:t,updates:r},(function(e){e.error&&i(e.error),e.id||i(new Error(\"unknown error in updateWaitingParticipant()\")),n({id:e.id})}))}))})),function(){return Z.apply(this,arguments)})},{key:\"updateWaitingParticipants\",value:(X=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(tc(this._callObjectMode,\"updateWaitingParticipants()\"),Ka(this._callState,\"updateWaitingParticipants()\"),\"object\"!==n(t))throw new Error(\"updateWaitingParticipants() must take a mapping between ids and update objects\");return new Promise((function(n,r){e.sendMessageToCallMachine({action:\"daily-method-update-waiting-participants\",updatesById:t},(function(e){e.error&&r(e.error),e.ids||r(new Error(\"unknown error in updateWaitingParticipants()\")),n({ids:e.ids})}))}))})),function(){return X.apply(this,arguments)})},{key:\"requestAccess\",value:(Y=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.access,r=void 0===n?{level:vi}:n,i=t.name,o=void 0===i?\"\":i;return tc(this._callObjectMode,\"requestAccess()\"),Ka(this._callState,\"requestAccess()\"),new Promise((function(t,n){e.sendMessageToCallMachine({action:\"daily-method-request-access\",access:r,name:o},(function(e){e.error&&n(e.error),e.access||n(new Error(\"unknown error in requestAccess()\")),t({access:e.access,granted:e.granted})}))}))})),function(){return Y.apply(this,arguments)})},{key:\"localAudio\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.audio.state):null}},{key:\"localVideo\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.video.state):null}},{key:\"setLocalAudio\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return\"forceDiscardTrack\"in t&&(is()?(console.warn(\"forceDiscardTrack option not supported in React Native; ignoring\"),t={}):e&&(console.warn(\"forceDiscardTrack option only supported when calling setLocalAudio(false); ignoring\"),t={})),this.sendMessageToCallMachine({action:\"local-audio\",state:e,options:t}),this}},{key:\"localScreenAudio\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.screenAudio.state):null}},{key:\"localScreenVideo\",value:function(){return this._participants.local?![\"blocked\",\"off\"].includes(this._participants.local.tracks.screenVideo.state):null}},{key:\"updateScreenShare\",value:function(e){if(this._isScreenSharing)return this.sendMessageToCallMachine({action:\"local-screen-update\",options:e}),this;console.warn(\"There is no screen share in progress. Try calling startScreenShare first.\")}},{key:\"setLocalVideo\",value:function(e){return this.sendMessageToCallMachine({action:\"local-video\",state:e}),this}},{key:\"_setAllowLocalAudio\",value:function(e){if(this._preloadCache.allowLocalAudio=e,this._callMachineInitialized)return this.sendMessageToCallMachine({action:\"set-allow-local-audio\",state:e}),this}},{key:\"_setAllowLocalVideo\",value:function(e){if(this._preloadCache.allowLocalVideo=e,this._callMachineInitialized)return this.sendMessageToCallMachine({action:\"set-allow-local-video\",state:e}),this}},{key:\"getReceiveSettings\",value:(K=p((function*(e){var t=this,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).showInheritedValues,i=void 0!==r&&r;if(tc(this._callObjectMode,\"getReceiveSettings()\"),!this._callMachineInitialized)return this._receiveSettings;switch(n(e)){case\"string\":return new Promise((function(n){t.sendMessageToCallMachine({action:\"get-single-participant-receive-settings\",id:e,showInheritedValues:i},(function(e){n(e.receiveSettings)}))}));case\"undefined\":return this._receiveSettings;default:throw new Error('first argument to getReceiveSettings() must be a participant id (or \"base\"), or there should be no arguments')}})),function(e){return K.apply(this,arguments)})},{key:\"updateReceiveSettings\",value:(Q=p((function*(e){var t=this;if(tc(this._callObjectMode,\"updateReceiveSettings()\"),!sc(e,{allowAllParticipantsKey:!0}))throw new Error(hc({allowAllParticipantsKey:!0}));return Ka(this._callState,\"updateReceiveSettings()\",\"To specify receive settings earlier, use the receiveSettings config property.\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"update-receive-settings\",receiveSettings:e},(function(e){n({receiveSettings:e.receiveSettings})}))}))})),function(e){return Q.apply(this,arguments)})},{key:\"_prepInputSettingsForSharing\",value:function(e,t){if(e){var n={};if(e.audio){var r,i,o;e.audio.settings&&(!Object.keys(e.audio.settings).length&&t||(n.audio={settings:Aa({},e.audio.settings)})),t&&null!==(r=n.audio)&&void 0!==r&&null!==(r=r.settings)&&void 0!==r&&r.customTrack&&(n.audio.settings={customTrack:this._sharedTracks.audioTrack});var s=\"none\"===(null===(i=e.audio.processor)||void 0===i?void 0:i.type)&&(null===(o=e.audio.processor)||void 0===o?void 0:o._isDefaultWhenNone);if(e.audio.processor&&!s){var a=Aa({},e.audio.processor);delete a._isDefaultWhenNone,n.audio=Aa(Aa({},n.audio),{},{processor:a})}}if(e.video){var c,l,u;e.video.settings&&(!Object.keys(e.video.settings).length&&t||(n.video={settings:Aa({},e.video.settings)})),t&&null!==(c=n.video)&&void 0!==c&&null!==(c=c.settings)&&void 0!==c&&c.customTrack&&(n.video.settings={customTrack:this._sharedTracks.videoTrack});var d=\"none\"===(null===(l=e.video.processor)||void 0===l?void 0:l.type)&&(null===(u=e.video.processor)||void 0===u?void 0:u._isDefaultWhenNone);if(e.video.processor&&!d){var p=Aa({},e.video.processor);delete p._isDefaultWhenNone,n.video=Aa(Aa({},n.video),{},{processor:p})}}return n}}},{key:\"getInputSettings\",value:function(){var e=this;return rc(),new Promise((function(t){t(e._getInputSettings())}))}},{key:\"_getInputSettings\",value:function(){var e,t,n,r,i,o,s={processor:{type:\"none\",_isDefaultWhenNone:!0}};this._inputSettings?(e=(null===(n=this._inputSettings)||void 0===n?void 0:n.video)||s,t=(null===(r=this._inputSettings)||void 0===r?void 0:r.audio)||s):(e=(null===(i=this._preloadCache)||void 0===i||null===(i=i.inputSettings)||void 0===i?void 0:i.video)||s,t=(null===(o=this._preloadCache)||void 0===o||null===(o=o.inputSettings)||void 0===o?void 0:o.audio)||s);var a={audio:t,video:e};return this._prepInputSettingsForSharing(a,!0)}},{key:\"_updatePreloadCacheInputSettings\",value:function(e,t){var n=this._inputSettings||{},r={};if(e.video){var i,o,s;if(r.video={},e.video.settings)r.video.settings={},t||e.video.settings.customTrack||null===(s=n.video)||void 0===s||!s.settings?r.video.settings=e.video.settings:r.video.settings=Aa(Aa({},n.video.settings),e.video.settings),Object.keys(r.video.settings).length||delete r.video.settings;else null!==(i=n.video)&&void 0!==i&&i.settings&&(r.video.settings=n.video.settings);e.video.processor?r.video.processor=e.video.processor:null!==(o=n.video)&&void 0!==o&&o.processor&&(r.video.processor=n.video.processor)}else n.video&&(r.video=n.video);if(e.audio){var a,c,l;if(r.audio={},e.audio.settings)r.audio.settings={},t||e.audio.settings.customTrack||null===(l=n.audio)||void 0===l||!l.settings?r.audio.settings=e.audio.settings:r.audio.settings=Aa(Aa({},n.audio.settings),e.audio.settings),Object.keys(r.audio.settings).length||delete r.audio.settings;else null!==(a=n.audio)&&void 0!==a&&a.settings&&(r.audio.settings=n.audio.settings);e.audio.processor?r.audio.processor=e.audio.processor:null!==(c=n.audio)&&void 0!==c&&c.processor&&(r.audio.processor=n.audio.processor)}else n.audio&&(r.audio=n.audio);this._maybeUpdateInputSettings(r)}},{key:\"_devicesFromInputSettings\",value:function(e){var t,n,r=(null==e||null===(t=e.video)||void 0===t||null===(t=t.settings)||void 0===t?void 0:t.deviceId)||null,i=(null==e||null===(n=e.audio)||void 0===n||null===(n=n.settings)||void 0===n?void 0:n.deviceId)||null,o=this._preloadCache.outputDeviceId||null;return{camera:r?{deviceId:r}:{},mic:i?{deviceId:i}:{},speaker:o?{deviceId:o}:{}}}},{key:\"updateInputSettings\",value:(G=p((function*(e){var t=this;return rc(),ac(e)?e.video||e.audio?(cc(e,this.properties.dailyConfig,this._sharedTracks),this._callObjectMode&&!this._callMachineInitialized?(this._updatePreloadCacheInputSettings(e,!0),this._getInputSettings()):new Promise((function(n,r){t.sendMessageToCallMachine({action:\"update-input-settings\",inputSettings:e},(function(i){if(i.error)r(i.error);else{if(i.returnPreloadCache)return t._updatePreloadCacheInputSettings(e,!0),void n(t._getInputSettings());t._maybeUpdateInputSettings(i.inputSettings),n(t._prepInputSettingsForSharing(i.inputSettings,!0))}}))}))):this._getInputSettings():(console.error(pc()),Promise.reject(pc()))})),function(e){return G.apply(this,arguments)})},{key:\"setBandwidth\",value:function(e){var t=e.kbs,n=e.trackConstraints;if(rc(),this._callMachineInitialized)return this.sendMessageToCallMachine({action:\"set-bandwidth\",kbs:t,trackConstraints:n}),this}},{key:\"getDailyLang\",value:function(){var e=this;if(rc(),this._callMachineInitialized)return new Promise((function(t){e.sendMessageToCallMachine({action:\"get-daily-lang\"},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))}},{key:\"setDailyLang\",value:function(e){return rc(),this.sendMessageToCallMachine({action:\"set-daily-lang\",lang:e}),this}},{key:\"setProxyUrl\",value:function(e){return this.sendMessageToCallMachine({action:\"set-proxy-url\",proxyUrl:e}),this}},{key:\"setIceConfig\",value:function(e){return this.sendMessageToCallMachine({action:\"set-ice-config\",iceConfig:e}),this}},{key:\"meetingSessionSummary\",value:function(){return[si,ai].includes(this._callState)?this._finalSummaryOfPrevSession:this._meetingSessionSummary}},{key:\"getMeetingSession\",value:(H=p((function*(){var e=this;return console.warn(\"getMeetingSession() is deprecated: use meetingSessionSummary(), which will return immediately\"),Ka(this._callState,\"getMeetingSession()\"),new Promise((function(t){e.sendMessageToCallMachine({action:\"get-meeting-session\"},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))})),function(){return H.apply(this,arguments)})},{key:\"meetingSessionState\",value:function(){return Ka(this._callState,\"meetingSessionState\"),this._meetingSessionState}},{key:\"setMeetingSessionData\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"replace\";tc(this._callObjectMode,\"setMeetingSessionData()\"),Ka(this._callState,\"setMeetingSessionData\");try{!function(e,t){new Ds({data:e,mergeStrategy:t})}(e,t)}catch(e){throw console.error(e),e}try{this.sendMessageToCallMachine({action:\"set-session-data\",data:e,mergeStrategy:t})}catch(e){throw new Error(\"Error setting meeting session data: \".concat(e))}}},{key:\"setUserName\",value:function(e,t){var n=this;return this.properties.userName=e,new Promise((function(r){n.sendMessageToCallMachine({action:\"set-user-name\",name:null!=e?e:\"\",thisMeetingOnly:is()||!!t&&!!t.thisMeetingOnly},(function(e){delete e.action,delete e.callbackStamp,r(e)}))}))}},{key:\"setUserData\",value:(W=p((function*(e){var t=this;try{oc(e)}catch(e){throw console.error(e),e}if(this.properties.userData=e,this._callMachineInitialized)return new Promise((function(n){try{t.sendMessageToCallMachine({action:\"set-user-data\",userData:e},(function(e){delete e.action,delete e.callbackStamp,n(e)}))}catch(e){throw new Error(\"Error setting user data: \".concat(e))}}))})),function(e){return W.apply(this,arguments)})},{key:\"validateAudioLevelInterval\",value:function(e){if(e&&(e<100||\"number\"!=typeof e))throw new Error(\"The interval must be a number greater than or equal to 100 milliseconds.\")}},{key:\"startLocalAudioLevelObserver\",value:function(e){var t=this;if(\"undefined\"==typeof AudioWorkletNode&&!is())throw new Error(\"startLocalAudioLevelObserver() is not supported on this browser\");if(this.validateAudioLevelInterval(e),this._callMachineInitialized)return this._isLocalAudioLevelObserverRunning=!0,new Promise((function(n,r){t.sendMessageToCallMachine({action:\"start-local-audio-level-observer\",interval:e},(function(e){t._isLocalAudioLevelObserverRunning=!e.error,e.error?r({error:e.error}):n()}))}));this._preloadCache.localAudioLevelObserver={enabled:!0,interval:e}}},{key:\"isLocalAudioLevelObserverRunning\",value:function(){return this._isLocalAudioLevelObserverRunning}},{key:\"stopLocalAudioLevelObserver\",value:function(){this._preloadCache.localAudioLevelObserver=null,this._localAudioLevel=0,this._isLocalAudioLevelObserverRunning=!1,this.sendMessageToCallMachine({action:\"stop-local-audio-level-observer\"})}},{key:\"startRemoteParticipantsAudioLevelObserver\",value:function(e){var t=this;if(this.validateAudioLevelInterval(e),this._callMachineInitialized)return this._isRemoteParticipantsAudioLevelObserverRunning=!0,new Promise((function(n,r){t.sendMessageToCallMachine({action:\"start-remote-participants-audio-level-observer\",interval:e},(function(e){t._isRemoteParticipantsAudioLevelObserverRunning=!e.error,e.error?r({error:e.error}):n()}))}));this._preloadCache.remoteParticipantsAudioLevelObserver={enabled:!0,interval:e}}},{key:\"isRemoteParticipantsAudioLevelObserverRunning\",value:function(){return this._isRemoteParticipantsAudioLevelObserverRunning}},{key:\"stopRemoteParticipantsAudioLevelObserver\",value:function(){this._preloadCache.remoteParticipantsAudioLevelObserver=null,this._remoteParticipantsAudioLevel={},this._isRemoteParticipantsAudioLevelObserverRunning=!1,this.sendMessageToCallMachine({action:\"stop-remote-participants-audio-level-observer\"})}},{key:\"startCamera\",value:(z=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(tc(this._callObjectMode,\"startCamera()\"),Xa(this._callState,this._isPreparingToJoin,\"startCamera()\",\"Did you mean to use setLocalAudio() and/or setLocalVideo() instead?\"),this.needsLoad())try{yield this.load(t)}catch(e){return Promise.reject(e)}else{if(this._didPreAuth){if(t.url&&t.url!==this.properties.url)return console.error(\"url in startCamera() is different than the one used in preAuth()\"),Promise.reject();if(t.token&&t.token!==this.properties.token)return console.error(\"token in startCamera() is different than the one used in preAuth()\"),Promise.reject()}this.validateProperties(t),this.properties=Aa(Aa({},this.properties),t)}return new Promise((function(t){e._preloadCache.inputSettings=e._prepInputSettingsForSharing(e._inputSettings,!1),e.sendMessageToCallMachine({action:\"start-camera\",properties:Qa(e.properties,e.callClientId),preloadCache:Qa(e._preloadCache,e.callClientId)},(function(e){t({camera:e.camera,mic:e.mic,speaker:e.speaker})}))}))})),function(){return z.apply(this,arguments)})},{key:\"validateCustomTrack\",value:function(e,t,n){if(n&&n.length>50)throw new Error(\"Custom track `trackName` must not be more than 50 characters\");if(t&&\"music\"!==t&&\"speech\"!==t&&!(t instanceof Object))throw new Error(\"Custom track `mode` must be either `music` | `speech` | `DailyMicAudioModeSettings` or `undefined`\");if(!!n&&[\"cam-audio\",\"cam-video\",\"screen-video\",\"screen-audio\",\"rmpAudio\",\"rmpVideo\",\"customVideoDefaults\"].includes(n))throw new Error(\"Custom track `trackName` must not match a track name already used by daily: cam-audio, cam-video, customVideoDefaults, screen-video, screen-audio, rmpAudio, rmpVideo\");if(!(e instanceof MediaStreamTrack))throw new Error(\"Custom tracks provided must be instances of MediaStreamTrack\")}},{key:\"startCustomTrack\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{track:track,mode:mode,trackName:trackName,ignoreAudioLevel:ignoreAudioLevel};return rc(),Ka(this._callState,\"startCustomTrack()\"),this.validateCustomTrack(t.track,t.mode,t.trackName),new Promise((function(n,r){e._sharedTracks.customTrack=t.track,t.track=Qo,e.sendMessageToCallMachine({action:\"start-custom-track\",properties:t},(function(e){e.error?r({error:e.error}):n(e.mediaTag)}))}))}},{key:\"stopCustomTrack\",value:function(e){var t=this;return rc(),Ka(this._callState,\"stopCustomTrack()\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"stop-custom-track\",mediaTag:e},(function(e){n(e.mediaTag)}))}))}},{key:\"setCamera\",value:function(e){var t=this;return ic(),Za(this._callMachineInitialized,\"setCamera()\"),new Promise((function(n){t.sendMessageToCallMachine({action:\"set-camera\",cameraDeviceId:e},(function(e){n({device:e.device})}))}))}},{key:\"setAudioDevice\",value:(q=p((function*(e){return ic(),this.nativeUtils().setAudioDevice(e),{deviceId:yield this.nativeUtils().getAudioDevice()}})),function(e){return q.apply(this,arguments)})},{key:\"cycleCamera\",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise((function(n){e.sendMessageToCallMachine({action:\"cycle-camera\",properties:t},(function(e){n({device:e.device})}))}))}},{key:\"cycleMic\",value:function(){var e=this;return rc(),new Promise((function(t){e.sendMessageToCallMachine({action:\"cycle-mic\"},(function(e){t({device:e.device})}))}))}},{key:\"getCameraFacingMode\",value:function(){var e=this;return ic(),new Promise((function(t){e.sendMessageToCallMachine({action:\"get-camera-facing-mode\"},(function(e){t(e.facingMode)}))}))}},{key:\"setInputDevicesAsync\",value:($=p((function*(e){var t=this,n=e.audioDeviceId,r=e.videoDeviceId,i=e.audioSource,o=e.videoSource;if(rc(),void 0!==i&&(n=i),void 0!==o&&(r=o),\"boolean\"==typeof n&&(this._setAllowLocalAudio(n),n=void 0),\"boolean\"==typeof r&&(this._setAllowLocalVideo(r),r=void 0),!n&&!r)return yield this.getInputDevices();var s={};return n&&(n instanceof MediaStreamTrack?(this._sharedTracks.audioTrack=n,n=Qo,s.audio={settings:{customTrack:n}}):(delete this._sharedTracks.audioTrack,s.audio={settings:{deviceId:n}})),r&&(r instanceof MediaStreamTrack?(this._sharedTracks.videoTrack=r,r=Qo,s.video={settings:{customTrack:r}}):(delete this._sharedTracks.videoTrack,s.video={settings:{deviceId:r}})),this._callObjectMode&&this.needsLoad()?(this._updatePreloadCacheInputSettings(s,!1),this._devicesFromInputSettings(this._inputSettings)):new Promise((function(e){t.sendMessageToCallMachine({action:\"set-input-devices\",audioDeviceId:n,videoDeviceId:r},(function(n){if(delete n.action,delete n.callbackStamp,n.returnPreloadCache)return t._updatePreloadCacheInputSettings(s,!1),void e(t._devicesFromInputSettings(t._inputSettings));e(n)}))}))})),function(e){return $.apply(this,arguments)})},{key:\"setOutputDeviceAsync\",value:(J=p((function*(e){var t=this,n=e.outputDeviceId;if(rc(),!n||\"string\"!=typeof n)throw new Error(\"outputDeviceId must be provided and must be a valid device id\");return this._preloadCache.outputDeviceId=n,this._callObjectMode&&this.needsLoad()?this._devicesFromInputSettings(this._inputSettings):new Promise((function(e,r){t.sendMessageToCallMachine({action:\"set-output-device\",outputDeviceId:n},(function(n){if(delete n.action,delete n.callbackStamp,n.error){var i=new Error(n.error.message);return i.type=n.error.type,void r(i)}n.returnPreloadCache?e(t._devicesFromInputSettings(t._inputSettings)):e(n)}))}))})),function(e){return J.apply(this,arguments)})},{key:\"getInputDevices\",value:(V=p((function*(){var e=this;return this._callObjectMode&&this.needsLoad()?this._devicesFromInputSettings(this._inputSettings):new Promise((function(t){e.sendMessageToCallMachine({action:\"get-input-devices\"},(function(n){n.returnPreloadCache?t(e._devicesFromInputSettings(e._inputSettings)):t({camera:n.camera,mic:n.mic,speaker:n.speaker})}))}))})),function(){return V.apply(this,arguments)})},{key:\"nativeInCallAudioMode\",value:function(){return ic(),this._nativeInCallAudioMode}},{key:\"setNativeInCallAudioMode\",value:function(e){if(ic(),[Da,Na].includes(e)){if(e!==this._nativeInCallAudioMode)return this._nativeInCallAudioMode=e,!this.disableReactNativeAutoDeviceManagement(\"audio\")&&Ya(this._callState,this._isPreparingToJoin)&&this.nativeUtils().setAudioMode(this._nativeInCallAudioMode),this}else console.error(\"invalid in-call audio mode specified: \",e)}},{key:\"preAuth\",value:(U=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(tc(this._callObjectMode,\"preAuth()\"),Xa(this._callState,this._isPreparingToJoin,\"preAuth()\"),this.needsLoad()&&(yield this.load(t)),!t.url)throw new Error(\"preAuth() requires at least a url to be provided\");return this.validateProperties(t),this.properties=Aa(Aa({},this.properties),t),new Promise((function(t,n){e._preloadCache.inputSettings=e._prepInputSettingsForSharing(e._inputSettings,!1),e.sendMessageToCallMachine({action:\"daily-method-preauth\",properties:Qa(e.properties,e.callClientId),preloadCache:Qa(e._preloadCache,e.callClientId)},(function(r){return r.error?n(r.error):r.access?(e._didPreAuth=!0,void t({access:r.access})):n(new Error(\"unknown error in preAuth()\"))}))}))})),function(){return U.apply(this,arguments)})},{key:\"load\",value:(R=p((function*(e){var t=this;if(this.needsLoad()){if(this._destroyed&&(this._logUseAfterDestroy(),this.strictMode))throw new Error(\"Use after destroy\");if(e&&(this.validateProperties(e),this.properties=Aa(Aa({},this.properties),e)),!this._callObjectMode&&!this.properties.url)throw new Error(\"can't load iframe meeting because url property isn't set\");return this._updateCallState(ni),this.emitDailyJSEvent({action:Vi}),this._callObjectMode?new Promise((function(e,n){t._callObjectLoader.cancel();var r=Date.now();t._callObjectLoader.load(t.properties.dailyConfig,(function(n){t._bundleLoadTime=n?\"no-op\":Date.now()-r,t._updateCallState(ri),n&&t.emitDailyJSEvent({action:$i}),e()}),(function(e,r){if(t.emitDailyJSEvent({action:Ji}),!r){t._updateCallState(ai),t.resetMeetingDependentVars();var i={action:Jo,errorMsg:e.msg,error:{type:\"connection-error\",msg:\"Failed to load call object bundle.\",details:{on:\"load\",sourceError:e,bundleUrl:B(t.properties.dailyConfig)}}};t._maybeSendToSentry(i),t.emitDailyJSEvent(i),n(e.msg)}}))})):(this._iframe.src=F(this.assembleMeetingUrl(),this.properties.dailyConfig),new Promise((function(e,n){t._loadedCallback=function(r){t._callState!==ai?(t._updateCallState(ri),(t.properties.cssFile||t.properties.cssText)&&t.loadCss(t.properties),e()):n(r)}})))}})),function(e){return R.apply(this,arguments)})},{key:\"join\",value:(L=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._testCallInProgress&&this.stopTestCallQuality();var n=!1;if(this.needsLoad()){this.updateIsPreparingToJoin(!0);try{yield this.load(t)}catch(e){return this.updateIsPreparingToJoin(!1),Promise.reject(e)}}else{if(n=!(!this.properties.cssFile&&!this.properties.cssText),this._didPreAuth){if(t.url&&t.url!==this.properties.url)return console.error(\"url in join() is different than the one used in preAuth()\"),this.updateIsPreparingToJoin(!1),Promise.reject();if(t.token&&t.token!==this.properties.token)return console.error(\"token in join() is different than the one used in preAuth()\"),this.updateIsPreparingToJoin(!1),Promise.reject()}if(t.url&&!this._callObjectMode&&t.url&&t.url!==this.properties.url)return console.error(\"url in join() is different than the one used in load() (\".concat(this.properties.url,\" -> \").concat(t.url,\")\")),this.updateIsPreparingToJoin(!1),Promise.reject();this.validateProperties(t),this.properties=Aa(Aa({},this.properties),t)}return void 0!==t.showLocalVideo&&(this._callObjectMode?console.error(\"showLocalVideo is not available in callObject mode\"):this._showLocalVideo=!!t.showLocalVideo),void 0!==t.showParticipantsBar&&(this._callObjectMode?console.error(\"showParticipantsBar is not available in callObject mode\"):this._showParticipantsBar=!!t.showParticipantsBar),this._callState===oi||this._callState===ii?(console.warn(\"already joined meeting, call leave() before joining again\"),void this.updateIsPreparingToJoin(!1)):(this._updateCallState(ii,!1),this.emitDailyJSEvent({action:Wi}),this._preloadCache.inputSettings=this._prepInputSettingsForSharing(this._inputSettings||{},!1),this.sendMessageToCallMachine({action:\"join-meeting\",properties:Qa(this.properties,this.callClientId),preloadCache:Qa(this._preloadCache,this.callClientId)}),new Promise((function(t,r){e._joinedCallback=function(i,o){if(e._callState!==ai){if(e._updateCallState(oi),i)for(var s in i){if(e._callObjectMode){var a=e._callMachine().store;Zs(i[s],a),ea(i[s],a),na(i[s],e._participants[s],a)}e._participants[s]=Aa({},i[s]),e.toggleParticipantAudioBasedOnNativeAudioFocus()}n&&e.loadCss(e.properties),t(i)}else r(o)}})))})),function(){return L.apply(this,arguments)})},{key:\"leave\",value:(x=p((function*(){var e=this;return this._testCallInProgress&&this.stopTestCallQuality(),new Promise((function(t){e._callState===si||e._callState===ai?t():e._callObjectLoader&&!e._callObjectLoader.loaded?(e._callObjectLoader.cancel(),e._updateCallState(si),e.resetMeetingDependentVars(),e.emitDailyJSEvent({action:si}),t()):(e._resolveLeave=t,e.sendMessageToCallMachine({action:\"leave-meeting\"}))}))})),function(){return x.apply(this,arguments)})},{key:\"startScreenShare\",value:(I=p((function*(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(Za(this._callMachineInitialized,\"startScreenShare()\"),t.screenVideoSendSettings&&this._validateVideoSendSettings(\"screenVideo\",t.screenVideoSendSettings),t.mediaStream&&(this._sharedTracks.screenMediaStream=t.mediaStream,t.mediaStream=Qo),\"undefined\"!=typeof DailyNativeUtils&&void 0!==DailyNativeUtils.isIOS&&DailyNativeUtils.isIOS){var n=this.nativeUtils();if(yield n.isScreenBeingCaptured())return void this.emitDailyJSEvent({action:Vo,type:\"screen-share-error\",errorMsg:\"Could not start the screen sharing. The screen is already been captured!\"});n.setSystemScreenCaptureStartCallback((function(){n.setSystemScreenCaptureStartCallback(null),e.sendMessageToCallMachine({action:Wo,captureOptions:t})})),n.presentSystemScreenCapturePrompt()}else this.sendMessageToCallMachine({action:Wo,captureOptions:t})})),function(){return I.apply(this,arguments)})},{key:\"stopScreenShare\",value:function(){Za(this._callMachineInitialized,\"stopScreenShare()\"),this.sendMessageToCallMachine({action:\"local-screen-stop\"})}},{key:\"startRecording\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.type;if(t&&\"cloud\"!==t&&\"raw-tracks\"!==t&&\"local\"!==t)throw new Error(\"invalid type: \".concat(t,\", allowed values 'cloud', 'raw-tracks', or 'local'\"));this.sendMessageToCallMachine(Aa({action:\"local-recording-start\"},e))}},{key:\"updateRecording\",value:function(e){var t=e.layout,n=void 0===t?{preset:\"default\"}:t,r=e.instanceId;this.sendMessageToCallMachine({action:\"daily-method-update-recording\",layout:n,instanceId:r})}},{key:\"stopRecording\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(Aa({action:\"local-recording-stop\"},e))}},{key:\"startLiveStreaming\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(Aa({action:\"daily-method-start-live-streaming\"},e))}},{key:\"updateLiveStreaming\",value:function(e){var t=e.layout,n=void 0===t?{preset:\"default\"}:t,r=e.instanceId;this.sendMessageToCallMachine({action:\"daily-method-update-live-streaming\",layout:n,instanceId:r})}},{key:\"addLiveStreamingEndpoints\",value:function(e){var t=e.endpoints,n=e.instanceId;this.sendMessageToCallMachine({action:Ho,endpointsOp:es,endpoints:t,instanceId:n})}},{key:\"removeLiveStreamingEndpoints\",value:function(e){var t=e.endpoints,n=e.instanceId;this.sendMessageToCallMachine({action:Ho,endpointsOp:ts,endpoints:t,instanceId:n})}},{key:\"stopLiveStreaming\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.sendMessageToCallMachine(Aa({action:\"daily-method-stop-live-streaming\"},e))}},{key:\"validateDailyConfig\",value:function(e){e.camSimulcastEncodings&&(console.warn(\"camSimulcastEncodings is deprecated. Use sendSettings, found in DailyCallOptions, to provide camera simulcast settings.\"),this.validateSimulcastEncodings(e.camSimulcastEncodings)),e.screenSimulcastEncodings&&console.warn(\"screenSimulcastEncodings is deprecated. Use sendSettings, found in DailyCallOptions, to provide screen simulcast settings.\"),vs()&&e.noAutoDefaultDeviceChange&&console.warn(\"noAutoDefaultDeviceChange is not supported on Android, and will be ignored.\")}},{key:\"validateSimulcastEncodings\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(e){if(!(e instanceof Array||Array.isArray(e)))throw new Error(\"encodings must be an Array\");if(!_c(e.length,1,3))throw new Error(\"encodings must be an Array with between 1 to \".concat(3,\" layers\"));for(var r=0;r<e.length;r++){var i=e[r];for(var o in this._validateEncodingLayerHasValidProperties(i),i)if(Ua.includes(o)){if(\"number\"!=typeof i[o])throw new Error(\"\".concat(o,\" must be a number\"));if(t){var s=t[o],a=s.min,c=s.max;if(!_c(i[o],a,c))throw new Error(\"\".concat(o,\" value not in range. valid range: \").concat(a,\" to \").concat(c))}}else if(![\"active\",\"scalabilityMode\"].includes(o))throw new Error(\"Invalid key \".concat(o,\", valid keys are:\")+Object.values(Ua));if(n&&!i.hasOwnProperty(\"maxBitrate\"))throw new Error(\"maxBitrate is not specified\")}}}},{key:\"startRemoteMediaPlayer\",value:(j=p((function*(e){var t=this,n=e.url,r=e.settings,i=void 0===r?{state:Xo.PLAY}:r;try{!function(e){if(\"string\"!=typeof e)throw new Error('url parameter must be \"string\" type')}(n),bc(i),function(e){for(var t in e)if(!Va.includes(t))throw new Error(\"Invalid key \".concat(t,\", valid keys are: \").concat(Va));e.simulcastEncodings&&this.validateSimulcastEncodings(e.simulcastEncodings,Ba,!0)}(i)}catch(e){throw console.error(\"invalid argument Error: \".concat(e)),console.error('startRemoteMediaPlayer arguments must be of the form:\\n { url: \"playback url\",\\n settings?:\\n {state: \"play\"|\"pause\", simulcastEncodings?: [{}] } }'),e}return new Promise((function(e,r){t.sendMessageToCallMachine({action:\"daily-method-start-remote-media-player\",url:n,settings:i},(function(t){t.error?r({error:t.error,errorMsg:t.errorMsg}):e({session_id:t.session_id,remoteMediaPlayerState:{state:t.state,settings:t.settings}})}))}))})),function(e){return j.apply(this,arguments)})},{key:\"stopRemoteMediaPlayer\",value:(A=p((function*(e){var t=this;if(\"string\"!=typeof e)throw new Error(\" remotePlayerID must be of type string\");return new Promise((function(n,r){t.sendMessageToCallMachine({action:\"daily-method-stop-remote-media-player\",session_id:e},(function(e){e.error?r({error:e.error,errorMsg:e.errorMsg}):n()}))}))})),function(e){return A.apply(this,arguments)})},{key:\"updateRemoteMediaPlayer\",value:(P=p((function*(e){var t=this,n=e.session_id,r=e.settings;try{bc(r)}catch(e){throw console.error(\"invalid argument Error: \".concat(e)),console.error('updateRemoteMediaPlayer arguments must be of the form:\\n session_id: \"participant session\",\\n { settings?: {state: \"play\"|\"pause\"} }'),e}return new Promise((function(e,i){t.sendMessageToCallMachine({action:\"daily-method-update-remote-media-player\",session_id:n,settings:r},(function(t){t.error?i({error:t.error,errorMsg:t.errorMsg}):e({session_id:t.session_id,remoteMediaPlayerState:{state:t.state,settings:t.settings}})}))}))})),function(e){return P.apply(this,arguments)})},{key:\"startTranscription\",value:function(e){Ka(this._callState,\"startTranscription()\"),this.sendMessageToCallMachine(Aa({action:\"daily-method-start-transcription\"},e))}},{key:\"updateTranscription\",value:function(e){if(Ka(this._callState,\"updateTranscription()\"),!e)throw new Error(\"updateTranscription Error: options is mandatory\");if(\"object\"!==n(e))throw new Error(\"updateTranscription Error: options must be object type\");if(e.participants&&!Array.isArray(e.participants))throw new Error(\"updateTranscription Error: participants must be an array\");this.sendMessageToCallMachine(Aa({action:\"daily-method-update-transcription\"},e))}},{key:\"stopTranscription\",value:function(e){if(Ka(this._callState,\"stopTranscription()\"),e&&\"object\"!==n(e))throw new Error(\"stopTranscription Error: options must be object type\");if(e&&!e.instanceId)throw new Error('\"instanceId\" not provided');this.sendMessageToCallMachine(Aa({action:\"daily-method-stop-transcription\"},e))}},{key:\"startDialOut\",value:(O=p((function*(e){var t=this;Ka(this._callState,\"startDialOut()\");var n=function(e){if(e){if(!Array.isArray(e))throw new Error(\"Error starting dial out: audio codec must be an array\");if(e.length<=0)throw new Error(\"Error starting dial out: audio codec array specified but empty\");e.forEach((function(e){if(\"string\"!=typeof e)throw new Error(\"Error starting dial out: audio codec must be a string\");if(\"OPUS\"!==e&&\"PCMU\"!==e&&\"PCMA\"!==e&&\"G722\"!==e)throw new Error(\"Error starting dial out: audio codec must be one of OPUS, PCMU, PCMA, G722\")}))}};if(!e.sipUri&&!e.phoneNumber)throw new Error(\"Error starting dial out: either a sip uri or phone number must be provided\");if(e.sipUri&&e.phoneNumber)throw new Error(\"Error starting dial out: only one of sip uri or phone number must be provided\");if(e.sipUri){if(\"string\"!=typeof e.sipUri)throw new Error(\"Error starting dial out: sipUri must be a string\");if(!e.sipUri.startsWith(\"sip:\"))throw new Error(\"Error starting dial out: Invalid SIP URI, must start with 'sip:'\");if(e.video&&\"boolean\"!=typeof e.video)throw new Error(\"Error starting dial out: video must be a boolean value\");!function(e){if(e&&(n(e.audio),e.video)){if(!Array.isArray(e.video))throw new Error(\"Error starting dial out: video codec must be an array\");if(e.video.length<=0)throw new Error(\"Error starting dial out: video codec array specified but empty\");e.video.forEach((function(e){if(\"string\"!=typeof e)throw new Error(\"Error starting dial out: video codec must be a string\");if(\"H264\"!==e&&\"VP8\"!==e)throw new Error(\"Error starting dial out: video codec must be H264 or VP8\")}))}}(e.codecs)}if(e.phoneNumber){if(\"string\"!=typeof e.phoneNumber)throw new Error(\"Error starting dial out: phoneNumber must be a string\");if(!/^\\+\\d{1,}$/.test(e.phoneNumber))throw new Error(\"Error starting dial out: Invalid phone number, must be valid phone number as per E.164\");e.codecs&&n(e.codecs.audio)}if(e.callerId){if(\"string\"!=typeof e.callerId)throw new Error(\"Error starting dial out: callerId must be a string\");if(e.sipUri)throw new Error(\"Error starting dial out: callerId not allowed with sipUri\")}if(e.displayName){if(\"string\"!=typeof e.displayName)throw new Error(\"Error starting dial out: displayName must be a string\");if(e.displayName.length>=200)throw new Error(\"Error starting dial out: displayName length must be less than 200\")}if(e.userId){if(\"string\"!=typeof e.userId)throw new Error(\"Error starting dial out: userId must be a string\");if(e.userId.length>36)throw new Error(\"Error starting dial out: userId length must be less than or equal to 36\")}if(Ga(e),e.permissions&&e.permissions.canReceive){var r=f(Ca.validateJSONObject(e.permissions.canReceive),2),i=r[0],o=r[1];if(!i)throw new Error(o)}return new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:\"dialout-start\"},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return O.apply(this,arguments)})},{key:\"stopDialOut\",value:function(e){var t=this;return Ka(this._callState,\"stopDialOut()\"),new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:\"dialout-stop\"},e),(function(e){e.error?r(e.error):n(e)}))}))}},{key:\"sipCallTransfer\",value:(T=p((function*(e){var t=this;if(Ka(this._callState,\"sipCallTransfer()\"),!e)throw new Error(\"sipCallTransfer() requires a sessionId and toEndPoint\");return e.useSipRefer=!1,yc(e,\"sipCallTransfer\"),Ga(e),new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:ns},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return T.apply(this,arguments)})},{key:\"sipRefer\",value:(E=p((function*(e){var t=this;if(Ka(this._callState,\"sipRefer()\"),!e)throw new Error(\"sessionId and toEndPoint are mandatory parameter\");return e.useSipRefer=!0,yc(e,\"sipRefer\"),new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:ns},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return E.apply(this,arguments)})},{key:\"sendDTMF\",value:(C=p((function*(e){var t=this;return Ka(this._callState,\"sendDTMF()\"),function(e){var t=e.sessionId,n=e.tones;if(!t||!n)throw new Error(\"sessionId and tones are mandatory parameter\");if(\"string\"!=typeof t||\"string\"!=typeof n)throw new Error(\"sessionId and tones should be of string type\");if(n.length>20)throw new Error(\"tones string must be upto 20 characters\");var r=/[^0-9A-D*#]/g,i=n.match(r);if(i&&i[0])throw new Error(\"\".concat(i[0],\" is not valid DTMF tone\"))}(e),new Promise((function(n,r){t.sendMessageToCallMachine(Aa({action:\"send-dtmf\"},e),(function(e){e.error?r(e.error):n(e)}))}))})),function(e){return C.apply(this,arguments)})},{key:\"getNetworkStats\",value:function(){var e=this;if(this._callState!==oi){return Promise.resolve(Aa({stats:{latest:{}}},this._network))}return new Promise((function(t){e.sendMessageToCallMachine({action:\"get-calc-stats\"},(function(n){t(Aa(Aa({},e._network),{},{stats:n.stats}))}))}))}},{key:\"testWebsocketConnectivity\",value:(M=p((function*(){var e=this;if(ec(this._testCallInProgress,\"testWebsocketConnectivity()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}return new Promise((function(t,n){e.sendMessageToCallMachine({action:\"test-websocket-connectivity\"},(function(e){e.error?n(e.error):t(e.results)}))}))})),function(){return M.apply(this,arguments)})},{key:\"abortTestWebsocketConnectivity\",value:function(){this.sendMessageToCallMachine({action:\"abort-test-websocket-connectivity\"})}},{key:\"_validateVideoTrackForNetworkTests\",value:function(e){return e?e instanceof MediaStreamTrack?!!va(e,{isLocalScreenVideo:!1})||(console.error(\"Video track is not playable. This test needs a live video track.\"),!1):(console.error(\"Video track needs to be of type `MediaStreamTrack`.\"),!1):(console.error(\"Missing video track. You must provide a video track in order to run this test.\"),!1)}},{key:\"testCallQuality\",value:(k=p((function*(){var t=this;rc(),tc(this._callObjectMode,\"testCallQuality()\"),Za(this._callMachineInitialized,\"testCallQuality()\",null,!0),Xa(this._callState,this._isPreparingToJoin,\"testCallQuality()\");var n=this._testCallAlreadyInProgress,r=function(e){n||(t._testCallInProgress=e)};if(r(!0),this.needsLoad())try{var i=this._callState;yield this.load(),this._callState=i}catch(e){return r(!1),Promise.reject(e)}return new Promise((function(n){t.sendMessageToCallMachine({action:\"test-call-quality\",dailyJsVersion:t.properties.dailyJsVersion},(function(i){var o=i.results,s=o.result,a=e(o,Ta);if(\"failed\"===s){var c,l=Aa({},a);null!==(c=a.error)&&void 0!==c&&c.details?(a.error.details=JSON.parse(a.error.details),l.error=Aa(Aa({},l.error),{},{details:Aa({},l.error.details)}),l.error.details.duringTest=\"testCallQuality\"):(l.error=l.error?Aa({},l.error):{},l.error.details={duringTest:\"testCallQuality\"}),t._maybeSendToSentry(l)}r(!1),n(Aa({result:s},a))}))}))})),function(){return k.apply(this,arguments)})},{key:\"stopTestCallQuality\",value:function(){this.sendMessageToCallMachine({action:\"stop-test-call-quality\"})}},{key:\"testConnectionQuality\",value:(w=p((function*(e){var t;is()?(console.warn(\"testConnectionQuality() is deprecated: use testPeerToPeerCallQuality() instead\"),t=yield this.testPeerToPeerCallQuality(e)):(console.warn(\"testConnectionQuality() is deprecated: use testCallQuality() instead\"),t=yield this.testCallQuality());var n={result:t.result,secondsElapsed:t.secondsElapsed};return t.data&&(n.data={maxRTT:t.data.maxRoundTripTime,packetLoss:t.data.avgRecvPacketLoss}),n})),function(e){return w.apply(this,arguments)})},{key:\"testPeerToPeerCallQuality\",value:(_=p((function*(e){var t=this;if(ec(this._testCallInProgress,\"testPeerToPeerCallQuality()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}var n=e.videoTrack,r=e.duration;if(!this._validateVideoTrackForNetworkTests(n))throw new Error(\"Video track error\");return this._sharedTracks.videoTrackForConnectionQualityTest=n,new Promise((function(e,n){t.sendMessageToCallMachine({action:\"test-p2p-call-quality\",duration:r},(function(t){t.error?n(t.error):e(t.results)}))}))})),function(e){return _.apply(this,arguments)})},{key:\"stopTestConnectionQuality\",value:function(){is()?(console.warn(\"stopTestConnectionQuality() is deprecated: use testPeerToPeerCallQuality() and stopTestPeerToPeerCallQuality() instead\"),this.stopTestPeerToPeerCallQuality()):(console.warn(\"stopTestConnectionQuality() is deprecated: use testCallQuality() and stopTestCallQuality() instead\"),this.stopTestCallQuality())}},{key:\"stopTestPeerToPeerCallQuality\",value:function(){this.sendMessageToCallMachine({action:\"stop-test-p2p-call-quality\"})}},{key:\"testNetworkConnectivity\",value:(y=p((function*(e){var t=this;if(ec(this._testCallInProgress,\"testNetworkConnectivity()\"),this.needsLoad())try{yield this.load()}catch(e){return Promise.reject(e)}if(!this._validateVideoTrackForNetworkTests(e))throw new Error(\"Video track error\");return this._sharedTracks.videoTrackForNetworkConnectivityTest=e,new Promise((function(e,n){t.sendMessageToCallMachine({action:\"test-network-connectivity\"},(function(t){t.error?n(t.error):e(t.results)}))}))})),function(e){return y.apply(this,arguments)})},{key:\"abortTestNetworkConnectivity\",value:function(){this.sendMessageToCallMachine({action:\"abort-test-network-connectivity\"})}},{key:\"getCpuLoadStats\",value:function(){var e=this;return new Promise((function(t){if(e._callState===oi){e.sendMessageToCallMachine({action:\"get-cpu-load-stats\"},(function(e){t(e.cpuStats)}))}else t({cpuLoadState:void 0,cpuLoadStateReason:void 0,stats:{}})}))}},{key:\"_validateEncodingLayerHasValidProperties\",value:function(e){var t;if(!((null===(t=Object.keys(e))||void 0===t?void 0:t.length)>0))throw new Error(\"Empty encoding is not allowed. At least one of these valid keys should be specified:\"+Object.values(Ua))}},{key:\"_validateVideoSendSettings\",value:function(e,t){var r=\"screenVideo\"===e?[\"default-screen-video\",\"detail-optimized\",\"motion-optimized\",\"motion-and-detail-balanced\"]:[\"default-video\",\"bandwidth-optimized\",\"bandwidth-and-quality-balanced\",\"quality-optimized\",\"adaptive-2-layers\",\"adaptive-3-layers\"],i=\"Video send settings should be either an object or one of the supported presets: \".concat(r.join());if(\"string\"==typeof t){if(!r.includes(t))throw new Error(i)}else{if(\"object\"!==n(t))throw new Error(i);if(!t.maxQuality&&!t.encodings&&void 0===t.allowAdaptiveLayers)throw new Error(\"Video send settings must contain at least maxQuality, allowAdaptiveLayers or encodings attribute\");if(t.maxQuality&&-1===[\"low\",\"medium\",\"high\"].indexOf(t.maxQuality))throw new Error(\"maxQuality must be either low, medium or high\");if(t.encodings){var o=!1;switch(Object.keys(t.encodings).length){case 1:o=!t.encodings.low;break;case 2:o=!t.encodings.low||!t.encodings.medium;break;case 3:o=!t.encodings.low||!t.encodings.medium||!t.encodings.high;break;default:o=!0}if(o)throw new Error(\"Encodings must be defined as: low, low and medium, or low, medium and high.\");t.encodings.low&&this._validateEncodingLayerHasValidProperties(t.encodings.low),t.encodings.medium&&this._validateEncodingLayerHasValidProperties(t.encodings.medium),t.encodings.high&&this._validateEncodingLayerHasValidProperties(t.encodings.high)}}}},{key:\"validateUpdateSendSettings\",value:function(e){var t=this;if(!e||0===Object.keys(e).length)throw new Error(\"Send settings must contain at least information for one track!\");Object.entries(e).forEach((function(e){var n=f(e,2),r=n[0],i=n[1];t._validateVideoSendSettings(r,i)}))}},{key:\"updateSendSettings\",value:function(e){var t=this;return this.validateUpdateSendSettings(e),this.needsLoad()?(this._preloadCache.sendSettings=e,{sendSettings:this._preloadCache.sendSettings}):new Promise((function(n,r){t.sendMessageToCallMachine({action:\"update-send-settings\",sendSettings:e},(function(e){e.error?r(e.error):n(e.sendSettings)}))}))}},{key:\"getSendSettings\",value:function(){return this._sendSettings||this._preloadCache.sendSettings}},{key:\"getLocalAudioLevel\",value:function(){return this._localAudioLevel}},{key:\"getRemoteParticipantsAudioLevel\",value:function(){return this._remoteParticipantsAudioLevel}},{key:\"getActiveSpeaker\",value:function(){return rc(),this._activeSpeaker}},{key:\"setActiveSpeakerMode\",value:function(e){return rc(),this.sendMessageToCallMachine({action:\"set-active-speaker-mode\",enabled:e}),this}},{key:\"activeSpeakerMode\",value:function(){return rc(),this._activeSpeakerMode}},{key:\"subscribeToTracksAutomatically\",value:function(){return this._preloadCache.subscribeToTracksAutomatically}},{key:\"setSubscribeToTracksAutomatically\",value:function(e){return Ka(this._callState,\"setSubscribeToTracksAutomatically()\",\"Use the subscribeToTracksAutomatically configuration property.\"),this._preloadCache.subscribeToTracksAutomatically=e,this.sendMessageToCallMachine({action:\"daily-method-subscribe-to-tracks-automatically\",enabled:e}),this}},{key:\"enumerateDevices\",value:(m=p((function*(){var e=this;if(this._callObjectMode){var t=yield navigator.mediaDevices.enumerateDevices();return\"Firefox\"===ms()&&ys().major>115&&ys().major<123&&(t=t.filter((function(e){return\"audiooutput\"!==e.kind}))),{devices:t.map((function(e){var t=JSON.parse(JSON.stringify(e));if(!is()&&\"videoinput\"===e.kind&&e.getCapabilities){var n,r=e.getCapabilities();t.facing=(null==r||null===(n=r.facingMode)||void 0===n?void 0:n.length)>=1?r.facingMode[0]:void 0}return t}))}}return new Promise((function(t){e.sendMessageToCallMachine({action:\"enumerate-devices\"},(function(e){t({devices:e.devices})}))}))})),function(){return m.apply(this,arguments)})},{key:\"sendAppMessage\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"*\";if(Ka(this._callState,\"sendAppMessage()\"),JSON.stringify(e).length>this._maxAppMessageSize)throw new Error(\"Message data too large. Max size is \"+this._maxAppMessageSize);return this.sendMessageToCallMachine({action:\"app-msg\",data:e,to:t}),this}},{key:\"addFakeParticipant\",value:function(e){return rc(),Ka(this._callState,\"addFakeParticipant()\"),this.sendMessageToCallMachine(Aa({action:\"add-fake-participant\"},e)),this}},{key:\"setShowNamesMode\",value:function(e){return nc(this._callObjectMode,\"setShowNamesMode()\"),rc(),e&&\"always\"!==e&&\"never\"!==e?(console.error('setShowNamesMode argument should be \"always\", \"never\", or false'),this):(this.sendMessageToCallMachine({action:\"set-show-names\",mode:e}),this)}},{key:\"setShowLocalVideo\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return nc(this._callObjectMode,\"setShowLocalVideo()\"),rc(),Ka(this._callState,\"setShowLocalVideo()\"),\"boolean\"!=typeof e?(console.error(\"setShowLocalVideo only accepts a boolean value\"),this):(this.sendMessageToCallMachine({action:\"set-show-local-video\",show:e}),this._showLocalVideo=e,this)}},{key:\"showLocalVideo\",value:function(){return nc(this._callObjectMode,\"showLocalVideo()\"),rc(),this._showLocalVideo}},{key:\"setShowParticipantsBar\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return nc(this._callObjectMode,\"setShowParticipantsBar()\"),rc(),Ka(this._callState,\"setShowParticipantsBar()\"),\"boolean\"!=typeof e?(console.error(\"setShowParticipantsBar only accepts a boolean value\"),this):(this.sendMessageToCallMachine({action:\"set-show-participants-bar\",show:e}),this._showParticipantsBar=e,this)}},{key:\"showParticipantsBar\",value:function(){return nc(this._callObjectMode,\"showParticipantsBar()\"),rc(),this._showParticipantsBar}},{key:\"customIntegrations\",value:function(){return rc(),nc(this._callObjectMode,\"customIntegrations()\"),this._customIntegrations}},{key:\"setCustomIntegrations\",value:function(e){return rc(),nc(this._callObjectMode,\"setCustomIntegrations()\"),Ka(this._callState,\"setCustomIntegrations()\"),gc(e)?(this.sendMessageToCallMachine({action:\"set-custom-integrations\",integrations:e}),this._customIntegrations=e,this):this}},{key:\"startCustomIntegrations\",value:function(e){var t=this;if(rc(),nc(this._callObjectMode,\"startCustomIntegrations()\"),Ka(this._callState,\"startCustomIntegrations()\"),Array.isArray(e)&&e.some((function(e){return\"string\"!=typeof e}))||!Array.isArray(e)&&\"string\"!=typeof e)return console.error(\"startCustomIntegrations() only accepts string | string[]\"),this;var n=\"string\"==typeof e?[e]:e,r=n.filter((function(e){return!(e in t._customIntegrations)}));return r.length?(console.error(\"Can't find custom integration(s): \\\"\".concat(r.join(\", \"),'\"')),this):(this.sendMessageToCallMachine({action:\"start-custom-integrations\",ids:n}),this)}},{key:\"stopCustomIntegrations\",value:function(e){var t=this;if(rc(),nc(this._callObjectMode,\"stopCustomIntegrations()\"),Ka(this._callState,\"stopCustomIntegrations()\"),Array.isArray(e)&&e.some((function(e){return\"string\"!=typeof e}))||!Array.isArray(e)&&\"string\"!=typeof e)return console.error(\"stopCustomIntegrations() only accepts string | string[]\"),this;var n=\"string\"==typeof e?[e]:e,r=n.filter((function(e){return!(e in t._customIntegrations)}));return r.length?(console.error(\"Can't find custom integration(s): \\\"\".concat(r.join(\", \"),'\"')),this):(this.sendMessageToCallMachine({action:\"stop-custom-integrations\",ids:n}),this)}},{key:\"customTrayButtons\",value:function(){return nc(this._callObjectMode,\"customTrayButtons()\"),rc(),this._customTrayButtons}},{key:\"updateCustomTrayButtons\",value:function(e){return nc(this._callObjectMode,\"updateCustomTrayButtons()\"),rc(),Ka(this._callState,\"updateCustomTrayButtons()\"),vc(e)?(this.sendMessageToCallMachine({action:\"update-custom-tray-buttons\",btns:e}),this._customTrayButtons=e,this):(console.error(\"updateCustomTrayButtons only accepts a dictionary of the type \".concat(JSON.stringify($a))),this)}},{key:\"theme\",value:function(){return nc(this._callObjectMode,\"theme()\"),this.properties.theme}},{key:\"setTheme\",value:function(e){var t=this;return nc(this._callObjectMode,\"setTheme()\"),new Promise((function(n,r){try{t.validateProperties({theme:e}),t.properties.theme=Aa({},e),t.sendMessageToCallMachine({action:\"set-theme\",theme:t.properties.theme});try{t.emitDailyJSEvent({action:Ui,theme:t.properties.theme})}catch(e){console.log(\"could not emit 'theme-updated'\",e)}n(t.properties.theme)}catch(e){r(e)}}))}},{key:\"requestFullscreen\",value:(g=p((function*(){if(rc(),this._iframe&&!document.fullscreenElement&&as())try{(yield this._iframe.requestFullscreen)?this._iframe.requestFullscreen():this._iframe.webkitRequestFullscreen()}catch(e){console.log(\"could not make video call fullscreen\",e)}})),function(){return g.apply(this,arguments)})},{key:\"exitFullscreen\",value:function(){rc(),document.fullscreenElement?document.exitFullscreen():document.webkitFullscreenElement&&document.webkitExitFullscreen()}},{key:\"getSidebarView\",value:(v=p((function*(){var e=this;return this._callObjectMode?(console.error(\"getSidebarView is not available in callObject mode\"),Promise.resolve(null)):new Promise((function(t){e.sendMessageToCallMachine({action:\"get-sidebar-view\"},(function(e){t(e.view)}))}))})),function(){return v.apply(this,arguments)})},{key:\"setSidebarView\",value:function(e){return this._callObjectMode?(console.error(\"setSidebarView is not available in callObject mode\"),this):(this.sendMessageToCallMachine({action:\"set-sidebar-view\",view:e}),this)}},{key:\"room\",value:(h=p((function*(){var e=this,t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).includeRoomConfigDefaults,n=void 0===t||t;return this._accessState.access===fi||this.needsLoad()?this.properties.url?{roomUrlPendingJoin:this.properties.url}:null:new Promise((function(t){e.sendMessageToCallMachine({action:\"lib-room-info\",includeRoomConfigDefaults:n},(function(e){delete e.action,delete e.callbackStamp,t(e)}))}))})),function(){return h.apply(this,arguments)})},{key:\"geo\",value:(d=p((function*(){try{var e=yield fetch(\"https://gs.daily.co/_ks_/x-swsl/:\");return{current:(yield e.json()).geo}}catch(e){return console.error(\"geo lookup failed\",e),{current:\"\"}}})),function(){return d.apply(this,arguments)})},{key:\"setNetworkTopology\",value:(c=p((function*(e){var t=this;return rc(),Ka(this._callState,\"setNetworkTopology()\"),new Promise((function(n,r){t.sendMessageToCallMachine({action:\"set-network-topology\",opts:e},(function(e){e.error?r({error:e.error}):n({workerId:e.workerId})}))}))})),function(e){return c.apply(this,arguments)})},{key:\"getNetworkTopology\",value:(i=p((function*(){var e=this;return new Promise((function(t,n){e.needsLoad()&&t({topology:\"none\"}),e.sendMessageToCallMachine({action:\"get-network-topology\"},(function(e){e.error?n({error:e.error}):t({topology:e.topology})}))}))})),function(){return i.apply(this,arguments)})},{key:\"setPlayNewParticipantSound\",value:function(e){if(rc(),\"number\"!=typeof e&&!0!==e&&!1!==e)throw new Error(\"argument to setShouldPlayNewParticipantSound should be true, false, or a number, but is \".concat(e));this.sendMessageToCallMachine({action:\"daily-method-set-play-ding\",arg:e})}},{key:\"on\",value:function(e,t){return b.prototype.on.call(this,e,t)}},{key:\"once\",value:function(e,t){return b.prototype.once.call(this,e,t)}},{key:\"off\",value:function(e,t){return b.prototype.off.call(this,e,t)}},{key:\"validateProperties\",value:function(e){var t,n;if(null!=e&&null!==(t=e.dailyConfig)&&void 0!==t&&t.userMediaAudioConstraints){var r,i;is()||console.warn(\"userMediaAudioConstraints is deprecated. You can override constraints with inputSettings.audio.settings, found in DailyCallOptions.\");var o=e.inputSettings||{};o.audio=(null===(r=e.inputSettings)||void 0===r?void 0:r.audio)||{},o.audio.settings=(null===(i=e.inputSettings)||void 0===i||null===(i=i.audio)||void 0===i?void 0:i.settings)||{},o.audio.settings=Aa(Aa({},o.audio.settings),e.dailyConfig.userMediaAudioConstraints),e.inputSettings=o,delete e.dailyConfig.userMediaAudioConstraints}if(null!=e&&null!==(n=e.dailyConfig)&&void 0!==n&&n.userMediaVideoConstraints){var s,a;is()||console.warn(\"userMediaVideoConstraints is deprecated. You can override constraints with inputSettings.video.settings, found in DailyCallOptions.\");var c=e.inputSettings||{};c.video=(null===(s=e.inputSettings)||void 0===s?void 0:s.video)||{},c.video.settings=(null===(a=e.inputSettings)||void 0===a||null===(a=a.video)||void 0===a?void 0:a.settings)||{},c.video.settings=Aa(Aa({},c.video.settings),e.dailyConfig.userMediaVideoConstraints),e.inputSettings=c,delete e.dailyConfig.userMediaVideoConstraints}for(var l in e)if(za[l]){if(za[l].validate&&!za[l].validate(e[l],this))throw new Error(\"property '\".concat(l,\"': \").concat(za[l].help))}else console.warn(\"Ignoring unrecognized property '\".concat(l,\"'\")),delete e[l]}},{key:\"assembleMeetingUrl\",value:function(){var e,t,n=Aa(Aa({},this.properties),{},{emb:this.callClientId,embHref:encodeURIComponent(window.location.href),proxy:null!==(e=this.properties.dailyConfig)&&void 0!==e&&e.proxyUrl?encodeURIComponent(null===(t=this.properties.dailyConfig)||void 0===t?void 0:t.proxyUrl):void 0}),r=n.url.match(/\\?/)?\"&\":\"?\";return n.url+r+Object.keys(za).filter((function(e){return za[e].queryString&&void 0!==n[e]})).map((function(e){return\"\".concat(za[e].queryString,\"=\").concat(n[e])})).join(\"&\")}},{key:\"needsLoad\",value:function(){return[ti,ni,si,ai].includes(this._callState)}},{key:\"sendMessageToCallMachine\",value:function(e,t){if(this._destroyed&&(this._logUseAfterDestroy(),this.strictMode))throw new Error(\"Use after destroy\");this._messageChannel.sendMessageToCallMachine(e,t,this.callClientId,this._iframe)}},{key:\"forwardPackagedMessageToCallMachine\",value:function(e){this._messageChannel.forwardPackagedMessageToCallMachine(e,this._iframe,this.callClientId)}},{key:\"addListenerForPackagedMessagesFromCallMachine\",value:function(e){return this._messageChannel.addListenerForPackagedMessagesFromCallMachine(e,this.callClientId)}},{key:\"removeListenerForPackagedMessagesFromCallMachine\",value:function(e){this._messageChannel.removeListenerForPackagedMessagesFromCallMachine(e)}},{key:\"handleMessageFromCallMachine\",value:function(t){switch(t.action){case Fi:this.sendMessageToCallMachine(Aa({action:Bi},this.properties));break;case\"call-machine-initialized\":this._callMachineInitialized=!0;var n={action:Go,level:\"log\",code:1011,stats:{event:\"bundle load\",time:\"no-op\"===this._bundleLoadTime?0:this._bundleLoadTime,preLoaded:\"no-op\"===this._bundleLoadTime,url:B(this.properties.dailyConfig)}};this.sendMessageToCallMachine(n),this._delayDuplicateInstanceLog&&this._logDuplicateInstanceAttempt();break;case $i:this._loadedCallback&&(this._loadedCallback(),this._loadedCallback=null),this.emitDailyJSEvent(t);break;case Hi:var r,i=Aa({},t);delete i.internal,this._maxAppMessageSize=(null===(r=t.internal)||void 0===r?void 0:r._maxAppMessageSize)||$o,this._joinedCallback&&(this._joinedCallback(t.participants),this._joinedCallback=null),this.emitDailyJSEvent(i);break;case Qi:case Ki:if(this._callState===si)return;if(t.participant&&t.participant.session_id){var o=t.participant.local?\"local\":t.participant.session_id;if(this._callObjectMode){var s=this._callMachine().store;Zs(t.participant,s),ea(t.participant,s),na(t.participant,this._participants[o],s)}try{this.maybeParticipantTracksStopped(this._participants[o],t.participant),this.maybeParticipantTracksStarted(this._participants[o],t.participant),this.maybeEventRecordingStopped(this._participants[o],t.participant),this.maybeEventRecordingStarted(this._participants[o],t.participant)}catch(e){console.error(\"track events error\",e)}this.compareEqualForParticipantUpdateEvent(t.participant,this._participants[o])||(this._participants[o]=Aa({},t.participant),this.toggleParticipantAudioBasedOnNativeAudioFocus(),this.emitDailyJSEvent(t))}break;case Yi:if(t.participant&&t.participant.session_id){var a=this._participants[t.participant.session_id];a&&this.maybeParticipantTracksStopped(a,null),delete this._participants[t.participant.session_id],this.emitDailyJSEvent(t)}break;case Xi:S(this._participantCounts,t.participantCounts)||(this._participantCounts=t.participantCounts,this.emitDailyJSEvent(t));break;case Zi:var c={access:t.access};t.awaitingAccess&&(c.awaitingAccess=t.awaitingAccess),S(this._accessState,c)||(this._accessState=c,this.emitDailyJSEvent(t));break;case eo:if(t.meetingSession){this._meetingSessionSummary=t.meetingSession,this.emitDailyJSEvent(t);var l=Aa(Aa({},t),{},{action:\"meeting-session-updated\"});this.emitDailyJSEvent(l)}break;case Jo:var u;this._iframe&&!t.preserveIframe&&(this._iframe.src=\"\"),this._updateCallState(ai),this.resetMeetingDependentVars(),this._loadedCallback&&(this._loadedCallback(t.errorMsg),this._loadedCallback=null),t.preserveIframe;var d=e(t,Oa);null!=d&&null!==(u=d.error)&&void 0!==u&&u.details&&(d.error.details=JSON.parse(d.error.details)),this._maybeSendToSentry(t),this._joinedCallback&&(this._joinedCallback(null,d),this._joinedCallback=null),this.emitDailyJSEvent(d);break;case Gi:this._callState!==ai&&this._updateCallState(si),this.resetMeetingDependentVars(),this._resolveLeave&&(this._resolveLeave(),this._resolveLeave=null),this.emitDailyJSEvent(t);break;case\"selected-devices-updated\":t.devices&&this.emitDailyJSEvent(t);break;case Oo:var p=t.state,h=t.threshold,f=t.quality,v=p.state,g=p.reasons;v===this._network.networkState&&S(g,this._network.networkStateReasons)&&h===this._network.threshold&&f===this._network.quality||(this._network.networkState=v,this._network.networkStateReasons=g,this._network.quality=f,this._network.threshold=h,t.networkState=v,g.length&&(t.networkStateReasons=g),delete t.state,this.emitDailyJSEvent(t));break;case Ao:t&&t.cpuLoadState&&this.emitDailyJSEvent(t);break;case jo:t&&void 0!==t.faceCounts&&this.emitDailyJSEvent(t);break;case Eo:var m=t.activeSpeaker;this._activeSpeaker.peerId!==m.peerId&&(this._activeSpeaker.peerId=m.peerId,this.emitDailyJSEvent({action:t.action,activeSpeaker:this._activeSpeaker}));break;case\"show-local-video-changed\":if(this._callObjectMode)return;var y=t.show;this._showLocalVideo=y,this.emitDailyJSEvent({action:t.action,show:y});break;case To:var b=t.enabled;this._activeSpeakerMode!==b&&(this._activeSpeakerMode=b,this.emitDailyJSEvent({action:t.action,enabled:this._activeSpeakerMode}));break;case ro:case io:case oo:this._waitingParticipants=t.allWaitingParticipants,this.emitDailyJSEvent({action:t.action,participant:t.participant});break;case Bo:S(this._receiveSettings,t.receiveSettings)||(this._receiveSettings=t.receiveSettings,this.emitDailyJSEvent({action:t.action,receiveSettings:t.receiveSettings}));break;case Uo:this._maybeUpdateInputSettings(t.inputSettings);break;case\"send-settings-updated\":S(this._sendSettings,t.sendSettings)||(this._sendSettings=t.sendSettings,this._preloadCache.sendSettings=null,this.emitDailyJSEvent({action:t.action,sendSettings:t.sendSettings}));break;case\"local-audio-level\":this._localAudioLevel=t.audioLevel,this._preloadCache.localAudioLevelObserver=null,this.emitDailyJSEvent(t);break;case\"remote-participants-audio-level\":this._remoteParticipantsAudioLevel=t.participantsAudioLevel,this._preloadCache.remoteParticipantsAudioLevelObserver=null,this.emitDailyJSEvent(t);break;case _o:var _=t.session_id;this._rmpPlayerState[_]=t.playerState,this.emitDailyJSEvent(t);break;case So:delete this._rmpPlayerState[t.session_id],this.emitDailyJSEvent(t);break;case wo:var w=t.session_id,k=this._rmpPlayerState[w];k&&this.compareEqualForRMPUpdateEvent(k,t.remoteMediaPlayerState)||(this._rmpPlayerState[w]=t.remoteMediaPlayerState,this.emitDailyJSEvent(t));break;case\"custom-button-click\":case\"sidebar-view-changed\":case\"pip-started\":case\"pip-stopped\":this.emitDailyJSEvent(t);break;case to:var M=this._meetingSessionState.topology!==(t.meetingSessionState&&t.meetingSessionState.topology);this._meetingSessionState=wc(t.meetingSessionState,this._callObjectMode),(this._callObjectMode||M)&&this.emitDailyJSEvent(t);break;case ko:this._isScreenSharing=!0,this.emitDailyJSEvent(t);break;case Mo:case Co:this._isScreenSharing=!1,this.emitDailyJSEvent(t);break;case po:case ho:case fo:case vo:case go:case co:case lo:case uo:case qi:case zi:case yo:case bo:case\"test-completed\":case Po:case mo:case Lo:case Do:case No:case Ro:case Vo:case Fo:case\"dialin-ready\":case\"dialin-connected\":case\"dialin-error\":case\"dialin-stopped\":case\"dialin-warning\":case\"dialout-connected\":case\"dialout-answered\":case\"dialout-error\":case\"dialout-stopped\":case\"dialout-warning\":this.emitDailyJSEvent(t);break;case\"request-fullscreen\":this.requestFullscreen();break;case\"request-exit-fullscreen\":this.exitFullscreen()}}},{key:\"maybeEventRecordingStopped\",value:function(e,t){var n=\"record\";e&&(t.local||!1!==t[n]||e[n]===t[n]||this.emitDailyJSEvent({action:ho}))}},{key:\"maybeEventRecordingStarted\",value:function(e,t){var n=\"record\";e&&(t.local||!0!==t[n]||e[n]===t[n]||this.emitDailyJSEvent({action:po}))}},{key:\"_trackStatePlayable\",value:function(e){return!(!e||e.state!==hi)}},{key:\"_trackChanged\",value:function(e,t){return!((null==e?void 0:e.id)===(null==t?void 0:t.id))}},{key:\"maybeEventTrackStopped\",value:function(e,t,n){var r,i,o=null!==(r=null==t?void 0:t.tracks[e])&&void 0!==r?r:null,s=null!==(i=null==n?void 0:n.tracks[e])&&void 0!==i?i:null,a=null==o?void 0:o.track;if(a){var c=this._trackStatePlayable(o),l=this._trackStatePlayable(s),u=this._trackChanged(a,null==s?void 0:s.track);c&&(l&&!u||this.emitDailyJSEvent({action:ao,track:a,participant:null!=n?n:t,type:e}))}}},{key:\"maybeEventTrackStarted\",value:function(e,t,n){var r,i,o=null!==(r=null==t?void 0:t.tracks[e])&&void 0!==r?r:null,s=null!==(i=null==n?void 0:n.tracks[e])&&void 0!==i?i:null,a=null==s?void 0:s.track;if(a){var c=this._trackStatePlayable(o),l=this._trackStatePlayable(s),u=this._trackChanged(null==o?void 0:o.track,a);l&&(c&&!u||this.emitDailyJSEvent({action:so,track:a,participant:n,type:e}))}}},{key:\"maybeParticipantTracksStopped\",value:function(e,t){if(e)for(var n in e.tracks)this.maybeEventTrackStopped(n,e,t)}},{key:\"maybeParticipantTracksStarted\",value:function(e,t){if(t)for(var n in t.tracks)this.maybeEventTrackStarted(n,e,t)}},{key:\"compareEqualForRMPUpdateEvent\",value:function(e,t){var n,r;return e.state===t.state&&(null===(n=e.settings)||void 0===n?void 0:n.volume)===(null===(r=t.settings)||void 0===r?void 0:r.volume)}},{key:\"emitDailyJSEvent\",value:function(e){try{e.callClientId=this.callClientId,this.emit(e.action,e)}catch(t){console.log(\"could not emit\",e,t)}}},{key:\"compareEqualForParticipantUpdateEvent\",value:function(e,t){return!!S(e,t)&&((!e.videoTrack||!t.videoTrack||e.videoTrack.id===t.videoTrack.id&&e.videoTrack.muted===t.videoTrack.muted&&e.videoTrack.enabled===t.videoTrack.enabled)&&(!e.audioTrack||!t.audioTrack||e.audioTrack.id===t.audioTrack.id&&e.audioTrack.muted===t.audioTrack.muted&&e.audioTrack.enabled===t.audioTrack.enabled))}},{key:\"nativeUtils\",value:function(){return is()?\"undefined\"==typeof DailyNativeUtils?(console.warn(\"in React Native, DailyNativeUtils is expected to be available\"),null):DailyNativeUtils:null}},{key:\"updateIsPreparingToJoin\",value:function(e){this._updateCallState(this._callState,e)}},{key:\"_updateCallState\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._isPreparingToJoin;if(e!==this._callState||t!==this._isPreparingToJoin){var n=this._callState,r=this._isPreparingToJoin;this._callState=e,this._isPreparingToJoin=t;var i=this._callState===oi;this.updateShowAndroidOngoingMeetingNotification(i);var o=Ya(n,r),s=Ya(this._callState,this._isPreparingToJoin);o!==s&&(this.updateKeepDeviceAwake(s),this.updateDeviceAudioMode(s),this.updateNoOpRecordingEnsuringBackgroundContinuity(s))}}},{key:\"resetMeetingDependentVars\",value:function(){this._participants={},this._participantCounts=Fa,this._waitingParticipants={},this._activeSpeaker={},this._activeSpeakerMode=!1,this._didPreAuth=!1,this._accessState={access:fi},this._finalSummaryOfPrevSession=this._meetingSessionSummary,this._meetingSessionSummary={},this._meetingSessionState=wc(Ra,this._callObjectMode),this._isScreenSharing=!1,this._receiveSettings={},this._inputSettings=void 0,this._sendSettings={},this._localAudioLevel=0,this._isLocalAudioLevelObserverRunning=!1,this._remoteParticipantsAudioLevel={},this._isRemoteParticipantsAudioLevelObserverRunning=!1,this._maxAppMessageSize=$o,this._callMachineInitialized=!1,this._bundleLoadTime=void 0,this._preloadCache}},{key:\"updateKeepDeviceAwake\",value:function(e){is()&&this.nativeUtils().setKeepDeviceAwake(e,this.callClientId)}},{key:\"updateDeviceAudioMode\",value:function(e){if(is()&&!this.disableReactNativeAutoDeviceManagement(\"audio\")){var t=e?this._nativeInCallAudioMode:\"idle\";this.nativeUtils().setAudioMode(t)}}},{key:\"updateShowAndroidOngoingMeetingNotification\",value:function(e){if(is()&&this.nativeUtils().setShowOngoingMeetingNotification){var t,n,r,i;if(this.properties.reactNativeConfig&&this.properties.reactNativeConfig.androidInCallNotification){var o=this.properties.reactNativeConfig.androidInCallNotification;t=o.title,n=o.subtitle,r=o.iconName,i=o.disableForCustomOverride}i&&(e=!1),this.nativeUtils().setShowOngoingMeetingNotification(e,t,n,r,this.callClientId)}}},{key:\"updateNoOpRecordingEnsuringBackgroundContinuity\",value:function(e){is()&&this.nativeUtils().enableNoOpRecordingEnsuringBackgroundContinuity&&this.nativeUtils().enableNoOpRecordingEnsuringBackgroundContinuity(e)}},{key:\"toggleParticipantAudioBasedOnNativeAudioFocus\",value:function(){var e;if(is()){var t=null===(e=this._callMachine())||void 0===e||null===(e=e.store)||void 0===e?void 0:e.getState();for(var n in null==t?void 0:t.streams){var r=t.streams[n];r&&r.pendingTrack&&\"audio\"===r.pendingTrack.kind&&(r.pendingTrack.enabled=this._hasNativeAudioFocus)}}}},{key:\"disableReactNativeAutoDeviceManagement\",value:function(e){return this.properties.reactNativeConfig&&this.properties.reactNativeConfig.disableAutoDeviceManagement&&this.properties.reactNativeConfig.disableAutoDeviceManagement[e]}},{key:\"absoluteUrl\",value:function(e){if(void 0!==e){var t=document.createElement(\"a\");return t.href=e,t.href}}},{key:\"sayHello\",value:function(){var e=\"hello, world.\";return console.log(e),e}},{key:\"_logUseAfterDestroy\",value:function(){var e=Object.values(La)[0];if(this.needsLoad()){if(e&&!e.needsLoad()){var t={action:Go,level:\"error\",code:this.strictMode?9995:9997};e.sendMessageToCallMachine(t)}else if(!this.strictMode){console.error(\"You are are attempting to use a call instance that was previously destroyed, which is unsupported. Please remove `strictMode: false` from your constructor properties to enable strict mode to track down and fix this unsupported usage.\")}}else{var n={action:Go,level:\"error\",code:this.strictMode?9995:9997};this._messageChannel.sendMessageToCallMachine(n,null,this.callClientId,this._iframe)}}},{key:\"_logDuplicateInstanceAttempt\",value:function(){for(var e=0,t=Object.values(La);e<t.length;e++){var n=t[e];n._callMachineInitialized?(n.sendMessageToCallMachine({action:Go,level:\"warn\",code:this.allowMultipleCallInstances?9993:9992}),n._delayDuplicateInstanceLog=!1):n._delayDuplicateInstanceLog=!0}}},{key:\"_maybeSendToSentry\",value:function(e){var t,n,i,o;if(null!==(t=e.error)&&void 0!==t&&t.type){if(![Pi,Ti,Ci].includes(e.error.type))return;if(e.error.type===Ci&&e.error.msg.includes(\"deleted\"))return}var s=null!==(n=this.properties)&&void 0!==n&&n.url?new URL(this.properties.url):void 0,a=\"production\";s&&s.host.includes(\".staging.daily\")&&(a=\"staging\");var c,l,u,d,p,h=function(e){const t=[Ln(),In(),qr(),Jr(),Kr(),ei(),$n(),Zr()];return!1!==e.autoSessionTracking&&t.push(Qr()),t}({}).filter((function(e){return![\"BrowserApiErrors\",\"Breadcrumbs\",\"GlobalHandlers\"].includes(e.name)})),f=new mr({dsn:\"https://f10f1c81e5d44a4098416c0867a8b740@o77906.ingest.sentry.io/168844\",transport:Ir,stackParser:Br,integrations:h,environment:a}),v=new ut;if(v.setClient(f),f.init(),this.session_id&&v.setExtra(\"sessionId\",this.session_id),this.properties){var g=Aa({},this.properties);g.userName=g.userName?\"[Filtered]\":void 0,g.userData=g.userData?\"[Filtered]\":void 0,g.token=g.token?\"[Filtered]\":void 0,v.setExtra(\"properties\",g)}if(s){var m=s.searchParams.get(\"domain\");if(!m){var y=s.host.match(/(.*?)\\./);m=y&&y[1]||\"\"}m&&v.setTag(\"domain\",m)}e.error&&(v.setTag(\"fatalErrorType\",e.error.type),v.setExtra(\"errorDetails\",e.error.details),(null===(c=e.error.details)||void 0===c?void 0:c.uri)&&v.setTag(\"serverAddress\",e.error.details.uri),(null===(l=e.error.details)||void 0===l?void 0:l.workerGroup)&&v.setTag(\"workerGroup\",e.error.details.workerGroup),(null===(u=e.error.details)||void 0===u?void 0:u.geoGroup)&&v.setTag(\"geoGroup\",e.error.details.geoGroup),(null===(d=e.error.details)||void 0===d?void 0:d.on)&&v.setTag(\"connectionAttempt\",e.error.details.on),null!==(p=e.error.details)&&void 0!==p&&p.bundleUrl&&(v.setTag(\"bundleUrl\",e.error.details.bundleUrl),v.setTag(\"bundleError\",e.error.details.sourceError.type)));v.setTags({callMode:this._callObjectMode?is()?\"reactNative\":null!==(i=this.properties)&&void 0!==i&&null!==(i=i.dailyConfig)&&void 0!==i&&null!==(i=i.callMode)&&void 0!==i&&i.includes(\"prebuilt\")?this.properties.dailyConfig.callMode:\"custom\":\"prebuilt-frame\",version:r.version()});var b=(null===(o=e.error)||void 0===o?void 0:o.msg)||e.errorMsg;v.captureException(new Error(b))}},{key:\"_callMachine\",value:function(){var e;return null===(e=window._daily)||void 0===e||null===(e=e.instances)||void 0===e||null===(e=e[this.callClientId])||void 0===e?void 0:e.callMachine}},{key:\"_maybeUpdateInputSettings\",value:function(e){if(!S(this._inputSettings,e)){var t=this._getInputSettings();this._inputSettings=e;var n=this._getInputSettings();S(t,n)||this.emitDailyJSEvent({action:Uo,inputSettings:n})}}}],[{key:\"supportedBrowser\",value:function(){if(is())return{supported:!0,mobile:!0,name:\"React Native\",version:null,supportsScreenShare:!0,supportsSfu:!0,supportsVideoProcessing:!1,supportsAudioProcessing:!1};var e=D.getParser(rs());return{supported:!!fs(),mobile:\"mobile\"===e.getPlatformType(),name:e.getBrowserName(),version:e.getBrowserVersion(),supportsFullscreen:!!as(),supportsScreenShare:!!ss(),supportsSfu:!!fs(),supportsVideoProcessing:ps(),supportsAudioProcessing:hs()}}},{key:\"version\",value:function(){return\"0.84.0\"}},{key:\"createCallObject\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.layout=\"none\",new r(null,e)}},{key:\"wrap\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(rc(),!e||!e.contentWindow||\"string\"!=typeof e.src)throw new Error(\"DailyIframe::Wrap needs an iframe-like first argument\");return t.layout||(t.customLayout?t.layout=\"custom-v1\":t.layout=\"browser\"),new r(e,t)}},{key:\"createFrame\",value:function(e,t){var n,i;rc(),e&&t?(n=e,i=t):e&&e.append?(n=e,i={}):(n=document.body,i=e||{});var o=i.iframeStyle;o||(o=n===document.body?{position:\"fixed\",border:\"1px solid black\",backgroundColor:\"white\",width:\"375px\",height:\"450px\",right:\"1em\",bottom:\"1em\"}:{border:0,width:\"100%\",height:\"100%\"});var s=document.createElement(\"iframe\");window.navigator&&window.navigator.userAgent.match(/Chrome\\/61\\./)?s.allow=\"microphone, camera\":s.allow=\"microphone; camera; autoplay; display-capture; screen-wake-lock\",s.style.visibility=\"hidden\",n.appendChild(s),s.style.visibility=null,Object.keys(o).forEach((function(e){return s.style[e]=o[e]})),i.layout||(i.customLayout?i.layout=\"custom-v1\":i.layout=\"browser\");try{return new r(s,i)}catch(e){throw n.removeChild(s),e}}},{key:\"createTransparentFrame\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};rc();var t=document.createElement(\"iframe\");return t.allow=\"microphone; camera; autoplay\",t.style.cssText=\"\\n position: fixed;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n border: 0;\\n pointer-events: none;\\n \",document.body.appendChild(t),e.layout||(e.layout=\"custom-v1\"),r.wrap(t,e)}},{key:\"getCallInstance\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return e?La[e]:Object.values(La)[0]}}]);var i,c,d,h,v,g,m,y,_,w,k,M,C,E,T,O,P,A,j,I,x,L,R,U,V,J,$,q,z,W,H,G,Q,K,Y,X,Z,ee}();function Ga(e){if(e.extension){if(\"string\"!=typeof e.extension)throw new Error(\"Error starting dial out: extension must be a string\");if(e.extension.length>20)throw new Error(\"Error starting dial out: extension length must be less than or equal to 20\")}if(e.waitBeforeExtensionDialSec){if(\"number\"!=typeof e.waitBeforeExtensionDialSec)throw new Error(\"Error starting dial out: waitBeforeExtensionDialSec must be a number\");if(e.waitBeforeExtensionDialSec>60)throw new Error(\"Error starting dial out: waitBeforeExtensionDialSec must be less than or equal to 60\");if(!e.extension)throw new Error(\"Error starting dial out: waitBeforeExtensionDialSec requires a phoneNumber and extension\")}}function Qa(e,t){var n={};for(var r in e)if(e[r]instanceof MediaStreamTrack)console.warn(\"MediaStreamTrack found in props or cache.\",r),n[r]=Qo;else if(\"dailyConfig\"===r){if(e[r].modifyLocalSdpHook){var i=window._daily.instances[t].customCallbacks||{};i.modifyLocalSdpHook=e[r].modifyLocalSdpHook,window._daily.instances[t].customCallbacks=i,delete e[r].modifyLocalSdpHook}if(e[r].modifyRemoteSdpHook){var o=window._daily.instances[t].customCallbacks||{};o.modifyRemoteSdpHook=e[r].modifyRemoteSdpHook,window._daily.instances[t].customCallbacks=o,delete e[r].modifyRemoteSdpHook}n[r]=e[r]}else n[r]=e[r];return n}function Ka(e){var t=arguments.length>2?arguments[2]:void 0;if(e!==oi){var n=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" only supported after join.\");throw t&&(n+=\" \".concat(t)),console.error(n),new Error(n)}}function Ya(e,t){return[ii,oi].includes(e)||t}function Xa(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"This daily-js method\",r=arguments.length>3?arguments[3]:void 0;if(Ya(e,t)){var i=\"\".concat(n,\" not supported after joining a meeting.\");throw r&&(i+=\" \".concat(r)),console.error(i),new Error(i)}}function Za(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",n=arguments.length>2?arguments[2]:void 0;if(!e){var r=\"\".concat(t,arguments.length>3&&void 0!==arguments[3]&&arguments[3]?\" requires preAuth() or startCamera() to initialize call state.\":\" requires preAuth(), startCamera(), or join() to initialize call state.\");throw n&&(r+=\" \".concat(n)),console.error(r),new Error(r)}}function ec(e){if(e){var t=\"A pre-call quality test is in progress. Please try \".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" again once testing has completed. Use stopTestCallQuality() to end it early.\");throw console.error(t),new Error(t)}}function tc(e){if(!e){var t=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" is only supported on custom callObject instances\");throw console.error(t),new Error(t)}}function nc(e){if(e){var t=\"\".concat(arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"This daily-js method\",\" is only supported as part of Daily's Prebuilt\");throw console.error(t),new Error(t)}}function rc(){if(is())throw new Error(\"This daily-js method is not currently supported in React Native\")}function ic(){if(!is())throw new Error(\"This daily-js method is only supported in React Native\")}function oc(e){if(void 0===e)return!0;var t;if(\"string\"==typeof e)t=e;else try{t=JSON.stringify(e),S(JSON.parse(t),e)||console.warn(\"The userData provided will be modified when serialized.\")}catch(e){throw Error(\"userData must be serializable to JSON: \".concat(e))}if(t.length>4096)throw Error(\"userData is too large (\".concat(t.length,\" characters). Maximum size suppported is \").concat(4096,\".\"));return!0}function sc(e,t){for(var n=t.allowAllParticipantsKey,r=function(e){var t=[\"local\"];return n||t.push(\"*\"),e&&!t.includes(e)},i=function(e){return!!(void 0===e.layer||Number.isInteger(e.layer)&&e.layer>=0||\"inherit\"===e.layer)},o=function(e){return!!e&&(!(e.video&&!i(e.video))&&!(e.screenVideo&&!i(e.screenVideo)))},s=0,a=Object.entries(e);s<a.length;s++){var c=f(a[s],2),l=c[0],u=c[1];if(!r(l)||!o(u))return!1}return!0}function ac(e){if(\"object\"!==n(e))return!1;for(var t=0,r=Object.entries(e);t<r.length;t++){var i=f(r[t],2),o=i[0],s=i[1];switch(o){case\"video\":if(\"object\"!==n(s))return!1;for(var a=0,c=Object.entries(s);a<c.length;a++){var l=f(c[a],2),u=l[0],d=l[1];switch(u){case\"processor\":if(!uc(d))return!1;break;case\"settings\":if(!dc(d))return!1;break;default:return!1}}break;case\"audio\":if(\"object\"!==n(s))return!1;for(var p=0,h=Object.entries(s);p<h.length;p++){var v=f(h[p],2),g=v[0],m=v[1];switch(g){case\"processor\":if(!lc(m))return!1;break;case\"settings\":if(!dc(m))return!1;break;default:return!1}}break;default:return!1}}return!0}function cc(e,t,n){var r,i=[];e.video&&e.video.processor&&(ps(null!==(r=null==t?void 0:t.useLegacyVideoProcessor)&&void 0!==r&&r)||(e.video.settings?delete e.video.processor:delete e.video,i.push(\"video\")));e.audio&&e.audio.processor&&(hs()||(e.audio.settings?delete e.audio.processor:delete e.audio,i.push(\"audio\"))),i.length>0&&console.error(\"Ignoring settings for browser- or platform-unsupported input processor(s): \".concat(i.join(\", \"))),e.audio&&e.audio.settings&&(e.audio.settings.customTrack?(n.audioTrack=e.audio.settings.customTrack,e.audio.settings={customTrack:Qo}):delete n.audioTrack),e.video&&e.video.settings&&(e.video.settings.customTrack?(n.videoTrack=e.video.settings.customTrack,e.video.settings={customTrack:Qo}):delete n.videoTrack)}function lc(e){if(is())return console.warn(\"Video processing is not yet supported in React Native\"),!1;var t=[\"type\"];return!!e&&(\"object\"===n(e)&&(Object.keys(e).filter((function(e){return!t.includes(e)})).forEach((function(t){console.warn(\"invalid key inputSettings -> audio -> processor : \".concat(t)),delete e[t]})),!!function(e){if(\"string\"!=typeof e)return!1;if(!Object.values(Yo).includes(e))return console.error(\"inputSettings audio processor type invalid\"),!1;return!0}(e.type)))}function uc(e){if(is())return console.warn(\"Video processing is not yet supported in React Native\"),!1;var t=[\"type\",\"config\"];if(!e)return!1;if(\"object\"!==n(e))return!1;if(!function(e){if(\"string\"!=typeof e)return!1;if(!Object.values(Ko).includes(e))return console.error(\"inputSettings video processor type invalid\"),!1;return!0}(e.type))return!1;if(e.config){if(\"object\"!==n(e.config))return!1;if(!function(e,t){var n=Object.keys(t);if(0===n.length)return!0;var r=\"invalid object in inputSettings -> video -> processor -> config\";switch(e){case Ko.BGBLUR:return n.length>1||\"strength\"!==n[0]?(console.error(r),!1):!(\"number\"!=typeof t.strength||t.strength<=0||t.strength>1||isNaN(t.strength))||(console.error(\"\".concat(r,\"; expected: {0 < strength <= 1}, got: \").concat(t.strength)),!1);case Ko.BGIMAGE:return!(void 0!==t.source&&!function(e){if(\"default\"===e.source)return e.type=\"default\",!0;if(e.source instanceof ArrayBuffer)return!0;if(U(e.source))return e.type=\"url\",!!function(e){var t=new URL(e),n=t.pathname;if(\"data:\"===t.protocol)try{var r=n.substring(n.indexOf(\":\")+1,n.indexOf(\";\")).split(\"/\")[1];return Zo.includes(r)}catch(e){return console.error(\"failed to deduce blob content type\",e),!1}var i=n.split(\".\").at(-1).toLowerCase().trim();return Zo.includes(i)}(e.source)||(console.error(\"invalid image type; supported types: [\".concat(Zo.join(\", \"),\"]\")),!1);return t=e.source,n=Number(t),isNaN(n)||!Number.isInteger(n)||n<=0||n>10?(console.error(\"invalid image selection; must be an int, > 0, <= \".concat(10)),!1):(e.type=\"daily-preselect\",!0);var t,n}(t));default:return!0}}(e.type,e.config))return!1}return Object.keys(e).filter((function(e){return!t.includes(e)})).forEach((function(t){console.warn(\"invalid key inputSettings -> video -> processor : \".concat(t)),delete e[t]})),!0}function dc(e){return\"object\"===n(e)&&(!e.customTrack||e.customTrack instanceof MediaStreamTrack)}function pc(){var e=Object.values(Ko).join(\" | \"),t=Object.values(Yo).join(\" | \");return\"inputSettings must be of the form: { video?: { processor?: { type: [ \".concat(e,\" ], config?: {} } }, audio?: { processor: {type: [ \").concat(t,\" ] } } }\")}function hc(e){var t=e.allowAllParticipantsKey;return\"receiveSettings must be of the form { [<remote participant id> | \".concat(yi).concat(t?' | \"'.concat(\"*\",'\"'):\"\",\"]: \")+'{ [video: [{ layer: [<non-negative integer> | \"inherit\"] } | \"inherit\"]], [screenVideo: [{ layer: [<non-negative integer> | \"inherit\"] } | \"inherit\"]] }}}'}function fc(){return\"customIntegrations should be an object of type \".concat(JSON.stringify(qa),\".\")}function vc(e){if(e&&\"object\"!==n(e)||Array.isArray(e))return console.error(\"customTrayButtons should be an Object of the type \".concat(JSON.stringify($a),\".\")),!1;if(e)for(var t=0,r=Object.entries(e);t<r.length;t++)for(var i=f(r[t],1)[0],o=0,s=Object.entries(e[i]);o<s.length;o++){var a=f(s[o],2),c=a[0],l=a[1],u=$a.id[c];if(!u)return console.error(\"customTrayButton does not support key \".concat(c)),!1;switch(c){case\"iconPath\":case\"iconPathDarkMode\":if(!U(l))return console.error(\"customTrayButton \".concat(c,\" should be a url.\")),!1;break;case\"visualState\":if(![\"default\",\"sidebar-open\",\"active\"].includes(l))return console.error(\"customTrayButton \".concat(c,\" should be \").concat(u,\". Got: \").concat(l)),!1;break;default:if(n(l)!==u)return console.error(\"customTrayButton \".concat(c,\" should be a \").concat(u,\".\")),!1}}return!0}function gc(e){if(!e||e&&\"object\"!==n(e)||Array.isArray(e))return console.error(fc()),!1;for(var t=function(e){return\"\".concat(e,\" should be \").concat(qa.id[e])},r=function(e,t){return console.error(\"customIntegration \".concat(e,\": \").concat(t))},i=0,o=Object.entries(e);i<o.length;i++){var s=f(o[i],1)[0];if(!(\"label\"in e[s]))return r(s,\"label is required\"),!1;if(!(\"location\"in e[s]))return r(s,\"location is required\"),!1;if(!(\"src\"in e[s])&&!(\"srcdoc\"in e[s]))return r(s,\"src or srcdoc is required\"),!1;for(var a=0,c=Object.entries(e[s]);a<c.length;a++){var l=f(c[a],2),u=l[0],d=l[1];switch(u){case\"allow\":case\"csp\":case\"name\":case\"referrerPolicy\":case\"sandbox\":if(\"string\"!=typeof d)return r(s,t(u)),!1;break;case\"iconURL\":if(!U(d))return r(s,\"\".concat(u,\" should be a url\")),!1;break;case\"src\":if(\"srcdoc\"in e[s])return r(s,\"cannot have both src and srcdoc\"),!1;if(!U(d))return r(s,'src \"'.concat(d,'\" is not a valid URL')),!1;break;case\"srcdoc\":if(\"src\"in e[s])return r(s,\"cannot have both src and srcdoc\"),!1;if(\"string\"!=typeof d)return r(s,t(u)),!1;break;case\"location\":if(![\"main\",\"sidebar\"].includes(d))return r(s,t(u)),!1;break;case\"controlledBy\":if(\"*\"!==d&&\"owners\"!==d&&(!Array.isArray(d)||d.some((function(e){return\"string\"!=typeof e}))))return r(s,t(u)),!1;break;case\"shared\":if((!Array.isArray(d)||d.some((function(e){return\"string\"!=typeof e})))&&\"owners\"!==d&&\"boolean\"!=typeof d)return r(s,t(u)),!1;break;default:if(!qa.id[u])return console.error(\"customIntegration does not support key \".concat(u)),!1}}}return!0}function mc(e,t){if(void 0===t)return!1;switch(n(t)){case\"string\":return n(e)===t;case\"object\":if(\"object\"!==n(e))return!1;for(var r in e)if(!mc(e[r],t[r]))return!1;return!0;default:return!1}}function yc(e,t){var n=e.sessionId,r=e.toEndPoint,i=e.callerId,o=e.useSipRefer;if(!n||!r)throw new Error(\"\".concat(t,\"() requires a sessionId and toEndPoint\"));if(\"string\"!=typeof n||\"string\"!=typeof r)throw new Error(\"Invalid paramater: sessionId and toEndPoint must be of type string\");if(o&&!r.startsWith(\"sip:\"))throw new Error('\"toEndPoint\" must be a \"sip\" address');if(!r.startsWith(\"sip:\")&&!r.startsWith(\"+\"))throw new Error(\"toEndPoint: \".concat(r,' must starts with either \"sip:\" or \"+\"'));if(i&&\"string\"!=typeof i)throw new Error(\"callerId must be of type string\");if(i&&!r.startsWith(\"+\"))throw new Error(\"callerId is only valid when transferring to a PSTN number\")}function bc(e){if(\"object\"!==n(e))throw new Error('RemoteMediaPlayerSettings: must be \"object\" type');if(e.state&&!Object.values(Xo).includes(e.state))throw new Error(\"Invalid value for RemoteMediaPlayerSettings.state, valid values are: \"+JSON.stringify(Xo));if(e.volume){if(\"number\"!=typeof e.volume)throw new Error('RemoteMediaPlayerSettings.volume: must be \"number\" type');if(e.volume<0||e.volume>2)throw new Error(\"RemoteMediaPlayerSettings.volume: must be between 0.0 - 2.0\")}}function _c(e,t,n){return!(\"number\"!=typeof e||e<t||e>n)}function wc(e,t){return e&&!t&&delete e.data,e}export{vi as DAILY_ACCESS_LEVEL_FULL,gi as DAILY_ACCESS_LEVEL_LOBBY,mi as DAILY_ACCESS_LEVEL_NONE,fi as DAILY_ACCESS_UNKNOWN,Ii as DAILY_CAMERA_ERROR_CAM_AND_MIC_IN_USE,Ai as DAILY_CAMERA_ERROR_CAM_IN_USE,Ni as DAILY_CAMERA_ERROR_CONSTRAINTS,ji as DAILY_CAMERA_ERROR_MIC_IN_USE,Di as DAILY_CAMERA_ERROR_NOT_FOUND,xi as DAILY_CAMERA_ERROR_PERMISSIONS,Li as DAILY_CAMERA_ERROR_UNDEF_MEDIADEVICES,Ri as DAILY_CAMERA_ERROR_UNKNOWN,Zi as DAILY_EVENT_ACCESS_STATE_UPDATED,Eo as DAILY_EVENT_ACTIVE_SPEAKER_CHANGE,To as DAILY_EVENT_ACTIVE_SPEAKER_MODE_CHANGE,yo as DAILY_EVENT_APP_MSG,zi as DAILY_EVENT_CAMERA_ERROR,Ao as DAILY_EVENT_CPU_LOAD_CHANGE,Jo as DAILY_EVENT_ERROR,xo as DAILY_EVENT_EXIT_FULLSCREEN,jo as DAILY_EVENT_FACE_COUNTS_UPDATED,Io as DAILY_EVENT_FULLSCREEN,Bi as DAILY_EVENT_IFRAME_LAUNCH_CONFIG,Fi as DAILY_EVENT_IFRAME_READY_FOR_LAUNCH_CONFIG,Uo as DAILY_EVENT_INPUT_SETTINGS_UPDATED,Hi as DAILY_EVENT_JOINED_MEETING,Wi as DAILY_EVENT_JOINING_MEETING,Fo as DAILY_EVENT_LANG_UPDATED,Gi as DAILY_EVENT_LEFT_MEETING,Ro as DAILY_EVENT_LIVE_STREAMING_ERROR,Lo as DAILY_EVENT_LIVE_STREAMING_STARTED,No as DAILY_EVENT_LIVE_STREAMING_STOPPED,Do as DAILY_EVENT_LIVE_STREAMING_UPDATED,$i as DAILY_EVENT_LOADED,Vi as DAILY_EVENT_LOADING,Ji as DAILY_EVENT_LOAD_ATTEMPT_FAILED,Co as DAILY_EVENT_LOCAL_SCREEN_SHARE_CANCELED,ko as DAILY_EVENT_LOCAL_SCREEN_SHARE_STARTED,Mo as DAILY_EVENT_LOCAL_SCREEN_SHARE_STOPPED,no as DAILY_EVENT_MEETING_SESSION_DATA_ERROR,to as DAILY_EVENT_MEETING_SESSION_STATE_UPDATED,eo as DAILY_EVENT_MEETING_SESSION_SUMMARY_UPDATED,Po as DAILY_EVENT_NETWORK_CONNECTION,Oo as DAILY_EVENT_NETWORK_QUALITY_CHANGE,Vo as DAILY_EVENT_NONFATAL_ERROR,Xi as DAILY_EVENT_PARTICIPANT_COUNTS_UPDATED,Qi as DAILY_EVENT_PARTICIPANT_JOINED,Yi as DAILY_EVENT_PARTICIPANT_LEFT,Ki as DAILY_EVENT_PARTICIPANT_UPDATED,Bo as DAILY_EVENT_RECEIVE_SETTINGS_UPDATED,mo as DAILY_EVENT_RECORDING_DATA,vo as DAILY_EVENT_RECORDING_ERROR,po as DAILY_EVENT_RECORDING_STARTED,fo as DAILY_EVENT_RECORDING_STATS,ho as DAILY_EVENT_RECORDING_STOPPED,go as DAILY_EVENT_RECORDING_UPLOAD_COMPLETED,_o as DAILY_EVENT_REMOTE_MEDIA_PLAYER_STARTED,So as DAILY_EVENT_REMOTE_MEDIA_PLAYER_STOPPED,wo as DAILY_EVENT_REMOTE_MEDIA_PLAYER_UPDATED,qi as DAILY_EVENT_STARTED_CAMERA,Ui as DAILY_EVENT_THEME_UPDATED,so as DAILY_EVENT_TRACK_STARTED,ao as DAILY_EVENT_TRACK_STOPPED,uo as DAILY_EVENT_TRANSCRIPTION_ERROR,bo as DAILY_EVENT_TRANSCRIPTION_MSG,co as DAILY_EVENT_TRANSCRIPTION_STARTED,lo as DAILY_EVENT_TRANSCRIPTION_STOPPED,ro as DAILY_EVENT_WAITING_PARTICIPANT_ADDED,oo as DAILY_EVENT_WAITING_PARTICIPANT_REMOVED,io as DAILY_EVENT_WAITING_PARTICIPANT_UPDATED,Pi as DAILY_FATAL_ERROR_CONNECTION,_i as DAILY_FATAL_ERROR_EJECTED,Ti as DAILY_FATAL_ERROR_EOL,ki as DAILY_FATAL_ERROR_EXP_ROOM,Mi as DAILY_FATAL_ERROR_EXP_TOKEN,Ei as DAILY_FATAL_ERROR_MEETING_FULL,wi as DAILY_FATAL_ERROR_NBF_ROOM,Si as DAILY_FATAL_ERROR_NBF_TOKEN,Oi as DAILY_FATAL_ERROR_NOT_ALLOWED,Ci as DAILY_FATAL_ERROR_NO_ROOM,bi as DAILY_RECEIVE_SETTINGS_ALL_PARTICIPANTS_KEY,yi as DAILY_RECEIVE_SETTINGS_BASE_KEY,ai as DAILY_STATE_ERROR,oi as DAILY_STATE_JOINED,ii as DAILY_STATE_JOINING,si as DAILY_STATE_LEFT,ti as DAILY_STATE_NEW,ci as DAILY_TRACK_STATE_BLOCKED,pi as DAILY_TRACK_STATE_INTERRUPTED,di as DAILY_TRACK_STATE_LOADING,li as DAILY_TRACK_STATE_OFF,hi as DAILY_TRACK_STATE_PLAYABLE,ui as DAILY_TRACK_STATE_SENDABLE,Ha as default};\n","import $7zbD8$dailycodailyjs from \"@daily-co/daily-js\";\nimport {logger as $7zbD8$logger, DeviceError as $7zbD8$DeviceError, RTVIError as $7zbD8$RTVIError, TransportStartError as $7zbD8$TransportStartError, RTVIMessage as $7zbD8$RTVIMessage, Transport as $7zbD8$Transport} from \"@pipecat-ai/client-js\";\n\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $683f111f61e07358$exports = {};\n\n$parcel$export($683f111f61e07358$exports, \"DailyRTVIMessageType\", () => $683f111f61e07358$export$ef180de88fd317cc);\n$parcel$export($683f111f61e07358$exports, \"DailyTransport\", () => $683f111f61e07358$export$b1ca982aa1e488c1);\n\n\n/**\n * Raw wav audio file contents\n * @typedef {Object} WavPackerAudioType\n * @property {Blob} blob\n * @property {string} url\n * @property {number} channelCount\n * @property {number} sampleRate\n * @property {number} duration\n */ /**\n * Utility class for assembling PCM16 \"audio/wav\" data\n * @class\n */ class $6d4b7449a1e1544a$export$13afda237b1c9846 {\n /**\n * Converts Float32Array of amplitude data to ArrayBuffer in Int16Array format\n * @param {Float32Array} float32Array\n * @returns {ArrayBuffer}\n */ static floatTo16BitPCM(float32Array) {\n const buffer = new ArrayBuffer(float32Array.length * 2);\n const view = new DataView(buffer);\n let offset = 0;\n for(let i = 0; i < float32Array.length; i++, offset += 2){\n let s = Math.max(-1, Math.min(1, float32Array[i]));\n view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);\n }\n return buffer;\n }\n /**\n * Concatenates two ArrayBuffers\n * @param {ArrayBuffer} leftBuffer\n * @param {ArrayBuffer} rightBuffer\n * @returns {ArrayBuffer}\n */ static mergeBuffers(leftBuffer, rightBuffer) {\n const tmpArray = new Uint8Array(leftBuffer.byteLength + rightBuffer.byteLength);\n tmpArray.set(new Uint8Array(leftBuffer), 0);\n tmpArray.set(new Uint8Array(rightBuffer), leftBuffer.byteLength);\n return tmpArray.buffer;\n }\n /**\n * Packs data into an Int16 format\n * @private\n * @param {number} size 0 = 1x Int16, 1 = 2x Int16\n * @param {number} arg value to pack\n * @returns\n */ _packData(size, arg) {\n return [\n new Uint8Array([\n arg,\n arg >> 8\n ]),\n new Uint8Array([\n arg,\n arg >> 8,\n arg >> 16,\n arg >> 24\n ])\n ][size];\n }\n /**\n * Packs audio into \"audio/wav\" Blob\n * @param {number} sampleRate\n * @param {{bitsPerSample: number, channels: Array<Float32Array>, data: Int16Array}} audio\n * @returns {WavPackerAudioType}\n */ pack(sampleRate, audio) {\n if (!audio?.bitsPerSample) throw new Error(`Missing \"bitsPerSample\"`);\n else if (!audio?.channels) throw new Error(`Missing \"channels\"`);\n else if (!audio?.data) throw new Error(`Missing \"data\"`);\n const { bitsPerSample: bitsPerSample, channels: channels, data: data } = audio;\n const output = [\n // Header\n 'RIFF',\n this._packData(1, 52),\n 'WAVE',\n // chunk 1\n 'fmt ',\n this._packData(1, 16),\n this._packData(0, 1),\n this._packData(0, channels.length),\n this._packData(1, sampleRate),\n this._packData(1, sampleRate * channels.length * bitsPerSample / 8),\n this._packData(0, channels.length * bitsPerSample / 8),\n this._packData(0, bitsPerSample),\n // chunk 2\n 'data',\n this._packData(1, channels[0].length * channels.length * bitsPerSample / 8),\n data\n ];\n const blob = new Blob(output, {\n type: 'audio/mpeg'\n });\n const url = URL.createObjectURL(blob);\n return {\n blob: blob,\n url: url,\n channelCount: channels.length,\n sampleRate: sampleRate,\n duration: data.byteLength / (channels.length * sampleRate * 2)\n };\n }\n}\nglobalThis.WavPacker = $6d4b7449a1e1544a$export$13afda237b1c9846;\n\n\n/**\n * Constants for help with visualization\n * Helps map frequency ranges from Fast Fourier Transform\n * to human-interpretable ranges, notably music ranges and\n * human vocal ranges.\n */ // Eighth octave frequencies\nconst $03f71ce85e00ada6$var$octave8Frequencies = [\n 4186.01,\n 4434.92,\n 4698.63,\n 4978.03,\n 5274.04,\n 5587.65,\n 5919.91,\n 6271.93,\n 6644.88,\n 7040.0,\n 7458.62,\n 7902.13\n];\n// Labels for each of the above frequencies\nconst $03f71ce85e00ada6$var$octave8FrequencyLabels = [\n 'C',\n 'C#',\n 'D',\n 'D#',\n 'E',\n 'F',\n 'F#',\n 'G',\n 'G#',\n 'A',\n 'A#',\n 'B'\n];\nconst $03f71ce85e00ada6$export$776c63898ae5b636 = [];\nconst $03f71ce85e00ada6$export$facd167cc27ea9b0 = [];\nfor(let i = 1; i <= 8; i++)for(let f = 0; f < $03f71ce85e00ada6$var$octave8Frequencies.length; f++){\n const freq = $03f71ce85e00ada6$var$octave8Frequencies[f];\n $03f71ce85e00ada6$export$776c63898ae5b636.push(freq / Math.pow(2, 8 - i));\n $03f71ce85e00ada6$export$facd167cc27ea9b0.push($03f71ce85e00ada6$var$octave8FrequencyLabels[f] + i);\n}\n/**\n * Subset of the note frequencies between 32 and 2000 Hz\n * 6 octave range: C1 to B6\n */ const $03f71ce85e00ada6$var$voiceFrequencyRange = [\n 32.0,\n 2000.0\n];\nconst $03f71ce85e00ada6$export$dbc1581ed2cfa183 = $03f71ce85e00ada6$export$776c63898ae5b636.filter((_, i)=>{\n return $03f71ce85e00ada6$export$776c63898ae5b636[i] > $03f71ce85e00ada6$var$voiceFrequencyRange[0] && $03f71ce85e00ada6$export$776c63898ae5b636[i] < $03f71ce85e00ada6$var$voiceFrequencyRange[1];\n});\nconst $03f71ce85e00ada6$export$30a6f2881311088f = $03f71ce85e00ada6$export$facd167cc27ea9b0.filter((_, i)=>{\n return $03f71ce85e00ada6$export$776c63898ae5b636[i] > $03f71ce85e00ada6$var$voiceFrequencyRange[0] && $03f71ce85e00ada6$export$776c63898ae5b636[i] < $03f71ce85e00ada6$var$voiceFrequencyRange[1];\n});\n\n\nclass $f32f064564ee62f6$export$2c3136da0bf130f9 {\n /**\n * Retrieves frequency domain data from an AnalyserNode adjusted to a decibel range\n * returns human-readable formatting and labels\n * @param {AnalyserNode} analyser\n * @param {number} sampleRate\n * @param {Float32Array} [fftResult]\n * @param {\"frequency\"|\"music\"|\"voice\"} [analysisType]\n * @param {number} [minDecibels] default -100\n * @param {number} [maxDecibels] default -30\n * @returns {AudioAnalysisOutputType}\n */ static getFrequencies(analyser, sampleRate, fftResult, analysisType = 'frequency', minDecibels = -100, maxDecibels = -30) {\n if (!fftResult) {\n fftResult = new Float32Array(analyser.frequencyBinCount);\n analyser.getFloatFrequencyData(fftResult);\n }\n const nyquistFrequency = sampleRate / 2;\n const frequencyStep = 1 / fftResult.length * nyquistFrequency;\n let outputValues;\n let frequencies;\n let labels;\n if (analysisType === 'music' || analysisType === 'voice') {\n const useFrequencies = analysisType === 'voice' ? (0, $03f71ce85e00ada6$export$dbc1581ed2cfa183) : (0, $03f71ce85e00ada6$export$776c63898ae5b636);\n const aggregateOutput = Array(useFrequencies.length).fill(minDecibels);\n for(let i = 0; i < fftResult.length; i++){\n const frequency = i * frequencyStep;\n const amplitude = fftResult[i];\n for(let n = useFrequencies.length - 1; n >= 0; n--)if (frequency > useFrequencies[n]) {\n aggregateOutput[n] = Math.max(aggregateOutput[n], amplitude);\n break;\n }\n }\n outputValues = aggregateOutput;\n frequencies = analysisType === 'voice' ? (0, $03f71ce85e00ada6$export$dbc1581ed2cfa183) : (0, $03f71ce85e00ada6$export$776c63898ae5b636);\n labels = analysisType === 'voice' ? (0, $03f71ce85e00ada6$export$30a6f2881311088f) : (0, $03f71ce85e00ada6$export$facd167cc27ea9b0);\n } else {\n outputValues = Array.from(fftResult);\n frequencies = outputValues.map((_, i)=>frequencyStep * i);\n labels = frequencies.map((f)=>`${f.toFixed(2)} Hz`);\n }\n // We normalize to {0, 1}\n const normalizedOutput = outputValues.map((v)=>{\n return Math.max(0, Math.min((v - minDecibels) / (maxDecibels - minDecibels), 1));\n });\n const values = new Float32Array(normalizedOutput);\n return {\n values: values,\n frequencies: frequencies,\n labels: labels\n };\n }\n /**\n * Creates a new AudioAnalysis instance for an HTMLAudioElement\n * @param {HTMLAudioElement} audioElement\n * @param {AudioBuffer|null} [audioBuffer] If provided, will cache all frequency domain data from the buffer\n * @returns {AudioAnalysis}\n */ constructor(audioElement, audioBuffer = null){\n this.fftResults = [];\n if (audioBuffer) {\n /**\n * Modified from\n * https://stackoverflow.com/questions/75063715/using-the-web-audio-api-to-analyze-a-song-without-playing\n *\n * We do this to populate FFT values for the audio if provided an `audioBuffer`\n * The reason to do this is that Safari fails when using `createMediaElementSource`\n * This has a non-zero RAM cost so we only opt-in to run it on Safari, Chrome is better\n */ const { length: length, sampleRate: sampleRate } = audioBuffer;\n const offlineAudioContext = new OfflineAudioContext({\n length: length,\n sampleRate: sampleRate\n });\n const source = offlineAudioContext.createBufferSource();\n source.buffer = audioBuffer;\n const analyser = offlineAudioContext.createAnalyser();\n analyser.fftSize = 8192;\n analyser.smoothingTimeConstant = 0.1;\n source.connect(analyser);\n // limit is :: 128 / sampleRate;\n // but we just want 60fps - cuts ~1s from 6MB to 1MB of RAM\n const renderQuantumInSeconds = 1 / 60;\n const durationInSeconds = length / sampleRate;\n const analyze = (index)=>{\n const suspendTime = renderQuantumInSeconds * index;\n if (suspendTime < durationInSeconds) offlineAudioContext.suspend(suspendTime).then(()=>{\n const fftResult = new Float32Array(analyser.frequencyBinCount);\n analyser.getFloatFrequencyData(fftResult);\n this.fftResults.push(fftResult);\n analyze(index + 1);\n });\n if (index === 1) offlineAudioContext.startRendering();\n else offlineAudioContext.resume();\n };\n source.start(0);\n analyze(1);\n this.audio = audioElement;\n this.context = offlineAudioContext;\n this.analyser = analyser;\n this.sampleRate = sampleRate;\n this.audioBuffer = audioBuffer;\n } else {\n const audioContext = new AudioContext();\n const track = audioContext.createMediaElementSource(audioElement);\n const analyser = audioContext.createAnalyser();\n analyser.fftSize = 8192;\n analyser.smoothingTimeConstant = 0.1;\n track.connect(analyser);\n analyser.connect(audioContext.destination);\n this.audio = audioElement;\n this.context = audioContext;\n this.analyser = analyser;\n this.sampleRate = this.context.sampleRate;\n this.audioBuffer = null;\n }\n }\n /**\n * Gets the current frequency domain data from the playing audio track\n * @param {\"frequency\"|\"music\"|\"voice\"} [analysisType]\n * @param {number} [minDecibels] default -100\n * @param {number} [maxDecibels] default -30\n * @returns {AudioAnalysisOutputType}\n */ getFrequencies(analysisType = 'frequency', minDecibels = -100, maxDecibels = -30) {\n let fftResult = null;\n if (this.audioBuffer && this.fftResults.length) {\n const pct = this.audio.currentTime / this.audio.duration;\n const index = Math.min(pct * this.fftResults.length | 0, this.fftResults.length - 1);\n fftResult = this.fftResults[index];\n }\n return $f32f064564ee62f6$export$2c3136da0bf130f9.getFrequencies(this.analyser, this.sampleRate, fftResult, analysisType, minDecibels, maxDecibels);\n }\n /**\n * Resume the internal AudioContext if it was suspended due to the lack of\n * user interaction when the AudioAnalysis was instantiated.\n * @returns {Promise<true>}\n */ async resumeIfSuspended() {\n if (this.context.state === 'suspended') await this.context.resume();\n return true;\n }\n}\nglobalThis.AudioAnalysis = $f32f064564ee62f6$export$2c3136da0bf130f9;\n\n\nconst $29a8a70a9466b14f$export$50b76700e2b15e9 = `\nclass StreamProcessor extends AudioWorkletProcessor {\n constructor() {\n super();\n this.hasStarted = false;\n this.hasInterrupted = false;\n this.outputBuffers = [];\n this.bufferLength = 128;\n this.write = { buffer: new Float32Array(this.bufferLength), trackId: null };\n this.writeOffset = 0;\n this.trackSampleOffsets = {};\n this.port.onmessage = (event) => {\n if (event.data) {\n const payload = event.data;\n if (payload.event === 'write') {\n const int16Array = payload.buffer;\n const float32Array = new Float32Array(int16Array.length);\n for (let i = 0; i < int16Array.length; i++) {\n float32Array[i] = int16Array[i] / 0x8000; // Convert Int16 to Float32\n }\n this.writeData(float32Array, payload.trackId);\n } else if (\n payload.event === 'offset' ||\n payload.event === 'interrupt'\n ) {\n const requestId = payload.requestId;\n const trackId = this.write.trackId;\n const offset = this.trackSampleOffsets[trackId] || 0;\n this.port.postMessage({\n event: 'offset',\n requestId,\n trackId,\n offset,\n });\n if (payload.event === 'interrupt') {\n this.hasInterrupted = true;\n }\n } else {\n throw new Error(\\`Unhandled event \"\\${payload.event}\"\\`);\n }\n }\n };\n }\n\n writeData(float32Array, trackId = null) {\n let { buffer } = this.write;\n let offset = this.writeOffset;\n for (let i = 0; i < float32Array.length; i++) {\n buffer[offset++] = float32Array[i];\n if (offset >= buffer.length) {\n this.outputBuffers.push(this.write);\n this.write = { buffer: new Float32Array(this.bufferLength), trackId };\n buffer = this.write.buffer;\n offset = 0;\n }\n }\n this.writeOffset = offset;\n return true;\n }\n\n process(inputs, outputs, parameters) {\n const output = outputs[0];\n const outputChannelData = output[0];\n const outputBuffers = this.outputBuffers;\n if (this.hasInterrupted) {\n this.port.postMessage({ event: 'stop' });\n return false;\n } else if (outputBuffers.length) {\n this.hasStarted = true;\n const { buffer, trackId } = outputBuffers.shift();\n for (let i = 0; i < outputChannelData.length; i++) {\n outputChannelData[i] = buffer[i] || 0;\n }\n if (trackId) {\n this.trackSampleOffsets[trackId] =\n this.trackSampleOffsets[trackId] || 0;\n this.trackSampleOffsets[trackId] += buffer.length;\n }\n return true;\n } else if (this.hasStarted) {\n this.port.postMessage({ event: 'stop' });\n return false;\n } else {\n return true;\n }\n }\n}\n\nregisterProcessor('stream_processor', StreamProcessor);\n`;\nconst $29a8a70a9466b14f$var$script = new Blob([\n $29a8a70a9466b14f$export$50b76700e2b15e9\n], {\n type: 'application/javascript'\n});\nconst $29a8a70a9466b14f$var$src = URL.createObjectURL($29a8a70a9466b14f$var$script);\nconst $29a8a70a9466b14f$export$bfa8c596114d74df = $29a8a70a9466b14f$var$src;\n\n\n\nclass $d0a969833958d9e7$export$9698d62c78b8f366 {\n /**\n * Creates a new WavStreamPlayer instance\n * @param {{sampleRate?: number}} options\n * @returns {WavStreamPlayer}\n */ constructor({ sampleRate: sampleRate = 44100 } = {}){\n this.scriptSrc = (0, $29a8a70a9466b14f$export$bfa8c596114d74df);\n this.sampleRate = sampleRate;\n this.context = null;\n this.stream = null;\n this.analyser = null;\n this.trackSampleOffsets = {};\n this.interruptedTrackIds = {};\n }\n /**\n * Connects the audio context and enables output to speakers\n * @returns {Promise<true>}\n */ async connect() {\n this.context = new AudioContext({\n sampleRate: this.sampleRate\n });\n if (this._speakerID) this.context.setSinkId(this._speakerID);\n if (this.context.state === \"suspended\") await this.context.resume();\n try {\n await this.context.audioWorklet.addModule(this.scriptSrc);\n } catch (e) {\n console.error(e);\n throw new Error(`Could not add audioWorklet module: ${this.scriptSrc}`);\n }\n const analyser = this.context.createAnalyser();\n analyser.fftSize = 8192;\n analyser.smoothingTimeConstant = 0.1;\n this.analyser = analyser;\n return true;\n }\n /**\n * Gets the current frequency domain data from the playing track\n * @param {\"frequency\"|\"music\"|\"voice\"} [analysisType]\n * @param {number} [minDecibels] default -100\n * @param {number} [maxDecibels] default -30\n * @returns {import('./analysis/audio_analysis.js').AudioAnalysisOutputType}\n */ getFrequencies(analysisType = \"frequency\", minDecibels = -100, maxDecibels = -30) {\n if (!this.analyser) throw new Error(\"Not connected, please call .connect() first\");\n return (0, $f32f064564ee62f6$export$2c3136da0bf130f9).getFrequencies(this.analyser, this.sampleRate, null, analysisType, minDecibels, maxDecibels);\n }\n /**\n * @param {string} speaker deviceId\n */ async updateSpeaker(speaker) {\n const _prevSpeaker = this._speakerID;\n this._speakerID = speaker;\n if (this.context) try {\n if (speaker === \"default\") await this.context.setSinkId();\n else await this.context.setSinkId(speaker);\n } catch (e) {\n console.error(`Could not set sinkId to ${speaker}: ${e}`);\n this._speakerID = _prevSpeaker;\n }\n }\n /**\n * Starts audio streaming\n * @private\n * @returns {Promise<true>}\n */ _start() {\n const streamNode = new AudioWorkletNode(this.context, \"stream_processor\");\n streamNode.connect(this.context.destination);\n streamNode.port.onmessage = (e)=>{\n const { event: event } = e.data;\n if (event === \"stop\") {\n streamNode.disconnect();\n this.stream = null;\n } else if (event === \"offset\") {\n const { requestId: requestId, trackId: trackId, offset: offset } = e.data;\n const currentTime = offset / this.sampleRate;\n this.trackSampleOffsets[requestId] = {\n trackId: trackId,\n offset: offset,\n currentTime: currentTime\n };\n }\n };\n this.analyser.disconnect();\n streamNode.connect(this.analyser);\n this.stream = streamNode;\n return true;\n }\n /**\n * Adds 16BitPCM data to the currently playing audio stream\n * You can add chunks beyond the current play point and they will be queued for play\n * @param {ArrayBuffer|Int16Array} arrayBuffer\n * @param {string} [trackId]\n * @returns {Int16Array}\n */ add16BitPCM(arrayBuffer, trackId = \"default\") {\n if (typeof trackId !== \"string\") throw new Error(`trackId must be a string`);\n else if (this.interruptedTrackIds[trackId]) return;\n if (!this.stream) this._start();\n let buffer;\n if (arrayBuffer instanceof Int16Array) buffer = arrayBuffer;\n else if (arrayBuffer instanceof ArrayBuffer) buffer = new Int16Array(arrayBuffer);\n else throw new Error(`argument must be Int16Array or ArrayBuffer`);\n this.stream.port.postMessage({\n event: \"write\",\n buffer: buffer,\n trackId: trackId\n });\n return buffer;\n }\n /**\n * Gets the offset (sample count) of the currently playing stream\n * @param {boolean} [interrupt]\n * @returns {{trackId: string|null, offset: number, currentTime: number}}\n */ async getTrackSampleOffset(interrupt = false) {\n if (!this.stream) return null;\n const requestId = crypto.randomUUID();\n this.stream.port.postMessage({\n event: interrupt ? \"interrupt\" : \"offset\",\n requestId: requestId\n });\n let trackSampleOffset;\n while(!trackSampleOffset){\n trackSampleOffset = this.trackSampleOffsets[requestId];\n await new Promise((r)=>setTimeout(()=>r(), 1));\n }\n const { trackId: trackId } = trackSampleOffset;\n if (interrupt && trackId) this.interruptedTrackIds[trackId] = true;\n return trackSampleOffset;\n }\n /**\n * Strips the current stream and returns the sample offset of the audio\n * @param {boolean} [interrupt]\n * @returns {{trackId: string|null, offset: number, currentTime: number}}\n */ async interrupt() {\n return this.getTrackSampleOffset(true);\n }\n}\nglobalThis.WavStreamPlayer = $d0a969833958d9e7$export$9698d62c78b8f366;\n\n\nconst $8e1d1e6ff08f6fb5$var$AudioProcessorWorklet = `\nclass AudioProcessor extends AudioWorkletProcessor {\n\n constructor() {\n super();\n this.port.onmessage = this.receive.bind(this);\n this.initialize();\n }\n\n initialize() {\n this.foundAudio = false;\n this.recording = false;\n this.chunks = [];\n }\n\n /**\n * Concatenates sampled chunks into channels\n * Format is chunk[Left[], Right[]]\n */\n readChannelData(chunks, channel = -1, maxChannels = 9) {\n let channelLimit;\n if (channel !== -1) {\n if (chunks[0] && chunks[0].length - 1 < channel) {\n throw new Error(\n \\`Channel \\${channel} out of range: max \\${chunks[0].length}\\`\n );\n }\n channelLimit = channel + 1;\n } else {\n channel = 0;\n channelLimit = Math.min(chunks[0] ? chunks[0].length : 1, maxChannels);\n }\n const channels = [];\n for (let n = channel; n < channelLimit; n++) {\n const length = chunks.reduce((sum, chunk) => {\n return sum + chunk[n].length;\n }, 0);\n const buffers = chunks.map((chunk) => chunk[n]);\n const result = new Float32Array(length);\n let offset = 0;\n for (let i = 0; i < buffers.length; i++) {\n result.set(buffers[i], offset);\n offset += buffers[i].length;\n }\n channels[n] = result;\n }\n return channels;\n }\n\n /**\n * Combines parallel audio data into correct format,\n * channels[Left[], Right[]] to float32Array[LRLRLRLR...]\n */\n formatAudioData(channels) {\n if (channels.length === 1) {\n // Simple case is only one channel\n const float32Array = channels[0].slice();\n const meanValues = channels[0].slice();\n return { float32Array, meanValues };\n } else {\n const float32Array = new Float32Array(\n channels[0].length * channels.length\n );\n const meanValues = new Float32Array(channels[0].length);\n for (let i = 0; i < channels[0].length; i++) {\n const offset = i * channels.length;\n let meanValue = 0;\n for (let n = 0; n < channels.length; n++) {\n float32Array[offset + n] = channels[n][i];\n meanValue += channels[n][i];\n }\n meanValues[i] = meanValue / channels.length;\n }\n return { float32Array, meanValues };\n }\n }\n\n /**\n * Converts 32-bit float data to 16-bit integers\n */\n floatTo16BitPCM(float32Array) {\n const buffer = new ArrayBuffer(float32Array.length * 2);\n const view = new DataView(buffer);\n let offset = 0;\n for (let i = 0; i < float32Array.length; i++, offset += 2) {\n let s = Math.max(-1, Math.min(1, float32Array[i]));\n view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);\n }\n return buffer;\n }\n\n /**\n * Retrieves the most recent amplitude values from the audio stream\n * @param {number} channel\n */\n getValues(channel = -1) {\n const channels = this.readChannelData(this.chunks, channel);\n const { meanValues } = this.formatAudioData(channels);\n return { meanValues, channels };\n }\n\n /**\n * Exports chunks as an audio/wav file\n */\n export() {\n const channels = this.readChannelData(this.chunks);\n const { float32Array, meanValues } = this.formatAudioData(channels);\n const audioData = this.floatTo16BitPCM(float32Array);\n return {\n meanValues: meanValues,\n audio: {\n bitsPerSample: 16,\n channels: channels,\n data: audioData,\n },\n };\n }\n\n receive(e) {\n const { event, id } = e.data;\n let receiptData = {};\n switch (event) {\n case 'start':\n this.recording = true;\n break;\n case 'stop':\n this.recording = false;\n break;\n case 'clear':\n this.initialize();\n break;\n case 'export':\n receiptData = this.export();\n break;\n case 'read':\n receiptData = this.getValues();\n break;\n default:\n break;\n }\n // Always send back receipt\n this.port.postMessage({ event: 'receipt', id, data: receiptData });\n }\n\n sendChunk(chunk) {\n const channels = this.readChannelData([chunk]);\n const { float32Array, meanValues } = this.formatAudioData(channels);\n const rawAudioData = this.floatTo16BitPCM(float32Array);\n const monoAudioData = this.floatTo16BitPCM(meanValues);\n this.port.postMessage({\n event: 'chunk',\n data: {\n mono: monoAudioData,\n raw: rawAudioData,\n },\n });\n }\n\n process(inputList, outputList, parameters) {\n // Copy input to output (e.g. speakers)\n // Note that this creates choppy sounds with Mac products\n const sourceLimit = Math.min(inputList.length, outputList.length);\n for (let inputNum = 0; inputNum < sourceLimit; inputNum++) {\n const input = inputList[inputNum];\n const output = outputList[inputNum];\n const channelCount = Math.min(input.length, output.length);\n for (let channelNum = 0; channelNum < channelCount; channelNum++) {\n input[channelNum].forEach((sample, i) => {\n output[channelNum][i] = sample;\n });\n }\n }\n const inputs = inputList[0];\n // There's latency at the beginning of a stream before recording starts\n // Make sure we actually receive audio data before we start storing chunks\n let sliceIndex = 0;\n if (!this.foundAudio) {\n for (const channel of inputs) {\n sliceIndex = 0; // reset for each channel\n if (this.foundAudio) {\n break;\n }\n if (channel) {\n for (const value of channel) {\n if (value !== 0) {\n // find only one non-zero entry in any channel\n this.foundAudio = true;\n break;\n } else {\n sliceIndex++;\n }\n }\n }\n }\n }\n if (inputs && inputs[0] && this.foundAudio && this.recording) {\n // We need to copy the TypedArray, because the \\`process\\`\n // internals will reuse the same buffer to hold each input\n const chunk = inputs.map((input) => input.slice(sliceIndex));\n this.chunks.push(chunk);\n this.sendChunk(chunk);\n }\n return true;\n }\n}\n\nregisterProcessor('audio_processor', AudioProcessor);\n`;\nconst $8e1d1e6ff08f6fb5$var$script = new Blob([\n $8e1d1e6ff08f6fb5$var$AudioProcessorWorklet\n], {\n type: 'application/javascript'\n});\nconst $8e1d1e6ff08f6fb5$var$src = URL.createObjectURL($8e1d1e6ff08f6fb5$var$script);\nconst $8e1d1e6ff08f6fb5$export$1f65f50a8cbff43c = $8e1d1e6ff08f6fb5$var$src;\n\n\n\n\nclass $62bc376044a05513$export$439b217ca659a877 {\n /**\n * Create a new WavRecorder instance\n * @param {{sampleRate?: number, outputToSpeakers?: boolean, debug?: boolean}} [options]\n * @returns {WavRecorder}\n */ constructor({ sampleRate: sampleRate = 44100, outputToSpeakers: outputToSpeakers = false, debug: debug = false } = {}){\n // Script source\n this.scriptSrc = (0, $8e1d1e6ff08f6fb5$export$1f65f50a8cbff43c);\n // Config\n this.sampleRate = sampleRate;\n this.outputToSpeakers = outputToSpeakers;\n this.debug = !!debug;\n this._deviceChangeCallback = null;\n this._deviceErrorCallback = null;\n this._devices = [];\n this.deviceSelection = null;\n // State variables\n this.stream = null;\n this.processor = null;\n this.source = null;\n this.node = null;\n this.recording = false;\n // Event handling with AudioWorklet\n this._lastEventId = 0;\n this.eventReceipts = {};\n this.eventTimeout = 5000;\n // Process chunks of audio\n this._chunkProcessor = ()=>{};\n this._chunkProcessorSize = void 0;\n this._chunkProcessorBuffer = {\n raw: new ArrayBuffer(0),\n mono: new ArrayBuffer(0)\n };\n }\n /**\n * Decodes audio data from multiple formats to a Blob, url, Float32Array and AudioBuffer\n * @param {Blob|Float32Array|Int16Array|ArrayBuffer|number[]} audioData\n * @param {number} sampleRate\n * @param {number} fromSampleRate\n * @returns {Promise<DecodedAudioType>}\n */ static async decode(audioData, sampleRate = 44100, fromSampleRate = -1) {\n const context = new AudioContext({\n sampleRate: sampleRate\n });\n let arrayBuffer;\n let blob;\n if (audioData instanceof Blob) {\n if (fromSampleRate !== -1) throw new Error(`Can not specify \"fromSampleRate\" when reading from Blob`);\n blob = audioData;\n arrayBuffer = await blob.arrayBuffer();\n } else if (audioData instanceof ArrayBuffer) {\n if (fromSampleRate !== -1) throw new Error(`Can not specify \"fromSampleRate\" when reading from ArrayBuffer`);\n arrayBuffer = audioData;\n blob = new Blob([\n arrayBuffer\n ], {\n type: 'audio/wav'\n });\n } else {\n let float32Array;\n let data;\n if (audioData instanceof Int16Array) {\n data = audioData;\n float32Array = new Float32Array(audioData.length);\n for(let i = 0; i < audioData.length; i++)float32Array[i] = audioData[i] / 0x8000;\n } else if (audioData instanceof Float32Array) float32Array = audioData;\n else if (audioData instanceof Array) float32Array = new Float32Array(audioData);\n else throw new Error(`\"audioData\" must be one of: Blob, Float32Arrray, Int16Array, ArrayBuffer, Array<number>`);\n if (fromSampleRate === -1) throw new Error(`Must specify \"fromSampleRate\" when reading from Float32Array, In16Array or Array`);\n else if (fromSampleRate < 3000) throw new Error(`Minimum \"fromSampleRate\" is 3000 (3kHz)`);\n if (!data) data = (0, $6d4b7449a1e1544a$export$13afda237b1c9846).floatTo16BitPCM(float32Array);\n const audio = {\n bitsPerSample: 16,\n channels: [\n float32Array\n ],\n data: data\n };\n const packer = new (0, $6d4b7449a1e1544a$export$13afda237b1c9846)();\n const result = packer.pack(fromSampleRate, audio);\n blob = result.blob;\n arrayBuffer = await blob.arrayBuffer();\n }\n const audioBuffer = await context.decodeAudioData(arrayBuffer);\n const values = audioBuffer.getChannelData(0);\n const url = URL.createObjectURL(blob);\n return {\n blob: blob,\n url: url,\n values: values,\n audioBuffer: audioBuffer\n };\n }\n /**\n * Logs data in debug mode\n * @param {...any} arguments\n * @returns {true}\n */ log() {\n if (this.debug) this.log(...arguments);\n return true;\n }\n /**\n * Retrieves the current sampleRate for the recorder\n * @returns {number}\n */ getSampleRate() {\n return this.sampleRate;\n }\n /**\n * Retrieves the current status of the recording\n * @returns {\"ended\"|\"paused\"|\"recording\"}\n */ getStatus() {\n if (!this.processor) return 'ended';\n else if (!this.recording) return 'paused';\n else return 'recording';\n }\n /**\n * Sends an event to the AudioWorklet\n * @private\n * @param {string} name\n * @param {{[key: string]: any}} data\n * @param {AudioWorkletNode} [_processor]\n * @returns {Promise<{[key: string]: any}>}\n */ async _event(name, data = {}, _processor = null) {\n _processor = _processor || this.processor;\n if (!_processor) throw new Error('Can not send events without recording first');\n const message = {\n event: name,\n id: this._lastEventId++,\n data: data\n };\n _processor.port.postMessage(message);\n const t0 = new Date().valueOf();\n while(!this.eventReceipts[message.id]){\n if (new Date().valueOf() - t0 > this.eventTimeout) throw new Error(`Timeout waiting for \"${name}\" event`);\n await new Promise((res)=>setTimeout(()=>res(true), 1));\n }\n const payload = this.eventReceipts[message.id];\n delete this.eventReceipts[message.id];\n return payload;\n }\n /**\n * Sets device change callback, remove if callback provided is `null`\n * @param {(Array<MediaDeviceInfo & {default: boolean}>): void|null} callback\n * @returns {true}\n */ listenForDeviceChange(callback) {\n if (callback === null && this._deviceChangeCallback) {\n navigator.mediaDevices.removeEventListener('devicechange', this._deviceChangeCallback);\n this._deviceChangeCallback = null;\n } else if (callback !== null) {\n // Basically a debounce; we only want this called once when devices change\n // And we only want the most recent callback() to be executed\n // if a few are operating at the same time\n let lastId = 0;\n let lastDevices = [];\n const serializeDevices = (devices)=>devices.map((d)=>d.deviceId).sort().join(',');\n const cb = async ()=>{\n let id = ++lastId;\n const devices = await this.listDevices();\n if (id === lastId) {\n if (serializeDevices(lastDevices) !== serializeDevices(devices)) {\n lastDevices = devices;\n callback(devices.slice());\n }\n }\n };\n navigator.mediaDevices.addEventListener('devicechange', cb);\n cb();\n this._deviceChangeCallback = cb;\n }\n return true;\n }\n /**\n * Provide a callback for if/when device errors occur\n * @param {(({devices: Array<\"cam\" | \"mic\">, type: string, error?: Error}) => void) | null} callback\n * @returns {true}\n */ listenForDeviceErrors(callback) {\n this._deviceErrorCallback = callback;\n }\n /**\n * Manually request permission to use the microphone\n * @returns {Promise<true>}\n */ async requestPermission() {\n const permissionStatus = await navigator.permissions.query({\n name: 'microphone'\n });\n if (permissionStatus.state === 'denied') {\n if (this._deviceErrorCallback) this._deviceErrorCallback({\n devices: [\n \"mic\"\n ],\n type: \"unknown\",\n error: new Error(\"Microphone access denied\")\n });\n } else if (permissionStatus.state === 'prompt') try {\n const stream = await navigator.mediaDevices.getUserMedia({\n audio: true\n });\n const tracks = stream.getTracks();\n tracks.forEach((track)=>track.stop());\n } catch (e) {\n console.error(\"Error accessing microphone.\");\n if (this._deviceErrorCallback) this._deviceErrorCallback({\n devices: [\n \"mic\"\n ],\n type: \"unknown\",\n error: e\n });\n }\n return true;\n }\n /**\n * List all eligible devices for recording, will request permission to use microphone\n * @returns {Promise<Array<MediaDeviceInfo & {default: boolean}>>}\n */ async listDevices() {\n if (!navigator.mediaDevices || !('enumerateDevices' in navigator.mediaDevices)) throw new Error('Could not request user devices');\n await this.requestPermission();\n const devices = await navigator.mediaDevices.enumerateDevices();\n const audioDevices = devices.filter((device)=>device.kind === 'audioinput');\n return audioDevices;\n // const defaultDeviceIndex = audioDevices.findIndex(\n // (device) => device.deviceId === 'default'\n // );\n // const deviceList = [];\n // if (defaultDeviceIndex !== -1) {\n // let defaultDevice = audioDevices.splice(defaultDeviceIndex, 1)[0];\n // let existingIndex = audioDevices.findIndex(\n // (device) => device.groupId === defaultDevice.groupId\n // );\n // if (existingIndex !== -1) {\n // defaultDevice = audioDevices.splice(existingIndex, 1)[0];\n // }\n // defaultDevice.default = true;\n // deviceList.push(defaultDevice);\n // }\n // return deviceList.concat(audioDevices);\n }\n /**\n * Begins a recording session and requests microphone permissions if not already granted\n * Microphone recording indicator will appear on browser tab but status will be \"paused\"\n * @param {string} [deviceId] if no device provided, default device will be used\n * @returns {Promise<true>}\n */ async begin(deviceId) {\n if (this.processor) throw new Error(`Already connected: please call .end() to start a new session`);\n if (!navigator.mediaDevices || !('getUserMedia' in navigator.mediaDevices)) {\n if (this._deviceErrorCallback) this._deviceErrorCallback({\n devices: [\n \"mic\",\n \"cam\"\n ],\n type: \"undefined-mediadevices\"\n });\n throw new Error('Could not request user media');\n }\n deviceId = deviceId ?? this.deviceSelection?.deviceId;\n try {\n const config = {\n audio: true\n };\n if (deviceId) config.audio = {\n deviceId: {\n exact: deviceId\n }\n };\n this.stream = await navigator.mediaDevices.getUserMedia(config);\n } catch (err) {\n if (this._deviceErrorCallback) this._deviceErrorCallback({\n devices: [\n \"mic\"\n ],\n type: \"unknown\",\n error: err\n });\n throw new Error('Could not start media stream');\n }\n this.listDevices().then((devices)=>{\n deviceId = this.stream.getAudioTracks()[0].getSettings().deviceId;\n console.log('find current device', devices, deviceId, this.stream.getAudioTracks()[0].getSettings());\n this.deviceSelection = devices.find((d)=>d.deviceId === deviceId);\n console.log('current device', this.deviceSelection);\n });\n const context = new AudioContext({\n sampleRate: this.sampleRate\n });\n const source = context.createMediaStreamSource(this.stream);\n // Load and execute the module script.\n try {\n await context.audioWorklet.addModule(this.scriptSrc);\n } catch (e) {\n console.error(e);\n throw new Error(`Could not add audioWorklet module: ${this.scriptSrc}`);\n }\n const processor = new AudioWorkletNode(context, 'audio_processor');\n processor.port.onmessage = (e)=>{\n const { event: event, id: id, data: data } = e.data;\n if (event === 'receipt') this.eventReceipts[id] = data;\n else if (event === 'chunk') {\n if (this._chunkProcessorSize) {\n const buffer = this._chunkProcessorBuffer;\n this._chunkProcessorBuffer = {\n raw: (0, $6d4b7449a1e1544a$export$13afda237b1c9846).mergeBuffers(buffer.raw, data.raw),\n mono: (0, $6d4b7449a1e1544a$export$13afda237b1c9846).mergeBuffers(buffer.mono, data.mono)\n };\n if (this._chunkProcessorBuffer.mono.byteLength >= this._chunkProcessorSize) {\n this._chunkProcessor(this._chunkProcessorBuffer);\n this._chunkProcessorBuffer = {\n raw: new ArrayBuffer(0),\n mono: new ArrayBuffer(0)\n };\n }\n } else this._chunkProcessor(data);\n }\n };\n const node = source.connect(processor);\n const analyser = context.createAnalyser();\n analyser.fftSize = 8192;\n analyser.smoothingTimeConstant = 0.1;\n node.connect(analyser);\n if (this.outputToSpeakers) {\n // eslint-disable-next-line no-console\n console.warn(\"Warning: Output to speakers may affect sound quality,\\nespecially due to system audio feedback preventative measures.\\nuse only for debugging\");\n analyser.connect(context.destination);\n }\n this.source = source;\n this.node = node;\n this.analyser = analyser;\n this.processor = processor;\n console.log('begin completed');\n return true;\n }\n /**\n * Gets the current frequency domain data from the recording track\n * @param {\"frequency\"|\"music\"|\"voice\"} [analysisType]\n * @param {number} [minDecibels] default -100\n * @param {number} [maxDecibels] default -30\n * @returns {import('./analysis/audio_analysis.js').AudioAnalysisOutputType}\n */ getFrequencies(analysisType = 'frequency', minDecibels = -100, maxDecibels = -30) {\n if (!this.processor) throw new Error('Session ended: please call .begin() first');\n return (0, $f32f064564ee62f6$export$2c3136da0bf130f9).getFrequencies(this.analyser, this.sampleRate, null, analysisType, minDecibels, maxDecibels);\n }\n /**\n * Pauses the recording\n * Keeps microphone stream open but halts storage of audio\n * @returns {Promise<true>}\n */ async pause() {\n if (!this.processor) throw new Error('Session ended: please call .begin() first');\n else if (!this.recording) throw new Error('Already paused: please call .record() first');\n if (this._chunkProcessorBuffer.raw.byteLength) this._chunkProcessor(this._chunkProcessorBuffer);\n this.log('Pausing ...');\n await this._event('stop');\n this.recording = false;\n return true;\n }\n /**\n * Start recording stream and storing to memory from the connected audio source\n * @param {(data: { mono: Int16Array; raw: Int16Array }) => any} [chunkProcessor]\n * @param {number} [chunkSize] chunkProcessor will not be triggered until this size threshold met in mono audio\n * @returns {Promise<true>}\n */ async record(chunkProcessor = ()=>{}, chunkSize = 8192) {\n if (!this.processor) throw new Error('Session ended: please call .begin() first');\n else if (this.recording) throw new Error('Already recording: please call .pause() first');\n else if (typeof chunkProcessor !== 'function') throw new Error(`chunkProcessor must be a function`);\n this._chunkProcessor = chunkProcessor;\n this._chunkProcessorSize = chunkSize;\n this._chunkProcessorBuffer = {\n raw: new ArrayBuffer(0),\n mono: new ArrayBuffer(0)\n };\n this.log('Recording ...');\n await this._event('start');\n this.recording = true;\n return true;\n }\n /**\n * Clears the audio buffer, empties stored recording\n * @returns {Promise<true>}\n */ async clear() {\n if (!this.processor) throw new Error('Session ended: please call .begin() first');\n await this._event('clear');\n return true;\n }\n /**\n * Reads the current audio stream data\n * @returns {Promise<{meanValues: Float32Array, channels: Array<Float32Array>}>}\n */ async read() {\n if (!this.processor) throw new Error('Session ended: please call .begin() first');\n this.log('Reading ...');\n const result = await this._event('read');\n return result;\n }\n /**\n * Saves the current audio stream to a file\n * @param {boolean} [force] Force saving while still recording\n * @returns {Promise<import('./wav_packer.js').WavPackerAudioType>}\n */ async save(force = false) {\n if (!this.processor) throw new Error('Session ended: please call .begin() first');\n if (!force && this.recording) throw new Error('Currently recording: please call .pause() first, or call .save(true) to force');\n this.log('Exporting ...');\n const exportData = await this._event('export');\n const packer = new (0, $6d4b7449a1e1544a$export$13afda237b1c9846)();\n const result = packer.pack(this.sampleRate, exportData.audio);\n return result;\n }\n /**\n * Ends the current recording session and saves the result\n * @returns {Promise<import('./wav_packer.js').WavPackerAudioType>}\n */ async end() {\n if (!this.processor) throw new Error('Session ended: please call .begin() first');\n const _processor = this.processor;\n this.log('Stopping ...');\n await this._event('stop');\n this.recording = false;\n const tracks = this.stream.getTracks();\n tracks.forEach((track)=>track.stop());\n this.log('Exporting ...');\n const exportData = await this._event('export', {}, _processor);\n this.processor.disconnect();\n this.source.disconnect();\n this.node.disconnect();\n this.analyser.disconnect();\n this.stream = null;\n this.processor = null;\n this.source = null;\n this.node = null;\n const packer = new (0, $6d4b7449a1e1544a$export$13afda237b1c9846)();\n const result = packer.pack(this.sampleRate, exportData.audio);\n return result;\n }\n /**\n * Performs a full cleanup of WavRecorder instance\n * Stops actively listening via microphone and removes existing listeners\n * @returns {Promise<true>}\n */ async quit() {\n this.listenForDeviceChange(null);\n // we do not reset this on end so that selections persist across starts\n this.deviceSelection = null;\n if (this.processor) await this.end();\n return true;\n }\n}\nglobalThis.WavRecorder = $62bc376044a05513$export$439b217ca659a877;\n\n\n\n\n\nclass $5fc11d7bc0d20724$export$2934cf2d25c67a48 {\n /**\n * Create a new MediaStreamRecorder instance\n * @param {{sampleRate?: number, outputToSpeakers?: boolean, debug?: boolean}} [options]\n * @returns {MediaStreamRecorder}\n */ constructor({ sampleRate: sampleRate = 44100, outputToSpeakers: outputToSpeakers = false, debug: debug = false } = {}){\n // Script source\n this.scriptSrc = (0, $8e1d1e6ff08f6fb5$export$1f65f50a8cbff43c);\n // Config\n this.sampleRate = sampleRate;\n this.outputToSpeakers = outputToSpeakers;\n this.debug = !!debug;\n // State variables\n this.stream = null;\n this.processor = null;\n this.source = null;\n this.node = null;\n this.recording = false;\n // Event handling with AudioWorklet\n this._lastEventId = 0;\n this.eventReceipts = {};\n this.eventTimeout = 5000;\n // Process chunks of audio\n this._chunkProcessor = ()=>{};\n this._chunkProcessorSize = void 0;\n this._chunkProcessorBuffer = {\n raw: new ArrayBuffer(0),\n mono: new ArrayBuffer(0)\n };\n }\n /**\n * Logs data in debug mode\n * @param {...any} arguments\n * @returns {true}\n */ log() {\n if (this.debug) this.log(...arguments);\n return true;\n }\n /**\n * Retrieves the current sampleRate for the recorder\n * @returns {number}\n */ getSampleRate() {\n return this.sampleRate;\n }\n /**\n * Retrieves the current status of the recording\n * @returns {\"ended\"|\"paused\"|\"recording\"}\n */ getStatus() {\n if (!this.processor) return \"ended\";\n else if (!this.recording) return \"paused\";\n else return \"recording\";\n }\n /**\n * Sends an event to the AudioWorklet\n * @private\n * @param {string} name\n * @param {{[key: string]: any}} data\n * @param {AudioWorkletNode} [_processor]\n * @returns {Promise<{[key: string]: any}>}\n */ async _event(name, data = {}, _processor = null) {\n _processor = _processor || this.processor;\n if (!_processor) throw new Error(\"Can not send events without recording first\");\n const message = {\n event: name,\n id: this._lastEventId++,\n data: data\n };\n _processor.port.postMessage(message);\n const t0 = new Date().valueOf();\n while(!this.eventReceipts[message.id]){\n if (new Date().valueOf() - t0 > this.eventTimeout) throw new Error(`Timeout waiting for \"${name}\" event`);\n await new Promise((res)=>setTimeout(()=>res(true), 1));\n }\n const payload = this.eventReceipts[message.id];\n delete this.eventReceipts[message.id];\n return payload;\n }\n /**\n * Begins a recording session for the given audioTrack\n * Microphone recording indicator will appear on browser tab but status will be \"paused\"\n * @param {MediaStreamTrack} [audioTrack] if no device provided, default device will be used\n * @returns {Promise<true>}\n */ async begin(audioTrack) {\n if (this.processor) throw new Error(`Already connected: please call .end() to start a new session`);\n if (!audioTrack || audioTrack.kind !== \"audio\") throw new Error(\"No audio track provided\");\n this.stream = new MediaStream([\n audioTrack\n ]);\n const context = new AudioContext({\n sampleRate: this.sampleRate\n });\n const source = context.createMediaStreamSource(this.stream);\n // Load and execute the module script.\n try {\n await context.audioWorklet.addModule(this.scriptSrc);\n } catch (e) {\n console.error(e);\n throw new Error(`Could not add audioWorklet module: ${this.scriptSrc}`);\n }\n const processor = new AudioWorkletNode(context, \"audio_processor\");\n processor.port.onmessage = (e)=>{\n const { event: event, id: id, data: data } = e.data;\n if (event === \"receipt\") this.eventReceipts[id] = data;\n else if (event === \"chunk\") {\n if (this._chunkProcessorSize) {\n const buffer = this._chunkProcessorBuffer;\n this._chunkProcessorBuffer = {\n raw: (0, $6d4b7449a1e1544a$export$13afda237b1c9846).mergeBuffers(buffer.raw, data.raw),\n mono: (0, $6d4b7449a1e1544a$export$13afda237b1c9846).mergeBuffers(buffer.mono, data.mono)\n };\n if (this._chunkProcessorBuffer.mono.byteLength >= this._chunkProcessorSize) {\n this._chunkProcessor(this._chunkProcessorBuffer);\n this._chunkProcessorBuffer = {\n raw: new ArrayBuffer(0),\n mono: new ArrayBuffer(0)\n };\n }\n } else this._chunkProcessor(data);\n }\n };\n const node = source.connect(processor);\n const analyser = context.createAnalyser();\n analyser.fftSize = 8192;\n analyser.smoothingTimeConstant = 0.1;\n node.connect(analyser);\n if (this.outputToSpeakers) {\n // eslint-disable-next-line no-console\n console.warn(\"Warning: Output to speakers may affect sound quality,\\nespecially due to system audio feedback preventative measures.\\nuse only for debugging\");\n analyser.connect(context.destination);\n }\n this.source = source;\n this.node = node;\n this.analyser = analyser;\n this.processor = processor;\n return true;\n }\n /**\n * Gets the current frequency domain data from the recording track\n * @param {\"frequency\"|\"music\"|\"voice\"} [analysisType]\n * @param {number} [minDecibels] default -100\n * @param {number} [maxDecibels] default -30\n * @returns {import('./analysis/audio_analysis.js').AudioAnalysisOutputType}\n */ getFrequencies(analysisType = \"frequency\", minDecibels = -100, maxDecibels = -30) {\n if (!this.processor) throw new Error(\"Session ended: please call .begin() first\");\n return (0, $f32f064564ee62f6$export$2c3136da0bf130f9).getFrequencies(this.analyser, this.sampleRate, null, analysisType, minDecibels, maxDecibels);\n }\n /**\n * Pauses the recording\n * Keeps microphone stream open but halts storage of audio\n * @returns {Promise<true>}\n */ async pause() {\n if (!this.processor) throw new Error(\"Session ended: please call .begin() first\");\n else if (!this.recording) throw new Error(\"Already paused: please call .record() first\");\n if (this._chunkProcessorBuffer.raw.byteLength) this._chunkProcessor(this._chunkProcessorBuffer);\n this.log(\"Pausing ...\");\n await this._event(\"stop\");\n this.recording = false;\n return true;\n }\n /**\n * Start recording stream and storing to memory from the connected audio source\n * @param {(data: { mono: Int16Array; raw: Int16Array }) => any} [chunkProcessor]\n * @param {number} [chunkSize] chunkProcessor will not be triggered until this size threshold met in mono audio\n * @returns {Promise<true>}\n */ async record(chunkProcessor = ()=>{}, chunkSize = 8192) {\n if (!this.processor) throw new Error(\"Session ended: please call .begin() first\");\n else if (this.recording) throw new Error(\"Already recording: HELLO please call .pause() first\");\n else if (typeof chunkProcessor !== \"function\") throw new Error(`chunkProcessor must be a function`);\n this._chunkProcessor = chunkProcessor;\n this._chunkProcessorSize = chunkSize;\n this._chunkProcessorBuffer = {\n raw: new ArrayBuffer(0),\n mono: new ArrayBuffer(0)\n };\n this.log(\"Recording ...\");\n await this._event(\"start\");\n this.recording = true;\n return true;\n }\n /**\n * Clears the audio buffer, empties stored recording\n * @returns {Promise<true>}\n */ async clear() {\n if (!this.processor) throw new Error(\"Session ended: please call .begin() first\");\n await this._event(\"clear\");\n return true;\n }\n /**\n * Reads the current audio stream data\n * @returns {Promise<{meanValues: Float32Array, channels: Array<Float32Array>}>}\n */ async read() {\n if (!this.processor) throw new Error(\"Session ended: please call .begin() first\");\n this.log(\"Reading ...\");\n const result = await this._event(\"read\");\n return result;\n }\n /**\n * Saves the current audio stream to a file\n * @param {boolean} [force] Force saving while still recording\n * @returns {Promise<import('./wav_packer.js').WavPackerAudioType>}\n */ async save(force = false) {\n if (!this.processor) throw new Error(\"Session ended: please call .begin() first\");\n if (!force && this.recording) throw new Error(\"Currently recording: please call .pause() first, or call .save(true) to force\");\n this.log(\"Exporting ...\");\n const exportData = await this._event(\"export\");\n const packer = new (0, $6d4b7449a1e1544a$export$13afda237b1c9846)();\n const result = packer.pack(this.sampleRate, exportData.audio);\n return result;\n }\n /**\n * Ends the current recording session and saves the result\n * @returns {Promise<import('./wav_packer.js').WavPackerAudioType>}\n */ async end() {\n if (!this.processor) throw new Error(\"Session ended: please call .begin() first\");\n const _processor = this.processor;\n this.log(\"Stopping ...\");\n await this._event(\"stop\");\n this.recording = false;\n this.log(\"Exporting ...\");\n const exportData = await this._event(\"export\", {}, _processor);\n this.processor.disconnect();\n this.source.disconnect();\n this.node.disconnect();\n this.analyser.disconnect();\n this.stream = null;\n this.processor = null;\n this.source = null;\n this.node = null;\n const packer = new (0, $6d4b7449a1e1544a$export$13afda237b1c9846)();\n const result = packer.pack(this.sampleRate, exportData.audio);\n return result;\n }\n /**\n * Performs a full cleanup of WavRecorder instance\n * Stops actively listening via microphone and removes existing listeners\n * @returns {Promise<true>}\n */ async quit() {\n this.listenForDeviceChange(null);\n if (this.processor) await this.end();\n return true;\n }\n}\nglobalThis.WavRecorder = WavRecorder;\n\n\n\n\nvar $58d19ff082af5e5c$exports = {};\n$58d19ff082af5e5c$exports = JSON.parse(\"{\\\"name\\\":\\\"@pipecat-ai/daily-transport\\\",\\\"version\\\":\\\"1.4.0\\\",\\\"license\\\":\\\"BSD-2-Clause\\\",\\\"main\\\":\\\"dist/index.js\\\",\\\"module\\\":\\\"dist/index.module.js\\\",\\\"types\\\":\\\"dist/index.d.ts\\\",\\\"source\\\":\\\"src/index.ts\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/pipecat-ai/pipecat-client-web-transports.git\\\"},\\\"files\\\":[\\\"dist\\\",\\\"package.json\\\",\\\"README.md\\\"],\\\"scripts\\\":{\\\"build\\\":\\\"parcel build --no-cache\\\",\\\"dev\\\":\\\"parcel watch\\\",\\\"lint\\\":\\\"eslint . --ext ts --report-unused-disable-directives --max-warnings 0\\\"},\\\"devDependencies\\\":{\\\"@pipecat-ai/client-js\\\":\\\"^1.4.0\\\",\\\"eslint\\\":\\\"9.11.1\\\",\\\"eslint-config-prettier\\\":\\\"^9.1.0\\\",\\\"eslint-plugin-simple-import-sort\\\":\\\"^12.1.1\\\"},\\\"peerDependencies\\\":{\\\"@pipecat-ai/client-js\\\":\\\"~1.4.0\\\"},\\\"dependencies\\\":{\\\"@daily-co/daily-js\\\":\\\"^0.83.1\\\"},\\\"description\\\":\\\"Pipecat Daily Transport Package\\\",\\\"author\\\":\\\"Daily.co\\\",\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/pipecat-ai/pipecat-client-web-transports/issues\\\"},\\\"homepage\\\":\\\"https://github.com/pipecat-ai/pipecat-client-web-transports/blob/main/transports/daily-webrtc/README.md\\\"}\");\n\n\nvar $683f111f61e07358$export$ef180de88fd317cc;\n(function(DailyRTVIMessageType) {\n DailyRTVIMessageType[\"AUDIO_BUFFERING_STARTED\"] = \"audio-buffering-started\";\n DailyRTVIMessageType[\"AUDIO_BUFFERING_STOPPED\"] = \"audio-buffering-stopped\";\n})($683f111f61e07358$export$ef180de88fd317cc || ($683f111f61e07358$export$ef180de88fd317cc = {}));\nclass $683f111f61e07358$var$DailyCallWrapper {\n constructor(daily){\n this._daily = daily;\n this._proxy = new Proxy(this._daily, {\n get: (target, prop, receiver)=>{\n if (typeof target[prop] === \"function\") {\n let errMsg;\n switch(String(prop)){\n // Disable methods that modify the lifecycle of the call. These operations\n // should be performed via the PipecatClient in order to keep state in sync.\n case \"preAuth\":\n errMsg = `Calls to preAuth() are disabled. Please use Transport.preAuth()`;\n break;\n case \"startCamera\":\n errMsg = `Calls to startCamera() are disabled. Please use PipecatClient.initDevices()`;\n break;\n case \"join\":\n errMsg = `Calls to join() are disabled. Please use PipecatClient.connect()`;\n break;\n case \"leave\":\n errMsg = `Calls to leave() are disabled. Please use PipecatClient.disconnect()`;\n break;\n case \"destroy\":\n errMsg = `Calls to destroy() are disabled.`;\n break;\n }\n if (errMsg) return ()=>{\n throw new Error(errMsg);\n };\n // Forward other method calls\n return (...args)=>{\n return target[prop](...args);\n };\n }\n // Forward property access\n return Reflect.get(target, prop, receiver);\n }\n });\n }\n get proxy() {\n return this._proxy;\n }\n}\nclass $683f111f61e07358$export$b1ca982aa1e488c1 extends (0, $7zbD8$Transport) {\n constructor(opts = {}){\n super();\n this._botId = \"\";\n this._selectedCam = {};\n this._selectedMic = {};\n this._selectedSpeaker = {};\n this._currentAudioTrack = null;\n this._audioQueue = [];\n this._callbacks = {};\n const { bufferLocalAudioUntilBotReady: bufferLocalAudioUntilBotReady, ...dailyOpts } = opts;\n this._dailyFactoryOptions = dailyOpts;\n // Enable device preference cookies by default\n if (typeof this._dailyFactoryOptions.dailyConfig?.useDevicePreferenceCookies === \"undefined\") {\n // purposeful == to check undefined or null\n if (this._dailyFactoryOptions.dailyConfig == null) this._dailyFactoryOptions.dailyConfig = {};\n this._dailyFactoryOptions.dailyConfig.useDevicePreferenceCookies = true;\n }\n this._bufferLocalAudioUntilBotReady = bufferLocalAudioUntilBotReady || false;\n this._daily = (0, $7zbD8$dailycodailyjs).createCallObject({\n ...this._dailyFactoryOptions,\n allowMultipleCallInstances: true\n });\n this._dailyWrapper = new $683f111f61e07358$var$DailyCallWrapper(this._daily);\n }\n setupRecorder() {\n this._mediaStreamRecorder = new (0, $5fc11d7bc0d20724$export$2934cf2d25c67a48)({\n sampleRate: $683f111f61e07358$export$b1ca982aa1e488c1.RECORDER_SAMPLE_RATE\n });\n }\n handleUserAudioStream(data) {\n this._audioQueue.push(data);\n }\n flushAudioQueue() {\n const batchSize = 10; // Number of buffers to send in one message\n if (this._audioQueue.length === 0) return;\n (0, $7zbD8$logger).debug(`Will flush audio queue: ${this._audioQueue.length}`);\n while(this._audioQueue.length > 0){\n const batch = [];\n // Collect up to `batchSize` items\n while(batch.length < batchSize && this._audioQueue.length > 0){\n const queuedData = this._audioQueue.shift();\n if (queuedData) batch.push(queuedData);\n }\n if (batch.length > 0) this._sendAudioBatch(batch);\n }\n }\n _sendAudioBatch(dataBatch) {\n const encodedBatch = dataBatch.map((data)=>{\n const pcmByteArray = new Uint8Array(data);\n return btoa(String.fromCharCode(...pcmByteArray));\n });\n const audioMessage = {\n id: \"raw-audio-batch\",\n label: \"rtvi-ai\",\n type: \"raw-audio-batch\",\n data: {\n base64AudioBatch: encodedBatch,\n sampleRate: $683f111f61e07358$export$b1ca982aa1e488c1.RECORDER_SAMPLE_RATE,\n numChannels: 1\n }\n };\n this.sendMessage(audioMessage);\n }\n initialize(options, messageHandler) {\n if (this._bufferLocalAudioUntilBotReady) this.setupRecorder();\n this._callbacks = options.callbacks ?? {};\n this._onMessage = messageHandler;\n if (this._dailyFactoryOptions.startVideoOff == null || options.enableCam != null) // Default is cam off\n this._dailyFactoryOptions.startVideoOff = !(options.enableCam ?? false);\n if (this._dailyFactoryOptions.startAudioOff == null || options.enableMic != null) // Default is mic on\n this._dailyFactoryOptions.startAudioOff = !(options.enableMic ?? true);\n this.attachEventListeners();\n this.state = \"disconnected\";\n (0, $7zbD8$logger).debug(\"[Daily Transport] Initialized\", (0, (/*@__PURE__*/$parcel$interopDefault($58d19ff082af5e5c$exports))).version);\n }\n get dailyCallClient() {\n return this._dailyWrapper.proxy;\n }\n get state() {\n return this._state;\n }\n set state(state) {\n if (this._state === state) return;\n this._state = state;\n this._callbacks.onTransportStateChanged?.(state);\n }\n getSessionInfo() {\n return this._daily.meetingSessionSummary();\n }\n async getAllCams() {\n const { devices: devices } = await this._daily.enumerateDevices();\n return devices.filter((d)=>d.kind === \"videoinput\");\n }\n updateCam(camId) {\n this._daily.setInputDevicesAsync({\n videoDeviceId: camId\n }).then((infos)=>{\n this._selectedCam = infos.camera;\n });\n }\n get selectedCam() {\n return this._selectedCam;\n }\n async getAllMics() {\n const { devices: devices } = await this._daily.enumerateDevices();\n return devices.filter((d)=>d.kind === \"audioinput\");\n }\n updateMic(micId) {\n this._daily.setInputDevicesAsync({\n audioDeviceId: micId\n }).then((infos)=>{\n this._selectedMic = infos.mic;\n });\n }\n get selectedMic() {\n return this._selectedMic;\n }\n async getAllSpeakers() {\n const { devices: devices } = await this._daily.enumerateDevices();\n return devices.filter((d)=>d.kind === \"audiooutput\");\n }\n updateSpeaker(speakerId) {\n this._daily.setOutputDeviceAsync({\n outputDeviceId: speakerId\n }).then((infos)=>{\n this._selectedSpeaker = infos.speaker;\n }).catch((e)=>{\n this._callbacks.onDeviceError?.(new (0, $7zbD8$DeviceError)([\n \"speaker\"\n ], e.type ?? \"unknown\", e.message));\n });\n }\n get selectedSpeaker() {\n return this._selectedSpeaker;\n }\n enableMic(enable) {\n this._daily.setLocalAudio(enable);\n }\n get isMicEnabled() {\n return this._daily.localAudio();\n }\n enableCam(enable) {\n this._daily.setLocalVideo(enable);\n }\n get isCamEnabled() {\n return this._daily.localVideo();\n }\n enableScreenShare(enable) {\n if (enable) this._daily.startScreenShare();\n else this._daily.stopScreenShare();\n }\n get isSharingScreen() {\n return this._daily.localScreenAudio() || this._daily.localScreenVideo();\n }\n tracks() {\n const participants = this._daily.participants() ?? {};\n const bot = participants?.[this._botId];\n const tracks = {\n local: {\n audio: participants?.local?.tracks?.audio?.persistentTrack,\n screenAudio: participants?.local?.tracks?.screenAudio?.persistentTrack,\n screenVideo: participants?.local?.tracks?.screenVideo?.persistentTrack,\n video: participants?.local?.tracks?.video?.persistentTrack\n }\n };\n if (bot) tracks.bot = {\n audio: bot?.tracks?.audio?.persistentTrack,\n video: bot?.tracks?.video?.persistentTrack\n };\n return tracks;\n }\n async startRecording() {\n try {\n (0, $7zbD8$logger).info(\"[Daily Transport] Initializing recording\");\n await this._mediaStreamRecorder.record((data)=>{\n this.handleUserAudioStream(data.mono);\n }, $683f111f61e07358$export$b1ca982aa1e488c1.RECORDER_CHUNK_SIZE);\n this._callbacks.onAudioBufferingStarted?.();\n (0, $7zbD8$logger).info(\"[Daily Transport] Recording Initialized\");\n } catch (e) {\n const err = e;\n if (!err.message.includes(\"Already recording\")) (0, $7zbD8$logger).error(\"Error starting recording\", e);\n }\n }\n async preAuth(dailyCallOptions) {\n this._dailyFactoryOptions = dailyCallOptions;\n await this._daily.preAuth(dailyCallOptions);\n }\n async initDevices() {\n if (!this._daily) throw new (0, $7zbD8$RTVIError)(\"Transport instance not initialized\");\n this.state = \"initializing\";\n const infos = await this._daily.startCamera(this._dailyFactoryOptions);\n const { devices: devices } = await this._daily.enumerateDevices();\n const cams = devices.filter((d)=>d.kind === \"videoinput\");\n const mics = devices.filter((d)=>d.kind === \"audioinput\");\n const speakers = devices.filter((d)=>d.kind === \"audiooutput\");\n this._selectedCam = infos.camera;\n this._selectedMic = infos.mic;\n this._selectedSpeaker = infos.speaker;\n this._callbacks.onAvailableCamsUpdated?.(cams);\n this._callbacks.onAvailableMicsUpdated?.(mics);\n this._callbacks.onAvailableSpeakersUpdated?.(speakers);\n this._callbacks.onCamUpdated?.(infos.camera);\n this._callbacks.onMicUpdated?.(infos.mic);\n this._callbacks.onSpeakerUpdated?.(infos.speaker);\n // Instantiate audio observers\n if (!this._daily.isLocalAudioLevelObserverRunning()) await this._daily.startLocalAudioLevelObserver(100);\n if (!this._daily.isRemoteParticipantsAudioLevelObserverRunning()) await this._daily.startRemoteParticipantsAudioLevelObserver(100);\n this.state = \"initialized\";\n }\n _validateConnectionParams(connectParams) {\n if (connectParams === undefined || connectParams === null) return undefined;\n if (typeof connectParams !== \"object\") throw new (0, $7zbD8$RTVIError)(\"Invalid connection parameters\");\n const tmpParams = connectParams;\n if (tmpParams.room_url) {\n tmpParams.url = tmpParams.room_url;\n delete tmpParams.room_url;\n } else if (tmpParams.dailyRoom) {\n tmpParams.url = tmpParams.dailyRoom;\n delete tmpParams.dailyRoom;\n }\n if (tmpParams.dailyToken) {\n tmpParams.token = tmpParams.dailyToken;\n delete tmpParams.dailyToken;\n }\n if (!tmpParams.token) // Daily doesn't like token being in the map and undefined or null\n delete tmpParams.token;\n return tmpParams;\n }\n async _connect(connectParams) {\n if (!this._daily) throw new (0, $7zbD8$RTVIError)(\"Transport instance not initialized\");\n if (connectParams) this._dailyFactoryOptions = {\n ...this._dailyFactoryOptions,\n ...connectParams\n };\n this.state = \"connecting\";\n try {\n await this._daily.join(this._dailyFactoryOptions);\n } catch (e) {\n (0, $7zbD8$logger).error(\"Failed to join room\", e);\n this.state = \"error\";\n throw new (0, $7zbD8$TransportStartError)();\n }\n if (this._abortController?.signal.aborted) return;\n this.state = \"connected\";\n this._callbacks.onConnected?.();\n }\n async sendReadyMessage() {\n return new Promise((resolve)=>{\n // Detect iOS devices\n const isIOS = ()=>{\n const userAgent = navigator.userAgent;\n return /iPad|iPhone|iPod/.test(userAgent) || /Macintosh/.test(userAgent) && \"ontouchend\" in document;\n };\n const sendReadyMessage = ()=>{\n // TODO: Consider changing to match the iOS/Android SDKs where\n // we don't actually set our state to \"ready\" until\n // we've received the bot_ready signal\n this.state = \"ready\";\n this.flushAudioQueue();\n this.sendMessage((0, $7zbD8$RTVIMessage).clientReady());\n this.stopRecording();\n resolve();\n };\n for(const id in this._daily.participants()){\n const p = this._daily.participants()[id];\n if (!p.local && p.tracks?.audio?.persistentTrack) {\n // If we already have a remote audio track, we can send the ready message immediately\n sendReadyMessage();\n resolve();\n return;\n }\n }\n const readyHandler = (ev)=>{\n if (!ev.participant?.local) {\n this._daily.off(\"track-started\", readyHandler);\n // Check if it's an iOS device\n if (isIOS()) {\n (0, $7zbD8$logger).debug(\"[Daily Transport] iOS device detected, adding 0.5 second delay before sending ready message\");\n // Add 500ms delay for iOS devices:\n // This is a workaround for iOS devices clipping a portion\n // of the audio after the track becomes playable.\n setTimeout(sendReadyMessage, 500);\n } else // Non-iOS device, send ready message immediately\n sendReadyMessage();\n }\n };\n this._daily.on(\"track-started\", readyHandler);\n });\n }\n stopRecording() {\n if (this._mediaStreamRecorder && this._mediaStreamRecorder.getStatus() !== \"ended\") {\n // disconnecting, we don't need to record anymore\n this._mediaStreamRecorder.end();\n this._callbacks.onAudioBufferingStopped?.();\n }\n }\n attachEventListeners() {\n this._daily.on(\"available-devices-updated\", this.handleAvailableDevicesUpdated.bind(this));\n this._daily.on(\"selected-devices-updated\", this.handleSelectedDevicesUpdated.bind(this));\n this._daily.on(\"camera-error\", this.handleDeviceError.bind(this));\n this._daily.on(\"track-started\", this.handleTrackStarted.bind(this));\n this._daily.on(\"track-stopped\", this.handleTrackStopped.bind(this));\n this._daily.on(\"participant-joined\", this.handleParticipantJoined.bind(this));\n this._daily.on(\"participant-left\", this.handleParticipantLeft.bind(this));\n this._daily.on(\"local-audio-level\", this.handleLocalAudioLevel.bind(this));\n this._daily.on(\"remote-participants-audio-level\", this.handleRemoteAudioLevel.bind(this));\n this._daily.on(\"app-message\", this.handleAppMessage.bind(this));\n this._daily.on(\"left-meeting\", this.handleLeftMeeting.bind(this));\n this._daily.on(\"error\", this.handleFatalError.bind(this));\n this._daily.on(\"nonfatal-error\", this.handleNonFatalError.bind(this));\n }\n async _disconnect() {\n this.state = \"disconnecting\";\n this._daily.stopLocalAudioLevelObserver();\n this._daily.stopRemoteParticipantsAudioLevelObserver();\n this._audioQueue = [];\n this._currentAudioTrack = null;\n this.stopRecording();\n await this._daily.leave();\n }\n sendMessage(message) {\n this._daily.sendAppMessage(message, \"*\");\n }\n handleAppMessage(ev) {\n // Bubble any messages with rtvi-ai label\n if (ev.data.label === \"rtvi-ai\") this._onMessage({\n id: ev.data.id,\n type: ev.data.type,\n data: ev.data.data\n });\n }\n handleAvailableDevicesUpdated(ev) {\n this._callbacks.onAvailableCamsUpdated?.(ev.availableDevices.filter((d)=>d.kind === \"videoinput\"));\n this._callbacks.onAvailableMicsUpdated?.(ev.availableDevices.filter((d)=>d.kind === \"audioinput\"));\n this._callbacks.onAvailableSpeakersUpdated?.(ev.availableDevices.filter((d)=>d.kind === \"audiooutput\"));\n }\n handleSelectedDevicesUpdated(ev) {\n if (this._selectedCam?.deviceId !== ev.devices.camera) {\n this._selectedCam = ev.devices.camera;\n this._callbacks.onCamUpdated?.(ev.devices.camera);\n }\n if (this._selectedMic?.deviceId !== ev.devices.mic) {\n this._selectedMic = ev.devices.mic;\n this._callbacks.onMicUpdated?.(ev.devices.mic);\n }\n if (this._selectedSpeaker?.deviceId !== ev.devices.speaker) {\n this._selectedSpeaker = ev.devices.speaker;\n this._callbacks.onSpeakerUpdated?.(ev.devices.speaker);\n }\n }\n handleDeviceError(ev) {\n const generateDeviceError = (error)=>{\n const devices = [];\n switch(error.type){\n case \"permissions\":\n error.blockedMedia.forEach((d)=>{\n devices.push(d === \"video\" ? \"cam\" : \"mic\");\n });\n return new (0, $7zbD8$DeviceError)(devices, error.type, error.msg, {\n blockedBy: error.blockedBy\n });\n case \"not-found\":\n error.missingMedia.forEach((d)=>{\n devices.push(d === \"video\" ? \"cam\" : \"mic\");\n });\n return new (0, $7zbD8$DeviceError)(devices, error.type, error.msg);\n case \"constraints\":\n error.failedMedia.forEach((d)=>{\n devices.push(d === \"video\" ? \"cam\" : \"mic\");\n });\n return new (0, $7zbD8$DeviceError)(devices, error.type, error.msg, {\n reason: error.reason\n });\n case \"cam-in-use\":\n devices.push(\"cam\");\n return new (0, $7zbD8$DeviceError)(devices, \"in-use\", error.msg);\n case \"mic-in-use\":\n devices.push(\"mic\");\n return new (0, $7zbD8$DeviceError)(devices, \"in-use\", error.msg);\n case \"cam-mic-in-use\":\n devices.push(\"cam\");\n devices.push(\"mic\");\n return new (0, $7zbD8$DeviceError)(devices, \"in-use\", error.msg);\n case \"undefined-mediadevices\":\n case \"unknown\":\n default:\n devices.push(\"cam\");\n devices.push(\"mic\");\n return new (0, $7zbD8$DeviceError)(devices, error.type, error.msg);\n }\n };\n this._callbacks.onDeviceError?.(generateDeviceError(ev.error));\n }\n async handleLocalAudioTrack(track) {\n if (this.state == \"ready\" || !this._bufferLocalAudioUntilBotReady) return;\n const status = this._mediaStreamRecorder.getStatus();\n switch(status){\n case \"ended\":\n try {\n await this._mediaStreamRecorder.begin(track);\n await this.startRecording();\n } catch (e) {\n // void. nothing to do.\n }\n break;\n case \"paused\":\n await this.startRecording();\n break;\n case \"recording\":\n default:\n if (this._currentAudioTrack !== track) try {\n await this._mediaStreamRecorder.end();\n await this._mediaStreamRecorder.begin(track);\n await this.startRecording();\n } catch (e) {\n // void. nothing to do.\n }\n else (0, $7zbD8$logger).warn(\"track-started event received for current track and already recording\");\n break;\n }\n this._currentAudioTrack = track;\n }\n handleTrackStarted(ev) {\n if (ev.type === \"screenAudio\" || ev.type === \"screenVideo\") this._callbacks.onScreenTrackStarted?.(ev.track, ev.participant ? $683f111f61e07358$var$dailyParticipantToParticipant(ev.participant) : undefined);\n else {\n if (ev.participant?.local && ev.track.kind === \"audio\") this.handleLocalAudioTrack(ev.track);\n this._callbacks.onTrackStarted?.(ev.track, ev.participant ? $683f111f61e07358$var$dailyParticipantToParticipant(ev.participant) : undefined);\n }\n }\n handleTrackStopped(ev) {\n if (ev.type === \"screenAudio\" || ev.type === \"screenVideo\") this._callbacks.onScreenTrackStopped?.(ev.track, ev.participant ? $683f111f61e07358$var$dailyParticipantToParticipant(ev.participant) : undefined);\n else this._callbacks.onTrackStopped?.(ev.track, ev.participant ? $683f111f61e07358$var$dailyParticipantToParticipant(ev.participant) : undefined);\n }\n handleParticipantJoined(ev) {\n const p = $683f111f61e07358$var$dailyParticipantToParticipant(ev.participant);\n this._callbacks.onParticipantJoined?.(p);\n if (p.local) return;\n this._botId = ev.participant.session_id;\n this._callbacks.onBotConnected?.(p);\n }\n handleParticipantLeft(ev) {\n const p = $683f111f61e07358$var$dailyParticipantToParticipant(ev.participant);\n this._callbacks.onParticipantLeft?.(p);\n if (p.local) return;\n this._botId = \"\";\n this._callbacks.onBotDisconnected?.(p);\n }\n handleLocalAudioLevel(ev) {\n this._callbacks.onLocalAudioLevel?.(ev.audioLevel);\n }\n handleRemoteAudioLevel(ev) {\n const participants = this._daily.participants();\n const ids = Object.keys(ev.participantsAudioLevel);\n for(let i = 0; i < ids.length; i++){\n const id = ids[i];\n const level = ev.participantsAudioLevel[id];\n this._callbacks.onRemoteAudioLevel?.(level, $683f111f61e07358$var$dailyParticipantToParticipant(participants[id]));\n }\n }\n handleLeftMeeting() {\n this.state = \"disconnected\";\n this._botId = \"\";\n this._callbacks.onDisconnected?.();\n }\n handleFatalError(ev) {\n (0, $7zbD8$logger).error(\"Daily fatal error\", ev.errorMsg);\n this.state = \"error\";\n this._botId = \"\";\n this._callbacks.onError?.((0, $7zbD8$RTVIMessage).error(ev.errorMsg, true));\n }\n handleNonFatalError(ev) {\n switch(ev.type){\n case \"screen-share-error\":\n this._callbacks.onScreenShareError?.(ev.errorMsg);\n break;\n }\n }\n}\n$683f111f61e07358$export$b1ca982aa1e488c1.RECORDER_SAMPLE_RATE = 16000;\n$683f111f61e07358$export$b1ca982aa1e488c1.RECORDER_CHUNK_SIZE = 512;\nconst $683f111f61e07358$var$dailyParticipantToParticipant = (p)=>({\n id: p.user_id,\n local: p.local,\n name: p.user_name\n });\n\n\n\n\nexport {$683f111f61e07358$export$ef180de88fd317cc as DailyRTVIMessageType, $683f111f61e07358$export$b1ca982aa1e488c1 as DailyTransport};\n//# sourceMappingURL=index.module.js.map\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(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","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * AudioWaveform - Real-time voice visualization\n * Symmetrical design that propagates from center\n * Uses actual audio levels for authentic visualization\n */\n\nimport React, { useEffect, useState, useRef } from 'react';\n\ninterface AudioWaveformProps {\n isActive: boolean;\n color?: string;\n height?: number;\n barCount?: number; // Total bars (will be mirrored, so use odd number for center bar)\n barWidth?: number;\n gap?: number;\n audioLevels?: number[]; // Real audio levels from analyzer (0-1)\n}\n\nexport const AudioWaveform: React.FC<AudioWaveformProps> = ({\n isActive,\n color = '#60a5fa',\n height = 24,\n barCount = 5,\n barWidth = 3,\n gap = 2,\n audioLevels,\n}) => {\n // For symmetrical display, we need half the bars (center + one side)\n const halfCount = Math.ceil(barCount / 2);\n const [bars, setBars] = useState<number[]>(Array(halfCount).fill(0.15));\n const animationRef = useRef<number>();\n const targetBarsRef = useRef<number[]>(Array(halfCount).fill(0.15));\n\n useEffect(() => {\n // If we have real audio levels, use them\n if (audioLevels && audioLevels.length > 0 && isActive) {\n // Map audio levels to half bar count (will be mirrored)\n // Center bar (index 0) gets overall energy, outer bars get frequency ranges\n const newTargets = Array(halfCount).fill(0).map((_, i) => {\n let avg = 0;\n \n if (i === 0) {\n // CENTER BAR: Get overall audio energy (average of all frequencies)\n const sum = audioLevels.reduce((a, b) => a + b, 0);\n avg = sum / audioLevels.length;\n // Boost center bar to be more responsive\n avg = Math.pow(avg, 0.7) * 1.3; // Non-linear scaling for better visual\n } else {\n // OUTER BARS: Map to different frequency ranges\n // Spread frequencies from center outward\n const segmentSize = Math.floor(audioLevels.length / (halfCount - 1));\n const start = (i - 1) * segmentSize;\n const end = Math.min(start + segmentSize, audioLevels.length);\n \n let sum = 0;\n let count = 0;\n for (let j = start; j < end; j++) {\n sum += audioLevels[j];\n count++;\n }\n avg = count > 0 ? sum / count : 0;\n // Reduce outer bars slightly for visual hierarchy\n avg = avg * (1.0 - (i * 0.08));\n }\n \n // Scale and clamp (add base height so bars are always visible)\n return Math.max(0.15, Math.min(1, 0.15 + avg * 0.85));\n });\n targetBarsRef.current = newTargets;\n } else if (!isActive) {\n // Idle state - minimal bars\n targetBarsRef.current = Array(halfCount).fill(0.15);\n }\n }, [audioLevels, isActive, halfCount]);\n\n // Smooth animation loop\n useEffect(() => {\n const animate = () => {\n setBars(prev => {\n return prev.map((current, i) => {\n const target = targetBarsRef.current[i] || 0.15;\n // Smooth interpolation (lerp)\n const smoothing = isActive ? 0.35 : 0.15; // Faster response when active\n return current + (target - current) * smoothing;\n });\n });\n animationRef.current = requestAnimationFrame(animate);\n };\n\n animationRef.current = requestAnimationFrame(animate);\n return () => {\n if (animationRef.current) {\n cancelAnimationFrame(animationRef.current);\n }\n };\n }, [isActive, halfCount]);\n\n // Create symmetrical bar array: [outer, mid, center, mid, outer]\n const symmetricalBars = React.useMemo(() => {\n const result: number[] = [];\n // Left side (reversed, excluding center)\n for (let i = halfCount - 1; i > 0; i--) {\n result.push(bars[i]);\n }\n // Center\n result.push(bars[0]);\n // Right side\n for (let i = 1; i < halfCount; i++) {\n result.push(bars[i]);\n }\n return result;\n }, [bars, halfCount]);\n\n const totalWidth = symmetricalBars.length * barWidth + (symmetricalBars.length - 1) * gap;\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: `${height}px`,\n width: `${totalWidth}px`,\n gap: `${gap}px`,\n }}\n >\n {symmetricalBars.map((scale, index) => {\n // Center bar is more prominent\n const isCenter = index === Math.floor(symmetricalBars.length / 2);\n const barHeight = Math.max(4, height * scale * (isCenter ? 1.1 : 1));\n \n return (\n <div\n key={index}\n style={{\n width: `${barWidth}px`,\n height: `${barHeight}px`,\n background: color,\n borderRadius: `${barWidth / 2}px`,\n transition: 'none', // Using requestAnimationFrame for smoother animation\n opacity: isActive ? 1 : 0.4,\n boxShadow: isActive && scale > 0.3 ? `0 0 ${6 * scale}px ${color}50` : 'none',\n }}\n />\n );\n })}\n </div>\n );\n};\n\n/**\n * LargeAudioWaveform - Bigger visualization for sidebar\n */\ninterface LargeAudioWaveformProps {\n isActive: boolean;\n isSpeaking: boolean;\n color?: string;\n}\n\nexport const LargeAudioWaveform: React.FC<LargeAudioWaveformProps> = ({\n isActive,\n isSpeaking,\n color = '#60a5fa',\n}) => {\n const [bars, setBars] = useState<number[]>(Array(12).fill(0.2));\n\n useEffect(() => {\n if (!isActive) {\n setBars(Array(12).fill(0.2));\n return;\n }\n\n const interval = setInterval(() => {\n setBars(prevBars =>\n prevBars.map((_, i) => {\n // Create a wave pattern centered in the middle\n const center = 5.5;\n const distance = Math.abs(i - center);\n const baseHeight = 0.3 + (1 - distance / center) * 0.4;\n const randomness = isSpeaking ? 0.4 : 0.2;\n return Math.max(0.15, Math.min(1, baseHeight + (Math.random() - 0.5) * randomness));\n })\n );\n }, 80);\n\n return () => clearInterval(interval);\n }, [isActive, isSpeaking]);\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '48px',\n gap: '3px',\n padding: '12px 16px',\n background: 'rgba(255, 255, 255, 0.03)',\n borderRadius: '12px',\n border: '1px solid rgba(255, 255, 255, 0.06)',\n }}\n >\n {bars.map((scale, index) => (\n <div\n key={index}\n style={{\n width: '4px',\n height: `${48 * scale}px`,\n minHeight: '6px',\n background: `linear-gradient(to top, ${color}80, ${color})`,\n borderRadius: '2px',\n transition: 'height 0.08s ease',\n opacity: isActive ? 1 : 0.3,\n boxShadow: isActive ? `0 0 12px ${color}30` : 'none',\n }}\n />\n ))}\n </div>\n );\n};\n\n/**\n * CircularWaveform - Pulsing orb visualization\n */\ninterface CircularWaveformProps {\n isActive: boolean;\n state: 'idle' | 'connecting' | 'listening' | 'thinking' | 'speaking' | 'guiding' | 'paused' | 'minimized';\n size?: number;\n}\n\nexport const CircularWaveform: React.FC<CircularWaveformProps> = ({\n isActive,\n state,\n size = 64,\n}) => {\n const getColor = () => {\n switch (state) {\n case 'listening': return '#60a5fa';\n case 'thinking': return '#fbbf24';\n case 'speaking': return '#34d399';\n case 'guiding': return '#a78bfa';\n case 'paused': return '#9ca3af';\n case 'connecting': return '#f59e0b';\n case 'minimized': return '#6b7280';\n default: return '#6b7280';\n }\n };\n\n const color = getColor();\n\n return (\n <div\n style={{\n position: 'relative',\n width: `${size}px`,\n height: `${size}px`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {/* Outer rings */}\n {isActive && (\n <>\n <div\n style={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n border: `2px solid ${color}`,\n animation: 'circularPulse 2s ease-out infinite',\n opacity: 0.4,\n }}\n />\n <div\n style={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n border: `2px solid ${color}`,\n animation: 'circularPulse 2s ease-out infinite 0.5s',\n opacity: 0.3,\n }}\n />\n </>\n )}\n\n {/* Inner glow */}\n <div\n style={{\n width: `${size * 0.6}px`,\n height: `${size * 0.6}px`,\n borderRadius: '50%',\n background: `radial-gradient(circle, ${color}40 0%, ${color}10 70%, transparent 100%)`,\n animation: isActive ? 'innerGlow 1.5s ease-in-out infinite' : 'none',\n }}\n />\n\n {/* Center orb */}\n <div\n style={{\n position: 'absolute',\n width: `${size * 0.35}px`,\n height: `${size * 0.35}px`,\n borderRadius: '50%',\n background: color,\n boxShadow: `0 0 ${size * 0.3}px ${color}60`,\n transition: 'all 0.3s ease',\n }}\n />\n\n <style>{`\n @keyframes circularPulse {\n 0% { transform: scale(1); opacity: 0.4; }\n 100% { transform: scale(1.6); opacity: 0; }\n }\n @keyframes innerGlow {\n 0%, 100% { opacity: 0.6; transform: scale(1); }\n 50% { opacity: 1; transform: scale(1.1); }\n }\n `}</style>\n </div>\n );\n};\n","/**\n * ControlHub - Raycast-style floating control panel\n * Premium dark glass design with smooth animations\n * \n * Features:\n * - Minimized state for returning users\n * - Connection progress indicator\n * - Disconnect → minimize (not remove)\n * - Responsive design\n * - Keyboard accessibility\n */\n\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { AudioWaveform } from './AudioWaveform';\nimport { AgentState, ConnectionProgress } from '../types/agent';\n\ninterface ControlHubProps {\n connected: boolean;\n voiceEnabled: boolean;\n agentState: AgentState;\n screenShareEnabled?: boolean;\n isSpeaking?: boolean;\n audioLevels?: number[];\n onToggleConnection?: () => void;\n onToggleMute?: () => void;\n onToggleScreenShare?: () => void;\n onToggleSidebar?: () => void;\n sidebarOpen?: boolean;\n onResume?: () => void;\n pausedSessionId?: string;\n onStop?: () => void;\n // New props for UX Polish\n connectionProgress?: ConnectionProgress;\n isMinimized?: boolean;\n onExpand?: () => void;\n onMinimize?: () => void;\n isReturningUser?: boolean;\n showNewConversationOption?: boolean;\n onNewConversation?: () => void;\n}\n\nexport const ControlHub: React.FC<ControlHubProps> = ({\n connected,\n voiceEnabled,\n agentState,\n screenShareEnabled = false,\n isSpeaking = false,\n audioLevels = [],\n onToggleConnection,\n onToggleMute,\n onToggleScreenShare,\n onToggleSidebar,\n sidebarOpen = false,\n onResume,\n pausedSessionId,\n onStop,\n connectionProgress,\n isMinimized = false,\n onExpand,\n onMinimize,\n isReturningUser = false,\n showNewConversationOption = false,\n onNewConversation,\n}) => {\n const [isExpanded, setIsExpanded] = useState(!isReturningUser);\n const [isHovered, setIsHovered] = useState(false);\n const [showTooltip, setShowTooltip] = useState(false);\n const controlHubRef = useRef<HTMLDivElement>(null);\n\n // Auto-expand when connected (unless explicitly minimized)\n useEffect(() => {\n if (connected && !isMinimized) {\n setIsExpanded(true);\n }\n }, [connected, isMinimized]);\n\n // For returning users, start collapsed until they click\n useEffect(() => {\n if (isReturningUser && !connected) {\n setIsExpanded(false);\n }\n }, [isReturningUser, connected]);\n\n // Handle keyboard navigation\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (!isExpanded) {\n setIsExpanded(true);\n onExpand?.();\n }\n } else if (e.key === 'Escape') {\n if (isExpanded && connected) {\n setIsExpanded(false);\n onMinimize?.();\n }\n }\n }, [isExpanded, connected, onExpand, onMinimize]);\n\n const getStateColor = () => {\n if (agentState === 'connecting') return '#fbbf24'; // Amber for connecting\n if (!voiceEnabled && connected && agentState !== 'speaking') {\n return '#ef4444';\n }\n switch (agentState) {\n case 'listening': return '#60a5fa';\n case 'thinking': return '#fbbf24';\n case 'speaking': return '#34d399';\n case 'guiding': return '#a78bfa';\n case 'paused': return '#f59e0b';\n case 'minimized': return '#6b7280';\n default: return connected ? '#6b7280' : '#6b7280';\n }\n };\n\n const getStateLabel = () => {\n if (agentState === 'connecting') {\n return connectionProgress?.message || 'Connecting...';\n }\n if (!voiceEnabled && connected && agentState !== 'speaking') {\n return 'Muted';\n }\n switch (agentState) {\n case 'listening': return 'Listening';\n case 'thinking': return 'Thinking';\n case 'speaking': return 'Speaking';\n case 'guiding': return 'Guiding';\n case 'paused': return 'Paused';\n case 'minimized': return 'Ready';\n default: return connected ? 'Ready' : isReturningUser ? 'Click to start' : 'Offline';\n }\n };\n\n // Handle expand with connection\n const handleOrbClick = () => {\n if (!isExpanded) {\n setIsExpanded(true);\n onExpand?.();\n // If returning user clicks and not connected, trigger connection\n if (isReturningUser && !connected && onToggleConnection) {\n onToggleConnection();\n }\n }\n };\n\n // Handle minimize (not disconnect)\n const handleMinimize = () => {\n setIsExpanded(false);\n onMinimize?.();\n };\n\n // Collapsed orb view - now with better styling for returning users\n if (!isExpanded) {\n return (\n <div\n ref={controlHubRef}\n role=\"button\"\n tabIndex={0}\n aria-label={isReturningUser ? \"Start AI Assistant\" : \"Expand AI Assistant\"}\n onClick={handleOrbClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={() => { setIsHovered(true); setShowTooltip(true); }}\n onMouseLeave={() => { setIsHovered(false); setShowTooltip(false); }}\n onFocus={() => setShowTooltip(true)}\n onBlur={() => setShowTooltip(false)}\n style={{\n position: 'fixed',\n bottom: '24px',\n right: '24px',\n width: isReturningUser && !connected ? '64px' : '56px',\n height: isReturningUser && !connected ? '64px' : '56px',\n borderRadius: '50%',\n background: isReturningUser && !connected\n ? 'linear-gradient(135deg, rgba(99, 102, 241, 0.9) 0%, rgba(139, 92, 246, 0.9) 100%)'\n : 'linear-gradient(135deg, rgba(30, 30, 30, 0.95) 0%, rgba(20, 20, 20, 0.98) 100%)',\n backdropFilter: 'blur(20px)',\n border: isReturningUser && !connected\n ? '2px solid rgba(139, 92, 246, 0.5)'\n : '1px solid rgba(255, 255, 255, 0.1)',\n boxShadow: isReturningUser && !connected\n ? `0 0 0 1px rgba(139, 92, 246, 0.3), 0 8px 32px rgba(139, 92, 246, 0.3), 0 0 60px rgba(139, 92, 246, 0.15)`\n : `0 0 0 1px rgba(0, 0, 0, 0.3), 0 8px 32px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05)`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n zIndex: 2147483645,\n pointerEvents: 'all',\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n transform: isHovered ? 'scale(1.08)' : 'scale(1)',\n outline: 'none',\n }}\n >\n {/* Pulsing ring when active or for returning users */}\n {(connected && agentState !== 'idle') || (isReturningUser && !connected) ? (\n <div\n style={{\n position: 'absolute',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n border: `2px solid ${isReturningUser && !connected ? '#a78bfa' : getStateColor()}`,\n animation: 'pulseRing 2s ease-out infinite',\n opacity: 0.6,\n }}\n />\n ) : null}\n \n {/* Center icon - sparkle for returning users, orb for others */}\n {isReturningUser && !connected ? (\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"white\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"/>\n <path d=\"M2 17l10 5 10-5\"/>\n <path d=\"M2 12l10 5 10-5\"/>\n </svg>\n ) : (\n <div\n style={{\n width: '20px',\n height: '20px',\n borderRadius: '50%',\n background: getStateColor(),\n boxShadow: `0 0 20px ${getStateColor()}60`,\n transition: 'all 0.3s ease',\n }}\n />\n )}\n\n {/* Tooltip for returning users */}\n {showTooltip && isReturningUser && !connected && (\n <div\n style={{\n position: 'absolute',\n bottom: '100%',\n left: '50%',\n transform: 'translateX(-50%)',\n marginBottom: '12px',\n padding: '10px 16px',\n background: 'rgba(0, 0, 0, 0.95)',\n borderRadius: '10px',\n fontSize: '13px',\n fontWeight: '500',\n color: 'white',\n whiteSpace: 'nowrap',\n pointerEvents: 'none',\n animation: 'tooltipFade 0.2s ease',\n boxShadow: '0 4px 20px rgba(0, 0, 0, 0.3)',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, sans-serif',\n }}\n >\n 👋 Welcome back! Click to start\n <div\n style={{\n position: 'absolute',\n bottom: '-6px',\n left: '50%',\n width: '12px',\n height: '12px',\n background: 'rgba(0, 0, 0, 0.95)',\n transform: 'translateX(-50%) rotate(45deg)',\n }}\n />\n </div>\n )}\n\n <style>{`\n @keyframes pulseRing {\n 0% { transform: scale(1); opacity: 0.6; }\n 100% { transform: scale(1.4); opacity: 0; }\n }\n @keyframes tooltipFade {\n from { opacity: 0; transform: translateX(-50%) translateY(4px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n }\n `}</style>\n </div>\n );\n }\n\n // Connection progress indicator\n const renderConnectionProgress = () => {\n if (agentState !== 'connecting' || !connectionProgress) return null;\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '0 12px',\n }}\n >\n {/* Spinner */}\n <div\n style={{\n width: '20px',\n height: '20px',\n border: '2px solid rgba(251, 191, 36, 0.2)',\n borderTopColor: '#fbbf24',\n borderRadius: '50%',\n animation: 'spin 0.8s linear infinite',\n }}\n />\n \n {/* Progress text */}\n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px', minWidth: '140px' }}>\n <span\n style={{\n fontSize: '12px',\n fontWeight: '600',\n color: 'rgba(255, 255, 255, 0.9)',\n }}\n >\n {connectionProgress.message}\n </span>\n \n {/* Progress bar */}\n <div\n style={{\n width: '100%',\n height: '3px',\n background: 'rgba(255, 255, 255, 0.1)',\n borderRadius: '2px',\n overflow: 'hidden',\n }}\n >\n <div\n style={{\n width: `${connectionProgress.progress}%`,\n height: '100%',\n background: 'linear-gradient(90deg, #fbbf24 0%, #f59e0b 100%)',\n borderRadius: '2px',\n transition: 'width 0.3s ease',\n }}\n />\n </div>\n </div>\n\n <style>{`\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}</style>\n </div>\n );\n };\n\n // Expanded control panel\n return (\n <div\n ref={controlHubRef}\n role=\"toolbar\"\n aria-label=\"AI Assistant Controls\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n style={{\n position: 'fixed',\n bottom: '24px',\n right: '24px',\n background: 'linear-gradient(135deg, rgba(30, 30, 30, 0.95) 0%, rgba(20, 20, 20, 0.98) 100%)',\n backdropFilter: 'blur(20px)',\n borderRadius: '16px',\n padding: '12px',\n border: '1px solid rgba(255, 255, 255, 0.08)',\n boxShadow: `\n 0 0 0 1px rgba(0, 0, 0, 0.3),\n 0 8px 32px rgba(0, 0, 0, 0.4),\n 0 24px 48px rgba(0, 0, 0, 0.2),\n inset 0 1px 0 rgba(255, 255, 255, 0.05)\n `,\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n zIndex: 2147483645,\n pointerEvents: 'all',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, sans-serif',\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n // Responsive: stack vertically on very small screens\n flexWrap: 'wrap',\n maxWidth: 'calc(100vw - 48px)',\n }}\n >\n {/* Connection Progress or Status Indicator */}\n {agentState === 'connecting' ? (\n renderConnectionProgress()\n ) : (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n padding: '0 8px',\n minWidth: '120px',\n }}\n >\n {/* State orb */}\n <div style={{ position: 'relative' }}>\n <div\n style={{\n width: '10px',\n height: '10px',\n borderRadius: '50%',\n background: getStateColor(),\n boxShadow: `0 0 12px ${getStateColor()}80`,\n transition: 'all 0.3s ease',\n }}\n />\n {connected && agentState !== 'idle' && (\n <div\n style={{\n position: 'absolute',\n top: '-3px',\n left: '-3px',\n width: '16px',\n height: '16px',\n borderRadius: '50%',\n border: `1.5px solid ${getStateColor()}`,\n animation: 'statusPulse 2s ease-out infinite',\n }}\n />\n )}\n </div>\n\n {/* State text or waveform */}\n {connected && voiceEnabled && (agentState === 'speaking' || agentState === 'listening') ? (\n <AudioWaveform \n isActive={isSpeaking} \n color={getStateColor()} \n height={24}\n barCount={5}\n audioLevels={audioLevels}\n />\n ) : (\n <div style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>\n {!voiceEnabled && connected && agentState !== 'speaking' && (\n <svg \n width=\"14\" \n height=\"14\" \n viewBox=\"0 0 24 24\" \n fill=\"none\" \n stroke=\"#ef4444\" \n strokeWidth=\"2\" \n strokeLinecap=\"round\" \n strokeLinejoin=\"round\"\n >\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n <path d=\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\" />\n <path d=\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\" />\n </svg>\n )}\n <span\n style={{\n fontSize: '12px',\n fontWeight: '600',\n color: (!voiceEnabled && connected && agentState !== 'speaking') ? '#ef4444' : 'rgba(255, 255, 255, 0.7)',\n letterSpacing: '0.02em',\n textTransform: (!voiceEnabled && connected && agentState !== 'speaking') ? 'uppercase' : 'none',\n }}\n >\n {getStateLabel()}\n </span>\n </div>\n )}\n </div>\n )}\n\n {/* Divider */}\n <div\n style={{\n width: '1px',\n height: '28px',\n background: 'rgba(255, 255, 255, 0.1)',\n }}\n />\n\n {/* Control Buttons */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>\n {/* Resume button (shown when paused) */}\n {agentState === 'paused' && onResume && (\n <ControlButton\n onClick={onResume}\n active={true}\n activeColor=\"#34d399\"\n tooltip=\"Resume Session\"\n ariaLabel=\"Resume session\"\n >\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polygon points=\"5 3 19 12 5 21 5 3\" />\n </svg>\n </ControlButton>\n )}\n \n {/* Stop button (shown when paused) */}\n {agentState === 'paused' && onStop && (\n <ControlButton\n onClick={onStop}\n active={false}\n activeColor=\"#ef4444\"\n tooltip=\"End Session\"\n ariaLabel=\"End session\"\n >\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\" />\n </svg>\n </ControlButton>\n )}\n \n {/* Connect/Disconnect (shown when not paused) */}\n {agentState !== 'paused' && agentState !== 'connecting' && (\n <ControlButton\n onClick={onToggleConnection}\n active={connected}\n activeColor=\"#34d399\"\n tooltip={connected ? 'End Session' : 'Connect'}\n ariaLabel={connected ? 'End session' : 'Connect'}\n >\n {connected ? (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18.36 6.64a9 9 0 1 1-12.73 0\" />\n <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"12\" />\n </svg>\n ) : (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M5 12.55a11 11 0 0 1 14.08 0\" />\n <path d=\"M1.42 9a16 16 0 0 1 21.16 0\" />\n <path d=\"M8.53 16.11a6 6 0 0 1 6.95 0\" />\n <circle cx=\"12\" cy=\"20\" r=\"1\" />\n </svg>\n )}\n </ControlButton>\n )}\n\n {/* Connecting state - show cancel button */}\n {agentState === 'connecting' && (\n <ControlButton\n onClick={onToggleConnection}\n active={false}\n activeColor=\"#ef4444\"\n tooltip=\"Cancel\"\n ariaLabel=\"Cancel connection\"\n >\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </ControlButton>\n )}\n\n {/* Mute/Unmute */}\n <div style={{ position: 'relative' }}>\n <ControlButton\n onClick={onToggleMute}\n disabled={!connected}\n active={voiceEnabled}\n activeColor={voiceEnabled ? \"#60a5fa\" : \"#ef4444\"}\n tooltip={voiceEnabled ? 'Mute' : 'Unmute'}\n ariaLabel={voiceEnabled ? 'Mute microphone' : 'Unmute microphone'}\n isMuted={!voiceEnabled && connected}\n >\n {voiceEnabled ? (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\" />\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\" />\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\" />\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\" />\n </svg>\n ) : (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n <path d=\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\" />\n <path d=\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\" />\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\" />\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\" />\n </svg>\n )}\n </ControlButton>\n {!voiceEnabled && connected && agentState !== 'speaking' && (\n <div\n style={{\n position: 'absolute',\n top: '-4px',\n right: '-4px',\n width: '12px',\n height: '12px',\n borderRadius: '50%',\n background: '#ef4444',\n border: '2px solid rgba(30, 30, 30, 0.95)',\n boxShadow: '0 0 8px #ef444480',\n }}\n />\n )}\n </div>\n\n {/* Screen Share */}\n <ControlButton\n onClick={onToggleScreenShare}\n disabled={!connected}\n active={screenShareEnabled}\n activeColor=\"#a78bfa\"\n tooltip={screenShareEnabled ? 'Stop Share' : 'Share Screen'}\n ariaLabel={screenShareEnabled ? 'Stop screen share' : 'Share screen'}\n >\n {screenShareEnabled ? (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\" />\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\" />\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\" />\n <path d=\"M12 11V7l3 2-3 2z\" fill=\"currentColor\" />\n </svg>\n ) : (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\" />\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\" />\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\" />\n </svg>\n )}\n </ControlButton>\n\n {/* Divider */}\n <div\n style={{\n width: '1px',\n height: '28px',\n background: 'rgba(255, 255, 255, 0.1)',\n margin: '0 4px',\n }}\n />\n\n {/* Transcript Sidebar Toggle */}\n <ControlButton\n onClick={onToggleSidebar}\n active={sidebarOpen}\n activeColor=\"#fbbf24\"\n tooltip={sidebarOpen ? 'Hide Transcript' : 'Show Transcript'}\n ariaLabel={sidebarOpen ? 'Hide transcript' : 'Show transcript'}\n >\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"9\" />\n <line x1=\"9\" y1=\"13\" x2=\"13\" y2=\"13\" />\n </svg>\n </ControlButton>\n\n {/* Minimize - now keeps the widget visible */}\n <ControlButton\n onClick={handleMinimize}\n tooltip=\"Minimize\"\n ariaLabel=\"Minimize control panel\"\n >\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n </ControlButton>\n </div>\n\n <style>{`\n @keyframes statusPulse {\n 0% { transform: scale(1); opacity: 0.6; }\n 100% { transform: scale(1.8); opacity: 0; }\n }\n \n /* Responsive styles */\n @media (max-width: 480px) {\n /* On mobile, the control hub should be more compact */\n }\n `}</style>\n </div>\n );\n};\n\n// Reusable control button component with keyboard accessibility\ninterface ControlButtonProps {\n onClick?: () => void;\n disabled?: boolean;\n active?: boolean;\n activeColor?: string;\n tooltip?: string;\n ariaLabel?: string;\n isMuted?: boolean;\n children: React.ReactNode;\n}\n\nconst ControlButton: React.FC<ControlButtonProps> = ({\n onClick,\n disabled = false,\n active = false,\n activeColor = '#60a5fa',\n tooltip,\n ariaLabel,\n isMuted = false,\n children,\n}) => {\n const [isHovered, setIsHovered] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n\n const getBackground = () => {\n if (isMuted) {\n return 'rgba(239, 68, 68, 0.2)';\n }\n if (active) {\n return `${activeColor}20`;\n }\n if ((isHovered || isFocused) && !disabled) {\n return 'rgba(255, 255, 255, 0.08)';\n }\n return 'transparent';\n };\n\n const getColor = () => {\n if (isMuted) {\n return '#ef4444';\n }\n if (active) {\n return activeColor;\n }\n if (disabled) {\n return 'rgba(255, 255, 255, 0.3)';\n }\n return 'rgba(255, 255, 255, 0.7)';\n };\n\n return (\n <div style={{ position: 'relative' }}>\n <button\n onClick={onClick}\n disabled={disabled}\n aria-label={ariaLabel}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '10px',\n border: isMuted ? '1px solid rgba(239, 68, 68, 0.3)' : isFocused ? '2px solid rgba(255, 255, 255, 0.3)' : 'none',\n background: getBackground(),\n color: getColor(),\n cursor: disabled ? 'not-allowed' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'all 0.2s ease',\n outline: 'none',\n opacity: disabled ? 0.5 : 1,\n boxShadow: isMuted ? '0 0 12px rgba(239, 68, 68, 0.2)' : 'none',\n }}\n >\n {children}\n </button>\n\n {/* Tooltip */}\n {tooltip && (isHovered || isFocused) && !disabled && (\n <div\n style={{\n position: 'absolute',\n bottom: '100%',\n left: '50%',\n transform: 'translateX(-50%)',\n marginBottom: '8px',\n padding: '6px 10px',\n background: 'rgba(0, 0, 0, 0.9)',\n borderRadius: '6px',\n fontSize: '11px',\n fontWeight: '500',\n color: 'rgba(255, 255, 255, 0.9)',\n whiteSpace: 'nowrap',\n pointerEvents: 'none',\n animation: 'tooltipFade 0.15s ease',\n }}\n >\n {tooltip}\n </div>\n )}\n\n <style>{`\n @keyframes tooltipFade {\n from { opacity: 0; transform: translateX(-50%) translateY(4px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n }\n `}</style>\n </div>\n );\n};\n","/**\n * TranscriptSidebar - ChatGPT-style right sidebar\n * Shows real-time transcriptions with smooth animations\n */\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { CircularWaveform } from './AudioWaveform';\nimport { AgentState } from '../types/agent';\n\nexport interface TranscriptMessage {\n id: string;\n role: 'user' | 'assistant';\n content: string;\n timestamp: number;\n isPartial?: boolean;\n}\n\ninterface TranscriptSidebarProps {\n isOpen: boolean;\n agentState: AgentState;\n connected: boolean;\n messages: TranscriptMessage[];\n currentTranscript?: string;\n currentRole?: 'user' | 'assistant';\n onClose: () => void;\n onResume?: () => void; // Resume paused session\n}\n\nexport const TranscriptSidebar: React.FC<TranscriptSidebarProps> = ({\n isOpen,\n agentState,\n connected,\n messages,\n currentTranscript = '',\n currentRole,\n onClose,\n onResume,\n}) => {\n const messagesEndRef = useRef<HTMLDivElement>(null);\n const [isAnimating, setIsAnimating] = useState(false);\n\n // Auto-scroll to bottom when new messages arrive\n useEffect(() => {\n messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });\n }, [messages, currentTranscript]);\n\n // Handle open/close animation\n useEffect(() => {\n if (isOpen) {\n setIsAnimating(true);\n }\n }, [isOpen]);\n\n const getStateLabel = () => {\n switch (agentState) {\n case 'listening': return 'Listening...';\n case 'thinking': return 'Thinking...';\n case 'speaking': return 'Speaking...';\n case 'guiding': return 'Guiding you...';\n case 'paused': return 'Session Paused';\n default: return connected ? 'Ready to help' : 'Offline';\n }\n };\n\n const getStateColor = () => {\n switch (agentState) {\n case 'listening': return '#60a5fa';\n case 'thinking': return '#fbbf24';\n case 'speaking': return '#34d399';\n case 'guiding': return '#a78bfa';\n case 'paused': return '#f59e0b'; // Orange\n default: return '#6b7280';\n }\n };\n\n if (!isOpen && !isAnimating) return null;\n\n return (\n <>\n {/* Sidebar - Bottom right, auto height */}\n <div\n onTransitionEnd={() => !isOpen && setIsAnimating(false)}\n style={{\n position: 'fixed',\n bottom: '88px', // Above the control hub\n right: '16px',\n width: '340px',\n maxHeight: 'min(50vh, 600px)',\n minHeight: '200px',\n background: 'linear-gradient(180deg, rgba(22, 22, 24, 0.98) 0%, rgba(18, 18, 20, 0.99) 100%)',\n backdropFilter: 'blur(24px)',\n borderRadius: '20px',\n border: '1px solid rgba(255, 255, 255, 0.08)',\n boxShadow: `\n 0 0 0 1px rgba(0, 0, 0, 0.3),\n 0 24px 48px rgba(0, 0, 0, 0.5),\n 0 12px 24px rgba(0, 0, 0, 0.3),\n inset 0 1px 0 rgba(255, 255, 255, 0.05)\n `,\n display: 'flex',\n flexDirection: 'column',\n zIndex: 2147483644,\n pointerEvents: 'all',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, sans-serif',\n transform: isOpen ? 'translateY(0) scale(1)' : 'translateY(20px) scale(0.95)',\n opacity: isOpen ? 1 : 0,\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: '20px',\n borderBottom: '1px solid rgba(255, 255, 255, 0.06)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n <CircularWaveform\n isActive={connected && agentState !== 'idle'}\n state={agentState}\n size={40}\n />\n <div>\n <div\n style={{\n fontSize: '14px',\n fontWeight: '600',\n color: 'rgba(255, 255, 255, 0.95)',\n marginBottom: '2px',\n }}\n >\n AI Assistant\n </div>\n <div\n style={{\n fontSize: '12px',\n color: getStateColor(),\n fontWeight: '500',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span\n style={{\n width: '6px',\n height: '6px',\n borderRadius: '50%',\n background: getStateColor(),\n boxShadow: `0 0 8px ${getStateColor()}`,\n }}\n />\n {getStateLabel()}\n </div>\n </div>\n </div>\n\n {/* Close button */}\n <button\n onClick={onClose}\n style={{\n width: '32px',\n height: '32px',\n borderRadius: '8px',\n border: 'none',\n background: 'rgba(255, 255, 255, 0.06)',\n color: 'rgba(255, 255, 255, 0.6)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'all 0.2s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = 'rgba(255, 255, 255, 0.1)';\n e.currentTarget.style.color = 'rgba(255, 255, 255, 0.9)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = 'rgba(255, 255, 255, 0.06)';\n e.currentTarget.style.color = 'rgba(255, 255, 255, 0.6)';\n }}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n </div>\n\n {/* Paused State Banner */}\n {agentState === 'paused' && (\n <div\n style={{\n padding: '16px 20px',\n background: 'rgba(245, 158, 11, 0.1)',\n borderBottom: '1px solid rgba(245, 158, 11, 0.2)',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '12px',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#f59e0b\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"10\" y1=\"15\" x2=\"10\" y2=\"9\" />\n <line x1=\"14\" y1=\"15\" x2=\"14\" y2=\"9\" />\n </svg>\n <span style={{ color: '#f59e0b', fontSize: '14px', fontWeight: '600' }}>\n Session Paused\n </span>\n </div>\n <div style={{ color: 'rgba(255, 255, 255, 0.6)', fontSize: '12px', textAlign: 'center', lineHeight: '1.5' }}>\n You were inactive. Click Resume to continue where you left off.\n </div>\n {onResume && (\n <button\n onClick={onResume}\n style={{\n padding: '10px 24px',\n background: 'linear-gradient(135deg, #f59e0b 0%, #d97706 100%)',\n border: 'none',\n borderRadius: '8px',\n color: 'white',\n fontSize: '14px',\n fontWeight: '600',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n boxShadow: '0 4px 12px rgba(245, 158, 11, 0.3)',\n transition: 'all 0.2s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.transform = 'scale(1.02)';\n e.currentTarget.style.boxShadow = '0 6px 16px rgba(245, 158, 11, 0.4)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.transform = 'scale(1)';\n e.currentTarget.style.boxShadow = '0 4px 12px rgba(245, 158, 11, 0.3)';\n }}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <polygon points=\"5 3 19 12 5 21 5 3\" />\n </svg>\n Resume Session\n </button>\n )}\n </div>\n )}\n\n {/* Audio visualization removed - now only in ControlHub */}\n\n {/* Messages */}\n <div\n style={{\n flex: 1,\n overflowY: 'auto',\n padding: '16px 20px',\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n }}\n >\n {messages.length === 0 && !currentTranscript ? (\n <div\n style={{\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n padding: '40px 20px',\n color: 'rgba(255, 255, 255, 0.4)',\n }}\n >\n <svg\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{ marginBottom: '16px', opacity: 0.5 }}\n >\n <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\" />\n </svg>\n <div style={{ fontSize: '14px', fontWeight: '500', marginBottom: '8px' }}>\n No messages yet\n </div>\n <div style={{ fontSize: '12px', lineHeight: '1.5' }}>\n Start speaking or connect to begin your conversation\n </div>\n </div>\n ) : (\n <>\n {messages.map((message) => (\n <MessageBubble key={message.id} message={message} />\n ))}\n\n {/* Current partial transcript */}\n {currentTranscript && currentRole && (\n <MessageBubble\n message={{\n id: 'current',\n role: currentRole,\n content: currentTranscript,\n timestamp: Date.now(),\n isPartial: true,\n }}\n />\n )}\n </>\n )}\n <div ref={messagesEndRef} />\n </div>\n\n {/* Footer - Future chat input */}\n <div\n style={{\n padding: '16px 20px',\n borderTop: '1px solid rgba(255, 255, 255, 0.06)',\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '12px 16px',\n background: 'rgba(255, 255, 255, 0.04)',\n borderRadius: '12px',\n border: '1px solid rgba(255, 255, 255, 0.06)',\n }}\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"rgba(255, 255, 255, 0.4)\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\" />\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\" />\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\" />\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\" />\n </svg>\n <span\n style={{\n fontSize: '13px',\n color: 'rgba(255, 255, 255, 0.4)',\n flex: 1,\n }}\n >\n Voice input active...\n </span>\n {connected && (\n <div\n style={{\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n background: '#34d399',\n boxShadow: '0 0 8px #34d39980',\n animation: 'pulse 2s ease-in-out infinite',\n }}\n />\n )}\n </div>\n </div>\n\n <style>{`\n @keyframes pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n }\n `}</style>\n </div>\n </>\n );\n};\n\n// Message bubble component\ninterface MessageBubbleProps {\n message: TranscriptMessage;\n}\n\nconst MessageBubble: React.FC<MessageBubbleProps> = ({ message }) => {\n const isUser = message.role === 'user';\n\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: isUser ? 'flex-end' : 'flex-start',\n animation: 'messageSlide 0.3s ease-out',\n }}\n >\n {/* Role label */}\n <div\n style={{\n fontSize: '10px',\n fontWeight: '600',\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n color: 'rgba(255, 255, 255, 0.4)',\n marginBottom: '6px',\n paddingLeft: isUser ? '0' : '12px',\n paddingRight: isUser ? '12px' : '0',\n }}\n >\n {isUser ? 'You' : 'Assistant'}\n </div>\n\n {/* Message content */}\n <div\n style={{\n maxWidth: '90%',\n padding: '12px 16px',\n borderRadius: isUser ? '16px 16px 4px 16px' : '16px 16px 16px 4px',\n background: isUser\n ? 'linear-gradient(135deg, #3b82f6 0%, #2563eb 100%)'\n : 'rgba(255, 255, 255, 0.08)',\n color: isUser ? 'white' : 'rgba(255, 255, 255, 0.9)',\n fontSize: '13px',\n lineHeight: '1.5',\n boxShadow: isUser\n ? '0 4px 12px rgba(59, 130, 246, 0.3)'\n : '0 2px 8px rgba(0, 0, 0, 0.2)',\n opacity: message.isPartial ? 0.7 : 1,\n border: isUser ? 'none' : '1px solid rgba(255, 255, 255, 0.06)',\n }}\n >\n {message.content}\n {message.isPartial && (\n <span\n style={{\n display: 'inline-block',\n width: '4px',\n height: '14px',\n background: 'currentColor',\n marginLeft: '4px',\n animation: 'blink 1s step-end infinite',\n verticalAlign: 'text-bottom',\n }}\n />\n )}\n </div>\n\n {/* Timestamp */}\n {!message.isPartial && (\n <div\n style={{\n fontSize: '10px',\n color: 'rgba(255, 255, 255, 0.3)',\n marginTop: '4px',\n paddingLeft: isUser ? '0' : '12px',\n paddingRight: isUser ? '12px' : '0',\n }}\n >\n {new Date(message.timestamp).toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n })}\n </div>\n )}\n\n <style>{`\n @keyframes messageSlide {\n from {\n opacity: 0;\n transform: translateY(8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n @keyframes blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0; }\n }\n `}</style>\n </div>\n );\n};\n","/**\n * Agent UI Component - Premium Raycast-style design\n * Renders the floating control hub and transcript sidebar\n * \n * Features:\n * - Minimized state for returning users\n * - Connection progress indicator\n * - Disconnect → minimize (not remove)\n * - Responsive design\n * - Keyboard accessibility\n */\n\nimport React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { ControlHub } from '../components/ControlHub';\nimport { TranscriptSidebar, TranscriptMessage } from '../components/TranscriptSidebar';\nimport { AgentState, ConnectionProgress } from '../types/agent';\n\ninterface AgentUIProps {\n connected: boolean;\n voiceEnabled: boolean;\n agentState: AgentState;\n botTranscript?: string;\n userTranscript?: string;\n screenShareEnabled?: boolean;\n userIsSpeaking?: boolean; // User is actively speaking\n botIsSpeaking?: boolean; // Bot is actively speaking\n audioLevels?: number[]; // Real-time audio levels for visualization\n onToggleConnection?: () => void;\n onToggleMute?: () => void;\n onToggleScreenShare?: () => void;\n // Transcript history from SDK\n transcriptHistory?: TranscriptMessage[];\n // Resume functionality\n onResume?: () => void;\n pausedSessionId?: string;\n // Stop functionality\n onStop?: () => void;\n // New UX Polish props\n connectionProgress?: ConnectionProgress;\n isReturningUser?: boolean;\n onMinimize?: () => void;\n onExpand?: () => void;\n}\n\nexport const AgentUI: React.FC<AgentUIProps> = ({ \n connected, \n voiceEnabled, \n agentState, \n botTranscript = '',\n userTranscript = '',\n screenShareEnabled = false,\n userIsSpeaking = false,\n botIsSpeaking = false,\n audioLevels = [],\n onToggleConnection,\n onToggleMute,\n onToggleScreenShare,\n transcriptHistory = [],\n onResume,\n pausedSessionId,\n onStop,\n connectionProgress,\n isReturningUser = false,\n onMinimize,\n onExpand,\n}) => {\n // For returning users, start with sidebar closed\n const [sidebarOpen, setSidebarOpen] = useState(!isReturningUser);\n\n // Log state changes for debugging\n useEffect(() => {\n console.log('[AgentUI] Rendering with state:', { \n connected, \n agentState, \n voiceEnabled, \n screenShareEnabled,\n sidebarOpen,\n historyCount: transcriptHistory.length,\n botTranscript: botTranscript?.substring(0, 30),\n userTranscript: userTranscript?.substring(0, 30),\n });\n }, [connected, agentState, voiceEnabled, screenShareEnabled, sidebarOpen, transcriptHistory.length, botTranscript, userTranscript]);\n\n // Determine the current partial transcript and who is speaking\n const { currentTranscript, currentRole } = useMemo(() => {\n if (agentState === 'speaking' && botTranscript) {\n return { currentTranscript: botTranscript, currentRole: 'assistant' as const };\n } else if (agentState === 'listening' && userTranscript) {\n return { currentTranscript: userTranscript, currentRole: 'user' as const };\n }\n return { currentTranscript: '', currentRole: undefined };\n }, [agentState, botTranscript, userTranscript]);\n\n // Handle sidebar toggle\n const handleToggleSidebar = useCallback(() => {\n setSidebarOpen(prev => !prev);\n }, []);\n\n return (\n <>\n {/* Control Hub - Bottom Right */}\n <ControlHub\n connected={connected}\n voiceEnabled={voiceEnabled}\n agentState={agentState}\n screenShareEnabled={screenShareEnabled}\n isSpeaking={userIsSpeaking || botIsSpeaking}\n audioLevels={audioLevels}\n onToggleConnection={onToggleConnection}\n onToggleMute={onToggleMute}\n onToggleScreenShare={onToggleScreenShare}\n onToggleSidebar={handleToggleSidebar}\n sidebarOpen={sidebarOpen}\n onResume={onResume}\n pausedSessionId={pausedSessionId}\n onStop={onStop}\n connectionProgress={connectionProgress}\n isReturningUser={isReturningUser}\n onMinimize={onMinimize}\n onExpand={onExpand}\n />\n\n {/* Transcript Sidebar - Right Edge */}\n <TranscriptSidebar\n isOpen={sidebarOpen}\n agentState={agentState}\n connected={connected}\n messages={transcriptHistory}\n currentTranscript={currentTranscript}\n currentRole={currentRole}\n onClose={() => setSidebarOpen(false)}\n onResume={onResume}\n />\n\n {/* Global Styles */}\n <style>{`\n /* Smooth scrollbar for sidebar */\n #onboarding-sdk-react-ui *::-webkit-scrollbar {\n width: 6px;\n }\n #onboarding-sdk-react-ui *::-webkit-scrollbar-track {\n background: transparent;\n }\n #onboarding-sdk-react-ui *::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 3px;\n }\n #onboarding-sdk-react-ui *::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.2);\n }\n `}</style>\n </>\n );\n};\n","/**\n * Accessible Snapshot Capture\n * \n * Captures a clean, LLM-friendly representation of interactive elements\n * using browser-native accessibility patterns (no Playwright needed).\n * \n * Key improvements over raw DOM snapshot:\n * - Only interactive elements (~90% reduction in noise)\n * - Computed accessible names (W3C accname algorithm)\n * - Semantic roles and states\n * - Context awareness (row context, section headings)\n * - Unique refs for easy element identification\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface AccessibleElement {\n /** Unique reference ID (e.g., \"B1\", \"C2\", \"T3\") */\n ref: string;\n \n /** Semantic role (button, link, textbox, card, etc.) */\n role: string;\n \n /** Computed accessible name */\n name: string;\n \n /** Element state (selected, checked, disabled, expanded) */\n state?: Record<string, boolean>;\n \n /** Current value for inputs */\n value?: string;\n \n /** Contextual info (section heading, row identifier) */\n context?: string;\n \n /** Row context for elements in tables/lists */\n rowContext?: string;\n \n /** Bounding rectangle for highlighting */\n rect: {\n x: number;\n y: number;\n width: number;\n height: number;\n };\n \n /** CSS selector for interaction (fallback) */\n selector?: string;\n \n /** Original tag name */\n tag?: string;\n}\n\nexport interface AccessibleSnapshot {\n /** Capture timestamp */\n timestamp: number;\n \n /** Page URL (without query params) */\n url: string;\n \n /** Page title */\n title: string;\n \n /** Viewport dimensions */\n viewport: {\n width: number;\n height: number;\n };\n \n /** List of accessible elements */\n elements: AccessibleElement[];\n \n /** Total element count */\n elementCount: number;\n \n /** Whether DOM changed since last snapshot */\n domChanged?: boolean;\n \n /** Reason for capture */\n captureReason?: string;\n}\n\n// ============================================================================\n// AccessibleSnapshotCapture Class\n// ============================================================================\n\nexport class AccessibleSnapshotCapture {\n \n // Ref counters for generating unique IDs\n private refCounters: Record<string, number> = {};\n \n // Cache for last snapshot (for change detection)\n private lastSnapshotHash: string = '';\n \n // -------------------------------------------------------------------------\n // Static Configuration\n // -------------------------------------------------------------------------\n \n /** Implicit ARIA roles by HTML tag (W3C spec) */\n private static readonly IMPLICIT_ROLES: Record<string, string> = {\n 'button': 'button',\n 'a': 'link',\n 'input': 'textbox',\n 'textarea': 'textbox',\n 'select': 'combobox',\n 'option': 'option',\n 'img': 'img',\n 'nav': 'navigation',\n 'main': 'main',\n 'header': 'banner',\n 'footer': 'contentinfo',\n 'form': 'form',\n 'table': 'table',\n 'ul': 'list',\n 'ol': 'list',\n 'li': 'listitem',\n 'article': 'article',\n 'aside': 'complementary',\n 'section': 'region',\n 'dialog': 'dialog',\n 'menu': 'menu',\n 'menuitem': 'menuitem',\n 'progress': 'progressbar',\n 'meter': 'meter',\n };\n \n /** Input type to role mapping */\n private static readonly INPUT_TYPE_ROLES: Record<string, string> = {\n 'button': 'button',\n 'submit': 'button',\n 'reset': 'button',\n 'image': 'button',\n 'checkbox': 'checkbox',\n 'radio': 'radio',\n 'range': 'slider',\n 'search': 'searchbox',\n 'email': 'textbox',\n 'tel': 'textbox',\n 'url': 'textbox',\n 'password': 'textbox',\n 'text': 'textbox',\n 'number': 'spinbutton',\n };\n \n /** Role prefixes for ref generation */\n private static readonly ROLE_PREFIXES: Record<string, string> = {\n 'button': 'B',\n 'link': 'L',\n 'textbox': 'T',\n 'searchbox': 'T',\n 'checkbox': 'X',\n 'radio': 'R',\n 'combobox': 'S',\n 'listbox': 'S',\n 'option': 'O',\n 'tab': 'TAB',\n 'menuitem': 'M',\n 'menu': 'MENU',\n 'img': 'I',\n 'card': 'C',\n 'dialog': 'D',\n 'slider': 'SL',\n 'spinbutton': 'N',\n 'switch': 'SW',\n 'navigation': 'NAV',\n };\n \n /** Interactive element selector */\n private static readonly INTERACTIVE_SELECTOR = `\n button, \n a[href], \n input:not([type=\"hidden\"]), \n select, \n textarea,\n [role=\"button\"], \n [role=\"link\"], \n [role=\"tab\"], \n [role=\"menuitem\"],\n [role=\"option\"], \n [role=\"checkbox\"], \n [role=\"radio\"], \n [role=\"switch\"],\n [role=\"combobox\"], \n [role=\"listbox\"], \n [role=\"slider\"],\n [role=\"spinbutton\"],\n [role=\"searchbox\"],\n [role=\"textbox\"],\n [tabindex]:not([tabindex=\"-1\"]),\n [contenteditable=\"true\"],\n summary\n `.replace(/\\s+/g, ' ').trim();\n \n /** Selectors to skip (our own UI, scripts, etc.) */\n private static readonly SKIP_SELECTORS = [\n '#onboarding-overlay',\n '#onboarding-sdk-react-ui', \n '#hse-highlight-element',\n 'script',\n 'style',\n 'noscript',\n 'template',\n ];\n \n // -------------------------------------------------------------------------\n // Main Capture Method\n // -------------------------------------------------------------------------\n \n /**\n * Capture accessible snapshot of the current page\n */\n capture(captureReason?: string): AccessibleSnapshot {\n this.refCounters = {}; // Reset ref counters\n \n const elements: AccessibleElement[] = [];\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n \n try {\n // 1. Get all explicitly interactive elements\n const interactiveElements = this.queryInteractiveElements();\n \n // 2. Get elements with cursor:pointer (custom interactive components)\n const cursorPointerElements = this.queryCursorPointerElements();\n \n // 3. Combine and dedupe\n const allElements = this.dedupeElements([\n ...interactiveElements,\n ...cursorPointerElements,\n ]);\n \n // 4. Process each element (with error handling per element)\n for (const el of allElements) {\n try {\n const elementInfo = this.processElement(el, viewport);\n if (elementInfo) {\n elements.push(elementInfo);\n }\n } catch (e) {\n // Skip elements that cause errors\n console.warn('[AccessibleSnapshot] Error processing element:', e);\n }\n }\n \n // 5. Sort by visual position (top to bottom, left to right)\n elements.sort((a, b) => {\n const yDiff = a.rect.y - b.rect.y;\n if (Math.abs(yDiff) < 20) {\n return a.rect.x - b.rect.x;\n }\n return yDiff;\n });\n \n // 6. Re-number refs after sorting\n this.renumberRefs(elements);\n \n } catch (e) {\n console.error('[AccessibleSnapshot] Error during capture:', e);\n }\n \n // 7. Detect if DOM changed\n const currentHash = this.computeSnapshotHash(elements);\n const domChanged = currentHash !== this.lastSnapshotHash;\n this.lastSnapshotHash = currentHash;\n \n return {\n timestamp: Date.now(),\n url: window.location.pathname,\n title: document.title,\n viewport,\n elements,\n elementCount: elements.length,\n domChanged,\n captureReason,\n };\n }\n \n /**\n * Capture with stability check (waits for DOM to settle)\n */\n async captureWhenStable(timeout = 2000, captureReason?: string): Promise<AccessibleSnapshot> {\n const startTime = Date.now();\n let lastSnapshot = this.capture(captureReason);\n \n while (Date.now() - startTime < timeout) {\n await this.sleep(200);\n const newSnapshot = this.capture(captureReason);\n \n if (this.snapshotsAreEqual(lastSnapshot, newSnapshot)) {\n return newSnapshot;\n }\n lastSnapshot = newSnapshot;\n }\n \n return lastSnapshot;\n }\n \n // -------------------------------------------------------------------------\n // Element Querying\n // -------------------------------------------------------------------------\n \n private queryInteractiveElements(): HTMLElement[] {\n const elements = Array.from(\n document.querySelectorAll(AccessibleSnapshotCapture.INTERACTIVE_SELECTOR)\n ) as HTMLElement[];\n \n return elements.filter(el => this.shouldIncludeElement(el));\n }\n \n private queryCursorPointerElements(): HTMLElement[] {\n // More targeted query for potential interactive containers\n // Focus on elements that commonly have click handlers\n const targetedSelectors = [\n // Common clickable container patterns\n '[class*=\"card\"]:not(button):not(a)',\n '[class*=\"Card\"]:not(button):not(a)',\n '[class*=\"tile\"]:not(button):not(a)',\n '[class*=\"Tile\"]:not(button):not(a)',\n '[class*=\"option\"]:not(button):not(a)',\n '[class*=\"Option\"]:not(button):not(a)',\n '[class*=\"clickable\"]',\n '[class*=\"Clickable\"]',\n '[class*=\"selectable\"]',\n '[class*=\"Selectable\"]',\n // Elements with click-related data attributes\n '[data-clickable]',\n '[data-action]',\n '[data-onclick]',\n // List items that might be clickable\n 'li[class*=\"item\"]',\n 'li[class*=\"Item\"]',\n // Divs with explicit cursor styling in class\n 'div[class*=\"cursor-pointer\"]',\n 'div[class*=\"pointer\"]',\n ].join(', ');\n \n const candidates: HTMLElement[] = [];\n \n try {\n const targetedElements = Array.from(\n document.querySelectorAll(targetedSelectors)\n ) as HTMLElement[];\n candidates.push(...targetedElements);\n } catch {\n // Invalid selector, continue without targeted elements\n }\n \n // Also check direct children of main containers (limited scope)\n const mainContainers = document.querySelectorAll('main, [role=\"main\"], #app, #root, .app, .main');\n for (const container of mainContainers) {\n const children = Array.from(container.querySelectorAll(':scope > div, :scope > section > div')) as HTMLElement[];\n candidates.push(...children.slice(0, 50)); // Limit to avoid performance issues\n }\n \n // Dedupe and filter\n const seen = new Set<HTMLElement>();\n return candidates.filter(el => {\n if (seen.has(el)) return false;\n seen.add(el);\n \n if (!this.shouldIncludeElement(el)) return false;\n \n // Check cursor style\n const style = window.getComputedStyle(el);\n if (style.cursor !== 'pointer') return false;\n \n // Skip if it's just inheriting from parent\n const parent = el.parentElement;\n if (parent) {\n const parentStyle = window.getComputedStyle(parent);\n if (parentStyle.cursor === 'pointer') {\n // Check if this element has its own click handler or role\n if (!el.onclick && !el.getAttribute('onclick') && !el.getAttribute('role')) {\n return false;\n }\n }\n }\n \n return true;\n });\n }\n \n private shouldIncludeElement(el: HTMLElement): boolean {\n // Skip our own UI elements\n for (const selector of AccessibleSnapshotCapture.SKIP_SELECTORS) {\n if (el.matches(selector) || el.closest(selector)) {\n return false;\n }\n }\n \n // Skip elements with aria-hidden=\"true\" (decorative/hidden from assistive tech)\n if (el.getAttribute('aria-hidden') === 'true' || el.closest('[aria-hidden=\"true\"]')) {\n return false;\n }\n \n // Skip elements with presentation/none role (decorative)\n const role = el.getAttribute('role');\n if (role === 'presentation' || role === 'none') {\n return false;\n }\n \n // Skip invisible elements\n if (!this.isVisible(el)) return false;\n \n // Skip elements outside viewport\n const rect = el.getBoundingClientRect();\n if (rect.bottom < 0 || rect.top > window.innerHeight ||\n rect.right < 0 || rect.left > window.innerWidth) {\n return false;\n }\n \n // Skip elements with no size\n if (rect.width <= 0 || rect.height <= 0) return false;\n \n return true;\n }\n \n private isVisible(el: HTMLElement): boolean {\n // Quick check using offsetParent (returns null for hidden elements)\n // Note: This doesn't work for position:fixed elements, so we check that too\n if (el.offsetParent === null) {\n const style = window.getComputedStyle(el);\n // Fixed position elements have null offsetParent but may be visible\n if (style.position !== 'fixed') {\n // Check if it's hidden or just has no positioned ancestor\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n }\n }\n \n // Full visibility check\n try {\n const style = window.getComputedStyle(el);\n \n if (style.display === 'none') return false;\n if (style.visibility === 'hidden') return false;\n if (style.opacity === '0') return false;\n \n // Check ancestors (limit depth for performance)\n let parent = el.parentElement;\n let depth = 0;\n const maxDepth = 10; // Limit ancestor checking for performance\n \n while (parent && parent !== document.body && depth < maxDepth) {\n const parentStyle = window.getComputedStyle(parent);\n if (parentStyle.display === 'none' || parentStyle.visibility === 'hidden') {\n return false;\n }\n parent = parent.parentElement;\n depth++;\n }\n \n return true;\n } catch (e) {\n // If getComputedStyle fails, assume visible\n return true;\n }\n }\n \n private dedupeElements(elements: HTMLElement[]): HTMLElement[] {\n const seen = new Set<HTMLElement>();\n const result: HTMLElement[] = [];\n \n // Cache computed values for performance (avoid repeated DOM walks)\n const depthCache = new Map<HTMLElement, number>();\n const roleCache = new Map<HTMLElement, string>();\n const nameCache = new Map<HTMLElement, string>();\n \n const getDepth = (el: HTMLElement): number => {\n if (!depthCache.has(el)) {\n depthCache.set(el, this.getElementDepth(el));\n }\n return depthCache.get(el)!;\n };\n \n const getRole = (el: HTMLElement): string => {\n if (!roleCache.has(el)) {\n roleCache.set(el, this.getRole(el));\n }\n return roleCache.get(el)!;\n };\n \n const getName = (el: HTMLElement): string => {\n if (!nameCache.has(el)) {\n nameCache.set(el, this.computeAccessibleName(el));\n }\n return nameCache.get(el)!;\n };\n \n // Sort by DOM depth (deeper elements first) so we process children before parents\n const sortedElements = [...elements].sort((a, b) => {\n return getDepth(b) - getDepth(a); // Deeper elements first\n });\n \n for (const el of sortedElements) {\n if (seen.has(el)) continue;\n \n // Check if this element is dominated by a child we already included\n let dominated = false;\n for (const included of result) {\n // If an included element is a child of this element\n if (el.contains(included) && el !== included) {\n // The child is more specific, skip this parent\n // Unless this parent has a distinct role/action (like a card with a button inside)\n const elRole = getRole(el);\n const includedRole = getRole(included);\n \n // If parent is a card/container and child is a specific action, keep both\n if (elRole === 'card' || elRole === 'listitem' || elRole === 'option') {\n // Keep the card/container if it has a name\n const elName = getName(el);\n if (!elName) {\n dominated = true;\n break;\n }\n } else if (elRole === includedRole) {\n // Same role - prefer the more specific (child)\n dominated = true;\n break;\n }\n }\n }\n \n // Also check if an ancestor is already included and this element has no unique name\n if (!dominated) {\n for (const included of result) {\n if (included.contains(el) && included !== el) {\n // An ancestor is already included\n const elName = getName(el);\n const includedName = getName(included);\n \n // If this element has a different name, keep it (e.g., button inside card)\n if (!elName || elName === includedName) {\n dominated = true;\n break;\n }\n }\n }\n }\n \n if (!dominated) {\n seen.add(el);\n result.push(el);\n }\n }\n \n return result;\n }\n \n private getElementDepth(el: HTMLElement): number {\n let depth = 0;\n let current: HTMLElement | null = el;\n while (current && current !== document.body) {\n depth++;\n current = current.parentElement;\n }\n return depth;\n }\n \n // -------------------------------------------------------------------------\n // Element Processing\n // -------------------------------------------------------------------------\n \n private processElement(el: HTMLElement, viewport: { width: number; height: number }): AccessibleElement | null {\n const rect = el.getBoundingClientRect();\n \n // Compute accessible info\n const name = this.computeAccessibleName(el);\n let role = this.getRole(el);\n \n // Detect card-style selectors (common pattern in modern UIs)\n if (!role || role === 'element') {\n if (this.looksLikeCard(el)) {\n role = 'card';\n }\n }\n \n // Skip elements with no meaningful name and generic role\n if (!name && (!role || role === 'element')) {\n return null;\n }\n \n // Build element info\n const state = this.getState(el);\n const context = this.findContext(el);\n const rowContext = this.getRowContext(el);\n \n // Generate temporary ref (will be renumbered after sorting)\n const ref = this.generateRef(role || 'element');\n \n // Capture value for form elements\n let value: string | undefined;\n if (el instanceof HTMLInputElement && el.value) {\n value = el.value;\n } else if (el instanceof HTMLTextAreaElement && el.value) {\n value = el.value;\n } else if (el instanceof HTMLSelectElement && el.selectedIndex >= 0) {\n // For select, capture the selected option text\n const selectedOption = el.options[el.selectedIndex];\n if (selectedOption) {\n value = selectedOption.text;\n }\n }\n \n return {\n ref,\n role: role || 'element',\n name: name || this.generateFallbackName(el, role),\n ...(Object.keys(state).length && { state }),\n ...(value && { value }),\n ...(context && { context }),\n ...(rowContext && { rowContext }),\n rect: {\n x: Math.round(rect.x),\n y: Math.round(rect.y),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n },\n selector: this.generateSelector(el),\n tag: el.tagName.toLowerCase(),\n };\n }\n \n // -------------------------------------------------------------------------\n // Accessible Name Computation (W3C accname algorithm - simplified)\n // -------------------------------------------------------------------------\n \n private computeAccessibleName(el: HTMLElement): string {\n // 1. aria-labelledby (highest priority)\n const labelledBy = el.getAttribute('aria-labelledby');\n if (labelledBy) {\n const labels = labelledBy.split(/\\s+/)\n .map(id => document.getElementById(id)?.textContent?.trim())\n .filter(Boolean);\n if (labels.length) return labels.join(' ').slice(0, 100);\n }\n \n // 2. aria-label\n const ariaLabel = el.getAttribute('aria-label')?.trim();\n if (ariaLabel) return ariaLabel.slice(0, 100);\n \n // 3. For inputs: associated <label>\n if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement || el instanceof HTMLSelectElement) {\n const labelText = this.getInputLabel(el);\n if (labelText) return labelText;\n \n // Fallback to placeholder\n if ('placeholder' in el && el.placeholder) {\n return el.placeholder.slice(0, 100);\n }\n }\n \n // 4. For images: alt text\n if (el instanceof HTMLImageElement) {\n if (el.alt) return el.alt.slice(0, 100);\n }\n \n // 5. title attribute\n const title = el.getAttribute('title')?.trim();\n if (title) return title.slice(0, 100);\n \n // 6. For buttons/links: direct text content\n const directText = this.getDirectTextContent(el);\n if (directText) return directText;\n \n // 7. For inputs in MUI/similar: look for sibling label\n const siblingLabel = this.findSiblingLabel(el);\n if (siblingLabel) return siblingLabel;\n \n // 8. For icon buttons: check for SVG title/desc or nearby tooltip text\n const svg = el.querySelector('svg');\n if (svg) {\n const svgTitle = svg.querySelector('title')?.textContent?.trim();\n if (svgTitle) return svgTitle.slice(0, 100);\n \n const svgDesc = svg.querySelector('desc')?.textContent?.trim();\n if (svgDesc) return svgDesc.slice(0, 100);\n }\n \n // 9. Check for tooltip/data attributes (common for icon buttons)\n const tooltip = el.getAttribute('data-tooltip') || \n el.getAttribute('data-tip') ||\n el.getAttribute('data-original-title');\n if (tooltip) return tooltip.slice(0, 100);\n \n // 10. data-testid as last resort (often meaningful)\n const testId = el.getAttribute('data-testid');\n if (testId) {\n // Convert kebab-case or snake_case to readable text\n return testId.replace(/[-_]/g, ' ').replace(/([a-z])([A-Z])/g, '$1 $2').slice(0, 100);\n }\n \n // 11. Check for common icon class patterns to generate descriptive name\n const iconName = this.extractIconName(el);\n if (iconName) return iconName;\n \n return '';\n }\n \n private getInputLabel(el: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement): string {\n // Check for <label for=\"id\">\n if (el.id) {\n const label = document.querySelector(`label[for=\"${CSS.escape(el.id)}\"]`);\n if (label) {\n const text = label.textContent?.trim();\n if (text) return text.slice(0, 100);\n }\n }\n \n // Check for wrapping <label>\n const parentLabel = el.closest('label');\n if (parentLabel) {\n const clone = parentLabel.cloneNode(true) as HTMLElement;\n clone.querySelectorAll('input, select, textarea').forEach(e => e.remove());\n const text = clone.textContent?.trim();\n if (text) return text.slice(0, 100);\n }\n \n // Check for aria-describedby\n const describedBy = el.getAttribute('aria-describedby');\n if (describedBy) {\n const desc = document.getElementById(describedBy);\n if (desc) {\n const text = desc.textContent?.trim();\n if (text) return text.slice(0, 100);\n }\n }\n \n return '';\n }\n \n private getDirectTextContent(el: HTMLElement): string {\n // Get text from direct child text nodes only\n let text = '';\n for (const node of el.childNodes) {\n if (node.nodeType === Node.TEXT_NODE) {\n text += (node.textContent || '') + ' ';\n }\n }\n text = text.trim();\n \n // If no direct text, check for single text-bearing child\n if (!text) {\n // Common patterns: <button><span>Text</span></button>\n // Also handle MUI and other framework wrappers\n const textSelectors = [\n ':scope > span',\n ':scope > strong', \n ':scope > em',\n ':scope > b',\n ':scope > label',\n ':scope > .MuiButton-label', // MUI\n ':scope > .ant-btn-content', // Ant Design\n ':scope > [class*=\"label\"]', // Generic\n ':scope > [class*=\"text\"]', // Generic\n ];\n \n for (const selector of textSelectors) {\n try {\n const textChild = el.querySelector(selector);\n if (textChild && textChild.children.length === 0) {\n const childText = textChild.textContent?.trim();\n if (childText) {\n text = childText;\n break;\n }\n }\n } catch {\n // Invalid selector, continue\n }\n }\n }\n \n // If still nothing, get first line of innerText (for simple elements)\n if (!text && el.innerText) {\n const lines = el.innerText.trim().split('\\n');\n text = lines[0]?.trim() || '';\n \n // If it's a card with multiple lines, include them\n if (lines.length > 1 && lines.length <= 3) {\n text = lines.join(' - ').slice(0, 100);\n }\n }\n \n return text.slice(0, 100);\n }\n \n /**\n * Extract icon name from common icon class patterns\n */\n private extractIconName(el: HTMLElement): string {\n // Check for icon elements inside the button\n const iconEl = el.querySelector('[class*=\"icon\"], [class*=\"Icon\"], svg, i');\n const targetEl = iconEl || el;\n \n const className = typeof targetEl.className === 'string' ? targetEl.className : '';\n \n // Common icon class patterns\n const patterns = [\n /fa-([a-z-]+)/i, // Font Awesome: fa-search, fa-cog\n /fas? fa-([a-z-]+)/i, // Font Awesome Solid: fas fa-search\n /far? fa-([a-z-]+)/i, // Font Awesome Regular\n /icon-([a-z-]+)/i, // Generic: icon-search\n /([a-z]+)-icon/i, // Generic: search-icon\n /material-icons/i, // Material Icons (check inner text)\n /lucide-([a-z-]+)/i, // Lucide icons\n /heroicon-([a-z-]+)/i, // Heroicons\n /ri-([a-z-]+)/i, // Remix icons\n /bi-([a-z-]+)/i, // Bootstrap Icons\n /bx-([a-z-]+)/i, // Boxicons\n /bxs-([a-z-]+)/i, // Boxicons Solid\n /ph-([a-z-]+)/i, // Phosphor icons\n /tabler-([a-z-]+)/i, // Tabler icons\n /mdi-([a-z-]+)/i, // Material Design Icons\n ];\n \n for (const pattern of patterns) {\n const match = className.match(pattern);\n if (match && match[1]) {\n // Convert to readable name\n return match[1].replace(/-/g, ' ').replace(/([a-z])([A-Z])/g, '$1 $2');\n }\n }\n \n // For Material Icons, the icon name is in the text content\n if (className.includes('material-icons') || className.includes('material-symbols')) {\n const iconText = targetEl.textContent?.trim();\n if (iconText && iconText.length < 30) {\n return iconText.replace(/_/g, ' ');\n }\n }\n \n return '';\n }\n \n private findSiblingLabel(el: HTMLElement): string {\n // Look for preceding sibling that looks like a label\n let sibling = el.previousElementSibling;\n while (sibling) {\n if (sibling.matches('label, .label, [class*=\"label\"], [class*=\"Label\"]')) {\n const text = sibling.textContent?.trim();\n if (text && text.length < 50) return text;\n }\n sibling = sibling.previousElementSibling;\n }\n \n // Look in parent for label-like elements\n const parent = el.parentElement;\n if (parent) {\n const label = parent.querySelector(':scope > label, :scope > .label, :scope > [class*=\"FormLabel\"]');\n if (label && !label.contains(el)) {\n const text = label.textContent?.trim();\n if (text && text.length < 50) return text;\n }\n }\n \n return '';\n }\n \n private generateFallbackName(el: HTMLElement, role: string | null): string {\n // Generate a descriptive name for unnamed elements\n const tag = el.tagName.toLowerCase();\n const index = this.getSiblingIndex(el);\n const parentContext = this.getParentContext(el);\n \n const parts: string[] = [];\n \n // Use role or tag\n parts.push(role || tag);\n \n // Add index if there are siblings\n if (index > 0) {\n parts.push(`${index + 1}`);\n }\n \n // Add parent context\n if (parentContext) {\n parts.push(`in ${parentContext}`);\n }\n \n return parts.join(' ');\n }\n \n private getSiblingIndex(el: HTMLElement): number {\n const parent = el.parentElement;\n if (!parent) return 0;\n \n const siblings = Array.from(parent.children).filter(\n child => child.tagName === el.tagName\n );\n \n return siblings.indexOf(el);\n }\n \n private getParentContext(el: HTMLElement): string {\n // Find nearest named ancestor\n let parent = el.parentElement;\n while (parent && parent !== document.body) {\n const name = parent.getAttribute('aria-label') || \n parent.getAttribute('title') ||\n (parent.matches('nav, main, header, footer, aside, section, article') \n ? parent.tagName.toLowerCase() \n : null);\n if (name) return name.slice(0, 30);\n parent = parent.parentElement;\n }\n return '';\n }\n \n // -------------------------------------------------------------------------\n // Role Detection\n // -------------------------------------------------------------------------\n \n private getRole(el: HTMLElement): string {\n // Explicit role takes precedence\n const explicitRole = el.getAttribute('role');\n if (explicitRole) return explicitRole;\n \n const tag = el.tagName.toLowerCase();\n \n // Handle inputs specially\n if (tag === 'input') {\n const type = (el as HTMLInputElement).type || 'text';\n return AccessibleSnapshotCapture.INPUT_TYPE_ROLES[type] || 'textbox';\n }\n \n // Handle links (need href to be a link)\n if (tag === 'a') {\n return el.hasAttribute('href') ? 'link' : '';\n }\n \n // Check implicit roles\n return AccessibleSnapshotCapture.IMPLICIT_ROLES[tag] || '';\n }\n \n private looksLikeCard(el: HTMLElement): boolean {\n // className might be SVGAnimatedString for SVG elements\n const classes = typeof el.className === 'string' ? el.className.toLowerCase() : '';\n \n // Check class names\n if (classes.includes('card') || \n classes.includes('tile') || \n classes.includes('option') ||\n classes.includes('selection')) {\n return true;\n }\n \n // Check for card-like styling\n const style = window.getComputedStyle(el);\n // borderWidth can be \"1px 2px 3px 4px\" - check if any value is non-zero\n const borderWidthStr = style.borderWidth || '0';\n const hasBorder = !borderWidthStr.split(' ').every(w => w === '0px' || w === '0') && \n style.borderStyle !== 'none';\n // borderRadius can also be shorthand\n const borderRadiusStr = style.borderRadius || '0';\n const hasRoundedCorners = parseFloat(borderRadiusStr) > 0;\n const hasBackground = style.backgroundColor !== 'rgba(0, 0, 0, 0)' && \n style.backgroundColor !== 'transparent';\n \n // If it has border + rounded corners + some height, probably a card\n const rect = el.getBoundingClientRect();\n if (hasBorder && hasRoundedCorners && rect.height > 50 && rect.width > 100) {\n return true;\n }\n \n return false;\n }\n \n // -------------------------------------------------------------------------\n // State Detection\n // -------------------------------------------------------------------------\n \n private getState(el: HTMLElement): Record<string, boolean> {\n const state: Record<string, boolean> = {};\n \n // ARIA states\n if (el.getAttribute('aria-selected') === 'true') {\n state.selected = true;\n }\n \n // Check for checked state (inputs only)\n const isCheckedElement = el instanceof HTMLInputElement && \n (el.type === 'checkbox' || el.type === 'radio');\n if (el.getAttribute('aria-checked') === 'true' || \n (isCheckedElement && (el as HTMLInputElement).checked)) {\n state.checked = true;\n }\n \n if (el.getAttribute('aria-expanded') === 'true') {\n state.expanded = true;\n }\n \n // Handle <details> element open state\n if (el instanceof HTMLDetailsElement && el.open) {\n state.expanded = true;\n }\n if (el.getAttribute('aria-pressed') === 'true') {\n state.pressed = true;\n }\n \n // Check for disabled state (form elements and buttons)\n const supportsDisabled = el instanceof HTMLButtonElement || \n el instanceof HTMLInputElement || \n el instanceof HTMLSelectElement ||\n el instanceof HTMLTextAreaElement ||\n el instanceof HTMLFieldSetElement;\n if (el.getAttribute('aria-disabled') === 'true' || \n (supportsDisabled && (el as HTMLButtonElement).disabled) ||\n el.hasAttribute('disabled')) {\n state.disabled = true;\n }\n \n if (el.getAttribute('aria-current') === 'true' ||\n el.getAttribute('aria-current') === 'page') {\n state.current = true;\n }\n \n // Visual selection detection (for cards without ARIA)\n if (!state.selected && this.detectVisualSelection(el)) {\n state.selected = true;\n }\n \n // Class-based states (className might be SVGAnimatedString for SVG elements)\n const classes = typeof el.className === 'string' ? el.className.toLowerCase() : '';\n if (!state.selected && (\n classes.includes('selected') || \n classes.includes('active') || \n classes.includes('chosen') ||\n classes.includes('current')\n )) {\n state.selected = true;\n }\n if (!state.disabled && classes.includes('disabled')) {\n state.disabled = true;\n }\n \n // Data attributes (common in headless UI libraries)\n const dataState = el.getAttribute('data-state');\n if (dataState === 'checked' || dataState === 'on') {\n state.checked = true;\n }\n if (dataState === 'open' || dataState === 'expanded') {\n state.expanded = true;\n }\n if (dataState === 'active' || dataState === 'selected') {\n state.selected = true;\n }\n \n return state;\n }\n \n private detectVisualSelection(el: HTMLElement): boolean {\n const style = window.getComputedStyle(el);\n \n // Check for blue/primary border (common selection pattern)\n const borderColor = style.borderColor.toLowerCase();\n if (borderColor.includes('rgb(8, 103, 236)') || // #0867EC\n borderColor.includes('rgb(59, 130, 246)') || // blue-500\n borderColor.includes('rgb(37, 99, 235)') || // blue-600\n borderColor.includes('rgb(29, 78, 216)')) { // blue-700\n return true;\n }\n \n // Check for light blue background\n const bgColor = style.backgroundColor.toLowerCase();\n if (bgColor.includes('rgb(238, 245, 252)') || // Light blue\n bgColor.includes('rgb(239, 246, 255)') || // blue-50\n bgColor.includes('rgb(219, 234, 254)')) { // blue-100\n return true;\n }\n \n return false;\n }\n \n // -------------------------------------------------------------------------\n // Context Detection\n // -------------------------------------------------------------------------\n \n private findContext(el: HTMLElement): string | null {\n // 1. aria-describedby\n const describedBy = el.getAttribute('aria-describedby');\n if (describedBy) {\n const desc = document.getElementById(describedBy);\n if (desc) return desc.textContent?.trim().slice(0, 50) || null;\n }\n \n // 2. Fieldset legend\n const fieldset = el.closest('fieldset');\n if (fieldset) {\n const legend = fieldset.querySelector('legend');\n if (legend) return legend.textContent?.trim().slice(0, 50) || null;\n }\n \n // 3. Form group label\n const formGroup = el.closest('[class*=\"form-group\"], [class*=\"FormGroup\"], [class*=\"field\"]');\n if (formGroup) {\n const label = formGroup.querySelector(':scope > label, :scope > .label');\n if (label && !label.contains(el)) {\n return label.textContent?.trim().slice(0, 50) || null;\n }\n }\n \n // 4. Section heading\n const section = el.closest('section, [role=\"region\"], form, [class*=\"section\"], [class*=\"Section\"]');\n if (section) {\n const heading = section.querySelector(':scope > h1, :scope > h2, :scope > h3, :scope > h4, :scope > h5, :scope > h6, :scope > [role=\"heading\"]');\n if (heading) return heading.textContent?.trim().slice(0, 50) || null;\n \n // Check for title/header in section\n const title = section.querySelector(':scope > [class*=\"title\"], :scope > [class*=\"Title\"], :scope > [class*=\"header\"] > *');\n if (title) return title.textContent?.trim().slice(0, 50) || null;\n }\n \n // 5. Preceding sibling that looks like a label/heading\n const prevSibling = el.previousElementSibling;\n if (prevSibling && prevSibling.matches('p, label, h1, h2, h3, h4, h5, h6, [class*=\"label\"], [class*=\"Label\"]')) {\n const text = prevSibling.textContent?.trim();\n if (text && text.length < 50) return text;\n }\n \n // 6. Parent's preceding sibling (common for form groups)\n const parentPrev = el.parentElement?.previousElementSibling;\n if (parentPrev && parentPrev.matches('p, label, [class*=\"label\"], [class*=\"Label\"]')) {\n const text = parentPrev.textContent?.trim();\n if (text && text.length < 50) return text;\n }\n \n return null;\n }\n \n private getRowContext(el: HTMLElement): string | null {\n // Check if element is in a table row\n const row = el.closest('tr, [role=\"row\"]');\n if (row) {\n // Get first cell or identifier\n const firstCell = row.querySelector('td:first-child, th:first-child, [role=\"cell\"]:first-child');\n if (firstCell && !firstCell.contains(el)) {\n const text = firstCell.textContent?.trim();\n if (text) return text.slice(0, 40);\n }\n }\n \n // Check if element is in a list item\n const listItem = el.closest('li, [role=\"listitem\"]');\n if (listItem) {\n // Get the main text identifier\n const name = listItem.querySelector('.name, .title, [class*=\"name\"], [class*=\"title\"], [class*=\"Name\"]');\n if (name && !name.contains(el)) {\n const text = name.textContent?.trim();\n if (text) return text.slice(0, 40);\n }\n }\n \n // Check for data rows (common in dashboards)\n // More specific selectors to avoid matching unrelated elements like .arrow, .browser\n const dataRowSelectors = [\n '[class*=\"data-row\"]',\n '[class*=\"DataRow\"]',\n '[class*=\"list-item\"]',\n '[class*=\"ListItem\"]',\n '[class*=\"table-row\"]',\n '[class*=\"TableRow\"]',\n '.row[class*=\"item\"]',\n '.Row[class*=\"Item\"]',\n ];\n \n for (const selector of dataRowSelectors) {\n try {\n const dataRow = el.closest(selector);\n if (dataRow && !dataRow.matches('tr')) {\n const identifier = dataRow.querySelector('[class*=\"name\"], [class*=\"title\"], [class*=\"-id\"]');\n if (identifier && !identifier.contains(el)) {\n const text = identifier.textContent?.trim();\n if (text && text.length < 40) return text;\n }\n }\n } catch {\n // Invalid selector, continue\n }\n }\n \n return null;\n }\n \n // -------------------------------------------------------------------------\n // Ref Generation\n // -------------------------------------------------------------------------\n \n private generateRef(role: string): string {\n const prefix = AccessibleSnapshotCapture.ROLE_PREFIXES[role] || 'E';\n this.refCounters[prefix] = (this.refCounters[prefix] || 0) + 1;\n return `${prefix}${this.refCounters[prefix]}`;\n }\n \n private renumberRefs(elements: AccessibleElement[]): void {\n // Reset counters\n const counters: Record<string, number> = {};\n \n for (const el of elements) {\n const prefix = AccessibleSnapshotCapture.ROLE_PREFIXES[el.role] || 'E';\n counters[prefix] = (counters[prefix] || 0) + 1;\n el.ref = `${prefix}${counters[prefix]}`;\n }\n }\n \n // -------------------------------------------------------------------------\n // Selector Generation\n // -------------------------------------------------------------------------\n \n private generateSelector(el: HTMLElement): string {\n try {\n // Try ID first\n if (el.id) {\n const selector = `#${CSS.escape(el.id)}`;\n // Verify it works\n if (document.querySelector(selector) === el) {\n return selector;\n }\n }\n \n // Try data-testid\n const testId = el.getAttribute('data-testid');\n if (testId) {\n const selector = `[data-testid=\"${CSS.escape(testId)}\"]`;\n if (document.querySelector(selector) === el) {\n return selector;\n }\n }\n \n // Try unique class combination\n if (el.className && typeof el.className === 'string') {\n const classes = el.className.split(/\\s+/).filter(c => c && !c.includes(':') && !c.startsWith('css-'));\n if (classes.length > 0) {\n const escapedClasses = classes.slice(0, 3).map(c => {\n try {\n return CSS.escape(c);\n } catch {\n return null;\n }\n }).filter(Boolean);\n \n if (escapedClasses.length > 0) {\n const selector = `${el.tagName.toLowerCase()}.${escapedClasses.join('.')}`;\n try {\n if (document.querySelectorAll(selector).length === 1) {\n return selector;\n }\n } catch {\n // Invalid selector, continue to fallback\n }\n }\n }\n }\n \n // Build path-based selector\n const path: string[] = [];\n let current: HTMLElement | null = el;\n \n while (current && current !== document.body && path.length < 4) {\n let selector = current.tagName.toLowerCase();\n \n if (current.id) {\n try {\n const idSelector = `#${CSS.escape(current.id)}`;\n if (document.querySelector(idSelector)) {\n path.unshift(idSelector);\n break;\n }\n } catch {\n // Invalid ID, continue without it\n }\n }\n \n const parent = current.parentElement;\n if (parent) {\n const siblings = Array.from(parent.children).filter(\n child => child.tagName === current!.tagName\n );\n if (siblings.length > 1) {\n const index = siblings.indexOf(current) + 1;\n selector += `:nth-of-type(${index})`;\n }\n }\n \n path.unshift(selector);\n current = parent;\n }\n \n return path.join(' > ');\n } catch (e) {\n // Fallback to basic tag + index\n const parent = el.parentElement;\n if (parent) {\n const siblings = Array.from(parent.children);\n const index = siblings.indexOf(el);\n return `${el.tagName.toLowerCase()}:nth-child(${index + 1})`;\n }\n return el.tagName.toLowerCase();\n }\n }\n \n // -------------------------------------------------------------------------\n // Utilities\n // -------------------------------------------------------------------------\n \n private computeSnapshotHash(elements: AccessibleElement[]): string {\n // Simple hash based on element count and names\n const key = elements.map(e => `${e.role}:${e.name}:${e.state ? JSON.stringify(e.state) : ''}`).join('|');\n return this.simpleHash(key);\n }\n \n private simpleHash(str: string): string {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash;\n }\n return hash.toString(36);\n }\n \n private snapshotsAreEqual(a: AccessibleSnapshot, b: AccessibleSnapshot): boolean {\n if (a.elementCount !== b.elementCount) return false;\n if (a.elements.length !== b.elements.length) return false;\n \n for (let i = 0; i < a.elements.length; i++) {\n const elA = a.elements[i];\n const elB = b.elements[i];\n \n // Safety check for undefined elements\n if (!elA || !elB) return false;\n \n if (elA.name !== elB.name) return false;\n if (elA.role !== elB.role) return false;\n \n // Also check state changes\n const stateA = JSON.stringify(elA.state || {});\n const stateB = JSON.stringify(elB.state || {});\n if (stateA !== stateB) return false;\n }\n \n return true;\n }\n \n private sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n}\n\n// ============================================================================\n// Export singleton instance\n// ============================================================================\n\nexport const accessibleSnapshot = new AccessibleSnapshotCapture();\n\n","/**\n * AI Onboarding Agent SDK\n * Voice-first onboarding platform with WebRTC connectivity to Pipecat server\n */\n\n/**\n * SDK Widget Selectors - Elements to exclude from DOM captures and targeting\n * These are our own UI elements that should not be visible to the LLM or clickable by the bot\n */\nconst SDK_WIDGET_SELECTORS = [\n '#onboarding-overlay', // Main overlay container (highlights, tooltips)\n '#floe-cursor', // Animated bot cursor\n '#onboarding-sdk-react-ui', // React UI components (voice indicator, etc.)\n '#hse-highlight-element', // Element highlight overlay\n '#floe-cursor-styles', // Style element for cursor\n '#onboarding-animations', // Animation styles\n] as const;\n\n/** Data attribute to mark SDK widget elements */\nconst SDK_WIDGET_ATTR = 'data-floe-widget';\n\n/**\n * Check if an element is an SDK widget that should be excluded\n */\nfunction isSDKWidget(el: HTMLElement | null): boolean {\n if (!el) return false;\n\n // Check for data attribute (fastest)\n if (el.hasAttribute(SDK_WIDGET_ATTR)) return true;\n\n // Check if element or any parent matches SDK selectors\n for (const selector of SDK_WIDGET_SELECTORS) {\n if (el.closest(selector)) return true;\n }\n\n return false;\n}\n\n/**\n * Get sanitized URL without query params or fragments\n * Use this for any URL that will be transmitted externally to prevent leaking tokens/PII\n */\nfunction getSanitizedUrl(): string {\n return window.location.origin + window.location.pathname;\n}\n\nimport {\n PipecatClient,\n Transport\n} from '@pipecat-ai/client-js';\nimport { DailyTransport } from '@pipecat-ai/daily-transport';\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { AgentUI } from './AgentUI';\nimport {\n AccessibleSnapshotCapture,\n AccessibleSnapshot,\n} from './accessible-snapshot';\n\n/**\n * AudioAnalyzer - Real-time audio level analysis using Web Audio API\n * Provides FFT-based frequency analysis for waveform visualization\n */\nclass AudioAnalyzer {\n private audioContext: AudioContext | null = null;\n private analyzerNode: AnalyserNode | null = null;\n private sourceNode: MediaStreamAudioSourceNode | null = null;\n private dataArray: Uint8Array = new Uint8Array(0);\n private isRunning: boolean = false;\n private onLevelsCallback: ((levels: number[]) => void) | null = null;\n private animationId: number | null = null;\n\n constructor() {\n // AudioContext will be created when needed (requires user interaction)\n }\n\n /**\n * Start analyzing audio from a MediaStream (mic or bot audio)\n */\n start(stream: MediaStream, onLevels: (levels: number[]) => void): void {\n try {\n // Create audio context if needed\n if (!this.audioContext) {\n this.audioContext = new (window.AudioContext || (window as any).webkitAudioContext)();\n }\n\n // Resume if suspended (browsers require user interaction)\n if (this.audioContext.state === 'suspended') {\n this.audioContext.resume();\n }\n\n // Create analyzer node\n this.analyzerNode = this.audioContext.createAnalyser();\n this.analyzerNode.fftSize = 64; // 32 frequency bins (small for simple visualization)\n this.analyzerNode.smoothingTimeConstant = 0.4; // Smoothing for natural movement\n\n // Connect stream to analyzer\n this.sourceNode = this.audioContext.createMediaStreamSource(stream);\n this.sourceNode.connect(this.analyzerNode);\n\n // Create data array for frequency data\n const bufferLength = this.analyzerNode.frequencyBinCount;\n this.dataArray = new Uint8Array(bufferLength);\n\n // Store callback\n this.onLevelsCallback = onLevels;\n this.isRunning = true;\n\n // Start analysis loop\n this.analyze();\n\n console.log('[AudioAnalyzer] Started analyzing audio stream');\n } catch (error) {\n console.error('[AudioAnalyzer] Failed to start:', error);\n }\n }\n\n /**\n * Analysis loop - runs via requestAnimationFrame\n */\n private analyze = (): void => {\n if (!this.isRunning || !this.analyzerNode || this.dataArray.length === 0) return;\n\n // Get frequency data (type assertion needed for TS compatibility)\n (this.analyzerNode as any).getByteFrequencyData(this.dataArray);\n\n // Convert to normalized levels (0-1)\n const levels: number[] = [];\n for (let i = 0; i < this.dataArray.length; i++) {\n // Focus on voice frequencies (skip very low and very high)\n if (i >= 2 && i < this.dataArray.length - 2) {\n levels.push(this.dataArray[i] / 255);\n }\n }\n\n // Call callback with levels\n if (this.onLevelsCallback) {\n this.onLevelsCallback(levels);\n }\n\n // Continue loop\n this.animationId = requestAnimationFrame(this.analyze);\n };\n\n /**\n * Stop analyzing\n */\n stop(): void {\n this.isRunning = false;\n\n if (this.animationId) {\n cancelAnimationFrame(this.animationId);\n this.animationId = null;\n }\n\n if (this.sourceNode) {\n this.sourceNode.disconnect();\n this.sourceNode = null;\n }\n\n this.analyzerNode = null;\n this.dataArray = new Uint8Array(0);\n this.onLevelsCallback = null;\n\n console.log('[AudioAnalyzer] Stopped');\n }\n\n /**\n * Cleanup\n */\n destroy(): void {\n this.stop();\n if (this.audioContext) {\n this.audioContext.close();\n this.audioContext = null;\n }\n }\n}\n\n// Types\ninterface UserInfo {\n externalId?: string; // Customer's user ID\n email?: string;\n name?: string;\n company?: string;\n designation?: string;\n metadata?: Record<string, any>;\n}\n\n// Declare build-time constant (replaced by Vite during build)\ndeclare const __FLOE_API_URL__: string;\n\ninterface SDKConfig {\n clientKey: string; // Public client key - safe to expose in browser, used for domain-bound authentication\n apiUrl?: string; // Floe API URL (defaults to baked-in value from build: __FLOE_API_URL__)\n enableVideo?: boolean;\n enableAudio?: boolean;\n enableScreenCapture?: boolean;\n redactionPatterns?: Record<string, RegExp>;\n debug?: boolean;\n // Optional context for personalized onboarding\n industry?: string;\n useCase?: string;\n companyName?: string;\n companySize?: string;\n role?: string;\n // User identification\n userInfo?: UserInfo;\n // Skip onboarding modal - auto-detects if not set, use true/false to override\n skipOnboardingModal?: boolean;\n // Discovery mode - guided onboarding for new users\n enableDiscoveryPopup?: boolean; // Auto-show welcome popup for first-time users (default: true)\n}\n\n// EndUser status from API (for skip onboarding logic)\ninterface EndUserStatus {\n found: boolean;\n isNewUser: boolean;\n hasPreferences: boolean;\n preferences?: Record<string, any>;\n}\n\ninterface ScreenshotOptions {\n redact?: boolean;\n scale?: number;\n quality?: number;\n format?: 'webp' | 'jpeg' | 'png';\n}\n\ninterface PageStructure {\n title: string;\n url: string;\n elements: ElementInfo[];\n viewport: { width: number; height: number };\n}\n\ninterface ElementInfo {\n selector: string;\n type: string;\n text?: string;\n visible: boolean;\n position: DOMRect;\n attributes: Record<string, string>;\n}\n\ninterface ContextData {\n screenshot?: string;\n url: string;\n structure: PageStructure;\n timestamp: number;\n userProfile?: any;\n}\n\ninterface UIAction {\n type: 'click' | 'type' | 'select' | 'hover' | 'scroll';\n selector: string;\n value?: string;\n description?: string;\n}\n\n/**\n * Hybrid Target - Multi-strategy element targeting\n * Allows LLM to specify multiple ways to find an element\n */\ninterface HybridTarget {\n selector?: string; // CSS selector\n text?: string; // Text content to search for\n tag?: string; // HTML tag name\n ariaLabel?: string; // ARIA label\n placeholder?: string; // Placeholder text (for inputs)\n role?: string; // ARIA role\n // Rich targeting fields for disambiguation (from Chrome recorder)\n labelText?: string; // Associated form label (e.g., \"Label\" for a dropdown)\n optionText?: string; // Dropdown option text (for clicking specific options)\n dropdownTriggerSelector?: string; // CSS selector to OPEN the dropdown (used with optionText)\n name?: string; // HTML name attribute\n removeChipText?: string; // Multi-select: text of chip to remove (click X button)\n // Multi-select support\n selectedValues?: string[]; // Values to select for multi_select action\n // Fallback selectors (recorded during session capture)\n selectorFallbacks?: string[]; // Alternative selectors to try if primary fails\n strategy?: ('selector' | 'text' | 'tag' | 'ariaLabel' | 'placeholder' | 'role' | 'boundingBox' | 'labelText' | 'optionText' | 'removeChip')[];\n // DOM Introspection Layer (DIL) fields - server-resolved\n boundingBox?: { x: number; y: number; width: number; height: number };\n domIndex?: number; // Index in DOM snapshot for direct lookup\n confidence?: number; // Server's confidence in this target (0-1)\n}\n\n/**\n * Candidate element found during parallel strategy resolution\n */\ninterface ResolutionCandidate {\n element: HTMLElement;\n strategies: string[]; // Which strategies found this element\n validationScore: number; // 0-100 based on metadata match\n interactable: boolean;\n confidence: number; // Final computed confidence\n}\n\n/**\n * Result of consensus-based target resolution\n */\ninterface ResolutionResult {\n element: HTMLElement | null;\n confidence: number;\n strategies: string[];\n candidateCount: number;\n ambiguous: boolean;\n duration: number;\n}\n\n/**\n * DOM Element info for DOM Introspection Layer\n * Sent to server for accurate element targeting\n */\ninterface DOMElementInfo {\n index: number; // Index for fast lookup\n tag: string;\n text: string; // Truncated visible text\n id: string;\n className: string;\n ariaLabel: string | null;\n placeholder: string | null;\n role: string | null;\n href: string | null;\n type: string | null; // For inputs\n name: string | null; // For form elements\n rect: {\n x: number;\n y: number;\n width: number;\n height: number;\n };\n isVisible: boolean;\n isInteractive: boolean;\n parentTag: string | null;\n depth: number; // DOM depth for hierarchy info\n}\n\n/**\n * DOM Snapshot sent to server\n */\ninterface DOMSnapshot {\n timestamp: number;\n url: string;\n viewport: { width: number; height: number };\n elements: DOMElementInfo[];\n totalElements: number;\n interactiveCount: number;\n // Flag indicating if DOM changed since last snapshot - used to trigger vision analysis\n domChanged?: boolean;\n // Reason for the capture (periodic, mutation, immediate, etc.)\n captureReason?: string;\n // Correlation ID for tracking snapshots across client/server\n correlationId?: string;\n}\n\n/**\n * Action object from LLM - Hybrid UI Action\n */\ninterface HybridUIAction {\n action: 'click' | 'highlight' | 'type' | 'scroll' | 'hover' | 'focus' | 'multi_select' | 'check_precondition';\n target: HybridTarget;\n value?: string; // For type actions\n description?: string; // Human-readable description\n precondition?: { // For check_precondition action\n type: 'option_exists' | 'element_visible' | 'element_enabled';\n optionText?: string; // For option_exists: the option text to look for\n selector?: string; // For element_visible/enabled: the element selector\n };\n}\n\n// Simple event emitter for SDK events\nclass EventEmitter {\n private events: { [key: string]: Array<(...args: any[]) => void> } = {};\n\n on(event: string, listener: (...args: any[]) => void) {\n if (!this.events[event]) {\n this.events[event] = [];\n }\n this.events[event].push(listener);\n return this;\n }\n\n off(event: string, listener: (...args: any[]) => void) {\n if (!this.events[event]) return this;\n const idx = this.events[event].indexOf(listener);\n if (idx > -1) {\n this.events[event].splice(idx, 1);\n }\n return this;\n }\n\n emit(event: string, ...args: any[]) {\n if (!this.events[event]) return false;\n this.events[event].forEach(listener => listener(...args));\n return true;\n }\n}\n\n/**\n * DOM Introspection Layer (DIL)\n * Captures visible DOM elements with bounding boxes for accurate element targeting\n * Sends snapshots to Pipecat server for vision + DOM correlation\n */\nclass DOMIntrospector {\n private lastSnapshot: DOMSnapshot | null = null;\n private lastSnapshotHash: string = '';\n private snapshotInterval: number | null = null;\n private sendCallback: ((snapshot: DOMSnapshot) => void) | null = null;\n private correlationCounter: number = 0; // For tracking snapshots across client/server\n private readonly INTERACTIVE_TAGS = new Set([\n 'button', 'a', 'input', 'select', 'textarea', 'label',\n 'summary', 'details', 'option', 'menuitem'\n ]);\n private readonly INTERACTIVE_ROLES = new Set([\n 'button', 'link', 'menuitem', 'option', 'tab', 'checkbox',\n 'radio', 'switch', 'textbox', 'combobox', 'listbox', 'slider'\n ]);\n\n /**\n * Start periodic DOM snapshots\n * @param intervalMs How often to capture (default 1500ms)\n * @param sendCallback Function to send snapshot to server\n */\n startCapturing(intervalMs: number = 1500, sendCallback: (snapshot: DOMSnapshot) => void) {\n console.log(`[DOMIntrospector] Starting DOM capture every ${intervalMs}ms`);\n this.sendCallback = sendCallback;\n\n // Capture immediately\n this.captureAndSend();\n\n // Then capture periodically\n this.snapshotInterval = window.setInterval(() => {\n this.captureAndSend();\n }, intervalMs);\n\n // Also capture on significant DOM changes (debounced)\n this.setupMutationObserver();\n }\n\n /**\n * Stop capturing\n */\n stopCapturing() {\n if (this.snapshotInterval) {\n clearInterval(this.snapshotInterval);\n this.snapshotInterval = null;\n }\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = null;\n }\n console.log('[DOMIntrospector] Stopped DOM capture');\n }\n\n /**\n * Capture and send immediately (bypasses hash check)\n * Used for post-action synchronization to ensure server has fresh DOM state.\n * @param reason Optional reason for the immediate capture (for logging)\n */\n captureAndSendImmediate(reason: string = 'immediate') {\n console.log(`[DOMIntrospector] Immediate capture triggered: ${reason}`);\n const snapshot = this.captureSnapshot();\n const newHash = this.computeSnapshotHash(snapshot);\n\n // Check if DOM actually changed (even for immediate captures)\n const domChanged = newHash !== this.lastSnapshotHash;\n\n // Add correlation ID and capture reason for server-side tracking\n const correlatedSnapshot: DOMSnapshot = {\n ...snapshot,\n correlationId: `dom-${Date.now()}-${++this.correlationCounter}`,\n captureReason: reason,\n domChanged: domChanged // Always true for immediate captures that changed, helps server decide on vision\n };\n\n // Update local cache\n this.lastSnapshot = correlatedSnapshot;\n this.lastSnapshotHash = newHash;\n\n if (this.sendCallback) {\n console.log(`[DOMIntrospector] Sending immediate snapshot (changed=${domChanged}): ${snapshot.elements.length} elements, corr=${correlatedSnapshot.correlationId}`);\n this.sendCallback(correlatedSnapshot);\n }\n\n return correlatedSnapshot.correlationId;\n }\n\n /**\n * Setup mutation observer for significant DOM changes\n */\n private mutationObserver: MutationObserver | null = null;\n private mutationDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n private setupMutationObserver() {\n if (this.mutationObserver) return;\n\n this.mutationObserver = new MutationObserver((mutations) => {\n // Debounce mutation handling\n if (this.mutationDebounceTimer) {\n clearTimeout(this.mutationDebounceTimer);\n }\n\n // Check if mutations are significant (not just style/class changes)\n const significantMutation = mutations.some(m =>\n m.type === 'childList' ||\n (m.type === 'attributes' && ['href', 'src', 'hidden', 'disabled'].includes(m.attributeName || ''))\n );\n\n if (significantMutation) {\n this.mutationDebounceTimer = setTimeout(() => {\n console.log('[DOMIntrospector] Significant DOM change detected');\n this.captureAndSend();\n }, 300);\n }\n });\n\n this.mutationObserver.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['hidden', 'disabled', 'aria-hidden', 'href', 'src']\n });\n }\n\n /**\n * Capture DOM snapshot and send if changed\n */\n private captureAndSend() {\n const snapshot = this.captureSnapshot();\n const hash = this.computeSnapshotHash(snapshot);\n\n // Check if DOM actually changed\n const domChanged = hash !== this.lastSnapshotHash;\n\n // Only send if snapshot has changed\n if (domChanged) {\n // Add correlation ID and domChanged flag for server-side tracking\n const correlatedSnapshot: DOMSnapshot = {\n ...snapshot,\n correlationId: `dom-${Date.now()}-${++this.correlationCounter}`,\n captureReason: 'periodic',\n domChanged: true // Signal server that vision analysis may be needed\n };\n\n this.lastSnapshot = correlatedSnapshot;\n this.lastSnapshotHash = hash;\n\n if (this.sendCallback) {\n console.log(`[DOMIntrospector] Sending snapshot (DOM changed): ${snapshot.elements.length} elements, ${snapshot.interactiveCount} interactive, corr=${correlatedSnapshot.correlationId}`);\n this.sendCallback(correlatedSnapshot);\n }\n } else {\n console.debug('[DOMIntrospector] Snapshot unchanged, skipping send');\n }\n }\n\n /**\n * Compute hash of snapshot for change detection\n */\n private computeSnapshotHash(snapshot: DOMSnapshot): string {\n // Hash based on element positions and text (fast approximation)\n const sig = snapshot.elements.slice(0, 50).map(e =>\n `${e.tag}:${e.text?.slice(0, 20)}:${Math.round(e.rect.x)}:${Math.round(e.rect.y)}`\n ).join('|');\n return sig;\n }\n\n /**\n * Capture current visible DOM state\n */\n captureSnapshot(): DOMSnapshot {\n const elements: DOMElementInfo[] = [];\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight\n };\n\n // Query all potentially relevant elements\n const allElements = document.body.querySelectorAll('*');\n let index = 0;\n let interactiveCount = 0;\n\n allElements.forEach((el) => {\n const htmlEl = el as HTMLElement;\n\n // Skip invisible and our own elements\n if (this.shouldSkipElement(htmlEl)) return;\n\n const rect = htmlEl.getBoundingClientRect();\n\n // Skip elements outside viewport\n if (rect.bottom < 0 || rect.top > viewport.height ||\n rect.right < 0 || rect.left > viewport.width) {\n return;\n }\n\n // Skip elements with no size\n if (rect.width <= 0 || rect.height <= 0) return;\n\n const isInteractive = this.isInteractiveElement(htmlEl);\n if (isInteractive) interactiveCount++;\n\n // Only include interactive elements or elements with text\n const text = this.getVisibleText(htmlEl);\n if (!isInteractive && !text) return;\n\n const elementInfo: DOMElementInfo = {\n index: index++,\n tag: htmlEl.tagName.toLowerCase(),\n text: text,\n id: htmlEl.id || '',\n className: typeof htmlEl.className === 'string' ? htmlEl.className : '',\n ariaLabel: htmlEl.getAttribute('aria-label'),\n placeholder: htmlEl.getAttribute('placeholder'),\n role: htmlEl.getAttribute('role'),\n href: htmlEl.getAttribute('href'),\n type: htmlEl.getAttribute('type'),\n name: htmlEl.getAttribute('name'),\n rect: {\n x: Math.round(rect.x),\n y: Math.round(rect.y),\n width: Math.round(rect.width),\n height: Math.round(rect.height)\n },\n isVisible: true,\n isInteractive: isInteractive,\n parentTag: htmlEl.parentElement?.tagName.toLowerCase() || null,\n depth: this.getElementDepth(htmlEl)\n };\n\n elements.push(elementInfo);\n });\n\n return {\n timestamp: Date.now(),\n url: getSanitizedUrl(),\n viewport,\n elements,\n totalElements: elements.length,\n interactiveCount\n };\n }\n\n /**\n * Check if element should be skipped from DOM captures\n */\n private shouldSkipElement(el: HTMLElement): boolean {\n // Skip our own SDK widget elements (overlays, cursor, highlights, etc.)\n if (isSDKWidget(el)) {\n return true;\n }\n\n // Skip script, style, and hidden elements\n const tag = el.tagName.toLowerCase();\n if (['script', 'style', 'noscript', 'template', 'svg', 'path'].includes(tag)) {\n return true;\n }\n\n // Check computed visibility\n const style = window.getComputedStyle(el);\n if (style.display === 'none' ||\n style.visibility === 'hidden' ||\n style.opacity === '0') {\n return true;\n }\n\n return false;\n }\n\n /**\n * Check if element is interactive\n */\n private isInteractiveElement(el: HTMLElement): boolean {\n const tag = el.tagName.toLowerCase();\n\n // Check tag\n if (this.INTERACTIVE_TAGS.has(tag)) return true;\n\n // Check role\n const role = el.getAttribute('role');\n if (role && this.INTERACTIVE_ROLES.has(role)) return true;\n\n // Check for click handlers (heuristic)\n if (el.onclick || el.getAttribute('onclick')) return true;\n\n // Check for contenteditable\n if (el.contentEditable === 'true') return true;\n\n // Check for tabindex\n const tabIndex = el.getAttribute('tabindex');\n if (tabIndex && parseInt(tabIndex) >= 0) return true;\n\n // Check cursor style\n const style = window.getComputedStyle(el);\n if (style.cursor === 'pointer') return true;\n\n return false;\n }\n\n /**\n * Get visible text content (truncated)\n */\n private getVisibleText(el: HTMLElement): string {\n // For inputs, get value or placeholder\n if (el instanceof HTMLInputElement) {\n return (el.value || el.placeholder || '').trim().slice(0, 80);\n }\n if (el instanceof HTMLTextAreaElement) {\n return (el.value || el.placeholder || '').trim().slice(0, 80);\n }\n\n // For other elements, get innerText but only direct text (not children)\n const text = el.innerText?.trim() || '';\n return text.slice(0, 80);\n }\n\n /**\n * Get element depth in DOM tree\n */\n private getElementDepth(el: HTMLElement): number {\n let depth = 0;\n let current: HTMLElement | null = el;\n while (current && current !== document.body) {\n depth++;\n current = current.parentElement;\n }\n return depth;\n }\n\n /**\n * Get current snapshot without triggering a new capture\n */\n getLastSnapshot(): DOMSnapshot | null {\n return this.lastSnapshot;\n }\n\n /**\n * Find element by DOM index (fast lookup from server response)\n */\n findElementByIndex(domIndex: number): HTMLElement | null {\n if (!this.lastSnapshot) return null;\n\n const elementInfo = this.lastSnapshot.elements.find(e => e.index === domIndex);\n if (!elementInfo) return null;\n\n // Use bounding box to find the actual element\n return this.findElementByBoundingBox(elementInfo.rect, elementInfo.tag, elementInfo.text);\n }\n\n /**\n * Find element by bounding box (primary DIL strategy)\n * \n * CRITICAL: If expectedText is provided, elements MUST match the text.\n * This prevents clicking wrong elements when the page has scrolled/animated.\n */\n findElementByBoundingBox(\n targetRect: { x: number; y: number; width: number; height: number },\n expectedTag?: string,\n expectedText?: string\n ): HTMLElement | null {\n const tolerance = 10; // pixels\n const candidates: { element: HTMLElement; score: number; textMatch: boolean }[] = [];\n\n const allElements = document.body.querySelectorAll('*');\n\n allElements.forEach((el) => {\n const htmlEl = el as HTMLElement;\n if (this.shouldSkipElement(htmlEl)) return;\n\n const rect = htmlEl.getBoundingClientRect();\n\n // Check if bounding box overlaps\n const xOverlap = Math.abs(rect.x - targetRect.x) <= tolerance;\n const yOverlap = Math.abs(rect.y - targetRect.y) <= tolerance;\n const widthMatch = Math.abs(rect.width - targetRect.width) <= tolerance * 2;\n const heightMatch = Math.abs(rect.height - targetRect.height) <= tolerance * 2;\n\n if (xOverlap && yOverlap && widthMatch && heightMatch) {\n let score = 100;\n let textMatch = false;\n\n // Boost score for tag match\n if (expectedTag && htmlEl.tagName.toLowerCase() === expectedTag.toLowerCase()) {\n score += 30;\n }\n\n // Check text match - CRITICAL for avoiding wrong element clicks\n if (expectedText) {\n const elementText = htmlEl.innerText?.trim().toLowerCase() || '';\n const targetText = expectedText.toLowerCase();\n if (elementText === targetText) {\n score += 50;\n textMatch = true;\n } else if (elementText.includes(targetText) || targetText.includes(elementText)) {\n score += 25;\n textMatch = true;\n }\n } else {\n // No expected text means we can't verify, treat as match\n textMatch = true;\n }\n\n candidates.push({ element: htmlEl, score, textMatch });\n }\n });\n\n // Sort by score and return best match\n candidates.sort((a, b) => b.score - a.score);\n\n if (candidates.length > 0) {\n const best = candidates[0];\n const foundText = best.element.innerText?.trim().slice(0, 50) || '';\n\n // CRITICAL: If expectedText was provided, REQUIRE text match\n // This prevents clicking \"Collectors\" when looking for \"Cloud Accounts\"\n if (expectedText && !best.textMatch) {\n console.warn(\n `[DOMIntrospector] ⚠️ Bounding box match REJECTED - text mismatch! ` +\n `Expected: \"${expectedText}\", Found: \"${foundText}\"`\n );\n // Log what we found at the position for debugging\n console.warn(\n `[DOMIntrospector] Element at (${targetRect.x}, ${targetRect.y}) has text \"${foundText}\" ` +\n `which doesn't match expected \"${expectedText}\" - page may have scrolled`\n );\n return null;\n }\n\n console.log(\n `[DOMIntrospector] Found ${candidates.length} candidates by bounding box, ` +\n `best score: ${best.score}, text: \"${foundText}\"`\n );\n return best.element;\n }\n\n return null;\n }\n}\n\n/**\n * Hybrid Target Resolver - Multi-strategy element finder\n * Enhanced with DOM Introspection Layer support\n * Tries multiple methods to locate an element on the page\n */\nclass HybridTargetResolver {\n // Static reference to DOMIntrospector for bounding box lookups\n private static domIntrospector: DOMIntrospector | null = null\n /**\n * Extract parent context from a CSS selector.\n * This is a GENERIC approach that uses the selector's own structure to guide fallback matching.\n * \n * For example, if selector is \"button.MuiButtonBase-root > span.MuiTypography-root\":\n * - expectedTag: 'span' (the leaf element we're looking for)\n * - parentSelector: 'button.MuiButtonBase-root' (the expected parent)\n * - parentTag: 'button' (simplified parent tag for quick checks)\n * \n * This allows us to boost elements that match the expected DOM structure without\n * hardcoding specific words or class names.\n */\n private static extractSelectorContext(selector?: string): {\n expectedTag?: string;\n parentSelector?: string;\n parentTag?: string;\n } {\n if (!selector) return {};\n\n // Split by combinators: >, space, +, ~\n // We want the parent context (everything before the last combinator)\n const parts = selector.split(/\\s*([>+~]|\\s)\\s*/);\n\n if (parts.length < 2) return {};\n\n // Last part is the target element, everything before is parent context\n const leafPart = parts[parts.length - 1];\n const parentParts = parts.slice(0, -2); // Exclude combinator and leaf\n\n // Extract tag from leaf (e.g., \"span.class\" -> \"span\")\n const leafTagMatch = leafPart.match(/^([a-zA-Z][a-zA-Z0-9-]*)/);\n const expectedTag = leafTagMatch ? leafTagMatch[1].toLowerCase() : undefined;\n\n // Build parent selector from parent parts\n const parentSelector = parentParts.length > 0 ? parentParts.join(' ') : undefined;\n\n // Extract simple parent tag (e.g., \"button.class\" -> \"button\")\n let parentTag: string | undefined;\n if (parentParts.length > 0) {\n const lastParent = parentParts[parentParts.length - 1];\n const parentTagMatch = lastParent.match(/^([a-zA-Z][a-zA-Z0-9-]*)/);\n parentTag = parentTagMatch ? parentTagMatch[1].toLowerCase() : undefined;\n }\n\n return { expectedTag, parentSelector, parentTag };\n }\n\n /**\n * Check if an element matches the expected parent context from selector.\n * Returns a score from 0 to 1 indicating how well it matches.\n * This is a GENERIC approach that uses the selector's structure.\n */\n private static matchesSelectorContext(\n element: HTMLElement,\n context: { expectedTag?: string; parentSelector?: string; parentTag?: string }\n ): number {\n if (!context.parentTag && !context.parentSelector) return 0.5; // No context, neutral\n\n let score = 0;\n let checks = 0;\n\n // Check if element is inside expected parent tag\n if (context.parentTag) {\n checks++;\n const parent = element.closest(context.parentTag);\n if (parent) {\n score += 1;\n }\n }\n\n // Check if element matches more specific parent selector\n if (context.parentSelector) {\n checks++;\n try {\n const parent = element.closest(context.parentSelector);\n if (parent) {\n score += 1;\n }\n } catch (e) {\n // Invalid selector, ignore\n }\n }\n\n return checks > 0 ? score / checks : 0.5;\n }\n\n /**\n * Set the DOM Introspector instance for bounding box resolution\n */\n static setDOMIntrospector(introspector: DOMIntrospector) {\n HybridTargetResolver.domIntrospector = introspector;\n console.log('[HybridTargetResolver] DOM Introspector set for enhanced targeting');\n }\n\n /**\n * Safely serialize an object for logging, excluding DOM elements and circular references\n */\n private static safeStringify(obj: any, indent?: number): string {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value) => {\n // Skip DOM elements and circular references\n if (value && typeof value === 'object') {\n if (value instanceof HTMLElement) {\n const tagName = value.tagName || 'Unknown';\n const id = value.id ? `#${value.id}` : '';\n const className = value.className && typeof value.className === 'string'\n ? `.${value.className.split(' ').filter(Boolean).join('.')}`\n : '';\n return `[HTMLElement: ${tagName}${id}${className}]`;\n }\n if (value instanceof Element) {\n const tagName = value.tagName || 'Unknown';\n return `[Element: ${tagName}]`;\n }\n if (value instanceof Node) {\n return `[Node: ${value.nodeName}]`;\n }\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n }, indent);\n }\n\n /**\n * Resolve a target using multiple strategies\n * Now prioritizes DOM Introspection Layer data when available\n * Returns the first element found, or null if none found\n */\n static resolveTarget(target: HybridTarget): HTMLElement | null {\n if (!target) {\n console.warn('[HybridTargetResolver] ❌ No target provided');\n return null;\n }\n\n console.log('[HybridTargetResolver] Target details:', this.safeStringify(target, 2));\n\n // Use consensus-based resolution for all strategies (including DOM Index and Bounding Box)\n const consensusResult = this.resolveTargetWithConsensus(target);\n\n // Safely serialize consensus result, replacing DOM element with summary\n const elementSummary = consensusResult.element\n ? `[HTMLElement: ${consensusResult.element.tagName}${consensusResult.element.id ? `#${consensusResult.element.id}` : ''}${consensusResult.element.className && typeof consensusResult.element.className === 'string' ? `.${consensusResult.element.className.split(' ').filter(Boolean).join('.')}` : ''}]`\n : null;\n const safeResult = {\n ...consensusResult,\n element: elementSummary\n };\n console.log(`[HybridTargetResolver] consensus results (${consensusResult.confidence.toFixed(1)}% confidence)`, this.safeStringify(safeResult, 2));\n if (consensusResult.element) {\n return consensusResult.element;\n }\n return null;\n }\n\n /**\n * Resolve target using parallel strategy execution with consensus voting\n * This is the new robust approach that runs all strategies and picks the best candidate\n */\n static resolveTargetWithConsensus(target: HybridTarget): ResolutionResult {\n const startTime = performance.now();\n\n // 1. Get all applicable strategies\n const strategies = this.getAvailableStrategies(target);\n\n // Edge case: No strategies available\n if (strategies.length === 0) {\n console.warn('[HybridTargetResolver] ⚠️ No strategies available for target');\n return {\n element: null,\n confidence: 0,\n strategies: [],\n candidateCount: 0,\n ambiguous: false,\n duration: performance.now() - startTime\n };\n }\n\n console.log(`[HybridTargetResolver] 🔄 Running ${strategies.length} strategies in parallel...`);\n\n // 2. Execute ALL strategies and collect candidates\n const candidateMap = new Map<HTMLElement, ResolutionCandidate>();\n\n for (const strategy of strategies) {\n const elements = this.executeStrategyMulti(strategy, target);\n\n for (const element of elements) {\n // Skip SDK widgets\n if (isSDKWidget(element)) continue;\n\n // Skip if element was removed from DOM\n if (!element.isConnected) continue;\n\n // Add to candidate map or update existing\n if (candidateMap.has(element)) {\n candidateMap.get(element)!.strategies.push(strategy);\n } else {\n candidateMap.set(element, {\n element,\n strategies: [strategy],\n validationScore: 0,\n interactable: false,\n confidence: 0\n });\n }\n }\n }\n\n console.log(`[HybridTargetResolver] 📊 Found ${candidateMap.size} unique candidate(s)`);\n\n if (candidateMap.size === 0) {\n return {\n element: null,\n confidence: 0,\n strategies: [],\n candidateCount: 0,\n ambiguous: false,\n duration: performance.now() - startTime\n };\n }\n\n // 3. Score each candidate\n const scoredCandidates: ResolutionCandidate[] = [];\n\n for (const [element, candidate] of candidateMap) {\n // Re-check if element is still connected (might have been removed)\n if (!element.isConnected) {\n console.warn(`[HybridTargetResolver] ⚠️ Candidate element was removed from DOM, skipping`);\n continue;\n }\n\n candidate.validationScore = this.computeValidationScore(element, target);\n candidate.interactable = this.checkInteractability(element).ok;\n candidate.confidence = this.computeConfidence(candidate, strategies.length, target);\n scoredCandidates.push(candidate);\n\n console.log(`[HybridTargetResolver] <${element.tagName.toLowerCase()}> \"${element.textContent?.slice(0, 25)}...\"`);\n console.log(`[HybridTargetResolver] Strategies: ${candidate.strategies.join(', ')} (${candidate.strategies.length}/${strategies.length})`);\n console.log(`[HybridTargetResolver] Confidence: ${candidate.confidence.toFixed(1)}%`);\n }\n\n // Edge case: All candidates were removed from DOM\n if (scoredCandidates.length === 0) {\n return {\n element: null,\n confidence: 0,\n strategies: [],\n candidateCount: candidateMap.size,\n ambiguous: false,\n duration: performance.now() - startTime\n };\n }\n\n // 4. Sort by confidence\n scoredCandidates.sort((a, b) => b.confidence - a.confidence);\n\n const winner = scoredCandidates[0];\n const runnerUp = scoredCandidates.length > 1 ? scoredCandidates[1] : undefined;\n const duration = performance.now() - startTime;\n\n // Check for ambiguity (only if we have multiple candidates)\n const ambiguous = runnerUp !== undefined && (winner.confidence - runnerUp.confidence) < 10;\n if (ambiguous) {\n console.warn(`[HybridTargetResolver] ⚠️ AMBIGUOUS: Top candidates have similar confidence`);\n }\n\n // Reject if confidence too low\n if (winner.confidence < 30) {\n console.warn(`[HybridTargetResolver] ❌ Best candidate confidence too low: ${winner.confidence.toFixed(1)}%`);\n return {\n element: null,\n confidence: winner.confidence,\n strategies: winner.strategies,\n candidateCount: candidateMap.size,\n ambiguous,\n duration\n };\n }\n\n // Prefer interactable candidates\n if (!winner.interactable) {\n const interactableWinner = scoredCandidates.find(c => c.interactable);\n if (interactableWinner && interactableWinner.confidence > 30) {\n console.log(`[HybridTargetResolver] ✅ Using interactable candidate (${interactableWinner.confidence.toFixed(1)}%)`);\n // Apply getClickableContainer for React Select/MUI compatibility\n const finalElement = this.getClickableContainer(interactableWinner.element);\n return {\n element: finalElement,\n confidence: interactableWinner.confidence,\n strategies: interactableWinner.strategies,\n candidateCount: candidateMap.size,\n ambiguous,\n duration\n };\n }\n }\n\n console.log(`[HybridTargetResolver] ✅ Winner: ${winner.confidence.toFixed(1)}% confidence (${duration.toFixed(1)}ms)`);\n\n // CRITICAL: If the found element is a hidden placeholder (tabindex=-1, opacity:0),\n // return its visible clickable container instead\n // This handles React Select, MUI Select, and similar dropdown libraries\n const finalElement = this.getClickableContainer(winner.element);\n\n return {\n element: finalElement,\n confidence: winner.confidence,\n strategies: winner.strategies,\n candidateCount: candidateMap.size,\n ambiguous,\n duration\n };\n }\n\n /**\n * Execute a single strategy and return ALL matching elements (not just first)\n */\n /**\n * Check if a string is a valid CSS selector\n */\n private static isValidCSSSelector(selector: string): boolean {\n if (!selector || typeof selector !== 'string') return false;\n\n // Quick check for Playwright-style selectors that are NOT valid CSS\n // These should not be passed to querySelectorAll\n if (/^(role|text|label|placeholder)=/.test(selector)) {\n console.warn(`[HybridTargetResolver] Skipping Playwright-style selector (not CSS): \"${selector.substring(0, 50)}...\"`);\n return false;\n }\n\n try {\n document.querySelector(selector);\n return true;\n } catch (e) {\n console.warn(`[HybridTargetResolver] Invalid CSS selector: \"${selector.substring(0, 50)}...\"`);\n return false;\n }\n }\n\n private static executeStrategyMulti(strategy: string, target: HybridTarget): HTMLElement[] {\n const elements: HTMLElement[] = [];\n\n try {\n switch (strategy) {\n case 'selector': {\n // Use Set to deduplicate elements found by primary + fallback selectors\n const selectorElements = new Set<HTMLElement>();\n\n // Collect all selectors and validate them\n const allSelectors = [\n target.selector,\n ...(target.selectorFallbacks || [])\n ].filter((s): s is string => !!s && this.isValidCSSSelector(s));\n\n // Query each valid selector\n for (const sel of allSelectors) {\n try {\n document.querySelectorAll(sel).forEach(el =>\n selectorElements.add(el as HTMLElement)\n );\n } catch (e) {\n // Should not happen after validation, but safety first\n console.warn(`[HybridTargetResolver] querySelectorAll failed for: \"${sel.substring(0, 50)}...\"`);\n }\n }\n\n // Add deduplicated elements\n elements.push(...selectorElements);\n break;\n }\n\n case 'text':\n if (target.text) {\n // Don't restrict by tag - text strategy should cast a wide net\n // Let the scoring/validation determine which element is best\n elements.push(...this.findAllByText(target.text));\n }\n break;\n\n case 'ariaLabel':\n if (target.ariaLabel) {\n document.querySelectorAll(`[aria-label*=\"${CSS.escape(target.ariaLabel)}\"]`)\n .forEach(el => elements.push(el as HTMLElement));\n }\n break;\n\n case 'placeholder':\n if (target.placeholder) {\n document.querySelectorAll(`[placeholder*=\"${CSS.escape(target.placeholder)}\"]`)\n .forEach(el => elements.push(el as HTMLElement));\n }\n break;\n\n case 'role':\n if (target.role) {\n document.querySelectorAll(`[role=\"${target.role}\"]`)\n .forEach(el => elements.push(el as HTMLElement));\n }\n break;\n\n case 'labelText': {\n if (target.labelText) {\n // Build a selector hint using available info\n // If we have a specific role (like combobox), use it to narrow down\n let selectorHint = target.selector || '';\n\n // If no selector or it's a dynamic ID (e.g., #react-select-15-input),\n // try to build a more stable selector from role/tag\n if (!selectorHint || /react-select-\\d+/.test(selectorHint)) {\n if (target.role) {\n selectorHint = `[role=\"${target.role}\"]`;\n } else if (target.tag) {\n selectorHint = target.tag;\n } else {\n selectorHint = '*';\n }\n }\n\n const el = this.findElementByLabelText(target.labelText, selectorHint);\n if (el) elements.push(el);\n }\n break;\n }\n\n case 'optionText': {\n if (target.optionText) {\n const el = this.findDropdownOptionByText(target.optionText);\n if (el) elements.push(el);\n }\n break;\n }\n\n case 'removeChip': {\n if (target.removeChipText) {\n const el = this.findMultiSelectChipRemoveButton(target.removeChipText);\n if (el) elements.push(el);\n }\n break;\n }\n\n case 'tag': {\n if (target.tag) {\n const matches = document.getElementsByTagName(target.tag);\n for (const el of matches) {\n if (!target.text || (el.textContent || '').toLowerCase().includes(target.text.toLowerCase())) {\n elements.push(el as HTMLElement);\n }\n }\n }\n break;\n }\n\n case 'domIndex':\n if (target.domIndex !== undefined) {\n const el = this.findByDomIndex(target.domIndex);\n if (el) elements.push(el);\n }\n break;\n\n case 'boundingBox': {\n if (target.boundingBox) {\n const el = this.findByBoundingBox(target.boundingBox, target.tag, target.text);\n if (el) elements.push(el);\n }\n break;\n }\n }\n } catch (e) {\n console.warn(`[HybridTargetResolver] Strategy \"${strategy}\" threw error:`, e);\n }\n\n return elements;\n }\n\n /**\n * Find all elements matching text (not just first)\n */\n private static findAllByText(text: string, tag?: string): HTMLElement[] {\n const elements: HTMLElement[] = [];\n const seenElements = new Set<HTMLElement>(); // Use Set for O(1) lookup instead of O(n) includes()\n\n if (!text) return elements;\n\n const trimmedText = text.trim();\n if (!trimmedText) return elements;\n\n const tagSelector = tag || '*';\n const escapedText = this.escapeXPathString(trimmedText);\n\n // Try exact match first\n const exactXpath = `//${tagSelector}[normalize-space(text())=${escapedText}]`;\n try {\n const exactResult = document.evaluate(\n exactXpath,\n document,\n null,\n XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,\n null\n );\n\n for (let i = 0; i < exactResult.snapshotLength; i++) {\n const node = exactResult.snapshotItem(i) as HTMLElement;\n if (node && !this.isDropdownDisplayValue(node) && !seenElements.has(node)) {\n elements.push(node);\n seenElements.add(node);\n }\n }\n } catch (e) {\n // XPath failed, continue to partial match\n }\n\n // Try partial match\n const partialXpath = `//${tagSelector}[contains(normalize-space(text()), ${escapedText})]`;\n try {\n const partialResult = document.evaluate(\n partialXpath,\n document,\n null,\n XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,\n null\n );\n\n for (let i = 0; i < partialResult.snapshotLength; i++) {\n const node = partialResult.snapshotItem(i) as HTMLElement;\n if (node && !this.isDropdownDisplayValue(node) && !seenElements.has(node)) {\n elements.push(node);\n seenElements.add(node);\n }\n }\n } catch (e) {\n // XPath failed\n }\n\n return elements;\n }\n\n /**\n * Compute validation score based on how well element matches target metadata\n * Returns 0-100\n * \n * Role matching strategy:\n * - If element has the CORRECT role → full points\n * - If element has a DIFFERENT role → penalty (element is likely wrong)\n * - If element has NO role but target expects one:\n * - Container divs: small penalty (could be valid click target like React-Select control)\n * - Other elements: moderate penalty\n * \n * Special considerations:\n * - React-Select inputs have tabindex=\"-1\" but are correct targets\n * - Container divs without roles are often the correct click target\n */\n private static computeValidationScore(element: HTMLElement, target: HybridTarget): number {\n let score = 0;\n let maxScore = 0;\n let hasRoleMismatch = false;\n let hasNoRoleButExpected = false;\n\n // Role match check\n if (target.role) {\n maxScore += 25; // Important but not overwhelming\n const elementRole = element.getAttribute('role');\n if (elementRole === target.role) {\n score += 25; // Full points for match\n } else if (elementRole) {\n // Element has a DIFFERENT role (e.g., role=\"button\" vs expected \"combobox\")\n // This is a strong signal the element is wrong\n hasRoleMismatch = true;\n } else {\n // Element has NO role but target expects one\n // This is okay for container divs but not for other elements\n const tag = element.tagName.toLowerCase();\n const className = typeof element.className === 'string' ? element.className : '';\n const isContainer = tag === 'div' || tag === 'span' ||\n element.classList.contains('container') ||\n className.includes('control') ||\n className.includes('wrapper');\n\n if (isContainer) {\n // Container without role - might be React-Select control div\n // Give partial points instead of penalty\n score += 10;\n } else {\n hasNoRoleButExpected = true;\n }\n }\n }\n\n // Check if element looks like the correct click target for combobox\n // React-Select: the actual clickable control is often a div, not the input\n if (target.role === 'combobox') {\n const hasComboboxChild = element.querySelector('[role=\"combobox\"]');\n if (hasComboboxChild) {\n // This element contains the combobox - it's likely the control container\n score += 10;\n maxScore += 10;\n }\n }\n\n // Tag match (15 points, reduced from 20)\n // Tag is less important than role for form elements\n if (target.tag) {\n maxScore += 15;\n const elementTag = element.tagName.toLowerCase();\n const targetTag = target.tag.toLowerCase();\n if (elementTag === targetTag) {\n score += 15;\n } else if (target.role === 'combobox' && (elementTag === 'input' || elementTag === 'div')) {\n // Special case: combobox containers can be div or input - both are acceptable\n score += 10;\n }\n }\n\n // Text match (20 points, reduced from 25)\n // Text is useful but can match wrong containers\n // CRITICAL: Partial matches (contains) must be heavily penalized to avoid\n // matching progress indicators, status text, etc that contain the target word\n if (target.text && !target.optionText) {\n maxScore += 20;\n const elementText = (element.textContent || '').toLowerCase().trim();\n const targetText = target.text.toLowerCase().trim();\n\n // For inputs with role=combobox, check placeholder-like sibling text\n if (target.role === 'combobox' && element.tagName.toLowerCase() === 'input') {\n // React-Select: placeholder is in a sibling div, not native placeholder attr\n const parent = element.closest('.css-6lmz24, [class*=\"value-container\"], [class*=\"placeholder\"]')?.parentElement;\n const placeholderDiv = parent?.querySelector('[class*=\"placeholder\"], [id*=\"placeholder\"]');\n const siblingText = placeholderDiv?.textContent?.toLowerCase().trim() || '';\n if (siblingText === targetText || siblingText.includes(targetText)) {\n score += 20; // Full points - this IS the element with that placeholder\n }\n } else if (elementText === targetText) {\n score += 20; // Exact match - full points\n } else if (elementText.includes(targetText)) {\n // Element text CONTAINS target text (e.g., \"Set Up Connectivity...\" contains \"Connect\")\n // This is risky - could be a progress indicator, status message, etc.\n const lengthRatio = targetText.length / elementText.length;\n\n if (lengthRatio > 0.8) {\n // Element text is only slightly longer (e.g., \"Connect Now\" vs \"Connect\")\n score += 15;\n } else if (lengthRatio > 0.5) {\n // Element text is moderately longer\n score += 8;\n } else {\n // Element text is MUCH longer (e.g., \"Set Up Connectivity...\" vs \"Connect\")\n // This is likely NOT the right element - give minimal points\n // Only give 2 points if target is a complete word in element text\n const wordBoundaryRegex = new RegExp(`\\\\b${HybridTargetResolver.escapeRegex(targetText)}\\\\b`, 'i');\n if (wordBoundaryRegex.test(elementText)) {\n score += 2; // At least it's a complete word match\n } else {\n score += 0; // Not even a word boundary match - no points\n }\n console.log(`[HybridTargetResolver] Text length mismatch: \"${targetText}\" (${targetText.length}) in \"${elementText.slice(0, 30)}...\" (${elementText.length}), ratio=${lengthRatio.toFixed(2)}, points=${score}`);\n }\n } else if (targetText.includes(elementText)) {\n // Target text contains element text (rare case)\n const lengthRatio = elementText.length / targetText.length;\n score += Math.round(15 * lengthRatio);\n }\n }\n\n // Aria-label match (15 points)\n if (target.ariaLabel) {\n maxScore += 15;\n const elAriaLabel = element.getAttribute('aria-label') || '';\n if (elAriaLabel.toLowerCase() === target.ariaLabel.toLowerCase()) {\n score += 15;\n } else if (elAriaLabel.toLowerCase().includes(target.ariaLabel.toLowerCase())) {\n score += 10;\n }\n }\n\n // Placeholder match (15 points, increased from 10)\n // Enhanced to handle React-Select style placeholders\n if (target.placeholder) {\n maxScore += 15;\n const elPlaceholder = (element as HTMLInputElement).placeholder || '';\n const targetPlaceholder = target.placeholder.toLowerCase();\n\n if (elPlaceholder.toLowerCase().includes(targetPlaceholder)) {\n score += 15; // Native placeholder match\n } else if (target.role === 'combobox') {\n // React-Select: Check for placeholder in sibling/child elements\n const container = element.closest('[class*=\"container\"]') || element.parentElement;\n const placeholderEl = container?.querySelector('[class*=\"placeholder\"], [id*=\"placeholder\"]');\n const placeholderText = placeholderEl?.textContent?.toLowerCase().trim() || '';\n if (placeholderText.includes(targetPlaceholder)) {\n score += 15; // React-Select placeholder match\n }\n }\n }\n\n // LabelText match (20 points, increased from 15)\n // This is crucial for distinguishing between multiple comboboxes\n if (target.labelText) {\n maxScore += 20;\n const associatedLabel = this.getAssociatedLabelText(element);\n if (associatedLabel) {\n const normalizedLabel = associatedLabel.toLowerCase().trim().replace(/\\*$/, '').trim();\n const normalizedTarget = target.labelText.toLowerCase().trim().replace(/\\*$/, '').trim();\n if (normalizedLabel === normalizedTarget) {\n score += 20; // Exact match\n } else if (normalizedLabel.includes(normalizedTarget) || normalizedTarget.includes(normalizedLabel)) {\n score += 15; // Partial match\n }\n }\n }\n\n // OptionText match (15 points)\n if (target.optionText) {\n maxScore += 15;\n const elementText = (element.textContent || '').trim();\n const normalizedText = elementText.toLowerCase();\n const normalizedTarget = target.optionText.toLowerCase().trim();\n if (normalizedText === normalizedTarget) {\n score += 15;\n } else if (normalizedText.includes(normalizedTarget)) {\n score += 10;\n }\n }\n\n // Normalize to 0-100\n if (maxScore === 0) return 100; // No checks applicable\n let finalScore = Math.round((score / maxScore) * 100);\n\n // Apply penalties\n if (hasRoleMismatch) {\n // Element has WRONG role - strong penalty\n finalScore = Math.round(finalScore * 0.3); // Reduce to 30% of original score\n console.log(`[HybridTargetResolver] Role mismatch penalty (30%): ${element.tagName}[role=\"${element.getAttribute('role')}\"] vs target role=\"${target.role}\"`);\n } else if (hasNoRoleButExpected) {\n // Element has NO role but should have one - moderate penalty\n // Exception: Don't penalize if element is inside a listbox/menu (options don't need roles)\n const inListbox = element.closest('[role=\"listbox\"], [role=\"menu\"], [role=\"tree\"]');\n if (!inListbox) {\n finalScore = Math.round(finalScore * 0.7); // Reduce to 70%\n console.log(`[HybridTargetResolver] No role penalty (70%): ${element.tagName} expected role=\"${target.role}\"`);\n }\n }\n\n // BONUS: If element has tabindex=\"-1\" but is inside a listbox, don't penalize\n // (Options in dropdowns often have tabindex=-1 for keyboard navigation)\n const tabindex = element.getAttribute('tabindex');\n if (tabindex === '-1') {\n const inSelectableContainer = element.closest('[role=\"listbox\"], [role=\"menu\"], [role=\"combobox\"], .select, [class*=\"dropdown\"]');\n if (!inSelectableContainer) {\n // Hidden input that's not in a known dropdown context - small penalty\n const tag = element.tagName.toLowerCase();\n if (tag === 'input') {\n finalScore = Math.round(finalScore * 0.85); // 15% penalty\n console.log(`[HybridTargetResolver] tabindex=-1 input penalty (85%): likely hidden placeholder`);\n }\n }\n }\n\n // GENERIC: Selector context bonus\n // If we have a selector, extract the expected DOM structure and boost elements that match\n // This is a GENERIC approach that uses the selector's own structure, not hardcoded words\n if (target.selector) {\n const selectorContext = this.extractSelectorContext(target.selector);\n if (selectorContext.parentTag || selectorContext.parentSelector) {\n const contextScore = this.matchesSelectorContext(element, selectorContext);\n if (contextScore > 0.5) {\n // Element matches expected parent structure - give bonus\n finalScore = Math.min(100, Math.round(finalScore * 1.15)); // 15% bonus, capped at 100\n } else if (contextScore < 0.5 && target.text) {\n // Element doesn't match expected structure but we're doing text matching\n // Apply penalty (element might be matching text in wrong context)\n finalScore = Math.round(finalScore * 0.7); // 30% penalty\n }\n }\n }\n\n // INTERACTABILITY BONUS: Prefer elements that are actually interactive\n // When we're looking for something to click (has text), interactive elements should score higher\n // This prevents selecting step labels, headers, etc. over actual buttons\n if (target.text) {\n const tag = element.tagName.toLowerCase();\n const role = element.getAttribute('role');\n const isNativelyInteractive = ['button', 'a', 'input', 'select', 'textarea'].includes(tag);\n const hasInteractiveRole = ['button', 'link', 'menuitem', 'option', 'tab', 'checkbox', 'radio'].includes(role || '');\n const hasClickHandler = element.onclick !== null || element.hasAttribute('onclick');\n const isInsideInteractive = element.closest('button, a, [role=\"button\"], [role=\"link\"]');\n\n if (isNativelyInteractive || hasInteractiveRole) {\n // Element is natively interactive - significant bonus\n finalScore = Math.min(100, Math.round(finalScore * 1.25)); // 25% bonus\n console.log(`[HybridTargetResolver] Interactive element bonus (25%): <${tag}> is natively interactive`);\n } else if (isInsideInteractive) {\n // Element is inside an interactive parent - moderate bonus\n finalScore = Math.min(100, Math.round(finalScore * 1.15)); // 15% bonus\n } else if (hasClickHandler) {\n // Element has click handler - small bonus\n finalScore = Math.min(100, Math.round(finalScore * 1.1)); // 10% bonus\n }\n // Note: No penalty for non-interactive elements as they might be valid targets\n // (e.g., divs with click handlers, custom components)\n }\n\n return finalScore;\n }\n\n /**\n * Compute final confidence score\n * \n * Weights:\n * - Strategy consensus: 30% (how many strategies found this element)\n * - Validation score: 40% (how well it matches target metadata)\n * - Visibility/interactability: 15% (can we actually click it)\n * - Selector match bonus: 15% (selectors are most precise - recorded from actual interactions)\n */\n private static computeConfidence(candidate: ResolutionCandidate, totalStrategies: number, target: HybridTarget): number {\n // Edge case: Prevent division by zero\n if (totalStrategies === 0) {\n console.warn('[HybridTargetResolver] computeConfidence: totalStrategies is 0, returning 0');\n return 0;\n }\n\n // Strategy consensus: What % of strategies found this element\n const consensusScore = (candidate.strategies.length / totalStrategies) * 100;\n\n // Validation score: How well does it match target metadata\n const validationScore = candidate.validationScore;\n\n // Visibility score\n let visibilityScore = 100;\n try {\n const rect = candidate.element.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) visibilityScore = 0;\n if (!candidate.interactable) visibilityScore *= 0.5;\n } catch (e) {\n // Element might have been removed, treat as not visible\n visibilityScore = 0;\n }\n\n // SELECTOR PRIORITY: Selectors are recorded from actual user interactions\n // They are the most precise targeting we have - if a selector matches, it's likely correct\n // BUT: If we also have target text to match, the selector should only get full bonus\n // if the element also contains/matches that text. Otherwise selector might be too generic.\n let selectorBonus = 0;\n if (candidate.strategies.includes('selector')) {\n // Check if we also have text to validate against\n if (target.text) {\n const elementText = (candidate.element.textContent || '').toLowerCase().trim();\n const targetText = target.text.toLowerCase().trim();\n\n if (elementText === targetText) {\n // Exact text match + selector match = highest confidence\n selectorBonus = 100;\n console.log(`[HybridTargetResolver] Selector + exact text match bonus applied`);\n } else if (elementText.includes(targetText)) {\n // Partial text match + selector match = good confidence\n selectorBonus = 70;\n console.log(`[HybridTargetResolver] Selector + partial text match bonus applied`);\n } else {\n // Selector matches but text doesn't match at all\n // This is likely a generic selector matching the wrong element\n selectorBonus = 20; // Reduced bonus - selector alone isn't reliable here\n console.log(`[HybridTargetResolver] Selector match but NO text match - reduced bonus`);\n }\n } else {\n // No text to validate, trust the selector\n selectorBonus = 100;\n console.log(`[HybridTargetResolver] Selector match bonus applied (no text to validate)`);\n }\n }\n\n // Weighted average with selector priority\n const confidence = (\n consensusScore * 0.30 + // Reduced from 40% to make room for selector bonus\n validationScore * 0.40 +\n visibilityScore * 0.15 + // Reduced from 20%\n selectorBonus * 0.15 // 15% weight for selector match\n );\n\n return confidence;\n }\n\n /**\n * Check if element is interactable (can receive clicks/input)\n * Returns { ok: true } or { ok: false, reason: string }\n */\n private static checkInteractability(el: HTMLElement): { ok: boolean; reason?: string } {\n try {\n // Check if element is in DOM\n if (!el.isConnected) {\n return { ok: false, reason: 'Element is not connected to DOM' };\n }\n\n // Get computed style (might fail if element is in a different document/frame)\n let style: CSSStyleDeclaration;\n try {\n style = window.getComputedStyle(el);\n } catch (e) {\n return { ok: false, reason: 'Cannot compute style (element may be in different document)' };\n }\n\n // Check visibility\n if (style.display === 'none') {\n return { ok: false, reason: 'Element has display: none' };\n }\n if (style.visibility === 'hidden') {\n return { ok: false, reason: 'Element has visibility: hidden' };\n }\n const opacity = parseFloat(style.opacity);\n if (isNaN(opacity) || opacity === 0) {\n return { ok: false, reason: 'Element has opacity: 0' };\n }\n\n // Check pointer-events\n if (style.pointerEvents === 'none') {\n return { ok: false, reason: 'Element has pointer-events: none' };\n }\n\n // Check disabled state\n if ((el as HTMLInputElement).disabled) {\n return { ok: false, reason: 'Element is disabled' };\n }\n if (el.getAttribute('aria-disabled') === 'true') {\n return { ok: false, reason: 'Element has aria-disabled: true' };\n }\n\n // Check if rendered (offsetParent null for hidden elements)\n // Exception: fixed/sticky positioned elements have null offsetParent\n if (!el.offsetParent && style.position !== 'fixed' && style.position !== 'sticky') {\n // Check for fixed/sticky ancestor\n let parent = el.parentElement;\n let hasFixedAncestor = false;\n while (parent && parent !== document.body) {\n try {\n const parentStyle = window.getComputedStyle(parent);\n if (parentStyle.position === 'fixed' || parentStyle.position === 'sticky') {\n hasFixedAncestor = true;\n break;\n }\n } catch (e) {\n // Skip if we can't compute parent style\n break;\n }\n parent = parent.parentElement;\n }\n if (!hasFixedAncestor) {\n return { ok: false, reason: 'Element is not rendered (offsetParent is null)' };\n }\n }\n\n // Check dimensions (might fail if element is in a different frame)\n let rect: DOMRect;\n try {\n rect = el.getBoundingClientRect();\n } catch (e) {\n return { ok: false, reason: 'Cannot get bounding rect (element may be in different frame)' };\n }\n if (rect.width === 0 || rect.height === 0) {\n return { ok: false, reason: 'Element has zero dimensions' };\n }\n\n return { ok: true };\n } catch (e) {\n // Catch any unexpected errors\n console.warn('[HybridTargetResolver] checkInteractability error:', e);\n return { ok: false, reason: `Error checking interactability: ${e}` };\n }\n }\n\n /**\n * Get available strategies based on what's provided in target\n * Priority: labelText > optionText > selector > boundingBox > placeholder > ariaLabel > text > role > tag\n * \n * labelText and optionText are highest priority because they provide\n * precise disambiguation for dropdowns and form fields\n */\n private static getAvailableStrategies(target: HybridTarget): string[] {\n const strategies: string[] = [];\n // DISAMBIGUATION FIRST - labelText/optionText are the most reliable for form fields\n // labelText should work even without a selector - it finds elements by their associated label\n if (target.labelText) strategies.push('labelText');\n if (target.optionText) strategies.push('optionText');\n if (target.removeChipText) strategies.push('removeChip');\n // SELECTOR - reliable when available and valid\n if (target.selector) strategies.push('selector');\n // DIL strategies (most accurate positioning)\n if (target.domIndex !== undefined) strategies.push('domIndex');\n if (target.boundingBox) strategies.push('boundingBox');\n // Input-specific strategies\n if (target.placeholder) strategies.push('placeholder');\n if (target.ariaLabel) strategies.push('ariaLabel');\n // Text-based strategies (can be ambiguous)\n if (target.text) strategies.push('text');\n if (target.role) strategies.push('role');\n if (target.tag) strategies.push('tag');\n console.log('[HybridTargetResolver] Auto-detected available strategies:', strategies.join(', '));\n return strategies;\n }\n\n /**\n * Strategy: Find by bounding box (DIL primary strategy)\n */\n private static findByDomIndex(domIndex: number): HTMLElement | null {\n if (domIndex === undefined) return null;\n\n // Use DOMIntrospector if available\n if (this.domIntrospector) {\n return this.domIntrospector.findElementByIndex(domIndex);\n }\n\n // No fallback for DOM Index - requires DOMIntrospector\n return null;\n }\n\n private static findByBoundingBox(\n boundingBox?: { x: number; y: number; width: number; height: number },\n expectedTag?: string,\n expectedText?: string\n ): HTMLElement | null {\n if (!boundingBox) return null;\n\n // Use DOMIntrospector if available\n if (this.domIntrospector) {\n return this.domIntrospector.findElementByBoundingBox(boundingBox, expectedTag, expectedText);\n }\n\n // Fallback: manual bounding box search\n const tolerance = 10;\n const allElements = document.body.querySelectorAll('*');\n let bestMatch: HTMLElement | null = null;\n let bestScore = 0;\n\n allElements.forEach((el) => {\n const htmlEl = el as HTMLElement;\n\n // Skip SDK widget elements\n if (isSDKWidget(htmlEl)) return;\n\n const rect = htmlEl.getBoundingClientRect();\n\n // Check overlap\n const xDiff = Math.abs(rect.x - boundingBox.x);\n const yDiff = Math.abs(rect.y - boundingBox.y);\n const wDiff = Math.abs(rect.width - boundingBox.width);\n const hDiff = Math.abs(rect.height - boundingBox.height);\n\n if (xDiff <= tolerance && yDiff <= tolerance && wDiff <= tolerance * 2 && hDiff <= tolerance * 2) {\n let score = 100 - xDiff - yDiff;\n\n if (expectedTag && htmlEl.tagName.toLowerCase() === expectedTag.toLowerCase()) {\n score += 30;\n }\n\n if (expectedText) {\n const text = htmlEl.innerText?.trim().toLowerCase() || '';\n if (text.includes(expectedText.toLowerCase())) {\n score += 25;\n }\n }\n\n if (score > bestScore) {\n bestScore = score;\n bestMatch = htmlEl;\n }\n }\n });\n\n return bestMatch;\n }\n\n /**\n * Validate that a found element matches the expected rich targeting metadata.\n * This prevents selecting the wrong element (e.g., \"Labels\" sidebar instead of \"Label\" form field).\n * \n * Returns true if:\n * - No rich metadata provided (nothing to validate)\n * - Element matches ALL provided metadata\n * \n * Returns false if element doesn't match ANY required metadata.\n */\n private static validateElementMatchesTarget(element: HTMLElement, target: HybridTarget): boolean {\n // If no rich metadata provided, any element is valid (backward compatibility)\n if (!target.labelText && !target.optionText && !target.role && !target.ariaLabel && !target.placeholder && !target.name && !target.tag && !target.text) {\n return true;\n }\n\n // Track what we validated for logging\n const checks: string[] = [];\n\n // NEW: Validate tag name\n if (target.tag) {\n const elementTag = element.tagName.toLowerCase();\n const targetTag = target.tag.toLowerCase();\n if (elementTag !== targetTag) {\n // Allow some flexibility: div/button containing spans, etc.\n // But strict for input types\n if (['input', 'select', 'textarea', 'button', 'a'].includes(targetTag)) {\n console.log(`[HybridTargetResolver] Validation failed: tag=\"${elementTag}\" !== expected \"${targetTag}\"`);\n return false;\n }\n }\n checks.push('tag');\n }\n\n // NEW: Validate text content (when not using optionText)\n if (target.text && !target.optionText) {\n const elementText = (element.textContent || '').trim().toLowerCase();\n const targetText = target.text.trim().toLowerCase();\n\n // Require text match - either exact or contains\n const hasExactMatch = elementText === targetText;\n const hasContainsMatch = elementText.includes(targetText) || targetText.includes(elementText);\n\n if (!hasExactMatch && !hasContainsMatch) {\n console.log(`[HybridTargetResolver] Validation failed: text=\"${elementText.slice(0, 50)}\" !== expected \"${targetText}\"`);\n return false;\n }\n\n // STRICT: For short target text, require high match ratio to avoid partial matches\n // \"Save\" should not match \"Save All Changes to Draft\"\n if (targetText.length <= 10 && !hasExactMatch) {\n const ratio = targetText.length / Math.max(elementText.length, 1);\n if (ratio < 0.5) {\n console.log(`[HybridTargetResolver] Validation failed: text match ratio too low (${ratio.toFixed(2)})`);\n return false;\n }\n }\n checks.push('text');\n }\n\n // Helper for word-boundary label matching\n const labelMatches = (elementLabel: string, targetLabel: string): boolean => {\n const normalized = elementLabel.toLowerCase().trim().replace(/\\*$/, '').trim();\n const targetNormalized = targetLabel.toLowerCase().trim();\n if (normalized === targetNormalized) return true;\n // Word boundary check - \"Label\" should not match \"Labels\"\n const regex = new RegExp(`(^|\\\\s)${targetNormalized.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}($|\\\\s|[:\\\\*\\\\?\\\\.\\\\,])`, 'i');\n return regex.test(elementLabel);\n };\n\n // Validate ARIA role\n if (target.role) {\n const elementRole = element.getAttribute('role');\n if (elementRole !== target.role) {\n console.log(`[HybridTargetResolver] Validation failed: role=\"${elementRole}\" !== expected \"${target.role}\"`);\n return false;\n }\n checks.push('role');\n }\n\n // Validate aria-label\n if (target.ariaLabel) {\n const elementAriaLabel = element.getAttribute('aria-label') || '';\n if (!labelMatches(elementAriaLabel, target.ariaLabel)) {\n console.log(`[HybridTargetResolver] Validation failed: aria-label=\"${elementAriaLabel}\" !== expected \"${target.ariaLabel}\"`);\n return false;\n }\n checks.push('ariaLabel');\n }\n\n // Validate placeholder\n if (target.placeholder) {\n const elementPlaceholder = (element as HTMLInputElement).placeholder || '';\n if (!labelMatches(elementPlaceholder, target.placeholder)) {\n console.log(`[HybridTargetResolver] Validation failed: placeholder=\"${elementPlaceholder}\" !== expected \"${target.placeholder}\"`);\n return false;\n }\n checks.push('placeholder');\n }\n\n // Validate HTML name attribute\n if (target.name) {\n const elementName = element.getAttribute('name') || '';\n if (elementName !== target.name) {\n console.log(`[HybridTargetResolver] Validation failed: name=\"${elementName}\" !== expected \"${target.name}\"`);\n return false;\n }\n checks.push('name');\n }\n\n // Validate labelText (most complex - check associated label)\n if (target.labelText) {\n const associatedLabel = this.getAssociatedLabelText(element);\n if (!associatedLabel || !labelMatches(associatedLabel, target.labelText)) {\n console.log(`[HybridTargetResolver] Validation failed: associated label=\"${associatedLabel}\" !== expected \"${target.labelText}\"`);\n return false;\n }\n console.log(`[HybridTargetResolver] ✓ Label validation passed: \"${associatedLabel}\" matches \"${target.labelText}\"`);\n checks.push('labelText');\n }\n\n // Validate optionText (for dropdown options)\n if (target.optionText) {\n const elementText = element.textContent?.trim() || '';\n if (!labelMatches(elementText, target.optionText)) {\n console.log(`[HybridTargetResolver] Validation failed: option text=\"${elementText}\" !== expected \"${target.optionText}\"`);\n return false;\n }\n checks.push('optionText');\n }\n\n // Log what was validated\n if (checks.length > 0) {\n console.log(`[HybridTargetResolver] ✓ Validated: ${checks.join(', ')}`);\n }\n\n return true;\n }\n\n /**\n * Get the associated label text for an element (for validation).\n * Checks: label[for], aria-labelledby, parent container labels\n */\n private static getAssociatedLabelText(element: HTMLElement): string | null {\n // 1. Check label[for] association\n const inputId = element.getAttribute('id');\n if (inputId) {\n try {\n const labelFor = document.querySelector(`label[for=\"${CSS.escape(inputId)}\"]`);\n if (labelFor) {\n return labelFor.textContent?.trim().replace(/\\*$/, '').trim() || null;\n }\n } catch (e) { /* CSS.escape failed */ }\n }\n\n // 2. Check aria-labelledby\n const ariaLabelledBy = element.getAttribute('aria-labelledby');\n if (ariaLabelledBy) {\n const ids = ariaLabelledBy.split(/\\s+/).filter(id => id.length > 0);\n for (const id of ids) {\n const labelEl = document.getElementById(id);\n if (labelEl) {\n return labelEl.textContent?.trim().replace(/\\*$/, '').trim() || null;\n }\n }\n }\n\n // 3. Check parent containers for label (handles React Select, MUI, etc.)\n // These libraries often put label in a sibling div, not as a direct child\n let container = element.parentElement;\n let depth = 0;\n while (container && depth < 8) {\n // Search for labels anywhere within this container\n // IMPROVED: More comprehensive label selector to handle React/MUI structures\n const labels = container.querySelectorAll(\n 'label, ' +\n '.MuiFormLabel-root, ' +\n '[class*=\"FormLabel\"], ' +\n '[class*=\"form-label\"], ' +\n '[class*=\"field-label\"], ' +\n '.label'\n );\n\n for (const label of labels) {\n // Skip labels that are inside the element itself or contain the element\n if (element.contains(label) || label.contains(element)) continue;\n // Skip labels that have input/select inside them (wrapper labels)\n if ((label as Element).querySelector('input, select, textarea, [role=\"combobox\"]')) continue;\n\n // Make sure this label is for OUR element, not another field\n const inputs = container.querySelectorAll('input, select, textarea, [role=\"combobox\"]');\n\n // If there's only one input in this container, this label is for it\n if (inputs.length === 1) {\n const text = label.textContent?.trim().replace(/\\*$/, '').trim();\n if (text && text.length > 0 && text.length < 50) {\n return text;\n }\n }\n // If multiple inputs, use position-based matching\n else if (this.isLabelForElement(label as HTMLElement, element, container)) {\n const text = label.textContent?.trim().replace(/\\*$/, '').trim();\n if (text && text.length > 0 && text.length < 50) {\n return text;\n }\n }\n }\n\n container = container.parentElement;\n depth++;\n }\n\n return null;\n }\n\n /**\n * Check if a label is visually associated with an element\n * Uses position comparison - label should be above or to the left of the input\n * Also checks for common parent container patterns\n */\n private static isLabelForElement(label: HTMLElement, element: HTMLElement, container: Element): boolean {\n const labelRect = label.getBoundingClientRect();\n const elementRect = element.getBoundingClientRect();\n\n // Label should be above or to the left of the element (with tolerance for spacing)\n const isAbove = labelRect.bottom <= elementRect.top + 30;\n const isLeft = labelRect.right <= elementRect.left + 30 && Math.abs(labelRect.top - elementRect.top) < 60;\n\n if (!isAbove && !isLeft) return false;\n\n // Check if there's another input that's closer to this label\n const inputs = container.querySelectorAll('input, select, textarea, [role=\"combobox\"]');\n if (inputs.length <= 1) return true; // Only one input, must be ours\n\n for (const otherInput of inputs) {\n if (otherInput === element) continue;\n const otherRect = (otherInput as HTMLElement).getBoundingClientRect();\n\n // If label is above: check if another input is between label and our element\n if (isAbove) {\n if (otherRect.top >= labelRect.bottom - 5 && otherRect.bottom < elementRect.top) {\n return false; // Another input is between label and element\n }\n // Check horizontal alignment when label is above\n if (Math.abs(otherRect.left - labelRect.left) < Math.abs(elementRect.left - labelRect.left) &&\n otherRect.top < elementRect.top) {\n return false; // Another input is better horizontally aligned\n }\n }\n\n // If label is to the left: check if another input is closer\n if (isLeft) {\n const otherDistX = Math.abs(otherRect.left - labelRect.right);\n const elDistX = Math.abs(elementRect.left - labelRect.right);\n if (otherDistX < elDistX && Math.abs(otherRect.top - labelRect.top) < 40) {\n return false; // Another input is closer horizontally\n }\n }\n }\n\n return true;\n }\n\n /**\n * Check if a text element (label, div, span) is positioned near an input element\n * and is more associated with it than other inputs in the container.\n * \n * Position-based matching works by checking:\n * - isAbove: Text bottom edge is above input top edge (with tolerance)\n * - isLeft: Text right edge is to the left of input left edge\n * - No other input is \"between\" the text and our input\n * \n * Pros: Works even when HTML structure varies wildly\n * Cons: Requires rendered layout (fails for hidden elements), more expensive\n */\n private static isTextNearElement(textEl: HTMLElement, inputEl: HTMLElement, allInputs: Element[]): boolean {\n const textRect = textEl.getBoundingClientRect();\n const inputRect = inputEl.getBoundingClientRect();\n\n // If elements aren't rendered (hidden), fall back to DOM order\n if (textRect.width === 0 || textRect.height === 0 || inputRect.width === 0 || inputRect.height === 0) {\n // DOM order fallback: text should come before input in tree order\n const position = textEl.compareDocumentPosition(inputEl);\n return (position & Node.DOCUMENT_POSITION_FOLLOWING) !== 0;\n }\n\n // Text should be above or to the left of the input\n const isAbove = textRect.bottom <= inputRect.top + 40; // 40px tolerance for spacing\n const isLeft = textRect.right <= inputRect.left + 20 && Math.abs(textRect.top - inputRect.top) < 50;\n\n if (!isAbove && !isLeft) return false;\n\n // Check if there's another input that's closer to this text\n for (const otherInput of allInputs) {\n if (otherInput === inputEl) continue;\n const otherRect = (otherInput as HTMLElement).getBoundingClientRect();\n if (otherRect.width === 0 || otherRect.height === 0) continue;\n\n // If text is above: is another input vertically between text and our input?\n if (isAbove && otherRect.top >= textRect.bottom - 10 && otherRect.bottom < inputRect.top) {\n return false; // Another input is between\n }\n\n // If text is above: is another input horizontally closer (same column)?\n if (isAbove && Math.abs(otherRect.left - textRect.left) < Math.abs(inputRect.left - textRect.left) - 20) {\n if (otherRect.top < inputRect.top && otherRect.top >= textRect.bottom - 50) {\n return false; // Another input is closer horizontally and between\n }\n }\n\n // If text is left: is another input horizontally closer?\n if (isLeft) {\n const otherDistX = Math.abs(otherRect.left - textRect.right);\n const inputDistX = Math.abs(inputRect.left - textRect.right);\n if (otherDistX < inputDistX - 10 && Math.abs(otherRect.top - textRect.top) < 40) {\n return false; // Another input is closer horizontally\n }\n }\n }\n\n return true;\n }\n\n /**\n * Check if an element is a \"hidden placeholder\" input that shouldn't be clicked directly.\n * React Select and similar libraries often use hidden inputs just to hold the value,\n * while the actual clickable UI is a container div.\n * \n * Hidden placeholders typically have:\n * - tabindex=\"-1\" (not focusable) - BUT only for inputs, not for options!\n * - opacity: 0 or visibility: hidden\n * - Very small size (min-width: 2px, etc.)\n * - position: absolute with no visible dimensions\n * \n * IMPORTANT: Dropdown options (role=\"option\") often have tabindex=\"-1\" by design\n * (navigated with arrow keys, not Tab) - these are NOT hidden placeholders!\n */\n private static isHiddenPlaceholderInput(element: HTMLElement): boolean {\n // Only check inputs and elements that might be placeholder inputs\n const tagName = element.tagName.toLowerCase();\n const role = element.getAttribute('role');\n\n // NEVER consider dropdown options as hidden - they're meant to be clicked!\n if (role === 'option' || role === 'menuitem' || role === 'treeitem') {\n return false;\n }\n\n // NEVER consider elements inside an open listbox/menu as hidden\n if (element.closest('[role=\"listbox\"], [role=\"menu\"], [role=\"tree\"]')) {\n return false;\n }\n\n if (tagName !== 'input' && !role) {\n return false;\n }\n\n // Check tabindex=\"-1\" ONLY for inputs (not for options which use tabindex=-1 normally)\n const tabindex = element.getAttribute('tabindex');\n if (tabindex === '-1' && tagName === 'input') {\n console.log('[HybridTargetResolver] → Input has tabindex=\"-1\" (hidden placeholder)');\n return true;\n }\n\n // Check computed style for opacity: 0 or visibility: hidden\n try {\n const computedStyle = window.getComputedStyle(element);\n\n // Opacity 0 means invisible\n if (computedStyle.opacity === '0') {\n console.log('[HybridTargetResolver] → Element has opacity: 0 (hidden placeholder)');\n return true;\n }\n\n // Visibility hidden\n if (computedStyle.visibility === 'hidden') {\n console.log('[HybridTargetResolver] → Element has visibility: hidden (hidden placeholder)');\n return true;\n }\n\n // Check for extremely small size (React Select uses min-width: 2px)\n const rect = element.getBoundingClientRect();\n if (rect.width <= 5 && rect.height <= 5) {\n console.log(`[HybridTargetResolver] → Element is too small (${rect.width}x${rect.height}) - hidden placeholder`);\n return true;\n }\n\n // Check if the element is position: absolute and mostly hidden\n if (computedStyle.position === 'absolute') {\n // Check if parent container has actual visible size but element doesn't\n const parent = element.parentElement;\n if (parent) {\n const parentRect = parent.getBoundingClientRect();\n // If parent is much larger than the input, input is probably a hidden placeholder\n if (parentRect.width > rect.width * 10 && rect.width < 20) {\n console.log('[HybridTargetResolver] → Element is tiny absolute-positioned (hidden placeholder)');\n return true;\n }\n }\n }\n } catch (e) {\n // getComputedStyle failed, assume not hidden\n }\n\n return false;\n }\n\n /**\n * Get the clickable container for a hidden placeholder input.\n * For React Select, MUI, Headless UI, etc., returns the visible control element.\n */\n private static getClickableContainer(element: HTMLElement): HTMLElement {\n // If element is not a hidden placeholder, return it as-is\n if (!this.isHiddenPlaceholderInput(element)) {\n return element;\n }\n\n console.log('[HybridTargetResolver] → Looking for clickable container...');\n\n // Look for common dropdown control patterns\n // React Select: .css-*-control, [class*=\"control\"]\n // MUI: .MuiSelect-select, .MuiInputBase-root\n // Headless UI: [role=\"button\"], [data-headlessui-state]\n // Radix: [data-radix-collection-item]\n\n const controlSelectors = [\n // React Select patterns (most common)\n '[class*=\"-control\"]',\n '[class*=\"control\"]',\n // MUI patterns\n '.MuiSelect-select',\n '.MuiInputBase-root',\n '.MuiOutlinedInput-root',\n // Generic patterns\n '[role=\"button\"]',\n '[role=\"combobox\"]:not(input)', // Container combobox, not input\n '[aria-haspopup=\"listbox\"]',\n // Class-based patterns\n '[class*=\"select-container\"]',\n '[class*=\"dropdown-container\"]',\n '[class*=\"picker\"]',\n ];\n\n // First, try to find a container by going up the DOM\n let current: HTMLElement | null = element.parentElement;\n let depth = 0;\n\n while (current && depth < 6) {\n // Check if current element matches any control selector\n for (const selector of controlSelectors) {\n try {\n if (current.matches(selector)) {\n const rect = current.getBoundingClientRect();\n // Make sure it's actually visible\n if (rect.width > 50 && rect.height > 20) {\n console.log(`[HybridTargetResolver] → Found clickable container: ${current.tagName}.${current.className?.split(' ').slice(0, 2).join('.')}`);\n return current;\n }\n }\n } catch (e) {\n // Invalid selector, skip\n }\n }\n\n // Check for generic visible container with click handlers\n const rect = current.getBoundingClientRect();\n if (rect.width > 100 && rect.height > 30) {\n // This might be the control container\n const role = current.getAttribute('role');\n const hasClickHandler = current.onclick !== null ||\n current.getAttribute('onclick') !== null ||\n current.classList.contains('clickable');\n const isVisibleControl = role === 'button' ||\n role === 'combobox' ||\n hasClickHandler ||\n // React Select container pattern\n (current.querySelector('input[role=\"combobox\"]') === element);\n\n if (isVisibleControl) {\n console.log(`[HybridTargetResolver] → Found clickable container (generic): ${current.tagName}.${current.className?.split(' ').slice(0, 2).join('.')}`);\n return current;\n }\n }\n\n current = current.parentElement;\n depth++;\n }\n\n // Fallback: return the original element\n console.log('[HybridTargetResolver] → No clickable container found, using original element');\n return element;\n }\n\n /**\n * Strategy: Find by CSS selector\n */\n private static findBySelector(selector?: string): HTMLElement | null {\n if (!selector) return null;\n\n // Normalize escaped characters in selector string\n // Server may send escaped quotes (\\\") and escaped spaces (\\ ) which need to be unescaped\n const normalizedSelector = selector\n .replace(/\\\\\"/g, '\"') // Unescape quotes: \\\" -> \"\n .replace(/\\\\ /g, ' ') // Unescape spaces: \\ -> (space)\n .replace(/\\\\\\\\/g, '\\\\'); // Unescape backslashes: \\\\ -> \\\n\n console.log(`[HybridTargetResolver] → Normalized selector: \"${normalizedSelector}\"`);\n\n // Check for virtual attributes that need special handling\n // These are hints for the SDK, not real CSS selectors\n const optionTextMatch = normalizedSelector.match(/\\[data-option-text=\"([^\"]+)\"\\]/);\n if (optionTextMatch) {\n const optionText = optionTextMatch[1];\n console.log(`[HybridTargetResolver] → Virtual selector - searching for option text: \"${optionText}\"`);\n return this.findDropdownOptionByText(optionText);\n }\n\n const labelMatch = normalizedSelector.match(/\\[data-label=\"([^\"]+)\"\\]/);\n if (labelMatch) {\n const labelText = labelMatch[1];\n console.log(`[HybridTargetResolver] → Virtual selector - searching for combobox with label: \"${labelText}\"`);\n return this.findComboboxByLabel(labelText);\n }\n\n // Strip any remaining virtual attributes for querySelector\n const cleanSelector = normalizedSelector\n .replace(/\\[data-option-text=\"[^\"]*\"\\]/g, '')\n .replace(/\\[data-label=\"[^\"]*\"\\]/g, '')\n .replace(/\\[data-index=\"[^\"]*\"\\]/g, '')\n .trim();\n\n // CRITICAL: Detect and skip React-Select dynamic IDs\n // These IDs like \"#react-select-10-input\" are unstable (change per session/mount order)\n // Return null to let other strategies (labelText, placeholder, text) handle it\n const reactSelectIdPattern = /#?react-select-\\d+-(input|listbox|option|placeholder|live-region)/;\n if (reactSelectIdPattern.test(cleanSelector)) {\n console.log(`[HybridTargetResolver] → Detected unstable React-Select ID pattern in \"${cleanSelector}\", skipping selector strategy`);\n return null;\n }\n\n // DIAGNOSTIC: Log when we have multiple matches for generic selectors\n // This helps identify when the bot needs to send more specific targeting info\n if (cleanSelector === 'input[role=\"combobox\"]' || cleanSelector === '[role=\"combobox\"]') {\n const allMatches = document.querySelectorAll(cleanSelector);\n if (allMatches.length > 1) {\n console.warn(`[HybridTargetResolver] ⚠️ AMBIGUOUS SELECTOR: \"${cleanSelector}\" matches ${allMatches.length} elements!`);\n console.warn(`[HybridTargetResolver] ⚠️ Bot should send more specific targeting (text, label, boundingBox, domIndex)`);\n // List all matches for debugging\n allMatches.forEach((el, i) => {\n const htmlEl = el as HTMLElement;\n const placeholder = htmlEl.getAttribute('placeholder') || '';\n const ariaLabel = htmlEl.getAttribute('aria-label') || '';\n const id = htmlEl.id || '';\n console.log(`[HybridTargetResolver] ${i}: id=\"${id}\" placeholder=\"${placeholder}\" aria-label=\"${ariaLabel}\"`);\n });\n }\n }\n\n const el = document.querySelector(cleanSelector) as HTMLElement;\n if (!el) {\n console.log(`[HybridTargetResolver] → Selector \"${cleanSelector}\" matched 0 elements`);\n return null;\n }\n\n // FILTER: Skip accessibility-only elements (React-Select a11y spans, sr-only, etc.)\n // These elements are for screen readers and should not be click targets\n if (this.isAccessibilityOnlyElement(el)) {\n console.log(`[HybridTargetResolver] → Selector matched a11y-only element (class: ${el.className}), skipping`);\n return null;\n }\n\n return el;\n }\n\n /**\n * Check if element is an accessibility-only element (screen reader text, etc.)\n * These should be skipped as click targets - they're invisible helpers for assistive tech\n */\n private static isAccessibilityOnlyElement(element: HTMLElement): boolean {\n const className = typeof element.className === 'string' ? element.className : '';\n const text = (element.textContent || '').trim();\n\n // React-Select a11y spans (empty text with a11y class)\n if (className.includes('a11yText') && !text) return true;\n\n // Common screen-reader-only patterns\n if (className.includes('sr-only') ||\n className.includes('visually-hidden') ||\n className.includes('screenreader') ||\n className.includes('screen-reader')) return true;\n\n // aria-live regions with empty content (announcement containers)\n if (element.getAttribute('aria-live') && !text) return true;\n if (element.getAttribute('role') === 'log' && !text) return true;\n\n // Check for visually hidden styles (common a11y hiding technique)\n try {\n const style = getComputedStyle(element);\n // Clip-based hiding (classic sr-only pattern)\n if (style.position === 'absolute' &&\n (style.width === '1px' || style.height === '1px' ||\n style.clip === 'rect(0px, 0px, 0px, 0px)' ||\n style.clipPath === 'inset(50%)')) {\n return true;\n }\n } catch {\n // getComputedStyle may fail in some edge cases\n }\n\n return false;\n }\n\n /**\n * Check if an element is a dropdown \"display value\" (the currently selected value shown in closed dropdown)\n * These should NOT be clicked when trying to select an option - need to click actual [role=\"option\"]\n */\n private static isDropdownDisplayValue(element: HTMLElement): boolean {\n const className = (element.className || '').toLowerCase();\n const parentClassName = (element.parentElement?.className || '').toLowerCase();\n\n // Common patterns for display values (NOT options)\n const displayValuePatterns = [\n 'singlevalue', 'single-value', // React Select\n 'selectedvalue', 'selected-value', // Generic\n 'placeholder', // Placeholder text\n 'value-container', 'valuecontainer', // Container for selected value\n 'muiselect-select', // MUI Select\n 'select__single-value', // CSS Modules pattern\n ];\n\n for (const pattern of displayValuePatterns) {\n if (className.includes(pattern) || parentClassName.includes(pattern)) {\n return true;\n }\n }\n\n // Check if element is inside a closed dropdown control (not an open menu)\n const inClosedControl = element.closest('[class*=\"-control\"]:not([class*=\"-menu\"])');\n const notInMenu = !element.closest('[role=\"listbox\"], [role=\"menu\"], [class*=\"-menu\"]');\n\n if (inClosedControl && notInMenu) {\n // Element is in a dropdown control but NOT in an open menu - it's a display value\n return true;\n }\n\n return false;\n }\n\n private static findDropdownOptionByText(text: string): HTMLElement | null {\n const normalizedText = text.toLowerCase().trim();\n\n // CRITICAL: Only look for options in OPEN dropdown menus\n // Exclude display values in closed dropdowns (singleValue, selectedValue, etc.)\n const menuSelectors = [\n '[role=\"listbox\"]',\n '[role=\"menu\"]',\n '[class*=\"-menu\"]:not([aria-hidden=\"true\"])', // React Select pattern\n '[class*=\"listbox\"]',\n '[class*=\"options-container\"]',\n ];\n\n // Classes that indicate a \"display value\" (NOT an option to click)\n const displayValueClasses = [\n 'singleValue', 'single-value', 'selectedValue', 'selected-value',\n 'placeholder', 'value-container', 'MuiSelect-select'\n ];\n\n for (const menuSelector of menuSelectors) {\n let menus: NodeListOf<Element>;\n try {\n menus = document.querySelectorAll(menuSelector);\n } catch (e) {\n continue;\n }\n\n for (const menu of menus) {\n const menuEl = menu as HTMLElement;\n // Skip hidden menus\n if (!HybridTargetResolver.isVisible(menuEl)) continue;\n // Skip menus that are too small (likely collapsed)\n const rect = menuEl.getBoundingClientRect();\n if (rect.height < 20) continue;\n\n // Look for actual options (not display values)\n const options = menu.querySelectorAll('[role=\"option\"], [class*=\"option\"]:not([class*=\"singleValue\"]):not([class*=\"placeholder\"])');\n for (const option of options) {\n const optionEl = option as HTMLElement;\n\n // Skip if this looks like a display value, not an option\n const className = optionEl.className || '';\n const isDisplayValue = displayValueClasses.some(cls => className.toLowerCase().includes(cls.toLowerCase()));\n if (isDisplayValue) {\n console.log(`[HybridTargetResolver] → Skipping display value: \"${optionEl.textContent?.trim().substring(0, 30)}...\"`);\n continue;\n }\n\n // Skip if not inside an actual menu (safety check)\n if (!optionEl.closest('[role=\"listbox\"], [role=\"menu\"], [class*=\"-menu\"]')) {\n continue;\n }\n\n const optionText = optionEl.textContent?.trim().toLowerCase() || '';\n if (optionText === normalizedText || optionText.includes(normalizedText)) {\n console.log(`[HybridTargetResolver] → Found ACTUAL option in open menu: \"${optionEl.textContent?.trim()}\"`);\n return optionEl;\n }\n }\n }\n }\n\n // If no option found in open menu, the dropdown might be closed\n // Log this so we know we need to open it first\n console.log(`[HybridTargetResolver] → No option \"${text}\" found in any open dropdown menu`);\n console.log(`[HybridTargetResolver] → The dropdown may need to be opened first`);\n\n return null;\n }\n\n /**\n * Find the remove button (X) for a multi-select chip by its text content.\n * Used for React Select isMulti and similar multi-select components.\n * \n * Structure: .multiValue > .label (contains text) + .removeButton (has X icon)\n */\n private static findMultiSelectChipRemoveButton(chipText: string): HTMLElement | null {\n const normalizedText = chipText.toLowerCase().trim();\n console.log(`[HybridTargetResolver] → Searching for multi-select chip: \"${chipText}\"`);\n\n // Multi-select chip container selectors (React Select and common patterns)\n const chipContainerSelectors = [\n '[class*=\"multiValue\"]', // React Select: css-tukwxc-multiValue\n '[class*=\"multi-value\"]', // Variations\n '[class*=\"chip\"]', // MUI, etc.\n '[class*=\"tag\"]', // Tag-based selectors\n '[data-tag]', // Data attribute pattern\n ];\n\n for (const containerSelector of chipContainerSelectors) {\n let chips: NodeListOf<Element>;\n try {\n chips = document.querySelectorAll(containerSelector);\n } catch (e) {\n continue;\n }\n\n for (const chip of chips) {\n const chipEl = chip as HTMLElement;\n\n // Skip invisible chips\n if (!this.isVisible(chipEl)) continue;\n\n // Get the text content of the chip (not the remove button)\n // Look for text in label/value container, not the whole chip\n const labelContainer = chipEl.querySelector('[class*=\"label\"], [class*=\"Label\"], span:first-of-type');\n const chipTextContent = labelContainer ?\n (labelContainer.textContent || '').trim().toLowerCase() :\n (chipEl.textContent || '').replace(/×|✕|x/gi, '').trim().toLowerCase();\n\n // Check if this chip's text matches\n if (chipTextContent === normalizedText || chipTextContent.includes(normalizedText) || normalizedText.includes(chipTextContent)) {\n console.log(`[HybridTargetResolver] → Found chip with text: \"${chipEl.textContent?.trim().substring(0, 30)}...\"`);\n\n // Find the remove button inside this chip\n // React Select uses [role=\"button\"] or a div with X icon\n const removeButtonSelectors = [\n '[role=\"button\"]', // React Select pattern\n '[class*=\"remove\"]', // Generic remove class\n '[class*=\"Remove\"]', // Capitalized\n '[class*=\"clear\"]', // Clear button\n '[class*=\"delete\"]', // Delete button\n '[aria-label*=\"Remove\"]', // ARIA label\n '[aria-label*=\"remove\"]',\n '[aria-label*=\"Delete\"]',\n '[aria-label*=\"delete\"]',\n 'button', // Generic button\n 'svg', // Just the icon (if no wrapper)\n ];\n\n for (const btnSelector of removeButtonSelectors) {\n const removeBtn = chipEl.querySelector(btnSelector) as HTMLElement;\n if (removeBtn && this.isVisible(removeBtn)) {\n console.log(`[HybridTargetResolver] → Found remove button: <${removeBtn.tagName.toLowerCase()}> with selector \"${btnSelector}\"`);\n return removeBtn;\n }\n }\n\n // Fallback: if chip has a click handler to remove itself\n // (some implementations use the entire chip as clickable to remove)\n console.log(`[HybridTargetResolver] → No specific remove button found, returning chip container`);\n return chipEl;\n }\n }\n }\n\n console.log(`[HybridTargetResolver] → No chip found with text: \"${chipText}\"`);\n return null;\n }\n\n /**\n * Find combobox by associated label\n */\n private static findComboboxByLabel(labelText: string): HTMLElement | null {\n const normalizedSearch = labelText.toLowerCase().trim();\n\n // Helper for word-boundary matching\n const matchesLabel = (text: string): boolean => {\n const normalized = text.toLowerCase().trim().replace(/\\*$/, '').trim();\n if (normalized === normalizedSearch) return true;\n // Word boundary check - avoid \"Label\" matching \"Labels\"\n const regex = new RegExp(`(^|\\\\s)${normalizedSearch.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}($|\\\\s|[:\\\\*\\\\?\\\\.\\\\,])`, 'i');\n return regex.test(text);\n };\n\n // Strategy 1: Find via label[for] → element[id]\n const labels = document.querySelectorAll('label[for]');\n for (const label of labels) {\n if (matchesLabel(label.textContent || '')) {\n const forId = label.getAttribute('for');\n if (forId) {\n const element = document.getElementById(forId);\n if (element && (element.getAttribute('role') === 'combobox' || element.getAttribute('aria-haspopup') === 'listbox')) {\n console.log(`[HybridTargetResolver] → Found combobox via label[for]: \"${labelText}\"`);\n return element as HTMLElement;\n }\n }\n }\n }\n\n // Strategy 2: Find via aria-labelledby\n const comboboxes = document.querySelectorAll('input[role=\"combobox\"], button[aria-haspopup=\"listbox\"], [role=\"combobox\"]');\n for (const combobox of comboboxes) {\n const labelledBy = combobox.getAttribute('aria-labelledby');\n if (labelledBy) {\n const labelEl = document.getElementById(labelledBy.split(/\\s+/)[0]);\n if (labelEl && matchesLabel(labelEl.textContent || '')) {\n console.log(`[HybridTargetResolver] → Found combobox via aria-labelledby: \"${labelText}\"`);\n return combobox as HTMLElement;\n }\n }\n }\n\n // Strategy 3: Container-based search (generic, not framework-specific)\n const allLabels = document.querySelectorAll('label');\n for (const label of allLabels) {\n if (matchesLabel(label.textContent || '')) {\n // Find closest form-like container\n const container = label.closest('fieldset, [role=\"group\"], form > div, [class*=\"form\"], [class*=\"field\"]')\n || label.parentElement;\n if (container) {\n const combobox = container.querySelector('input[role=\"combobox\"], button[aria-haspopup=\"listbox\"], [role=\"combobox\"]') as HTMLElement;\n if (combobox && this.isElementVisible(combobox)) {\n console.log(`[HybridTargetResolver] → Found combobox in label container: \"${labelText}\"`);\n return combobox;\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Helper: Check if element is visible\n */\n private static isElementVisible(el: HTMLElement): boolean {\n const rect = el.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return false;\n if (!el.offsetParent) {\n try {\n const style = window.getComputedStyle(el);\n if (style.position !== 'fixed' && style.position !== 'sticky') return false;\n } catch { return false; }\n }\n return true;\n }\n\n /**\n * Find an element matching selector that is associated with given label text\n * This handles cases like: selector=\"input[role='combobox']\", text=\"Label\"\n * We want to find the combobox that has \"Label\" as its label, not some other element with \"Label\" text\n */\n private static findElementByLabelText(labelText: string, selector: string): HTMLElement | null {\n // Normalize escaped characters in selector (server may send escaped quotes/spaces)\n const normalizedSelector = selector\n .replace(/\\\\\"/g, '\"') // Unescape quotes: \\\" -> \"\n .replace(/\\\\ /g, ' ') // Unescape spaces: \\ -> (space)\n .replace(/\\\\\\\\/g, '\\\\'); // Unescape backslashes: \\\\ -> \\\n\n // Strip virtual attributes (data-label, data-option-text, etc.) that aren't in the actual DOM\n const cleanSelector = normalizedSelector\n .replace(/\\[data-label=\"[^\"]*\"\\]/g, '')\n .replace(/\\[data-option-text=\"[^\"]*\"\\]/g, '')\n .replace(/\\[data-index=\"[^\"]*\"\\]/g, '')\n .trim();\n\n // Skip if selector is too generic to be meaningful\n // Check for generic tag-only selectors (but allow role-based selectors like [role=\"combobox\"])\n const selectorLower = cleanSelector.toLowerCase().trim();\n const genericPatterns = ['*', 'div', 'span', 'p', 'a', 'li', 'ul', 'section', 'article'];\n const isRoleBasedSelector = /\\[role=/.test(cleanSelector);\n if (genericPatterns.includes(selectorLower) && !isRoleBasedSelector) {\n return null;\n }\n\n // Find all elements matching the selector\n let selectorElements: NodeListOf<Element>;\n try {\n selectorElements = document.querySelectorAll(cleanSelector);\n } catch (e) {\n console.warn(`[HybridTargetResolver] → Invalid selector: \"${cleanSelector}\"`);\n return null;\n }\n\n if (selectorElements.length === 0) {\n return null;\n }\n\n console.log(`[HybridTargetResolver] → Looking for \"${cleanSelector}\" associated with label \"${labelText}\"`);\n console.log(`[HybridTargetResolver] → Found ${selectorElements.length} elements matching selector`);\n\n const normalizedLabel = labelText.toLowerCase().trim();\n\n // Helper: Escape regex special characters\n function escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n // Helper: Check if label text matches (exact or word boundary)\n const labelMatches = (text: string): boolean => {\n // Clean and normalize the label text (remove trailing * for required fields)\n const normalized = text.toLowerCase().trim().replace(/\\*$/, '').trim();\n // Exact match\n if (normalized === normalizedLabel) return true;\n // Word boundary match - \"Label\" matches \"Label:\", \"Label.\", \"Label,\" but not \"Labels\" or \"MyLabel\"\n // Handles common punctuation: : * ? . , ) ] } - and whitespace/end of string\n const wordBoundaryRegex = new RegExp(\n `(^|\\\\s)${escapeRegex(normalizedLabel)}($|\\\\s|[:\\\\*\\\\?\\\\.\\\\,\\\\)\\\\]\\\\}\\\\-])`,\n 'i'\n );\n return wordBoundaryRegex.test(text);\n };\n\n // Helper: Check if element is visible\n const isVisible = (el: Element): boolean => {\n const htmlEl = el as HTMLElement;\n const rect = htmlEl.getBoundingClientRect();\n // Check if element has dimensions\n if (rect.width === 0 || rect.height === 0) return false;\n // Check offsetParent (null means hidden, except for fixed/sticky positioned elements)\n if (!htmlEl.offsetParent) {\n // Check computed style for position: fixed or sticky\n try {\n const computedStyle = window.getComputedStyle(htmlEl);\n const position = computedStyle.position;\n if (position !== 'fixed' && position !== 'sticky') {\n return false;\n }\n } catch (e) {\n return false;\n }\n }\n return true;\n };\n\n for (const el of selectorElements) {\n // Skip invisible elements\n if (!isVisible(el)) continue;\n\n // Check various ways an element can be associated with a label\n\n // 1. Check for label element with 'for' attribute (most reliable)\n const inputId = el.getAttribute('id');\n if (inputId) {\n try {\n const labelFor = document.querySelector(`label[for=\"${CSS.escape(inputId)}\"]`);\n if (labelFor && labelMatches(labelFor.textContent || '')) {\n console.log(`[HybridTargetResolver] → Found via label[for] attribute`);\n return el as HTMLElement;\n }\n } catch (e) {\n // CSS.escape not supported or invalid id\n }\n }\n\n // 2. Check aria-labelledby (can have multiple space-separated IDs)\n const ariaLabelledBy = el.getAttribute('aria-labelledby');\n if (ariaLabelledBy) {\n // Split and filter out empty strings (from leading/trailing whitespace)\n const ids = ariaLabelledBy.split(/\\s+/).filter(id => id.length > 0);\n for (const id of ids) {\n const labelEl = document.getElementById(id);\n if (labelEl && labelMatches(labelEl.textContent || '')) {\n console.log(`[HybridTargetResolver] → Found via aria-labelledby`);\n return el as HTMLElement;\n }\n }\n }\n\n // 3. Check aria-label\n const ariaLabel = el.getAttribute('aria-label') || '';\n if (ariaLabel && labelMatches(ariaLabel)) {\n console.log(`[HybridTargetResolver] → Found via aria-label`);\n return el as HTMLElement;\n }\n\n // 4. Check placeholder\n const placeholder = el.getAttribute('placeholder') || '';\n if (placeholder && labelMatches(placeholder)) {\n console.log(`[HybridTargetResolver] → Found via placeholder`);\n return el as HTMLElement;\n }\n\n // 5. Check parent/ancestor container for label elements\n // Walk up to find a form-field-like container\n let container = el.parentElement;\n let depth = 0;\n while (container && depth < 6) {\n // Get all inputs in this container once (for performance)\n const siblingInputs = container.querySelectorAll('input, select, textarea, [role=\"combobox\"], [role=\"listbox\"]');\n const siblingInputsArray = Array.from(siblingInputs);\n const elInContainer = siblingInputsArray.includes(el as Element);\n\n // Check if this container looks like a form field wrapper (prioritize these)\n const isFormField =\n container.classList.contains('MuiFormControl-root') ||\n container.tagName === 'FIELDSET' ||\n /form(-|_)?(field|group|control|item|row)/i.test(container.className) ||\n // React pattern: div containing both a label-like child and an input wrapper\n (container.childElementCount >= 2 && container.childElementCount <= 5);\n\n // PASS 1: Look for explicit label elements\n // Comprehensive selector including any class with \"label\" in it\n const labels = container.querySelectorAll(\n 'label, ' +\n '[class*=\"label\"]:not(input):not(select):not(textarea):not([role=\"combobox\"]), ' +\n '.MuiFormLabel-root, ' +\n '[class*=\"FormLabel\"], ' +\n '[class*=\"form-label\"], ' +\n '[class*=\"field-label\"]'\n );\n\n for (const label of labels) {\n // Skip labels that are inside the input element itself\n if (el.contains(label) || label.contains(el)) continue;\n // Skip labels that have input/select inside them (wrapper labels)\n if ((label as Element).querySelector('input, select, textarea, [role=\"combobox\"]')) continue;\n // Skip if text is too long (likely a description, not a label)\n const labelText = label.textContent?.trim() || '';\n if (labelText.length > 50) continue;\n\n if (labelMatches(labelText)) {\n // If only one input in container, it must be ours\n if (siblingInputs.length === 1 && elInContainer) {\n console.log(`[HybridTargetResolver] → Found via label in container: \"${labelText}\"`);\n return el as HTMLElement;\n }\n // If multiple inputs, use position-based association\n if (elInContainer && this.isTextNearElement(label as HTMLElement, el as HTMLElement, siblingInputsArray)) {\n console.log(`[HybridTargetResolver] → Found via label position: \"${labelText}\"`);\n return el as HTMLElement;\n }\n }\n }\n\n // PASS 2: Fallback - Look for ANY text elements near the input\n // This handles divs/spans without \"label\" class but with the text we need\n // Only do this for containers that look like form fields (avoid false positives)\n if (isFormField || depth >= 3) {\n const textElements = container.querySelectorAll(\n ':scope > div, :scope > span, :scope > p, ' +\n ':scope > div > div, :scope > div > span, :scope > div > p'\n );\n\n for (const textEl of textElements) {\n // Skip if it contains inputs\n if ((textEl as Element).querySelector('input, select, textarea, [role=\"combobox\"]')) continue;\n // Skip the input container itself\n if (textEl.contains(el) || el.contains(textEl)) continue;\n // Skip if it's likely a value display (has same text as input value)\n const elValue = (el as HTMLInputElement).value || '';\n if (elValue && textEl.textContent?.trim() === elValue) continue;\n\n const textContent = textEl.textContent?.trim() || '';\n // Text should be short (1-30 chars) and match our label\n if (textContent.length > 0 && textContent.length <= 30 && labelMatches(textContent)) {\n if (siblingInputs.length === 1 && elInContainer) {\n console.log(`[HybridTargetResolver] → Found via nearby text: \"${textContent}\"`);\n return el as HTMLElement;\n }\n // Position-based check for multiple inputs\n if (elInContainer && this.isTextNearElement(textEl as HTMLElement, el as HTMLElement, siblingInputsArray)) {\n console.log(`[HybridTargetResolver] → Found via nearby text (position): \"${textContent}\"`);\n return el as HTMLElement;\n }\n }\n }\n }\n\n container = container.parentElement;\n depth++;\n }\n }\n\n return null;\n }\n\n /**\n * Escape text for use in XPath queries\n * Handles quotes, newlines, and normalizes whitespace\n */\n private static escapeXPathString(str: string): string {\n // Normalize whitespace (XPath normalize-space does this too, but be safe)\n // Replace newlines/tabs with spaces, collapse multiple spaces\n const normalized = str.replace(/[\\n\\r\\t]+/g, ' ').replace(/\\s+/g, ' ').trim();\n\n // If string contains both quote types, use concat()\n if (normalized.includes('\"') && normalized.includes(\"'\")) {\n // Split by double quotes and rejoin with concat\n const parts = normalized.split('\"');\n const escaped = parts.map((part, i) => {\n if (i === parts.length - 1) return `\"${part}\"`;\n return `\"${part}\", '\"'`;\n }).join(', ');\n return `concat(${escaped})`;\n }\n // If string contains double quotes, wrap in single quotes\n if (normalized.includes('\"')) {\n return `'${normalized}'`;\n }\n // Default: wrap in double quotes\n return `\"${normalized}\"`;\n }\n\n /**\n * Escape regex special characters in a string\n * Used to safely insert dynamic text into regex patterns\n */\n private static escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n }\n\n /**\n * Strategy: Find by text content using XPath\n * Prioritizes finding the most specific (smallest/deepest) element\n * \n * KEY PRINCIPLE: Exact text match wins over partial match\n * \"Label\" should match \"Label\", not \"Labels\"\n * \n * When selector is provided, uses it to find associated elements\n */\n private static findByText(text?: string, tag?: string, selector?: string): HTMLElement | null {\n if (!text) return null;\n\n // Normalize the text for comparison\n const trimmedText = text.trim();\n if (!trimmedText) return null; // Handle whitespace-only input\n\n const normalizedText = trimmedText.toLowerCase();\n const tagSelector = tag || '*';\n const escapedText = this.escapeXPathString(trimmedText);\n\n // PRIORITY 0: If we have a selector hint, try to find the element associated with that label\n // This handles cases like clicking a dropdown that has \"Label\" as its label text\n if (selector) {\n const associatedElement = this.findElementByLabelText(trimmedText, selector);\n if (associatedElement) {\n console.log(`[HybridTargetResolver] → Found element matching selector \"${selector}\" associated with label \"${trimmedText}\"`);\n return associatedElement;\n }\n }\n\n // PRIORITY 1: Try EXACT text match first (prevents \"Label\" matching \"Labels\")\n const exactXpath = `//${tagSelector}[normalize-space(text())=${escapedText}]`;\n console.log(`[HybridTargetResolver] → XPath exact query: ${exactXpath}`);\n\n let exactResult: XPathResult;\n try {\n exactResult = document.evaluate(\n exactXpath,\n document,\n null,\n XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,\n null\n );\n } catch (e) {\n console.warn(`[HybridTargetResolver] → XPath query failed:`, e);\n exactResult = { snapshotLength: 0, snapshotItem: () => null } as unknown as XPathResult;\n }\n\n if (exactResult.snapshotLength > 0) {\n console.log(`[HybridTargetResolver] → Found ${exactResult.snapshotLength} exact match(es), checking visibility...`);\n\n // Find first visible element that's NOT a dropdown display value\n let firstVisibleNode: HTMLElement | null = null;\n let firstNode: HTMLElement | null = null;\n\n for (let i = 0; i < exactResult.snapshotLength; i++) {\n const node = exactResult.snapshotItem(i) as HTMLElement;\n if (!firstNode) firstNode = node;\n\n // CRITICAL: Skip dropdown display values (singleValue, selectedValue, placeholder)\n // These show the currently selected value, NOT an actual clickable option\n if (this.isDropdownDisplayValue(node)) {\n console.log(`[HybridTargetResolver] → Skipping display value (not an option): \"${node.textContent?.trim().substring(0, 30)}...\"`);\n continue;\n }\n\n const rect = node.getBoundingClientRect();\n if (rect.width > 0 && rect.height > 0) {\n firstVisibleNode = node;\n console.log(`[HybridTargetResolver] → Returning visible match ${i}: \"${node.textContent?.trim().substring(0, 30)}...\"`);\n break;\n }\n }\n\n // Return first visible, or first node if none visible\n if (firstVisibleNode) {\n return firstVisibleNode;\n }\n if (firstNode && !this.isDropdownDisplayValue(firstNode)) {\n console.log(`[HybridTargetResolver] → No visible matches, returning first (possibly hidden) element`);\n return firstNode;\n }\n }\n console.log(`[HybridTargetResolver] → No exact match, trying partial match...`);\n\n // PRIORITY 2: Try partial match XPath - but prefer word boundary matches and closer text matches\n const partialXpath = `//${tagSelector}[contains(normalize-space(text()), ${escapedText})]`;\n console.log(`[HybridTargetResolver] → XPath partial query: ${partialXpath}`);\n\n let partialResult: XPathResult;\n try {\n partialResult = document.evaluate(\n partialXpath,\n document,\n null,\n XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,\n null\n );\n } catch (e) {\n console.warn(`[HybridTargetResolver] → XPath partial query failed:`, e);\n partialResult = { snapshotLength: 0, snapshotItem: () => null } as unknown as XPathResult;\n }\n\n if (partialResult.snapshotLength > 0) {\n // For partial matches, use the selector's structure to guide matching (GENERIC approach)\n // 1. Word boundary matches (e.g., \"Connect\" matches \"Connect\" button, not \"Connectivity\")\n // 2. Elements where text is closer to search text (higher ratio)\n // 3. Elements that match the expected parent structure from the selector\n let bestMatch: HTMLElement | null = null;\n let bestScore = -1;\n\n // Extract expected DOM structure from the selector (GENERIC - no hardcoded words)\n const selectorContext = selector ? this.extractSelectorContext(selector) : {};\n const hasParentContext = !!(selectorContext.parentTag || selectorContext.parentSelector);\n\n console.log(`[HybridTargetResolver] → Selector context: parentTag=\"${selectorContext.parentTag || 'none'}\", expectedTag=\"${selectorContext.expectedTag || 'none'}\"`);\n\n for (let i = 0; i < partialResult.snapshotLength; i++) {\n const node = partialResult.snapshotItem(i) as HTMLElement;\n const nodeText = (node.textContent || '').trim();\n // Avoid division by zero\n if (nodeText.length === 0) continue;\n\n const nodeTextLower = nodeText.toLowerCase();\n const ratio = normalizedText.length / nodeTextLower.length;\n const rect = node.getBoundingClientRect();\n\n // Skip invisible elements\n if (rect.width === 0 || rect.height === 0) continue;\n\n // Skip dropdown display values\n if (this.isDropdownDisplayValue(node)) continue;\n\n let score = ratio; // Start with text ratio\n\n // Check for word boundary match (prefer exact word matches)\n const wordBoundaryRegex = new RegExp(`\\\\b${HybridTargetResolver.escapeRegex(normalizedText)}\\\\b`, 'i');\n const isWordBoundary = wordBoundaryRegex.test(nodeTextLower);\n\n if (isWordBoundary) {\n // Word boundary match gets significant boost\n score += 0.5;\n } else if (ratio < 0.5) {\n // Very low ratio (e.g., \"Connect\" in \"Set Up Connectivity\")\n // If we have parent context from selector, only accept elements matching that context\n if (hasParentContext) {\n const contextScore = this.matchesSelectorContext(node, selectorContext);\n if (contextScore < 0.5) {\n // Doesn't match expected structure - skip\n console.log(`[HybridTargetResolver] → Skipping low ratio match that doesn't match selector context: \"${nodeText.slice(0, 30)}...\"`);\n continue;\n }\n } else {\n // No selector context, low ratio - skip (can't reliably identify correct element)\n console.log(`[HybridTargetResolver] → Skipping low ratio match (${ratio.toFixed(2)}): \"${nodeText.slice(0, 30)}...\"`);\n continue;\n }\n }\n\n // GENERIC: Boost elements that match the expected DOM structure from selector\n if (hasParentContext) {\n const contextScore = this.matchesSelectorContext(node, selectorContext);\n score += contextScore * 0.3; // Up to 0.3 bonus for matching selector context\n }\n\n if (score > bestScore) {\n bestScore = score;\n bestMatch = node;\n }\n }\n\n if (bestMatch) {\n console.log(`[HybridTargetResolver] → XPath partial match found (score=${bestScore.toFixed(2)})!`);\n return bestMatch;\n }\n }\n console.log(`[HybridTargetResolver] → XPath found nothing, trying fallback...`);\n\n // Fallback: Find the MOST SPECIFIC element containing the text\n // This prevents matching parent containers that include child text\n const allElements = document.querySelectorAll(tag || '*');\n console.log(`[HybridTargetResolver] → Fallback: checking ${allElements.length} <${tag || '*'}> elements for text \"${trimmedText}\"`);\n\n // Helper to check if element should be skipped (root containers + SDK widgets)\n const shouldSkipEl = (el: Element): boolean => {\n const htmlEl = el as HTMLElement;\n // Skip SDK widget elements\n if (isSDKWidget(htmlEl)) return true;\n // Skip root containers\n return htmlEl.id === 'root' || htmlEl.id === 'app' || htmlEl.id === '__next' ||\n htmlEl.tagName === 'BODY' || htmlEl.tagName === 'HTML';\n };\n\n // PRIORITY 1: Exact text match - use textContent first (faster), verify with innerText\n // Note: textContent includes hidden text, innerText is rendered text only\n // We use textContent for initial filter, then verify visibility\n for (const el of allElements) {\n if (shouldSkipEl(el)) continue;\n // Quick filter with textContent (fast)\n const textContent = el.textContent?.trim().toLowerCase() || '';\n if (textContent !== normalizedText) continue;\n\n // Verify element is visible and has matching rendered text\n const rect = (el as HTMLElement).getBoundingClientRect();\n if (rect.width > 0 && rect.height > 0) {\n // Double-check with innerText for exact rendered text match\n // (only called for elements that pass textContent filter)\n const innerText = (el as HTMLElement).innerText?.trim().toLowerCase() || '';\n if (innerText === normalizedText) {\n console.log(`[HybridTargetResolver] → Found via exact text match`);\n return el as HTMLElement;\n }\n }\n }\n\n // PRIORITY 2: Find smallest/most specific element where textContent matches\n // Prefer elements with higher text match ratio (text length / element text length)\n let bestMatch: HTMLElement | null = null;\n let bestScore = -Infinity;\n\n for (const el of allElements) {\n if (shouldSkipEl(el)) continue;\n\n const elementText = el.textContent?.trim().toLowerCase() || '';\n // Skip empty elements to avoid division by zero\n if (elementText.length === 0) continue;\n\n if (elementText.includes(normalizedText)) {\n const textLengthRatio = normalizedText.length / elementText.length;\n const rect = (el as HTMLElement).getBoundingClientRect();\n const area = rect.width * rect.height;\n\n // Skip very large containers and invisible elements\n if (area > 0 && area < 500000) {\n // Score: prefer smaller elements with higher text match ratio\n const sizeBonus = Math.max(0, 50 - (area / 10000));\n const specificityBonus = textLengthRatio * 50;\n const score = sizeBonus + specificityBonus;\n\n if (score > bestScore) {\n bestScore = score;\n bestMatch = el as HTMLElement;\n }\n }\n }\n }\n\n if (bestMatch) {\n const rect = bestMatch.getBoundingClientRect();\n console.log(`[HybridTargetResolver] → Found via textContent (${rect.width.toFixed(0)}x${rect.height.toFixed(0)}px, score=${bestScore.toFixed(0)})`);\n return bestMatch;\n }\n\n return null;\n }\n\n /**\n * Strategy: Find by ARIA label\n */\n private static findByAriaLabel(ariaLabel?: string): HTMLElement | null {\n if (!ariaLabel) return null;\n\n // Try exact match first\n let el = document.querySelector(`[aria-label=\"${ariaLabel}\"]`) as HTMLElement;\n if (el) {\n console.log(`[HybridTargetResolver] → Found via exact aria-label match`);\n return el;\n }\n\n // Try case-insensitive contains match\n const elements = document.querySelectorAll('[aria-label]');\n console.log(`[HybridTargetResolver] → Checking ${elements.length} elements with aria-label`);\n\n for (const element of elements) {\n const label = element.getAttribute('aria-label') || '';\n if (label.toLowerCase().includes(ariaLabel.toLowerCase())) {\n console.log(`[HybridTargetResolver] → Found via partial aria-label match: \"${label}\"`);\n return element as HTMLElement;\n }\n }\n\n return null;\n }\n\n /**\n * Strategy: Find by placeholder text\n */\n private static findByPlaceholder(placeholder?: string): HTMLElement | null {\n if (!placeholder) return null;\n\n // Try exact match\n let el = document.querySelector(`[placeholder=\"${placeholder}\"]`) as HTMLElement;\n if (el) {\n console.log(`[HybridTargetResolver] → Found via exact placeholder match`);\n return el;\n }\n\n // Try case-insensitive contains match\n const inputs = document.querySelectorAll('input, textarea');\n console.log(`[HybridTargetResolver] → Checking ${inputs.length} input/textarea elements`);\n\n for (const input of inputs) {\n const ph = input.getAttribute('placeholder') || '';\n if (ph.toLowerCase().includes(placeholder.toLowerCase())) {\n console.log(`[HybridTargetResolver] → Found via partial placeholder match: \"${ph}\"`);\n return input as HTMLElement;\n }\n }\n\n return null;\n }\n\n /**\n * Strategy: Find by ARIA role (with optional text filter)\n */\n private static findByRole(role?: string, text?: string): HTMLElement | null {\n if (!role) return null;\n\n const elements = document.querySelectorAll(`[role=\"${role}\"]`);\n console.log(`[HybridTargetResolver] → Found ${elements.length} elements with role=\"${role}\"`);\n\n if (text) {\n // Filter by text content if provided\n for (const el of elements) {\n const elementText = el.textContent?.trim() || '';\n if (elementText.toLowerCase().includes(text.toLowerCase())) {\n console.log(`[HybridTargetResolver] → Found role element with matching text`);\n return el as HTMLElement;\n }\n }\n }\n\n return elements[0] as HTMLElement || null;\n }\n\n /**\n * Strategy: Find by tag name (with optional text filter)\n */\n private static findByTag(tag?: string, text?: string): HTMLElement | null {\n if (!tag) return null;\n\n const elements = document.getElementsByTagName(tag);\n console.log(`[HybridTargetResolver] → Found ${elements.length} <${tag}> elements`);\n\n if (text) {\n const normalizedSearch = text.toLowerCase().trim();\n let exactMatch: HTMLElement | null = null;\n let closeMatch: HTMLElement | null = null;\n let closeMatchRatio = 0;\n\n // STRICT MATCHING: Only accept exact or very close matches\n // This prevents selecting wrong elements with similar text\n for (const el of elements) {\n const htmlEl = el as HTMLElement;\n\n // Skip common container elements\n if (htmlEl.id === 'root' || htmlEl.id === 'app' ||\n htmlEl.tagName === 'BODY' || htmlEl.tagName === 'HTML') {\n continue;\n }\n\n // Skip hidden elements (BODY already filtered above)\n if (!HybridTargetResolver.isVisible(htmlEl)) {\n continue;\n }\n\n // Skip elements that are too large (likely containers)\n const textLength = htmlEl.innerText?.length || 0;\n if (textLength > 200) { // Reduced from 500 to be stricter\n continue;\n }\n\n const elementText = htmlEl.innerText?.trim() || '';\n const normalizedElement = elementText.toLowerCase();\n\n // EXACT match is best\n if (normalizedElement === normalizedSearch) {\n console.log(`[HybridTargetResolver] → Found exact match: \"${elementText.substring(0, 50)}...\"`);\n exactMatch = htmlEl;\n break; // Exact match found, stop searching\n }\n\n // CLOSE match: element text must be at least 70% of search text\n // (prevents matching \"Settings\" when looking for \"Cloud Accounts Settings Page\")\n if (normalizedElement.includes(normalizedSearch)) {\n const ratio = normalizedSearch.length / normalizedElement.length;\n if (ratio > 0.7 && ratio > closeMatchRatio) {\n closeMatch = htmlEl;\n closeMatchRatio = ratio;\n }\n }\n }\n\n if (exactMatch) {\n return exactMatch;\n }\n\n if (closeMatch) {\n const matchText = closeMatch.innerText?.trim().substring(0, 50) || '';\n console.log(`[HybridTargetResolver] → Found close match (${(closeMatchRatio * 100).toFixed(0)}%): \"${matchText}...\"`);\n return closeMatch;\n }\n\n console.log(`[HybridTargetResolver] → No matching <${tag}> found for text \"${text}\"`);\n return null;\n }\n\n // No text specified - tag-only strategy is too dangerous for generic tags\n // Only use it for specific, identifiable tags (buttons, links)\n if (tag === 'div' || tag === 'span') {\n // Generic tags without text are EXTREMELY ambiguous\n // The page has hundreds of divs - don't just return the first one!\n console.log(`[HybridTargetResolver] → REFUSING to blindly return first <${tag}> - too ambiguous without text`);\n return null;\n }\n\n // For more specific tags (button, a, input), find first visible non-container\n for (const el of elements) {\n const htmlEl = el as HTMLElement;\n // Skip root containers\n if (htmlEl.id === 'root' || htmlEl.id === 'app' ||\n htmlEl.tagName === 'BODY' || htmlEl.tagName === 'HTML' ||\n htmlEl.classList.contains('App')) {\n continue;\n }\n // Skip very large elements (containers)\n const rect = htmlEl.getBoundingClientRect();\n if (rect.width > 500 && rect.height > 500) {\n continue;\n }\n // Must be visible\n if (rect.width > 0 && rect.height > 0) {\n return htmlEl;\n }\n }\n return null;\n }\n\n /**\n * Helper: Check if element is visible in viewport\n */\n static isVisible(element: HTMLElement): boolean {\n const rect = element.getBoundingClientRect();\n const style = window.getComputedStyle(element);\n\n return (\n rect.width > 0 &&\n rect.height > 0 &&\n style.display !== 'none' &&\n style.visibility !== 'hidden' &&\n style.opacity !== '0'\n );\n }\n\n /**\n * Helper: Scroll element into view smoothly\n */\n static scrollIntoView(element: HTMLElement, options?: ScrollIntoViewOptions): void {\n console.log('[HybridTargetResolver] 📜 Scrolling element into view');\n element.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n ...options\n });\n }\n\n /**\n * Helper: Wait for element position to stabilize (stop moving)\n * This is critical for avoiding click misses during scroll/animation\n * \n * Returns the final stable position, or null if element disappeared\n */\n static async waitForPositionStability(\n element: HTMLElement,\n maxWaitMs: number = 1000,\n checkIntervalMs: number = 50,\n stabilityThresholdPx: number = 2\n ): Promise<DOMRect | null> {\n console.log('[HybridTargetResolver] ⏳ Waiting for element position stability...');\n\n let lastRect = element.getBoundingClientRect();\n let stableCount = 0;\n const requiredStableChecks = 3; // Must be stable for 3 consecutive checks\n const startTime = Date.now();\n\n while (Date.now() - startTime < maxWaitMs) {\n await new Promise(r => setTimeout(r, checkIntervalMs));\n\n const currentRect = element.getBoundingClientRect();\n\n // Check if element is still visible\n if (currentRect.width === 0 || currentRect.height === 0) {\n console.warn('[HybridTargetResolver] ⚠️ Element disappeared during stability check');\n return null;\n }\n\n // Check if position is stable (within threshold)\n const xDiff = Math.abs(currentRect.x - lastRect.x);\n const yDiff = Math.abs(currentRect.y - lastRect.y);\n\n if (xDiff < stabilityThresholdPx && yDiff < stabilityThresholdPx) {\n stableCount++;\n if (stableCount >= requiredStableChecks) {\n console.log(`[HybridTargetResolver] ✅ Element position stable at (${currentRect.x.toFixed(0)}, ${currentRect.y.toFixed(0)}) after ${Date.now() - startTime}ms`);\n return currentRect;\n }\n } else {\n // Position changed, reset stability counter\n stableCount = 0;\n console.log(`[HybridTargetResolver] 📍 Element still moving: (${lastRect.x.toFixed(0)}, ${lastRect.y.toFixed(0)}) → (${currentRect.x.toFixed(0)}, ${currentRect.y.toFixed(0)})`);\n }\n\n lastRect = currentRect;\n }\n\n console.warn(`[HybridTargetResolver] ⚠️ Position stability timeout after ${maxWaitMs}ms`);\n return element.getBoundingClientRect();\n }\n\n /**\n * Helper: Re-resolve and verify element is still the same\n * Returns the fresh element reference, or null if changed/missing\n * \n * CRITICAL: When re-resolving, we MUST exclude position-dependent properties\n * (domIndex, boundingBox) because the page may have scrolled/changed since\n * the server captured those values. However, we preserve stable disambiguators\n * (labelText, optionText, name, removeChipText, dropdownTriggerSelector, selectedValues)\n * to maintain re-resolution accuracy on complex forms.\n */\n static reResolveAndVerify(\n originalTarget: HybridTarget,\n originalElement: HTMLElement\n ): HTMLElement | null {\n // CRITICAL FIX: Create a modified target WITHOUT position-dependent properties\n // The server's domIndex and boundingBox become stale after page scroll/animation\n // But preserve stable disambiguators for better accuracy\n const positionIndependentTarget: HybridTarget = {\n text: originalTarget.text,\n selector: originalTarget.selector,\n selectorFallbacks: originalTarget.selectorFallbacks,\n tag: originalTarget.tag,\n ariaLabel: originalTarget.ariaLabel,\n placeholder: originalTarget.placeholder,\n role: originalTarget.role,\n // Preserve stable disambiguators (position-independent)\n labelText: originalTarget.labelText,\n optionText: originalTarget.optionText,\n name: originalTarget.name,\n removeChipText: originalTarget.removeChipText,\n dropdownTriggerSelector: originalTarget.dropdownTriggerSelector,\n selectedValues: originalTarget.selectedValues,\n // EXCLUDE: domIndex - becomes stale after DOM changes\n // EXCLUDE: boundingBox - becomes stale after scroll/animation\n // EXCLUDE: confidence - not relevant for re-resolution\n // Filter out position-dependent strategies (cast to handle server-sent values)\n strategy: originalTarget.strategy?.filter(s =>\n (s as string) !== 'boundingBox' && (s as string) !== 'domIndex'\n )\n };\n\n console.log('[HybridTargetResolver] 🔄 Re-resolving with position-independent target (no boundingBox/domIndex)');\n\n const freshElement = this.resolveTarget(positionIndependentTarget);\n\n if (!freshElement) {\n console.warn('[HybridTargetResolver] ⚠️ Re-resolution failed - element no longer found');\n return null;\n }\n\n // Verify it's the same element (or at least has same text)\n const originalText = originalElement.textContent?.trim().toLowerCase() || '';\n const freshText = freshElement.textContent?.trim().toLowerCase() || '';\n\n if (originalText !== freshText && originalText && freshText) {\n console.warn(`[HybridTargetResolver] ⚠️ Element changed during wait: \"${originalText}\" → \"${freshText}\"`);\n // Still return the fresh element as it matches the target better\n }\n\n return freshElement;\n }\n}\n\n/**\n * Canvas-based screenshot capture with PII redaction\n */\nclass CanvasScreenshotCapture {\n private piiPatterns: Record<string, RegExp>;\n\n constructor(customPatterns?: Record<string, RegExp>) {\n // Default PII patterns\n this.piiPatterns = {\n email: /[\\w.-]+@[\\w.-]+\\.\\w+/g,\n phone: /[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}/g,\n ssn: /\\d{3}-\\d{2}-\\d{4}/g,\n creditCard: /\\d{4}[\\s.-]?\\d{4}[\\s.-]?\\d{4}[\\s.-]?\\d{4}/g,\n ...customPatterns\n };\n }\n\n /**\n * Get all text nodes in the document\n */\n private getAllTextNodes(): { node: Node; rect: DOMRect }[] {\n const textNodes: { node: Node; rect: DOMRect }[] = [];\n const walker = document.createTreeWalker(\n document.body,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: (node) => {\n const parent = node.parentElement;\n if (!parent) return NodeFilter.FILTER_REJECT;\n\n // Skip invisible elements\n const style = window.getComputedStyle(parent);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return NodeFilter.FILTER_REJECT;\n }\n\n // Skip empty text\n if (!node.textContent || !node.textContent.trim()) {\n return NodeFilter.FILTER_REJECT;\n }\n\n return NodeFilter.FILTER_ACCEPT;\n }\n }\n );\n\n let node;\n while (node = walker.nextNode()) {\n const range = document.createRange();\n range.selectNode(node);\n const rect = range.getBoundingClientRect();\n\n if (rect.width > 0 && rect.height > 0) {\n textNodes.push({ node, rect });\n }\n }\n\n return textNodes;\n }\n\n /**\n * Check if text contains PII\n */\n private containsPII(text: string): { contains: boolean; type?: string } {\n for (const [type, pattern] of Object.entries(this.piiPatterns)) {\n if (pattern.test(text)) {\n return { contains: true, type };\n }\n }\n return { contains: false };\n }\n\n /**\n * Apply blur effect to a region on canvas\n */\n private applyBlur(ctx: CanvasRenderingContext2D, region: { x: number; y: number; width: number; height: number }) {\n // Get image data for the region\n const imageData = ctx.getImageData(region.x, region.y, region.width, region.height);\n const data = imageData.data;\n\n // Simple box blur\n const blurRadius = 5;\n for (let y = 0; y < region.height; y++) {\n for (let x = 0; x < region.width; x++) {\n let r = 0, g = 0, b = 0, a = 0;\n let count = 0;\n\n for (let dy = -blurRadius; dy <= blurRadius; dy++) {\n for (let dx = -blurRadius; dx <= blurRadius; dx++) {\n const nx = x + dx;\n const ny = y + dy;\n\n if (nx >= 0 && nx < region.width && ny >= 0 && ny < region.height) {\n const idx = (ny * region.width + nx) * 4;\n r += data[idx];\n g += data[idx + 1];\n b += data[idx + 2];\n a += data[idx + 3];\n count++;\n }\n }\n }\n\n const idx = (y * region.width + x) * 4;\n data[idx] = r / count;\n data[idx + 1] = g / count;\n data[idx + 2] = b / count;\n data[idx + 3] = a / count;\n }\n }\n\n ctx.putImageData(imageData, region.x, region.y);\n }\n\n /**\n * Capture screenshot with redaction\n */\n async captureWithRedaction(options: ScreenshotOptions = {}): Promise<string> {\n const {\n redact = true,\n scale = 0.6,\n quality = 0.7,\n format = 'webp'\n } = options;\n\n // Ensure document.body exists\n if (!document.body) {\n console.warn('[ScreenCapture] Document body not available');\n return '';\n }\n\n // Step 1: Identify PII regions if redaction is enabled\n const piiRegions: Array<{ x: number; y: number; width: number; height: number; type: string }> = [];\n\n if (redact) {\n const textNodes = this.getAllTextNodes();\n\n for (const { node, rect } of textNodes) {\n const piiCheck = this.containsPII(node.textContent || '');\n if (piiCheck.contains) {\n piiRegions.push({\n x: rect.left,\n y: rect.top,\n width: rect.width,\n height: rect.height,\n type: piiCheck.type || 'unknown'\n });\n }\n }\n }\n\n // Step 2: Create canvas and draw the page\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d')!;\n\n // Set canvas size\n const width = window.innerWidth * scale;\n const height = window.innerHeight * scale;\n canvas.width = width;\n canvas.height = height;\n\n // Use html2canvas for capturing (you'll need to load this library)\n // For now, we'll use a simpler approach\n return new Promise((resolve) => {\n // Create a temporary iframe to capture the current state\n const iframe = document.createElement('iframe');\n iframe.style.position = 'fixed';\n iframe.style.top = '0';\n iframe.style.left = '0';\n iframe.style.width = '100%';\n iframe.style.height = '100%';\n iframe.style.border = 'none';\n iframe.style.zIndex = '-999999';\n document.body.appendChild(iframe);\n\n // Clone the document into the iframe\n const clonedDoc = iframe.contentDocument!;\n clonedDoc.open();\n clonedDoc.write(document.documentElement.outerHTML);\n clonedDoc.close();\n\n // Apply redactions in the cloned document\n if (redact && piiRegions.length > 0) {\n const style = clonedDoc.createElement('style');\n style.textContent = `\n .pii-redacted {\n filter: blur(5px);\n background: #000;\n color: transparent !important;\n }\n `;\n clonedDoc.head.appendChild(style);\n\n // Mark PII elements for redaction - ensure body exists\n if (!clonedDoc.body) {\n console.warn('[ScreenCapture] Cloned document has no body');\n return canvas.toDataURL(`image/${format}`, quality);\n }\n\n const walker = clonedDoc.createTreeWalker(\n clonedDoc.body,\n NodeFilter.SHOW_TEXT\n );\n\n let node;\n while (node = walker.nextNode()) {\n const piiCheck = this.containsPII(node.textContent || '');\n if (piiCheck.contains && node.parentElement) {\n node.parentElement.classList.add('pii-redacted');\n }\n }\n }\n\n // Capture the iframe content\n setTimeout(() => {\n // Draw to canvas\n ctx.save();\n ctx.scale(scale, scale);\n\n // Apply blur to PII regions after drawing\n if (redact && piiRegions.length > 0) {\n piiRegions.forEach(region => {\n this.applyBlur(ctx, {\n x: region.x * scale,\n y: region.y * scale,\n width: region.width * scale,\n height: region.height * scale\n });\n });\n }\n\n // For demonstration, we'll return a data URL\n // In production, you'd use html2canvas or similar\n document.body.removeChild(iframe);\n\n // Return base64 encoded image\n resolve(canvas.toDataURL(`image/${format}`, quality));\n }, 100);\n });\n }\n\n /**\n * Simple screenshot without redaction (faster)\n */\n async captureSimple(options: ScreenshotOptions = {}): Promise<string> {\n return this.captureWithRedaction({ ...options, redact: false });\n }\n}\n\n/**\n * UI Overlay System for guidance and highlighting\n */\nclass OverlaySystem {\n private container: HTMLDivElement | null = null;\n private highlightEl: HTMLDivElement | null = null;\n private tooltipElement: HTMLDivElement | null = null;\n private floeCursor: HTMLDivElement | null = null;\n\n /**\n * Inject overlay into the page\n */\n inject() {\n if (this.container) return;\n\n this.container = document.createElement('div');\n this.container.id = 'onboarding-overlay';\n this.container.setAttribute(SDK_WIDGET_ATTR, 'overlay');\n this.container.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2147483647;\n `;\n\n document.body.appendChild(this.container);\n\n // Inject the Floe cursor\n this.injectFloeCursor();\n\n console.log('[OverlaySystem] Injected');\n }\n\n /**\n * Create and inject the Floe collaborative cursor - Premium Raycast-style design\n */\n private injectFloeCursor() {\n if (this.floeCursor) return;\n\n this.floeCursor = document.createElement('div');\n this.floeCursor.id = 'floe-cursor';\n this.floeCursor.setAttribute(SDK_WIDGET_ATTR, 'cursor');\n this.floeCursor.innerHTML = `\n <div class=\"floe-cursor-pointer\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <defs>\n <linearGradient id=\"cursorGradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" style=\"stop-color:#8b5cf6\"/>\n <stop offset=\"100%\" style=\"stop-color:#6366f1\"/>\n </linearGradient>\n </defs>\n <path d=\"M5.5 3L19.5 12L12 13.5L9 21L5.5 3Z\" fill=\"url(#cursorGradient)\" stroke=\"white\" stroke-width=\"1.5\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n <div class=\"floe-cursor-label\">\n <span class=\"floe-cursor-name\">Floe</span>\n </div>\n `;\n this.floeCursor.style.cssText = `\n position: fixed;\n top: -100px;\n left: -100px;\n pointer-events: none;\n z-index: 2147483646;\n display: flex;\n align-items: flex-start;\n gap: 4px;\n opacity: 0;\n transform: scale(0.8);\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1), transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, sans-serif;\n `;\n\n // Add styles for cursor - Clean and minimal\n const style = document.createElement('style');\n style.id = 'floe-cursor-styles';\n style.textContent = `\n .floe-cursor-pointer {\n position: relative;\n }\n #floe-cursor svg {\n filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));\n }\n .floe-cursor-label {\n background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);\n color: white;\n font-size: 11px;\n font-weight: 600;\n padding: 4px 10px;\n border-radius: 6px;\n margin-top: 4px;\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.4), 0 1px 3px rgba(0, 0, 0, 0.2);\n white-space: nowrap;\n letter-spacing: 0.02em;\n font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, sans-serif;\n }\n .floe-cursor-name {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n @keyframes floeCursorPulse {\n 0% { transform: scale(1); }\n 50% { transform: scale(1.05); }\n 100% { transform: scale(1); }\n }\n @keyframes floeCursorClick {\n 0% { transform: scale(1); }\n 30% { transform: scale(0.85); }\n 100% { transform: scale(1); }\n }\n `;\n document.head.appendChild(style);\n\n document.body.appendChild(this.floeCursor);\n console.log('[OverlaySystem] Floe cursor injected');\n }\n\n /**\n * Show the Floe cursor\n */\n showFloeCursor() {\n if (this.floeCursor) {\n this.floeCursor.style.opacity = '1';\n this.floeCursor.style.transform = 'scale(1)';\n }\n }\n\n /**\n * Hide the Floe cursor\n */\n hideFloeCursor() {\n if (this.floeCursor) {\n this.floeCursor.style.opacity = '0';\n this.floeCursor.style.transform = 'scale(0.8)';\n }\n }\n\n /**\n * Animate the Floe cursor to a position\n */\n animateFloeCursorTo(x: number, y: number, duration: number = 400): Promise<void> {\n return new Promise((resolve) => {\n if (!this.floeCursor) {\n resolve();\n return;\n }\n\n // Show cursor if hidden\n this.showFloeCursor();\n\n // Get current position\n const currentTop = parseFloat(this.floeCursor.style.top) || 0;\n const currentLeft = parseFloat(this.floeCursor.style.left) || 0;\n\n // Calculate easing animation\n const startTime = performance.now();\n const startX = currentLeft;\n const startY = currentTop;\n\n const animate = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n // Ease out cubic for smooth deceleration\n const easeProgress = 1 - Math.pow(1 - progress, 3);\n\n const newX = startX + (x - startX) * easeProgress;\n const newY = startY + (y - startY) * easeProgress;\n\n if (this.floeCursor) {\n this.floeCursor.style.left = `${newX}px`;\n this.floeCursor.style.top = `${newY}px`;\n }\n\n if (progress < 1) {\n requestAnimationFrame(animate);\n } else {\n resolve();\n }\n };\n\n requestAnimationFrame(animate);\n });\n }\n\n /**\n * Animate cursor click effect\n */\n animateFloeCursorClick(): Promise<void> {\n return new Promise((resolve) => {\n if (!this.floeCursor) {\n resolve();\n return;\n }\n\n const svg = this.floeCursor.querySelector('svg');\n\n if (svg) {\n // Animate the cursor pointer\n svg.style.animation = 'floeCursorClick 0.2s ease';\n\n setTimeout(() => {\n svg.style.animation = '';\n resolve();\n }, 200);\n } else {\n resolve();\n }\n });\n }\n\n /**\n * Move cursor to element and click\n */\n async moveToElementAndClick(element: HTMLElement): Promise<void> {\n const rect = element.getBoundingClientRect();\n const targetX = rect.left + rect.width / 2 - 5; // Offset for cursor tip\n const targetY = rect.top + rect.height / 2 - 5;\n\n // Animate cursor to element\n await this.animateFloeCursorTo(targetX, targetY, 500);\n\n // Small pause before click\n await new Promise(r => setTimeout(r, 100));\n\n // Click animation\n await this.animateFloeCursorClick();\n }\n\n /**\n * Show consent modal for screen sharing - Raycast style dark theme\n */\n showScreenShareModal(): Promise<boolean> {\n return new Promise((resolve) => {\n const modal = document.createElement('div');\n modal.setAttribute(SDK_WIDGET_ATTR, 'consent-modal');\n modal.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n backdrop-filter: blur(12px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2147483647;\n pointer-events: auto;\n animation: modalFadeIn 0.2s ease-out;\n font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, sans-serif;\n `;\n\n const content = document.createElement('div');\n content.style.cssText = `\n background: linear-gradient(180deg, rgba(32, 32, 36, 0.98) 0%, rgba(24, 24, 28, 0.99) 100%);\n border-radius: 20px;\n padding: 32px;\n max-width: 420px;\n width: 90%;\n border: 1px solid rgba(255, 255, 255, 0.08);\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 24px 48px rgba(0, 0, 0, 0.5), 0 12px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05);\n animation: modalSlideUp 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n `;\n\n content.innerHTML = `\n <style>\n @keyframes modalFadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n @keyframes modalSlideUp {\n from { transform: translateY(20px) scale(0.98); opacity: 0; }\n to { transform: translateY(0) scale(1); opacity: 1; }\n }\n @keyframes modalFadeOut {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n </style>\n \n <!-- Icon -->\n <div style=\"display: flex; justify-content: center; margin-bottom: 24px;\">\n <div style=\"\n width: 64px;\n height: 64px;\n border-radius: 16px;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.2) 0%, rgba(139, 92, 246, 0.2) 100%);\n border: 1px solid rgba(139, 92, 246, 0.3);\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 8px 24px rgba(139, 92, 246, 0.15);\n \">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>\n <circle cx=\"12\" cy=\"10\" r=\"2\" fill=\"#a78bfa\" stroke=\"none\"/>\n </svg>\n </div>\n </div>\n \n <!-- Title -->\n <h2 style=\"margin: 0 0 12px 0; font-size: 20px; font-weight: 600; color: rgba(255, 255, 255, 0.95); text-align: center; letter-spacing: -0.02em;\">\n Enable Smart Guidance\n </h2>\n \n <!-- Description -->\n <p style=\"margin: 0 0 24px 0; color: rgba(255, 255, 255, 0.5); font-size: 14px; line-height: 1.6; text-align: center;\">\n Share your screen so the AI can see what you're working on and provide contextual help.\n </p>\n \n <!-- Features -->\n <div style=\"background: rgba(255, 255, 255, 0.03); border-radius: 12px; padding: 16px; margin-bottom: 24px; border: 1px solid rgba(255, 255, 255, 0.05);\">\n <!-- Feature 1 -->\n <div style=\"display: flex; align-items: center; gap: 12px; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.05);\">\n <div style=\"width: 32px; height: 32px; border-radius: 8px; background: rgba(96, 165, 250, 0.15); border: 1px solid rgba(96, 165, 250, 0.3); display: flex; align-items: center; justify-content: center;\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\">\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"/>\n <circle cx=\"12\" cy=\"12\" r=\"3\"/>\n </svg>\n </div>\n <div style=\"flex: 1;\">\n <div style=\"font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, 0.9); margin-bottom: 2px;\">Visual Context</div>\n <div style=\"font-size: 12px; color: rgba(255, 255, 255, 0.4);\">AI sees exactly what you see</div>\n </div>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#60a5fa\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"/></svg>\n </div>\n \n <!-- Feature 2 -->\n <div style=\"display: flex; align-items: center; gap: 12px; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid rgba(255, 255, 255, 0.05);\">\n <div style=\"width: 32px; height: 32px; border-radius: 8px; background: rgba(52, 211, 153, 0.15); border: 1px solid rgba(52, 211, 153, 0.3); display: flex; align-items: center; justify-content: center;\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#34d399\" stroke-width=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"10\"/>\n <polyline points=\"12 6 12 12 16 14\"/>\n </svg>\n </div>\n <div style=\"flex: 1;\">\n <div style=\"font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, 0.9); margin-bottom: 2px;\">Faster Help</div>\n <div style=\"font-size: 12px; color: rgba(255, 255, 255, 0.4);\">No need to explain what's on screen</div>\n </div>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#34d399\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"/></svg>\n </div>\n \n <!-- Feature 3 -->\n <div style=\"display: flex; align-items: center; gap: 12px;\">\n <div style=\"width: 32px; height: 32px; border-radius: 8px; background: rgba(167, 139, 250, 0.15); border: 1px solid rgba(167, 139, 250, 0.3); display: flex; align-items: center; justify-content: center;\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\">\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"/>\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"/>\n </svg>\n </div>\n <div style=\"flex: 1;\">\n <div style=\"font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, 0.9); margin-bottom: 2px;\">Privacy First</div>\n <div style=\"font-size: 12px; color: rgba(255, 255, 255, 0.4);\">Only this tab, stop anytime</div>\n </div>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"2\"><polyline points=\"20 6 9 17 4 12\"/></svg>\n </div>\n </div>\n \n <!-- Primary Button -->\n <button id=\"screen-share-allow\" style=\"\n width: 100%;\n padding: 14px 20px;\n background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);\n color: white;\n border: none;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.25);\n \">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"/>\n <line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"/>\n </svg>\n Enable Screen Share\n </button>\n \n <!-- Secondary Button -->\n <button id=\"screen-share-deny\" style=\"\n width: 100%;\n margin-top: 12px;\n padding: 12px 20px;\n background: transparent;\n color: rgba(255, 255, 255, 0.4);\n border: none;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n \">\n Maybe Later\n </button>\n \n <!-- Footer -->\n <p style=\"margin: 16px 0 0 0; font-size: 11px; color: rgba(255, 255, 255, 0.3); text-align: center;\">\n You can enable this anytime from the control panel\n </p>\n `;\n\n modal.appendChild(content);\n document.body.appendChild(modal);\n\n // Add hover effects\n const allowBtn = content.querySelector('#screen-share-allow') as HTMLButtonElement;\n const denyBtn = content.querySelector('#screen-share-deny') as HTMLButtonElement;\n\n allowBtn.onmouseenter = () => {\n allowBtn.style.transform = 'translateY(-1px)';\n allowBtn.style.background = 'linear-gradient(135deg, #818cf8 0%, #a78bfa 100%)';\n allowBtn.style.boxShadow = '0 8px 24px rgba(99, 102, 241, 0.4)';\n };\n allowBtn.onmouseleave = () => {\n allowBtn.style.transform = 'translateY(0)';\n allowBtn.style.background = 'linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%)';\n allowBtn.style.boxShadow = '0 4px 12px rgba(99, 102, 241, 0.25)';\n };\n\n denyBtn.onmouseenter = () => {\n denyBtn.style.color = 'rgba(255, 255, 255, 0.8)';\n };\n denyBtn.onmouseleave = () => {\n denyBtn.style.color = 'rgba(255, 255, 255, 0.4)';\n };\n\n // Handle clicks\n allowBtn.onclick = () => {\n modal.style.animation = 'modalFadeOut 0.2s ease';\n setTimeout(() => {\n modal.remove();\n resolve(true);\n }, 200);\n };\n\n denyBtn.onclick = () => {\n modal.style.animation = 'modalFadeOut 0.2s ease';\n setTimeout(() => {\n modal.remove();\n resolve(false);\n }, 200);\n };\n });\n }\n\n /**\n * Highlight an element using CSS selector (legacy method)\n */\n highlight(selector: string, options: { color?: string; padding?: number } = {}) {\n const element = document.querySelector(selector);\n if (!element) {\n console.warn('[OverlaySystem] Element not found:', selector);\n return;\n }\n\n this.highlightElement(element as HTMLElement, options);\n }\n\n /**\n * Highlight an element using hybrid target (new method)\n * Uses multi-strategy resolution to find the element\n */\n highlightTarget(target: HybridTarget, options: { color?: string; padding?: number } = {}): boolean {\n console.log('╔══════════════════════════════════════════════════════════════╗');\n console.log('║ [OverlaySystem] 💡 HIGHLIGHT TARGET CALLED ║');\n console.log('╚══════════════════════════════════════════════════════════════╝');\n console.log('[OverlaySystem] Target:', JSON.stringify(target, null, 2));\n console.log('[OverlaySystem] Options:', options);\n\n const element = HybridTargetResolver.resolveTarget(target);\n if (!element) {\n console.warn('[OverlaySystem] ❌ Element not found for target');\n return false;\n }\n\n console.log('[OverlaySystem] ✅ Element found, applying highlight...');\n console.log('[OverlaySystem] Element details:');\n console.log(' • tagName:', element.tagName);\n console.log(' • id:', element.id || '(none)');\n console.log(' • classes:', element.className || '(none)');\n console.log(' • innerText:', (element.innerText || '').substring(0, 50) + '...');\n\n this.highlightElement(element, options);\n console.log('[OverlaySystem] 🎨 Highlight applied successfully!');\n return true;\n }\n\n /**\n * Highlight an already-resolved HTMLElement directly\n * Use this when you already have the element to avoid re-resolution\n */\n highlightResolvedElement(element: HTMLElement, options: { color?: string; padding?: number } = {}) {\n return this.highlightElement(element, options);\n }\n\n /**\n * Internal method to highlight an HTMLElement - Clean, non-intrusive design\n */\n private highlightElement(element: HTMLElement, options: { color?: string; padding?: number } = {}) {\n // Default to purple/indigo theme - clean outline only\n const { color = 'rgba(139, 92, 246, 1)', padding = 4 } = options;\n console.log('[OverlaySystem] highlightElement() called');\n console.log('[OverlaySystem] Highlight color:', color);\n console.log('[OverlaySystem] Highlight padding:', padding);\n\n if (!this.highlightEl) {\n console.log('[OverlaySystem] Creating new highlight element');\n this.highlightEl = document.createElement('div');\n this.highlightEl.id = 'hse-highlight-element';\n this.highlightEl.setAttribute(SDK_WIDGET_ATTR, 'highlight');\n this.container?.appendChild(this.highlightEl);\n }\n\n // Scroll element into view first\n console.log('[OverlaySystem] Scrolling element into view...');\n HybridTargetResolver.scrollIntoView(element);\n\n // Wait a bit for scroll to complete before positioning highlight\n console.log('[OverlaySystem] Waiting 300ms for scroll to complete...');\n setTimeout(() => {\n const updatedRect = element.getBoundingClientRect();\n console.log('[OverlaySystem] Element position after scroll:');\n console.log(' • top:', updatedRect.top);\n console.log(' • left:', updatedRect.left);\n console.log(' • width:', updatedRect.width);\n console.log(' • height:', updatedRect.height);\n\n if (this.highlightEl) {\n // Clean, non-intrusive highlight - just a colored border with outer glow\n this.highlightEl.style.cssText = `\n position: fixed;\n top: ${updatedRect.top - padding}px;\n left: ${updatedRect.left - padding}px;\n width: ${updatedRect.width + padding * 2}px;\n height: ${updatedRect.height + padding * 2}px;\n pointer-events: none;\n z-index: 2147483645;\n border: 2px solid #8b5cf6;\n border-radius: 8px;\n background: transparent;\n box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.15), 0 0 20px rgba(139, 92, 246, 0.3);\n animation: highlightFadeIn 0.2s ease-out, highlightPulse 2s ease-in-out infinite;\n `;\n console.log('[OverlaySystem] ✨ HIGHLIGHT VISIBLE! Position:', {\n top: updatedRect.top - padding,\n left: updatedRect.left - padding,\n width: updatedRect.width + padding * 2,\n height: updatedRect.height + padding * 2\n });\n }\n }, 300);\n\n // Add highlight animations\n if (!document.querySelector('#onboarding-animations')) {\n const style = document.createElement('style');\n style.id = 'onboarding-animations';\n style.textContent = `\n @keyframes highlightFadeIn {\n from { opacity: 0; transform: scale(0.98); }\n to { opacity: 1; transform: scale(1); }\n }\n \n @keyframes highlightPulse {\n 0%, 100% { \n border-color: #8b5cf6;\n box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.15), 0 0 20px rgba(139, 92, 246, 0.3);\n }\n 50% { \n border-color: #a78bfa;\n box-shadow: 0 0 0 6px rgba(167, 139, 250, 0.2), 0 0 30px rgba(139, 92, 246, 0.4);\n }\n }\n \n @keyframes strongPulse {\n 0%, 100% { \n border-color: #8b5cf6;\n box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.2), 0 0 25px rgba(139, 92, 246, 0.4);\n }\n 50% { \n border-color: #a78bfa;\n box-shadow: 0 0 0 8px rgba(167, 139, 250, 0.25), 0 0 40px rgba(139, 92, 246, 0.5);\n }\n }\n \n #hse-highlight-element.strong-pulse {\n border-width: 3px;\n animation: highlightFadeIn 0.2s ease-out, strongPulse 1s ease-in-out infinite !important;\n }\n `;\n document.head.appendChild(style);\n }\n }\n\n /**\n * Pulse an element (similar to highlight but with stronger animation)\n */\n pulse(selector: string, options: { color?: string; padding?: number } = {}) {\n // Use highlight but with stronger pulse animation - default to brighter purple\n this.highlight(selector, { ...options, color: options.color || 'rgba(167, 139, 250, 0.8)' });\n\n // Enhance the pulse animation by adding strong-pulse class\n if (this.highlightEl) {\n this.highlightEl.classList.add('strong-pulse');\n }\n }\n\n /**\n * Pulse an element using hybrid target\n */\n pulseTarget(target: HybridTarget, options: { color?: string; padding?: number } = {}): boolean {\n const success = this.highlightTarget(target, { ...options, color: options.color || 'rgba(167, 139, 250, 0.8)' });\n\n // Enhance the pulse animation by adding strong-pulse class\n if (success && this.highlightEl) {\n this.highlightEl.classList.add('strong-pulse');\n }\n\n return success;\n }\n\n /**\n * Clear highlight\n */\n clearHighlight() {\n if (this.highlightEl) {\n this.highlightEl.remove();\n this.highlightEl = null;\n }\n }\n\n /**\n * Show tooltip\n */\n showTooltip(text: string, options: { x?: number; y?: number; anchor?: string } = {}) {\n if (!this.tooltipElement) {\n this.tooltipElement = document.createElement('div');\n this.container?.appendChild(this.tooltipElement);\n }\n\n let x = options.x || window.innerWidth / 2;\n let y = options.y || window.innerHeight - 100;\n\n if (options.anchor) {\n const element = document.querySelector(options.anchor);\n if (element) {\n const rect = element.getBoundingClientRect();\n x = rect.left + rect.width / 2;\n y = rect.bottom + 10;\n }\n }\n\n this.tooltipElement.style.cssText = `\n position: fixed;\n left: ${x}px;\n top: ${y}px;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.9);\n color: white;\n padding: 12px 20px;\n border-radius: 8px;\n font-size: 14px;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n pointer-events: none;\n max-width: 300px;\n text-align: center;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n `;\n\n this.tooltipElement.textContent = text;\n }\n\n /**\n * Hide tooltip\n */\n hideTooltip() {\n if (this.tooltipElement) {\n this.tooltipElement.remove();\n this.tooltipElement = null;\n }\n }\n\n /**\n * Remove overlay\n */\n remove() {\n this.container?.remove();\n this.container = null;\n this.highlightEl = null;\n this.tooltipElement = null;\n }\n}\n\n/**\n * Action Executor for automating UI interactions\n * Supports both legacy selector-based actions and new hybrid target actions\n */\nclass ActionExecutor {\n private confirmationSound: HTMLAudioElement;\n\n constructor() {\n // Create confirmation sound\n this.confirmationSound = new Audio('data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=');\n }\n\n /**\n * Execute legacy action with optional consent\n */\n async executeWithConsent(action: UIAction, requireConsent = true): Promise<boolean> {\n try {\n if (requireConsent && this.isDestructive(action)) {\n const consent = await this.getConsent(action);\n if (!consent) return false;\n }\n\n const result = await this.execute(action);\n\n if (result) {\n this.confirmationSound.play().catch(() => { });\n console.log(`[ActionExecutor] Executed ${action.type} on ${action.selector}`);\n }\n\n return result;\n } catch (error) {\n console.error('[ActionExecutor] Failed to execute action:', error);\n return false;\n }\n }\n\n /**\n * Execute hybrid action using multi-strategy target resolution\n */\n async executeHybridAction(action: HybridUIAction, requireConsent = true): Promise<boolean> {\n try {\n console.log('[ActionExecutor] Executing hybrid action:', action);\n\n // SPECIAL HANDLING: Dropdown option selection\n // If we have optionText, we may need to open the dropdown first\n if (action.target.optionText && action.action === 'click') {\n console.log('[ActionExecutor] 🔽 Dropdown option click detected:', action.target.optionText);\n\n // Try to find the option first (dropdown might already be open)\n let optionElement = HybridTargetResolver.resolveTarget(action.target);\n\n if (!optionElement) {\n console.log('[ActionExecutor] Option not visible - dropdown may be closed, attempting to open...');\n\n // Try to open the dropdown using various methods\n let dropdownOpened = false;\n\n // Method 1: Use dropdownTriggerSelector if provided\n if (action.target.dropdownTriggerSelector) {\n console.log('[ActionExecutor] Using dropdownTriggerSelector:', action.target.dropdownTriggerSelector);\n const trigger = document.querySelector(action.target.dropdownTriggerSelector) as HTMLElement;\n if (trigger) {\n this.handleComboboxClick(trigger);\n dropdownOpened = true;\n }\n }\n\n // Method 2: Try to find combobox by labelText\n if (!dropdownOpened && action.target.labelText) {\n console.log('[ActionExecutor] Trying to find dropdown by label:', action.target.labelText);\n const combobox = this.findComboboxByLabel(action.target.labelText);\n if (combobox) {\n this.handleComboboxClick(combobox);\n dropdownOpened = true;\n }\n }\n\n // Method 3: Try to find combobox by selector (without optionText)\n if (!dropdownOpened && action.target.selector) {\n console.log('[ActionExecutor] Trying to find dropdown by selector:', action.target.selector);\n // Create a target without optionText to find the trigger\n const triggerTarget = { ...action.target, optionText: undefined };\n const triggerElement = HybridTargetResolver.resolveTarget(triggerTarget);\n if (triggerElement) {\n const combobox = this.findComboboxInput(triggerElement);\n if (combobox) {\n this.handleComboboxClick(combobox);\n dropdownOpened = true;\n }\n }\n }\n\n if (dropdownOpened) {\n // Wait for dropdown to open\n console.log('[ActionExecutor] Waiting for dropdown to open...');\n await new Promise(resolve => setTimeout(resolve, 300));\n\n // Now try to find the option again\n optionElement = HybridTargetResolver.resolveTarget(action.target);\n\n if (!optionElement) {\n console.warn('[ActionExecutor] ❌ Option still not found after opening dropdown:', action.target.optionText);\n return false;\n }\n console.log('[ActionExecutor] ✅ Found option after opening dropdown');\n } else {\n console.warn('[ActionExecutor] ❌ Could not open dropdown - no trigger found. Add a separate task to open the dropdown first.');\n return false;\n }\n }\n\n // We have the option element, click it\n if (requireConsent && this.isHybridActionDestructive(action)) {\n const consent = await this.getHybridConsent(action);\n if (!consent) return false;\n }\n\n HybridTargetResolver.scrollIntoView(optionElement);\n await new Promise(resolve => setTimeout(resolve, 100));\n this.performClick(optionElement);\n this.confirmationSound.play().catch(() => { });\n console.log(`[ActionExecutor] ✅ Successfully clicked dropdown option: \"${action.target.optionText}\"`);\n return true;\n }\n\n // Standard resolution for non-dropdown actions\n const element = HybridTargetResolver.resolveTarget(action.target);\n if (!element) {\n console.warn('[ActionExecutor] Could not resolve target:', action.target);\n return false;\n }\n\n // Check for consent on destructive actions\n if (requireConsent && this.isHybridActionDestructive(action)) {\n const consent = await this.getHybridConsent(action);\n if (!consent) return false;\n }\n\n // Execute the action, passing selector for special dropdown handling\n const selector = action.target.selector;\n const result = await this.executeOnElement(action.action, element, action.value, selector);\n\n if (result) {\n this.confirmationSound.play().catch(() => { });\n console.log(`[ActionExecutor] Successfully executed \"${action.action}\" on element`);\n }\n\n return result;\n } catch (error) {\n console.error('[ActionExecutor] Failed to execute hybrid action:', error);\n return false;\n }\n }\n\n /**\n * Execute action on a resolved element\n * @param actionType - Type of action (click, type, focus, etc.)\n * @param element - Target element\n * @param value - Optional value for type actions\n * @param selector - Optional selector for special dropdown handling\n */\n private async executeOnElement(\n actionType: string,\n element: HTMLElement,\n value?: string,\n selector?: string\n ): Promise<boolean> {\n // Scroll into view first for better UX\n HybridTargetResolver.scrollIntoView(element);\n\n // Small delay for scroll animation\n await new Promise(resolve => setTimeout(resolve, 300));\n\n switch (actionType) {\n case 'click':\n // Check if element is in a collapsed sidebar and expand it first\n await this.expandCollapsedContainer(element);\n\n // Use proper mouse event simulation for React/Vue/Angular compatibility\n // Pass selector for special dropdown option handling\n this.simulateClick(element, selector);\n break;\n\n case 'type':\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n element.focus();\n element.value = value || '';\n element.dispatchEvent(new Event('input', { bubbles: true }));\n element.dispatchEvent(new Event('change', { bubbles: true }));\n } else {\n // For contenteditable elements\n element.focus();\n element.textContent = value || '';\n element.dispatchEvent(new Event('input', { bubbles: true }));\n }\n break;\n\n case 'focus':\n element.focus();\n break;\n\n case 'hover':\n element.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }));\n element.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));\n break;\n\n case 'scroll':\n // Already scrolled above, but can scroll more specifically\n element.scrollIntoView({ behavior: 'smooth', block: 'center' });\n break;\n\n case 'highlight':\n // Highlighting is handled by OverlaySystem, not here\n // But we can add a visual effect\n element.style.outline = '3px solid #00aaff';\n element.style.outlineOffset = '2px';\n break;\n\n default:\n console.warn('[ActionExecutor] Unknown action type:', actionType);\n return false;\n }\n\n return true;\n }\n\n /**\n * Check if element is in a collapsed sidebar/container and expand it via hover\n * Common pattern in modern UIs: sidebars that expand on hover\n */\n private async expandCollapsedContainer(element: HTMLElement): Promise<void> {\n // Find potential collapsed sidebar container\n const collapsedContainer = this.findCollapsedContainer(element);\n\n if (collapsedContainer) {\n console.log('[ActionExecutor] Found collapsed container, hovering to expand...');\n\n // Get container center for hover\n const rect = collapsedContainer.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n const eventOptions: MouseEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: centerX,\n clientY: centerY,\n };\n\n // Trigger hover events on the container\n collapsedContainer.dispatchEvent(new MouseEvent('mouseenter', eventOptions));\n collapsedContainer.dispatchEvent(new MouseEvent('mouseover', eventOptions));\n\n // Also move mouse to the element itself\n const elemRect = element.getBoundingClientRect();\n const elemEventOptions: MouseEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: elemRect.left + elemRect.width / 2,\n clientY: elemRect.top + elemRect.height / 2,\n };\n element.dispatchEvent(new MouseEvent('mouseenter', elemEventOptions));\n element.dispatchEvent(new MouseEvent('mouseover', elemEventOptions));\n\n // Wait for expansion animation (typically 200-400ms)\n await new Promise(resolve => setTimeout(resolve, 400));\n\n console.log('[ActionExecutor] Container expanded, proceeding with click');\n }\n }\n\n /**\n * Find collapsed container (sidebar) that contains the element\n * Looks for narrow containers with transition styles\n */\n private findCollapsedContainer(element: HTMLElement): HTMLElement | null {\n let current: HTMLElement | null = element.parentElement;\n\n while (current && current !== document.body) {\n const style = window.getComputedStyle(current);\n const width = current.getBoundingClientRect().width;\n\n // Check for sidebar-like characteristics:\n // - Narrow width (< 80px collapsed)\n // - Has transition on width\n // - Fixed or relative positioning\n // - Full height\n const hasTransition = style.transition.includes('width') ||\n style.transitionProperty.includes('width') ||\n style.transitionProperty === 'all';\n const isNarrow = width < 80;\n const isFullHeight = current.offsetHeight > window.innerHeight * 0.7;\n const currentClassName = typeof current.className === 'string' ? current.className : '';\n const hasSidebarClasses = currentClassName.includes('sidebar') ||\n currentClassName.includes('nav') ||\n currentClassName.includes('menu');\n\n // Check for common sidebar patterns\n if (isNarrow && (hasTransition || hasSidebarClasses) && isFullHeight) {\n console.log('[ActionExecutor] Detected collapsed container:', {\n width,\n hasTransition,\n isFullHeight,\n classes: current.className.substring(0, 100)\n });\n return current;\n }\n\n current = current.parentElement;\n }\n\n return null;\n }\n\n /**\n * Simulate a real click event for React/Vue/Angular compatibility\n * Simple element.click() doesn't trigger synthetic event handlers properly\n */\n private simulateClick(element: HTMLElement, selector?: string): void {\n // SPECIAL HANDLING: Dropdown option with text matching\n // Check if selector contains data-option-text for dropdown option matching\n if (selector) {\n const optionText = this.parseOptionTextFromSelector(selector);\n if (optionText) {\n console.log('[ActionExecutor] 🎯 Detected dropdown option selector, searching for:', optionText);\n const option = this.findDropdownOption(optionText);\n if (option) {\n console.log('[ActionExecutor] Found option by text, clicking it');\n this.performClick(option);\n return;\n }\n console.log('[ActionExecutor] Option not found by text, trying direct click');\n }\n\n // Check if selector contains data-label for labeled combobox\n const labelText = this.parseLabelFromSelector(selector);\n if (labelText) {\n console.log('[ActionExecutor] 🎯 Detected labeled combobox selector:', labelText);\n const combobox = this.findComboboxByLabel(labelText);\n if (combobox) {\n console.log('[ActionExecutor] Found combobox by label, opening it');\n this.handleComboboxClick(combobox);\n return;\n }\n console.log('[ActionExecutor] Combobox not found by label, trying direct match');\n }\n }\n\n // SPECIAL HANDLING: Combobox/dropdown components need special interaction\n // Supports: React Select, MUI Select, Headless UI, Radix, Downshift, native combobox\n const comboboxInput = this.findComboboxInput(element);\n if (comboboxInput) {\n console.log('[ActionExecutor] 🎯 Detected combobox/dropdown - using special handling');\n this.handleComboboxClick(comboboxInput);\n return;\n }\n\n // Check if element is a dropdown option\n if (this.isDropdownOption(element)) {\n console.log('[ActionExecutor] 🎯 Element is dropdown option - using React onClick + DOM events');\n\n // React Select uses React synthetic events, so we need to trigger React onClick\n const hasReactHandler = this.triggerReactOnClick(element);\n console.log(`[ActionExecutor] React onClick triggered: ${hasReactHandler}`);\n\n // Also dispatch DOM events as backup (some libraries use both)\n this.performClick(element);\n return;\n }\n\n // If element is a non-interactive tag (span, label, etc.), find clickable parent\n const clickTarget = this.findClickableElement(element);\n\n const rect = clickTarget.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n // Focus first (important for some React components)\n if (clickTarget.focus) {\n clickTarget.focus();\n }\n\n // STRATEGY: Check for React onClick FIRST\n // If found, use ONLY React onClick (avoids double-click issues)\n // If not found, fall back to regular DOM events\n\n const hasReactOnClick = this.hasReactOnClickHandler(clickTarget);\n\n if (hasReactOnClick) {\n console.log('[ActionExecutor] 🎯 Element has React onClick - using direct call only');\n const reactClickSuccess = this.triggerReactOnClick(clickTarget);\n if (reactClickSuccess) {\n // Send click metadata since React onClick doesn't bubble to PageTracker\n // Pass BOTH the clickTarget (for selector) AND original element (for text)\n this.sendClickMetadata(clickTarget, element);\n console.log('[ActionExecutor] ✅ React onClick executed at', centerX, centerY, 'on', clickTarget.tagName);\n if (clickTarget !== element) {\n console.log('[ActionExecutor] Note: Clicked parent', clickTarget.tagName, 'instead of', element.tagName);\n }\n return; // Don't fall through to DOM events\n }\n console.log('[ActionExecutor] ⚠️ React onClick found but call failed, falling back to DOM events');\n }\n\n // No React onClick found (or it failed) - use regular DOM events\n // These will trigger PageTracker automatically\n console.log('[ActionExecutor] Using DOM events (no React onClick or fallback)');\n\n const eventOptions: MouseEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: centerX,\n clientY: centerY,\n screenX: centerX,\n screenY: centerY,\n button: 0,\n buttons: 1,\n };\n\n const pointerOptions: PointerEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: centerX,\n clientY: centerY,\n screenX: centerX,\n screenY: centerY,\n button: 0,\n buttons: 1,\n pointerType: 'mouse',\n isPrimary: true,\n };\n\n // PointerEvents sequence (better for modern frameworks)\n clickTarget.dispatchEvent(new PointerEvent('pointerdown', pointerOptions));\n clickTarget.dispatchEvent(new PointerEvent('pointerup', pointerOptions));\n\n // MouseEvents sequence\n clickTarget.dispatchEvent(new MouseEvent('mousedown', eventOptions));\n clickTarget.dispatchEvent(new MouseEvent('mouseup', eventOptions));\n clickTarget.dispatchEvent(new MouseEvent('click', eventOptions));\n\n // Note: Don't call native .click() here - it would dispatch ANOTHER click event\n // The MouseEvent('click') above should be sufficient\n\n console.log('[ActionExecutor] Simulated click at', centerX, centerY, 'on', clickTarget.tagName);\n if (clickTarget !== element) {\n console.log('[ActionExecutor] Note: Clicked parent', clickTarget.tagName, 'instead of', element.tagName);\n }\n }\n\n /**\n * Detect if element is part of a combobox/dropdown component and find the trigger\n * Works with: React Select, MUI Select, Headless UI, Radix, Downshift, native combobox\n * Uses ARIA attributes for reliable detection across libraries\n * Returns HTMLElement (can be input or button) or null\n * \n * IMPORTANT: Only returns a combobox if the clicked element is DIRECTLY part of\n * the combobox structure (control, value, indicators), not just any element\n * that happens to be in a container with a combobox.\n */\n private findComboboxInput(element: HTMLElement): HTMLElement | null {\n // Strategy 1: Check if element itself is a combobox input\n if (element.getAttribute('role') === 'combobox') {\n console.log('[ActionExecutor] Element is combobox');\n return element;\n }\n\n // Strategy 2: Check if element has aria-haspopup (common for dropdown triggers)\n if (element.getAttribute('aria-haspopup') === 'listbox' ||\n element.getAttribute('aria-haspopup') === 'true') {\n const input = element.querySelector('input[role=\"combobox\"]') as HTMLElement;\n if (input) {\n console.log('[ActionExecutor] Found combobox via aria-haspopup container');\n return input;\n }\n // Element itself might be the trigger (button with aria-haspopup)\n if (element.tagName === 'BUTTON') {\n console.log('[ActionExecutor] Element is button with aria-haspopup');\n return element;\n }\n }\n\n // Strategy 3: Walk up the tree looking for DIRECT combobox membership\n // Only trigger if clicked element is actually part of the combobox control\n let current: HTMLElement | null = element;\n let depth = 0;\n\n // Maximum depth to search - combobox controls are usually shallow structures\n const MAX_DEPTH = 5;\n\n while (current && depth < MAX_DEPTH) {\n // Handle SVG elements which have SVGAnimatedString for className\n const className = typeof current.className === 'string' ? current.className : '';\n\n // Check if we're inside a React Select CONTROL (not just container)\n // The control is the clickable part, container is the wrapper\n const isReactSelectControl = className.includes('css-') && className.includes('control');\n const isReactSelectValueContainer = className.includes('css-') && className.includes('ValueContainer');\n const isReactSelectIndicator = className.includes('css-') && className.includes('Indicator');\n\n // Check for MUI Select trigger area\n const isMuiSelectTrigger = className.includes('MuiSelect-select') ||\n className.includes('MuiAutocomplete-inputRoot');\n\n // Check for Headless/Radix trigger\n const isHeadlessRadixTrigger = (className.includes('headlessui') || className.includes('radix')) &&\n (className.includes('trigger') || className.includes('button'));\n\n // Check for generic patterns that indicate DIRECT membership\n const isDirectDropdownPart =\n isReactSelectControl ||\n isReactSelectValueContainer ||\n isReactSelectIndicator ||\n isMuiSelectTrigger ||\n isHeadlessRadixTrigger ||\n // Generic: element is inside something explicitly named control/trigger\n (className.includes('control') && current.querySelector('input[role=\"combobox\"]')) ||\n (className.includes('trigger') && current.getAttribute('aria-haspopup'));\n\n if (isDirectDropdownPart) {\n // Found direct dropdown part - find the combobox input\n const input = current.querySelector('input[role=\"combobox\"]') as HTMLElement;\n if (input) {\n console.log('[ActionExecutor] Found combobox input via control element');\n return input;\n }\n\n // Check parent for input (input might be sibling of control)\n const parent = current.parentElement;\n if (parent) {\n const siblingInput = parent.querySelector('input[role=\"combobox\"]') as HTMLElement;\n if (siblingInput) {\n console.log('[ActionExecutor] Found combobox input in parent container');\n return siblingInput;\n }\n }\n\n // Some libraries use button as trigger\n const button = current.querySelector('button[aria-haspopup=\"listbox\"]') as HTMLElement;\n if (button) {\n console.log('[ActionExecutor] Found listbox trigger button');\n return button;\n }\n }\n\n current = current.parentElement;\n depth++;\n }\n\n // Not part of a combobox - return null to use normal click handling\n return null;\n }\n\n /**\n * Parse custom selector attributes for dropdown handling\n * Selectors like: [role=\"option\"][data-option-text=\"Some Text\"]\n * Returns the text to search for, or null\n * \n * Handles CSS.escape() escaped characters from floe-recorder.js:\n * - Escaped quotes: \\\" -> \"\n * - Escaped spaces: \\ -> (space)\n */\n private parseOptionTextFromSelector(selector: string): string | null {\n // First normalize escaped characters (from CSS.escape and JSON serialization)\n const normalizedSelector = selector\n .replace(/\\\\\"/g, '\"') // Unescape quotes: \\\" -> \"\n .replace(/\\\\ /g, ' ') // Unescape spaces: \\ -> (space)\n .replace(/\\\\\\\\/g, '\\\\'); // Unescape backslashes: \\\\ -> \\\n\n const match = normalizedSelector.match(/\\[data-option-text=\"([^\"]+)\"\\]/);\n if (match) {\n return match[1];\n }\n return null;\n }\n\n /**\n * Parse label from custom selector for combobox identification\n * Selectors like: input[role=\"combobox\"][data-label=\"Label Text\"]\n * \n * Handles CSS.escape() escaped characters from floe-recorder.js:\n * - Escaped quotes: \\\" -> \"\n * - Escaped spaces: \\ -> (space)\n */\n private parseLabelFromSelector(selector: string): string | null {\n // First normalize escaped characters (from CSS.escape and JSON serialization)\n const normalizedSelector = selector\n .replace(/\\\\\"/g, '\"') // Unescape quotes: \\\" -> \"\n .replace(/\\\\ /g, ' ') // Unescape spaces: \\ -> (space)\n .replace(/\\\\\\\\/g, '\\\\'); // Unescape backslashes: \\\\ -> \\\n\n const match = normalizedSelector.match(/\\[data-label=\"([^\"]+)\"\\]/);\n if (match) {\n return match[1];\n }\n return null;\n }\n\n /**\n * Strip virtual attributes from selector for querySelector compatibility\n * Removes: [data-option-text=\"...\"], [data-label=\"...\"], [data-index=\"...\"]\n * \n * First normalizes escaped characters from CSS.escape/JSON serialization.\n */\n private stripVirtualAttributes(selector: string): string {\n // First normalize escaped characters\n const normalizedSelector = selector\n .replace(/\\\\\"/g, '\"') // Unescape quotes: \\\" -> \"\n .replace(/\\\\ /g, ' ') // Unescape spaces: \\ -> (space)\n .replace(/\\\\\\\\/g, '\\\\'); // Unescape backslashes: \\\\ -> \\\n\n return normalizedSelector\n .replace(/\\[data-option-text=\"[^\"]*\"\\]/g, '')\n .replace(/\\[data-label=\"[^\"]*\"\\]/g, '')\n .replace(/\\[data-index=\"[^\"]*\"\\]/g, '')\n .trim();\n }\n\n /**\n * Find combobox by associated label text\n */\n private findComboboxByLabel(labelText: string): HTMLElement | null {\n // Find all labels and match by text\n const labels = document.querySelectorAll('label');\n for (const label of labels) {\n const text = label.textContent?.trim().replace(/\\*$/, '').trim();\n if (text === labelText || text?.includes(labelText)) {\n // Found label - now find the combobox in the same container\n const container = label.closest('div[class*=\"container\"], div[aria-label], .MuiFormControl-root, form > div');\n if (container) {\n const combobox = container.querySelector('input[role=\"combobox\"], button[aria-haspopup=\"listbox\"]') as HTMLElement;\n if (combobox) {\n console.log('[ActionExecutor] Found combobox by label:', labelText);\n return combobox;\n }\n }\n }\n }\n return null;\n }\n\n /**\n * Handle click on combobox/dropdown component\n * Opens the dropdown by focusing the input and dispatching proper events\n * Works with various dropdown libraries\n */\n private handleComboboxClick(trigger: HTMLElement): void {\n console.log('[ActionExecutor] Opening combobox/dropdown');\n\n // Find the control/container element for clicking\n const control = trigger.closest('[class*=\"control\"]') ||\n trigger.closest('[class*=\"trigger\"]') ||\n trigger.closest('[aria-haspopup]') ||\n trigger.parentElement;\n\n // Focus the trigger first\n if (trigger.focus) {\n trigger.focus();\n }\n\n // Get click coordinates\n const rect = (control || trigger).getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n const eventOptions: MouseEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: centerX,\n clientY: centerY,\n };\n\n // Click on the control to open dropdown\n const clickTarget = control || trigger;\n clickTarget.dispatchEvent(new MouseEvent('mousedown', eventOptions));\n clickTarget.dispatchEvent(new MouseEvent('mouseup', eventOptions));\n clickTarget.dispatchEvent(new MouseEvent('click', eventOptions));\n\n // Also dispatch on trigger for good measure\n if (clickTarget !== trigger) {\n trigger.dispatchEvent(new MouseEvent('mousedown', eventOptions));\n trigger.dispatchEvent(new MouseEvent('mouseup', eventOptions));\n }\n\n // Send focus event (important for React/Vue components)\n trigger.dispatchEvent(new FocusEvent('focus', { bubbles: true }));\n\n // For inputs, also send input event to trigger any watchers\n if (trigger instanceof HTMLInputElement) {\n trigger.dispatchEvent(new Event('input', { bubbles: true }));\n }\n\n console.log('[ActionExecutor] ✅ Combobox/dropdown should now be open');\n }\n\n /**\n * Public method to open a dropdown (for use by OnboardingSDK)\n */\n public openDropdown(trigger: HTMLElement): void {\n this.handleComboboxClick(trigger);\n }\n\n /**\n * Public method to trigger React onClick (for use by OnboardingSDK)\n */\n public triggerReactOnClickPublic(element: HTMLElement): boolean {\n return this.triggerReactOnClick(element);\n }\n\n\n /**\n * Find a dropdown option by text in any open menu/listbox\n * Works with various dropdown libraries\n */\n private findDropdownOption(text: string): HTMLElement | null {\n // Look for open dropdown menus using various selectors\n const menuSelectors = [\n '[role=\"listbox\"]', // ARIA listbox\n '[role=\"menu\"]', // ARIA menu\n '[class*=\"menu\"]:not([aria-hidden])', // React Select, etc.\n '[class*=\"listbox\"]', // MUI, etc.\n '[class*=\"options\"]', // Headless UI\n '[data-radix-popper-content-wrapper]', // Radix\n '.MuiMenu-list', // MUI Menu\n '.MuiAutocomplete-listbox', // MUI Autocomplete\n ];\n\n for (const selector of menuSelectors) {\n const menus = document.querySelectorAll(selector);\n\n for (const menu of menus) {\n // Skip hidden menus\n if (!HybridTargetResolver.isVisible(menu as HTMLElement)) continue;\n\n // Find options using various patterns\n const optionSelectors = [\n '[role=\"option\"]',\n '[class*=\"option\"]',\n '[class*=\"item\"]',\n 'li',\n ];\n\n for (const optSelector of optionSelectors) {\n const options = menu.querySelectorAll(optSelector);\n\n for (const option of options) {\n const optionText = option.textContent?.trim();\n if (optionText === text || optionText?.includes(text)) {\n console.log('[ActionExecutor] Found dropdown option:', optionText);\n return option as HTMLElement;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Check if element appears to be a dropdown option\n */\n private isDropdownOption(element: HTMLElement): boolean {\n // Check for ARIA role\n if (element.getAttribute('role') === 'option') {\n return true;\n }\n\n // Check for common class patterns - handle SVG elements\n const className = typeof element.className === 'string' ? element.className : '';\n if (className.includes('option') || className.includes('item')) {\n // Verify it's inside a menu/listbox\n const container = element.closest('[role=\"listbox\"], [role=\"menu\"], [class*=\"menu\"], [class*=\"listbox\"]');\n return container !== null;\n }\n\n return false;\n }\n\n /**\n * Perform a complete click action on an element\n * Used for dropdown options and other simple click targets\n */\n private performClick(element: HTMLElement): void {\n const rect = element.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n // Focus first\n if (element.focus) {\n element.focus();\n }\n\n const eventOptions: MouseEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: centerX,\n clientY: centerY,\n screenX: centerX,\n screenY: centerY,\n button: 0,\n buttons: 1,\n };\n\n const pointerOptions: PointerEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: centerX,\n clientY: centerY,\n screenX: centerX,\n screenY: centerY,\n button: 0,\n buttons: 1,\n pointerType: 'mouse',\n isPrimary: true,\n };\n\n // Full event sequence\n element.dispatchEvent(new PointerEvent('pointerdown', pointerOptions));\n element.dispatchEvent(new PointerEvent('pointerup', pointerOptions));\n element.dispatchEvent(new MouseEvent('mousedown', eventOptions));\n element.dispatchEvent(new MouseEvent('mouseup', eventOptions));\n element.dispatchEvent(new MouseEvent('click', eventOptions));\n\n // Native click as backup\n if (element.click) {\n element.click();\n }\n\n console.log('[ActionExecutor] ✅ performClick completed on', element.tagName);\n }\n\n /**\n * Check if element (or its parents) has a React onClick handler\n * Must check same properties as triggerReactOnClick for consistency\n */\n private hasReactOnClickHandler(element: HTMLElement): boolean {\n const reactPropPrefixes = ['__reactProps', '__reactFiber', '__reactEventHandlers'];\n\n // Check element itself\n try {\n const keys = Object.keys(element);\n for (const key of keys) {\n if (reactPropPrefixes.some(prefix => key.startsWith(prefix))) {\n const reactData = (element as any)[key];\n if (reactData?.onClick) {\n return true;\n }\n }\n }\n } catch (e) {\n // SVG elements or other special elements might throw\n }\n\n // Check parent elements (React often delegates to parent)\n // Use same depth as triggerReactOnClick (5) for consistency\n let parent = element.parentElement;\n let depth = 0;\n while (parent && depth < 5) {\n try {\n const parentKeys = Object.keys(parent);\n for (const key of parentKeys) {\n if (reactPropPrefixes.some(prefix => key.startsWith(prefix))) {\n const reactData = (parent as any)[key];\n if (reactData?.onClick) {\n return true;\n }\n }\n }\n } catch (e) {\n // Continue on error\n }\n parent = parent.parentElement;\n depth++;\n }\n\n return false;\n }\n\n /**\n * Find the best clickable element - if element is non-interactive (span/label),\n * look for a parent with cursor-pointer or click handler\n */\n private findClickableElement(element: HTMLElement): HTMLElement {\n const nonInteractiveTags = ['SPAN', 'LABEL', 'P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'TEXT', 'SVG', 'PATH'];\n\n // Safely get className (SVG elements have SVGAnimatedString)\n const getClassString = (el: HTMLElement): string => {\n if (!el.className) return '';\n if (typeof el.className === 'string') return el.className;\n // SVGAnimatedString has baseVal property\n if (typeof (el.className as any).baseVal === 'string') return (el.className as any).baseVal;\n return '';\n };\n\n console.log('[ActionExecutor] Finding clickable element for:', element.tagName, getClassString(element).substring(0, 50));\n\n // If element is already interactive, use it\n if (!nonInteractiveTags.includes(element.tagName)) {\n console.log('[ActionExecutor] Element is already interactive');\n return element;\n }\n\n // Look for parent with cursor-pointer class or onclick handler\n let current: HTMLElement | null = element.parentElement;\n let bestCandidate = element;\n let depth = 0;\n\n while (current && current !== document.body && depth < 10) {\n depth++;\n const style = window.getComputedStyle(current);\n const hasCursorPointer = style.cursor === 'pointer';\n\n // Check for cursor-pointer in class (safely handle SVG elements)\n const classStr = getClassString(current);\n const hasCursorClass = classStr.includes('cursor-pointer');\n const hasListClass = current.classList?.contains('cursor-pointer');\n\n const hasOnClick = current.hasAttribute('onclick') ||\n current.hasAttribute('data-onclick') ||\n current.getAttribute('role') === 'button' ||\n current.getAttribute('role') === 'menuitem';\n const isButton = current.tagName === 'BUTTON' || current.tagName === 'A';\n\n console.log(`[ActionExecutor] Checking parent #${depth}:`, current.tagName,\n 'cursor:', style.cursor,\n 'hasCursorClass:', hasCursorClass || hasListClass,\n 'classes:', classStr.substring(0, 60));\n\n // Check if this element is clickable\n const isClickable = hasCursorPointer || hasCursorClass || hasListClass || hasOnClick || isButton;\n\n if (isClickable) {\n bestCandidate = current;\n console.log('[ActionExecutor] ✅ Found clickable parent:', current.tagName,\n classStr.substring(0, 80));\n // Stop at buttons or explicit role=button\n if (isButton || current.getAttribute('role') === 'button') {\n break;\n }\n }\n\n current = current.parentElement;\n }\n\n console.log('[ActionExecutor] Final click target:', bestCandidate.tagName,\n getClassString(bestCandidate).substring(0, 60));\n return bestCandidate;\n }\n\n /**\n * Try to trigger React's internal onClick handler directly\n * React stores handlers in internal fiber properties\n * Returns true if onClick was found and called\n */\n private triggerReactOnClick(element: HTMLElement): boolean {\n try {\n // React 16/17 stores handlers in __reactEventHandlers or __reactProps\n // React 18 uses different internal properties\n const keys = Object.keys(element);\n\n for (const key of keys) {\n if (key.startsWith('__reactFiber') || key.startsWith('__reactProps') ||\n key.startsWith('__reactEventHandlers')) {\n const reactData = (element as any)[key];\n console.log('[ActionExecutor] Found React property:', key);\n\n if (reactData?.onClick) {\n console.log('[ActionExecutor] 🎯 Calling React onClick directly!');\n // Create a synthetic-like event object with all methods React might use\n const nativeEvent = new MouseEvent('click', { bubbles: true, cancelable: true });\n const syntheticEvent = {\n type: 'click',\n target: element,\n currentTarget: element,\n nativeEvent: nativeEvent,\n bubbles: true,\n cancelable: true,\n defaultPrevented: false,\n eventPhase: 0,\n isTrusted: false,\n timeStamp: Date.now(),\n // Methods React might call\n preventDefault: () => { (syntheticEvent as any).defaultPrevented = true; },\n stopPropagation: () => { },\n persist: () => { }, // React synthetic events have this\n isDefaultPrevented: () => (syntheticEvent as any).defaultPrevented,\n isPropagationStopped: () => false,\n };\n reactData.onClick(syntheticEvent);\n return true;\n }\n }\n }\n\n // Also check parent elements for delegated handlers\n // Must check same prefixes as hasReactOnClickHandler for consistency\n const reactPropPrefixes = ['__reactProps', '__reactFiber', '__reactEventHandlers'];\n let parent = element.parentElement;\n let depth = 0;\n while (parent && depth < 5) {\n const parentKeys = Object.keys(parent);\n for (const key of parentKeys) {\n if (reactPropPrefixes.some(prefix => key.startsWith(prefix))) {\n const reactData = (parent as any)[key];\n if (reactData?.onClick) {\n console.log('[ActionExecutor] 🎯 Found onClick on parent, calling directly!');\n // Create a synthetic-like event object with all methods React might use\n const nativeEvent = new MouseEvent('click', { bubbles: true, cancelable: true });\n const syntheticEvent = {\n type: 'click',\n target: element,\n currentTarget: parent,\n nativeEvent: nativeEvent,\n bubbles: true,\n cancelable: true,\n defaultPrevented: false,\n eventPhase: 0,\n isTrusted: false,\n timeStamp: Date.now(),\n // Methods React might call\n preventDefault: () => { (syntheticEvent as any).defaultPrevented = true; },\n stopPropagation: () => { },\n persist: () => { }, // React synthetic events have this\n isDefaultPrevented: () => (syntheticEvent as any).defaultPrevented,\n isPropagationStopped: () => false,\n };\n reactData.onClick(syntheticEvent);\n return true;\n }\n }\n }\n parent = parent.parentElement;\n depth++;\n }\n\n console.log('[ActionExecutor] No React onClick handler found');\n return false;\n } catch (err) {\n console.log('[ActionExecutor] Error accessing React internals:', err);\n return false;\n }\n }\n\n /**\n * Manually send click metadata for actions that don't trigger DOM events\n * (like direct React onClick calls)\n */\n private sendClickMetadata(element: HTMLElement, originalElement: HTMLElement): void {\n // Safely get className (SVG elements have SVGAnimatedString)\n const getClassString = (el: HTMLElement): string => {\n if (!el.className) return '';\n if (typeof el.className === 'string') return el.className;\n if (typeof (el.className as any).baseVal === 'string') return (el.className as any).baseVal;\n return '';\n };\n\n // Build selector path\n const path: string[] = [];\n let current: HTMLElement | null = element;\n while (current && current !== document.body && path.length < 5) {\n let selector = current.tagName.toLowerCase();\n if (current.id) {\n selector = `#${current.id}`;\n } else {\n const classStr = getClassString(current);\n if (classStr) {\n const classes = classStr.trim().split(/\\s+/).slice(0, 3).join('.');\n if (classes) selector += '.' + classes;\n }\n }\n path.unshift(selector);\n current = current.parentElement;\n }\n\n // Get only direct text content, not all descendants\n // This avoids huge text strings for container elements\n const getDirectText = (el: HTMLElement): string => {\n // First, try to find a span/label child with text (common pattern)\n const textChild = el.querySelector('span, label, p');\n if (textChild?.textContent?.trim()) {\n return textChild.textContent.trim().substring(0, 50);\n }\n\n // Otherwise, get only immediate text nodes\n let directText = '';\n for (const node of Array.from(el.childNodes)) {\n if (node.nodeType === Node.TEXT_NODE) {\n directText += (node.textContent || '').trim() + ' ';\n }\n }\n directText = directText.trim();\n\n // If no direct text, fall back to textContent but limit it\n if (!directText && el.textContent) {\n directText = el.textContent.trim().substring(0, 50);\n }\n\n return directText;\n };\n\n // Determine event source: bot action vs user action\n // Read _botActionDepth from SDK to match PageTracker's behavior for DOM events\n const sdk = (window as any).__onboardingSDK;\n const isBot = sdk?._botActionDepth > 0;\n\n const clickData = {\n type: 'click',\n selector: path.join(' > '),\n // Use originalElement for text (the actual target) since element may be a parent\n text: getDirectText(originalElement),\n tagName: element.tagName.toLowerCase(),\n timestamp: Date.now(),\n source: isBot ? 'bot' : 'user', // Match PageTracker's bot/user tagging\n sourceDetail: 'react_onclick' // Preserve React-specific diagnostic info\n };\n\n console.log('[ActionExecutor] 📤 Sending React onClick metadata:', clickData.text, `(source: ${clickData.source})`);\n\n // Use SDK reference from above (already accessed for _botActionDepth check)\n if (sdk?.sendMetadata) {\n sdk.sendMetadata(clickData);\n } else {\n console.warn('[ActionExecutor] ⚠️ SDK not found on window, cannot send metadata');\n }\n }\n\n\n /**\n * Check if action is destructive\n */\n private isDestructive(action: UIAction): boolean {\n const destructiveTypes = ['submit', 'delete', 'remove', 'clear'];\n const destructiveSelectors = ['[type=\"submit\"]', '.delete', '.remove'];\n\n return destructiveTypes.some(type => action.description?.toLowerCase().includes(type)) ||\n destructiveSelectors.some(sel => action.selector.includes(sel));\n }\n\n /**\n * Check if hybrid action is destructive\n */\n private isHybridActionDestructive(action: HybridUIAction): boolean {\n const destructiveKeywords = ['submit', 'delete', 'remove', 'clear', 'confirm', 'proceed'];\n const description = action.description?.toLowerCase() || '';\n const targetText = action.target.text?.toLowerCase() || '';\n\n return destructiveKeywords.some(keyword =>\n description.includes(keyword) || targetText.includes(keyword)\n );\n }\n\n /**\n * Get user consent for legacy action\n */\n private async getConsent(action: UIAction): Promise<boolean> {\n const message = `Allow action: ${action.description || action.type} on ${action.selector}?`;\n return confirm(message);\n }\n\n /**\n * Get user consent for hybrid action\n */\n private async getHybridConsent(action: HybridUIAction): Promise<boolean> {\n const targetDesc = action.target.text || action.target.selector || 'element';\n const message = `Allow \"${action.action}\" on \"${targetDesc}\"?\\n${action.description || ''}`;\n return confirm(message);\n }\n\n /**\n * Execute the legacy action\n */\n private async execute(action: UIAction): Promise<boolean> {\n // SPECIAL HANDLING: Virtual selectors with data-option-text or data-label\n // These attributes don't exist in DOM, they're hints for the SDK\n if (action.type === 'click') {\n // Check for dropdown option selector\n const optionText = this.parseOptionTextFromSelector(action.selector);\n if (optionText) {\n console.log('[ActionExecutor] Virtual selector detected - finding option by text:', optionText);\n const option = this.findDropdownOption(optionText);\n if (option) {\n this.performClick(option);\n return true;\n }\n console.warn('[ActionExecutor] Option not found by text:', optionText);\n return false;\n }\n\n // Check for labeled combobox selector\n const labelText = this.parseLabelFromSelector(action.selector);\n if (labelText) {\n console.log('[ActionExecutor] Virtual selector detected - finding combobox by label:', labelText);\n const combobox = this.findComboboxByLabel(labelText);\n if (combobox) {\n this.handleComboboxClick(combobox);\n return true;\n }\n console.warn('[ActionExecutor] Combobox not found by label:', labelText);\n return false;\n }\n }\n\n // Strip virtual attributes from selector for querySelector\n const cleanSelector = this.stripVirtualAttributes(action.selector);\n const element = document.querySelector(cleanSelector) as HTMLElement;\n if (!element) {\n console.warn('[ActionExecutor] Element not found:', cleanSelector);\n return false;\n }\n\n switch (action.type) {\n case 'click':\n // Use simulateClick for proper dropdown/React handling\n this.simulateClick(element, action.selector);\n break;\n\n case 'type':\n if (element instanceof HTMLInputElement || element instanceof HTMLTextAreaElement) {\n element.focus();\n element.value = action.value || '';\n element.dispatchEvent(new Event('input', { bubbles: true }));\n element.dispatchEvent(new Event('change', { bubbles: true }));\n }\n break;\n\n case 'select':\n // Use dropdown handling for select actions\n const combobox = this.findComboboxInput(element);\n if (combobox) {\n // Open the dropdown first\n this.handleComboboxClick(combobox);\n // Wait for dropdown to open, then select value\n await new Promise(resolve => setTimeout(resolve, 200));\n if (action.value) {\n const option = this.findDropdownOption(action.value);\n if (option) {\n this.performClick(option);\n }\n }\n } else if (element instanceof HTMLSelectElement) {\n element.value = action.value || '';\n element.dispatchEvent(new Event('change', { bubbles: true }));\n }\n break;\n\n case 'hover':\n element.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }));\n element.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));\n break;\n\n case 'scroll':\n element.scrollIntoView({ behavior: 'smooth', block: 'center' });\n break;\n\n default:\n console.warn('[ActionExecutor] Unknown action type:', action.type);\n return false;\n }\n\n return true;\n }\n}\n\n/**\n * PageTracker - Tracks user interactions and sends them as metadata\n * Now integrated with DOMIntrospector for immediate DOM capture after actions.\n * Tracks focus/blur and keyboard events for React/SPA form interactions.\n */\nclass PageTracker {\n private sdk: OnboardingSDK;\n private domIntrospector: DOMIntrospector | null = null;\n private lastUrl: string = '';\n private clickHandler: ((e: MouseEvent) => void) | null = null;\n private focusHandler: ((e: FocusEvent) => void) | null = null;\n private blurHandler: ((e: FocusEvent) => void) | null = null;\n private inputHandler: ((e: Event) => void) | null = null;\n private keydownHandler: ((e: KeyboardEvent) => void) | null = null;\n private inputDebounceTimers: Map<Element, ReturnType<typeof setTimeout>> = new Map();\n private isTracking: boolean = false;\n\n // Scroll tracking for Fast Execution System\n private scrollHandler: (() => void) | null = null;\n private scrollDebounceTimer: ReturnType<typeof setTimeout> | null = null;\n\n constructor(sdk: OnboardingSDK) {\n this.sdk = sdk;\n this.lastUrl = window.location.href;\n }\n\n /**\n * Set the DOM introspector for immediate capture triggers\n */\n setDOMIntrospector(introspector: DOMIntrospector) {\n this.domIntrospector = introspector;\n console.log('[PageTracker] DOMIntrospector set for sync captures');\n }\n\n /**\n * Start tracking page events\n */\n start() {\n if (this.isTracking) return;\n this.isTracking = true;\n console.log('[PageTracker] Starting page event tracking');\n\n // Send initial page context\n this.sendPageMetadata();\n\n // Track URL changes (SPA navigation)\n this.setupUrlTracking();\n\n // Track clicks\n this.clickHandler = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n if (!target) return;\n\n // Skip our own SDK widget elements\n if (isSDKWidget(target)) return;\n\n // Get rich element metadata for better replay targeting\n const metadata = this.getElementMetadata(target);\n\n // Determine event source: bot action vs user action\n // This allows the server to distinguish between events and tag them appropriately\n const source = ((this.sdk as any)._botActionDepth > 0) ? 'bot' : 'user';\n\n this.sdk.sendMetadata({\n type: 'click',\n selector: metadata.selector,\n text: metadata.text,\n tagName: metadata.tagName,\n // Include rich targeting data for HybridTargetResolver\n role: metadata.role,\n ariaLabel: metadata.ariaLabel,\n placeholder: metadata.placeholder,\n labelText: metadata.labelText,\n timestamp: Date.now(),\n source: source // 'bot' or 'user' - helps server format LLM context\n });\n\n console.log(`[PageTracker] Click (${source}):`, metadata.selector, metadata.labelText ? `(label: ${metadata.labelText})` : '');\n\n // SYNC: Trigger immediate DOM capture after click\n // Small delay to allow DOM to update from the click action\n if (this.domIntrospector) {\n setTimeout(() => {\n this.domIntrospector?.captureAndSendImmediate('post-click');\n }, 100);\n }\n };\n document.addEventListener('click', this.clickHandler, true);\n\n // Track scroll events (debounced) - important for Fast Execution System\n // Captures DOM after user scrolls to reveal new content\n this.scrollHandler = () => {\n // Skip scroll tracking during fast execution mode (programmatic scrolling)\n if ((this.sdk as any).fastExecutionMode) {\n return;\n }\n\n if (this.scrollDebounceTimer) {\n clearTimeout(this.scrollDebounceTimer);\n }\n\n this.scrollDebounceTimer = setTimeout(() => {\n // Double-check fast mode in case it changed during debounce\n if ((this.sdk as any).fastExecutionMode) {\n return;\n }\n\n console.log('[PageTracker] Scroll detected, capturing DOM');\n\n // Send scroll metadata\n this.sdk.sendMetadata({\n type: 'scroll',\n scrollY: window.scrollY,\n scrollX: window.scrollX,\n viewportHeight: window.innerHeight,\n documentHeight: document.documentElement.scrollHeight,\n timestamp: Date.now()\n });\n\n // Trigger DOM capture after scroll settles\n if (this.domIntrospector) {\n this.domIntrospector.captureAndSendImmediate('post-scroll');\n }\n }, 200); // 200ms debounce\n };\n window.addEventListener('scroll', this.scrollHandler, { passive: true });\n\n // Track focus events on inputs\n // Important for React/SPA apps where focusing can trigger dropdowns, autocomplete, etc.\n this.focusHandler = (e: FocusEvent) => {\n const target = e.target as HTMLElement;\n if (!target || !this.isInteractiveElement(target)) return;\n\n // Skip SDK widget elements\n if (isSDKWidget(target)) return;\n\n const metadata = this.getElementMetadata(target);\n const inputType = (target as HTMLInputElement).type || '';\n\n this.sdk.sendMetadata({\n type: 'focus',\n selector: metadata.selector,\n tagName: metadata.tagName,\n inputType,\n role: metadata.role,\n ariaLabel: metadata.ariaLabel,\n placeholder: metadata.placeholder,\n labelText: metadata.labelText,\n timestamp: Date.now()\n });\n\n console.log('[PageTracker] Focus:', metadata.tagName, metadata.labelText ? `(label: ${metadata.labelText})` : '');\n\n // SYNC: Capture DOM when user focuses on input - autocomplete/dropdowns may appear\n if (this.domIntrospector && this.isInputElement(target)) {\n setTimeout(() => {\n this.domIntrospector?.captureAndSendImmediate('post-focus');\n }, 150); // Delay for dropdowns/autocomplete to appear\n }\n };\n document.addEventListener('focus', this.focusHandler, true);\n\n // Track blur events\n // Important for React/SPA apps where blur can trigger validation, state updates, etc.\n this.blurHandler = (e: FocusEvent) => {\n const target = e.target as HTMLElement;\n if (!target || !this.isInteractiveElement(target)) return;\n\n // Skip SDK widget elements\n if (isSDKWidget(target)) return;\n\n const tagName = target.tagName.toLowerCase();\n\n this.sdk.sendMetadata({\n type: 'blur',\n selector: this.getSelector(target),\n tagName,\n timestamp: Date.now()\n });\n\n console.log('[PageTracker] Blur:', tagName);\n\n // SYNC: Capture DOM after blur - form validation, dropdowns closing, state changes\n if (this.domIntrospector && this.isInputElement(target)) {\n setTimeout(() => {\n this.domIntrospector?.captureAndSendImmediate('post-blur');\n }, 200); // Delay for validation messages, state updates\n }\n };\n document.addEventListener('blur', this.blurHandler, true);\n\n // Track form inputs (debounced)\n this.inputHandler = (e: Event) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n if (!target) return;\n\n // Skip SDK widget elements\n if (isSDKWidget(target)) return;\n\n // Clear existing debounce timer for this element\n const existingTimer = this.inputDebounceTimers.get(target);\n if (existingTimer) clearTimeout(existingTimer);\n\n // Debounce input events to avoid flooding\n const timer = setTimeout(() => {\n const metadata = this.getElementMetadata(target);\n const fieldName = target.name || target.id || target.placeholder || metadata.labelText || 'field';\n\n this.sdk.sendMetadata({\n type: 'form_input',\n selector: metadata.selector,\n field: fieldName,\n inputType: target.type || 'text',\n // Don't send actual value for privacy\n hasValue: !!target.value,\n role: metadata.role,\n ariaLabel: metadata.ariaLabel,\n placeholder: metadata.placeholder,\n labelText: metadata.labelText,\n timestamp: Date.now()\n });\n\n console.log('[PageTracker] Form input:', fieldName, metadata.labelText ? `(label: ${metadata.labelText})` : '');\n this.inputDebounceTimers.delete(target);\n\n // SYNC: Trigger immediate DOM capture after form input\n if (this.domIntrospector) {\n this.domIntrospector.captureAndSendImmediate('post-input');\n }\n }, 500);\n\n this.inputDebounceTimers.set(target, timer);\n };\n document.addEventListener('input', this.inputHandler, true);\n\n // Track keyboard events (Enter key especially triggers actions in React apps)\n this.keydownHandler = (e: KeyboardEvent) => {\n // Defensive check: ensure target is an HTMLElement\n // (e.target can be Document if event is dispatched on document directly)\n const target = e.target;\n if (!target || !(target instanceof HTMLElement)) return;\n\n // Skip our own SDK widget elements\n if (isSDKWidget(target)) return;\n\n // Only track actionable keys on input elements\n if (!this.isInputElement(target)) return;\n\n const actionKeys = ['Enter', 'Escape', 'Tab'];\n if (!actionKeys.includes(e.key)) return;\n\n const tagName = target.tagName.toLowerCase();\n const inputType = (target as HTMLInputElement).type || '';\n\n this.sdk.sendMetadata({\n type: 'keydown',\n key: e.key,\n selector: this.getSelector(target),\n tagName,\n inputType,\n timestamp: Date.now()\n });\n\n console.log('[PageTracker] Keydown:', e.key, 'on', tagName);\n\n // SYNC: Enter key often triggers search, form submit, dropdown selection\n // Tab moves focus which can trigger UI changes\n // Escape often closes modals/dropdowns\n if (this.domIntrospector) {\n const delay = e.key === 'Enter' ? 300 : 150; // Longer delay for Enter (API calls, etc)\n setTimeout(() => {\n this.domIntrospector?.captureAndSendImmediate(`post-keydown-${e.key.toLowerCase()}`);\n }, delay);\n }\n };\n document.addEventListener('keydown', this.keydownHandler, true);\n\n console.log('[PageTracker] Event listeners attached');\n }\n\n /**\n * Stop tracking page events\n */\n stop() {\n if (!this.isTracking) return;\n this.isTracking = false;\n\n if (this.clickHandler) {\n document.removeEventListener('click', this.clickHandler, true);\n this.clickHandler = null;\n }\n if (this.focusHandler) {\n document.removeEventListener('focus', this.focusHandler, true);\n this.focusHandler = null;\n }\n if (this.blurHandler) {\n document.removeEventListener('blur', this.blurHandler, true);\n this.blurHandler = null;\n }\n if (this.inputHandler) {\n document.removeEventListener('input', this.inputHandler, true);\n this.inputHandler = null;\n }\n if (this.keydownHandler) {\n document.removeEventListener('keydown', this.keydownHandler, true);\n this.keydownHandler = null;\n }\n\n // Remove scroll handler\n if (this.scrollHandler) {\n window.removeEventListener('scroll', this.scrollHandler);\n this.scrollHandler = null;\n }\n if (this.scrollDebounceTimer) {\n clearTimeout(this.scrollDebounceTimer);\n this.scrollDebounceTimer = null;\n }\n\n // Clear all debounce timers\n this.inputDebounceTimers.forEach(timer => clearTimeout(timer));\n this.inputDebounceTimers.clear();\n\n console.log('[PageTracker] Stopped tracking');\n }\n\n /**\n * Setup URL change tracking for SPAs\n */\n private setupUrlTracking() {\n // Check for URL changes periodically (handles pushState/replaceState)\n setInterval(() => {\n const currentUrl = window.location.href;\n if (currentUrl !== this.lastUrl) {\n this.lastUrl = currentUrl;\n this.sendPageMetadata();\n }\n }, 1000);\n\n // Also listen for popstate (back/forward buttons)\n window.addEventListener('popstate', () => {\n setTimeout(() => this.sendPageMetadata(), 100);\n });\n }\n\n /**\n * Send current page metadata\n */\n sendPageMetadata() {\n const url = getSanitizedUrl();\n\n this.sdk.sendMetadata({\n type: 'page_metadata',\n url,\n title: document.title,\n pathname: window.location.pathname,\n timestamp: Date.now()\n });\n\n console.log('[PageTracker] Page metadata sent:', url);\n }\n\n /**\n * Check if element is interactive\n */\n private isInteractiveElement(el: HTMLElement): boolean {\n const tagName = el.tagName.toLowerCase();\n return ['input', 'textarea', 'select', 'button'].includes(tagName) ||\n el.contentEditable === 'true';\n }\n\n /**\n * Check if element is a text input (focus/blur can trigger UI changes)\n */\n private isInputElement(el: HTMLElement): boolean {\n const tagName = el.tagName.toLowerCase();\n if (tagName === 'textarea') return true;\n if (tagName === 'input') {\n const type = (el as HTMLInputElement).type || 'text';\n // Text-like inputs that can trigger search, autocomplete, etc.\n return ['text', 'search', 'email', 'password', 'tel', 'url', 'number'].includes(type);\n }\n if (el.contentEditable === 'true') return true;\n return false;\n }\n\n /**\n * Get unique selector for element - prioritizes stable, semantic selectors\n */\n private getSelector(element: Element): string {\n // Priority 1: ID (most stable)\n if (element.id && !element.id.match(/^(react-select-|:r|radix-)/)) {\n return `#${CSS.escape(element.id)}`;\n }\n\n // Priority 2: Stable semantic selectors\n const role = element.getAttribute('role');\n const ariaLabel = element.getAttribute('aria-label');\n const name = element.getAttribute('name');\n const dataTestId = element.getAttribute('data-testid') || element.getAttribute('data-test-id');\n const placeholder = (element as HTMLInputElement).placeholder;\n\n // Build selector from most stable attributes\n const tag = element.tagName.toLowerCase();\n let selector = tag;\n\n // data-testid is most stable (explicitly for testing)\n if (dataTestId) {\n return `[data-testid=\"${dataTestId}\"]`;\n }\n\n // Role-based selector (ARIA roles are semantic and stable)\n if (role) {\n selector = `${tag}[role=\"${role}\"]`;\n // If there might be multiple, add distinguishing attribute\n if (ariaLabel) {\n selector += `[aria-label=\"${ariaLabel}\"]`;\n } else if (name) {\n selector += `[name=\"${name}\"]`;\n }\n return selector;\n }\n\n // Name attribute (common for form inputs)\n if (name) {\n return `${tag}[name=\"${name}\"]`;\n }\n\n // Placeholder (useful for inputs)\n if (placeholder) {\n return `${tag}[placeholder=\"${placeholder}\"]`;\n }\n\n // aria-label\n if (ariaLabel) {\n return `${tag}[aria-label=\"${ariaLabel}\"]`;\n }\n\n // Priority 3: Build a path but prefer stable classes\n const path: string[] = [];\n let current: Element | null = element;\n let depth = 0;\n\n while (current && current !== document.body && depth < 5) {\n let partSelector = current.tagName.toLowerCase();\n\n // Check for stable attributes on this element\n const currentRole = current.getAttribute('role');\n const currentTestId = current.getAttribute('data-testid');\n\n if (currentTestId) {\n path.unshift(`[data-testid=\"${currentTestId}\"]`);\n break; // Found a stable anchor\n }\n\n if (currentRole) {\n partSelector += `[role=\"${currentRole}\"]`;\n } else if (current.className && typeof current.className === 'string') {\n // Filter out generated/volatile classes\n const classes = current.className.split(' ')\n .filter(c => c &&\n !c.startsWith('css-') && // Emotion/styled-components\n !c.startsWith('sc-') && // styled-components\n !c.startsWith('ng-') && // Angular\n !c.startsWith('_') && // Private\n !c.match(/^[a-z]{6,}$/) && // Random hashes\n !c.match(/^\\d/) // Starts with number\n )\n .slice(0, 2);\n\n if (classes.length > 0) {\n partSelector += `.${classes.join('.')}`;\n }\n }\n\n path.unshift(partSelector);\n current = current.parentElement;\n depth++;\n }\n\n return path.join(' > ');\n }\n\n /**\n * Get rich element metadata for HybridTarget resolution\n * This provides all the information needed for multi-strategy element finding\n */\n private getElementMetadata(element: Element): {\n selector: string;\n text: string;\n tagName: string;\n role?: string;\n ariaLabel?: string;\n placeholder?: string;\n labelText?: string;\n } {\n const htmlEl = element as HTMLElement;\n const selector = this.getSelector(element);\n const text = htmlEl.innerText?.trim().substring(0, 100) || '';\n const tagName = element.tagName.toLowerCase();\n\n // Gather ARIA/semantic attributes\n const role = element.getAttribute('role') || undefined;\n const ariaLabel = element.getAttribute('aria-label') || undefined;\n const placeholder = (element as HTMLInputElement).placeholder || undefined;\n\n // Try to find associated label\n let labelText: string | undefined;\n\n // Check aria-labelledby\n const ariaLabelledBy = element.getAttribute('aria-labelledby');\n if (ariaLabelledBy) {\n const labelEl = document.getElementById(ariaLabelledBy.split(/\\s+/)[0]);\n if (labelEl) {\n labelText = labelEl.textContent?.trim();\n }\n }\n\n // Check for label[for] association\n const inputId = element.getAttribute('id');\n if (!labelText && inputId) {\n try {\n const labelFor = document.querySelector(`label[for=\"${CSS.escape(inputId)}\"]`);\n if (labelFor) {\n labelText = labelFor.textContent?.trim().replace(/\\*$/, '').trim();\n }\n } catch (e) {\n // Invalid ID for CSS selector, skip\n }\n }\n\n // Check parent container for label (use specific container classes, not generic 'div')\n if (!labelText) {\n const container = element.closest('.MuiFormControl-root, fieldset, [class*=\"form-group\"], [class*=\"form-field\"], [class*=\"field-wrapper\"]');\n if (container) {\n // Look for direct child label only (not nested in other form fields)\n const label = container.querySelector(':scope > label, :scope > .MuiFormLabel-root, :scope > div > label');\n if (label) {\n // Make sure this label is visually associated with this element\n const inputs = container.querySelectorAll('input, select, textarea, [role=\"combobox\"]');\n // Check if there's only one input OR if our element contains one of the inputs\n const elementContainsInput = Array.from(inputs).some(input => element.contains(input) || element === input);\n if (inputs.length === 1 || elementContainsInput) {\n labelText = label.textContent?.trim().replace(/\\*$/, '').trim();\n }\n }\n }\n }\n\n return {\n selector,\n text,\n tagName,\n role,\n ariaLabel,\n placeholder,\n labelText\n };\n }\n}\n\n// ============================================================================\n// FAST EXECUTION SYSTEM - Phase 1 & 2 Implementation\n// ============================================================================\n\n/**\n * BatchStep - Represents a single step in a batched navigation sequence\n */\ninterface BatchStep {\n action: 'click' | 'wait' | 'scroll';\n target?: HybridTarget;\n condition?: 'page_stable' | 'element_visible' | 'loading_complete';\n waitMs?: number;\n}\n\n/**\n * BatchedActionRequest - Request to execute multiple actions in sequence\n */\ninterface BatchedActionRequest {\n steps: BatchStep[];\n introSpeech?: string;\n completionCallback?: () => void;\n}\n\n/**\n * LoadingDetector - Detects loading indicators on the page\n * Used to wait for page to be ready before proceeding\n */\nclass LoadingDetector {\n private loadingSelectors = [\n '[role=\"progressbar\"]',\n '.loading', '.spinner', '.loader',\n '[aria-busy=\"true\"]',\n '[class*=\"loading\"]', '[class*=\"spinner\"]',\n 'svg[class*=\"animate-spin\"]',\n '[data-loading=\"true\"]',\n '.MuiCircularProgress-root',\n '.MuiLinearProgress-root',\n ];\n\n /**\n * Check if page is currently showing loading indicators\n */\n isLoading(): boolean {\n for (const selector of this.loadingSelectors) {\n try {\n const el = document.querySelector(selector);\n if (el && this.isVisible(el as HTMLElement)) {\n console.log('[LoadingDetector] Found loading indicator:', selector);\n return true;\n }\n } catch (e) {\n // Ignore invalid selector errors\n }\n }\n return false;\n }\n\n /**\n * Wait for loading indicators to disappear\n * @param timeoutMs Maximum time to wait\n * @returns true if loading completed, false if timed out\n */\n async waitForLoadingComplete(timeoutMs = 5000): Promise<boolean> {\n const start = Date.now();\n console.log('[LoadingDetector] Waiting for loading to complete...');\n\n while (Date.now() - start < timeoutMs) {\n if (!this.isLoading()) {\n // Wait a bit more to ensure stability\n await new Promise(r => setTimeout(r, 100));\n if (!this.isLoading()) {\n console.log('[LoadingDetector] Loading complete');\n return true;\n }\n }\n await new Promise(r => setTimeout(r, 50));\n }\n\n console.warn('[LoadingDetector] Timed out waiting for loading');\n return false; // Timed out\n }\n\n private isVisible(el: HTMLElement): boolean {\n const style = getComputedStyle(el);\n // Check basic visibility properties\n if (style.visibility === 'hidden' || style.display === 'none' || style.opacity === '0') {\n return false;\n }\n // offsetParent is null for hidden elements, but also for fixed/sticky positioned elements\n // So we need to check position explicitly for those cases\n if (el.offsetParent === null) {\n const position = style.position;\n if (position !== 'fixed' && position !== 'sticky') {\n return false;\n }\n }\n // Also check if element has dimensions\n const rect = el.getBoundingClientRect();\n return rect.width > 0 && rect.height > 0;\n }\n}\n\n/**\n * DOMStabilityChecker - Waits for DOM to settle (no mutations)\n * Useful for detecting when SPA navigation has completed\n */\nclass DOMStabilityChecker {\n /**\n * Wait for DOM to be stable (no mutations for specified duration)\n * @param stableMs Duration with no mutations to consider stable\n * @param maxWaitMs Maximum total time to wait (prevents infinite waiting)\n */\n async waitForStable(stableMs: number = 300, maxWaitMs: number = 5000): Promise<void> {\n return new Promise((resolve) => {\n let timeoutId: ReturnType<typeof setTimeout>;\n let maxTimeoutId: ReturnType<typeof setTimeout>;\n\n const cleanup = () => {\n clearTimeout(timeoutId);\n clearTimeout(maxTimeoutId);\n observer.disconnect();\n };\n\n const observer = new MutationObserver(() => {\n // Reset timer on any mutation\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n cleanup();\n console.log('[DOMStabilityChecker] DOM stable');\n resolve();\n }, stableMs);\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n });\n\n // Initial timeout in case no mutations\n timeoutId = setTimeout(() => {\n cleanup();\n console.log('[DOMStabilityChecker] DOM stable (no mutations)');\n resolve();\n }, stableMs);\n\n // Maximum wait timeout to prevent infinite waiting\n maxTimeoutId = setTimeout(() => {\n cleanup();\n console.warn('[DOMStabilityChecker] Max wait time reached, proceeding anyway');\n resolve();\n }, maxWaitMs);\n });\n }\n}\n\n/**\n * NavigationCompleteDetector - Detects when SPA navigation has completed\n * Monitors URL changes, loading indicators, and DOM stability\n */\nclass NavigationCompleteDetector {\n private lastUrl: string = '';\n private urlChangeCallback: ((url: string) => void) | null = null;\n private loadingDetector: LoadingDetector;\n private domStabilityChecker: DOMStabilityChecker;\n private originalPushState: typeof history.pushState | null = null;\n private originalReplaceState: typeof history.replaceState | null = null;\n private popstateHandler: (() => void) | null = null;\n private isStarted: boolean = false;\n\n constructor() {\n this.lastUrl = window.location.href;\n this.loadingDetector = new LoadingDetector();\n this.domStabilityChecker = new DOMStabilityChecker();\n }\n\n /**\n * Start monitoring for navigation completion\n */\n start(onNavigationComplete: (url: string) => void) {\n // Prevent double-start - stop first if already started\n if (this.isStarted) {\n console.warn('[NavigationCompleteDetector] Already started, stopping first');\n this.stop();\n }\n\n console.log('[NavigationCompleteDetector] Starting navigation monitoring');\n this.isStarted = true;\n this.urlChangeCallback = onNavigationComplete;\n this.lastUrl = window.location.href; // Reset last URL\n\n // Listen for URL changes (SPA navigation)\n this.setupUrlObserver();\n\n // Listen for popstate (browser back/forward)\n this.popstateHandler = () => this.handleUrlChange();\n window.addEventListener('popstate', this.popstateHandler);\n }\n\n private setupUrlObserver() {\n // Store original methods only if not already stored (prevents double-wrapping)\n if (!this.originalPushState) {\n this.originalPushState = history.pushState.bind(history);\n }\n if (!this.originalReplaceState) {\n this.originalReplaceState = history.replaceState.bind(history);\n }\n\n const self = this;\n\n history.pushState = function (...args: Parameters<typeof history.pushState>) {\n self.originalPushState!(...args);\n self.handleUrlChange();\n };\n\n history.replaceState = function (...args: Parameters<typeof history.replaceState>) {\n self.originalReplaceState!(...args);\n self.handleUrlChange();\n };\n }\n\n private handleUrlChange = async () => {\n const newUrl = window.location.href;\n if (newUrl === this.lastUrl) return;\n\n console.log('[NavigationCompleteDetector] URL changed:', newUrl);\n this.lastUrl = newUrl;\n\n // Wait for page to stabilize (with timeout)\n try {\n await this.waitForPageStable();\n } catch (e) {\n console.warn('[NavigationCompleteDetector] Error waiting for page stable:', e);\n }\n\n // Signal navigation complete with sanitized URL\n if (this.urlChangeCallback) {\n this.urlChangeCallback(getSanitizedUrl());\n }\n };\n\n /**\n * Wait for page to be stable after navigation\n * Has overall timeout to prevent hanging\n */\n async waitForPageStable(): Promise<void> {\n console.log('[NavigationCompleteDetector] Waiting for page to stabilize...');\n\n const maxWaitTime = 8000; // Overall max wait\n const startTime = Date.now();\n\n // Wait for loading indicators to disappear (max 5s)\n await this.loadingDetector.waitForLoadingComplete(5000);\n\n // Check if we still have time for DOM stability check\n const remaining = maxWaitTime - (Date.now() - startTime);\n if (remaining > 300) {\n // Wait for DOM to settle (no mutations for 300ms, max remaining time)\n await this.domStabilityChecker.waitForStable(300, Math.min(remaining, 3000));\n }\n\n console.log('[NavigationCompleteDetector] Page stable');\n }\n\n /**\n * Stop monitoring\n */\n stop() {\n if (!this.isStarted) return;\n\n console.log('[NavigationCompleteDetector] Stopping navigation monitoring');\n this.isStarted = false;\n\n if (this.popstateHandler) {\n window.removeEventListener('popstate', this.popstateHandler);\n this.popstateHandler = null;\n }\n\n // Restore original history methods\n if (this.originalPushState) {\n history.pushState = this.originalPushState;\n this.originalPushState = null;\n }\n if (this.originalReplaceState) {\n history.replaceState = this.originalReplaceState;\n this.originalReplaceState = null;\n }\n\n this.urlChangeCallback = null;\n }\n}\n\n/**\n * BatchedActionExecutor - Executes multiple UI actions in rapid sequence\n * Used for fast navigation without LLM round-trips between steps\n * \n * Example: Settings → Cloud Accounts → Onboard Account in ~800ms\n */\nclass BatchedActionExecutor {\n private overlay: OverlaySystem;\n private loadingDetector: LoadingDetector;\n private domIntrospector: DOMIntrospector | null = null;\n private isExecuting: boolean = false;\n\n constructor(overlay: OverlaySystem, _actionExecutor: ActionExecutor) {\n this.overlay = overlay;\n // Note: We use direct click simulation for speed instead of actionExecutor\n this.loadingDetector = new LoadingDetector();\n }\n\n /**\n * Set DOM introspector for capturing snapshots after each step\n */\n setDOMIntrospector(introspector: DOMIntrospector) {\n this.domIntrospector = introspector;\n console.log('[BatchedActionExecutor] DOMIntrospector set for step captures');\n }\n\n /**\n * Check if currently executing a batch\n */\n get isBusy(): boolean {\n return this.isExecuting;\n }\n\n /**\n * Execute a batch of navigation steps quickly\n * @returns Object with success status and completedSteps count\n */\n async executeBatch(request: BatchedActionRequest): Promise<{ success: boolean; completedSteps: number }> {\n if (this.isExecuting) {\n console.warn('[BatchedActionExecutor] Already executing a batch');\n return { success: false, completedSteps: 0 };\n }\n\n this.isExecuting = true;\n let completedSteps = 0;\n console.log(`[BatchedActionExecutor] ⚡ Starting fast batch with ${request.steps.length} steps`);\n\n try {\n for (let i = 0; i < request.steps.length; i++) {\n const step = request.steps[i];\n console.log(`[BatchedActionExecutor] Step ${i + 1}/${request.steps.length}: ${step.action}`);\n\n const success = await this.executeStep(step);\n\n if (!success) {\n console.error(`[BatchedActionExecutor] ❌ Step ${i + 1} failed, aborting batch (completed ${completedSteps} steps)`);\n return { success: false, completedSteps };\n }\n\n completedSteps++;\n // Delay between steps - allow UI to settle\n // 300ms for clicks (need time for UI reaction), 100ms for waits (already waited)\n const delayMs = step.action === 'wait' ? 100 : 300;\n await new Promise(r => setTimeout(r, delayMs));\n }\n\n console.log('[BatchedActionExecutor] ✅ Batch completed successfully');\n\n if (request.completionCallback) {\n request.completionCallback();\n }\n\n return { success: true, completedSteps };\n } finally {\n this.isExecuting = false;\n this.overlay.clearHighlight();\n }\n }\n\n private async executeStep(step: BatchStep): Promise<boolean> {\n switch (step.action) {\n case 'click':\n return await this.executeClickStep(step);\n\n case 'wait':\n return await this.executeWaitStep(step);\n\n case 'scroll':\n return await this.executeScrollStep(step);\n\n default:\n console.warn(`[BatchedActionExecutor] Unknown action: ${step.action}`);\n return false;\n }\n }\n\n /**\n * Execute a click step with proper validation\n * Ensures we click the RIGHT element, not just any matching element\n */\n private async executeClickStep(step: BatchStep): Promise<boolean> {\n if (!step.target) {\n console.error('[BatchedActionExecutor] Click step missing target');\n return false;\n }\n\n const expectedText = step.target.text?.toLowerCase().trim();\n const expectedTag = step.target.tag?.toLowerCase();\n\n console.log('[BatchedActionExecutor] Looking for element:', {\n text: step.target.text,\n tag: step.target.tag,\n selector: step.target.selector,\n ariaLabel: step.target.ariaLabel,\n role: step.target.role,\n labelText: step.target.labelText,\n selectorFallbacks: step.target.selectorFallbacks?.length\n ? `${step.target.selectorFallbacks.length} fallback(s)`\n : undefined,\n });\n\n // Resolve element with retries\n let element: HTMLElement | null = null;\n const maxRetries = 3;\n const retryDelays = [300, 500, 800]; // Increasing delays\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n if (attempt > 0) {\n console.log(`[BatchedActionExecutor] Retry ${attempt}/${maxRetries} in ${retryDelays[attempt - 1]}ms...`);\n await new Promise(r => setTimeout(r, retryDelays[attempt - 1]));\n }\n\n element = HybridTargetResolver.resolveTarget(step.target);\n\n if (element) {\n // CRITICAL: Validate the found element matches our expectations\n const foundText = element.textContent?.trim().toLowerCase() || '';\n const foundTag = element.tagName.toLowerCase();\n\n // Strict text validation - must contain expected text\n if (expectedText && !foundText.includes(expectedText)) {\n console.warn(`[BatchedActionExecutor] ⚠️ Found element text \"${foundText.slice(0, 50)}\" doesn't match expected \"${expectedText}\"`);\n element = null; // Reject this element, try again\n continue;\n }\n\n // Tag validation if specified (warn but don't reject - container elements may differ)\n if (expectedTag && foundTag !== expectedTag) {\n console.log(`[BatchedActionExecutor] Note: Found ${foundTag} instead of expected ${expectedTag} (acceptable if it contains the text)`);\n }\n\n // Element is valid\n break;\n }\n }\n\n if (!element) {\n console.error('[BatchedActionExecutor] ❌ Could not find matching element after retries:', step.target);\n // Log available elements that might match partially\n if (expectedText) {\n const allWithText = Array.from(document.querySelectorAll('*'))\n .filter(el => el.textContent?.toLowerCase().includes(expectedText))\n .slice(0, 5)\n .map(el => `${el.tagName.toLowerCase()}: \"${el.textContent?.trim().slice(0, 50)}\"`);\n if (allWithText.length > 0) {\n console.log('[BatchedActionExecutor] Similar elements found:', allWithText);\n }\n }\n return false;\n }\n\n console.log('[BatchedActionExecutor] ✓ Found element:', element.tagName, element.textContent?.slice(0, 30));\n\n // Scroll into view with time for layout to settle\n element.scrollIntoView({ behavior: 'auto', block: 'center' });\n await new Promise(r => setTimeout(r, 150));\n\n // Brief highlight\n this.overlay.highlightResolvedElement(element, {\n color: 'rgba(124, 58, 237, 0.4)',\n padding: 4\n });\n await new Promise(r => setTimeout(r, 100));\n\n // Direct click\n this.simulateClick(element);\n\n // Allow UI to react to click\n await new Promise(r => setTimeout(r, 100));\n this.overlay.clearHighlight();\n\n // CRITICAL: Capture DOM after each click step\n // This ensures server has fresh state for next step resolution\n if (this.domIntrospector) {\n await new Promise(r => setTimeout(r, 100)); // Extra settle time for React\n this.domIntrospector.captureAndSendImmediate('post-batch-step-click');\n }\n\n return true;\n }\n\n /**\n * Simulate a click on an element\n * Dispatches full sequence of mouse events for React/Vue/Angular compatibility\n */\n private simulateClick(element: HTMLElement): void {\n const rect = element.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n // Common event options\n const eventInit: MouseEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: centerX,\n clientY: centerY,\n screenX: centerX + window.screenX,\n screenY: centerY + window.screenY,\n button: 0,\n buttons: 1,\n };\n\n // Focus the element first (important for inputs and buttons)\n if (typeof element.focus === 'function') {\n element.focus();\n }\n\n // Dispatch mouse events for React/Vue/Angular compatibility\n element.dispatchEvent(new MouseEvent('mouseenter', { ...eventInit, bubbles: false }));\n element.dispatchEvent(new MouseEvent('mouseover', eventInit));\n element.dispatchEvent(new MouseEvent('mousedown', eventInit));\n element.dispatchEvent(new MouseEvent('mouseup', eventInit));\n element.dispatchEvent(new MouseEvent('click', eventInit));\n\n // For links, also trigger native click if href exists\n if (element.tagName === 'A' && (element as HTMLAnchorElement).href) {\n // The click event should handle navigation, but some SPAs intercept differently\n console.log('[BatchedActionExecutor] Clicked link:', (element as HTMLAnchorElement).href);\n }\n }\n\n private async executeWaitStep(step: BatchStep): Promise<boolean> {\n const condition = step.condition || 'page_stable';\n const timeout = step.waitMs || 5000; // Increased default timeout\n\n switch (condition) {\n case 'page_stable':\n await this.loadingDetector.waitForLoadingComplete(timeout);\n await new Promise(r => setTimeout(r, 400)); // More time for UI to settle\n return true;\n\n case 'loading_complete':\n return await this.loadingDetector.waitForLoadingComplete(timeout);\n\n case 'element_visible':\n if (!step.target) return true;\n return await this.waitForElement(step.target, timeout);\n\n default:\n await new Promise(r => setTimeout(r, step.waitMs || 500));\n return true;\n }\n }\n\n private async executeScrollStep(step: BatchStep): Promise<boolean> {\n if (!step.target) {\n console.warn('[BatchedActionExecutor] Scroll step has no target');\n return false;\n }\n\n const element = HybridTargetResolver.resolveTarget(step.target);\n if (!element) {\n console.warn('[BatchedActionExecutor] Scroll target not found:', step.target);\n // For scroll, we can continue even if element not found (non-critical)\n return true;\n }\n\n element.scrollIntoView({ behavior: 'auto', block: 'center' });\n await new Promise(r => setTimeout(r, 100));\n return true;\n }\n\n private async waitForElement(target: HybridTarget, timeout: number): Promise<boolean> {\n const start = Date.now();\n\n while (Date.now() - start < timeout) {\n const element = HybridTargetResolver.resolveTarget(target);\n if (element) return true;\n await new Promise(r => setTimeout(r, 100));\n }\n\n return false;\n }\n}\n\n/**\n * Main Onboarding SDK\n */\nexport class OnboardingSDK extends EventEmitter {\n private config: SDKConfig;\n private sessionId: string;\n private overlay: OverlaySystem;\n private capture: CanvasScreenshotCapture;\n private actionExecutor: ActionExecutor;\n private pipecatClient: PipecatClient | null = null;\n private transport: Transport | null = null;\n private isInitialized = false;\n private reactRoot: ReactDOM.Root | null = null;\n private reactContainer: HTMLDivElement | null = null;\n private agentState: 'idle' | 'connecting' | 'listening' | 'thinking' | 'speaking' | 'guiding' | 'paused' | 'minimized' = 'idle';\n private pausedSessionId: string | null = null; // UI state only - tracks which session is paused\n private pendingResumeSessionId: string | null = null; // Explicit resume intent - set only by resumeSession(), cleared after use\n private botTranscript: string = '';\n private userTranscript: string = '';\n private transcriptHistory: Array<{ id: string; role: 'user' | 'assistant'; content: string; timestamp: number }> = [];\n private lastUserTranscript: string = ''; // Track final user transcript for history\n private isConnected: boolean = false;\n private connectInFlight: boolean = false; // Guard against concurrent connect/cancel races\n private micEnabled: boolean = true; // Track actual mute state\n private userIsSpeaking: boolean = false; // Track if user is actively speaking\n private botIsSpeaking: boolean = false; // Track if bot is actively speaking\n private audioLevels: number[] = []; // Real-time audio levels for visualization\n private _discoveryPopupShown: boolean = false; // Track if discovery popup was shown this session\n private _pendingDiscoveryStart: boolean = false; // User chose discovery, waiting to start after connect\n private botAudioAnalyzer: AudioAnalyzer | null = null; // Audio analyzer for bot FFT\n private userAudioAnalyzer: AudioAnalyzer | null = null; // Audio analyzer for user mic FFT\n private userMicStream: MediaStream | null = null; // User's mic stream for analysis\n private audioElements: HTMLAudioElement[] = [];\n private pageTracker: PageTracker;\n private screenShareEnabled: boolean = false;\n private domIntrospector: DOMIntrospector;\n private accessibleSnapshot: AccessibleSnapshotCapture;\n\n // Fast Execution System\n private fastExecutionMode: boolean = false;\n private batchedActionExecutor: BatchedActionExecutor | null = null;\n private navigationCompleteDetector: NavigationCompleteDetector | null = null;\n\n // Bot Action Tracking - counter for nested/concurrent bot actions\n // Use counter instead of boolean to handle nested actions correctly\n private _botActionDepth: number = 0;\n\n // EndUser status from API (for skip onboarding logic)\n private endUserStatus: EndUserStatus | null = null;\n\n // UX Polish - Connection progress and returning user tracking\n private connectionProgress: { stage: 'initializing' | 'authenticating' | 'connecting' | 'joining' | 'ready' | 'error'; message: string; progress: number } | null = null;\n private isReturningUser: boolean = false;\n private _isMinimized: boolean = false;\n\n constructor(config: SDKConfig) {\n super();\n\n // Validate config\n if (!config.clientKey) {\n throw new Error('Client key is required');\n }\n\n // Set defaults\n // Use baked-in API URL from build (__FLOE_API_URL__) or fallback to localhost\n const defaultApiUrl = typeof __FLOE_API_URL__ !== 'undefined'\n ? __FLOE_API_URL__\n : 'http://localhost:3001';\n\n this.config = {\n apiUrl: defaultApiUrl, // Floe API URL (baked in at build time based on environment)\n enableVideo: false,\n enableAudio: true, // Default to audio enabled for voice\n enableScreenCapture: true,\n debug: false,\n ...config\n };\n\n // Initialize mic state from config\n this.micEnabled = this.config.enableAudio !== false;\n\n // Generate session ID\n this.sessionId = this.generateSessionId();\n\n // Initialize components\n this.overlay = new OverlaySystem();\n this.capture = new CanvasScreenshotCapture(this.config.redactionPatterns);\n this.actionExecutor = new ActionExecutor();\n this.pageTracker = new PageTracker(this);\n\n // Initialize DOM Introspection Layer\n this.domIntrospector = new DOMIntrospector();\n HybridTargetResolver.setDOMIntrospector(this.domIntrospector);\n\n // Initialize Accessible Snapshot capture (improved LLM-friendly DOM)\n this.accessibleSnapshot = new AccessibleSnapshotCapture();\n\n // Initialize Fast Execution System\n this.batchedActionExecutor = new BatchedActionExecutor(this.overlay, this.actionExecutor);\n this.batchedActionExecutor.setDOMIntrospector(this.domIntrospector); // For DOM captures after each step\n // Note: navigationCompleteDetector is created in setupAudioPlayback() to centralize initialization\n\n // Expose SDK instance globally for ActionExecutor to send metadata\n (window as any).__onboardingSDK = this;\n\n if (this.config.debug) {\n console.log('[OnboardingSDK] Initialized with config:', this.config);\n }\n }\n\n /**\n * Generate unique session ID\n */\n private generateSessionId(): string {\n return `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n }\n\n /**\n * Start screen sharing: sends the tab/window as a WebRTC video track to Pipecat.\n */\n private async startScreenShare() {\n try {\n // Enable screen share through Pipecat client\n if (this.pipecatClient) {\n await this.pipecatClient.enableScreenShare(true);\n this.screenShareEnabled = true;\n console.log(\"[OnboardingSDK] Screen share enabled\");\n this.renderReactUI();\n }\n } catch (error) {\n console.error(\"[OnboardingSDK] Screen share failed:\", error);\n this.screenShareEnabled = false;\n throw error;\n }\n }\n\n\n /**\n * Initialize the SDK and connect to servers\n */\n async init(): Promise<void> {\n if (this.isInitialized) {\n console.warn('[OnboardingSDK] Already initialized');\n return;\n }\n\n try {\n // Inject vanilla JS overlay\n this.overlay.inject();\n\n // Initialize React UI components\n this.initReactUI();\n\n // Check EndUser status from API if userInfo is provided\n // This determines if we should skip the onboarding modal for returning users\n if (this.config.userInfo && (this.config.userInfo.externalId || this.config.userInfo.email)) {\n await this.checkEndUserStatus();\n }\n\n // Determine if we should skip the onboarding modal\n const shouldSkipModal = this.shouldSkipOnboardingModal();\n\n if (shouldSkipModal) {\n // Skip welcome popup - show minimized state for returning users\n console.log('[OnboardingSDK] 🔄 Skipping onboarding modal for returning user');\n this._discoveryPopupShown = true; // Mark as handled\n this.isReturningUser = true; // Track that this is a returning user\n // Will show minimized floating button - user clicks to start\n } else if (this.config.enableDiscoveryPopup !== false) {\n // Show welcome popup BEFORE connecting\n // This ensures the user sees the choice before the bot starts\n console.log('[OnboardingSDK] 🎉 Showing welcome popup before connect');\n const startDiscovery = await this.showWelcomePopupAsync();\n this._discoveryPopupShown = true;\n this.markUserVisited();\n\n if (startDiscovery) {\n // User wants guided discovery - set flag for later\n this._pendingDiscoveryStart = true;\n console.log('[OnboardingSDK] User chose guided discovery - will start after connect');\n } else {\n console.log('[OnboardingSDK] User skipped discovery - normal flow');\n }\n }\n\n // Create Daily transport for WebRTC\n this.transport = new DailyTransport();\n\n // Initialize Pipecat client with shared callbacks\n this.pipecatClient = new PipecatClient({\n transport: this.transport,\n enableMic: this.config.enableAudio !== false,\n enableCam: this.config.enableVideo || false,\n enableScreenShare: this.config.enableScreenCapture || false,\n callbacks: this.createPipecatCallbacks(),\n });\n\n // Initialize devices\n await this.pipecatClient.initDevices();\n console.log('[OnboardingSDK] Devices initialized');\n\n // Setup audio playback for bot audio tracks\n this.setupAudioPlayback();\n\n // Always use floe-api proxy endpoint for Pipecat session start\n // The backend handles routing to local Pipecat or Pipecat Cloud based on environment\n const proxyEndpoint = `${this.config.apiUrl}/sites/start-session`;\n\n console.log('[OnboardingSDK] Starting session via floe-api proxy:', proxyEndpoint);\n\n // Build request data as plain serializable object\n const requestData: Record<string, any> = {\n clientKey: this.config.clientKey,\n origin: window.location.origin,\n sessionData: {\n sessionId: this.sessionId,\n createDailyRoom: true,\n dailyRoomProperties: { start_video_off: true },\n }\n };\n\n // Add user info if provided\n if (this.config.userInfo) {\n requestData.sessionData.userInfo = this.config.userInfo;\n }\n\n await this.pipecatClient.startBotAndConnect({\n endpoint: proxyEndpoint,\n requestData: requestData as any, // Type assertion needed for nested structure\n });\n\n // Show screen share consent modal if enableScreenCapture is true\n if (this.config.enableScreenCapture) {\n const userConsent = await this.overlay.showScreenShareModal();\n if (userConsent) {\n try {\n await this.startScreenShare();\n } catch (err) {\n console.error(\"[OnboardingSDK] Screen share failed:\", err);\n }\n } else {\n console.log('[OnboardingSDK] Screen share declined by user');\n }\n }\n\n this.isInitialized = true;\n this.emit('ready');\n\n } catch (error) {\n console.error('[OnboardingSDK] Initialization failed:', error);\n this.emit('error', error);\n throw error;\n }\n }\n\n /**\n * Setup audio playback for bot audio tracks with real-time level analysis.\n * Centralizes all audio element handling, analyzer instantiation, and navigation detector setup.\n * This is the single source of truth for audio/navigation initialization to prevent duplicates.\n */\n private setupAudioPlayback() {\n if (!this.pipecatClient) return;\n\n // Create audio analyzers for visualization (only if not already created)\n if (!this.botAudioAnalyzer) {\n this.botAudioAnalyzer = new AudioAnalyzer();\n }\n if (!this.userAudioAnalyzer) {\n this.userAudioAnalyzer = new AudioAnalyzer();\n }\n\n // Also capture user mic stream directly for analysis\n this.setupUserMicAnalysis();\n\n // Create and start navigation complete detector (only if not already created)\n if (!this.navigationCompleteDetector) {\n this.navigationCompleteDetector = new NavigationCompleteDetector();\n }\n // Start navigation detection (start() handles duplicates internally)\n this.navigationCompleteDetector.start((url) => {\n console.log('[OnboardingSDK] Navigation complete detected:', url);\n this.sendMetadata({\n type: 'navigation_complete',\n url,\n timestamp: Date.now(),\n });\n });\n console.log('[OnboardingSDK] NavigationCompleteDetector started');\n\n // Listen for audio tracks from the bot\n this.pipecatClient.on('trackStarted', (track: MediaStreamTrack, participant?: any) => {\n // Only play remote (bot) audio tracks\n if (!participant?.local && track.kind === 'audio') {\n console.log('[OnboardingSDK] 🔊 Bot audio track started');\n const stream = new MediaStream([track]);\n const audio = document.createElement('audio');\n audio.autoplay = true;\n audio.srcObject = stream;\n document.body.appendChild(audio);\n\n // Start audio analysis for visualization\n if (this.botAudioAnalyzer) {\n this.botAudioAnalyzer.start(stream, (levels) => {\n // Only update levels when bot is actually speaking\n if (this.botIsSpeaking) {\n this.audioLevels = levels;\n this.renderReactUI();\n }\n });\n }\n\n // Store reference for cleanup\n if (!this.audioElements) {\n this.audioElements = [];\n }\n this.audioElements.push(audio);\n }\n });\n\n // Clean up audio elements when tracks stop\n this.pipecatClient.on('trackStopped', (track: MediaStreamTrack, participant?: any) => {\n if (!participant?.local && track.kind === 'audio') {\n console.log('[OnboardingSDK] 🔇 Bot audio track stopped');\n // Stop bot audio analyzer\n if (this.botAudioAnalyzer) {\n this.botAudioAnalyzer.stop();\n }\n this.audioLevels = [];\n }\n });\n }\n\n /**\n * Setup user microphone analysis for waveform visualization\n */\n private async setupUserMicAnalysis() {\n try {\n // Get user's microphone stream for analysis\n // Note: This is separate from the Pipecat mic - just for visualization\n this.userMicStream = await navigator.mediaDevices.getUserMedia({\n audio: {\n echoCancellation: true,\n noiseSuppression: true,\n autoGainControl: true\n }\n });\n\n console.log('[OnboardingSDK] 🎤 User mic stream captured for visualization');\n\n // Start analyzing user mic\n if (this.userAudioAnalyzer && this.userMicStream) {\n this.userAudioAnalyzer.start(this.userMicStream, (levels) => {\n // Only update levels when user is actually speaking\n if (this.userIsSpeaking) {\n this.audioLevels = levels;\n this.renderReactUI();\n }\n });\n }\n } catch (error) {\n console.warn('[OnboardingSDK] Could not capture mic for visualization:', error);\n // This is non-critical - visualization will just not work for user audio\n }\n }\n\n /**\n * Initialize React UI components\n */\n private initReactUI() {\n // Create container for React components\n this.reactContainer = document.createElement('div');\n this.reactContainer.id = 'onboarding-sdk-react-ui';\n this.reactContainer.setAttribute(SDK_WIDGET_ATTR, 'react-ui');\n this.reactContainer.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 2147483646;\n `;\n document.body.appendChild(this.reactContainer);\n\n // Create React root and render UI\n this.reactRoot = ReactDOM.createRoot(this.reactContainer);\n this.renderReactUI();\n }\n\n /**\n * Render React UI components\n */\n private renderReactUI() {\n if (!this.reactRoot) return;\n\n this.reactRoot.render(\n React.createElement(AgentUI, {\n connected: this.isConnected,\n voiceEnabled: this.micEnabled, // Use actual mute state, not config\n agentState: this.agentState,\n botTranscript: this.botTranscript,\n userTranscript: this.userTranscript,\n transcriptHistory: [...this.transcriptHistory], // Pass a copy to trigger re-render\n screenShareEnabled: this.screenShareEnabled,\n userIsSpeaking: this.userIsSpeaking, // Actual speaking state\n botIsSpeaking: this.botIsSpeaking, // Actual speaking state\n audioLevels: [...this.audioLevels], // Real-time audio levels for visualization\n onToggleConnection: () => this.handleToggleConnection(),\n onToggleMute: () => this.toggleMute(),\n onToggleScreenShare: () => this.handleToggleScreenShare(),\n onResume: this.pausedSessionId ? () => this.resumeSession(this.pausedSessionId!) : undefined,\n pausedSessionId: this.pausedSessionId || undefined,\n onStop: this.agentState === 'paused' ? () => this.stopSession() : undefined,\n // UX Polish props\n connectionProgress: this.connectionProgress || undefined,\n isReturningUser: this.isReturningUser,\n onMinimize: () => this.handleMinimize(),\n onExpand: () => this.handleExpand(),\n })\n );\n }\n\n /**\n * Handle minimize from UI - keeps widget visible but collapsed\n */\n private handleMinimize() {\n this._isMinimized = true;\n console.log('[OnboardingSDK] UI minimized');\n this.renderReactUI();\n this.emit('minimized');\n }\n\n /**\n * Handle expand from UI\n */\n private handleExpand() {\n this._isMinimized = false;\n console.log('[OnboardingSDK] UI expanded');\n this.renderReactUI();\n this.emit('expanded');\n }\n\n /**\n * Update connection progress during connection\n */\n private setConnectionProgress(stage: 'initializing' | 'authenticating' | 'connecting' | 'joining' | 'ready' | 'error', message: string, progress: number) {\n this.connectionProgress = { stage, message, progress };\n this.renderReactUI();\n }\n\n /**\n * Clear connection progress\n */\n private clearConnectionProgress() {\n this.connectionProgress = null;\n this.renderReactUI();\n }\n\n /**\n * Handle connection toggle from UI\n * Now implements minimize behavior instead of full disconnect\n */\n private async handleToggleConnection() {\n // First handle disconnection if already connected\n if (this.isConnected) {\n console.log('[OnboardingSDK] Disconnecting and minimizing...');\n try {\n await this.disconnectAndMinimize();\n } catch (error) {\n // Handle errors from disconnectAndMinimize() (e.g., pipecatClient.disconnect() failures)\n // Log and emit but don't rethrow to prevent unhandled promise rejections from React event handlers\n console.error('[OnboardingSDK] Error during disconnect and minimize:', error);\n this.emit('error', error);\n }\n return;\n }\n\n // Prevent concurrent connect attempts and prevent cancellation races\n // connectWithProgress exclusively owns connectInFlight - if it's set, we can't cancel\n // This prevents races where cancellation clears connectInFlight while connectWithProgress\n // is still mutating shared state (this.transport, this.pipecatClient, agentState)\n if (this.connectInFlight) {\n console.log('[OnboardingSDK] Connection operation already in progress, ignoring...');\n return;\n }\n\n // Note: Cancellation during connection is not supported to avoid races.\n // connectWithProgress will complete or fail, and connectInFlight will be cleared in its finally block.\n\n // Connect with progress stages - wrap in try/catch to prevent unhandled rejections\n try {\n await this.connectWithProgress();\n } catch (error) {\n // Error is already logged and emitted by connectWithProgress\n // Swallow here to prevent unhandled promise rejection from React event handler\n console.log('[OnboardingSDK] Connection error handled in handleToggleConnection:', error);\n }\n }\n\n /**\n * Disconnect and minimize the UI (instead of removing it)\n */\n private async disconnectAndMinimize() {\n // Stop page tracking first\n this.pageTracker.stop();\n\n // Stop DOM Introspection Layer\n this.domIntrospector.stopCapturing();\n\n // Stop navigation detection\n if (this.navigationCompleteDetector) {\n this.navigationCompleteDetector.stop();\n }\n\n // Disconnect Pipecat client\n if (this.pipecatClient) {\n await this.pipecatClient.disconnect();\n this.pipecatClient = null;\n }\n\n // Clean up transport\n if (this.transport) {\n this.transport = null;\n }\n\n // Clean up audio elements\n if (this.audioElements) {\n this.audioElements.forEach(audio => {\n audio.pause();\n audio.remove();\n });\n this.audioElements = [];\n }\n\n // Clean up audio analyzers\n if (this.botAudioAnalyzer) {\n this.botAudioAnalyzer.destroy();\n this.botAudioAnalyzer = null;\n }\n if (this.userAudioAnalyzer) {\n this.userAudioAnalyzer.destroy();\n this.userAudioAnalyzer = null;\n }\n\n // Clean up user mic stream\n if (this.userMicStream) {\n this.userMicStream.getTracks().forEach(track => track.stop());\n this.userMicStream = null;\n }\n this.audioLevels = [];\n\n // Reset state but keep UI visible (minimized)\n this.isConnected = false;\n this.agentState = 'idle';\n this._isMinimized = true; // Set to minimized state\n this.botTranscript = '';\n this.userTranscript = '';\n\n // Re-render UI in minimized state (NOT remove it)\n this.renderReactUI();\n \n console.log('[OnboardingSDK] Disconnected and minimized');\n this.emit('disconnected');\n this.emit('minimized');\n }\n\n /**\n * Connect with progress stages for better UX.\n * \n * NOTE: This method is intended ONLY for post-onboarding reconnects (e.g., when a user\n * clicks the connect button after having already completed the initial onboarding flow).\n * As such, it intentionally skips onboarding checks that are performed in init():\n * - checkEndUserStatus() - not needed for reconnects\n * - shouldSkipOnboardingModal() - onboarding already completed\n * - welcome popup logic - user already onboarded\n * \n * For initial connections, use init() instead, which includes all onboarding logic.\n */\n private async connectWithProgress() {\n // Set guard to prevent concurrent connect attempts\n if (this.connectInFlight) {\n console.log('[OnboardingSDK] Connection already in progress, ignoring...');\n return;\n }\n this.connectInFlight = true;\n\n try {\n // Set connecting state\n this.agentState = 'connecting';\n this._isMinimized = false;\n this.setConnectionProgress('initializing', 'Initializing...', 10);\n \n // Create Daily transport for WebRTC\n this.transport = new DailyTransport();\n this.setConnectionProgress('authenticating', 'Authenticating...', 30);\n \n // Initialize Pipecat client\n this.pipecatClient = new PipecatClient({\n transport: this.transport,\n enableMic: this.config.enableAudio !== false,\n enableCam: this.config.enableVideo || false,\n enableScreenShare: this.config.enableScreenCapture || false,\n callbacks: this.createPipecatCallbacks(),\n });\n\n // Initialize devices (same as init())\n await this.pipecatClient.initDevices();\n console.log('[OnboardingSDK] Devices initialized');\n\n // Setup audio playback for bot audio tracks\n this.setupAudioPlayback();\n\n this.setConnectionProgress('connecting', 'Connecting to server...', 50);\n\n // Always use floe-api proxy endpoint for Pipecat session start\n // The backend handles routing to local Pipecat or Pipecat Cloud based on environment\n const proxyEndpoint = `${this.config.apiUrl}/sites/start-session`;\n\n console.log('[OnboardingSDK] Starting session via floe-api proxy:', proxyEndpoint);\n\n // Build request data matching init()'s shape with sessionData nested structure\n const requestData: Record<string, any> = {\n clientKey: this.config.clientKey,\n origin: window.location.origin,\n sessionData: {\n sessionId: this.sessionId,\n createDailyRoom: true,\n dailyRoomProperties: { start_video_off: true },\n }\n };\n\n // Add user info if provided (matches init() structure)\n if (this.config.userInfo) {\n requestData.sessionData.userInfo = this.config.userInfo;\n }\n\n this.setConnectionProgress('joining', 'Joining session...', 70);\n\n // Use startBotAndConnect() to match init()'s semantics\n await this.pipecatClient.startBotAndConnect({\n endpoint: proxyEndpoint,\n requestData: requestData as any, // Type assertion needed for nested structure\n });\n\n this.setConnectionProgress('ready', 'Connected!', 100);\n \n // Clear progress after a brief delay\n setTimeout(() => {\n this.clearConnectionProgress();\n }, 500);\n\n } catch (error) {\n console.error('[OnboardingSDK] Connection failed:', error);\n this.setConnectionProgress('error', 'Connection failed', 0);\n this.agentState = 'idle';\n \n // Clear error state after a delay\n setTimeout(() => {\n this.clearConnectionProgress();\n this.renderReactUI();\n }, 3000);\n \n // Emit error event but don't rethrow - errors are handled locally\n // This prevents unhandled promise rejections when called from React event handlers\n this.emit('error', error);\n // Note: Error is NOT rethrown to avoid unhandled rejections in handleToggleConnection\n } finally {\n // Always clear the guard, even if connection succeeded or failed\n this.connectInFlight = false;\n }\n }\n\n /**\n * Create Pipecat client callbacks (extracted for reuse)\n * Contains the FULL callback logic matching init() to ensure all features work\n */\n private createPipecatCallbacks() {\n return {\n onConnected: () => {\n console.log('[OnboardingSDK] Connected to Pipecat');\n this.isConnected = true;\n this.agentState = 'listening';\n this.micEnabled = this.pipecatClient?.isMicEnabled ?? this.config.enableAudio !== false;\n console.log('[OnboardingSDK] 🎤 Mic state on connect:', this.micEnabled ? 'ON' : 'MUTED');\n this.clearConnectionProgress();\n this.renderReactUI();\n this.emit('connected');\n },\n onDisconnected: () => {\n console.log('[OnboardingSDK] Disconnected from Pipecat');\n this.isConnected = false;\n this.agentState = 'idle';\n this.renderReactUI();\n this.emit('disconnected');\n this.pageTracker.stop();\n },\n onBotReady: () => {\n console.log('[OnboardingSDK] Bot ready - transport is now in ready state');\n \n // Start DOM Introspection Layer - send accessible snapshots to server\n this.domIntrospector.startCapturing(1500, (snapshot) => {\n const accessibleSnap = this.accessibleSnapshot.capture(snapshot.captureReason);\n this.sendAccessibleSnapshot(accessibleSnap);\n this.sendDOMSnapshot(snapshot);\n });\n console.log('[OnboardingSDK] DOM Introspection Layer started (with Accessible Snapshot)');\n \n // Wire up PageTracker with DOMIntrospector for sync captures\n this.pageTracker.setDOMIntrospector(this.domIntrospector);\n \n // Start tracking page events\n this.pageTracker.start();\n console.log('[OnboardingSDK] PageTracker started');\n \n // Note: Navigation detector and audio analyzers are initialized in setupAudioPlayback()\n \n // CRITICAL: Send site initialization with client key and origin\n if (this.config.clientKey) {\n console.log(`[OnboardingSDK] Sending site initialization with client key`);\n const siteInitPayload: any = {\n clientKey: this.config.clientKey,\n origin: window.location.origin,\n userInfo: this.config.userInfo,\n };\n\n // Include resumeSessionId only if there's an explicit resume intent\n if (this.pendingResumeSessionId) {\n siteInitPayload.resumeSessionId = this.pendingResumeSessionId;\n console.log(`[OnboardingSDK] Resuming session: ${this.pendingResumeSessionId}`);\n this.pendingResumeSessionId = null;\n }\n\n this.pipecatClient?.sendClientMessage('site_init', siteInitPayload);\n }\n \n this.emit('botReady');\n \n // Note: Audio analyzers are initialized in setupAudioPlayback()\n \n // Handle pending discovery start\n if (this._pendingDiscoveryStart) {\n console.log('[OnboardingSDK] 🔍 Starting pending guided discovery');\n this._pendingDiscoveryStart = false;\n setTimeout(() => {\n if (this.isConnected) {\n this.startGuidedDiscovery();\n }\n }, 500);\n }\n },\n onUserTranscript: (data: any) => {\n console.log('[OnboardingSDK] 🎤 User transcript:', data.text, data.final ? '(final)' : '(interim)');\n if (data.text) {\n this.userTranscript = data.text;\n }\n if (data.final && data.text) {\n this.lastUserTranscript = data.text;\n }\n this.emit('userTranscript', data);\n this.handleUserInput(data.text);\n this.renderReactUI();\n },\n onBotTtsText: (data: any) => {\n console.log('[OnboardingSDK] 🤖 Bot TTS text:', data.text);\n if (data.text) {\n if (this.botTranscript && !this.botTranscript.endsWith(' ') && !data.text.startsWith(' ')) {\n this.botTranscript += ' ';\n }\n this.botTranscript += data.text;\n this.renderReactUI();\n }\n },\n onUserStartedSpeaking: () => {\n console.log('[OnboardingSDK] 🎤 User started speaking');\n this.agentState = 'listening';\n this.userIsSpeaking = true;\n this.renderReactUI();\n this.emit('userSpeaking', true);\n },\n onUserStoppedSpeaking: () => {\n console.log('[OnboardingSDK] 🛑 User stopped speaking');\n this.agentState = 'thinking';\n this.userIsSpeaking = false;\n if (this.lastUserTranscript) {\n this.transcriptHistory.push({\n id: `user-${Date.now()}`,\n role: 'user',\n content: this.lastUserTranscript,\n timestamp: Date.now(),\n });\n console.log('[OnboardingSDK] 📝 Added user message to history:', this.lastUserTranscript);\n this.lastUserTranscript = '';\n }\n this.userTranscript = '';\n this.renderReactUI();\n this.emit('userSpeaking', false);\n },\n onBotStartedSpeaking: () => {\n console.log('[OnboardingSDK] 🔊 Bot started speaking');\n this.agentState = 'speaking';\n this.botIsSpeaking = true;\n this.userTranscript = '';\n this.botTranscript = '';\n this.renderReactUI();\n this.emit('botSpeaking', true);\n },\n onBotStoppedSpeaking: () => {\n console.log('[OnboardingSDK] 🔇 Bot stopped speaking');\n this.agentState = 'listening';\n this.botIsSpeaking = false;\n if (this.botTranscript) {\n this.transcriptHistory.push({\n id: `assistant-${Date.now()}`,\n role: 'assistant',\n content: this.botTranscript,\n timestamp: Date.now(),\n });\n console.log('[OnboardingSDK] 📝 Added assistant message to history:', this.botTranscript.substring(0, 50) + '...');\n }\n this.botTranscript = '';\n this.renderReactUI();\n this.emit('botSpeaking', false);\n },\n onServerMessage: (msg: any) => {\n console.log('[OnboardingSDK] Server message:', msg);\n this.handleServerMessage(msg);\n if (msg.type === 'session_paused') {\n console.log('[OnboardingSDK] Session paused:', msg);\n this.agentState = 'paused';\n this.pausedSessionId = msg.session_id || null;\n this.renderReactUI();\n this.emit('sessionPaused', msg);\n }\n },\n onError: (error: any) => {\n console.error('[OnboardingSDK] Error:', error);\n this.emit('error', error);\n },\n // Note: Track handling (onTrackStarted/onTrackStopped) is done via event listeners in setupAudioPlayback()\n };\n }\n\n /**\n * Resume a paused session\n * Always forces a full reconnect since the bot's pipeline was cancelled during pause\n */\n async resumeSession(sessionId: string): Promise<void> {\n console.log(`[OnboardingSDK] Resuming session: ${sessionId}`);\n\n // Set explicit resume intent (preserved through disconnect/init flow)\n // This is separate from pausedSessionId which is for UI state only\n this.pendingResumeSessionId = sessionId;\n\n // Reset paused state\n this.agentState = 'idle';\n\n // Always force a full reconnect when resuming a paused session\n // The bot's pipeline was cancelled during pause, so we need a fresh connection\n console.log('[OnboardingSDK] Forcing full reconnect for resume (bot pipeline was cancelled)');\n\n // Disconnect first to ensure clean state\n if (this.isConnected) {\n await this.disconnect();\n }\n\n // Small delay to ensure disconnect completes\n await new Promise(resolve => setTimeout(resolve, 100));\n\n // Now init() will run completely and send site_init with resumeSessionId via onBotReady\n // onBotReady will consume and clear pendingResumeSessionId after use\n await this.init();\n }\n\n /**\n * Stop/end a paused session (disconnect and clear paused state)\n */\n async stopSession(): Promise<void> {\n console.log(`[OnboardingSDK] Stopping paused session`);\n\n // Clear paused state\n this.agentState = 'idle';\n this.pausedSessionId = null;\n this.pendingResumeSessionId = null;\n\n // Disconnect if connected\n if (this.isConnected) {\n await this.disconnect();\n }\n\n // Update UI\n this.renderReactUI();\n this.emit('sessionStopped');\n }\n\n /**\n * Handle screen share toggle from UI\n */\n private async handleToggleScreenShare() {\n if (!this.pipecatClient) {\n console.warn('[OnboardingSDK] Cannot toggle screen share: client not initialized');\n return;\n }\n\n try {\n if (this.screenShareEnabled) {\n console.log('[OnboardingSDK] Stopping screen share');\n await this.pipecatClient.enableScreenShare(false);\n this.screenShareEnabled = false;\n } else {\n console.log('[OnboardingSDK] Starting screen share');\n await this.pipecatClient.enableScreenShare(true);\n this.screenShareEnabled = true;\n }\n\n // Re-render UI to reflect the change\n this.renderReactUI();\n } catch (error) {\n console.error('[OnboardingSDK] Failed to toggle screen share:', error);\n this.emit('error', error);\n }\n }\n\n\n\n\n /**\n * Send metadata to bot via Pipecat\n * Data should include a 'type' field (e.g., 'click', 'page_metadata', 'form_input')\n */\n sendMetadata(data: any) {\n if (this.pipecatClient && this.isConnected) {\n const metadataType = data.type || 'metadata';\n console.log(`[OnboardingSDK] Sending metadata: ${metadataType}`, data);\n\n // Send with the event type as the message type for proper routing\n this.pipecatClient.sendClientMessage(metadataType, data);\n } else {\n console.warn('[OnboardingSDK] Cannot send metadata - not connected');\n }\n }\n\n /**\n * Send DOM snapshot to server for DOM Introspection Layer\n * Server will use this for accurate element targeting via vision + DOM correlation\n */\n private sendDOMSnapshot(snapshot: DOMSnapshot) {\n if (this.pipecatClient && this.isConnected) {\n // Only log occasionally to reduce noise\n if (Math.random() < 0.2) {\n console.log(`[OnboardingSDK] Sending DOM snapshot: ${snapshot.totalElements} elements`);\n }\n\n this.pipecatClient.sendClientMessage('dom_snapshot', {\n type: 'dom_snapshot',\n ...snapshot\n });\n }\n }\n\n /**\n * Send accessible snapshot to server (improved LLM-friendly format)\n * \n * Key improvements over raw DOM snapshot:\n * - Only interactive elements (~90% reduction in noise)\n * - Computed accessible names (W3C accname algorithm)\n * - Semantic roles and states (selected, checked, disabled)\n * - Context awareness (row context, section headings)\n * - Unique refs for easy element identification (B1, C2, T3)\n */\n private sendAccessibleSnapshot(snapshot: AccessibleSnapshot) {\n if (this.pipecatClient && this.isConnected) {\n // Log more frequently for accessible snapshot since it's the primary one\n if (Math.random() < 0.3) {\n console.log(`[OnboardingSDK] Sending accessible snapshot: ${snapshot.elementCount} elements (reduced from DOM)`);\n if (this.config.debug) {\n console.log('[OnboardingSDK] Accessible elements:',\n snapshot.elements.slice(0, 5).map(e => `${e.ref}: ${e.role} \"${e.name}\"`).join(', '),\n snapshot.elements.length > 5 ? '...' : ''\n );\n }\n }\n\n this.pipecatClient.sendClientMessage('accessible_snapshot', {\n type: 'accessible_snapshot',\n ...snapshot\n });\n }\n }\n\n /**\n * Handle user input\n */\n private async handleUserInput(text: string) {\n // Process intent\n await this.extractIntent(text);\n\n // Capture current context if screen capture is enabled\n if (this.config.enableScreenCapture) {\n await this.captureContext();\n }\n\n // Context is automatically sent via metadata tracking\n // No additional action needed here\n }\n\n /**\n * Handle server messages from bot (via Pipecat ServerMessage events)\n * Supports both legacy selector-based commands and new hybrid target format\n * \n * Message formats supported:\n * 1. RTVIServerMessageFrame: { data: { type: 'ui_action', action: '...', target: {...} } }\n * 2. Direct ui_action: { type: 'ui_action', action: '...', target: {...} }\n * 3. Direct action: { action: '...', target: {...} }\n * 4. Legacy: { type: 'highlight', selector: '...' }\n */\n private handleServerMessage(message: any) {\n console.log('[OnboardingSDK] 📥 Server message received:', JSON.stringify(message, null, 2));\n\n // Unwrap RTVIServerMessageFrame if needed (comes as { data: {...} })\n let payload = message;\n if (message.data && typeof message.data === 'object') {\n console.log('[OnboardingSDK] Unwrapping RTVIServerMessageFrame data');\n payload = message.data;\n }\n\n // Handle ui_action type from HybridActionProcessor\n if (payload.type === 'ui_action' && payload.action && payload.target) {\n console.log('[OnboardingSDK] 🎯 Received UI action from bot:', payload.action);\n console.log('[OnboardingSDK] Target:', JSON.stringify(payload.target, null, 2));\n this.handleHybridAction({\n action: payload.action,\n target: payload.target,\n value: payload.value,\n description: payload.description,\n precondition: payload.precondition, // For check_precondition action\n } as HybridUIAction);\n return;\n }\n\n // Handle hybrid UI actions (direct format from LLM)\n if (payload.action && payload.target) {\n console.log('[OnboardingSDK] 🎯 Received direct hybrid action:', payload.action);\n this.handleHybridAction(payload as HybridUIAction);\n return;\n }\n\n // Handle legacy highlight/tooltip commands\n if (payload.type === 'highlight') {\n console.log('[OnboardingSDK] Handling highlight command');\n if (payload.target) {\n // New hybrid format\n this.overlay.highlightTarget(payload.target, payload.options);\n } else if (payload.selector) {\n // Legacy selector format\n this.overlay.highlight(payload.selector, payload.options);\n }\n } else if (payload.type === 'tooltip' && payload.text) {\n this.overlay.showTooltip(payload.text, payload.options);\n } else if (payload.type === 'action') {\n if (payload.target) {\n // New hybrid format\n this.handleHybridAction(payload);\n } else {\n // Legacy format\n this.actionExecutor.executeWithConsent(payload.action);\n }\n } else if (payload.type === 'clear_highlight') {\n this.overlay.clearHighlight();\n } else if (payload.type === 'batched_navigation') {\n // Fast Execution: Handle batched navigation from server\n this.handleBatchedNavigation(payload);\n } else if (payload.type === 'fast_action') {\n // Fast Execution: Single fast action (no cursor animation)\n this.executeActionFast(payload as HybridUIAction);\n } else if (payload.type === 'session_paused') {\n // Handle session paused message from bot\n console.log('[OnboardingSDK] Session paused:', payload);\n this.agentState = 'paused';\n this.pausedSessionId = payload.session_id || null;\n this.renderReactUI();\n this.emit('sessionPaused', payload);\n } else {\n console.log('[OnboardingSDK] Unhandled server message type:', payload.type || 'unknown');\n }\n }\n\n /**\n * Handle hybrid UI action from bot\n * This is the core handler for the Hybrid UI Action System (HSE)\n * \n * Actions: highlight, click, type, focus, hover, scroll\n */\n private async handleHybridAction(action: HybridUIAction) {\n console.log('[OnboardingSDK] 🎯 Handling hybrid action:', action.action);\n console.log('[OnboardingSDK] Target strategies:', action.target.strategy || 'auto-detect');\n console.log('[OnboardingSDK] Target text:', action.target.text);\n console.log('[OnboardingSDK] Target selector:', action.target.selector);\n console.log('[OnboardingSDK] Target tag:', action.target.tag);\n\n // NOTE: Bot action depth is incremented RIGHT BEFORE actual DOM interaction\n // This avoids race conditions during animation delays\n\n switch (action.action) {\n case 'highlight':\n console.log('[OnboardingSDK] 💡 Executing HIGHLIGHT action');\n // Highlight doesn't generate click events - no need to track\n\n const highlightSuccess = this.overlay.highlightTarget(action.target, {\n color: 'rgba(0, 170, 255, 0.7)', // Bright blue for visibility\n padding: 10\n });\n\n if (highlightSuccess) {\n console.log('[OnboardingSDK] ✅ Element highlighted successfully');\n if (action.description) {\n // Show tooltip near the highlighted element\n this.overlay.showTooltip(action.description, {});\n }\n // Emit event for UI feedback\n this.emit('elementHighlighted', { target: action.target, description: action.description });\n } else {\n console.warn('[OnboardingSDK] ⚠️ Failed to find element for highlight');\n // Try again with extended matching after a small delay (for dynamic content)\n setTimeout(() => {\n const retrySuccess = this.overlay.highlightTarget(action.target, {\n color: 'rgba(255, 193, 7, 0.7)', // Amber for retry\n padding: 10\n });\n if (retrySuccess) {\n console.log('[OnboardingSDK] ✅ Element found on retry');\n if (action.description) {\n this.overlay.showTooltip(action.description, {});\n }\n } else {\n console.error('[OnboardingSDK] ❌ Element not found even after retry:', action.target);\n }\n }, 500);\n }\n break;\n\n case 'click':\n console.log('[OnboardingSDK] 👆 Executing CLICK action with Floe cursor');\n\n // Capture URL before click for sanity checking on server\n // If clicking accidentally navigates (e.g., clicking logo), server can detect it\n const urlBeforeClick = getSanitizedUrl();\n\n // SPECIAL HANDLING: Dropdown option selection (optionText)\n // When optionText is specified, we need to:\n // 1. Open the dropdown if not already open\n // 2. Wait for options to appear\n // 3. Find and click the actual option\n if (action.target.optionText) {\n console.log('[OnboardingSDK] 🎯 Dropdown option selection detected:', action.target.optionText);\n await this.handleDropdownOptionClick(action);\n break;\n }\n\n // Resolve element first\n let clickElement = HybridTargetResolver.resolveTarget(action.target);\n if (!clickElement) {\n console.warn('[OnboardingSDK] ⚠️ Click target not found');\n // Report failure to server so it doesn't think the action succeeded\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'click',\n success: false,\n target: action.target.text || action.target.selector || 'unknown',\n error: 'Element not found',\n timestamp: Date.now(),\n });\n // No need to clear bot action flag - we haven't set it yet\n // (flag is only set right before actual DOM interaction)\n break;\n }\n\n // Scroll into view\n HybridTargetResolver.scrollIntoView(clickElement);\n\n // Wait for scroll, then animate Floe cursor\n setTimeout(async () => {\n // Check if element is in a collapsed sidebar\n const collapsedSidebar = this.findCollapsedSidebar(clickElement!);\n\n if (collapsedSidebar) {\n console.log('[OnboardingSDK] 🔍 Element is in collapsed sidebar, expanding first...');\n\n // Animate Floe cursor to sidebar first\n const sidebarRect = collapsedSidebar.getBoundingClientRect();\n await this.overlay.animateFloeCursorTo(\n sidebarRect.left + sidebarRect.width / 2,\n sidebarRect.top + sidebarRect.height / 3,\n 400\n );\n\n // Trigger hover on sidebar to expand\n collapsedSidebar.dispatchEvent(new MouseEvent('mouseenter', { bubbles: true }));\n collapsedSidebar.dispatchEvent(new MouseEvent('mouseover', { bubbles: true }));\n\n // Wait for expansion animation\n await new Promise(r => setTimeout(r, 450));\n\n console.log('[OnboardingSDK] 📂 Sidebar expanded');\n }\n\n // CRITICAL: Wait for element position to stabilize after scroll/animation\n // This prevents clicking wrong elements during sidebar expansion or scroll\n const stableRect = await HybridTargetResolver.waitForPositionStability(clickElement!, 800);\n if (!stableRect) {\n console.error('[OnboardingSDK] ❌ Element disappeared during stability wait');\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'click',\n success: false,\n target: action.target.text || action.target.selector || 'unknown',\n error: 'Element disappeared during animation',\n timestamp: Date.now(),\n });\n return;\n }\n\n // CRITICAL: Re-resolve element AFTER stability wait\n // The original element reference may point to wrong position after animations\n const freshElement = HybridTargetResolver.reResolveAndVerify(action.target, clickElement!);\n if (freshElement) {\n clickElement = freshElement;\n console.log('[OnboardingSDK] 🔄 Re-resolved element after stability wait');\n } else {\n console.warn('[OnboardingSDK] ⚠️ Could not re-resolve element, using original');\n }\n\n // Now highlight the resolved clickable element\n this.overlay.highlightResolvedElement(clickElement!, {\n color: 'rgba(124, 58, 237, 0.5)', // Purple to match Floe brand\n padding: 8\n });\n\n // Animate Floe cursor to the element\n await this.overlay.moveToElementAndClick(clickElement!);\n\n // Small pause after cursor arrives\n await new Promise(r => setTimeout(r, 150));\n\n // Mark bot action RIGHT BEFORE the actual DOM interaction\n // This ensures click events during animation are tagged as 'user'\n this._botActionDepth++;\n\n // CRITICAL FIX: Create a modified action with position-independent target\n // The original action.target has stale domIndex/boundingBox from server's snapshot\n // After scroll/animation, those coordinates point to wrong elements\n const positionIndependentAction: HybridUIAction = {\n ...action,\n target: {\n text: action.target.text,\n selector: action.target.selector,\n selectorFallbacks: action.target.selectorFallbacks,\n tag: action.target.tag,\n ariaLabel: action.target.ariaLabel,\n placeholder: action.target.placeholder,\n role: action.target.role,\n // EXCLUDE: domIndex, boundingBox, confidence - stale after page changes\n // Cast to handle server-sent strategy values that may include position-dependent types\n strategy: action.target.strategy?.filter(s =>\n (s as string) !== 'boundingBox' && (s as string) !== 'domIndex'\n )\n }\n };\n\n // Execute the actual click with position-independent target\n let clickSuccess = false;\n try {\n clickSuccess = await this.actionExecutor.executeHybridAction(positionIndependentAction, false);\n } finally {\n // Always decrement depth after click, regardless of success\n this._botActionDepth--;\n }\n\n if (clickSuccess) {\n console.log('[OnboardingSDK] ✅ Click executed successfully');\n\n // CRITICAL: Validate that we clicked the right element\n // Compare the expected target text with what was actually clicked\n const expectedText = (action.target.text || '').toLowerCase().trim();\n const clickedElementText = clickElement?.textContent?.toLowerCase().trim() || '';\n const clickedElementTag = clickElement?.tagName.toLowerCase() || 'unknown';\n\n // Check for element mismatch\n let clickMismatch = false;\n let mismatchDetails = '';\n\n if (expectedText && clickedElementText) {\n // The clicked element should contain the expected text\n if (!clickedElementText.includes(expectedText) && !expectedText.includes(clickedElementText)) {\n clickMismatch = true;\n mismatchDetails = `Expected \"${action.target.text}\", but clicked \"${clickedElementText.slice(0, 50)}\"`;\n console.error(`[OnboardingSDK] ❌ CLICK MISMATCH: ${mismatchDetails}`);\n }\n }\n\n // CRITICAL: Trigger immediate DOM capture after bot click\n // This ensures server has fresh DOM state for next action\n if (this.domIntrospector) {\n // Wait a bit for React to update DOM, then capture\n await new Promise(r => setTimeout(r, 150));\n this.domIntrospector.captureAndSendImmediate('post-bot-click');\n console.log('[OnboardingSDK] 📸 DOM snapshot sent after bot click');\n }\n\n // Send bot_action_complete for auto-advance (for clicks that don't change URL)\n // This enables fast execution for CLICK tasks without navigation\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'click',\n success: !clickMismatch, // Mark as failure if mismatch detected\n target: action.target.text || action.target.selector || 'unknown',\n actualClicked: clickMismatch ? clickedElementText.slice(0, 100) : undefined,\n clickedTag: clickedElementTag,\n mismatch: clickMismatch,\n mismatchDetails: mismatchDetails || undefined,\n previousUrl: urlBeforeClick, // For server-side URL sanity check\n currentUrl: getSanitizedUrl(), // Current URL after click\n timestamp: Date.now(),\n });\n\n if (clickMismatch) {\n console.warn('[OnboardingSDK] ⚠️ Click mismatch reported to server');\n } else {\n console.log('[OnboardingSDK] 📤 Sent bot_action_complete for auto-advance');\n }\n } else {\n console.warn('[OnboardingSDK] ⚠️ Click action failed');\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'click',\n success: false,\n target: action.target.text || action.target.selector || 'unknown',\n timestamp: Date.now(),\n });\n }\n\n // Wait a bit for animations to complete\n await new Promise(r => setTimeout(r, 100));\n\n // Clear highlight and hide cursor after action\n setTimeout(() => {\n this.overlay.clearHighlight();\n this.overlay.hideFloeCursor();\n }, 800);\n }, 350);\n break;\n\n case 'type':\n console.log('[OnboardingSDK] ⌨️ Executing TYPE action, value:', action.value);\n // Type doesn't generate click events - no bot action tracking needed\n\n // Resolve element first\n const typeElement = HybridTargetResolver.resolveTarget(action.target);\n if (typeElement) {\n // Highlight the resolved input field (handles hidden placeholders)\n this.overlay.highlightResolvedElement(typeElement, {\n color: 'rgba(76, 175, 80, 0.6)', // Green for input\n padding: 4\n });\n }\n // Execute after brief delay\n setTimeout(async () => {\n await this.actionExecutor.executeHybridAction(action, false);\n setTimeout(() => this.overlay.clearHighlight(), 1500);\n }, 300);\n break;\n\n case 'focus':\n console.log('[OnboardingSDK] 🎯 Executing FOCUS action');\n // Focus doesn't generate click events\n await this.actionExecutor.executeHybridAction(action, false);\n break;\n\n case 'hover':\n console.log('[OnboardingSDK] 🖱️ Executing HOVER action');\n // Hover doesn't generate click events\n await this.actionExecutor.executeHybridAction(action, false);\n break;\n\n case 'scroll':\n console.log('[OnboardingSDK] 📜 Executing SCROLL action');\n // Scroll doesn't generate click events\n await this.actionExecutor.executeHybridAction(action, false);\n break;\n\n case 'multi_select':\n console.log('[OnboardingSDK] 📋 Executing MULTI_SELECT action');\n await this.handleMultiSelectAction(action);\n break;\n\n case 'check_precondition':\n console.log('[OnboardingSDK] 🔍 Checking precondition');\n await this.handleCheckPrecondition(action);\n break;\n\n default:\n console.warn('[OnboardingSDK] ⚠️ Unknown hybrid action:', action.action);\n }\n }\n\n /**\n * Check a precondition and report the result to the server.\n * Used for conditional task execution (e.g., check if an option exists before selecting it).\n */\n private async handleCheckPrecondition(action: HybridUIAction): Promise<void> {\n const precondition = action.precondition;\n\n if (!precondition) {\n console.warn('[OnboardingSDK] ⚠️ No precondition specified');\n this.sendMetadata({\n type: 'precondition_result',\n preconditionType: 'unknown',\n optionText: '',\n result: false,\n details: 'No precondition specified in action',\n timestamp: Date.now(),\n });\n return;\n }\n\n const { type, optionText, selector } = precondition;\n let result = false;\n let details = '';\n\n switch (type) {\n case 'option_exists':\n {\n\n // Check if an option exists in a dropdown\n if (!optionText) {\n details = 'No optionText provided for option_exists';\n break;\n }\n // First try to find the dropdown and open it\n const dropdownTrigger = this.findDropdownTrigger(action.target);\n\n if (dropdownTrigger) {\n console.log('[OnboardingSDK] 🔍 Opening dropdown to check for option:', optionText);\n\n // Open dropdown\n this._botActionDepth++;\n try {\n this.actionExecutor.openDropdown(dropdownTrigger);\n } finally {\n this._botActionDepth--;\n }\n\n // Wait for dropdown to open\n await new Promise(r => setTimeout(r, 400));\n\n // Look for the option\n const option = this.findVisibleDropdownOption(optionText);\n result = !!option;\n\n // Also try scrolling to find it\n if (!result) {\n const scrolledOption = await this.scrollToDropdownOption(optionText);\n result = !!scrolledOption;\n }\n\n details = result\n ? `Option \"${optionText}\" found in dropdown`\n : `Option \"${optionText}\" NOT found in dropdown`;\n\n // Close dropdown properly - wrap in _botActionDepth so PageTracker doesn't record as user action\n this._botActionDepth++;\n try {\n await new Promise(r => setTimeout(r, 100));\n // Dispatch on activeElement or body to ensure target is always an HTMLElement\n // (dispatching on document causes PageTracker to crash when e.target is Document)\n const escapeTarget = document.activeElement instanceof HTMLElement\n ? document.activeElement\n : document.body;\n if (escapeTarget) {\n escapeTarget.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true }));\n }\n await new Promise(r => setTimeout(r, 100));\n // Also click body as backup\n document.body.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n } finally {\n this._botActionDepth--;\n }\n\n // Clear any highlight\n this.overlay.clearHighlight();\n } else {\n details = 'Could not find dropdown trigger';\n }\n }\n break;\n\n case 'element_visible':\n // Check if an element is visible on the page\n {\n const usedSelector = selector || action.target.selector;\n if (!usedSelector) {\n details = 'No selector provided for element_visible';\n break;\n }\n let el: HTMLElement | null = null;\n try {\n el = document.querySelector(usedSelector) as HTMLElement | null;\n } catch (e) {\n details = `Invalid selector for element_visible: \"${usedSelector}\"`;\n break;\n }\n result = !!(el && HybridTargetResolver.isVisible(el));\n details = result\n ? `Element \"${usedSelector}\" is visible`\n : `Element \"${usedSelector}\" is NOT visible or not found`;\n }\n break;\n\n case 'element_enabled':\n // Check if an element is enabled (not disabled)\n {\n const usedSelector = selector || action.target.selector;\n if (!usedSelector) {\n details = 'No selector provided for element_enabled';\n break;\n }\n let el: HTMLElement | null = null;\n try {\n el = document.querySelector(usedSelector) as HTMLElement | null;\n } catch (e) {\n details = `Invalid selector for element_enabled: \"${usedSelector}\"`;\n break;\n }\n if (el) {\n const isDisabled = el.hasAttribute('disabled') ||\n el.getAttribute('aria-disabled') === 'true' ||\n el.classList.contains('disabled') ||\n ((el as any).disabled === true);\n result = !isDisabled;\n details = result\n ? `Element \"${usedSelector}\" is enabled`\n : `Element \"${usedSelector}\" is disabled`;\n } else {\n details = `Element \"${usedSelector}\" not found`;\n }\n }\n break;\n\n default:\n details = `Unknown precondition type: ${type}`;\n }\n\n console.log(`[OnboardingSDK] 🔍 Precondition check result: ${result} - ${details}`);\n\n this.sendMetadata({\n type: 'precondition_result',\n preconditionType: type,\n optionText: optionText,\n result,\n details,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Handle selecting multiple options from a dropdown.\n * This handles the complex flow of:\n * 1. Opening the dropdown\n * 2. Clicking each value in selectedValues\n * 3. Closing the dropdown\n */\n private async handleMultiSelectAction(action: HybridUIAction): Promise<void> {\n const selectedValues = action.target.selectedValues || [];\n console.log('[OnboardingSDK] 📋 handleMultiSelectAction for:', selectedValues);\n\n if (selectedValues.length === 0) {\n console.warn('[OnboardingSDK] ⚠️ No values to select in multi_select action');\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'multi_select',\n success: false,\n target: action.target.text || action.target.selector || 'unknown',\n error: 'No values provided for multi-select',\n timestamp: Date.now(),\n });\n return;\n }\n\n // Step 1: Find the dropdown trigger\n const dropdownTrigger = this.findDropdownTrigger(action.target);\n if (!dropdownTrigger) {\n console.error('[OnboardingSDK] ❌ Could not find dropdown trigger for multi-select');\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'multi_select',\n success: false,\n target: action.target.text || action.target.selector || 'unknown',\n error: 'Dropdown trigger not found',\n timestamp: Date.now(),\n });\n return;\n }\n\n // Step 2: Open the dropdown\n HybridTargetResolver.scrollIntoView(dropdownTrigger);\n await new Promise(r => setTimeout(r, 200));\n\n this.overlay.highlightResolvedElement(dropdownTrigger, {\n color: 'rgba(124, 58, 237, 0.5)',\n padding: 8\n });\n await this.overlay.moveToElementAndClick(dropdownTrigger);\n\n console.log('[OnboardingSDK] 📂 Opening multi-select dropdown...');\n this._botActionDepth++;\n try {\n this.actionExecutor.openDropdown(dropdownTrigger);\n } finally {\n this._botActionDepth--;\n }\n\n // Wait for dropdown to open\n await new Promise(r => setTimeout(r, 300));\n\n // Step 3: Click each value\n const successfulSelections: string[] = [];\n const failedSelections: string[] = [];\n\n for (let i = 0; i < selectedValues.length; i++) {\n const value = selectedValues[i];\n console.log(`[OnboardingSDK] 📋 Selecting option ${i + 1}/${selectedValues.length}: \"${value}\"`);\n\n // Find the option (may need to wait if dropdown closed after previous selection)\n let optionElement = this.findVisibleDropdownOption(value);\n\n // If not found, dropdown might have closed - try to reopen\n if (!optionElement) {\n console.log(`[OnboardingSDK] ⚠️ Option not visible, checking if dropdown closed...`);\n\n // Try reopening the dropdown\n this._botActionDepth++;\n try {\n this.actionExecutor.openDropdown(dropdownTrigger);\n } finally {\n this._botActionDepth--;\n }\n\n // Wait for dropdown to open and try again\n await new Promise(r => setTimeout(r, 300));\n optionElement = this.findVisibleDropdownOption(value);\n\n // Still not found? Try scrolling within dropdown\n if (!optionElement) {\n const scrolledOption = await this.scrollToDropdownOption(value);\n if (scrolledOption) {\n optionElement = scrolledOption;\n }\n }\n }\n\n if (optionElement) {\n // Check if already selected (for multi-select, might be toggled)\n const isAlreadySelected =\n optionElement.getAttribute('aria-selected') === 'true' ||\n optionElement.classList.contains('selected') ||\n optionElement.closest('[aria-selected=\"true\"]') !== null;\n\n if (!isAlreadySelected) {\n // Click to select - simulate proper click events for React compatibility\n this._botActionDepth++;\n try {\n const rect = optionElement.getBoundingClientRect();\n const clickX = rect.left + rect.width / 2;\n const clickY = rect.top + rect.height / 2;\n\n // Dispatch mousedown, mouseup, click sequence for React/Vue compatibility\n const commonOptions = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: clickX,\n clientY: clickY,\n };\n\n optionElement.dispatchEvent(new MouseEvent('mousedown', commonOptions));\n optionElement.dispatchEvent(new MouseEvent('mouseup', commonOptions));\n optionElement.dispatchEvent(new MouseEvent('click', commonOptions));\n\n await new Promise(r => setTimeout(r, 200)); // Wait between selections\n successfulSelections.push(value);\n console.log(`[OnboardingSDK] ✅ Selected: \"${value}\"`);\n } finally {\n this._botActionDepth--;\n }\n } else {\n successfulSelections.push(value);\n console.log(`[OnboardingSDK] ✅ Already selected: \"${value}\"`);\n }\n } else {\n failedSelections.push(value);\n console.warn(`[OnboardingSDK] ⚠️ Option not found after retries: \"${value}\"`);\n }\n }\n\n // Step 4: Close the dropdown - wrap in _botActionDepth so PageTracker doesn't record as user action\n await new Promise(r => setTimeout(r, 200));\n\n this._botActionDepth++;\n try {\n // Try multiple methods to close dropdown\n // Method 1: Press Escape\n // Dispatch on activeElement or body to ensure target is always an HTMLElement\n // (dispatching on document causes PageTracker to crash when e.target is Document)\n const escapeTarget = document.activeElement instanceof HTMLElement\n ? document.activeElement\n : document.body;\n if (escapeTarget) {\n escapeTarget.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true }));\n }\n await new Promise(r => setTimeout(r, 100));\n\n // Method 2: Click outside (on an overlay if exists, or body)\n const overlay = document.querySelector('[class*=\"backdrop\"], [class*=\"overlay\"], .MuiBackdrop-root');\n if (overlay && overlay instanceof HTMLElement) {\n overlay.click();\n } else {\n // Click on body at a safe position\n document.body.dispatchEvent(new MouseEvent('click', { bubbles: true }));\n }\n } finally {\n this._botActionDepth--;\n }\n\n // Clear highlight\n this.overlay.clearHighlight();\n\n // Report result\n const success = successfulSelections.length > 0;\n console.log(\n `[OnboardingSDK] 📋 Multi-select complete: ` +\n `${successfulSelections.length} selected, ${failedSelections.length} failed`\n );\n\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'multi_select',\n success,\n target: action.target.text || action.target.selector || 'unknown',\n selectedValues: successfulSelections,\n failedValues: failedSelections,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Handle clicking a dropdown option when optionText is specified.\n * This handles the complex flow of:\n * 1. Opening the dropdown if not already open\n * 2. Waiting for options to appear\n * 3. Finding and clicking the actual option\n */\n private async handleDropdownOptionClick(action: HybridUIAction): Promise<void> {\n const optionText = action.target.optionText!;\n console.log('[OnboardingSDK] 🎯 handleDropdownOptionClick for:', optionText);\n\n // Step 1: Try to find the option directly (dropdown might already be open)\n let optionElement = this.findVisibleDropdownOption(optionText);\n\n if (optionElement) {\n console.log('[OnboardingSDK] ✅ Option already visible, clicking directly');\n await this.clickDropdownOption(optionElement, action);\n return;\n }\n\n // Step 2: Option not visible - need to open the dropdown first\n console.log('[OnboardingSDK] 🔍 Option not visible, opening dropdown first');\n\n // Find the dropdown trigger (combobox input or select control)\n const dropdownTrigger = this.findDropdownTrigger(action.target);\n if (!dropdownTrigger) {\n console.error('[OnboardingSDK] ❌ Could not find dropdown trigger');\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'click',\n success: false,\n target: optionText,\n error: 'Dropdown trigger not found',\n timestamp: Date.now(),\n });\n // No flag clearing needed - flag is only set during actual clicks\n return;\n }\n\n // Highlight and animate cursor to dropdown trigger\n HybridTargetResolver.scrollIntoView(dropdownTrigger);\n await new Promise(r => setTimeout(r, 200));\n\n this.overlay.highlightResolvedElement(dropdownTrigger, {\n color: 'rgba(124, 58, 237, 0.5)',\n padding: 8\n });\n await this.overlay.moveToElementAndClick(dropdownTrigger);\n\n // Click to open dropdown\n console.log('[OnboardingSDK] 📂 Opening dropdown...');\n this._botActionDepth++;\n try {\n this.actionExecutor.openDropdown(dropdownTrigger);\n } finally {\n this._botActionDepth--;\n }\n\n // Wait a moment for dropdown animation to start\n await new Promise(r => setTimeout(r, 200));\n\n // Step 3: Wait for option to appear (poll with timeout)\n const maxWaitMs = 3000; // Increased for slow dropdowns\n const pollInterval = 150;\n let waited = 0;\n\n while (waited < maxWaitMs) {\n optionElement = this.findVisibleDropdownOption(optionText);\n if (optionElement) {\n console.log('[OnboardingSDK] ✅ Option appeared after', waited, 'ms');\n break;\n }\n\n await new Promise(r => setTimeout(r, pollInterval));\n waited += pollInterval;\n }\n\n if (!optionElement) {\n console.error('[OnboardingSDK] ❌ Option did not appear after', maxWaitMs, 'ms');\n console.error('[OnboardingSDK] Looking for:', optionText);\n\n // Log what options ARE visible for debugging\n const visibleOptions = document.querySelectorAll('[role=\"option\"], [class*=\"option\"]');\n const optionTexts = Array.from(visibleOptions)\n .slice(0, 10)\n .map(el => el.textContent?.trim().slice(0, 50))\n .filter(Boolean);\n if (optionTexts.length > 0) {\n console.log('[OnboardingSDK] Available options:', optionTexts);\n } else {\n console.log('[OnboardingSDK] No options visible - dropdown may not have opened');\n }\n\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'click',\n success: false,\n target: optionText,\n error: `Option \"${optionText}\" not found in dropdown`,\n timestamp: Date.now(),\n });\n\n // No flag clearing needed - flag is only set during actual clicks\n\n // Clear any highlight\n this.overlay.clearHighlight();\n return;\n }\n\n // Step 4: Click the actual option\n await this.clickDropdownOption(optionElement, action);\n }\n\n /**\n * Find a visible dropdown option by text\n * Uses STRICT matching to avoid selecting wrong options\n */\n private findVisibleDropdownOption(optionText: string): HTMLElement | null {\n const normalizedText = optionText.toLowerCase().trim();\n\n // Look in open dropdown menus\n const menuSelectors = [\n '[role=\"listbox\"]',\n '[role=\"menu\"]',\n '[class*=\"-menu\"]:not([aria-hidden=\"true\"])',\n '[class*=\"listbox\"]',\n '[class*=\"options-container\"]',\n ];\n\n let exactMatch: HTMLElement | null = null;\n let partialMatch: HTMLElement | null = null;\n\n for (const menuSelector of menuSelectors) {\n let menus: NodeListOf<Element>;\n try {\n menus = document.querySelectorAll(menuSelector);\n } catch {\n continue;\n }\n\n for (const menu of menus) {\n const menuEl = menu as HTMLElement;\n // Skip hidden menus\n if (!HybridTargetResolver.isVisible(menuEl)) continue;\n const rect = menuEl.getBoundingClientRect();\n if (rect.height < 20) continue;\n\n // Look for actual options\n const options = menu.querySelectorAll('[role=\"option\"], [class*=\"option\"]:not([class*=\"singleValue\"]):not([class*=\"placeholder\"])');\n for (const option of options) {\n const optionEl = option as HTMLElement;\n\n // Skip display values\n const className = optionEl.className || '';\n if (className.toLowerCase().includes('singlevalue') ||\n className.toLowerCase().includes('placeholder')) {\n continue;\n }\n\n const text = optionEl.textContent?.trim().toLowerCase() || '';\n\n // STRICT: Prefer exact match\n if (text === normalizedText) {\n console.log(`[OnboardingSDK] Found EXACT match for option: \"${optionText}\"`);\n exactMatch = optionEl;\n break; // Exact match found, stop searching\n }\n\n // Only accept partial match if it's a substantial match (>90% of target text)\n if (!partialMatch && text.includes(normalizedText)) {\n const matchRatio = normalizedText.length / text.length;\n if (matchRatio > 0.7) { // Must be at least 70% match\n console.log(`[OnboardingSDK] Found partial match (${(matchRatio * 100).toFixed(0)}%): \"${text.slice(0, 50)}\"`);\n partialMatch = optionEl;\n }\n }\n }\n\n if (exactMatch) break;\n }\n\n if (exactMatch) break;\n }\n\n // Prefer exact match, fallback to partial only if good enough\n if (exactMatch) return exactMatch;\n if (partialMatch) {\n console.warn(`[OnboardingSDK] ⚠️ Using partial match for \"${optionText}\" - verify this is correct`);\n return partialMatch;\n }\n\n console.log(`[OnboardingSDK] No option found for: \"${optionText}\"`);\n return null;\n }\n\n /**\n * Try to scroll within the dropdown to find an option that might be off-screen.\n * Returns the element if found after scrolling, null otherwise.\n */\n private async scrollToDropdownOption(optionText: string): Promise<HTMLElement | null> {\n const normalizedText = optionText.toLowerCase().trim();\n console.log(`[OnboardingSDK] 🔍 Scrolling dropdown to find: \"${optionText}\"`);\n\n // Find the scrollable dropdown container\n const scrollableContainers = document.querySelectorAll(\n '[role=\"listbox\"], [class*=\"-menu\"] [class*=\"menu-list\"], [class*=\"options-container\"], [class*=\"virtual-list\"]'\n );\n\n for (const container of scrollableContainers) {\n const scrollEl = container as HTMLElement;\n\n // Skip if not visible or not scrollable\n if (!HybridTargetResolver.isVisible(scrollEl)) continue;\n if (scrollEl.scrollHeight <= scrollEl.clientHeight) continue;\n\n console.log(`[OnboardingSDK] Found scrollable container, scrollHeight: ${scrollEl.scrollHeight}`);\n\n // Scroll down in increments, checking for the option each time\n const scrollIncrement = 200;\n const maxScrolls = Math.ceil(scrollEl.scrollHeight / scrollIncrement);\n\n for (let i = 0; i < maxScrolls; i++) {\n // Scroll down\n scrollEl.scrollTop = i * scrollIncrement;\n await new Promise(r => setTimeout(r, 100));\n\n // Check for the option\n const options = scrollEl.querySelectorAll('[role=\"option\"], [class*=\"option\"]');\n for (const option of options) {\n const optEl = option as HTMLElement;\n const text = optEl.textContent?.trim().toLowerCase() || '';\n if (text === normalizedText || text.includes(normalizedText)) {\n console.log(`[OnboardingSDK] ✅ Found option after scrolling: \"${optionText}\"`);\n // Ensure it's in view\n optEl.scrollIntoView({ block: 'center' });\n await new Promise(r => setTimeout(r, 100));\n return optEl;\n }\n }\n }\n }\n\n console.log(`[OnboardingSDK] Option not found after scrolling: \"${optionText}\"`);\n return null;\n }\n\n /**\n * Validate that an element is a valid dropdown element (not SDK UI, visible, clickable)\n * \n * @param el - The element to validate\n * @param requireDropdownAncestor - If true, requires element to have a dropdown-like ancestor (for Strategy 5)\n * @returns true if the element is valid for dropdown interaction\n */\n private isValidDropdownElement(el: HTMLElement | null, requireDropdownAncestor: boolean = false): boolean {\n // 1. Reject null\n if (!el) {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element is null');\n return false;\n }\n\n // 2. Exclude SDK widget elements (overlays, cursor, highlights, etc.)\n if (isSDKWidget(el)) {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element is inside SDK widget', {\n id: el.id,\n className: el.className,\n tagName: el.tagName\n });\n return false;\n }\n\n // 3. Confirm visibility/clickability\n // Check aria-hidden on element and ancestors\n if (el.getAttribute('aria-hidden') === 'true' || el.closest('[aria-hidden=\"true\"]')) {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element or ancestor has aria-hidden=\"true\"', {\n id: el.id,\n className: el.className\n });\n return false;\n }\n\n // Check computed styles\n const computedStyle = window.getComputedStyle(el);\n if (computedStyle.display === 'none') {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element has display:none', {\n id: el.id,\n className: el.className\n });\n return false;\n }\n\n if (computedStyle.visibility === 'hidden') {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element has visibility:hidden', {\n id: el.id,\n className: el.className\n });\n return false;\n }\n\n // Check pointer-events (elements with pointer-events:none cannot be clicked)\n if (computedStyle.pointerEvents === 'none') {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element has pointer-events:none', {\n id: el.id,\n className: el.className\n });\n return false;\n }\n\n // Check opacity (elements with opacity 0 are not visible)\n if (computedStyle.opacity === '0') {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element has opacity:0', {\n id: el.id,\n className: el.className\n });\n return false;\n }\n\n // Check offsetParent (null means not rendered, except for fixed/sticky positioned elements)\n const position = computedStyle.position;\n if (el.offsetParent === null && position !== 'fixed' && position !== 'sticky') {\n // Additional check: element might be in a fixed/sticky ancestor\n let parent = el.parentElement;\n let hasFixedAncestor = false;\n while (parent) {\n const parentStyle = window.getComputedStyle(parent);\n if (parentStyle.position === 'fixed' || parentStyle.position === 'sticky') {\n hasFixedAncestor = true;\n break;\n }\n parent = parent.parentElement;\n }\n\n if (!hasFixedAncestor) {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element has null offsetParent (not rendered)', {\n id: el.id,\n className: el.className\n });\n return false;\n }\n }\n\n // Check bounding rect dimensions\n const rect = el.getBoundingClientRect();\n if (rect.width <= 0 || rect.height <= 0) {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation: element has zero dimensions', {\n id: el.id,\n className: el.className,\n width: rect.width,\n height: rect.height\n });\n return false;\n }\n\n // 4. For Strategy 5: require dropdown-like ancestor to reduce false positives\n if (requireDropdownAncestor) {\n const hasDropdownAncestor =\n el.closest('[role=\"combobox\"]') !== null ||\n el.closest('[aria-haspopup=\"listbox\"]') !== null ||\n el.closest('[aria-haspopup=\"true\"]') !== null ||\n el.closest('[class*=\"select\"]') !== null ||\n el.closest('[class*=\"Select\"]') !== null ||\n el.closest('[class*=\"dropdown\"]') !== null ||\n el.closest('[class*=\"Dropdown\"]') !== null ||\n el.closest('select') !== null;\n\n if (!hasDropdownAncestor) {\n console.warn('[OnboardingSDK] ⚠️ Dropdown validation (Strategy 5): element lacks dropdown-like ancestor', {\n id: el.id,\n className: el.className,\n tagName: el.tagName\n });\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Find the dropdown trigger element (combobox input or select control)\n * \n * Priority:\n * 1. dropdownTriggerSelector - captured CSS selector for the trigger\n * 2. labelText - find dropdown by its form label (label, div, span, etc.)\n * 3. Find currently open/focused dropdown on page\n * 4. Fallback strategies\n */\n private findDropdownTrigger(target: HybridTarget): HTMLElement | null {\n // STRATEGY 1: Use captured dropdown trigger selector (HIGHEST PRIORITY)\n if (target.dropdownTriggerSelector) {\n console.log('[OnboardingSDK] 🎯 Using dropdownTriggerSelector:', target.dropdownTriggerSelector);\n try {\n const el = document.querySelector(target.dropdownTriggerSelector) as HTMLElement;\n if (el) {\n const container = this.getClickableDropdownContainer(el);\n if (this.isValidDropdownElement(container)) {\n console.log('[OnboardingSDK] ✅ Found trigger via dropdownTriggerSelector');\n return container;\n }\n console.warn('[OnboardingSDK] ⚠️ Strategy 1: dropdownTriggerSelector element failed validation');\n }\n } catch (e) {\n console.warn('[OnboardingSDK] Invalid dropdownTriggerSelector:', e);\n }\n }\n\n // STRATEGY 2: Find by labelText (works with label, div, span - not just <label>)\n if (target.labelText) {\n console.log('[OnboardingSDK] 🔍 Finding dropdown by label:', target.labelText);\n const trigger = this.findDropdownByLabel(target.labelText);\n if (trigger) {\n console.log('[OnboardingSDK] ✅ Found trigger via labelText');\n return trigger;\n }\n }\n\n // STRATEGY 3: Find currently focused/open dropdown on the page\n // React Select keeps focus on input when menu is open\n const focusedCombobox = document.querySelector('input[role=\"combobox\"]:focus') as HTMLElement;\n if (focusedCombobox) {\n const focusedContainer = this.getClickableDropdownContainer(focusedCombobox);\n if (this.isValidDropdownElement(focusedContainer)) {\n console.log('[OnboardingSDK] ✅ Found focused combobox');\n return focusedContainer;\n }\n console.warn('[OnboardingSDK] ⚠️ Strategy 3: focused combobox failed validation');\n }\n\n const openCombobox = document.querySelector('input[role=\"combobox\"][aria-expanded=\"true\"]') as HTMLElement;\n if (openCombobox) {\n const openContainer = this.getClickableDropdownContainer(openCombobox);\n if (this.isValidDropdownElement(openContainer)) {\n console.log('[OnboardingSDK] ✅ Found expanded combobox');\n return openContainer;\n }\n console.warn('[OnboardingSDK] ⚠️ Strategy 3: expanded combobox failed validation');\n }\n\n // STRATEGY 4: Try selector if provided (strip virtual attributes)\n if (target.selector) {\n // First normalize escaped characters from CSS.escape/JSON serialization\n const normalizedSelector = target.selector\n .replace(/\\\\\"/g, '\"') // Unescape quotes: \\\" -> \"\n .replace(/\\\\ /g, ' ') // Unescape spaces: \\ -> (space)\n .replace(/\\\\\\\\/g, '\\\\'); // Unescape backslashes: \\\\ -> \\\n\n const cleanSelector = normalizedSelector\n .replace(/\\[data-option-text=\"[^\"]*\"\\]/g, '')\n .replace(/\\[data-label=\"[^\"]*\"\\]/g, '')\n .replace(/\\[role=\"option\"\\]/g, '') // Don't transform to combobox - it's unreliable\n .trim();\n\n // Only try if we have a meaningful selector left\n if (cleanSelector && cleanSelector !== '') {\n try {\n const el = document.querySelector(cleanSelector) as HTMLElement;\n if (el) {\n const selectorContainer = this.getClickableDropdownContainer(el);\n if (this.isValidDropdownElement(selectorContainer)) {\n console.log('[OnboardingSDK] ✅ Found trigger via cleaned selector');\n return selectorContainer;\n }\n console.warn('[OnboardingSDK] ⚠️ Strategy 4: selector element failed validation');\n }\n } catch (e) {\n console.warn('[OnboardingSDK] Invalid selector:', cleanSelector);\n }\n }\n }\n\n // STRATEGY 5: Search for display value text in dropdown controls\n // Uses stricter validation requiring dropdown-like ancestor to reduce false positives\n if (target.text || target.optionText) {\n const searchText = (target.text || target.optionText || '').toLowerCase();\n // Look in common dropdown display value containers\n const displayValueSelectors = [\n '[class*=\"singleValue\"]',\n '[class*=\"single-value\"]',\n '[class*=\"select__single-value\"]',\n '.MuiSelect-select',\n '[class*=\"placeholder\"]'\n ];\n\n for (const selector of displayValueSelectors) {\n const elements = document.querySelectorAll(selector);\n for (const el of elements) {\n const text = el.textContent?.trim().toLowerCase() || '';\n if (text === searchText || text.includes(searchText)) {\n const container = this.getClickableDropdownContainer(el as HTMLElement);\n // Strategy 5 uses stricter validation: requireDropdownAncestor = true\n if (this.isValidDropdownElement(container, true)) {\n console.log('[OnboardingSDK] ✅ Found trigger via display value match');\n return container;\n }\n console.warn('[OnboardingSDK] ⚠️ Strategy 5: display value match element failed validation', {\n searchText,\n selector,\n elementText: text\n });\n }\n }\n }\n }\n\n console.warn('[OnboardingSDK] ❌ Could not find dropdown trigger');\n return null;\n }\n\n /**\n * Find dropdown by its label text (searches label, div, span elements)\n * Works with proper <label> elements AND improper div/span \"labels\"\n */\n private findDropdownByLabel(labelText: string): HTMLElement | null {\n const normalizedLabel = labelText.toLowerCase().trim();\n\n // Search for text in various label-like elements\n const labelSelectors = [\n 'label',\n '[class*=\"label\"]',\n '[class*=\"Label\"]',\n '[class*=\"form-label\"]',\n '.MuiFormLabel-root',\n '.MuiInputLabel-root',\n ];\n\n for (const selector of labelSelectors) {\n const labels = document.querySelectorAll(selector);\n for (const label of labels) {\n const text = label.textContent?.trim().toLowerCase().replace(/\\*$/, '').trim() || '';\n if (text === normalizedLabel || text.includes(normalizedLabel)) {\n // Found label, now find the associated dropdown\n const labelEl = label as HTMLElement;\n\n // Check for htmlFor attribute\n if (labelEl.tagName === 'LABEL' && (labelEl as HTMLLabelElement).htmlFor) {\n const input = document.getElementById((labelEl as HTMLLabelElement).htmlFor);\n if (input) {\n return this.getClickableDropdownContainer(input as HTMLElement);\n }\n }\n\n // Check for aria-labelledby relationship\n const labelId = labelEl.id;\n if (labelId) {\n const dropdown = document.querySelector(`[aria-labelledby=\"${labelId}\"]`) as HTMLElement;\n if (dropdown) {\n return this.getClickableDropdownContainer(dropdown);\n }\n }\n\n // Look for sibling or child dropdown\n const container = labelEl.closest('[class*=\"field\"], [class*=\"form-group\"], [class*=\"FormControl\"]') || labelEl.parentElement;\n if (container) {\n const dropdownInContainer = container.querySelector(\n 'input[role=\"combobox\"], select, [aria-haspopup=\"listbox\"], [class*=\"control\"]'\n ) as HTMLElement;\n if (dropdownInContainer) {\n return this.getClickableDropdownContainer(dropdownInContainer);\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the clickable container for a dropdown input\n * (The input itself may not be clickable, but its container is)\n */\n private getClickableDropdownContainer(element: HTMLElement): HTMLElement {\n // Common patterns for clickable dropdown containers\n const container = element.closest('[class*=\"-control\"]') || // React Select\n element.closest('[class*=\"control\"]') ||\n element.closest('[class*=\"trigger\"]') ||\n element.closest('[aria-haspopup]') ||\n element.closest('.MuiSelect-select')?.parentElement ||\n element.closest('[class*=\"select\"]');\n\n return (container as HTMLElement) || element;\n }\n\n /**\n * Click a dropdown option with proper animation and feedback\n */\n private async clickDropdownOption(optionElement: HTMLElement, action: HybridUIAction): Promise<void> {\n // Highlight and animate cursor to option\n this.overlay.highlightResolvedElement(optionElement, {\n color: 'rgba(124, 58, 237, 0.5)',\n padding: 4\n });\n await this.overlay.moveToElementAndClick(optionElement);\n await new Promise(r => setTimeout(r, 150));\n\n // Click the option\n console.log('[OnboardingSDK] 👆 Clicking dropdown option:', optionElement.textContent?.trim());\n\n // Mark bot action RIGHT BEFORE the click\n this._botActionDepth++;\n\n try {\n // Use React onClick if available, otherwise DOM events\n const hasReactHandler = this.actionExecutor.triggerReactOnClickPublic(optionElement);\n if (hasReactHandler) {\n console.log('[OnboardingSDK] ✅ React onClick triggered for option');\n } else {\n // Fallback to DOM events\n const rect = optionElement.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n const eventOptions: MouseEventInit = {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: centerX,\n clientY: centerY,\n };\n\n optionElement.dispatchEvent(new MouseEvent('mousedown', eventOptions));\n optionElement.dispatchEvent(new MouseEvent('mouseup', eventOptions));\n optionElement.dispatchEvent(new MouseEvent('click', eventOptions));\n }\n } finally {\n // Always decrement after click\n this._botActionDepth--;\n }\n\n console.log('[OnboardingSDK] ✅ Dropdown option clicked successfully');\n\n // CRITICAL: Capture DOM after dropdown selection\n // Dropdowns often change the UI significantly (close menu, show selected value)\n if (this.domIntrospector) {\n await new Promise(r => setTimeout(r, 150)); // Wait for dropdown to close\n this.domIntrospector.captureAndSendImmediate('post-dropdown-select');\n console.log('[OnboardingSDK] 📸 DOM snapshot sent after dropdown selection');\n }\n\n // Send success event\n this.sendMetadata({\n type: 'bot_action_complete',\n action: 'click',\n success: true,\n target: action.target.optionText || action.target.text || 'dropdown option',\n timestamp: Date.now(),\n });\n console.log('[OnboardingSDK] 📤 Sent bot_action_complete for auto-advance');\n\n // Clear highlight after delay\n await new Promise(r => setTimeout(r, 200));\n setTimeout(() => {\n this.overlay.clearHighlight();\n this.overlay.hideFloeCursor();\n }, 600);\n }\n\n /**\n * Find collapsed sidebar container that contains the element\n * Returns the sidebar element if found, null otherwise\n */\n private findCollapsedSidebar(element: HTMLElement): HTMLElement | null {\n let current: HTMLElement | null = element.parentElement;\n\n while (current && current !== document.body) {\n const style = window.getComputedStyle(current);\n const width = current.getBoundingClientRect().width;\n const height = current.getBoundingClientRect().height;\n\n // Check for sidebar-like characteristics:\n // - Narrow width (< 80px is typically collapsed)\n // - Has transition property (for expand animation)\n // - Tall element (sidebar typically spans most of viewport)\n const hasTransition = style.transition.includes('width') ||\n style.transitionProperty.includes('width') ||\n style.transitionProperty === 'all';\n const isNarrow = width < 80;\n const isTall = height > window.innerHeight * 0.5;\n const currentClassName = typeof current.className === 'string' ? current.className : '';\n const hasSidebarClasses = currentClassName.includes('sidebar') ||\n currentClassName.includes('nav') ||\n currentClassName.includes('menu');\n\n // Look for w-12 class (common Tailwind collapsed sidebar)\n const hasTailwindCollapsed = currentClassName.includes('w-12') ||\n currentClassName.includes('w-14') ||\n currentClassName.includes('w-16');\n\n if ((isNarrow && isTall && (hasTransition || hasSidebarClasses)) || hasTailwindCollapsed) {\n console.log('[OnboardingSDK] Detected collapsed sidebar:', {\n width,\n height,\n hasTransition,\n hasTailwindCollapsed,\n classes: current.className.substring(0, 100)\n });\n return current;\n }\n\n current = current.parentElement;\n }\n\n return null;\n }\n\n // ============================================================================\n // FAST EXECUTION METHODS\n // ============================================================================\n\n /**\n * Execute a single action quickly without cursor animation\n * Used for fast mode where we want minimal visual overhead\n * \n * @param action The hybrid UI action to execute\n * @returns true if action succeeded\n */\n private async executeActionFast(action: HybridUIAction): Promise<boolean> {\n console.log('[OnboardingSDK] ⚡ Fast executing action:', action.action);\n\n // Resolve element\n let element = HybridTargetResolver.resolveTarget(action.target);\n\n if (!element) {\n // Quick retry for dynamic content\n await new Promise(r => setTimeout(r, 150));\n element = HybridTargetResolver.resolveTarget(action.target);\n if (!element) {\n console.warn('[OnboardingSDK] ⚠️ Fast action target not found');\n return false;\n }\n }\n\n // Fast scroll (no smooth animation)\n element.scrollIntoView({ behavior: 'auto', block: 'center' });\n await new Promise(r => setTimeout(r, 50));\n\n // Minimal highlight (no cursor)\n this.overlay.highlightResolvedElement(element, {\n color: 'rgba(124, 58, 237, 0.4)',\n padding: 4\n });\n await new Promise(r => setTimeout(r, 80));\n\n // Mark bot action RIGHT BEFORE the actual DOM interaction\n this._botActionDepth++;\n let success = false;\n try {\n // Execute action\n success = await this.actionExecutor.executeHybridAction(action, false);\n } finally {\n this._botActionDepth--;\n }\n\n // Quick cleanup\n await new Promise(r => setTimeout(r, 50));\n this.overlay.clearHighlight();\n\n return success;\n }\n\n /**\n * Handle batched navigation request from server\n * Executes multiple navigation steps quickly without LLM round-trips\n */\n private async handleBatchedNavigation(payload: any): Promise<void> {\n console.log('[OnboardingSDK] ⚡ Received batched navigation request');\n\n if (!this.batchedActionExecutor) {\n console.error('[OnboardingSDK] BatchedActionExecutor not initialized');\n return;\n }\n\n const steps: BatchStep[] = (payload.steps || []).map((step: any) => {\n // Build target if any targeting info is provided\n // Support both flat (step.text) and nested (step.target.text) formats for compatibility\n const targetData = step.target || step; // Use nested target if present, else use step directly\n const hasTarget = targetData.text || targetData.selector || targetData.tag;\n const target: HybridTarget | undefined = hasTarget ? {\n text: targetData.text,\n tag: targetData.tag,\n selector: targetData.selector,\n ariaLabel: targetData.aria_label || targetData.ariaLabel,\n role: targetData.role,\n // Rich targeting fields for disambiguation\n labelText: targetData.label_text || targetData.labelText,\n // Fallback selectors - critical for resilient element targeting\n selectorFallbacks: targetData.selector_fallbacks || targetData.selectorFallbacks,\n } : undefined;\n\n return {\n action: step.action,\n target,\n condition: step.condition,\n waitMs: step.wait_ms || step.waitMs,\n };\n });\n\n if (steps.length === 0) {\n console.warn('[OnboardingSDK] No steps in batched navigation request');\n return;\n }\n\n // Enable fast mode during batch execution\n this.fastExecutionMode = true;\n // Mark bot action in progress so click events are tagged correctly\n // For batched navigation, keep depth elevated throughout since all clicks are bot-initiated\n this._botActionDepth++;\n\n try {\n console.log('[OnboardingSDK] ⚡ Executing batched navigation with steps:',\n steps.map(s => `${s.action}${s.target?.text ? ` \"${s.target.text}\"` : ''}`).join(' → '));\n\n const result = await this.batchedActionExecutor.executeBatch({\n steps,\n // Note: We handle completion via return value, not callback\n });\n\n // CRITICAL: Capture DOM after batched navigation completes\n // This ensures server has fresh DOM state regardless of success/failure\n if (this.domIntrospector) {\n await new Promise(r => setTimeout(r, 200)); // Wait for UI to settle\n this.domIntrospector.captureAndSendImmediate('post-batched-navigation');\n console.log('[OnboardingSDK] 📸 DOM snapshot sent after batched navigation');\n }\n\n if (result.success) {\n // Send success message back to server\n console.log('[OnboardingSDK] ✅ Batched navigation complete, sending success');\n this.sendMetadata({\n type: 'batched_navigation_complete',\n success: true,\n stepCount: steps.length,\n completedSteps: result.completedSteps,\n timestamp: Date.now(),\n });\n } else {\n console.log(`[OnboardingSDK] ❌ Batched navigation failed at step ${result.completedSteps + 1}, sending failure`);\n this.sendMetadata({\n type: 'batched_navigation_complete',\n success: false,\n error: `Step ${result.completedSteps + 1} failed - check console for details`,\n stepCount: steps.length,\n completedSteps: result.completedSteps,\n timestamp: Date.now(),\n });\n }\n } finally {\n this.fastExecutionMode = false;\n this._botActionDepth--; // Decrement bot action depth\n }\n }\n\n /**\n * Start navigation complete detection\n * Call this when you want to monitor for page navigation completion\n */\n public startNavigationDetection(onComplete: (url: string) => void): void {\n if (this.navigationCompleteDetector) {\n this.navigationCompleteDetector.start((url) => {\n console.log('[OnboardingSDK] Navigation complete detected:', url);\n // Send to server\n this.sendMetadata({\n type: 'navigation_complete',\n url,\n timestamp: Date.now(),\n });\n // Call callback\n onComplete(url);\n });\n }\n }\n\n /**\n * Stop navigation complete detection\n */\n public stopNavigationDetection(): void {\n if (this.navigationCompleteDetector) {\n this.navigationCompleteDetector.stop();\n }\n }\n\n /**\n * Check if currently in fast execution mode\n */\n public isInFastMode(): boolean {\n return this.fastExecutionMode;\n }\n\n /**\n * Extract intent from user input\n */\n private async extractIntent(text: string): Promise<string> {\n // Simple intent extraction - in production, this would use NLP\n const intents = {\n 'get started': 'onboarding',\n 'help': 'assistance',\n 'show me': 'demonstration',\n 'how do': 'tutorial',\n 'where': 'navigation',\n 'what': 'information'\n };\n\n const lowerText = text.toLowerCase();\n for (const [key, intent] of Object.entries(intents)) {\n if (lowerText.includes(key)) {\n return intent;\n }\n }\n\n return 'unknown';\n }\n\n /**\n * Capture current context\n */\n async captureContext(): Promise<ContextData> {\n const screenshot = this.config.enableScreenCapture\n ? await this.capture.captureWithRedaction()\n : undefined;\n\n const structure = this.extractPageStructure();\n\n return {\n screenshot,\n url: getSanitizedUrl(),\n structure,\n timestamp: Date.now()\n };\n }\n\n /**\n * Extract page structure\n */\n private extractPageStructure(): PageStructure {\n const elements: ElementInfo[] = [];\n\n // Find interactive elements\n const selectors = [\n 'button',\n 'a',\n 'input',\n 'select',\n 'textarea',\n '[role=\"button\"]',\n '[onclick]'\n ];\n\n selectors.forEach(selector => {\n document.querySelectorAll(selector).forEach((el) => {\n const rect = el.getBoundingClientRect();\n const visible = rect.width > 0 && rect.height > 0 &&\n rect.top < window.innerHeight &&\n rect.bottom > 0;\n\n if (visible) {\n elements.push({\n selector: this.getSelector(el),\n type: el.tagName.toLowerCase(),\n text: (el.textContent || '').trim().substring(0, 100),\n visible,\n position: rect,\n attributes: this.getAttributes(el)\n });\n }\n });\n });\n\n return {\n title: document.title,\n url: getSanitizedUrl(),\n elements,\n viewport: {\n width: window.innerWidth,\n height: window.innerHeight\n }\n };\n }\n\n /**\n * Get unique selector for element\n */\n private getSelector(element: Element): string {\n if (element.id) {\n return `#${element.id}`;\n }\n\n const path: string[] = [];\n let current: Element | null = element;\n\n while (current && current !== document.body) {\n let selector = current.tagName.toLowerCase();\n\n if (current.className) {\n const classes = Array.from(current.classList).slice(0, 2).join('.');\n if (classes) {\n selector += `.${classes}`;\n }\n }\n\n path.unshift(selector);\n current = current.parentElement;\n }\n\n return path.join(' > ');\n }\n\n /**\n * Get element attributes\n */\n private getAttributes(element: Element): Record<string, string> {\n const attributes: Record<string, string> = {};\n const allowedAttrs = ['href', 'type', 'name', 'placeholder', 'aria-label', 'role'];\n\n allowedAttrs.forEach(attr => {\n const value = element.getAttribute(attr);\n if (value) {\n attributes[attr] = value;\n }\n });\n\n return attributes;\n }\n\n\n /**\n * Public API Methods\n */\n\n /**\n * Send text message\n */\n async sendText(text: string) {\n if (this.pipecatClient && this.isConnected) {\n await this.pipecatClient.sendText(text);\n }\n }\n\n /**\n * Toggle microphone mute\n */\n toggleMute(): boolean {\n if (this.pipecatClient) {\n const currentlyEnabled = this.pipecatClient.isMicEnabled;\n const newState = !currentlyEnabled;\n this.pipecatClient.enableMic(newState);\n this.micEnabled = newState;\n console.log('[OnboardingSDK] 🎤 Mic toggled:', newState ? 'ON' : 'MUTED');\n // Re-render UI to reflect mute state change\n this.renderReactUI();\n return newState;\n }\n return false;\n }\n\n /**\n * Highlight an element\n */\n highlight(selector: string, options?: any) {\n this.overlay.highlight(selector, options);\n }\n\n /**\n * Clear highlights\n */\n clearHighlight() {\n this.overlay.clearHighlight();\n }\n\n /**\n * Show tooltip\n */\n showTooltip(text: string, options?: any) {\n this.overlay.showTooltip(text, options);\n }\n\n /**\n * Hide tooltip\n */\n hideTooltip() {\n this.overlay.hideTooltip();\n }\n\n /**\n * Execute an action\n */\n async executeAction(action: UIAction): Promise<boolean> {\n return this.actionExecutor.executeWithConsent(action);\n }\n\n /**\n * Take a screenshot\n */\n async takeScreenshot(options?: ScreenshotOptions): Promise<string> {\n return this.capture.captureWithRedaction(options);\n }\n\n /**\n * Get session ID\n */\n getSessionId(): string {\n return this.sessionId;\n }\n\n /**\n * Get connection status\n */\n getStatus() {\n return {\n initialized: this.isInitialized,\n connected: this.isConnected,\n sessionId: this.sessionId,\n microphoneMuted: this.pipecatClient ? !this.pipecatClient.isMicEnabled : false\n };\n }\n\n // ========================================================================\n // Smart Discovery Mode - Guided Onboarding\n // ========================================================================\n\n /**\n * Start guided discovery mode.\n * \n * Sends a message to the bot to begin the discovery flow, which will\n * ask structured questions to determine the best onboarding plan for the user.\n * \n * @returns true if the message was sent successfully\n */\n startGuidedDiscovery(): boolean {\n if (!this.pipecatClient || !this.isConnected) {\n console.warn('[OnboardingSDK] Cannot start discovery - not connected');\n return false;\n }\n\n console.log('[OnboardingSDK] 🔍 Starting guided discovery mode');\n\n this.pipecatClient.sendClientMessage('start_discovery', {\n type: 'start_discovery',\n timestamp: Date.now(),\n });\n\n // Hide welcome popup if shown\n this.hideWelcomePopup();\n\n return true;\n }\n\n /**\n * Skip discovery and let the user state their goal directly.\n * \n * This closes the welcome popup and lets the bot handle the conversation\n * in the standard greeting flow.\n */\n skipDiscovery(): void {\n console.log('[OnboardingSDK] Skipping discovery - standard greeting flow');\n this.hideWelcomePopup();\n }\n\n /**\n * Show the welcome popup and wait for user choice.\n * Returns a Promise that resolves to true if user wants discovery.\n * \n * Uses Raycast-style dark theme to match other modals.\n */\n showWelcomePopupAsync(): Promise<boolean> {\n return new Promise((resolve) => {\n // Check if popup already exists\n if (document.getElementById('floe-welcome-popup')) {\n resolve(false);\n return;\n }\n\n const popup = document.createElement('div');\n popup.id = 'floe-welcome-popup';\n popup.setAttribute('data-floe-widget', 'true');\n\n // Raycast-style dark theme matching screen share modal\n popup.style.cssText = `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n backdrop-filter: blur(12px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2147483647;\n pointer-events: auto;\n animation: welcomeFadeIn 0.2s ease-out;\n font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Display\", \"Segoe UI\", Roboto, sans-serif;\n `;\n\n const content = document.createElement('div');\n content.style.cssText = `\n background: linear-gradient(180deg, rgba(32, 32, 36, 0.98) 0%, rgba(24, 24, 28, 0.99) 100%);\n border-radius: 20px;\n padding: 32px;\n max-width: 420px;\n width: 90%;\n border: 1px solid rgba(255, 255, 255, 0.08);\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 24px 48px rgba(0, 0, 0, 0.5), 0 12px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05);\n animation: welcomeSlideUp 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n `;\n\n content.innerHTML = `\n <style>\n @keyframes welcomeFadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n @keyframes welcomeSlideUp {\n from { transform: translateY(20px) scale(0.98); opacity: 0; }\n to { transform: translateY(0) scale(1); opacity: 1; }\n }\n @keyframes welcomeFadeOut {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n </style>\n \n <!-- Icon -->\n <div style=\"display: flex; justify-content: center; margin-bottom: 24px;\">\n <div style=\"\n width: 64px;\n height: 64px;\n border-radius: 16px;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.2) 0%, rgba(139, 92, 246, 0.2) 100%);\n border: 1px solid rgba(139, 92, 246, 0.3);\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 8px 24px rgba(139, 92, 246, 0.15);\n \">\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#a78bfa\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M12 2L2 7l10 5 10-5-10-5z\"/>\n <path d=\"M2 17l10 5 10-5\"/>\n <path d=\"M2 12l10 5 10-5\"/>\n </svg>\n </div>\n </div>\n \n <!-- Title -->\n <h2 style=\"margin: 0 0 12px 0; font-size: 20px; font-weight: 600; color: rgba(255, 255, 255, 0.95); text-align: center; letter-spacing: -0.02em;\">\n Let's personalize your setup\n </h2>\n \n <!-- Description -->\n <p style=\"margin: 0 0 20px 0; color: rgba(255, 255, 255, 0.6); font-size: 14px; line-height: 1.6; text-align: center;\">\n I'll ask a few quick questions to understand your needs, then guide you through the perfect setup for your use case.\n </p>\n \n <!-- Benefits -->\n <div style=\"background: rgba(255, 255, 255, 0.03); border-radius: 10px; padding: 14px; margin-bottom: 24px; border: 1px solid rgba(255, 255, 255, 0.05);\">\n <div style=\"display: flex; align-items: center; gap: 10px; margin-bottom: 10px;\">\n <span style=\"font-size: 14px;\">⚡</span>\n <span style=\"font-size: 13px; color: rgba(255, 255, 255, 0.7);\">Takes less than a minute</span>\n </div>\n <div style=\"display: flex; align-items: center; gap: 10px;\">\n <span style=\"font-size: 14px;\">🎯</span>\n <span style=\"font-size: 13px; color: rgba(255, 255, 255, 0.7);\">Get a customized walkthrough</span>\n </div>\n </div>\n \n <!-- Buttons -->\n <div style=\"display: flex; flex-direction: column; gap: 12px;\">\n <button id=\"floe-start-guided\" style=\"\n width: 100%;\n padding: 14px 20px;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n border: none;\n background: linear-gradient(135deg, rgba(99, 102, 241, 0.9) 0%, rgba(139, 92, 246, 0.9) 100%);\n color: white;\n transition: all 0.2s ease;\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);\n \">\n 🚀 Let's Get Started\n </button>\n <button id=\"floe-skip-guided\" style=\"\n width: 100%;\n padding: 14px 20px;\n border-radius: 12px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n border: 1px solid rgba(255, 255, 255, 0.1);\n background: rgba(255, 255, 255, 0.05);\n color: rgba(255, 255, 255, 0.7);\n transition: all 0.2s ease;\n \">\n Skip — I'll explore on my own\n </button>\n </div>\n `;\n\n popup.appendChild(content);\n document.body.appendChild(popup);\n\n // Add hover effects\n const primaryBtn = popup.querySelector('#floe-start-guided') as HTMLButtonElement;\n const secondaryBtn = popup.querySelector('#floe-skip-guided') as HTMLButtonElement;\n\n if (primaryBtn) {\n primaryBtn.onmouseenter = () => {\n primaryBtn.style.transform = 'translateY(-2px)';\n primaryBtn.style.boxShadow = '0 8px 20px rgba(99, 102, 241, 0.4)';\n };\n primaryBtn.onmouseleave = () => {\n primaryBtn.style.transform = 'translateY(0)';\n primaryBtn.style.boxShadow = '0 4px 12px rgba(99, 102, 241, 0.3)';\n };\n primaryBtn.onclick = () => {\n popup.style.animation = 'welcomeFadeOut 0.2s ease';\n setTimeout(() => {\n popup.remove();\n resolve(true);\n }, 200);\n };\n }\n\n if (secondaryBtn) {\n secondaryBtn.onmouseenter = () => {\n secondaryBtn.style.background = 'rgba(255, 255, 255, 0.1)';\n secondaryBtn.style.color = 'rgba(255, 255, 255, 0.9)';\n };\n secondaryBtn.onmouseleave = () => {\n secondaryBtn.style.background = 'rgba(255, 255, 255, 0.05)';\n secondaryBtn.style.color = 'rgba(255, 255, 255, 0.7)';\n };\n secondaryBtn.onclick = () => {\n popup.style.animation = 'welcomeFadeOut 0.2s ease';\n setTimeout(() => {\n popup.remove();\n resolve(false);\n }, 200);\n };\n }\n\n console.log('[OnboardingSDK] Welcome popup shown (async)');\n });\n }\n\n /**\n * Show the welcome popup for new users (legacy sync version).\n * \n * Displays a popup with options to start guided discovery or\n * proceed with the standard flow.\n * @deprecated Use showWelcomePopupAsync instead\n */\n showWelcomePopup(): void {\n this.showWelcomePopupAsync().then((startDiscovery) => {\n if (startDiscovery) {\n this.startGuidedDiscovery();\n } else {\n this.skipDiscovery();\n }\n });\n }\n\n /**\n * Hide the welcome popup.\n */\n hideWelcomePopup(): void {\n const popup = document.getElementById('floe-welcome-popup');\n\n if (popup) {\n popup.style.animation = 'welcomeFadeOut 0.2s ease';\n setTimeout(() => popup.remove(), 200);\n }\n\n console.log('[OnboardingSDK] Welcome popup hidden');\n }\n\n /**\n * Check if discovery mode should be shown for this user.\n * \n * Can be called after connection to determine if the welcome popup\n * should be displayed. Returns true for new users or users who haven't\n * completed onboarding.\n */\n shouldShowDiscoveryPrompt(): boolean {\n // Check localStorage for previous visits\n const hasVisited = localStorage.getItem('floe_has_visited');\n const hasCompletedOnboarding = localStorage.getItem('floe_onboarding_complete');\n\n // Show popup for first-time visitors or those who haven't completed onboarding\n return !hasVisited || !hasCompletedOnboarding;\n }\n\n /**\n * Check EndUser status from API to determine if onboarding should be skipped.\n * Called during init() if userInfo is provided.\n */\n private async checkEndUserStatus(): Promise<void> {\n try {\n const apiUrl = this.config.apiUrl || 'http://localhost:3001';\n const url = `${apiUrl}/end-users/check-status`;\n\n const payload: any = {\n clientKey: this.config.clientKey,\n origin: window.location.origin,\n };\n\n if (this.config.userInfo?.externalId) {\n payload.externalId = this.config.userInfo.externalId;\n }\n if (this.config.userInfo?.email) {\n payload.email = this.config.userInfo.email;\n }\n\n if (this.config.debug) {\n console.log('[OnboardingSDK] Checking EndUser status...', {\n externalId: payload.externalId ? '***' : undefined,\n email: payload.email ? '***' : undefined\n });\n }\n\n const response = await fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n console.warn(`[OnboardingSDK] EndUser status check failed: ${response.status}`);\n return;\n }\n\n this.endUserStatus = await response.json();\n\n console.log(`[OnboardingSDK] EndUser status: found=${this.endUserStatus?.found}, isNewUser=${this.endUserStatus?.isNewUser}, hasPreferences=${this.endUserStatus?.hasPreferences}`);\n } catch (error) {\n console.warn('[OnboardingSDK] Error checking EndUser status:', error);\n // Don't throw - fall back to localStorage detection\n }\n }\n\n /**\n * Get EndUser preferences (for qualification pre-fill).\n * Returns preferences from API if available.\n */\n getEndUserPreferences(): Record<string, any> | null {\n return this.endUserStatus?.preferences || null;\n }\n\n /**\n * Determine if onboarding modal should be skipped.\n * Priority: explicit config > API EndUser.isNewUser > localStorage fallback\n */\n private shouldSkipOnboardingModal(): boolean {\n // Explicit override takes priority (useful for dev/testing)\n if (typeof this.config.skipOnboardingModal === 'boolean') {\n console.log(`[OnboardingSDK] skipOnboardingModal explicitly set to: ${this.config.skipOnboardingModal}`);\n return this.config.skipOnboardingModal;\n }\n\n // Check API response: skip if EndUser exists and is NOT new\n if (this.endUserStatus?.found && !this.endUserStatus.isNewUser) {\n console.log('[OnboardingSDK] Skipping modal: existing EndUser (isNewUser=false)');\n return true;\n }\n\n // Fallback: skip if user has visited before (localStorage)\n const hasVisited = localStorage.getItem('floe_has_visited') === 'true';\n\n // Fallback: If userInfo provided with externalId, treat as known user\n const hasUserIdentity = !!this.config.userInfo?.externalId;\n\n const shouldSkip = hasVisited || hasUserIdentity;\n console.log(`[OnboardingSDK] Auto-detect skip modal: ${shouldSkip} (hasVisited: ${hasVisited}, hasUserIdentity: ${hasUserIdentity})`);\n\n return shouldSkip;\n }\n\n /**\n * Mark that the user has visited (used to track new vs returning users).\n */\n markUserVisited(): void {\n localStorage.setItem('floe_has_visited', 'true');\n }\n\n /**\n * Mark onboarding as complete.\n */\n markOnboardingComplete(): void {\n localStorage.setItem('floe_onboarding_complete', 'true');\n }\n\n /**\n * Disconnect and cleanup\n */\n async disconnect() {\n // Stop page tracking first\n this.pageTracker.stop();\n\n // Stop DOM Introspection Layer\n this.domIntrospector.stopCapturing();\n\n // Stop navigation detection (restores history methods)\n if (this.navigationCompleteDetector) {\n this.navigationCompleteDetector.stop();\n }\n\n if (this.pipecatClient) {\n await this.pipecatClient.disconnect();\n this.pipecatClient = null;\n }\n\n // Clean up transport\n if (this.transport) {\n this.transport = null;\n }\n\n // Clean up audio elements\n if (this.audioElements) {\n this.audioElements.forEach(audio => {\n audio.pause();\n audio.remove();\n });\n this.audioElements = [];\n }\n\n // Clean up audio analyzers\n if (this.botAudioAnalyzer) {\n this.botAudioAnalyzer.destroy();\n this.botAudioAnalyzer = null;\n }\n if (this.userAudioAnalyzer) {\n this.userAudioAnalyzer.destroy();\n this.userAudioAnalyzer = null;\n }\n\n // Clean up user mic stream\n if (this.userMicStream) {\n this.userMicStream.getTracks().forEach(track => track.stop());\n this.userMicStream = null;\n }\n this.audioLevels = [];\n\n // Clean up React UI\n if (this.reactRoot) {\n this.reactRoot.unmount();\n this.reactRoot = null;\n }\n\n if (this.reactContainer) {\n this.reactContainer.remove();\n this.reactContainer = null;\n }\n\n this.overlay.remove();\n this.isInitialized = false;\n this.isConnected = false;\n this.agentState = 'idle';\n\n console.log('[OnboardingSDK] Disconnected');\n this.emit('disconnected');\n }\n}\n\n// Export for browser console usage\nif (typeof window !== 'undefined') {\n (window as any).OnboardingSDK = OnboardingSDK;\n}\n","/**\n * Floe SDK - Main Export\n */\n\nimport { OnboardingSDK } from './onboarding-sdk';\n\n/**\n * User information for personalization\n */\nexport interface FloeUserInfo {\n externalId?: string;\n email?: string;\n name?: string;\n company?: string;\n designation?: string;\n metadata?: Record<string, any>;\n}\n\n/**\n * Floe SDK Configuration Options\n */\nexport interface FloeConfig {\n /** Your Floe API client key (required) */\n clientKey: string;\n /** Floe API URL (defaults to production) */\n apiUrl?: string;\n /** Enable screen sharing (default: true) */\n enableScreenCapture?: boolean;\n /** Enable voice interaction (default: true) */\n enableAudio?: boolean;\n /** User's industry for context */\n industry?: string;\n /** User's use case */\n useCase?: string;\n /** User's company name */\n companyName?: string;\n /** Company size */\n companySize?: string;\n /** User's role */\n role?: string;\n /** Enable debug logging */\n debug?: boolean;\n /** User identification for personalization */\n userInfo?: FloeUserInfo;\n /** Skip the welcome modal for returning users */\n skipOnboardingModal?: boolean;\n}\n\n/**\n * Internal SDK configuration (matches OnboardingSDK constructor)\n */\ninterface SDKConfig {\n clientKey: string;\n apiUrl?: string;\n enableVideo?: boolean;\n enableAudio?: boolean;\n enableScreenCapture?: boolean;\n redactionPatterns?: Record<string, RegExp>;\n debug?: boolean;\n industry?: string;\n useCase?: string;\n companyName?: string;\n companySize?: string;\n role?: string;\n userInfo?: FloeUserInfo;\n skipOnboardingModal?: boolean;\n enableDiscoveryPopup?: boolean;\n}\n\n/**\n * Convert FloeConfig to internal SDKConfig with proper defaults\n */\nfunction convertFloeToSDKConfig(config: FloeConfig): SDKConfig {\n return {\n clientKey: config.clientKey,\n apiUrl: config.apiUrl,\n enableVideo: false, // Video not used in current implementation\n enableAudio: config.enableAudio ?? true,\n enableScreenCapture: config.enableScreenCapture ?? true,\n debug: config.debug ?? false,\n industry: config.industry,\n useCase: config.useCase,\n companyName: config.companyName,\n companySize: config.companySize,\n role: config.role,\n userInfo: config.userInfo,\n skipOnboardingModal: config.skipOnboardingModal,\n enableDiscoveryPopup: true, // Default to showing discovery popup\n };\n}\n\n/**\n * Extended SDK instance with ready promise\n */\nexport interface FloeSDKInstance extends OnboardingSDK {\n /** Promise that resolves when SDK is fully initialized */\n ready: Promise<void>;\n}\n\n/**\n * Initialize Floe SDK\n * @param config Configuration options\n * @returns SDK instance with a `ready` promise for initialization status\n * \n * @example\n * // Fire and forget (errors logged to console)\n * const sdk = Floe({ clientKey: 'your-key' });\n * \n * @example\n * // Await initialization\n * const sdk = Floe({ clientKey: 'your-key' });\n * await sdk.ready;\n * console.log('SDK initialized!');\n * \n * @example\n * // Handle initialization errors\n * const sdk = Floe({ clientKey: 'your-key' });\n * sdk.ready.catch(err => console.error('Init failed:', err));\n */\nexport function Floe(config: FloeConfig): FloeSDKInstance {\n // Validate required fields\n if (!config.clientKey) {\n throw new Error('[Floe] clientKey is required');\n }\n\n // Convert to internal SDK config with proper defaults\n const sdkConfig = convertFloeToSDKConfig(config);\n \n const sdk = new OnboardingSDK(sdkConfig) as FloeSDKInstance;\n \n // Start initialization and expose the promise\n sdk.ready = sdk.init().catch((error) => {\n console.error('[Floe] Initialization failed:', error);\n throw error;\n });\n \n return sdk;\n}\n\n// Export for browser/CDN usage\nif (typeof window !== 'undefined') {\n (window as any).Floe = Floe;\n}\n"],"names":["R","ReflectApply","target","receiver","args","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","value","EventEmitter","eventsModule","once","defaultMaxListeners","checkListener","listener","arg","n","_getMaxListeners","that","type","i","doError","events","er","err","handler","len","listeners","arrayClone","_addListener","prepend","m","existing","w","onceWrapper","_onceWrap","state","wrapped","list","position","originalListener","spliceOne","keys","key","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","arr","copy","index","ret","name","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","byteToHex","unsafeStringify","offset","getRandomValues","rnds8","rng","randomUUID","native","v4","options","buf","rnds","BROWSER_ALIASES_MAP","BROWSER_MAP","PLATFORMS_MAP","OS_MAP","ENGINE_MAP","Utils","regexp","ua","match","_const","version","v","s","versionA","versionB","isLoose","versionAPrecision","versionBPrecision","precision","lastPrecision","chunks","delta","_version","chunk","iterator","result","predicate","l","obj","assigners","assigner","browserName","browserAlias","commonVersionIdentifier","browsersList","browser","parser","notLikeAndroid","butAndroid","regexpWithoutDeviceSpec","regexpWithDeviceSpec","osParsersList","versionName","os","platformParsersList","model","platform","iDevice","likeIDevice","osMajorVersion","enginesParsersList","engine","isGecko","likeGecko","Parser","UA","skipParsing","regex","browserDescriptor","browserParsersList","_browser","condition","toLowerCase","_os","_platform","_engine","checkTree","platformsAndOSes","platformsAndOSCounter","browsers","browsersCounter","currentDefinition","platformsAndOSNames","OSMatchingDefinition","osResult","platformMatchingDefinition","platformResult","browserNames","matchingDefinition","includingAlias","defaultBrowserName","browserNameLower","alias","expectedResults","comparableVersion","currentBrowserVersion","osName","platformType","engineName","anything","anythings","Bowser","$parcel$exportWildcard","dest","source","$parcel$interopDefault","a","$parcel$export","e","$05fa7b586184a19c$exports","$364c127d152b1085$exports","$364c127d152b1085$export$8f7f86a77535f7a3","$e3bad9cc25e327f7$exports","$fc3f408bb0b1f921$exports","$6396333126da0e76$exports","$6396333126da0e76$export$8f2038d3679a1d9b","TransportStateEnum","$db6391dc7d757577$exports","$db6391dc7d757577$export$59b4786f333aac02","$db6391dc7d757577$export$c67992fa684a81a6","$db6391dc7d757577$export$e7544ab812238a61","$db6391dc7d757577$export$e0624a511a2c4e9","$db6391dc7d757577$export$b6ce555ea7f95fba","$db6391dc7d757577$export$885fb96b850e8fbb","$db6391dc7d757577$export$cc240eab14fa4f50","$db6391dc7d757577$export$bd0820eb8444fcd9","$db6391dc7d757577$export$64c9f614187c1e59","message","status","feature","msg","devices","details","$c1b4da4af54f4fa1$exports","$c1b4da4af54f4fa1$export$6b4624d233c61fcb","RTVIEvent","$c0d10c4690969999$exports","$c0d10c4690969999$export$7bdaf0e0d661a8f5","$c0d10c4690969999$export$882b13c7fda338f5","$c0d10c4690969999$export$38b3db05cbf0e240","$c0d10c4690969999$export$e4036f9b8ddb7379","$c0d10c4690969999$export$69aa9ab0334b212","RTVIMessageType","$c0d10c4690969999$var$_aboutClient","about","data","id","$gH2WJ$v4","fatal","$c68ef2498d1a7177$export$f1586721024c4dab","_target","propertyKey","descriptor","originalMethod","$c68ef2498d1a7177$export$ebc0d747cf8770bc","states","$769bb602511974a1$exports","$769bb602511974a1$export$e9a960646cc432aa","$e0900798b6cc045b$exports","$e0900798b6cc045b$export$243e62d78d3b544d","$e0900798b6cc045b$export$af88d00dbe7f521","LogLevel","$e0900798b6cc045b$var$Logger","level","sendMethod","message_data","timeout","promise","queuedMessage","expired","isValid","$d0e914667cc5346b$exports","$d0e914667cc5346b$export$2dd7ca293b2783","$d0e914667cc5346b$export$699251e5611cc6db","endpoint","cxnOpts","abortController","handshakeTimeout","res","$7ef5cee66c377f4d$exports","$7ef5cee66c377f4d$export$86495b081fef8e52","$7ef5cee66c377f4d$export$82b6ede160a64a3c","connectParams","validatedParams","startBotParams","transport","prop","errMsg","$dfd757760e36925b$exports","$dfd757760e36925b$export$7eb7b0a641098f31","navAgentInfo","_a","$gH2WJ$bowser","_b","_c","_d","_e","_f","$364c127d152b1085$var$__decorate","decorators","desc","c","r","d","$364c127d152b1085$var$RTVIEventEmitter","$gH2WJ$events","wrappedCallbacks","p","track","errorMessage","cams","mics","speakers","cam","mic","speaker","error","botResponse","botReadyData","text","response","errResp","connectionParams","micId","camId","speakerId","enable","msgType","msgData","functionName","callback","context","content","ev","botVersion","resp","_g","_i","_h","_k","_j","_m","_l","_o","_n","TranscriptData","_q","_p","_s","_r","_u","_t","_w","_v","_y","_x","_A","_z","_C","_B","_E","_D","_G","_F","_I","_H","fc","params","_K","_J","_M","_L","t","o","u","h","f","g","y","b","_","S","k","M","C","E","T","O","P","A","j","I","x","L$2","D$2","L","N","F","B","U","V","J","$","q","z","W","H","G","Q","K","Y","X","Z","ee","te","ne","re","ie","oe","se","ae","ce","le","ue","de","pe","he","fe","ve","Ce","ge","me","ye","be","we","Se","ke","Me","Ee","Te","Oe","Pe","Ae","je","Ie","xe","Le","Ne","De","Re","Fe","Ue","Be","Ve","Je","$e","qe","ze","We","He","Ge","Qe","Ke","Ye","Xe","et","Ze","tt","nt","rt","it","ot","st","at","ct","lt","ut","dt","pt","ht","ft","vt","gt","mt","yt","bt","wt","St","kt","Mt","Ct","Et","Pt","Tt","Ot","At","jt","It","xt","Lt","Dt","Nt","Rt","Ft","Bt","Ut","Jt","Vt","$t","qt","zt","Wt","Ht","Gt","Qt","Kt","Yt","Xt","Zt","en","tn","nn","rn","on","sn","an","cn","un","dn","pn","hn","fn","vn","gn","mn","yn","bn","wn","kn","Sn","Mn","Cn","En","Tn","On","Pn","An","jn","In","xn","Ln","Dn","Nn","Rn","Fn","Bn","Un","Vn","Jn","$n","zn","qn","Wn","Hn","Gn","Qn","Kn","Yn","Zn","Xn","tr","nr","rr","ir","or","sr","lr","pr","hr","ar","gr","cr","ur","dr","fr","vr","mr","yr","br","wr","Sr","kr","Mr","Cr","Er","Tr","Or","Pr","Ar","jr","Ir","xr","Lr","Dr","Nr","Rr","Fr","Br","Ur","Vr","Jr","$r","qr","zr","Wr","Hr","Gr","Qr","Kr","Xr","Yr","Zr","ei","ti","ni","ri","ii","oi","si","ai","hi","fi","vi","yi","Ci","Ti","Pi","Fi","Bi","Ui","Vi","Ji","$i","qi","zi","Wi","Hi","Gi","Qi","Ki","Yi","Xi","Zi","eo","to","ro","io","oo","so","ao","co","lo","uo","po","ho","fo","vo","go","mo","yo","bo","wo","So","ko","Mo","Co","Eo","To","Oo","Po","Ao","jo","Io","xo","Lo","Do","No","Ro","Fo","Bo","Uo","Vo","Jo","$o","qo","zo","Wo","Ho","Go","Qo","Ko","Yo","Xo","Zo","es","ts","ns","rs","is","ss","ms","ys","as","cs","ls","us","ds","ps","gs","Ss","bs","ks","hs","vs","fs","ws","Ms","Cs","Es","Ts","Os","Ps","As","js","Is","xs","Ls","Ds","Ns","Rs","Fs","Bs","Us","Vs","qs","Js","$s","zs","Ws","Hs","Ks","Gs","Qs","Ys","Xs","Zs","ea","ta","na","ra","ia","oa","sa","aa","ca","la","da","ha","pa","fa","va","ga","ma","ya","ba","wa","Sa","ka","Ma","Ca","Ea","Ta","Oa","Pa","Aa","ja","Ia","xa","La","Da","Na","Ra","Fa","Ba","Ua","Va","Ja","$a","qa","za","gc","vc","mc","oc","sc","hc","ac","cc","pc","Wa","Ha","wc","rc","tc","Ka","Xa","Qa","ic","Za","Ya","bc","Ga","yc","ec","nc","D","uc","dc","lc","$683f111f61e07358$exports","$683f111f61e07358$export$ef180de88fd317cc","$683f111f61e07358$export$b1ca982aa1e488c1","$6d4b7449a1e1544a$export$13afda237b1c9846","float32Array","buffer","view","leftBuffer","rightBuffer","tmpArray","size","sampleRate","audio","bitsPerSample","channels","output","blob","url","$03f71ce85e00ada6$var$octave8Frequencies","$03f71ce85e00ada6$var$octave8FrequencyLabels","$03f71ce85e00ada6$export$776c63898ae5b636","$03f71ce85e00ada6$export$facd167cc27ea9b0","freq","$03f71ce85e00ada6$var$voiceFrequencyRange","$03f71ce85e00ada6$export$dbc1581ed2cfa183","$03f71ce85e00ada6$export$30a6f2881311088f","$f32f064564ee62f6$export$2c3136da0bf130f9","analyser","fftResult","analysisType","minDecibels","maxDecibels","nyquistFrequency","frequencyStep","outputValues","frequencies","labels","useFrequencies","aggregateOutput","frequency","amplitude","normalizedOutput","audioElement","audioBuffer","length","offlineAudioContext","renderQuantumInSeconds","durationInSeconds","analyze","suspendTime","audioContext","pct","$29a8a70a9466b14f$export$50b76700e2b15e9","$29a8a70a9466b14f$var$script","$29a8a70a9466b14f$export$bfa8c596114d74df","$d0a969833958d9e7$export$9698d62c78b8f366","_prevSpeaker","streamNode","event","requestId","trackId","currentTime","arrayBuffer","interrupt","trackSampleOffset","$8e1d1e6ff08f6fb5$var$AudioProcessorWorklet","$8e1d1e6ff08f6fb5$var$script","$8e1d1e6ff08f6fb5$export$1f65f50a8cbff43c","$62bc376044a05513$export$439b217ca659a877","outputToSpeakers","debug","audioData","fromSampleRate","values","_processor","t0","payload","lastId","lastDevices","serializeDevices","cb","permissionStatus","device","deviceId","config","processor","node","chunkProcessor","chunkSize","force","exportData","$5fc11d7bc0d20724$export$2934cf2d25c67a48","audioTrack","$58d19ff082af5e5c$exports","DailyRTVIMessageType","$683f111f61e07358$var$DailyCallWrapper","daily","$7zbD8$Transport","opts","bufferLocalAudioUntilBotReady","dailyOpts","$7zbD8$dailycodailyjs","$7zbD8$logger","batch","queuedData","dataBatch","audioMessage","pcmByteArray","messageHandler","infos","$7zbD8$DeviceError","participants","bot","tracks","dailyCallOptions","$7zbD8$RTVIError","tmpParams","$7zbD8$TransportStartError","isIOS","userAgent","sendReadyMessage","$7zbD8$RTVIMessage","readyHandler","generateDeviceError","$683f111f61e07358$var$dailyParticipantToParticipant","ids","escape","react_production_min","reactModule","require$$0","exports","schedulerModule","require$$1","ab","bb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","jc","kc","qc","xc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","bi","ci","di","gi","ji","ki","li","mi","pi","ui","wi","xi","Ai","Di","Ei","Ii","Li","Mi","Ni","Oi","Ri","Si","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","reactDomModule","client","reactJsxRuntime_production_min","jsxRuntimeModule","AudioWaveform","isActive","color","height","barCount","barWidth","gap","audioLevels","halfCount","bars","setBars","useState","animationRef","useRef","targetBarsRef","useEffect","newTargets","avg","segmentSize","start","end","sum","count","animate","prev","current","smoothing","symmetricalBars","React","totalWidth","jsx","scale","isCenter","barHeight","CircularWaveform","jsxs","Fragment","ControlHub","connected","voiceEnabled","agentState","screenShareEnabled","isSpeaking","onToggleConnection","onToggleMute","onToggleScreenShare","onToggleSidebar","sidebarOpen","onResume","pausedSessionId","onStop","connectionProgress","isMinimized","onExpand","onMinimize","isReturningUser","showNewConversationOption","onNewConversation","isExpanded","setIsExpanded","isHovered","setIsHovered","showTooltip","setShowTooltip","controlHubRef","handleKeyDown","useCallback","getStateColor","getStateLabel","handleOrbClick","handleMinimize","renderConnectionProgress","ControlButton","onClick","disabled","active","activeColor","tooltip","ariaLabel","isMuted","children","isFocused","setIsFocused","getBackground","getColor","TranscriptSidebar","isOpen","messages","currentTranscript","currentRole","onClose","messagesEndRef","isAnimating","setIsAnimating","MessageBubble","isUser","AgentUI","botTranscript","userTranscript","userIsSpeaking","botIsSpeaking","transcriptHistory","setSidebarOpen","useMemo","handleToggleSidebar","_AccessibleSnapshotCapture","__publicField","captureReason","elements","viewport","interactiveElements","cursorPointerElements","allElements","elementInfo","yDiff","currentHash","domChanged","startTime","lastSnapshot","newSnapshot","targetedSelectors","candidates","targetedElements","mainContainers","container","seen","parent","selector","role","rect","style","depth","maxDepth","parentStyle","depthCache","roleCache","nameCache","getDepth","getRole","getName","sortedElements","dominated","included","elRole","includedRole","elName","includedName","rowContext","ref","selectedOption","labelledBy","labelText","title","directText","siblingLabel","svg","svgTitle","svgDesc","testId","iconName","label","parentLabel","clone","describedBy","textSelectors","textChild","childText","lines","targetEl","className","patterns","pattern","iconText","sibling","tag","parentContext","parts","child","explicitRole","classes","hasBorder","borderRadiusStr","hasRoundedCorners","isCheckedElement","supportsDisabled","dataState","borderColor","bgColor","fieldset","legend","formGroup","section","heading","prevSibling","parentPrev","row","firstCell","listItem","dataRowSelectors","dataRow","identifier","prefix","counters","escapedClasses","path","idSelector","siblings","str","hash","char","elA","elB","stateA","stateB","AccessibleSnapshotCapture","SDK_WIDGET_SELECTORS","SDK_WIDGET_ATTR","isSDKWidget","getSanitizedUrl","AudioAnalyzer","levels","stream","onLevels","bufferLength","idx","DOMIntrospector","intervalMs","sendCallback","reason","snapshot","newHash","correlatedSnapshot","mutations","interactiveCount","htmlEl","isInteractive","tabIndex","domIndex","targetRect","expectedTag","expectedText","xOverlap","yOverlap","widthMatch","heightMatch","score","textMatch","elementText","targetText","best","foundText","_HybridTargetResolver","leafPart","parentParts","leafTagMatch","parentSelector","parentTag","parentTagMatch","element","checks","introspector","indent","_key","tagName","consensusResult","elementSummary","safeResult","strategies","candidateMap","strategy","scoredCandidates","candidate","winner","runnerUp","duration","ambiguous","interactableWinner","selectorElements","allSelectors","sel","selectorHint","matches","seenElements","trimmedText","tagSelector","escapedText","exactXpath","exactResult","partialXpath","partialResult","maxScore","hasRoleMismatch","hasNoRoleButExpected","elementRole","elementTag","targetTag","placeholderDiv","siblingText","lengthRatio","elAriaLabel","elPlaceholder","targetPlaceholder","placeholderEl","associatedLabel","normalizedLabel","normalizedTarget","normalizedText","finalScore","selectorContext","contextScore","isNativelyInteractive","hasInteractiveRole","hasClickHandler","isInsideInteractive","totalStrategies","consensusScore","validationScore","visibilityScore","selectorBonus","opacity","hasFixedAncestor","boundingBox","tolerance","bestMatch","bestScore","xDiff","wDiff","hDiff","hasExactMatch","hasContainsMatch","ratio","labelMatches","elementLabel","targetLabel","normalized","targetNormalized","elementAriaLabel","elementPlaceholder","elementName","inputId","labelFor","ariaLabelledBy","labelEl","labelRect","elementRect","isAbove","isLeft","inputs","otherInput","otherRect","otherDistX","elDistX","textEl","inputEl","allInputs","textRect","inputRect","inputDistX","computedStyle","controlSelectors","normalizedSelector","optionTextMatch","optionText","labelMatch","cleanSelector","allMatches","placeholder","parentClassName","displayValuePatterns","inClosedControl","notInMenu","menuSelectors","displayValueClasses","menuSelector","menus","menu","menuEl","option","optionEl","cls","chipText","chipContainerSelectors","containerSelector","chips","chip","chipEl","labelContainer","chipTextContent","removeButtonSelectors","btnSelector","removeBtn","normalizedSearch","matchesLabel","forId","comboboxes","combobox","allLabels","selectorLower","genericPatterns","isRoleBasedSelector","escapeRegex","isVisible","siblingInputs","siblingInputsArray","elInContainer","isFormField","textElements","elValue","textContent","part","associatedElement","firstVisibleNode","firstNode","hasParentContext","nodeText","nodeTextLower","shouldSkipEl","textLengthRatio","area","sizeBonus","specificityBonus","input","exactMatch","closeMatch","closeMatchRatio","normalizedElement","matchText","maxWaitMs","checkIntervalMs","stabilityThresholdPx","lastRect","stableCount","requiredStableChecks","currentRect","originalTarget","originalElement","positionIndependentTarget","freshElement","originalText","freshText","HybridTargetResolver","CanvasScreenshotCapture","customPatterns","textNodes","walker","range","ctx","region","imageData","blurRadius","dy","dx","nx","ny","redact","quality","format","piiRegions","piiCheck","canvas","width","iframe","clonedDoc","OverlaySystem","currentTop","currentLeft","startX","startY","elapsed","progress","easeProgress","newX","newY","targetX","targetY","modal","allowBtn","denyBtn","padding","updatedRect","success","ActionExecutor","action","requireConsent","optionElement","dropdownOpened","trigger","triggerTarget","triggerElement","actionType","collapsedContainer","centerX","centerY","eventOptions","elemRect","elemEventOptions","hasTransition","isNarrow","isFullHeight","currentClassName","hasSidebarClasses","comboboxInput","hasReactHandler","clickTarget","pointerOptions","MAX_DEPTH","isReactSelectControl","isReactSelectValueContainer","isReactSelectIndicator","isMuiSelectTrigger","isHeadlessRadixTrigger","siblingInput","button","control","optionSelectors","optSelector","reactPropPrefixes","reactData","parentKeys","nonInteractiveTags","getClassString","bestCandidate","hasCursorPointer","classStr","hasCursorClass","hasListClass","hasOnClick","isButton","nativeEvent","syntheticEvent","getDirectText","sdk","isBot","clickData","destructiveTypes","destructiveSelectors","destructiveKeywords","description","keyword","targetDesc","PageTracker","metadata","inputType","existingTimer","timer","fieldName","delay","currentUrl","dataTestId","partSelector","currentTestId","elementContainsInput","LoadingDetector","timeoutMs","DOMStabilityChecker","stableMs","timeoutId","maxTimeoutId","cleanup","observer","NavigationCompleteDetector","newUrl","onNavigationComplete","self","maxWaitTime","remaining","BatchedActionExecutor","overlay","_actionExecutor","request","completedSteps","step","delayMs","maxRetries","retryDelays","attempt","foundTag","allWithText","eventInit","OnboardingSDK","defaultApiUrl","startDiscovery","DailyTransport","PipecatClient","proxyEndpoint","requestData","participant","ReactDOM","stage","accessibleSnap","siteInitPayload","sessionId","metadataType","urlBeforeClick","clickElement","collapsedSidebar","sidebarRect","positionIndependentAction","clickSuccess","clickedElementText","clickedElementTag","clickMismatch","mismatchDetails","typeElement","precondition","dropdownTrigger","escapeTarget","usedSelector","selectedValues","successfulSelections","failedSelections","scrolledOption","clickX","clickY","commonOptions","pollInterval","waited","visibleOptions","optionTexts","partialMatch","matchRatio","scrollableContainers","scrollEl","scrollIncrement","maxScrolls","optEl","requireDropdownAncestor","focusedCombobox","focusedContainer","openCombobox","openContainer","selectorContainer","searchText","displayValueSelectors","labelSelectors","labelId","dropdown","dropdownInContainer","isTall","hasTailwindCollapsed","steps","targetData","onComplete","intents","lowerText","intent","screenshot","structure","visible","attributes","attr","newState","popup","primaryBtn","secondaryBtn","hasVisited","hasCompletedOnboarding","hasUserIdentity","shouldSkip","convertFloeToSDKConfig","Floe","sdkConfig"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]}
|