{"version":3,"file":"js/636.ac8199c7.js","mappings":"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","sources":["webpack://metfi_ticketssalepage/../src/index.ts","webpack://metfi_ticketssalepage/./node_modules/valtio/esm/vanilla.mjs","webpack://metfi_ticketssalepage/../src/controllers/RouterCtrl.ts","webpack://metfi_ticketssalepage/../src/utils/CoreUtil.ts","webpack://metfi_ticketssalepage/../src/controllers/EventsCtrl.ts","webpack://metfi_ticketssalepage/../src/controllers/OptionsCtrl.ts","webpack://metfi_ticketssalepage/../src/controllers/ConfigCtrl.ts","webpack://metfi_ticketssalepage/../src/utils/ExplorerUtil.ts","webpack://metfi_ticketssalepage/../src/controllers/ExplorerCtrl.ts","webpack://metfi_ticketssalepage/../src/controllers/ModalCtrl.ts","webpack://metfi_ticketssalepage/../src/controllers/ThemeCtrl.ts","webpack://metfi_ticketssalepage/../src/controllers/ToastCtrl.ts","webpack://metfi_ticketssalepage/../src/utils/PolyfillUtil.ts","webpack://metfi_ticketssalepage/../src/client.ts"],"sourcesContent":["// symbols\nconst TRACK_MEMO_SYMBOL = Symbol();\nconst GET_ORIGINAL_SYMBOL = Symbol();\n\n// properties\nconst AFFECTED_PROPERTY = 'a';\nconst IS_TARGET_COPIED_PROPERTY = 'f';\nconst PROXY_PROPERTY = 'p';\nconst PROXY_CACHE_PROPERTY = 'c';\nconst TARGET_CACHE_PROPERTY = 't';\nconst NEXT_OBJECT_PROPERTY = 'n';\nconst CHANGED_PROPERTY = 'g';\nconst HAS_KEY_PROPERTY = 'h';\nconst ALL_OWN_KEYS_PROPERTY = 'w';\nconst HAS_OWN_KEY_PROPERTY = 'o';\nconst KEYS_PROPERTY = 'k';\n\n// function to create a new bare proxy\nlet newProxy = (\n target: T,\n handler: ProxyHandler,\n) => new Proxy(target, handler);\n\n// get object prototype\nconst getProto = Object.getPrototypeOf;\n\nconst objectsToTrack = new WeakMap();\n\n// check if obj is a plain object or an array\nconst isObjectToTrack = (obj: T): obj is T extends object ? T : never => (\n obj && (objectsToTrack.has(obj as unknown as object)\n ? objectsToTrack.get(obj as unknown as object) as boolean\n : (getProto(obj) === Object.prototype || getProto(obj) === Array.prototype)\n )\n);\n\n// check if it is object\nconst isObject = (x: unknown): x is object => (\n typeof x === 'object' && x !== null\n);\n\n// Properties that are both non-configurable and non-writable will break\n// the proxy get trap when we try to return a recursive/child compare proxy\n// from them. We can avoid this by making a copy of the target object with\n// all descriptors marked as configurable, see `copyTargetObject`.\n// See: https://github.com/dai-shi/proxy-compare/pull/8\nconst needsToCopyTargetObject = (obj: object) => (\n Object.values(Object.getOwnPropertyDescriptors(obj)).some(\n (descriptor) => !descriptor.configurable && !descriptor.writable,\n )\n);\n\n// Make a copy with all descriptors marked as configurable.\nconst copyTargetObject = (obj: T): T => {\n if (Array.isArray(obj)) {\n // Arrays need a special way to copy\n return Array.from(obj) as T;\n }\n // For non-array objects, we create a new object keeping the prototype\n // with changing all configurable options (otherwise, proxies will complain)\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n Object.values(descriptors).forEach((desc) => { desc.configurable = true; });\n return Object.create(getProto(obj), descriptors);\n};\n\ntype HasKeySet = Set\ntype HasOwnKeySet = Set\ntype KeysSet = Set\ntype Used = {\n [HAS_KEY_PROPERTY]?: HasKeySet;\n [ALL_OWN_KEYS_PROPERTY]?: true;\n [HAS_OWN_KEY_PROPERTY]?: HasOwnKeySet;\n [KEYS_PROPERTY]?: KeysSet;\n};\ntype Affected = WeakMap;\ntype ProxyHandlerState = {\n readonly [IS_TARGET_COPIED_PROPERTY]: boolean;\n [PROXY_PROPERTY]?: T;\n [PROXY_CACHE_PROPERTY]?: ProxyCache | undefined;\n [TARGET_CACHE_PROPERTY]?: TargetCache | undefined;\n [AFFECTED_PROPERTY]?: Affected;\n}\ntype ProxyCache = WeakMap<\n object,\n readonly [ProxyHandler, ProxyHandlerState]\n>;\ntype TargetCache = WeakMap<\n object,\n readonly [target: T, copiedTarget?: T]\n>;\n\nconst createProxyHandler = (origObj: T, isTargetCopied: boolean) => {\n const state: ProxyHandlerState = {\n [IS_TARGET_COPIED_PROPERTY]: isTargetCopied,\n };\n let trackObject = false; // for trackMemo\n const recordUsage = (\n type:\n | typeof HAS_KEY_PROPERTY\n | typeof ALL_OWN_KEYS_PROPERTY\n | typeof HAS_OWN_KEY_PROPERTY\n | typeof KEYS_PROPERTY,\n key?: string | symbol,\n ) => {\n if (!trackObject) {\n let used = (state[AFFECTED_PROPERTY] as Affected).get(origObj);\n if (!used) {\n used = {};\n (state[AFFECTED_PROPERTY] as Affected).set(origObj, used);\n }\n if (type === ALL_OWN_KEYS_PROPERTY) {\n used[ALL_OWN_KEYS_PROPERTY] = true;\n } else {\n let set = used[type];\n if (!set) {\n set = new Set();\n used[type] = set;\n }\n set.add(key as string | symbol);\n }\n }\n };\n const recordObjectAsUsed = () => {\n trackObject = true;\n (state[AFFECTED_PROPERTY] as Affected).delete(origObj);\n };\n const handler: ProxyHandler = {\n get(target, key) {\n if (key === GET_ORIGINAL_SYMBOL) {\n return origObj;\n }\n recordUsage(KEYS_PROPERTY, key);\n return createProxy(\n Reflect.get(target, key),\n (state[AFFECTED_PROPERTY] as Affected),\n state[PROXY_CACHE_PROPERTY],\n state[TARGET_CACHE_PROPERTY],\n );\n },\n has(target, key) {\n if (key === TRACK_MEMO_SYMBOL) {\n recordObjectAsUsed();\n return true;\n }\n recordUsage(HAS_KEY_PROPERTY, key);\n return Reflect.has(target, key);\n },\n getOwnPropertyDescriptor(target, key) {\n recordUsage(HAS_OWN_KEY_PROPERTY, key);\n return Reflect.getOwnPropertyDescriptor(target, key);\n },\n ownKeys(target) {\n recordUsage(ALL_OWN_KEYS_PROPERTY);\n return Reflect.ownKeys(target);\n },\n };\n if (isTargetCopied) {\n handler.set = handler.deleteProperty = () => false;\n }\n return [handler, state] as const;\n};\n\nconst getOriginalObject = (obj: T) => (\n // unwrap proxy\n (obj as { [GET_ORIGINAL_SYMBOL]?: typeof obj })[GET_ORIGINAL_SYMBOL]\n // otherwise\n || obj\n);\n\n/**\n * Create a proxy.\n *\n * This function will create a proxy at top level and proxy nested objects as you access them,\n * in order to keep track of which properties were accessed via get/has proxy handlers:\n *\n * NOTE: Printing of WeakMap is hard to inspect and not very readable\n * for this purpose you can use the `affectedToPathList` helper.\n *\n * @param {object} obj - Object that will be wrapped on the proxy.\n * @param {WeakMap} affected -\n * WeakMap that will hold the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [proxyCache] -\n * WeakMap that will help keep referential identity for proxies.\n * @returns {Proxy} - Object wrapped in a proxy.\n *\n * @example\n * import { createProxy } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n * const proxy = createProxy(original, affected);\n *\n * proxy.a // Will mark as used and track its value.\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"a\"\n *\n * proxy.d // Will mark \"d\" as accessed to track and proxy itself ({ e: \"3\" }).\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"d\"\n */\nexport const createProxy = (\n obj: T,\n affected: WeakMap,\n proxyCache?: WeakMap,\n targetCache?: WeakMap,\n): T => {\n if (!isObjectToTrack(obj)) return obj;\n let targetAndCopied = (\n targetCache && (targetCache as TargetCache).get(obj)\n );\n if (!targetAndCopied) {\n const target = getOriginalObject(obj);\n if (needsToCopyTargetObject(target)) {\n targetAndCopied = [target, copyTargetObject(target)];\n } else {\n targetAndCopied = [target];\n }\n targetCache?.set(obj, targetAndCopied);\n }\n const [target, copiedTarget] = targetAndCopied;\n let handlerAndState = (\n proxyCache && (proxyCache as ProxyCache).get(target)\n );\n if (\n !handlerAndState\n || handlerAndState[1][IS_TARGET_COPIED_PROPERTY] !== !!copiedTarget\n ) {\n handlerAndState = createProxyHandler(target, !!copiedTarget);\n handlerAndState[1][PROXY_PROPERTY] = newProxy(\n copiedTarget || target,\n handlerAndState[0],\n );\n if (proxyCache) {\n proxyCache.set(target, handlerAndState);\n }\n }\n handlerAndState[1][AFFECTED_PROPERTY] = affected as Affected;\n handlerAndState[1][PROXY_CACHE_PROPERTY] = proxyCache as ProxyCache | undefined;\n handlerAndState[1][TARGET_CACHE_PROPERTY] = targetCache as TargetCache | undefined;\n return handlerAndState[1][PROXY_PROPERTY] as typeof target;\n};\n\nconst isAllOwnKeysChanged = (prevObj: object, nextObj: object) => {\n const prevKeys = Reflect.ownKeys(prevObj);\n const nextKeys = Reflect.ownKeys(nextObj);\n return prevKeys.length !== nextKeys.length\n || prevKeys.some((k, i) => k !== nextKeys[i]);\n};\n\ntype ChangedCache = WeakMap;\n\n/**\n * Compare changes on objects.\n *\n * This will compare the affected properties on tracked objects inside the proxy\n * to check if there were any changes made to it,\n * by default if no property was accessed on the proxy it will attempt to do a\n * reference equality check for the objects provided (Object.is(a, b)). If you access a property\n * on the proxy, then isChanged will only compare the affected properties.\n *\n * @param {object} prevObj - The previous object to compare.\n * @param {object} nextObj - Object to compare with the previous one.\n * @param {WeakMap} affected -\n * WeakMap that holds the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [cache] -\n * WeakMap that holds a cache of the comparisons for better performance with repetitive comparisons,\n * and to avoid infinite loop with circular structures.\n * @returns {boolean} - Boolean indicating if the affected property on the object has changed.\n *\n * @example\n * import { createProxy, isChanged } from 'proxy-compare';\n *\n * const obj = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(obj, affected);\n *\n * proxy.a\n *\n * isChanged(obj, { a: \"1\" }, affected) // false\n *\n * proxy.a = \"2\"\n *\n * isChanged(obj, { a: \"1\" }, affected) // true\n */\n\nexport const isChanged = (\n prevObj: unknown,\n nextObj: unknown,\n affected: WeakMap,\n cache?: WeakMap,\n): boolean => {\n if (Object.is(prevObj, nextObj)) {\n return false;\n }\n if (!isObject(prevObj) || !isObject(nextObj)) return true;\n const used = (affected as Affected).get(getOriginalObject(prevObj));\n if (!used) return true;\n if (cache) {\n const hit = (cache as ChangedCache).get(prevObj);\n if (hit && hit[NEXT_OBJECT_PROPERTY] === nextObj) {\n return hit[CHANGED_PROPERTY];\n }\n // for object with cycles\n (cache as ChangedCache).set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: false,\n });\n }\n let changed: boolean | null = null;\n try {\n for (const key of used[HAS_KEY_PROPERTY] || []) {\n changed = Reflect.has(prevObj, key) !== Reflect.has(nextObj, key);\n if (changed) return changed;\n }\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n changed = isAllOwnKeysChanged(prevObj, nextObj);\n if (changed) return changed;\n } else {\n for (const key of used[HAS_OWN_KEY_PROPERTY] || []) {\n const hasPrev = !!Reflect.getOwnPropertyDescriptor(prevObj, key);\n const hasNext = !!Reflect.getOwnPropertyDescriptor(nextObj, key);\n changed = hasPrev !== hasNext;\n if (changed) return changed;\n }\n }\n for (const key of used[KEYS_PROPERTY] || []) {\n changed = isChanged(\n (prevObj as any)[key],\n (nextObj as any)[key],\n affected,\n cache,\n );\n if (changed) return changed;\n }\n if (changed === null) changed = true;\n return changed;\n } finally {\n if (cache) {\n cache.set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: changed,\n });\n }\n }\n};\n\n// explicitly track object with memo\nexport const trackMemo = (obj: unknown) => {\n if (isObjectToTrack(obj)) {\n return TRACK_MEMO_SYMBOL in obj;\n }\n return false;\n};\n\n/**\n * Unwrap proxy to get the original object.\n *\n * Used to retrieve the original object used to create the proxy instance with `createProxy`.\n *\n * @param {Proxy} obj - The proxy wrapper of the originial object.\n * @returns {object | null} - Return either the unwrapped object if exists.\n *\n * @example\n * import { createProxy, getUntracked } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n * const originalFromProxy = getUntracked(proxy)\n *\n * Object.is(original, originalFromProxy) // true\n * isChanged(original, originalFromProxy, affected) // false\n */\nexport const getUntracked = (obj: T): T | null => {\n if (isObjectToTrack(obj)) {\n return (obj as { [GET_ORIGINAL_SYMBOL]?: T })[GET_ORIGINAL_SYMBOL] || null;\n }\n return null;\n};\n\n/**\n * Mark object to be tracked.\n *\n * This function marks an object that will be passed into `createProxy`\n * as marked to track or not. By default only Array and Object are marked to track,\n * so this is useful for example to mark a class instance to track or to mark a object\n * to be untracked when creating your proxy.\n *\n * @param obj - Object to mark as tracked or not.\n * @param mark - Boolean indicating whether you want to track this object or not.\n * @returns - No return.\n *\n * @example\n * import { createProxy, markToTrack, isChanged } from 'proxy-compare';\n *\n * const nested = { e: \"3\" }\n *\n * markToTrack(nested, false)\n *\n * const original = { a: \"1\", c: \"2\", d: nested };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n *\n * proxy.d.e\n *\n * isChanged(original, { d: { e: \"3\" } }, affected) // true\n */\nexport const markToTrack = (obj: object, mark = true) => {\n objectsToTrack.set(obj, mark);\n};\n\n/**\n * Convert `affected` to path list\n *\n * `affected` is a weak map which is not printable.\n * This function is can convert it to printable path list.\n * It's for debugging purpose.\n *\n * @param obj - An object that is used with `createProxy`.\n * @param affected - A weak map that is used with `createProxy`.\n * @param onlyWithValues - An optional boolean to exclude object getters.\n * @returns - An array of paths.\n */\nexport const affectedToPathList = (\n obj: unknown,\n affected: WeakMap,\n onlyWithValues?: boolean,\n) => {\n const list: (string | symbol)[][] = [];\n const seen = new WeakSet();\n const walk = (x: unknown, path?: (string | symbol)[]) => {\n if (seen.has(x as object)) {\n // for object with cycles\n return;\n }\n if (isObject(x)) {\n seen.add(x);\n }\n const used = isObject(x) && (affected as Affected).get(getOriginalObject(x));\n if (used) {\n used[HAS_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:has(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n const segment = ':ownKeys';\n list.push(path ? [...path, segment] : [segment]);\n } else {\n used[HAS_OWN_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:hasOwn(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n }\n used[KEYS_PROPERTY]?.forEach((key) => {\n if (!onlyWithValues || 'value' in (Object.getOwnPropertyDescriptor(x, key) || {})) {\n walk((x as any)[key], path ? [...path, key] : [key]);\n }\n });\n } else if (path) {\n list.push(path);\n }\n };\n walk(obj);\n return list;\n};\n\n/**\n * replace newProxy function.\n *\n * This can be used if you want to use proxy-polyfill.\n * Note that proxy-polyfill can't polyfill everything.\n * Use it at your own risk.\n */\nexport const replaceNewProxy = (fn: typeof newProxy) => {\n newProxy = fn;\n};\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const desc = {\n value,\n enumerable: true,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return snap;\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { RouterCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n history: ['ConnectWallet'],\n view: 'ConnectWallet',\n data: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const RouterCtrl = {\n state,\n\n subscribe(callback: (newState: RouterCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n push(view: RouterCtrlState['view'], data?: RouterCtrlState['data']) {\n if (view !== state.view) {\n state.view = view\n if (data) {\n state.data = data\n }\n state.history.push(view)\n }\n },\n\n reset(view: RouterCtrlState['view']) {\n state.view = view\n state.history = [view]\n },\n\n replace(view: RouterCtrlState['view']) {\n if (state.history.length > 1) {\n state.history[state.history.length - 1] = view\n state.view = view\n }\n },\n\n goBack() {\n if (state.history.length > 1) {\n state.history.pop()\n const [last] = state.history.slice(-1)\n state.view = last\n }\n },\n\n setData(data: RouterCtrlState['data']) {\n state.data = data\n }\n}\n","import { RouterCtrl } from '../controllers/RouterCtrl'\n\nexport const CoreUtil = {\n WALLETCONNECT_DEEPLINK_CHOICE: 'WALLETCONNECT_DEEPLINK_CHOICE',\n\n WCM_VERSION: 'WCM_VERSION',\n\n RECOMMENDED_WALLET_AMOUNT: 9,\n\n isMobile() {\n if (typeof window !== 'undefined') {\n return Boolean(\n window.matchMedia('(pointer:coarse)').matches ||\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)\n )\n }\n\n return false\n },\n\n isAndroid() {\n return CoreUtil.isMobile() && navigator.userAgent.toLowerCase().includes('android')\n },\n\n isIos() {\n const ua = navigator.userAgent.toLowerCase()\n\n return CoreUtil.isMobile() && (ua.includes('iphone') || ua.includes('ipad'))\n },\n\n isHttpUrl(url: string) {\n return url.startsWith('http://') || url.startsWith('https://')\n },\n\n isArray(data?: T | T[]): data is T[] {\n return Array.isArray(data) && data.length > 0\n },\n\n formatNativeUrl(appUrl: string, wcUri: string, name: string): string {\n if (CoreUtil.isHttpUrl(appUrl)) {\n return this.formatUniversalUrl(appUrl, wcUri, name)\n }\n let safeAppUrl = appUrl\n if (!safeAppUrl.includes('://')) {\n safeAppUrl = appUrl.replaceAll('/', '').replaceAll(':', '')\n safeAppUrl = `${safeAppUrl}://`\n }\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`\n }\n this.setWalletConnectDeepLink(safeAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`\n },\n\n formatUniversalUrl(appUrl: string, wcUri: string, name: string): string {\n if (!CoreUtil.isHttpUrl(appUrl)) {\n return this.formatNativeUrl(appUrl, wcUri, name)\n }\n let safeAppUrl = appUrl\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`\n }\n this.setWalletConnectDeepLink(safeAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`\n },\n\n async wait(miliseconds: number) {\n return new Promise(resolve => {\n setTimeout(resolve, miliseconds)\n })\n },\n\n openHref(href: string, target: '_blank' | '_self') {\n window.open(href, target, 'noreferrer noopener')\n },\n\n setWalletConnectDeepLink(href: string, name: string) {\n try {\n localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE, JSON.stringify({ href, name }))\n } catch {\n console.info('Unable to set WalletConnect deep link')\n }\n },\n\n setWalletConnectAndroidDeepLink(wcUri: string) {\n try {\n const [href] = wcUri.split('?')\n localStorage.setItem(\n CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,\n JSON.stringify({ href, name: 'Android' })\n )\n } catch {\n console.info('Unable to set WalletConnect android deep link')\n }\n },\n\n removeWalletConnectDeepLink() {\n try {\n localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE)\n } catch {\n console.info('Unable to remove WalletConnect deep link')\n }\n },\n\n setModalVersionInStorage() {\n try {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(CoreUtil.WCM_VERSION, process.env.ROLLUP_WCM_VERSION ?? 'UNKNOWN')\n }\n } catch {\n console.info('Unable to set Web3Modal version in storage')\n }\n },\n\n getWalletRouterData() {\n const routerData = RouterCtrl.state.data?.Wallet\n if (!routerData) {\n throw new Error('Missing \"Wallet\" view data')\n }\n\n return routerData\n }\n}\n","import { proxy, snapshot, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { EventsCtrlState, ModalEvent, ModalEventData } from '../types/controllerTypes'\n\n// -- helpers ------------------------------------------------------ //\nconst isEnabled =\n typeof location !== 'undefined' &&\n (location.hostname.includes('localhost') || location.protocol.includes('https'))\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n enabled: isEnabled,\n userSessionId: '',\n events: [],\n connectedWalletId: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const EventsCtrl = {\n state,\n\n subscribe(callback: (newEvent: ModalEvent) => void) {\n return valtioSub(state.events, () => callback(snapshot(state.events[state.events.length - 1])))\n },\n\n initialize() {\n if (state.enabled && typeof crypto?.randomUUID !== 'undefined') {\n state.userSessionId = crypto.randomUUID()\n }\n },\n\n setConnectedWalletId(connectedWalletId: EventsCtrlState['connectedWalletId']) {\n state.connectedWalletId = connectedWalletId\n },\n\n click(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'CLICK' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n },\n\n track(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'TRACK' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n },\n\n view(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'VIEW' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { OptionsCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n chains: undefined,\n walletConnectUri: undefined,\n isAuth: false,\n isCustomDesktop: false,\n isCustomMobile: false,\n isDataLoaded: false,\n isUiLoaded: false\n})\n\n// -- controller --------------------------------------------------- //\nexport const OptionsCtrl = {\n state,\n\n subscribe(callback: (newState: OptionsCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setChains(chains: OptionsCtrlState['chains']) {\n state.chains = chains\n },\n\n setWalletConnectUri(walletConnectUri: OptionsCtrlState['walletConnectUri']) {\n state.walletConnectUri = walletConnectUri\n },\n\n setIsCustomDesktop(isCustomDesktop: OptionsCtrlState['isCustomDesktop']) {\n state.isCustomDesktop = isCustomDesktop\n },\n\n setIsCustomMobile(isCustomMobile: OptionsCtrlState['isCustomMobile']) {\n state.isCustomMobile = isCustomMobile\n },\n\n setIsDataLoaded(isDataLoaded: OptionsCtrlState['isDataLoaded']) {\n state.isDataLoaded = isDataLoaded\n },\n\n setIsUiLoaded(isUiLoaded: OptionsCtrlState['isUiLoaded']) {\n state.isUiLoaded = isUiLoaded\n },\n\n setIsAuth(isAuth: OptionsCtrlState['isAuth']) {\n state.isAuth = isAuth\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ConfigCtrlState } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { EventsCtrl } from './EventsCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst state = proxy({\n projectId: '',\n mobileWallets: undefined,\n desktopWallets: undefined,\n walletImages: undefined,\n chains: undefined,\n enableAuthMode: false,\n enableExplorer: true,\n explorerExcludedWalletIds: undefined,\n explorerRecommendedWalletIds: undefined,\n termsOfServiceUrl: undefined,\n privacyPolicyUrl: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const ConfigCtrl = {\n state,\n\n subscribe(callback: (newState: ConfigCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setConfig(config: ConfigCtrlState) {\n EventsCtrl.initialize()\n OptionsCtrl.setChains(config.chains)\n OptionsCtrl.setIsAuth(Boolean(config.enableAuthMode))\n OptionsCtrl.setIsCustomMobile(Boolean(config.mobileWallets?.length))\n OptionsCtrl.setIsCustomDesktop(Boolean(config.desktopWallets?.length))\n\n CoreUtil.setModalVersionInStorage()\n\n Object.assign(state, config)\n }\n}\n","import { ConfigCtrl } from '../controllers/ConfigCtrl'\nimport type { ListingParams, ListingResponse } from '../types/controllerTypes'\n\n// -- Helpers -------------------------------------------------------\nconst W3M_API = 'https://explorer-api.walletconnect.com'\n\nasync function fetchListings(endpoint: string, params: ListingParams) {\n const url = new URL(endpoint, W3M_API)\n url.searchParams.append('projectId', ConfigCtrl.state.projectId)\n Object.entries(params).forEach(([key, value]) => {\n if (value) {\n url.searchParams.append(key, String(value))\n }\n })\n const request = await fetch(url)\n\n return request.json() as Promise\n}\n\n// -- Utility -------------------------------------------------------\nexport const ExplorerUtil = {\n async getDesktopListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getDesktopListings', params)\n },\n\n async getMobileListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getMobileListings', params)\n },\n\n async getInjectedListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getInjectedListings', params)\n },\n\n async getAllListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getAllListings', params)\n },\n\n getWalletImageUrl(imageId: string) {\n return `${W3M_API}/w3m/v1/getWalletImage/${imageId}?projectId=${ConfigCtrl.state.projectId}`\n },\n\n getAssetImageUrl(imageId: string) {\n return `${W3M_API}/w3m/v1/getAssetImage/${imageId}?projectId=${ConfigCtrl.state.projectId}`\n }\n}\n","import { proxy } from 'valtio/vanilla'\nimport type { ExplorerCtrlState, ListingParams } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { ExplorerUtil } from '../utils/ExplorerUtil'\nimport { ConfigCtrl } from './ConfigCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst isMobile = CoreUtil.isMobile()\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n wallets: { listings: [], total: 0, page: 1 },\n search: { listings: [], total: 0, page: 1 },\n recomendedWallets: []\n})\n\n// -- controller --------------------------------------------------- //\nexport const ExplorerCtrl = {\n state,\n\n async getRecomendedWallets() {\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state\n\n // Don't fetch recomended wallets\n if (\n explorerRecommendedWalletIds === 'NONE' ||\n (explorerExcludedWalletIds === 'ALL' && !explorerRecommendedWalletIds)\n ) {\n return state.recomendedWallets\n }\n\n // Fetch only recomended wallets defined in config\n if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n const recommendedIds = explorerRecommendedWalletIds.join(',')\n const params = { recommendedIds }\n const { listings } = await ExplorerUtil.getAllListings(params)\n const listingsArr = Object.values(listings)\n listingsArr.sort((a, b) => {\n const aIndex = explorerRecommendedWalletIds.indexOf(a.id)\n const bIndex = explorerRecommendedWalletIds.indexOf(b.id)\n\n return aIndex - bIndex\n })\n state.recomendedWallets = listingsArr\n }\n\n // Fetch default recomended wallets based on user's device, options and excluded config\n else {\n const { chains, isAuth } = OptionsCtrl.state\n const chainsFilter = chains?.join(',')\n const isExcluded = CoreUtil.isArray(explorerExcludedWalletIds)\n const params = {\n page: 1,\n sdks: isAuth ? 'auth_v1' : undefined,\n entries: CoreUtil.RECOMMENDED_WALLET_AMOUNT,\n chains: chainsFilter,\n version: 2,\n excludedIds: isExcluded ? explorerExcludedWalletIds.join(',') : undefined\n }\n const { listings } = isMobile\n ? await ExplorerUtil.getMobileListings(params)\n : await ExplorerUtil.getDesktopListings(params)\n state.recomendedWallets = Object.values(listings)\n }\n\n return state.recomendedWallets\n },\n\n async getWallets(params: ListingParams) {\n const extendedParams: ListingParams = { ...params }\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state\n const { recomendedWallets } = state\n\n // Don't fetch any wallets if all are excluded\n if (explorerExcludedWalletIds === 'ALL') {\n return state.wallets\n }\n\n // Don't fetch recomended wallets, as we already have these\n if (recomendedWallets.length) {\n extendedParams.excludedIds = recomendedWallets.map(wallet => wallet.id).join(',')\n } else if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n extendedParams.excludedIds = explorerRecommendedWalletIds.join(',')\n }\n\n // Don't fetch user defined excluded wallets & recomended wallets\n if (CoreUtil.isArray(explorerExcludedWalletIds)) {\n extendedParams.excludedIds = [extendedParams.excludedIds, explorerExcludedWalletIds]\n .filter(Boolean)\n .join(',')\n }\n\n // Fetch only auth wallets\n if (OptionsCtrl.state.isAuth) {\n extendedParams.sdks = 'auth_v1'\n }\n\n const { page, search } = params\n const { listings: listingsObj, total } = isMobile\n ? await ExplorerUtil.getMobileListings(extendedParams)\n : await ExplorerUtil.getDesktopListings(extendedParams)\n const listings = Object.values(listingsObj)\n const type = search ? 'search' : 'wallets'\n state[type] = {\n listings: [...state[type].listings, ...listings],\n total,\n page: page ?? 1\n }\n\n return { listings, total }\n },\n\n getWalletImageUrl(imageId: string) {\n return ExplorerUtil.getWalletImageUrl(imageId)\n },\n\n getAssetImageUrl(imageId: string) {\n return ExplorerUtil.getAssetImageUrl(imageId)\n },\n\n resetSearch() {\n state.search = { listings: [], total: 0, page: 1 }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ModalCtrlState } from '../types/controllerTypes'\nimport { OptionsCtrl } from './OptionsCtrl'\nimport { RouterCtrl } from './RouterCtrl'\n\n// -- types -------------------------------------------------------- //\nexport interface OpenOptions {\n uri: string\n chains?: string[]\n}\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n open: false\n})\n\n// -- controller --------------------------------------------------- //\nexport const ModalCtrl = {\n state,\n\n subscribe(callback: (newState: ModalCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n async open(options?: OpenOptions) {\n return new Promise(resolve => {\n const { isUiLoaded, isDataLoaded } = OptionsCtrl.state\n\n OptionsCtrl.setWalletConnectUri(options?.uri)\n OptionsCtrl.setChains(options?.chains)\n RouterCtrl.reset('ConnectWallet')\n\n // Open modal if essential async data is ready\n if (isUiLoaded && isDataLoaded) {\n state.open = true\n resolve()\n }\n // Otherwise (slow network) re-attempt open checks\n else {\n const interval = setInterval(() => {\n const opts = OptionsCtrl.state\n if (opts.isUiLoaded && opts.isDataLoaded) {\n clearInterval(interval)\n state.open = true\n resolve()\n }\n }, 200)\n }\n })\n },\n\n close() {\n state.open = false\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ThemeCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nfunction isDarkMode() {\n return typeof matchMedia !== 'undefined' && matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nconst state = proxy({\n themeMode: isDarkMode() ? 'dark' : 'light'\n})\n\n// -- controller --------------------------------------------------- //\nexport const ThemeCtrl = {\n state,\n\n subscribe(callback: (newState: ThemeCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setThemeConfig(theme: ThemeCtrlState) {\n const { themeMode, themeVariables } = theme\n\n if (themeMode) {\n state.themeMode = themeMode\n }\n\n if (themeVariables) {\n state.themeVariables = { ...themeVariables }\n }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ToastCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n open: false,\n message: '',\n variant: 'success'\n})\n\n// -- controller --------------------------------------------------- //\nexport const ToastCtrl = {\n state,\n\n subscribe(callback: (newState: ToastCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n openToast(message: ToastCtrlState['message'], variant: ToastCtrlState['variant']) {\n state.open = true\n state.message = message\n state.variant = variant\n },\n\n closeToast() {\n state.open = false\n }\n}\n","/* eslint-disable @typescript-eslint/no-unnecessary-condition */\nimport { Buffer } from 'buffer'\n\nif (typeof window !== 'undefined') {\n if (!window.Buffer) {\n window.Buffer = Buffer\n }\n if (!window.global) {\n window.global = window\n }\n if (!window.process) {\n // @ts-expect-error minimal process\n window.process = { env: {} }\n }\n if (!window.global) {\n window.global = window\n }\n}\n","import type { ConfigCtrlState, ThemeCtrlState } from '@walletconnect/modal-core'\nimport { ConfigCtrl, ModalCtrl, OptionsCtrl, ThemeCtrl } from '@walletconnect/modal-core'\n\n/**\n * Types\n */\nexport type WalletConnectModalConfig = ConfigCtrlState & ThemeCtrlState\n\n/**\n * Client\n */\nexport class WalletConnectModal {\n public constructor(config: WalletConnectModalConfig) {\n ThemeCtrl.setThemeConfig(config)\n ConfigCtrl.setConfig(config)\n this.initUi()\n }\n\n private async initUi() {\n if (typeof window !== 'undefined') {\n await import('@walletconnect/modal-ui')\n const modal = document.createElement('wcm-modal')\n document.body.insertAdjacentElement('beforeend', modal)\n OptionsCtrl.setIsUiLoaded(true)\n }\n }\n\n public openModal = ModalCtrl.open\n\n public closeModal = ModalCtrl.close\n\n public subscribeModal = ModalCtrl.subscribe\n\n public setTheme = ThemeCtrl.setThemeConfig\n}\n"],"names":["Symbol","t","s","Object","getPrototypeOf","c","WeakMap","l","e","has","get","prototype","Array","y","h","set","isObject","x","proxyStateMap","refSet","WeakSet","buildProxyFunction","objectIs","is","newProxy","target","handler","Proxy","canProxy","isArray","iterator","Error","Number","Date","String","RegExp","ArrayBuffer","defaultHandlePromise","promise","status","value","reason","snapCache","createSnapshot","version","handlePromise","cache","snap","create","markToTrack","Reflect","ownKeys","forEach","key","getOwnPropertyDescriptor","desc","enumerable","configurable","Promise","target2","ensureVersion","defineProperty","proxyCache","versionHolder","proxyFunction","initialObject","found","listeners","Set","notifyUpdate","op","nextVersion","listener","checkVersion","nextCheckVersion","size","propProxyStates","propProxyState","propVersion","createPropListener","prop","newOp","Map","addPropListener","remove","removePropListener","_a","entry","delete","call","addListener","add","prevRemove","removeListener","baseObject","deleteProperty","prevValue","deleted","receiver","hasPrevValue","getUntracked","nextValue","then","v","catch","childProxyState","proxyObject","proxyState","writable","defaultProxyFunction","proxy","subscribe","callback","notifyInSync","console","warn","ops","isListenerActive","push","splice","resolve","snapshot","n","p","history","view","data","N","state","reset","replace","length","goBack","pop","slice","setData","i","WALLETCONNECT_DEEPLINK_CHOICE","WCM_VERSION","RECOMMENDED_WALLET_AMOUNT","isMobile","window","Boolean","matchMedia","matches","test","navigator","userAgent","isAndroid","toLowerCase","includes","isIos","isHttpUrl","startsWith","formatNativeUrl","this","formatUniversalUrl","o","replaceAll","endsWith","setWalletConnectDeepLink","a","encodeURIComponent","async","setTimeout","openHref","open","localStorage","setItem","JSON","stringify","href","name","info","setWalletConnectAndroidDeepLink","split","removeWalletConnectDeepLink","removeItem","setModalVersionInStorage","getWalletRouterData","Wallet","T","location","hostname","protocol","r","enabled","userSessionId","events","connectedWalletId","$","S","initialize","crypto","randomUUID","setConnectedWalletId","click","type","timestamp","now","track","chains","walletConnectUri","isAuth","isCustomDesktop","isCustomMobile","isDataLoaded","isUiLoaded","setChains","setWalletConnectUri","setIsCustomDesktop","setIsCustomMobile","setIsDataLoaded","setIsUiLoaded","setIsAuth","projectId","mobileWallets","desktopWallets","walletImages","enableAuthMode","enableExplorer","explorerExcludedWalletIds","explorerRecommendedWalletIds","termsOfServiceUrl","privacyPolicyUrl","C","setConfig","assign","L","W","URL","searchParams","append","entries","fetch","json","m","getWalletImageUrl","getAssetImageUrl","P","O","getOwnPropertySymbols","_","hasOwnProperty","R","propertyIsEnumerable","U","B","f","M","d","wallets","listings","total","page","search","recomendedWallets","G","recommendedIds","join","getAllListings","values","sort","u","w","indexOf","id","sdks","excludedIds","getMobileListings","getDesktopListings","map","k","filter","E","A","resetSearch","I","Q","uri","setInterval","clearInterval","close","H","D","V","K","j","z","J","b","themeMode","X","setThemeConfig","themeVariables","g","message","variant","Y","openToast","closeToast","Buffer","global","process","env","constructor","openModal","closeModal","subscribeModal","setTheme","initUi","document","createElement","body","insertAdjacentElement"],"sourceRoot":""}