4505 lines
		
	
	
		
			131 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			4505 lines
		
	
	
		
			131 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | // node_modules/.pnpm/@vue+devtools-shared@7.7.0/node_modules/@vue/devtools-shared/dist/index.js
 | |||
|  | var __create = Object.create; | |||
|  | var __defProp = Object.defineProperty; | |||
|  | var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | |||
|  | var __getOwnPropNames = Object.getOwnPropertyNames; | |||
|  | var __getProtoOf = Object.getPrototypeOf; | |||
|  | var __hasOwnProp = Object.prototype.hasOwnProperty; | |||
|  | var __esm = (fn, res) => function __init() { | |||
|  |   return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; | |||
|  | }; | |||
|  | var __commonJS = (cb, mod) => function __require() { | |||
|  |   return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; | |||
|  | }; | |||
|  | var __copyProps = (to, from, except, desc) => { | |||
|  |   if (from && typeof from === "object" || typeof from === "function") { | |||
|  |     for (let key of __getOwnPropNames(from)) | |||
|  |       if (!__hasOwnProp.call(to, key) && key !== except) | |||
|  |         __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | |||
|  |   } | |||
|  |   return to; | |||
|  | }; | |||
|  | var __toESM = (mod, isNodeMode, target2) => (target2 = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( | |||
|  |   // If the importer is in node compatibility mode or this is not an ESM
 | |||
|  |   // file that has been converted to a CommonJS file using a Babel-
 | |||
|  |   // compatible transform (i.e. "__esModule" has not been set), then set
 | |||
|  |   // "default" to the CommonJS "module.exports" for node compatibility.
 | |||
|  |   isNodeMode || !mod || !mod.__esModule ? __defProp(target2, "default", { value: mod, enumerable: true }) : target2, | |||
|  |   mod | |||
|  | )); | |||
|  | var init_esm_shims = __esm({ | |||
|  |   "../../node_modules/.pnpm/tsup@8.3.5_@microsoft+api-extractor@7.48.1_@types+node@22.10.5__jiti@2.4.2_postcss@8.4.49_tsx_s7k37zks4wtn7x2grzma6lrsfa/node_modules/tsup/assets/esm_shims.js"() { | |||
|  |     "use strict"; | |||
|  |   } | |||
|  | }); | |||
|  | var require_rfdc = __commonJS({ | |||
|  |   "../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js"(exports, module) { | |||
|  |     "use strict"; | |||
|  |     init_esm_shims(); | |||
|  |     module.exports = rfdc2; | |||
|  |     function copyBuffer(cur) { | |||
|  |       if (cur instanceof Buffer) { | |||
|  |         return Buffer.from(cur); | |||
|  |       } | |||
|  |       return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length); | |||
|  |     } | |||
|  |     function rfdc2(opts) { | |||
|  |       opts = opts || {}; | |||
|  |       if (opts.circles) return rfdcCircles(opts); | |||
|  |       const constructorHandlers = /* @__PURE__ */ new Map(); | |||
|  |       constructorHandlers.set(Date, (o) => new Date(o)); | |||
|  |       constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn))); | |||
|  |       constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn))); | |||
|  |       if (opts.constructorHandlers) { | |||
|  |         for (const handler2 of opts.constructorHandlers) { | |||
|  |           constructorHandlers.set(handler2[0], handler2[1]); | |||
|  |         } | |||
|  |       } | |||
|  |       let handler = null; | |||
|  |       return opts.proto ? cloneProto : clone; | |||
|  |       function cloneArray(a, fn) { | |||
|  |         const keys = Object.keys(a); | |||
|  |         const a2 = new Array(keys.length); | |||
|  |         for (let i = 0; i < keys.length; i++) { | |||
|  |           const k = keys[i]; | |||
|  |           const cur = a[k]; | |||
|  |           if (typeof cur !== "object" || cur === null) { | |||
|  |             a2[k] = cur; | |||
|  |           } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { | |||
|  |             a2[k] = handler(cur, fn); | |||
|  |           } else if (ArrayBuffer.isView(cur)) { | |||
|  |             a2[k] = copyBuffer(cur); | |||
|  |           } else { | |||
|  |             a2[k] = fn(cur); | |||
|  |           } | |||
|  |         } | |||
|  |         return a2; | |||
|  |       } | |||
|  |       function clone(o) { | |||
|  |         if (typeof o !== "object" || o === null) return o; | |||
|  |         if (Array.isArray(o)) return cloneArray(o, clone); | |||
|  |         if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) { | |||
|  |           return handler(o, clone); | |||
|  |         } | |||
|  |         const o2 = {}; | |||
|  |         for (const k in o) { | |||
|  |           if (Object.hasOwnProperty.call(o, k) === false) continue; | |||
|  |           const cur = o[k]; | |||
|  |           if (typeof cur !== "object" || cur === null) { | |||
|  |             o2[k] = cur; | |||
|  |           } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { | |||
|  |             o2[k] = handler(cur, clone); | |||
|  |           } else if (ArrayBuffer.isView(cur)) { | |||
|  |             o2[k] = copyBuffer(cur); | |||
|  |           } else { | |||
|  |             o2[k] = clone(cur); | |||
|  |           } | |||
|  |         } | |||
|  |         return o2; | |||
|  |       } | |||
|  |       function cloneProto(o) { | |||
|  |         if (typeof o !== "object" || o === null) return o; | |||
|  |         if (Array.isArray(o)) return cloneArray(o, cloneProto); | |||
|  |         if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) { | |||
|  |           return handler(o, cloneProto); | |||
|  |         } | |||
|  |         const o2 = {}; | |||
|  |         for (const k in o) { | |||
|  |           const cur = o[k]; | |||
|  |           if (typeof cur !== "object" || cur === null) { | |||
|  |             o2[k] = cur; | |||
|  |           } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { | |||
|  |             o2[k] = handler(cur, cloneProto); | |||
|  |           } else if (ArrayBuffer.isView(cur)) { | |||
|  |             o2[k] = copyBuffer(cur); | |||
|  |           } else { | |||
|  |             o2[k] = cloneProto(cur); | |||
|  |           } | |||
|  |         } | |||
|  |         return o2; | |||
|  |       } | |||
|  |     } | |||
|  |     function rfdcCircles(opts) { | |||
|  |       const refs = []; | |||
|  |       const refsNew = []; | |||
|  |       const constructorHandlers = /* @__PURE__ */ new Map(); | |||
|  |       constructorHandlers.set(Date, (o) => new Date(o)); | |||
|  |       constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn))); | |||
|  |       constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn))); | |||
|  |       if (opts.constructorHandlers) { | |||
|  |         for (const handler2 of opts.constructorHandlers) { | |||
|  |           constructorHandlers.set(handler2[0], handler2[1]); | |||
|  |         } | |||
|  |       } | |||
|  |       let handler = null; | |||
|  |       return opts.proto ? cloneProto : clone; | |||
|  |       function cloneArray(a, fn) { | |||
|  |         const keys = Object.keys(a); | |||
|  |         const a2 = new Array(keys.length); | |||
|  |         for (let i = 0; i < keys.length; i++) { | |||
|  |           const k = keys[i]; | |||
|  |           const cur = a[k]; | |||
|  |           if (typeof cur !== "object" || cur === null) { | |||
|  |             a2[k] = cur; | |||
|  |           } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { | |||
|  |             a2[k] = handler(cur, fn); | |||
|  |           } else if (ArrayBuffer.isView(cur)) { | |||
|  |             a2[k] = copyBuffer(cur); | |||
|  |           } else { | |||
|  |             const index = refs.indexOf(cur); | |||
|  |             if (index !== -1) { | |||
|  |               a2[k] = refsNew[index]; | |||
|  |             } else { | |||
|  |               a2[k] = fn(cur); | |||
|  |             } | |||
|  |           } | |||
|  |         } | |||
|  |         return a2; | |||
|  |       } | |||
|  |       function clone(o) { | |||
|  |         if (typeof o !== "object" || o === null) return o; | |||
|  |         if (Array.isArray(o)) return cloneArray(o, clone); | |||
|  |         if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) { | |||
|  |           return handler(o, clone); | |||
|  |         } | |||
|  |         const o2 = {}; | |||
|  |         refs.push(o); | |||
|  |         refsNew.push(o2); | |||
|  |         for (const k in o) { | |||
|  |           if (Object.hasOwnProperty.call(o, k) === false) continue; | |||
|  |           const cur = o[k]; | |||
|  |           if (typeof cur !== "object" || cur === null) { | |||
|  |             o2[k] = cur; | |||
|  |           } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { | |||
|  |             o2[k] = handler(cur, clone); | |||
|  |           } else if (ArrayBuffer.isView(cur)) { | |||
|  |             o2[k] = copyBuffer(cur); | |||
|  |           } else { | |||
|  |             const i = refs.indexOf(cur); | |||
|  |             if (i !== -1) { | |||
|  |               o2[k] = refsNew[i]; | |||
|  |             } else { | |||
|  |               o2[k] = clone(cur); | |||
|  |             } | |||
|  |           } | |||
|  |         } | |||
|  |         refs.pop(); | |||
|  |         refsNew.pop(); | |||
|  |         return o2; | |||
|  |       } | |||
|  |       function cloneProto(o) { | |||
|  |         if (typeof o !== "object" || o === null) return o; | |||
|  |         if (Array.isArray(o)) return cloneArray(o, cloneProto); | |||
|  |         if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) { | |||
|  |           return handler(o, cloneProto); | |||
|  |         } | |||
|  |         const o2 = {}; | |||
|  |         refs.push(o); | |||
|  |         refsNew.push(o2); | |||
|  |         for (const k in o) { | |||
|  |           const cur = o[k]; | |||
|  |           if (typeof cur !== "object" || cur === null) { | |||
|  |             o2[k] = cur; | |||
|  |           } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) { | |||
|  |             o2[k] = handler(cur, cloneProto); | |||
|  |           } else if (ArrayBuffer.isView(cur)) { | |||
|  |             o2[k] = copyBuffer(cur); | |||
|  |           } else { | |||
|  |             const i = refs.indexOf(cur); | |||
|  |             if (i !== -1) { | |||
|  |               o2[k] = refsNew[i]; | |||
|  |             } else { | |||
|  |               o2[k] = cloneProto(cur); | |||
|  |             } | |||
|  |           } | |||
|  |         } | |||
|  |         refs.pop(); | |||
|  |         refsNew.pop(); | |||
|  |         return o2; | |||
|  |       } | |||
|  |     } | |||
|  |   } | |||
|  | }); | |||
|  | init_esm_shims(); | |||
|  | init_esm_shims(); | |||
|  | init_esm_shims(); | |||
|  | var isBrowser = typeof navigator !== "undefined"; | |||
|  | var target = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : {}; | |||
|  | var isInChromePanel = typeof target.chrome !== "undefined" && !!target.chrome.devtools; | |||
|  | var isInIframe = isBrowser && target.self !== target.top; | |||
|  | var _a; | |||
|  | var isInElectron = typeof navigator !== "undefined" && ((_a = navigator.userAgent) == null ? void 0 : _a.toLowerCase().includes("electron")); | |||
|  | var isNuxtApp = typeof window !== "undefined" && !!window.__NUXT__; | |||
|  | init_esm_shims(); | |||
|  | var import_rfdc = __toESM(require_rfdc(), 1); | |||
|  | var classifyRE = /(?:^|[-_/])(\w)/g; | |||
|  | function toUpper(_, c) { | |||
|  |   return c ? c.toUpperCase() : ""; | |||
|  | } | |||
|  | function classify(str) { | |||
|  |   return str && `${str}`.replace(classifyRE, toUpper); | |||
|  | } | |||
|  | function basename(filename, ext) { | |||
|  |   let normalizedFilename = filename.replace(/^[a-z]:/i, "").replace(/\\/g, "/"); | |||
|  |   if (normalizedFilename.endsWith(`index${ext}`)) { | |||
|  |     normalizedFilename = normalizedFilename.replace(`/index${ext}`, ext); | |||
|  |   } | |||
|  |   const lastSlashIndex = normalizedFilename.lastIndexOf("/"); | |||
|  |   const baseNameWithExt = normalizedFilename.substring(lastSlashIndex + 1); | |||
|  |   if (ext) { | |||
|  |     const extIndex = baseNameWithExt.lastIndexOf(ext); | |||
|  |     return baseNameWithExt.substring(0, extIndex); | |||
|  |   } | |||
|  |   return ""; | |||
|  | } | |||
|  | var HTTP_URL_RE = /^https?:\/\//; | |||
|  | function isUrlString(str) { | |||
|  |   return str.startsWith("/") || HTTP_URL_RE.test(str); | |||
|  | } | |||
|  | var deepClone = (0, import_rfdc.default)({ circles: true }); | |||
|  | 
 | |||
|  | // node_modules/.pnpm/perfect-debounce@1.0.0/node_modules/perfect-debounce/dist/index.mjs
 | |||
|  | var DEBOUNCE_DEFAULTS = { | |||
|  |   trailing: true | |||
|  | }; | |||
|  | function debounce(fn, wait = 25, options = {}) { | |||
|  |   options = { ...DEBOUNCE_DEFAULTS, ...options }; | |||
|  |   if (!Number.isFinite(wait)) { | |||
|  |     throw new TypeError("Expected `wait` to be a finite number"); | |||
|  |   } | |||
|  |   let leadingValue; | |||
|  |   let timeout; | |||
|  |   let resolveList = []; | |||
|  |   let currentPromise; | |||
|  |   let trailingArgs; | |||
|  |   const applyFn = (_this, args) => { | |||
|  |     currentPromise = _applyPromised(fn, _this, args); | |||
|  |     currentPromise.finally(() => { | |||
|  |       currentPromise = null; | |||
|  |       if (options.trailing && trailingArgs && !timeout) { | |||
|  |         const promise = applyFn(_this, trailingArgs); | |||
|  |         trailingArgs = null; | |||
|  |         return promise; | |||
|  |       } | |||
|  |     }); | |||
|  |     return currentPromise; | |||
|  |   }; | |||
|  |   return function(...args) { | |||
|  |     if (currentPromise) { | |||
|  |       if (options.trailing) { | |||
|  |         trailingArgs = args; | |||
|  |       } | |||
|  |       return currentPromise; | |||
|  |     } | |||
|  |     return new Promise((resolve) => { | |||
|  |       const shouldCallNow = !timeout && options.leading; | |||
|  |       clearTimeout(timeout); | |||
|  |       timeout = setTimeout(() => { | |||
|  |         timeout = null; | |||
|  |         const promise = options.leading ? leadingValue : applyFn(this, args); | |||
|  |         for (const _resolve of resolveList) { | |||
|  |           _resolve(promise); | |||
|  |         } | |||
|  |         resolveList = []; | |||
|  |       }, wait); | |||
|  |       if (shouldCallNow) { | |||
|  |         leadingValue = applyFn(this, args); | |||
|  |         resolve(leadingValue); | |||
|  |       } else { | |||
|  |         resolveList.push(resolve); | |||
|  |       } | |||
|  |     }); | |||
|  |   }; | |||
|  | } | |||
|  | async function _applyPromised(fn, _this, args) { | |||
|  |   return await fn.apply(_this, args); | |||
|  | } | |||
|  | 
 | |||
|  | // node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs
 | |||
|  | function flatHooks(configHooks, hooks2 = {}, parentName) { | |||
|  |   for (const key in configHooks) { | |||
|  |     const subHook = configHooks[key]; | |||
|  |     const name = parentName ? `${parentName}:${key}` : key; | |||
|  |     if (typeof subHook === "object" && subHook !== null) { | |||
|  |       flatHooks(subHook, hooks2, name); | |||
|  |     } else if (typeof subHook === "function") { | |||
|  |       hooks2[name] = subHook; | |||
|  |     } | |||
|  |   } | |||
|  |   return hooks2; | |||
|  | } | |||
|  | var defaultTask = { run: (function_) => function_() }; | |||
|  | var _createTask = () => defaultTask; | |||
|  | var createTask = typeof console.createTask !== "undefined" ? console.createTask : _createTask; | |||
|  | function serialTaskCaller(hooks2, args) { | |||
|  |   const name = args.shift(); | |||
|  |   const task = createTask(name); | |||
|  |   return hooks2.reduce( | |||
|  |     (promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))), | |||
|  |     Promise.resolve() | |||
|  |   ); | |||
|  | } | |||
|  | function parallelTaskCaller(hooks2, args) { | |||
|  |   const name = args.shift(); | |||
|  |   const task = createTask(name); | |||
|  |   return Promise.all(hooks2.map((hook2) => task.run(() => hook2(...args)))); | |||
|  | } | |||
|  | function callEachWith(callbacks, arg0) { | |||
|  |   for (const callback of [...callbacks]) { | |||
|  |     callback(arg0); | |||
|  |   } | |||
|  | } | |||
|  | var Hookable = class { | |||
|  |   constructor() { | |||
|  |     this._hooks = {}; | |||
|  |     this._before = void 0; | |||
|  |     this._after = void 0; | |||
|  |     this._deprecatedMessages = void 0; | |||
|  |     this._deprecatedHooks = {}; | |||
|  |     this.hook = this.hook.bind(this); | |||
|  |     this.callHook = this.callHook.bind(this); | |||
|  |     this.callHookWith = this.callHookWith.bind(this); | |||
|  |   } | |||
|  |   hook(name, function_, options = {}) { | |||
|  |     if (!name || typeof function_ !== "function") { | |||
|  |       return () => { | |||
|  |       }; | |||
|  |     } | |||
|  |     const originalName = name; | |||
|  |     let dep; | |||
|  |     while (this._deprecatedHooks[name]) { | |||
|  |       dep = this._deprecatedHooks[name]; | |||
|  |       name = dep.to; | |||
|  |     } | |||
|  |     if (dep && !options.allowDeprecated) { | |||
|  |       let message = dep.message; | |||
|  |       if (!message) { | |||
|  |         message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : ""); | |||
|  |       } | |||
|  |       if (!this._deprecatedMessages) { | |||
|  |         this._deprecatedMessages = /* @__PURE__ */ new Set(); | |||
|  |       } | |||
|  |       if (!this._deprecatedMessages.has(message)) { | |||
|  |         console.warn(message); | |||
|  |         this._deprecatedMessages.add(message); | |||
|  |       } | |||
|  |     } | |||
|  |     if (!function_.name) { | |||
|  |       try { | |||
|  |         Object.defineProperty(function_, "name", { | |||
|  |           get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb", | |||
|  |           configurable: true | |||
|  |         }); | |||
|  |       } catch { | |||
|  |       } | |||
|  |     } | |||
|  |     this._hooks[name] = this._hooks[name] || []; | |||
|  |     this._hooks[name].push(function_); | |||
|  |     return () => { | |||
|  |       if (function_) { | |||
|  |         this.removeHook(name, function_); | |||
|  |         function_ = void 0; | |||
|  |       } | |||
|  |     }; | |||
|  |   } | |||
|  |   hookOnce(name, function_) { | |||
|  |     let _unreg; | |||
|  |     let _function = (...arguments_) => { | |||
|  |       if (typeof _unreg === "function") { | |||
|  |         _unreg(); | |||
|  |       } | |||
|  |       _unreg = void 0; | |||
|  |       _function = void 0; | |||
|  |       return function_(...arguments_); | |||
|  |     }; | |||
|  |     _unreg = this.hook(name, _function); | |||
|  |     return _unreg; | |||
|  |   } | |||
|  |   removeHook(name, function_) { | |||
|  |     if (this._hooks[name]) { | |||
|  |       const index = this._hooks[name].indexOf(function_); | |||
|  |       if (index !== -1) { | |||
|  |         this._hooks[name].splice(index, 1); | |||
|  |       } | |||
|  |       if (this._hooks[name].length === 0) { | |||
|  |         delete this._hooks[name]; | |||
|  |       } | |||
|  |     } | |||
|  |   } | |||
|  |   deprecateHook(name, deprecated) { | |||
|  |     this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated; | |||
|  |     const _hooks = this._hooks[name] || []; | |||
|  |     delete this._hooks[name]; | |||
|  |     for (const hook2 of _hooks) { | |||
|  |       this.hook(name, hook2); | |||
|  |     } | |||
|  |   } | |||
|  |   deprecateHooks(deprecatedHooks) { | |||
|  |     Object.assign(this._deprecatedHooks, deprecatedHooks); | |||
|  |     for (const name in deprecatedHooks) { | |||
|  |       this.deprecateHook(name, deprecatedHooks[name]); | |||
|  |     } | |||
|  |   } | |||
|  |   addHooks(configHooks) { | |||
|  |     const hooks2 = flatHooks(configHooks); | |||
|  |     const removeFns = Object.keys(hooks2).map( | |||
|  |       (key) => this.hook(key, hooks2[key]) | |||
|  |     ); | |||
|  |     return () => { | |||
|  |       for (const unreg of removeFns.splice(0, removeFns.length)) { | |||
|  |         unreg(); | |||
|  |       } | |||
|  |     }; | |||
|  |   } | |||
|  |   removeHooks(configHooks) { | |||
|  |     const hooks2 = flatHooks(configHooks); | |||
|  |     for (const key in hooks2) { | |||
|  |       this.removeHook(key, hooks2[key]); | |||
|  |     } | |||
|  |   } | |||
|  |   removeAllHooks() { | |||
|  |     for (const key in this._hooks) { | |||
|  |       delete this._hooks[key]; | |||
|  |     } | |||
|  |   } | |||
|  |   callHook(name, ...arguments_) { | |||
|  |     arguments_.unshift(name); | |||
|  |     return this.callHookWith(serialTaskCaller, name, ...arguments_); | |||
|  |   } | |||
|  |   callHookParallel(name, ...arguments_) { | |||
|  |     arguments_.unshift(name); | |||
|  |     return this.callHookWith(parallelTaskCaller, name, ...arguments_); | |||
|  |   } | |||
|  |   callHookWith(caller, name, ...arguments_) { | |||
|  |     const event = this._before || this._after ? { name, args: arguments_, context: {} } : void 0; | |||
|  |     if (this._before) { | |||
|  |       callEachWith(this._before, event); | |||
|  |     } | |||
|  |     const result = caller( | |||
|  |       name in this._hooks ? [...this._hooks[name]] : [], | |||
|  |       arguments_ | |||
|  |     ); | |||
|  |     if (result instanceof Promise) { | |||
|  |       return result.finally(() => { | |||
|  |         if (this._after && event) { | |||
|  |           callEachWith(this._after, event); | |||
|  |         } | |||
|  |       }); | |||
|  |     } | |||
|  |     if (this._after && event) { | |||
|  |       callEachWith(this._after, event); | |||
|  |     } | |||
|  |     return result; | |||
|  |   } | |||
|  |   beforeEach(function_) { | |||
|  |     this._before = this._before || []; | |||
|  |     this._before.push(function_); | |||
|  |     return () => { | |||
|  |       if (this._before !== void 0) { | |||
|  |         const index = this._before.indexOf(function_); | |||
|  |         if (index !== -1) { | |||
|  |           this._before.splice(index, 1); | |||
|  |         } | |||
|  |       } | |||
|  |     }; | |||
|  |   } | |||
|  |   afterEach(function_) { | |||
|  |     this._after = this._after || []; | |||
|  |     this._after.push(function_); | |||
|  |     return () => { | |||
|  |       if (this._after !== void 0) { | |||
|  |         const index = this._after.indexOf(function_); | |||
|  |         if (index !== -1) { | |||
|  |           this._after.splice(index, 1); | |||
|  |         } | |||
|  |       } | |||
|  |     }; | |||
|  |   } | |||
|  | }; | |||
|  | function createHooks() { | |||
|  |   return new Hookable(); | |||
|  | } | |||
|  | 
 | |||
|  | // node_modules/.pnpm/birpc@0.2.19/node_modules/birpc/dist/index.mjs
 | |||
|  | var { clearTimeout: clearTimeout2, setTimeout: setTimeout2 } = globalThis; | |||
|  | var random = Math.random.bind(Math); | |||
|  | 
 | |||
|  | // node_modules/.pnpm/@vue+devtools-kit@7.7.0/node_modules/@vue/devtools-kit/dist/index.js
 | |||
|  | var __create2 = Object.create; | |||
|  | var __defProp2 = Object.defineProperty; | |||
|  | var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; | |||
|  | var __getOwnPropNames2 = Object.getOwnPropertyNames; | |||
|  | var __getProtoOf2 = Object.getPrototypeOf; | |||
|  | var __hasOwnProp2 = Object.prototype.hasOwnProperty; | |||
|  | var __esm2 = (fn, res) => function __init() { | |||
|  |   return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; | |||
|  | }; | |||
|  | var __commonJS2 = (cb, mod) => function __require() { | |||
|  |   return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; | |||
|  | }; | |||
|  | var __copyProps2 = (to, from, except, desc) => { | |||
|  |   if (from && typeof from === "object" || typeof from === "function") { | |||
|  |     for (let key of __getOwnPropNames2(from)) | |||
|  |       if (!__hasOwnProp2.call(to, key) && key !== except) | |||
|  |         __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); | |||
|  |   } | |||
|  |   return to; | |||
|  | }; | |||
|  | var __toESM2 = (mod, isNodeMode, target22) => (target22 = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( | |||
|  |   // If the importer is in node compatibility mode or this is not an ESM
 | |||
|  |   // file that has been converted to a CommonJS file using a Babel-
 | |||
|  |   // compatible transform (i.e. "__esModule" has not been set), then set
 | |||
|  |   // "default" to the CommonJS "module.exports" for node compatibility.
 | |||
|  |   isNodeMode || !mod || !mod.__esModule ? __defProp2(target22, "default", { value: mod, enumerable: true }) : target22, | |||
|  |   mod | |||
|  | )); | |||
|  | var init_esm_shims2 = __esm2({ | |||
|  |   "../../node_modules/.pnpm/tsup@8.3.5_@microsoft+api-extractor@7.48.1_@types+node@22.10.5__jiti@2.4.2_postcss@8.4.49_tsx_s7k37zks4wtn7x2grzma6lrsfa/node_modules/tsup/assets/esm_shims.js"() { | |||
|  |     "use strict"; | |||
|  |   } | |||
|  | }); | |||
|  | var require_speakingurl = __commonJS2({ | |||
|  |   "../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js"(exports, module) { | |||
|  |     "use strict"; | |||
|  |     init_esm_shims2(); | |||
|  |     (function(root) { | |||
|  |       "use strict"; | |||
|  |       var charMap = { | |||
|  |         // latin
 | |||
|  |         "À": "A", | |||
|  |         "Á": "A", | |||
|  |         "Â": "A", | |||
|  |         "Ã": "A", | |||
|  |         "Ä": "Ae", | |||
|  |         "Å": "A", | |||
|  |         "Æ": "AE", | |||
|  |         "Ç": "C", | |||
|  |         "È": "E", | |||
|  |         "É": "E", | |||
|  |         "Ê": "E", | |||
|  |         "Ë": "E", | |||
|  |         "Ì": "I", | |||
|  |         "Í": "I", | |||
|  |         "Î": "I", | |||
|  |         "Ï": "I", | |||
|  |         "Ð": "D", | |||
|  |         "Ñ": "N", | |||
|  |         "Ò": "O", | |||
|  |         "Ó": "O", | |||
|  |         "Ô": "O", | |||
|  |         "Õ": "O", | |||
|  |         "Ö": "Oe", | |||
|  |         "Ő": "O", | |||
|  |         "Ø": "O", | |||
|  |         "Ù": "U", | |||
|  |         "Ú": "U", | |||
|  |         "Û": "U", | |||
|  |         "Ü": "Ue", | |||
|  |         "Ű": "U", | |||
|  |         "Ý": "Y", | |||
|  |         "Þ": "TH", | |||
|  |         "ß": "ss", | |||
|  |         "à": "a", | |||
|  |         "á": "a", | |||
|  |         "â": "a", | |||
|  |         "ã": "a", | |||
|  |         "ä": "ae", | |||
|  |         "å": "a", | |||
|  |         "æ": "ae", | |||
|  |         "ç": "c", | |||
|  |         "è": "e", | |||
|  |         "é": "e", | |||
|  |         "ê": "e", | |||
|  |         "ë": "e", | |||
|  |         "ì": "i", | |||
|  |         "í": "i", | |||
|  |         "î": "i", | |||
|  |         "ï": "i", | |||
|  |         "ð": "d", | |||
|  |         "ñ": "n", | |||
|  |         "ò": "o", | |||
|  |         "ó": "o", | |||
|  |         "ô": "o", | |||
|  |         "õ": "o", | |||
|  |         "ö": "oe", | |||
|  |         "ő": "o", | |||
|  |         "ø": "o", | |||
|  |         "ù": "u", | |||
|  |         "ú": "u", | |||
|  |         "û": "u", | |||
|  |         "ü": "ue", | |||
|  |         "ű": "u", | |||
|  |         "ý": "y", | |||
|  |         "þ": "th", | |||
|  |         "ÿ": "y", | |||
|  |         "ẞ": "SS", | |||
|  |         // language specific
 | |||
|  |         // Arabic
 | |||
|  |         "ا": "a", | |||
|  |         "أ": "a", | |||
|  |         "إ": "i", | |||
|  |         "آ": "aa", | |||
|  |         "ؤ": "u", | |||
|  |         "ئ": "e", | |||
|  |         "ء": "a", | |||
|  |         "ب": "b", | |||
|  |         "ت": "t", | |||
|  |         "ث": "th", | |||
|  |         "ج": "j", | |||
|  |         "ح": "h", | |||
|  |         "خ": "kh", | |||
|  |         "د": "d", | |||
|  |         "ذ": "th", | |||
|  |         "ر": "r", | |||
|  |         "ز": "z", | |||
|  |         "س": "s", | |||
|  |         "ش": "sh", | |||
|  |         "ص": "s", | |||
|  |         "ض": "dh", | |||
|  |         "ط": "t", | |||
|  |         "ظ": "z", | |||
|  |         "ع": "a", | |||
|  |         "غ": "gh", | |||
|  |         "ف": "f", | |||
|  |         "ق": "q", | |||
|  |         "ك": "k", | |||
|  |         "ل": "l", | |||
|  |         "م": "m", | |||
|  |         "ن": "n", | |||
|  |         "ه": "h", | |||
|  |         "و": "w", | |||
|  |         "ي": "y", | |||
|  |         "ى": "a", | |||
|  |         "ة": "h", | |||
|  |         "ﻻ": "la", | |||
|  |         "ﻷ": "laa", | |||
|  |         "ﻹ": "lai", | |||
|  |         "ﻵ": "laa", | |||
|  |         // Persian additional characters than Arabic
 | |||
|  |         "گ": "g", | |||
|  |         "چ": "ch", | |||
|  |         "پ": "p", | |||
|  |         "ژ": "zh", | |||
|  |         "ک": "k", | |||
|  |         "ی": "y", | |||
|  |         // Arabic diactrics
 | |||
|  |         "َ": "a", | |||
|  |         "ً": "an", | |||
|  |         "ِ": "e", | |||
|  |         "ٍ": "en", | |||
|  |         "ُ": "u", | |||
|  |         "ٌ": "on", | |||
|  |         "ْ": "", | |||
|  |         // Arabic numbers
 | |||
|  |         "٠": "0", | |||
|  |         "١": "1", | |||
|  |         "٢": "2", | |||
|  |         "٣": "3", | |||
|  |         "٤": "4", | |||
|  |         "٥": "5", | |||
|  |         "٦": "6", | |||
|  |         "٧": "7", | |||
|  |         "٨": "8", | |||
|  |         "٩": "9", | |||
|  |         // Persian numbers
 | |||
|  |         "۰": "0", | |||
|  |         "۱": "1", | |||
|  |         "۲": "2", | |||
|  |         "۳": "3", | |||
|  |         "۴": "4", | |||
|  |         "۵": "5", | |||
|  |         "۶": "6", | |||
|  |         "۷": "7", | |||
|  |         "۸": "8", | |||
|  |         "۹": "9", | |||
|  |         // Burmese consonants
 | |||
|  |         "က": "k", | |||
|  |         "ခ": "kh", | |||
|  |         "ဂ": "g", | |||
|  |         "ဃ": "ga", | |||
|  |         "င": "ng", | |||
|  |         "စ": "s", | |||
|  |         "ဆ": "sa", | |||
|  |         "ဇ": "z", | |||
|  |         "စျ": "za", | |||
|  |         "ည": "ny", | |||
|  |         "ဋ": "t", | |||
|  |         "ဌ": "ta", | |||
|  |         "ဍ": "d", | |||
|  |         "ဎ": "da", | |||
|  |         "ဏ": "na", | |||
|  |         "တ": "t", | |||
|  |         "ထ": "ta", | |||
|  |         "ဒ": "d", | |||
|  |         "ဓ": "da", | |||
|  |         "န": "n", | |||
|  |         "ပ": "p", | |||
|  |         "ဖ": "pa", | |||
|  |         "ဗ": "b", | |||
|  |         "ဘ": "ba", | |||
|  |         "မ": "m", | |||
|  |         "ယ": "y", | |||
|  |         "ရ": "ya", | |||
|  |         "လ": "l", | |||
|  |         "ဝ": "w", | |||
|  |         "သ": "th", | |||
|  |         "ဟ": "h", | |||
|  |         "ဠ": "la", | |||
|  |         "အ": "a", | |||
|  |         // consonant character combos
 | |||
|  |         "ြ": "y", | |||
|  |         "ျ": "ya", | |||
|  |         "ွ": "w", | |||
|  |         "ြွ": "yw", | |||
|  |         "ျွ": "ywa", | |||
|  |         "ှ": "h", | |||
|  |         // independent vowels
 | |||
|  |         "ဧ": "e", | |||
|  |         "၏": "-e", | |||
|  |         "ဣ": "i", | |||
|  |         "ဤ": "-i", | |||
|  |         "ဉ": "u", | |||
|  |         "ဦ": "-u", | |||
|  |         "ဩ": "aw", | |||
|  |         "သြော": "aw", | |||
|  |         "ဪ": "aw", | |||
|  |         // numbers
 | |||
|  |         "၀": "0", | |||
|  |         "၁": "1", | |||
|  |         "၂": "2", | |||
|  |         "၃": "3", | |||
|  |         "၄": "4", | |||
|  |         "၅": "5", | |||
|  |         "၆": "6", | |||
|  |         "၇": "7", | |||
|  |         "၈": "8", | |||
|  |         "၉": "9", | |||
|  |         // virama and tone marks which are silent in transliteration
 | |||
|  |         "္": "", | |||
|  |         "့": "", | |||
|  |         "း": "", | |||
|  |         // Czech
 | |||
|  |         "č": "c", | |||
|  |         "ď": "d", | |||
|  |         "ě": "e", | |||
|  |         "ň": "n", | |||
|  |         "ř": "r", | |||
|  |         "š": "s", | |||
|  |         "ť": "t", | |||
|  |         "ů": "u", | |||
|  |         "ž": "z", | |||
|  |         "Č": "C", | |||
|  |         "Ď": "D", | |||
|  |         "Ě": "E", | |||
|  |         "Ň": "N", | |||
|  |         "Ř": "R", | |||
|  |         "Š": "S", | |||
|  |         "Ť": "T", | |||
|  |         "Ů": "U", | |||
|  |         "Ž": "Z", | |||
|  |         // Dhivehi
 | |||
|  |         "ހ": "h", | |||
|  |         "ށ": "sh", | |||
|  |         "ނ": "n", | |||
|  |         "ރ": "r", | |||
|  |         "ބ": "b", | |||
|  |         "ޅ": "lh", | |||
|  |         "ކ": "k", | |||
|  |         "އ": "a", | |||
|  |         "ވ": "v", | |||
|  |         "މ": "m", | |||
|  |         "ފ": "f", | |||
|  |         "ދ": "dh", | |||
|  |         "ތ": "th", | |||
|  |         "ލ": "l", | |||
|  |         "ގ": "g", | |||
|  |         "ޏ": "gn", | |||
|  |         "ސ": "s", | |||
|  |         "ޑ": "d", | |||
|  |         "ޒ": "z", | |||
|  |         "ޓ": "t", | |||
|  |         "ޔ": "y", | |||
|  |         "ޕ": "p", | |||
|  |         "ޖ": "j", | |||
|  |         "ޗ": "ch", | |||
|  |         "ޘ": "tt", | |||
|  |         "ޙ": "hh", | |||
|  |         "ޚ": "kh", | |||
|  |         "ޛ": "th", | |||
|  |         "ޜ": "z", | |||
|  |         "ޝ": "sh", | |||
|  |         "ޞ": "s", | |||
|  |         "ޟ": "d", | |||
|  |         "ޠ": "t", | |||
|  |         "ޡ": "z", | |||
|  |         "ޢ": "a", | |||
|  |         "ޣ": "gh", | |||
|  |         "ޤ": "q", | |||
|  |         "ޥ": "w", | |||
|  |         "ަ": "a", | |||
|  |         "ާ": "aa", | |||
|  |         "ި": "i", | |||
|  |         "ީ": "ee", | |||
|  |         "ު": "u", | |||
|  |         "ޫ": "oo", | |||
|  |         "ެ": "e", | |||
|  |         "ޭ": "ey", | |||
|  |         "ޮ": "o", | |||
|  |         "ޯ": "oa", | |||
|  |         "ް": "", | |||
|  |         // Georgian https://en.wikipedia.org/wiki/Romanization_of_Georgian
 | |||
|  |         // National system (2002)
 | |||
|  |         "ა": "a", | |||
|  |         "ბ": "b", | |||
|  |         "გ": "g", | |||
|  |         "დ": "d", | |||
|  |         "ე": "e", | |||
|  |         "ვ": "v", | |||
|  |         "ზ": "z", | |||
|  |         "თ": "t", | |||
|  |         "ი": "i", | |||
|  |         "კ": "k", | |||
|  |         "ლ": "l", | |||
|  |         "მ": "m", | |||
|  |         "ნ": "n", | |||
|  |         "ო": "o", | |||
|  |         "პ": "p", | |||
|  |         "ჟ": "zh", | |||
|  |         "რ": "r", | |||
|  |         "ს": "s", | |||
|  |         "ტ": "t", | |||
|  |         "უ": "u", | |||
|  |         "ფ": "p", | |||
|  |         "ქ": "k", | |||
|  |         "ღ": "gh", | |||
|  |         "ყ": "q", | |||
|  |         "შ": "sh", | |||
|  |         "ჩ": "ch", | |||
|  |         "ც": "ts", | |||
|  |         "ძ": "dz", | |||
|  |         "წ": "ts", | |||
|  |         "ჭ": "ch", | |||
|  |         "ხ": "kh", | |||
|  |         "ჯ": "j", | |||
|  |         "ჰ": "h", | |||
|  |         // Greek
 | |||
|  |         "α": "a", | |||
|  |         "β": "v", | |||
|  |         "γ": "g", | |||
|  |         "δ": "d", | |||
|  |         "ε": "e", | |||
|  |         "ζ": "z", | |||
|  |         "η": "i", | |||
|  |         "θ": "th", | |||
|  |         "ι": "i", | |||
|  |         "κ": "k", | |||
|  |         "λ": "l", | |||
|  |         "μ": "m", | |||
|  |         "ν": "n", | |||
|  |         "ξ": "ks", | |||
|  |         "ο": "o", | |||
|  |         "π": "p", | |||
|  |         "ρ": "r", | |||
|  |         "σ": "s", | |||
|  |         "τ": "t", | |||
|  |         "υ": "y", | |||
|  |         "φ": "f", | |||
|  |         "χ": "x", | |||
|  |         "ψ": "ps", | |||
|  |         "ω": "o", | |||
|  |         "ά": "a", | |||
|  |         "έ": "e", | |||
|  |         "ί": "i", | |||
|  |         "ό": "o", | |||
|  |         "ύ": "y", | |||
|  |         "ή": "i", | |||
|  |         "ώ": "o", | |||
|  |         "ς": "s", | |||
|  |         "ϊ": "i", | |||
|  |         "ΰ": "y", | |||
|  |         "ϋ": "y", | |||
|  |         "ΐ": "i", | |||
|  |         "Α": "A", | |||
|  |         "Β": "B", | |||
|  |         "Γ": "G", | |||
|  |         "Δ": "D", | |||
|  |         "Ε": "E", | |||
|  |         "Ζ": "Z", | |||
|  |         "Η": "I", | |||
|  |         "Θ": "TH", | |||
|  |         "Ι": "I", | |||
|  |         "Κ": "K", | |||
|  |         "Λ": "L", | |||
|  |         "Μ": "M", | |||
|  |         "Ν": "N", | |||
|  |         "Ξ": "KS", | |||
|  |         "Ο": "O", | |||
|  |         "Π": "P", | |||
|  |         "Ρ": "R", | |||
|  |         "Σ": "S", | |||
|  |         "Τ": "T", | |||
|  |         "Υ": "Y", | |||
|  |         "Φ": "F", | |||
|  |         "Χ": "X", | |||
|  |         "Ψ": "PS", | |||
|  |         "Ω": "O", | |||
|  |         "Ά": "A", | |||
|  |         "Έ": "E", | |||
|  |         "Ί": "I", | |||
|  |         "Ό": "O", | |||
|  |         "Ύ": "Y", | |||
|  |         "Ή": "I", | |||
|  |         "Ώ": "O", | |||
|  |         "Ϊ": "I", | |||
|  |         "Ϋ": "Y", | |||
|  |         // Latvian
 | |||
|  |         "ā": "a", | |||
|  |         // 'č': 'c', // duplicate
 | |||
|  |         "ē": "e", | |||
|  |         "ģ": "g", | |||
|  |         "ī": "i", | |||
|  |         "ķ": "k", | |||
|  |         "ļ": "l", | |||
|  |         "ņ": "n", | |||
|  |         // 'š': 's', // duplicate
 | |||
|  |         "ū": "u", | |||
|  |         // 'ž': 'z', // duplicate
 | |||
|  |         "Ā": "A", | |||
|  |         // 'Č': 'C', // duplicate
 | |||
|  |         "Ē": "E", | |||
|  |         "Ģ": "G", | |||
|  |         "Ī": "I", | |||
|  |         "Ķ": "k", | |||
|  |         "Ļ": "L", | |||
|  |         "Ņ": "N", | |||
|  |         // 'Š': 'S', // duplicate
 | |||
|  |         "Ū": "U", | |||
|  |         // 'Ž': 'Z', // duplicate
 | |||
|  |         // Macedonian
 | |||
|  |         "Ќ": "Kj", | |||
|  |         "ќ": "kj", | |||
|  |         "Љ": "Lj", | |||
|  |         "љ": "lj", | |||
|  |         "Њ": "Nj", | |||
|  |         "њ": "nj", | |||
|  |         "Тс": "Ts", | |||
|  |         "тс": "ts", | |||
|  |         // Polish
 | |||
|  |         "ą": "a", | |||
|  |         "ć": "c", | |||
|  |         "ę": "e", | |||
|  |         "ł": "l", | |||
|  |         "ń": "n", | |||
|  |         // 'ó': 'o', // duplicate
 | |||
|  |         "ś": "s", | |||
|  |         "ź": "z", | |||
|  |         "ż": "z", | |||
|  |         "Ą": "A", | |||
|  |         "Ć": "C", | |||
|  |         "Ę": "E", | |||
|  |         "Ł": "L", | |||
|  |         "Ń": "N", | |||
|  |         "Ś": "S", | |||
|  |         "Ź": "Z", | |||
|  |         "Ż": "Z", | |||
|  |         // Ukranian
 | |||
|  |         "Є": "Ye", | |||
|  |         "І": "I", | |||
|  |         "Ї": "Yi", | |||
|  |         "Ґ": "G", | |||
|  |         "є": "ye", | |||
|  |         "і": "i", | |||
|  |         "ї": "yi", | |||
|  |         "ґ": "g", | |||
|  |         // Romanian
 | |||
|  |         "ă": "a", | |||
|  |         "Ă": "A", | |||
|  |         "ș": "s", | |||
|  |         "Ș": "S", | |||
|  |         // 'ş': 's', // duplicate
 | |||
|  |         // 'Ş': 'S', // duplicate
 | |||
|  |         "ț": "t", | |||
|  |         "Ț": "T", | |||
|  |         "ţ": "t", | |||
|  |         "Ţ": "T", | |||
|  |         // Russian https://en.wikipedia.org/wiki/Romanization_of_Russian
 | |||
|  |         // ICAO
 | |||
|  |         "а": "a", | |||
|  |         "б": "b", | |||
|  |         "в": "v", | |||
|  |         "г": "g", | |||
|  |         "д": "d", | |||
|  |         "е": "e", | |||
|  |         "ё": "yo", | |||
|  |         "ж": "zh", | |||
|  |         "з": "z", | |||
|  |         "и": "i", | |||
|  |         "й": "i", | |||
|  |         "к": "k", | |||
|  |         "л": "l", | |||
|  |         "м": "m", | |||
|  |         "н": "n", | |||
|  |         "о": "o", | |||
|  |         "п": "p", | |||
|  |         "р": "r", | |||
|  |         "с": "s", | |||
|  |         "т": "t", | |||
|  |         "у": "u", | |||
|  |         "ф": "f", | |||
|  |         "х": "kh", | |||
|  |         "ц": "c", | |||
|  |         "ч": "ch", | |||
|  |         "ш": "sh", | |||
|  |         "щ": "sh", | |||
|  |         "ъ": "", | |||
|  |         "ы": "y", | |||
|  |         "ь": "", | |||
|  |         "э": "e", | |||
|  |         "ю": "yu", | |||
|  |         "я": "ya", | |||
|  |         "А": "A", | |||
|  |         "Б": "B", | |||
|  |         "В": "V", | |||
|  |         "Г": "G", | |||
|  |         "Д": "D", | |||
|  |         "Е": "E", | |||
|  |         "Ё": "Yo", | |||
|  |         "Ж": "Zh", | |||
|  |         "З": "Z", | |||
|  |         "И": "I", | |||
|  |         "Й": "I", | |||
|  |         "К": "K", | |||
|  |         "Л": "L", | |||
|  |         "М": "M", | |||
|  |         "Н": "N", | |||
|  |         "О": "O", | |||
|  |         "П": "P", | |||
|  |         "Р": "R", | |||
|  |         "С": "S", | |||
|  |         "Т": "T", | |||
|  |         "У": "U", | |||
|  |         "Ф": "F", | |||
|  |         "Х": "Kh", | |||
|  |         "Ц": "C", | |||
|  |         "Ч": "Ch", | |||
|  |         "Ш": "Sh", | |||
|  |         "Щ": "Sh", | |||
|  |         "Ъ": "", | |||
|  |         "Ы": "Y", | |||
|  |         "Ь": "", | |||
|  |         "Э": "E", | |||
|  |         "Ю": "Yu", | |||
|  |         "Я": "Ya", | |||
|  |         // Serbian
 | |||
|  |         "ђ": "dj", | |||
|  |         "ј": "j", | |||
|  |         // 'љ': 'lj',  // duplicate
 | |||
|  |         // 'њ': 'nj', // duplicate
 | |||
|  |         "ћ": "c", | |||
|  |         "џ": "dz", | |||
|  |         "Ђ": "Dj", | |||
|  |         "Ј": "j", | |||
|  |         // 'Љ': 'Lj', // duplicate
 | |||
|  |         // 'Њ': 'Nj', // duplicate
 | |||
|  |         "Ћ": "C", | |||
|  |         "Џ": "Dz", | |||
|  |         // Slovak
 | |||
|  |         "ľ": "l", | |||
|  |         "ĺ": "l", | |||
|  |         "ŕ": "r", | |||
|  |         "Ľ": "L", | |||
|  |         "Ĺ": "L", | |||
|  |         "Ŕ": "R", | |||
|  |         // Turkish
 | |||
|  |         "ş": "s", | |||
|  |         "Ş": "S", | |||
|  |         "ı": "i", | |||
|  |         "İ": "I", | |||
|  |         // 'ç': 'c', // duplicate
 | |||
|  |         // 'Ç': 'C', // duplicate
 | |||
|  |         // 'ü': 'u', // duplicate, see langCharMap
 | |||
|  |         // 'Ü': 'U', // duplicate, see langCharMap
 | |||
|  |         // 'ö': 'o', // duplicate, see langCharMap
 | |||
|  |         // 'Ö': 'O', // duplicate, see langCharMap
 | |||
|  |         "ğ": "g", | |||
|  |         "Ğ": "G", | |||
|  |         // Vietnamese
 | |||
|  |         "ả": "a", | |||
|  |         "Ả": "A", | |||
|  |         "ẳ": "a", | |||
|  |         "Ẳ": "A", | |||
|  |         "ẩ": "a", | |||
|  |         "Ẩ": "A", | |||
|  |         "đ": "d", | |||
|  |         "Đ": "D", | |||
|  |         "ẹ": "e", | |||
|  |         "Ẹ": "E", | |||
|  |         "ẽ": "e", | |||
|  |         "Ẽ": "E", | |||
|  |         "ẻ": "e", | |||
|  |         "Ẻ": "E", | |||
|  |         "ế": "e", | |||
|  |         "Ế": "E", | |||
|  |         "ề": "e", | |||
|  |         "Ề": "E", | |||
|  |         "ệ": "e", | |||
|  |         "Ệ": "E", | |||
|  |         "ễ": "e", | |||
|  |         "Ễ": "E", | |||
|  |         "ể": "e", | |||
|  |         "Ể": "E", | |||
|  |         "ỏ": "o", | |||
|  |         "ọ": "o", | |||
|  |         "Ọ": "o", | |||
|  |         "ố": "o", | |||
|  |         "Ố": "O", | |||
|  |         "ồ": "o", | |||
|  |         "Ồ": "O", | |||
|  |         "ổ": "o", | |||
|  |         "Ổ": "O", | |||
|  |         "ộ": "o", | |||
|  |         "Ộ": "O", | |||
|  |         "ỗ": "o", | |||
|  |         "Ỗ": "O", | |||
|  |         "ơ": "o", | |||
|  |         "Ơ": "O", | |||
|  |         "ớ": "o", | |||
|  |         "Ớ": "O", | |||
|  |         "ờ": "o", | |||
|  |         "Ờ": "O", | |||
|  |         "ợ": "o", | |||
|  |         "Ợ": "O", | |||
|  |         "ỡ": "o", | |||
|  |         "Ỡ": "O", | |||
|  |         "Ở": "o", | |||
|  |         "ở": "o", | |||
|  |         "ị": "i", | |||
|  |         "Ị": "I", | |||
|  |         "ĩ": "i", | |||
|  |         "Ĩ": "I", | |||
|  |         "ỉ": "i", | |||
|  |         "Ỉ": "i", | |||
|  |         "ủ": "u", | |||
|  |         "Ủ": "U", | |||
|  |         "ụ": "u", | |||
|  |         "Ụ": "U", | |||
|  |         "ũ": "u", | |||
|  |         "Ũ": "U", | |||
|  |         "ư": "u", | |||
|  |         "Ư": "U", | |||
|  |         "ứ": "u", | |||
|  |         "Ứ": "U", | |||
|  |         "ừ": "u", | |||
|  |         "Ừ": "U", | |||
|  |         "ự": "u", | |||
|  |         "Ự": "U", | |||
|  |         "ữ": "u", | |||
|  |         "Ữ": "U", | |||
|  |         "ử": "u", | |||
|  |         "Ử": "ư", | |||
|  |         "ỷ": "y", | |||
|  |         "Ỷ": "y", | |||
|  |         "ỳ": "y", | |||
|  |         "Ỳ": "Y", | |||
|  |         "ỵ": "y", | |||
|  |         "Ỵ": "Y", | |||
|  |         "ỹ": "y", | |||
|  |         "Ỹ": "Y", | |||
|  |         "ạ": "a", | |||
|  |         "Ạ": "A", | |||
|  |         "ấ": "a", | |||
|  |         "Ấ": "A", | |||
|  |         "ầ": "a", | |||
|  |         "Ầ": "A", | |||
|  |         "ậ": "a", | |||
|  |         "Ậ": "A", | |||
|  |         "ẫ": "a", | |||
|  |         "Ẫ": "A", | |||
|  |         // 'ă': 'a', // duplicate
 | |||
|  |         // 'Ă': 'A', // duplicate
 | |||
|  |         "ắ": "a", | |||
|  |         "Ắ": "A", | |||
|  |         "ằ": "a", | |||
|  |         "Ằ": "A", | |||
|  |         "ặ": "a", | |||
|  |         "Ặ": "A", | |||
|  |         "ẵ": "a", | |||
|  |         "Ẵ": "A", | |||
|  |         "⓪": "0", | |||
|  |         "①": "1", | |||
|  |         "②": "2", | |||
|  |         "③": "3", | |||
|  |         "④": "4", | |||
|  |         "⑤": "5", | |||
|  |         "⑥": "6", | |||
|  |         "⑦": "7", | |||
|  |         "⑧": "8", | |||
|  |         "⑨": "9", | |||
|  |         "⑩": "10", | |||
|  |         "⑪": "11", | |||
|  |         "⑫": "12", | |||
|  |         "⑬": "13", | |||
|  |         "⑭": "14", | |||
|  |         "⑮": "15", | |||
|  |         "⑯": "16", | |||
|  |         "⑰": "17", | |||
|  |         "⑱": "18", | |||
|  |         "⑲": "18", | |||
|  |         "⑳": "18", | |||
|  |         "⓵": "1", | |||
|  |         "⓶": "2", | |||
|  |         "⓷": "3", | |||
|  |         "⓸": "4", | |||
|  |         "⓹": "5", | |||
|  |         "⓺": "6", | |||
|  |         "⓻": "7", | |||
|  |         "⓼": "8", | |||
|  |         "⓽": "9", | |||
|  |         "⓾": "10", | |||
|  |         "⓿": "0", | |||
|  |         "⓫": "11", | |||
|  |         "⓬": "12", | |||
|  |         "⓭": "13", | |||
|  |         "⓮": "14", | |||
|  |         "⓯": "15", | |||
|  |         "⓰": "16", | |||
|  |         "⓱": "17", | |||
|  |         "⓲": "18", | |||
|  |         "⓳": "19", | |||
|  |         "⓴": "20", | |||
|  |         "Ⓐ": "A", | |||
|  |         "Ⓑ": "B", | |||
|  |         "Ⓒ": "C", | |||
|  |         "Ⓓ": "D", | |||
|  |         "Ⓔ": "E", | |||
|  |         "Ⓕ": "F", | |||
|  |         "Ⓖ": "G", | |||
|  |         "Ⓗ": "H", | |||
|  |         "Ⓘ": "I", | |||
|  |         "Ⓙ": "J", | |||
|  |         "Ⓚ": "K", | |||
|  |         "Ⓛ": "L", | |||
|  |         "Ⓜ": "M", | |||
|  |         "Ⓝ": "N", | |||
|  |         "Ⓞ": "O", | |||
|  |         "Ⓟ": "P", | |||
|  |         "Ⓠ": "Q", | |||
|  |         "Ⓡ": "R", | |||
|  |         "Ⓢ": "S", | |||
|  |         "Ⓣ": "T", | |||
|  |         "Ⓤ": "U", | |||
|  |         "Ⓥ": "V", | |||
|  |         "Ⓦ": "W", | |||
|  |         "Ⓧ": "X", | |||
|  |         "Ⓨ": "Y", | |||
|  |         "Ⓩ": "Z", | |||
|  |         "ⓐ": "a", | |||
|  |         "ⓑ": "b", | |||
|  |         "ⓒ": "c", | |||
|  |         "ⓓ": "d", | |||
|  |         "ⓔ": "e", | |||
|  |         "ⓕ": "f", | |||
|  |         "ⓖ": "g", | |||
|  |         "ⓗ": "h", | |||
|  |         "ⓘ": "i", | |||
|  |         "ⓙ": "j", | |||
|  |         "ⓚ": "k", | |||
|  |         "ⓛ": "l", | |||
|  |         "ⓜ": "m", | |||
|  |         "ⓝ": "n", | |||
|  |         "ⓞ": "o", | |||
|  |         "ⓟ": "p", | |||
|  |         "ⓠ": "q", | |||
|  |         "ⓡ": "r", | |||
|  |         "ⓢ": "s", | |||
|  |         "ⓣ": "t", | |||
|  |         "ⓤ": "u", | |||
|  |         "ⓦ": "v", | |||
|  |         "ⓥ": "w", | |||
|  |         "ⓧ": "x", | |||
|  |         "ⓨ": "y", | |||
|  |         "ⓩ": "z", | |||
|  |         // symbols
 | |||
|  |         "“": '"', | |||
|  |         "”": '"', | |||
|  |         "‘": "'", | |||
|  |         "’": "'", | |||
|  |         "∂": "d", | |||
|  |         "ƒ": "f", | |||
|  |         "™": "(TM)", | |||
|  |         "©": "(C)", | |||
|  |         "œ": "oe", | |||
|  |         "Œ": "OE", | |||
|  |         "®": "(R)", | |||
|  |         "†": "+", | |||
|  |         "℠": "(SM)", | |||
|  |         "…": "...", | |||
|  |         "˚": "o", | |||
|  |         "º": "o", | |||
|  |         "ª": "a", | |||
|  |         "•": "*", | |||
|  |         "၊": ",", | |||
|  |         "။": ".", | |||
|  |         // currency
 | |||
|  |         "$": "USD", | |||
|  |         "€": "EUR", | |||
|  |         "₢": "BRN", | |||
|  |         "₣": "FRF", | |||
|  |         "£": "GBP", | |||
|  |         "₤": "ITL", | |||
|  |         "₦": "NGN", | |||
|  |         "₧": "ESP", | |||
|  |         "₩": "KRW", | |||
|  |         "₪": "ILS", | |||
|  |         "₫": "VND", | |||
|  |         "₭": "LAK", | |||
|  |         "₮": "MNT", | |||
|  |         "₯": "GRD", | |||
|  |         "₱": "ARS", | |||
|  |         "₲": "PYG", | |||
|  |         "₳": "ARA", | |||
|  |         "₴": "UAH", | |||
|  |         "₵": "GHS", | |||
|  |         "¢": "cent", | |||
|  |         "¥": "CNY", | |||
|  |         "元": "CNY", | |||
|  |         "円": "YEN", | |||
|  |         "﷼": "IRR", | |||
|  |         "₠": "EWE", | |||
|  |         "฿": "THB", | |||
|  |         "₨": "INR", | |||
|  |         "₹": "INR", | |||
|  |         "₰": "PF", | |||
|  |         "₺": "TRY", | |||
|  |         "؋": "AFN", | |||
|  |         "₼": "AZN", | |||
|  |         "лв": "BGN", | |||
|  |         "៛": "KHR", | |||
|  |         "₡": "CRC", | |||
|  |         "₸": "KZT", | |||
|  |         "ден": "MKD", | |||
|  |         "zł": "PLN", | |||
|  |         "₽": "RUB", | |||
|  |         "₾": "GEL" | |||
|  |       }; | |||
|  |       var lookAheadCharArray = [ | |||
|  |         // burmese
 | |||
|  |         "်", | |||
|  |         // Dhivehi
 | |||
|  |         "ް" | |||
|  |       ]; | |||
|  |       var diatricMap = { | |||
|  |         // Burmese
 | |||
|  |         // dependent vowels
 | |||
|  |         "ာ": "a", | |||
|  |         "ါ": "a", | |||
|  |         "ေ": "e", | |||
|  |         "ဲ": "e", | |||
|  |         "ိ": "i", | |||
|  |         "ီ": "i", | |||
|  |         "ို": "o", | |||
|  |         "ု": "u", | |||
|  |         "ူ": "u", | |||
|  |         "ေါင်": "aung", | |||
|  |         "ော": "aw", | |||
|  |         "ော်": "aw", | |||
|  |         "ေါ": "aw", | |||
|  |         "ေါ်": "aw", | |||
|  |         "်": "်", | |||
|  |         // this is special case but the character will be converted to latin in the code
 | |||
|  |         "က်": "et", | |||
|  |         "ိုက်": "aik", | |||
|  |         "ောက်": "auk", | |||
|  |         "င်": "in", | |||
|  |         "ိုင်": "aing", | |||
|  |         "ောင်": "aung", | |||
|  |         "စ်": "it", | |||
|  |         "ည်": "i", | |||
|  |         "တ်": "at", | |||
|  |         "ိတ်": "eik", | |||
|  |         "ုတ်": "ok", | |||
|  |         "ွတ်": "ut", | |||
|  |         "ေတ်": "it", | |||
|  |         "ဒ်": "d", | |||
|  |         "ိုဒ်": "ok", | |||
|  |         "ုဒ်": "ait", | |||
|  |         "န်": "an", | |||
|  |         "ာန်": "an", | |||
|  |         "ိန်": "ein", | |||
|  |         "ုန်": "on", | |||
|  |         "ွန်": "un", | |||
|  |         "ပ်": "at", | |||
|  |         "ိပ်": "eik", | |||
|  |         "ုပ်": "ok", | |||
|  |         "ွပ်": "ut", | |||
|  |         "န်ုပ်": "nub", | |||
|  |         "မ်": "an", | |||
|  |         "ိမ်": "ein", | |||
|  |         "ုမ်": "on", | |||
|  |         "ွမ်": "un", | |||
|  |         "ယ်": "e", | |||
|  |         "ိုလ်": "ol", | |||
|  |         "ဉ်": "in", | |||
|  |         "ံ": "an", | |||
|  |         "ိံ": "ein", | |||
|  |         "ုံ": "on", | |||
|  |         // Dhivehi
 | |||
|  |         "ައް": "ah", | |||
|  |         "ަށް": "ah" | |||
|  |       }; | |||
|  |       var langCharMap = { | |||
|  |         "en": {}, | |||
|  |         // default language
 | |||
|  |         "az": { | |||
|  |           // Azerbaijani
 | |||
|  |           "ç": "c", | |||
|  |           "ə": "e", | |||
|  |           "ğ": "g", | |||
|  |           "ı": "i", | |||
|  |           "ö": "o", | |||
|  |           "ş": "s", | |||
|  |           "ü": "u", | |||
|  |           "Ç": "C", | |||
|  |           "Ə": "E", | |||
|  |           "Ğ": "G", | |||
|  |           "İ": "I", | |||
|  |           "Ö": "O", | |||
|  |           "Ş": "S", | |||
|  |           "Ü": "U" | |||
|  |         }, | |||
|  |         "cs": { | |||
|  |           // Czech
 | |||
|  |           "č": "c", | |||
|  |           "ď": "d", | |||
|  |           "ě": "e", | |||
|  |           "ň": "n", | |||
|  |           "ř": "r", | |||
|  |           "š": "s", | |||
|  |           "ť": "t", | |||
|  |           "ů": "u", | |||
|  |           "ž": "z", | |||
|  |           "Č": "C", | |||
|  |           "Ď": "D", | |||
|  |           "Ě": "E", | |||
|  |           "Ň": "N", | |||
|  |           "Ř": "R", | |||
|  |           "Š": "S", | |||
|  |           "Ť": "T", | |||
|  |           "Ů": "U", | |||
|  |           "Ž": "Z" | |||
|  |         }, | |||
|  |         "fi": { | |||
|  |           // Finnish
 | |||
|  |           // 'å': 'a', duplicate see charMap/latin
 | |||
|  |           // 'Å': 'A', duplicate see charMap/latin
 | |||
|  |           "ä": "a", | |||
|  |           // ok
 | |||
|  |           "Ä": "A", | |||
|  |           // ok
 | |||
|  |           "ö": "o", | |||
|  |           // ok
 | |||
|  |           "Ö": "O" | |||
|  |           // ok
 | |||
|  |         }, | |||
|  |         "hu": { | |||
|  |           // Hungarian
 | |||
|  |           "ä": "a", | |||
|  |           // ok
 | |||
|  |           "Ä": "A", | |||
|  |           // ok
 | |||
|  |           // 'á': 'a', duplicate see charMap/latin
 | |||
|  |           // 'Á': 'A', duplicate see charMap/latin
 | |||
|  |           "ö": "o", | |||
|  |           // ok
 | |||
|  |           "Ö": "O", | |||
|  |           // ok
 | |||
|  |           // 'ő': 'o', duplicate see charMap/latin
 | |||
|  |           // 'Ő': 'O', duplicate see charMap/latin
 | |||
|  |           "ü": "u", | |||
|  |           "Ü": "U", | |||
|  |           "ű": "u", | |||
|  |           "Ű": "U" | |||
|  |         }, | |||
|  |         "lt": { | |||
|  |           // Lithuanian
 | |||
|  |           "ą": "a", | |||
|  |           "č": "c", | |||
|  |           "ę": "e", | |||
|  |           "ė": "e", | |||
|  |           "į": "i", | |||
|  |           "š": "s", | |||
|  |           "ų": "u", | |||
|  |           "ū": "u", | |||
|  |           "ž": "z", | |||
|  |           "Ą": "A", | |||
|  |           "Č": "C", | |||
|  |           "Ę": "E", | |||
|  |           "Ė": "E", | |||
|  |           "Į": "I", | |||
|  |           "Š": "S", | |||
|  |           "Ų": "U", | |||
|  |           "Ū": "U" | |||
|  |         }, | |||
|  |         "lv": { | |||
|  |           // Latvian
 | |||
|  |           "ā": "a", | |||
|  |           "č": "c", | |||
|  |           "ē": "e", | |||
|  |           "ģ": "g", | |||
|  |           "ī": "i", | |||
|  |           "ķ": "k", | |||
|  |           "ļ": "l", | |||
|  |           "ņ": "n", | |||
|  |           "š": "s", | |||
|  |           "ū": "u", | |||
|  |           "ž": "z", | |||
|  |           "Ā": "A", | |||
|  |           "Č": "C", | |||
|  |           "Ē": "E", | |||
|  |           "Ģ": "G", | |||
|  |           "Ī": "i", | |||
|  |           "Ķ": "k", | |||
|  |           "Ļ": "L", | |||
|  |           "Ņ": "N", | |||
|  |           "Š": "S", | |||
|  |           "Ū": "u", | |||
|  |           "Ž": "Z" | |||
|  |         }, | |||
|  |         "pl": { | |||
|  |           // Polish
 | |||
|  |           "ą": "a", | |||
|  |           "ć": "c", | |||
|  |           "ę": "e", | |||
|  |           "ł": "l", | |||
|  |           "ń": "n", | |||
|  |           "ó": "o", | |||
|  |           "ś": "s", | |||
|  |           "ź": "z", | |||
|  |           "ż": "z", | |||
|  |           "Ą": "A", | |||
|  |           "Ć": "C", | |||
|  |           "Ę": "e", | |||
|  |           "Ł": "L", | |||
|  |           "Ń": "N", | |||
|  |           "Ó": "O", | |||
|  |           "Ś": "S", | |||
|  |           "Ź": "Z", | |||
|  |           "Ż": "Z" | |||
|  |         }, | |||
|  |         "sv": { | |||
|  |           // Swedish
 | |||
|  |           // 'å': 'a', duplicate see charMap/latin
 | |||
|  |           // 'Å': 'A', duplicate see charMap/latin
 | |||
|  |           "ä": "a", | |||
|  |           // ok
 | |||
|  |           "Ä": "A", | |||
|  |           // ok
 | |||
|  |           "ö": "o", | |||
|  |           // ok
 | |||
|  |           "Ö": "O" | |||
|  |           // ok
 | |||
|  |         }, | |||
|  |         "sk": { | |||
|  |           // Slovak
 | |||
|  |           "ä": "a", | |||
|  |           "Ä": "A" | |||
|  |         }, | |||
|  |         "sr": { | |||
|  |           // Serbian
 | |||
|  |           "љ": "lj", | |||
|  |           "њ": "nj", | |||
|  |           "Љ": "Lj", | |||
|  |           "Њ": "Nj", | |||
|  |           "đ": "dj", | |||
|  |           "Đ": "Dj" | |||
|  |         }, | |||
|  |         "tr": { | |||
|  |           // Turkish
 | |||
|  |           "Ü": "U", | |||
|  |           "Ö": "O", | |||
|  |           "ü": "u", | |||
|  |           "ö": "o" | |||
|  |         } | |||
|  |       }; | |||
|  |       var symbolMap = { | |||
|  |         "ar": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "la-nihaya", | |||
|  |           "♥": "hob", | |||
|  |           "&": "wa", | |||
|  |           "|": "aw", | |||
|  |           "<": "aqal-men", | |||
|  |           ">": "akbar-men", | |||
|  |           "∑": "majmou", | |||
|  |           "¤": "omla" | |||
|  |         }, | |||
|  |         "az": {}, | |||
|  |         "ca": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "infinit", | |||
|  |           "♥": "amor", | |||
|  |           "&": "i", | |||
|  |           "|": "o", | |||
|  |           "<": "menys que", | |||
|  |           ">": "mes que", | |||
|  |           "∑": "suma dels", | |||
|  |           "¤": "moneda" | |||
|  |         }, | |||
|  |         "cs": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "nekonecno", | |||
|  |           "♥": "laska", | |||
|  |           "&": "a", | |||
|  |           "|": "nebo", | |||
|  |           "<": "mensi nez", | |||
|  |           ">": "vetsi nez", | |||
|  |           "∑": "soucet", | |||
|  |           "¤": "mena" | |||
|  |         }, | |||
|  |         "de": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "unendlich", | |||
|  |           "♥": "Liebe", | |||
|  |           "&": "und", | |||
|  |           "|": "oder", | |||
|  |           "<": "kleiner als", | |||
|  |           ">": "groesser als", | |||
|  |           "∑": "Summe von", | |||
|  |           "¤": "Waehrung" | |||
|  |         }, | |||
|  |         "dv": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "kolunulaa", | |||
|  |           "♥": "loabi", | |||
|  |           "&": "aai", | |||
|  |           "|": "noonee", | |||
|  |           "<": "ah vure kuda", | |||
|  |           ">": "ah vure bodu", | |||
|  |           "∑": "jumula", | |||
|  |           "¤": "faisaa" | |||
|  |         }, | |||
|  |         "en": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "infinity", | |||
|  |           "♥": "love", | |||
|  |           "&": "and", | |||
|  |           "|": "or", | |||
|  |           "<": "less than", | |||
|  |           ">": "greater than", | |||
|  |           "∑": "sum", | |||
|  |           "¤": "currency" | |||
|  |         }, | |||
|  |         "es": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "infinito", | |||
|  |           "♥": "amor", | |||
|  |           "&": "y", | |||
|  |           "|": "u", | |||
|  |           "<": "menos que", | |||
|  |           ">": "mas que", | |||
|  |           "∑": "suma de los", | |||
|  |           "¤": "moneda" | |||
|  |         }, | |||
|  |         "fa": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "bi-nahayat", | |||
|  |           "♥": "eshgh", | |||
|  |           "&": "va", | |||
|  |           "|": "ya", | |||
|  |           "<": "kamtar-az", | |||
|  |           ">": "bishtar-az", | |||
|  |           "∑": "majmooe", | |||
|  |           "¤": "vahed" | |||
|  |         }, | |||
|  |         "fi": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "aarettomyys", | |||
|  |           "♥": "rakkaus", | |||
|  |           "&": "ja", | |||
|  |           "|": "tai", | |||
|  |           "<": "pienempi kuin", | |||
|  |           ">": "suurempi kuin", | |||
|  |           "∑": "summa", | |||
|  |           "¤": "valuutta" | |||
|  |         }, | |||
|  |         "fr": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "infiniment", | |||
|  |           "♥": "Amour", | |||
|  |           "&": "et", | |||
|  |           "|": "ou", | |||
|  |           "<": "moins que", | |||
|  |           ">": "superieure a", | |||
|  |           "∑": "somme des", | |||
|  |           "¤": "monnaie" | |||
|  |         }, | |||
|  |         "ge": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "usasruloba", | |||
|  |           "♥": "siqvaruli", | |||
|  |           "&": "da", | |||
|  |           "|": "an", | |||
|  |           "<": "naklebi", | |||
|  |           ">": "meti", | |||
|  |           "∑": "jami", | |||
|  |           "¤": "valuta" | |||
|  |         }, | |||
|  |         "gr": {}, | |||
|  |         "hu": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "vegtelen", | |||
|  |           "♥": "szerelem", | |||
|  |           "&": "es", | |||
|  |           "|": "vagy", | |||
|  |           "<": "kisebb mint", | |||
|  |           ">": "nagyobb mint", | |||
|  |           "∑": "szumma", | |||
|  |           "¤": "penznem" | |||
|  |         }, | |||
|  |         "it": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "infinito", | |||
|  |           "♥": "amore", | |||
|  |           "&": "e", | |||
|  |           "|": "o", | |||
|  |           "<": "minore di", | |||
|  |           ">": "maggiore di", | |||
|  |           "∑": "somma", | |||
|  |           "¤": "moneta" | |||
|  |         }, | |||
|  |         "lt": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "begalybe", | |||
|  |           "♥": "meile", | |||
|  |           "&": "ir", | |||
|  |           "|": "ar", | |||
|  |           "<": "maziau nei", | |||
|  |           ">": "daugiau nei", | |||
|  |           "∑": "suma", | |||
|  |           "¤": "valiuta" | |||
|  |         }, | |||
|  |         "lv": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "bezgaliba", | |||
|  |           "♥": "milestiba", | |||
|  |           "&": "un", | |||
|  |           "|": "vai", | |||
|  |           "<": "mazak neka", | |||
|  |           ">": "lielaks neka", | |||
|  |           "∑": "summa", | |||
|  |           "¤": "valuta" | |||
|  |         }, | |||
|  |         "my": { | |||
|  |           "∆": "kwahkhyaet", | |||
|  |           "∞": "asaonasme", | |||
|  |           "♥": "akhyait", | |||
|  |           "&": "nhin", | |||
|  |           "|": "tho", | |||
|  |           "<": "ngethaw", | |||
|  |           ">": "kyithaw", | |||
|  |           "∑": "paungld", | |||
|  |           "¤": "ngwekye" | |||
|  |         }, | |||
|  |         "mk": {}, | |||
|  |         "nl": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "oneindig", | |||
|  |           "♥": "liefde", | |||
|  |           "&": "en", | |||
|  |           "|": "of", | |||
|  |           "<": "kleiner dan", | |||
|  |           ">": "groter dan", | |||
|  |           "∑": "som", | |||
|  |           "¤": "valuta" | |||
|  |         }, | |||
|  |         "pl": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "nieskonczonosc", | |||
|  |           "♥": "milosc", | |||
|  |           "&": "i", | |||
|  |           "|": "lub", | |||
|  |           "<": "mniejsze niz", | |||
|  |           ">": "wieksze niz", | |||
|  |           "∑": "suma", | |||
|  |           "¤": "waluta" | |||
|  |         }, | |||
|  |         "pt": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "infinito", | |||
|  |           "♥": "amor", | |||
|  |           "&": "e", | |||
|  |           "|": "ou", | |||
|  |           "<": "menor que", | |||
|  |           ">": "maior que", | |||
|  |           "∑": "soma", | |||
|  |           "¤": "moeda" | |||
|  |         }, | |||
|  |         "ro": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "infinit", | |||
|  |           "♥": "dragoste", | |||
|  |           "&": "si", | |||
|  |           "|": "sau", | |||
|  |           "<": "mai mic ca", | |||
|  |           ">": "mai mare ca", | |||
|  |           "∑": "suma", | |||
|  |           "¤": "valuta" | |||
|  |         }, | |||
|  |         "ru": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "beskonechno", | |||
|  |           "♥": "lubov", | |||
|  |           "&": "i", | |||
|  |           "|": "ili", | |||
|  |           "<": "menshe", | |||
|  |           ">": "bolshe", | |||
|  |           "∑": "summa", | |||
|  |           "¤": "valjuta" | |||
|  |         }, | |||
|  |         "sk": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "nekonecno", | |||
|  |           "♥": "laska", | |||
|  |           "&": "a", | |||
|  |           "|": "alebo", | |||
|  |           "<": "menej ako", | |||
|  |           ">": "viac ako", | |||
|  |           "∑": "sucet", | |||
|  |           "¤": "mena" | |||
|  |         }, | |||
|  |         "sr": {}, | |||
|  |         "tr": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "sonsuzluk", | |||
|  |           "♥": "ask", | |||
|  |           "&": "ve", | |||
|  |           "|": "veya", | |||
|  |           "<": "kucuktur", | |||
|  |           ">": "buyuktur", | |||
|  |           "∑": "toplam", | |||
|  |           "¤": "para birimi" | |||
|  |         }, | |||
|  |         "uk": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "bezkinechnist", | |||
|  |           "♥": "lubov", | |||
|  |           "&": "i", | |||
|  |           "|": "abo", | |||
|  |           "<": "menshe", | |||
|  |           ">": "bilshe", | |||
|  |           "∑": "suma", | |||
|  |           "¤": "valjuta" | |||
|  |         }, | |||
|  |         "vn": { | |||
|  |           "∆": "delta", | |||
|  |           "∞": "vo cuc", | |||
|  |           "♥": "yeu", | |||
|  |           "&": "va", | |||
|  |           "|": "hoac", | |||
|  |           "<": "nho hon", | |||
|  |           ">": "lon hon", | |||
|  |           "∑": "tong", | |||
|  |           "¤": "tien te" | |||
|  |         } | |||
|  |       }; | |||
|  |       var uricChars = [";", "?", ":", "@", "&", "=", "+", "$", ",", "/"].join(""); | |||
|  |       var uricNoSlashChars = [";", "?", ":", "@", "&", "=", "+", "$", ","].join(""); | |||
|  |       var markChars = [".", "!", "~", "*", "'", "(", ")"].join(""); | |||
|  |       var getSlug = function getSlug2(input, opts) { | |||
|  |         var separator = "-"; | |||
|  |         var result = ""; | |||
|  |         var diatricString = ""; | |||
|  |         var convertSymbols = true; | |||
|  |         var customReplacements = {}; | |||
|  |         var maintainCase; | |||
|  |         var titleCase; | |||
|  |         var truncate; | |||
|  |         var uricFlag; | |||
|  |         var uricNoSlashFlag; | |||
|  |         var markFlag; | |||
|  |         var symbol; | |||
|  |         var langChar; | |||
|  |         var lucky; | |||
|  |         var i; | |||
|  |         var ch; | |||
|  |         var l; | |||
|  |         var lastCharWasSymbol; | |||
|  |         var lastCharWasDiatric; | |||
|  |         var allowedChars = ""; | |||
|  |         if (typeof input !== "string") { | |||
|  |           return ""; | |||
|  |         } | |||
|  |         if (typeof opts === "string") { | |||
|  |           separator = opts; | |||
|  |         } | |||
|  |         symbol = symbolMap.en; | |||
|  |         langChar = langCharMap.en; | |||
|  |         if (typeof opts === "object") { | |||
|  |           maintainCase = opts.maintainCase || false; | |||
|  |           customReplacements = opts.custom && typeof opts.custom === "object" ? opts.custom : customReplacements; | |||
|  |           truncate = +opts.truncate > 1 && opts.truncate || false; | |||
|  |           uricFlag = opts.uric || false; | |||
|  |           uricNoSlashFlag = opts.uricNoSlash || false; | |||
|  |           markFlag = opts.mark || false; | |||
|  |           convertSymbols = opts.symbols === false || opts.lang === false ? false : true; | |||
|  |           separator = opts.separator || separator; | |||
|  |           if (uricFlag) { | |||
|  |             allowedChars += uricChars; | |||
|  |           } | |||
|  |           if (uricNoSlashFlag) { | |||
|  |             allowedChars += uricNoSlashChars; | |||
|  |           } | |||
|  |           if (markFlag) { | |||
|  |             allowedChars += markChars; | |||
|  |           } | |||
|  |           symbol = opts.lang && symbolMap[opts.lang] && convertSymbols ? symbolMap[opts.lang] : convertSymbols ? symbolMap.en : {}; | |||
|  |           langChar = opts.lang && langCharMap[opts.lang] ? langCharMap[opts.lang] : opts.lang === false || opts.lang === true ? {} : langCharMap.en; | |||
|  |           if (opts.titleCase && typeof opts.titleCase.length === "number" && Array.prototype.toString.call(opts.titleCase)) { | |||
|  |             opts.titleCase.forEach(function(v) { | |||
|  |               customReplacements[v + ""] = v + ""; | |||
|  |             }); | |||
|  |             titleCase = true; | |||
|  |           } else { | |||
|  |             titleCase = !!opts.titleCase; | |||
|  |           } | |||
|  |           if (opts.custom && typeof opts.custom.length === "number" && Array.prototype.toString.call(opts.custom)) { | |||
|  |             opts.custom.forEach(function(v) { | |||
|  |               customReplacements[v + ""] = v + ""; | |||
|  |             }); | |||
|  |           } | |||
|  |           Object.keys(customReplacements).forEach(function(v) { | |||
|  |             var r; | |||
|  |             if (v.length > 1) { | |||
|  |               r = new RegExp("\\b" + escapeChars(v) + "\\b", "gi"); | |||
|  |             } else { | |||
|  |               r = new RegExp(escapeChars(v), "gi"); | |||
|  |             } | |||
|  |             input = input.replace(r, customReplacements[v]); | |||
|  |           }); | |||
|  |           for (ch in customReplacements) { | |||
|  |             allowedChars += ch; | |||
|  |           } | |||
|  |         } | |||
|  |         allowedChars += separator; | |||
|  |         allowedChars = escapeChars(allowedChars); | |||
|  |         input = input.replace(/(^\s+|\s+$)/g, ""); | |||
|  |         lastCharWasSymbol = false; | |||
|  |         lastCharWasDiatric = false; | |||
|  |         for (i = 0, l = input.length; i < l; i++) { | |||
|  |           ch = input[i]; | |||
|  |           if (isReplacedCustomChar(ch, customReplacements)) { | |||
|  |             lastCharWasSymbol = false; | |||
|  |           } else if (langChar[ch]) { | |||
|  |             ch = lastCharWasSymbol && langChar[ch].match(/[A-Za-z0-9]/) ? " " + langChar[ch] : langChar[ch]; | |||
|  |             lastCharWasSymbol = false; | |||
|  |           } else if (ch in charMap) { | |||
|  |             if (i + 1 < l && lookAheadCharArray.indexOf(input[i + 1]) >= 0) { | |||
|  |               diatricString += ch; | |||
|  |               ch = ""; | |||
|  |             } else if (lastCharWasDiatric === true) { | |||
|  |               ch = diatricMap[diatricString] + charMap[ch]; | |||
|  |               diatricString = ""; | |||
|  |             } else { | |||
|  |               ch = lastCharWasSymbol && charMap[ch].match(/[A-Za-z0-9]/) ? " " + charMap[ch] : charMap[ch]; | |||
|  |             } | |||
|  |             lastCharWasSymbol = false; | |||
|  |             lastCharWasDiatric = false; | |||
|  |           } else if (ch in diatricMap) { | |||
|  |             diatricString += ch; | |||
|  |             ch = ""; | |||
|  |             if (i === l - 1) { | |||
|  |               ch = diatricMap[diatricString]; | |||
|  |             } | |||
|  |             lastCharWasDiatric = true; | |||
|  |           } else if ( | |||
|  |             // process symbol chars
 | |||
|  |             symbol[ch] && !(uricFlag && uricChars.indexOf(ch) !== -1) && !(uricNoSlashFlag && uricNoSlashChars.indexOf(ch) !== -1) | |||
|  |           ) { | |||
|  |             ch = lastCharWasSymbol || result.substr(-1).match(/[A-Za-z0-9]/) ? separator + symbol[ch] : symbol[ch]; | |||
|  |             ch += input[i + 1] !== void 0 && input[i + 1].match(/[A-Za-z0-9]/) ? separator : ""; | |||
|  |             lastCharWasSymbol = true; | |||
|  |           } else { | |||
|  |             if (lastCharWasDiatric === true) { | |||
|  |               ch = diatricMap[diatricString] + ch; | |||
|  |               diatricString = ""; | |||
|  |               lastCharWasDiatric = false; | |||
|  |             } else if (lastCharWasSymbol && (/[A-Za-z0-9]/.test(ch) || result.substr(-1).match(/A-Za-z0-9]/))) { | |||
|  |               ch = " " + ch; | |||
|  |             } | |||
|  |             lastCharWasSymbol = false; | |||
|  |           } | |||
|  |           result += ch.replace(new RegExp("[^\\w\\s" + allowedChars + "_-]", "g"), separator); | |||
|  |         } | |||
|  |         if (titleCase) { | |||
|  |           result = result.replace(/(\w)(\S*)/g, function(_, i2, r) { | |||
|  |             var j = i2.toUpperCase() + (r !== null ? r : ""); | |||
|  |             return Object.keys(customReplacements).indexOf(j.toLowerCase()) < 0 ? j : j.toLowerCase(); | |||
|  |           }); | |||
|  |         } | |||
|  |         result = result.replace(/\s+/g, separator).replace(new RegExp("\\" + separator + "+", "g"), separator).replace(new RegExp("(^\\" + separator + "+|\\" + separator + "+$)", "g"), ""); | |||
|  |         if (truncate && result.length > truncate) { | |||
|  |           lucky = result.charAt(truncate) === separator; | |||
|  |           result = result.slice(0, truncate); | |||
|  |           if (!lucky) { | |||
|  |             result = result.slice(0, result.lastIndexOf(separator)); | |||
|  |           } | |||
|  |         } | |||
|  |         if (!maintainCase && !titleCase) { | |||
|  |           result = result.toLowerCase(); | |||
|  |         } | |||
|  |         return result; | |||
|  |       }; | |||
|  |       var createSlug = function createSlug2(opts) { | |||
|  |         return function getSlugWithConfig(input) { | |||
|  |           return getSlug(input, opts); | |||
|  |         }; | |||
|  |       }; | |||
|  |       var escapeChars = function escapeChars2(input) { | |||
|  |         return input.replace(/[-\\^$*+?.()|[\]{}\/]/g, "\\$&"); | |||
|  |       }; | |||
|  |       var isReplacedCustomChar = function(ch, customReplacements) { | |||
|  |         for (var c in customReplacements) { | |||
|  |           if (customReplacements[c] === ch) { | |||
|  |             return true; | |||
|  |           } | |||
|  |         } | |||
|  |       }; | |||
|  |       if (typeof module !== "undefined" && module.exports) { | |||
|  |         module.exports = getSlug; | |||
|  |         module.exports.createSlug = createSlug; | |||
|  |       } else if (typeof define !== "undefined" && define.amd) { | |||
|  |         define([], function() { | |||
|  |           return getSlug; | |||
|  |         }); | |||
|  |       } else { | |||
|  |         try { | |||
|  |           if (root.getSlug || root.createSlug) { | |||
|  |             throw "speakingurl: globals exists /(getSlug|createSlug)/"; | |||
|  |           } else { | |||
|  |             root.getSlug = getSlug; | |||
|  |             root.createSlug = createSlug; | |||
|  |           } | |||
|  |         } catch (e) { | |||
|  |         } | |||
|  |       } | |||
|  |     })(exports); | |||
|  |   } | |||
|  | }); | |||
|  | var require_speakingurl2 = __commonJS2({ | |||
|  |   "../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/index.js"(exports, module) { | |||
|  |     "use strict"; | |||
|  |     init_esm_shims2(); | |||
|  |     module.exports = require_speakingurl(); | |||
|  |   } | |||
|  | }); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | function getComponentTypeName(options) { | |||
|  |   var _a25; | |||
|  |   const name = options.name || options._componentTag || options.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ || options.__name; | |||
|  |   if (name === "index" && ((_a25 = options.__file) == null ? void 0 : _a25.endsWith("index.vue"))) { | |||
|  |     return ""; | |||
|  |   } | |||
|  |   return name; | |||
|  | } | |||
|  | function getComponentFileName(options) { | |||
|  |   const file = options.__file; | |||
|  |   if (file) | |||
|  |     return classify(basename(file, ".vue")); | |||
|  | } | |||
|  | function saveComponentGussedName(instance, name) { | |||
|  |   instance.type.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__ = name; | |||
|  |   return name; | |||
|  | } | |||
|  | function getAppRecord(instance) { | |||
|  |   if (instance.__VUE_DEVTOOLS_NEXT_APP_RECORD__) | |||
|  |     return instance.__VUE_DEVTOOLS_NEXT_APP_RECORD__; | |||
|  |   else if (instance.root) | |||
|  |     return instance.appContext.app.__VUE_DEVTOOLS_NEXT_APP_RECORD__; | |||
|  | } | |||
|  | function isFragment(instance) { | |||
|  |   var _a25, _b25; | |||
|  |   const subTreeType = (_a25 = instance.subTree) == null ? void 0 : _a25.type; | |||
|  |   const appRecord = getAppRecord(instance); | |||
|  |   if (appRecord) { | |||
|  |     return ((_b25 = appRecord == null ? void 0 : appRecord.types) == null ? void 0 : _b25.Fragment) === subTreeType; | |||
|  |   } | |||
|  |   return false; | |||
|  | } | |||
|  | function getInstanceName(instance) { | |||
|  |   var _a25, _b25, _c; | |||
|  |   const name = getComponentTypeName((instance == null ? void 0 : instance.type) || {}); | |||
|  |   if (name) | |||
|  |     return name; | |||
|  |   if ((instance == null ? void 0 : instance.root) === instance) | |||
|  |     return "Root"; | |||
|  |   for (const key in (_b25 = (_a25 = instance.parent) == null ? void 0 : _a25.type) == null ? void 0 : _b25.components) { | |||
|  |     if (instance.parent.type.components[key] === (instance == null ? void 0 : instance.type)) | |||
|  |       return saveComponentGussedName(instance, key); | |||
|  |   } | |||
|  |   for (const key in (_c = instance.appContext) == null ? void 0 : _c.components) { | |||
|  |     if (instance.appContext.components[key] === (instance == null ? void 0 : instance.type)) | |||
|  |       return saveComponentGussedName(instance, key); | |||
|  |   } | |||
|  |   const fileName = getComponentFileName((instance == null ? void 0 : instance.type) || {}); | |||
|  |   if (fileName) | |||
|  |     return fileName; | |||
|  |   return "Anonymous Component"; | |||
|  | } | |||
|  | function getUniqueComponentId(instance) { | |||
|  |   var _a25, _b25, _c; | |||
|  |   const appId = (_c = (_b25 = (_a25 = instance == null ? void 0 : instance.appContext) == null ? void 0 : _a25.app) == null ? void 0 : _b25.__VUE_DEVTOOLS_NEXT_APP_RECORD_ID__) != null ? _c : 0; | |||
|  |   const instanceId = instance === (instance == null ? void 0 : instance.root) ? "root" : instance.uid; | |||
|  |   return `${appId}:${instanceId}`; | |||
|  | } | |||
|  | function getComponentInstance(appRecord, instanceId) { | |||
|  |   instanceId = instanceId || `${appRecord.id}:root`; | |||
|  |   const instance = appRecord.instanceMap.get(instanceId); | |||
|  |   return instance || appRecord.instanceMap.get(":root"); | |||
|  | } | |||
|  | function createRect() { | |||
|  |   const rect = { | |||
|  |     top: 0, | |||
|  |     bottom: 0, | |||
|  |     left: 0, | |||
|  |     right: 0, | |||
|  |     get width() { | |||
|  |       return rect.right - rect.left; | |||
|  |     }, | |||
|  |     get height() { | |||
|  |       return rect.bottom - rect.top; | |||
|  |     } | |||
|  |   }; | |||
|  |   return rect; | |||
|  | } | |||
|  | var range; | |||
|  | function getTextRect(node) { | |||
|  |   if (!range) | |||
|  |     range = document.createRange(); | |||
|  |   range.selectNode(node); | |||
|  |   return range.getBoundingClientRect(); | |||
|  | } | |||
|  | function getFragmentRect(vnode) { | |||
|  |   const rect = createRect(); | |||
|  |   if (!vnode.children) | |||
|  |     return rect; | |||
|  |   for (let i = 0, l = vnode.children.length; i < l; i++) { | |||
|  |     const childVnode = vnode.children[i]; | |||
|  |     let childRect; | |||
|  |     if (childVnode.component) { | |||
|  |       childRect = getComponentBoundingRect(childVnode.component); | |||
|  |     } else if (childVnode.el) { | |||
|  |       const el = childVnode.el; | |||
|  |       if (el.nodeType === 1 || el.getBoundingClientRect) | |||
|  |         childRect = el.getBoundingClientRect(); | |||
|  |       else if (el.nodeType === 3 && el.data.trim()) | |||
|  |         childRect = getTextRect(el); | |||
|  |     } | |||
|  |     if (childRect) | |||
|  |       mergeRects(rect, childRect); | |||
|  |   } | |||
|  |   return rect; | |||
|  | } | |||
|  | function mergeRects(a, b) { | |||
|  |   if (!a.top || b.top < a.top) | |||
|  |     a.top = b.top; | |||
|  |   if (!a.bottom || b.bottom > a.bottom) | |||
|  |     a.bottom = b.bottom; | |||
|  |   if (!a.left || b.left < a.left) | |||
|  |     a.left = b.left; | |||
|  |   if (!a.right || b.right > a.right) | |||
|  |     a.right = b.right; | |||
|  |   return a; | |||
|  | } | |||
|  | var DEFAULT_RECT = { | |||
|  |   top: 0, | |||
|  |   left: 0, | |||
|  |   right: 0, | |||
|  |   bottom: 0, | |||
|  |   width: 0, | |||
|  |   height: 0 | |||
|  | }; | |||
|  | function getComponentBoundingRect(instance) { | |||
|  |   const el = instance.subTree.el; | |||
|  |   if (typeof window === "undefined") { | |||
|  |     return DEFAULT_RECT; | |||
|  |   } | |||
|  |   if (isFragment(instance)) | |||
|  |     return getFragmentRect(instance.subTree); | |||
|  |   else if ((el == null ? void 0 : el.nodeType) === 1) | |||
|  |     return el == null ? void 0 : el.getBoundingClientRect(); | |||
|  |   else if (instance.subTree.component) | |||
|  |     return getComponentBoundingRect(instance.subTree.component); | |||
|  |   else | |||
|  |     return DEFAULT_RECT; | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | function getRootElementsFromComponentInstance(instance) { | |||
|  |   if (isFragment(instance)) | |||
|  |     return getFragmentRootElements(instance.subTree); | |||
|  |   if (!instance.subTree) | |||
|  |     return []; | |||
|  |   return [instance.subTree.el]; | |||
|  | } | |||
|  | function getFragmentRootElements(vnode) { | |||
|  |   if (!vnode.children) | |||
|  |     return []; | |||
|  |   const list = []; | |||
|  |   vnode.children.forEach((childVnode) => { | |||
|  |     if (childVnode.component) | |||
|  |       list.push(...getRootElementsFromComponentInstance(childVnode.component)); | |||
|  |     else if (childVnode == null ? void 0 : childVnode.el) | |||
|  |       list.push(childVnode.el); | |||
|  |   }); | |||
|  |   return list; | |||
|  | } | |||
|  | var CONTAINER_ELEMENT_ID = "__vue-devtools-component-inspector__"; | |||
|  | var CARD_ELEMENT_ID = "__vue-devtools-component-inspector__card__"; | |||
|  | var COMPONENT_NAME_ELEMENT_ID = "__vue-devtools-component-inspector__name__"; | |||
|  | var INDICATOR_ELEMENT_ID = "__vue-devtools-component-inspector__indicator__"; | |||
|  | var containerStyles = { | |||
|  |   display: "block", | |||
|  |   zIndex: 2147483640, | |||
|  |   position: "fixed", | |||
|  |   backgroundColor: "#42b88325", | |||
|  |   border: "1px solid #42b88350", | |||
|  |   borderRadius: "5px", | |||
|  |   transition: "all 0.1s ease-in", | |||
|  |   pointerEvents: "none" | |||
|  | }; | |||
|  | var cardStyles = { | |||
|  |   fontFamily: "Arial, Helvetica, sans-serif", | |||
|  |   padding: "5px 8px", | |||
|  |   borderRadius: "4px", | |||
|  |   textAlign: "left", | |||
|  |   position: "absolute", | |||
|  |   left: 0, | |||
|  |   color: "#e9e9e9", | |||
|  |   fontSize: "14px", | |||
|  |   fontWeight: 600, | |||
|  |   lineHeight: "24px", | |||
|  |   backgroundColor: "#42b883", | |||
|  |   boxShadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)" | |||
|  | }; | |||
|  | var indicatorStyles = { | |||
|  |   display: "inline-block", | |||
|  |   fontWeight: 400, | |||
|  |   fontStyle: "normal", | |||
|  |   fontSize: "12px", | |||
|  |   opacity: 0.7 | |||
|  | }; | |||
|  | function getContainerElement() { | |||
|  |   return document.getElementById(CONTAINER_ELEMENT_ID); | |||
|  | } | |||
|  | function getCardElement() { | |||
|  |   return document.getElementById(CARD_ELEMENT_ID); | |||
|  | } | |||
|  | function getIndicatorElement() { | |||
|  |   return document.getElementById(INDICATOR_ELEMENT_ID); | |||
|  | } | |||
|  | function getNameElement() { | |||
|  |   return document.getElementById(COMPONENT_NAME_ELEMENT_ID); | |||
|  | } | |||
|  | function getStyles(bounds) { | |||
|  |   return { | |||
|  |     left: `${Math.round(bounds.left * 100) / 100}px`, | |||
|  |     top: `${Math.round(bounds.top * 100) / 100}px`, | |||
|  |     width: `${Math.round(bounds.width * 100) / 100}px`, | |||
|  |     height: `${Math.round(bounds.height * 100) / 100}px` | |||
|  |   }; | |||
|  | } | |||
|  | function create(options) { | |||
|  |   var _a25; | |||
|  |   const containerEl = document.createElement("div"); | |||
|  |   containerEl.id = (_a25 = options.elementId) != null ? _a25 : CONTAINER_ELEMENT_ID; | |||
|  |   Object.assign(containerEl.style, { | |||
|  |     ...containerStyles, | |||
|  |     ...getStyles(options.bounds), | |||
|  |     ...options.style | |||
|  |   }); | |||
|  |   const cardEl = document.createElement("span"); | |||
|  |   cardEl.id = CARD_ELEMENT_ID; | |||
|  |   Object.assign(cardEl.style, { | |||
|  |     ...cardStyles, | |||
|  |     top: options.bounds.top < 35 ? 0 : "-35px" | |||
|  |   }); | |||
|  |   const nameEl = document.createElement("span"); | |||
|  |   nameEl.id = COMPONENT_NAME_ELEMENT_ID; | |||
|  |   nameEl.innerHTML = `<${options.name}>  `; | |||
|  |   const indicatorEl = document.createElement("i"); | |||
|  |   indicatorEl.id = INDICATOR_ELEMENT_ID; | |||
|  |   indicatorEl.innerHTML = `${Math.round(options.bounds.width * 100) / 100} x ${Math.round(options.bounds.height * 100) / 100}`; | |||
|  |   Object.assign(indicatorEl.style, indicatorStyles); | |||
|  |   cardEl.appendChild(nameEl); | |||
|  |   cardEl.appendChild(indicatorEl); | |||
|  |   containerEl.appendChild(cardEl); | |||
|  |   document.body.appendChild(containerEl); | |||
|  |   return containerEl; | |||
|  | } | |||
|  | function update(options) { | |||
|  |   const containerEl = getContainerElement(); | |||
|  |   const cardEl = getCardElement(); | |||
|  |   const nameEl = getNameElement(); | |||
|  |   const indicatorEl = getIndicatorElement(); | |||
|  |   if (containerEl) { | |||
|  |     Object.assign(containerEl.style, { | |||
|  |       ...containerStyles, | |||
|  |       ...getStyles(options.bounds) | |||
|  |     }); | |||
|  |     Object.assign(cardEl.style, { | |||
|  |       top: options.bounds.top < 35 ? 0 : "-35px" | |||
|  |     }); | |||
|  |     nameEl.innerHTML = `<${options.name}>  `; | |||
|  |     indicatorEl.innerHTML = `${Math.round(options.bounds.width * 100) / 100} x ${Math.round(options.bounds.height * 100) / 100}`; | |||
|  |   } | |||
|  | } | |||
|  | function highlight(instance) { | |||
|  |   const bounds = getComponentBoundingRect(instance); | |||
|  |   if (!bounds.width && !bounds.height) | |||
|  |     return; | |||
|  |   const name = getInstanceName(instance); | |||
|  |   const container = getContainerElement(); | |||
|  |   container ? update({ bounds, name }) : create({ bounds, name }); | |||
|  | } | |||
|  | function unhighlight() { | |||
|  |   const el = getContainerElement(); | |||
|  |   if (el) | |||
|  |     el.style.display = "none"; | |||
|  | } | |||
|  | var inspectInstance = null; | |||
|  | function inspectFn(e) { | |||
|  |   const target22 = e.target; | |||
|  |   if (target22) { | |||
|  |     const instance = target22.__vueParentComponent; | |||
|  |     if (instance) { | |||
|  |       inspectInstance = instance; | |||
|  |       const el = instance.vnode.el; | |||
|  |       if (el) { | |||
|  |         const bounds = getComponentBoundingRect(instance); | |||
|  |         const name = getInstanceName(instance); | |||
|  |         const container = getContainerElement(); | |||
|  |         container ? update({ bounds, name }) : create({ bounds, name }); | |||
|  |       } | |||
|  |     } | |||
|  |   } | |||
|  | } | |||
|  | function selectComponentFn(e, cb) { | |||
|  |   e.preventDefault(); | |||
|  |   e.stopPropagation(); | |||
|  |   if (inspectInstance) { | |||
|  |     const uniqueComponentId = getUniqueComponentId(inspectInstance); | |||
|  |     cb(uniqueComponentId); | |||
|  |   } | |||
|  | } | |||
|  | var inspectComponentHighLighterSelectFn = null; | |||
|  | function cancelInspectComponentHighLighter() { | |||
|  |   unhighlight(); | |||
|  |   window.removeEventListener("mouseover", inspectFn); | |||
|  |   window.removeEventListener("click", inspectComponentHighLighterSelectFn, true); | |||
|  |   inspectComponentHighLighterSelectFn = null; | |||
|  | } | |||
|  | function inspectComponentHighLighter() { | |||
|  |   window.addEventListener("mouseover", inspectFn); | |||
|  |   return new Promise((resolve) => { | |||
|  |     function onSelect(e) { | |||
|  |       e.preventDefault(); | |||
|  |       e.stopPropagation(); | |||
|  |       selectComponentFn(e, (id) => { | |||
|  |         window.removeEventListener("click", onSelect, true); | |||
|  |         inspectComponentHighLighterSelectFn = null; | |||
|  |         window.removeEventListener("mouseover", inspectFn); | |||
|  |         const el = getContainerElement(); | |||
|  |         if (el) | |||
|  |           el.style.display = "none"; | |||
|  |         resolve(JSON.stringify({ id })); | |||
|  |       }); | |||
|  |     } | |||
|  |     inspectComponentHighLighterSelectFn = onSelect; | |||
|  |     window.addEventListener("click", onSelect, true); | |||
|  |   }); | |||
|  | } | |||
|  | function scrollToComponent(options) { | |||
|  |   const instance = getComponentInstance(activeAppRecord.value, options.id); | |||
|  |   if (instance) { | |||
|  |     const [el] = getRootElementsFromComponentInstance(instance); | |||
|  |     if (typeof el.scrollIntoView === "function") { | |||
|  |       el.scrollIntoView({ | |||
|  |         behavior: "smooth" | |||
|  |       }); | |||
|  |     } else { | |||
|  |       const bounds = getComponentBoundingRect(instance); | |||
|  |       const scrollTarget = document.createElement("div"); | |||
|  |       const styles = { | |||
|  |         ...getStyles(bounds), | |||
|  |         position: "absolute" | |||
|  |       }; | |||
|  |       Object.assign(scrollTarget.style, styles); | |||
|  |       document.body.appendChild(scrollTarget); | |||
|  |       scrollTarget.scrollIntoView({ | |||
|  |         behavior: "smooth" | |||
|  |       }); | |||
|  |       setTimeout(() => { | |||
|  |         document.body.removeChild(scrollTarget); | |||
|  |       }, 2e3); | |||
|  |     } | |||
|  |     setTimeout(() => { | |||
|  |       const bounds = getComponentBoundingRect(instance); | |||
|  |       if (bounds.width || bounds.height) { | |||
|  |         const name = getInstanceName(instance); | |||
|  |         const el2 = getContainerElement(); | |||
|  |         el2 ? update({ ...options, name, bounds }) : create({ ...options, name, bounds }); | |||
|  |         setTimeout(() => { | |||
|  |           if (el2) | |||
|  |             el2.style.display = "none"; | |||
|  |         }, 1500); | |||
|  |       } | |||
|  |     }, 1200); | |||
|  |   } | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | var _a2; | |||
|  | var _b; | |||
|  | (_b = (_a2 = target).__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__) != null ? _b : _a2.__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__ = true; | |||
|  | function waitForInspectorInit(cb) { | |||
|  |   let total = 0; | |||
|  |   const timer = setInterval(() => { | |||
|  |     if (target.__VUE_INSPECTOR__) { | |||
|  |       clearInterval(timer); | |||
|  |       total += 30; | |||
|  |       cb(); | |||
|  |     } | |||
|  |     if (total >= /* 5s */ | |||
|  |     5e3) | |||
|  |       clearInterval(timer); | |||
|  |   }, 30); | |||
|  | } | |||
|  | function setupInspector() { | |||
|  |   const inspector = target.__VUE_INSPECTOR__; | |||
|  |   const _openInEditor = inspector.openInEditor; | |||
|  |   inspector.openInEditor = async (...params) => { | |||
|  |     inspector.disable(); | |||
|  |     _openInEditor(...params); | |||
|  |   }; | |||
|  | } | |||
|  | function getComponentInspector() { | |||
|  |   return new Promise((resolve) => { | |||
|  |     function setup() { | |||
|  |       setupInspector(); | |||
|  |       resolve(target.__VUE_INSPECTOR__); | |||
|  |     } | |||
|  |     if (!target.__VUE_INSPECTOR__) { | |||
|  |       waitForInspectorInit(() => { | |||
|  |         setup(); | |||
|  |       }); | |||
|  |     } else { | |||
|  |       setup(); | |||
|  |     } | |||
|  |   }); | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | function isReadonly(value) { | |||
|  |   return !!(value && value[ | |||
|  |     "__v_isReadonly" | |||
|  |     /* IS_READONLY */ | |||
|  |   ]); | |||
|  | } | |||
|  | function isReactive(value) { | |||
|  |   if (isReadonly(value)) { | |||
|  |     return isReactive(value[ | |||
|  |       "__v_raw" | |||
|  |       /* RAW */ | |||
|  |     ]); | |||
|  |   } | |||
|  |   return !!(value && value[ | |||
|  |     "__v_isReactive" | |||
|  |     /* IS_REACTIVE */ | |||
|  |   ]); | |||
|  | } | |||
|  | function isRef(r) { | |||
|  |   return !!(r && r.__v_isRef === true); | |||
|  | } | |||
|  | function toRaw(observed) { | |||
|  |   const raw = observed && observed[ | |||
|  |     "__v_raw" | |||
|  |     /* RAW */ | |||
|  |   ]; | |||
|  |   return raw ? toRaw(raw) : observed; | |||
|  | } | |||
|  | var Fragment = Symbol.for("v-fgt"); | |||
|  | var StateEditor = class { | |||
|  |   constructor() { | |||
|  |     this.refEditor = new RefStateEditor(); | |||
|  |   } | |||
|  |   set(object, path, value, cb) { | |||
|  |     const sections = Array.isArray(path) ? path : path.split("."); | |||
|  |     const markRef = false; | |||
|  |     while (sections.length > 1) { | |||
|  |       const section = sections.shift(); | |||
|  |       if (object instanceof Map) | |||
|  |         object = object.get(section); | |||
|  |       if (object instanceof Set) | |||
|  |         object = Array.from(object.values())[section]; | |||
|  |       else object = object[section]; | |||
|  |       if (this.refEditor.isRef(object)) | |||
|  |         object = this.refEditor.get(object); | |||
|  |     } | |||
|  |     const field = sections[0]; | |||
|  |     const item = this.refEditor.get(object)[field]; | |||
|  |     if (cb) { | |||
|  |       cb(object, field, value); | |||
|  |     } else { | |||
|  |       if (this.refEditor.isRef(item)) | |||
|  |         this.refEditor.set(item, value); | |||
|  |       else if (markRef) | |||
|  |         object[field] = value; | |||
|  |       else | |||
|  |         object[field] = value; | |||
|  |     } | |||
|  |   } | |||
|  |   get(object, path) { | |||
|  |     const sections = Array.isArray(path) ? path : path.split("."); | |||
|  |     for (let i = 0; i < sections.length; i++) { | |||
|  |       if (object instanceof Map) | |||
|  |         object = object.get(sections[i]); | |||
|  |       else | |||
|  |         object = object[sections[i]]; | |||
|  |       if (this.refEditor.isRef(object)) | |||
|  |         object = this.refEditor.get(object); | |||
|  |       if (!object) | |||
|  |         return void 0; | |||
|  |     } | |||
|  |     return object; | |||
|  |   } | |||
|  |   has(object, path, parent = false) { | |||
|  |     if (typeof object === "undefined") | |||
|  |       return false; | |||
|  |     const sections = Array.isArray(path) ? path.slice() : path.split("."); | |||
|  |     const size = !parent ? 1 : 2; | |||
|  |     while (object && sections.length > size) { | |||
|  |       const section = sections.shift(); | |||
|  |       object = object[section]; | |||
|  |       if (this.refEditor.isRef(object)) | |||
|  |         object = this.refEditor.get(object); | |||
|  |     } | |||
|  |     return object != null && Object.prototype.hasOwnProperty.call(object, sections[0]); | |||
|  |   } | |||
|  |   createDefaultSetCallback(state) { | |||
|  |     return (object, field, value) => { | |||
|  |       if (state.remove || state.newKey) { | |||
|  |         if (Array.isArray(object)) | |||
|  |           object.splice(field, 1); | |||
|  |         else if (toRaw(object) instanceof Map) | |||
|  |           object.delete(field); | |||
|  |         else if (toRaw(object) instanceof Set) | |||
|  |           object.delete(Array.from(object.values())[field]); | |||
|  |         else Reflect.deleteProperty(object, field); | |||
|  |       } | |||
|  |       if (!state.remove) { | |||
|  |         const target22 = object[state.newKey || field]; | |||
|  |         if (this.refEditor.isRef(target22)) | |||
|  |           this.refEditor.set(target22, value); | |||
|  |         else if (toRaw(object) instanceof Map) | |||
|  |           object.set(state.newKey || field, value); | |||
|  |         else if (toRaw(object) instanceof Set) | |||
|  |           object.add(value); | |||
|  |         else | |||
|  |           object[state.newKey || field] = value; | |||
|  |       } | |||
|  |     }; | |||
|  |   } | |||
|  | }; | |||
|  | var RefStateEditor = class { | |||
|  |   set(ref, value) { | |||
|  |     if (isRef(ref)) { | |||
|  |       ref.value = value; | |||
|  |     } else { | |||
|  |       if (ref instanceof Set && Array.isArray(value)) { | |||
|  |         ref.clear(); | |||
|  |         value.forEach((v) => ref.add(v)); | |||
|  |         return; | |||
|  |       } | |||
|  |       const currentKeys = Object.keys(value); | |||
|  |       if (ref instanceof Map) { | |||
|  |         const previousKeysSet2 = new Set(ref.keys()); | |||
|  |         currentKeys.forEach((key) => { | |||
|  |           ref.set(key, Reflect.get(value, key)); | |||
|  |           previousKeysSet2.delete(key); | |||
|  |         }); | |||
|  |         previousKeysSet2.forEach((key) => ref.delete(key)); | |||
|  |         return; | |||
|  |       } | |||
|  |       const previousKeysSet = new Set(Object.keys(ref)); | |||
|  |       currentKeys.forEach((key) => { | |||
|  |         Reflect.set(ref, key, Reflect.get(value, key)); | |||
|  |         previousKeysSet.delete(key); | |||
|  |       }); | |||
|  |       previousKeysSet.forEach((key) => Reflect.deleteProperty(ref, key)); | |||
|  |     } | |||
|  |   } | |||
|  |   get(ref) { | |||
|  |     return isRef(ref) ? ref.value : ref; | |||
|  |   } | |||
|  |   isRef(ref) { | |||
|  |     return isRef(ref) || isReactive(ref); | |||
|  |   } | |||
|  | }; | |||
|  | var stateEditor = new StateEditor(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var TIMELINE_LAYERS_STATE_STORAGE_ID = "__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS_STATE__"; | |||
|  | function getTimelineLayersStateFromStorage() { | |||
|  |   if (!isBrowser || typeof localStorage === "undefined" || localStorage === null) { | |||
|  |     return { | |||
|  |       recordingState: false, | |||
|  |       mouseEventEnabled: false, | |||
|  |       keyboardEventEnabled: false, | |||
|  |       componentEventEnabled: false, | |||
|  |       performanceEventEnabled: false, | |||
|  |       selected: "" | |||
|  |     }; | |||
|  |   } | |||
|  |   const state = localStorage.getItem(TIMELINE_LAYERS_STATE_STORAGE_ID); | |||
|  |   return state ? JSON.parse(state) : { | |||
|  |     recordingState: false, | |||
|  |     mouseEventEnabled: false, | |||
|  |     keyboardEventEnabled: false, | |||
|  |     componentEventEnabled: false, | |||
|  |     performanceEventEnabled: false, | |||
|  |     selected: "" | |||
|  |   }; | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var _a22; | |||
|  | var _b2; | |||
|  | (_b2 = (_a22 = target).__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS) != null ? _b2 : _a22.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS = []; | |||
|  | var devtoolsTimelineLayers = new Proxy(target.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS, { | |||
|  |   get(target22, prop, receiver) { | |||
|  |     return Reflect.get(target22, prop, receiver); | |||
|  |   } | |||
|  | }); | |||
|  | function addTimelineLayer(options, descriptor) { | |||
|  |   devtoolsState.timelineLayersState[descriptor.id] = false; | |||
|  |   devtoolsTimelineLayers.push({ | |||
|  |     ...options, | |||
|  |     descriptorId: descriptor.id, | |||
|  |     appRecord: getAppRecord(descriptor.app) | |||
|  |   }); | |||
|  | } | |||
|  | var _a3; | |||
|  | var _b3; | |||
|  | (_b3 = (_a3 = target).__VUE_DEVTOOLS_KIT_INSPECTOR__) != null ? _b3 : _a3.__VUE_DEVTOOLS_KIT_INSPECTOR__ = []; | |||
|  | var devtoolsInspector = new Proxy(target.__VUE_DEVTOOLS_KIT_INSPECTOR__, { | |||
|  |   get(target22, prop, receiver) { | |||
|  |     return Reflect.get(target22, prop, receiver); | |||
|  |   } | |||
|  | }); | |||
|  | var callInspectorUpdatedHook = debounce(() => { | |||
|  |   devtoolsContext.hooks.callHook("sendInspectorToClient", getActiveInspectors()); | |||
|  | }); | |||
|  | function addInspector(inspector, descriptor) { | |||
|  |   var _a25, _b25; | |||
|  |   devtoolsInspector.push({ | |||
|  |     options: inspector, | |||
|  |     descriptor, | |||
|  |     treeFilterPlaceholder: (_a25 = inspector.treeFilterPlaceholder) != null ? _a25 : "Search tree...", | |||
|  |     stateFilterPlaceholder: (_b25 = inspector.stateFilterPlaceholder) != null ? _b25 : "Search state...", | |||
|  |     treeFilter: "", | |||
|  |     selectedNodeId: "", | |||
|  |     appRecord: getAppRecord(descriptor.app) | |||
|  |   }); | |||
|  |   callInspectorUpdatedHook(); | |||
|  | } | |||
|  | function getActiveInspectors() { | |||
|  |   return devtoolsInspector.filter((inspector) => inspector.descriptor.app === activeAppRecord.value.app).filter((inspector) => inspector.descriptor.id !== "components").map((inspector) => { | |||
|  |     var _a25; | |||
|  |     const descriptor = inspector.descriptor; | |||
|  |     const options = inspector.options; | |||
|  |     return { | |||
|  |       id: options.id, | |||
|  |       label: options.label, | |||
|  |       logo: descriptor.logo, | |||
|  |       icon: `custom-ic-baseline-${(_a25 = options == null ? void 0 : options.icon) == null ? void 0 : _a25.replace(/_/g, "-")}`, | |||
|  |       packageName: descriptor.packageName, | |||
|  |       homepage: descriptor.homepage, | |||
|  |       pluginId: descriptor.id | |||
|  |     }; | |||
|  |   }); | |||
|  | } | |||
|  | function getInspector(id, app) { | |||
|  |   return devtoolsInspector.find((inspector) => inspector.options.id === id && (app ? inspector.descriptor.app === app : true)); | |||
|  | } | |||
|  | var DevToolsV6PluginAPIHookKeys = ((DevToolsV6PluginAPIHookKeys2) => { | |||
|  |   DevToolsV6PluginAPIHookKeys2["VISIT_COMPONENT_TREE"] = "visitComponentTree"; | |||
|  |   DevToolsV6PluginAPIHookKeys2["INSPECT_COMPONENT"] = "inspectComponent"; | |||
|  |   DevToolsV6PluginAPIHookKeys2["EDIT_COMPONENT_STATE"] = "editComponentState"; | |||
|  |   DevToolsV6PluginAPIHookKeys2["GET_INSPECTOR_TREE"] = "getInspectorTree"; | |||
|  |   DevToolsV6PluginAPIHookKeys2["GET_INSPECTOR_STATE"] = "getInspectorState"; | |||
|  |   DevToolsV6PluginAPIHookKeys2["EDIT_INSPECTOR_STATE"] = "editInspectorState"; | |||
|  |   DevToolsV6PluginAPIHookKeys2["INSPECT_TIMELINE_EVENT"] = "inspectTimelineEvent"; | |||
|  |   DevToolsV6PluginAPIHookKeys2["TIMELINE_CLEARED"] = "timelineCleared"; | |||
|  |   DevToolsV6PluginAPIHookKeys2["SET_PLUGIN_SETTINGS"] = "setPluginSettings"; | |||
|  |   return DevToolsV6PluginAPIHookKeys2; | |||
|  | })(DevToolsV6PluginAPIHookKeys || {}); | |||
|  | var DevToolsContextHookKeys = ((DevToolsContextHookKeys2) => { | |||
|  |   DevToolsContextHookKeys2["ADD_INSPECTOR"] = "addInspector"; | |||
|  |   DevToolsContextHookKeys2["SEND_INSPECTOR_TREE"] = "sendInspectorTree"; | |||
|  |   DevToolsContextHookKeys2["SEND_INSPECTOR_STATE"] = "sendInspectorState"; | |||
|  |   DevToolsContextHookKeys2["CUSTOM_INSPECTOR_SELECT_NODE"] = "customInspectorSelectNode"; | |||
|  |   DevToolsContextHookKeys2["TIMELINE_LAYER_ADDED"] = "timelineLayerAdded"; | |||
|  |   DevToolsContextHookKeys2["TIMELINE_EVENT_ADDED"] = "timelineEventAdded"; | |||
|  |   DevToolsContextHookKeys2["GET_COMPONENT_INSTANCES"] = "getComponentInstances"; | |||
|  |   DevToolsContextHookKeys2["GET_COMPONENT_BOUNDS"] = "getComponentBounds"; | |||
|  |   DevToolsContextHookKeys2["GET_COMPONENT_NAME"] = "getComponentName"; | |||
|  |   DevToolsContextHookKeys2["COMPONENT_HIGHLIGHT"] = "componentHighlight"; | |||
|  |   DevToolsContextHookKeys2["COMPONENT_UNHIGHLIGHT"] = "componentUnhighlight"; | |||
|  |   return DevToolsContextHookKeys2; | |||
|  | })(DevToolsContextHookKeys || {}); | |||
|  | var DevToolsMessagingHookKeys = ((DevToolsMessagingHookKeys2) => { | |||
|  |   DevToolsMessagingHookKeys2["SEND_INSPECTOR_TREE_TO_CLIENT"] = "sendInspectorTreeToClient"; | |||
|  |   DevToolsMessagingHookKeys2["SEND_INSPECTOR_STATE_TO_CLIENT"] = "sendInspectorStateToClient"; | |||
|  |   DevToolsMessagingHookKeys2["SEND_TIMELINE_EVENT_TO_CLIENT"] = "sendTimelineEventToClient"; | |||
|  |   DevToolsMessagingHookKeys2["SEND_INSPECTOR_TO_CLIENT"] = "sendInspectorToClient"; | |||
|  |   DevToolsMessagingHookKeys2["SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT"] = "sendActiveAppUpdatedToClient"; | |||
|  |   DevToolsMessagingHookKeys2["DEVTOOLS_STATE_UPDATED"] = "devtoolsStateUpdated"; | |||
|  |   DevToolsMessagingHookKeys2["DEVTOOLS_CONNECTED_UPDATED"] = "devtoolsConnectedUpdated"; | |||
|  |   DevToolsMessagingHookKeys2["ROUTER_INFO_UPDATED"] = "routerInfoUpdated"; | |||
|  |   return DevToolsMessagingHookKeys2; | |||
|  | })(DevToolsMessagingHookKeys || {}); | |||
|  | function createDevToolsCtxHooks() { | |||
|  |   const hooks2 = createHooks(); | |||
|  |   hooks2.hook("addInspector", ({ inspector, plugin }) => { | |||
|  |     addInspector(inspector, plugin.descriptor); | |||
|  |   }); | |||
|  |   const debounceSendInspectorTree = debounce(async ({ inspectorId, plugin }) => { | |||
|  |     var _a25; | |||
|  |     if (!inspectorId || !((_a25 = plugin == null ? void 0 : plugin.descriptor) == null ? void 0 : _a25.app) || devtoolsState.highPerfModeEnabled) | |||
|  |       return; | |||
|  |     const inspector = getInspector(inspectorId, plugin.descriptor.app); | |||
|  |     const _payload = { | |||
|  |       app: plugin.descriptor.app, | |||
|  |       inspectorId, | |||
|  |       filter: (inspector == null ? void 0 : inspector.treeFilter) || "", | |||
|  |       rootNodes: [] | |||
|  |     }; | |||
|  |     await new Promise((resolve) => { | |||
|  |       hooks2.callHookWith( | |||
|  |         async (callbacks) => { | |||
|  |           await Promise.all(callbacks.map((cb) => cb(_payload))); | |||
|  |           resolve(); | |||
|  |         }, | |||
|  |         "getInspectorTree" | |||
|  |         /* GET_INSPECTOR_TREE */ | |||
|  |       ); | |||
|  |     }); | |||
|  |     hooks2.callHookWith( | |||
|  |       async (callbacks) => { | |||
|  |         await Promise.all(callbacks.map((cb) => cb({ | |||
|  |           inspectorId, | |||
|  |           rootNodes: _payload.rootNodes | |||
|  |         }))); | |||
|  |       }, | |||
|  |       "sendInspectorTreeToClient" | |||
|  |       /* SEND_INSPECTOR_TREE_TO_CLIENT */ | |||
|  |     ); | |||
|  |   }, 120); | |||
|  |   hooks2.hook("sendInspectorTree", debounceSendInspectorTree); | |||
|  |   const debounceSendInspectorState = debounce(async ({ inspectorId, plugin }) => { | |||
|  |     var _a25; | |||
|  |     if (!inspectorId || !((_a25 = plugin == null ? void 0 : plugin.descriptor) == null ? void 0 : _a25.app) || devtoolsState.highPerfModeEnabled) | |||
|  |       return; | |||
|  |     const inspector = getInspector(inspectorId, plugin.descriptor.app); | |||
|  |     const _payload = { | |||
|  |       app: plugin.descriptor.app, | |||
|  |       inspectorId, | |||
|  |       nodeId: (inspector == null ? void 0 : inspector.selectedNodeId) || "", | |||
|  |       state: null | |||
|  |     }; | |||
|  |     const ctx = { | |||
|  |       currentTab: `custom-inspector:${inspectorId}` | |||
|  |     }; | |||
|  |     if (_payload.nodeId) { | |||
|  |       await new Promise((resolve) => { | |||
|  |         hooks2.callHookWith( | |||
|  |           async (callbacks) => { | |||
|  |             await Promise.all(callbacks.map((cb) => cb(_payload, ctx))); | |||
|  |             resolve(); | |||
|  |           }, | |||
|  |           "getInspectorState" | |||
|  |           /* GET_INSPECTOR_STATE */ | |||
|  |         ); | |||
|  |       }); | |||
|  |     } | |||
|  |     hooks2.callHookWith( | |||
|  |       async (callbacks) => { | |||
|  |         await Promise.all(callbacks.map((cb) => cb({ | |||
|  |           inspectorId, | |||
|  |           nodeId: _payload.nodeId, | |||
|  |           state: _payload.state | |||
|  |         }))); | |||
|  |       }, | |||
|  |       "sendInspectorStateToClient" | |||
|  |       /* SEND_INSPECTOR_STATE_TO_CLIENT */ | |||
|  |     ); | |||
|  |   }, 120); | |||
|  |   hooks2.hook("sendInspectorState", debounceSendInspectorState); | |||
|  |   hooks2.hook("customInspectorSelectNode", ({ inspectorId, nodeId, plugin }) => { | |||
|  |     const inspector = getInspector(inspectorId, plugin.descriptor.app); | |||
|  |     if (!inspector) | |||
|  |       return; | |||
|  |     inspector.selectedNodeId = nodeId; | |||
|  |   }); | |||
|  |   hooks2.hook("timelineLayerAdded", ({ options, plugin }) => { | |||
|  |     addTimelineLayer(options, plugin.descriptor); | |||
|  |   }); | |||
|  |   hooks2.hook("timelineEventAdded", ({ options, plugin }) => { | |||
|  |     var _a25; | |||
|  |     const internalLayerIds = ["performance", "component-event", "keyboard", "mouse"]; | |||
|  |     if (devtoolsState.highPerfModeEnabled || !((_a25 = devtoolsState.timelineLayersState) == null ? void 0 : _a25[plugin.descriptor.id]) && !internalLayerIds.includes(options.layerId)) | |||
|  |       return; | |||
|  |     hooks2.callHookWith( | |||
|  |       async (callbacks) => { | |||
|  |         await Promise.all(callbacks.map((cb) => cb(options))); | |||
|  |       }, | |||
|  |       "sendTimelineEventToClient" | |||
|  |       /* SEND_TIMELINE_EVENT_TO_CLIENT */ | |||
|  |     ); | |||
|  |   }); | |||
|  |   hooks2.hook("getComponentInstances", async ({ app }) => { | |||
|  |     const appRecord = app.__VUE_DEVTOOLS_NEXT_APP_RECORD__; | |||
|  |     if (!appRecord) | |||
|  |       return null; | |||
|  |     const appId = appRecord.id.toString(); | |||
|  |     const instances = [...appRecord.instanceMap].filter(([key]) => key.split(":")[0] === appId).map(([, instance]) => instance); | |||
|  |     return instances; | |||
|  |   }); | |||
|  |   hooks2.hook("getComponentBounds", async ({ instance }) => { | |||
|  |     const bounds = getComponentBoundingRect(instance); | |||
|  |     return bounds; | |||
|  |   }); | |||
|  |   hooks2.hook("getComponentName", ({ instance }) => { | |||
|  |     const name = getInstanceName(instance); | |||
|  |     return name; | |||
|  |   }); | |||
|  |   hooks2.hook("componentHighlight", ({ uid }) => { | |||
|  |     const instance = activeAppRecord.value.instanceMap.get(uid); | |||
|  |     if (instance) { | |||
|  |       highlight(instance); | |||
|  |     } | |||
|  |   }); | |||
|  |   hooks2.hook("componentUnhighlight", () => { | |||
|  |     unhighlight(); | |||
|  |   }); | |||
|  |   return hooks2; | |||
|  | } | |||
|  | var _a4; | |||
|  | var _b4; | |||
|  | (_b4 = (_a4 = target).__VUE_DEVTOOLS_KIT_APP_RECORDS__) != null ? _b4 : _a4.__VUE_DEVTOOLS_KIT_APP_RECORDS__ = []; | |||
|  | var _a5; | |||
|  | var _b5; | |||
|  | (_b5 = (_a5 = target).__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__) != null ? _b5 : _a5.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__ = {}; | |||
|  | var _a6; | |||
|  | var _b6; | |||
|  | (_b6 = (_a6 = target).__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__) != null ? _b6 : _a6.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__ = ""; | |||
|  | var _a7; | |||
|  | var _b7; | |||
|  | (_b7 = (_a7 = target).__VUE_DEVTOOLS_KIT_CUSTOM_TABS__) != null ? _b7 : _a7.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__ = []; | |||
|  | var _a8; | |||
|  | var _b8; | |||
|  | (_b8 = (_a8 = target).__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__) != null ? _b8 : _a8.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__ = []; | |||
|  | var STATE_KEY = "__VUE_DEVTOOLS_KIT_GLOBAL_STATE__"; | |||
|  | function initStateFactory() { | |||
|  |   return { | |||
|  |     connected: false, | |||
|  |     clientConnected: false, | |||
|  |     vitePluginDetected: true, | |||
|  |     appRecords: [], | |||
|  |     activeAppRecordId: "", | |||
|  |     tabs: [], | |||
|  |     commands: [], | |||
|  |     highPerfModeEnabled: true, | |||
|  |     devtoolsClientDetected: {}, | |||
|  |     perfUniqueGroupId: 0, | |||
|  |     timelineLayersState: getTimelineLayersStateFromStorage() | |||
|  |   }; | |||
|  | } | |||
|  | var _a9; | |||
|  | var _b9; | |||
|  | (_b9 = (_a9 = target)[STATE_KEY]) != null ? _b9 : _a9[STATE_KEY] = initStateFactory(); | |||
|  | var callStateUpdatedHook = debounce((state) => { | |||
|  |   devtoolsContext.hooks.callHook("devtoolsStateUpdated", { state }); | |||
|  | }); | |||
|  | var callConnectedUpdatedHook = debounce((state, oldState) => { | |||
|  |   devtoolsContext.hooks.callHook("devtoolsConnectedUpdated", { state, oldState }); | |||
|  | }); | |||
|  | var devtoolsAppRecords = new Proxy(target.__VUE_DEVTOOLS_KIT_APP_RECORDS__, { | |||
|  |   get(_target, prop, receiver) { | |||
|  |     if (prop === "value") | |||
|  |       return target.__VUE_DEVTOOLS_KIT_APP_RECORDS__; | |||
|  |     return target.__VUE_DEVTOOLS_KIT_APP_RECORDS__[prop]; | |||
|  |   } | |||
|  | }); | |||
|  | var activeAppRecord = new Proxy(target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__, { | |||
|  |   get(_target, prop, receiver) { | |||
|  |     if (prop === "value") | |||
|  |       return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__; | |||
|  |     else if (prop === "id") | |||
|  |       return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__; | |||
|  |     return target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__[prop]; | |||
|  |   } | |||
|  | }); | |||
|  | function updateAllStates() { | |||
|  |   callStateUpdatedHook({ | |||
|  |     ...target[STATE_KEY], | |||
|  |     appRecords: devtoolsAppRecords.value, | |||
|  |     activeAppRecordId: activeAppRecord.id, | |||
|  |     tabs: target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__, | |||
|  |     commands: target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__ | |||
|  |   }); | |||
|  | } | |||
|  | function setActiveAppRecord(app) { | |||
|  |   target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__ = app; | |||
|  |   updateAllStates(); | |||
|  | } | |||
|  | function setActiveAppRecordId(id) { | |||
|  |   target.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__ = id; | |||
|  |   updateAllStates(); | |||
|  | } | |||
|  | var devtoolsState = new Proxy(target[STATE_KEY], { | |||
|  |   get(target22, property) { | |||
|  |     if (property === "appRecords") { | |||
|  |       return devtoolsAppRecords; | |||
|  |     } else if (property === "activeAppRecordId") { | |||
|  |       return activeAppRecord.id; | |||
|  |     } else if (property === "tabs") { | |||
|  |       return target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__; | |||
|  |     } else if (property === "commands") { | |||
|  |       return target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__; | |||
|  |     } | |||
|  |     return target[STATE_KEY][property]; | |||
|  |   }, | |||
|  |   deleteProperty(target22, property) { | |||
|  |     delete target22[property]; | |||
|  |     return true; | |||
|  |   }, | |||
|  |   set(target22, property, value) { | |||
|  |     const oldState = { ...target[STATE_KEY] }; | |||
|  |     target22[property] = value; | |||
|  |     target[STATE_KEY][property] = value; | |||
|  |     return true; | |||
|  |   } | |||
|  | }); | |||
|  | function onDevToolsConnected(fn) { | |||
|  |   return new Promise((resolve) => { | |||
|  |     if (devtoolsState.connected) { | |||
|  |       fn(); | |||
|  |       resolve(); | |||
|  |     } | |||
|  |     devtoolsContext.hooks.hook("devtoolsConnectedUpdated", ({ state }) => { | |||
|  |       if (state.connected) { | |||
|  |         fn(); | |||
|  |         resolve(); | |||
|  |       } | |||
|  |     }); | |||
|  |   }); | |||
|  | } | |||
|  | var resolveIcon = (icon) => { | |||
|  |   if (!icon) | |||
|  |     return; | |||
|  |   if (icon.startsWith("baseline-")) { | |||
|  |     return `custom-ic-${icon}`; | |||
|  |   } | |||
|  |   if (icon.startsWith("i-") || isUrlString(icon)) | |||
|  |     return icon; | |||
|  |   return `custom-ic-baseline-${icon}`; | |||
|  | }; | |||
|  | function addCustomTab(tab) { | |||
|  |   const tabs = target.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__; | |||
|  |   if (tabs.some((t) => t.name === tab.name)) | |||
|  |     return; | |||
|  |   tabs.push({ | |||
|  |     ...tab, | |||
|  |     icon: resolveIcon(tab.icon) | |||
|  |   }); | |||
|  |   updateAllStates(); | |||
|  | } | |||
|  | function addCustomCommand(action) { | |||
|  |   const commands = target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__; | |||
|  |   if (commands.some((t) => t.id === action.id)) | |||
|  |     return; | |||
|  |   commands.push({ | |||
|  |     ...action, | |||
|  |     icon: resolveIcon(action.icon), | |||
|  |     children: action.children ? action.children.map((child) => ({ | |||
|  |       ...child, | |||
|  |       icon: resolveIcon(child.icon) | |||
|  |     })) : void 0 | |||
|  |   }); | |||
|  |   updateAllStates(); | |||
|  | } | |||
|  | function removeCustomCommand(actionId) { | |||
|  |   const commands = target.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__; | |||
|  |   const index = commands.findIndex((t) => t.id === actionId); | |||
|  |   if (index === -1) | |||
|  |     return; | |||
|  |   commands.splice(index, 1); | |||
|  |   updateAllStates(); | |||
|  | } | |||
|  | function openInEditor(options = {}) { | |||
|  |   var _a25, _b25, _c; | |||
|  |   const { file, host, baseUrl = window.location.origin, line = 0, column = 0 } = options; | |||
|  |   if (file) { | |||
|  |     if (host === "chrome-extension") { | |||
|  |       const fileName = file.replace(/\\/g, "\\\\"); | |||
|  |       const _baseUrl = (_b25 = (_a25 = window.VUE_DEVTOOLS_CONFIG) == null ? void 0 : _a25.openInEditorHost) != null ? _b25 : "/"; | |||
|  |       fetch(`${_baseUrl}__open-in-editor?file=${encodeURI(file)}`).then((response) => { | |||
|  |         if (!response.ok) { | |||
|  |           const msg = `Opening component ${fileName} failed`; | |||
|  |           console.log(`%c${msg}`, "color:red"); | |||
|  |         } | |||
|  |       }); | |||
|  |     } else if (devtoolsState.vitePluginDetected) { | |||
|  |       const _baseUrl = (_c = target.__VUE_DEVTOOLS_OPEN_IN_EDITOR_BASE_URL__) != null ? _c : baseUrl; | |||
|  |       target.__VUE_INSPECTOR__.openInEditor(_baseUrl, file, line, column); | |||
|  |     } | |||
|  |   } | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var _a10; | |||
|  | var _b10; | |||
|  | (_b10 = (_a10 = target).__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__) != null ? _b10 : _a10.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__ = []; | |||
|  | var devtoolsPluginBuffer = new Proxy(target.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__, { | |||
|  |   get(target22, prop, receiver) { | |||
|  |     return Reflect.get(target22, prop, receiver); | |||
|  |   } | |||
|  | }); | |||
|  | function _getSettings(settings) { | |||
|  |   const _settings = {}; | |||
|  |   Object.keys(settings).forEach((key) => { | |||
|  |     _settings[key] = settings[key].defaultValue; | |||
|  |   }); | |||
|  |   return _settings; | |||
|  | } | |||
|  | function getPluginLocalKey(pluginId) { | |||
|  |   return `__VUE_DEVTOOLS_NEXT_PLUGIN_SETTINGS__${pluginId}__`; | |||
|  | } | |||
|  | function getPluginSettingsOptions(pluginId) { | |||
|  |   var _a25, _b25, _c; | |||
|  |   const item = (_b25 = (_a25 = devtoolsPluginBuffer.find((item2) => { | |||
|  |     var _a26; | |||
|  |     return item2[0].id === pluginId && !!((_a26 = item2[0]) == null ? void 0 : _a26.settings); | |||
|  |   })) == null ? void 0 : _a25[0]) != null ? _b25 : null; | |||
|  |   return (_c = item == null ? void 0 : item.settings) != null ? _c : null; | |||
|  | } | |||
|  | function getPluginSettings(pluginId, fallbackValue) { | |||
|  |   var _a25, _b25, _c; | |||
|  |   const localKey = getPluginLocalKey(pluginId); | |||
|  |   if (localKey) { | |||
|  |     const localSettings = localStorage.getItem(localKey); | |||
|  |     if (localSettings) { | |||
|  |       return JSON.parse(localSettings); | |||
|  |     } | |||
|  |   } | |||
|  |   if (pluginId) { | |||
|  |     const item = (_b25 = (_a25 = devtoolsPluginBuffer.find((item2) => item2[0].id === pluginId)) == null ? void 0 : _a25[0]) != null ? _b25 : null; | |||
|  |     return _getSettings((_c = item == null ? void 0 : item.settings) != null ? _c : {}); | |||
|  |   } | |||
|  |   return _getSettings(fallbackValue); | |||
|  | } | |||
|  | function initPluginSettings(pluginId, settings) { | |||
|  |   const localKey = getPluginLocalKey(pluginId); | |||
|  |   const localSettings = localStorage.getItem(localKey); | |||
|  |   if (!localSettings) { | |||
|  |     localStorage.setItem(localKey, JSON.stringify(_getSettings(settings))); | |||
|  |   } | |||
|  | } | |||
|  | function setPluginSettings(pluginId, key, value) { | |||
|  |   const localKey = getPluginLocalKey(pluginId); | |||
|  |   const localSettings = localStorage.getItem(localKey); | |||
|  |   const parsedLocalSettings = JSON.parse(localSettings || "{}"); | |||
|  |   const updated = { | |||
|  |     ...parsedLocalSettings, | |||
|  |     [key]: value | |||
|  |   }; | |||
|  |   localStorage.setItem(localKey, JSON.stringify(updated)); | |||
|  |   devtoolsContext.hooks.callHookWith( | |||
|  |     (callbacks) => { | |||
|  |       callbacks.forEach((cb) => cb({ | |||
|  |         pluginId, | |||
|  |         key, | |||
|  |         oldValue: parsedLocalSettings[key], | |||
|  |         newValue: value, | |||
|  |         settings: updated | |||
|  |       })); | |||
|  |     }, | |||
|  |     "setPluginSettings" | |||
|  |     /* SET_PLUGIN_SETTINGS */ | |||
|  |   ); | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var _a11; | |||
|  | var _b11; | |||
|  | var devtoolsHooks = (_b11 = (_a11 = target).__VUE_DEVTOOLS_HOOK) != null ? _b11 : _a11.__VUE_DEVTOOLS_HOOK = createHooks(); | |||
|  | var on = { | |||
|  |   vueAppInit(fn) { | |||
|  |     devtoolsHooks.hook("app:init", fn); | |||
|  |   }, | |||
|  |   vueAppUnmount(fn) { | |||
|  |     devtoolsHooks.hook("app:unmount", fn); | |||
|  |   }, | |||
|  |   vueAppConnected(fn) { | |||
|  |     devtoolsHooks.hook("app:connected", fn); | |||
|  |   }, | |||
|  |   componentAdded(fn) { | |||
|  |     return devtoolsHooks.hook("component:added", fn); | |||
|  |   }, | |||
|  |   componentEmit(fn) { | |||
|  |     return devtoolsHooks.hook("component:emit", fn); | |||
|  |   }, | |||
|  |   componentUpdated(fn) { | |||
|  |     return devtoolsHooks.hook("component:updated", fn); | |||
|  |   }, | |||
|  |   componentRemoved(fn) { | |||
|  |     return devtoolsHooks.hook("component:removed", fn); | |||
|  |   }, | |||
|  |   setupDevtoolsPlugin(fn) { | |||
|  |     devtoolsHooks.hook("devtools-plugin:setup", fn); | |||
|  |   }, | |||
|  |   perfStart(fn) { | |||
|  |     return devtoolsHooks.hook("perf:start", fn); | |||
|  |   }, | |||
|  |   perfEnd(fn) { | |||
|  |     return devtoolsHooks.hook("perf:end", fn); | |||
|  |   } | |||
|  | }; | |||
|  | var hook = { | |||
|  |   on, | |||
|  |   setupDevToolsPlugin(pluginDescriptor, setupFn) { | |||
|  |     return devtoolsHooks.callHook("devtools-plugin:setup", pluginDescriptor, setupFn); | |||
|  |   } | |||
|  | }; | |||
|  | var DevToolsV6PluginAPI = class { | |||
|  |   constructor({ plugin, ctx }) { | |||
|  |     this.hooks = ctx.hooks; | |||
|  |     this.plugin = plugin; | |||
|  |   } | |||
|  |   get on() { | |||
|  |     return { | |||
|  |       // component inspector
 | |||
|  |       visitComponentTree: (handler) => { | |||
|  |         this.hooks.hook("visitComponentTree", handler); | |||
|  |       }, | |||
|  |       inspectComponent: (handler) => { | |||
|  |         this.hooks.hook("inspectComponent", handler); | |||
|  |       }, | |||
|  |       editComponentState: (handler) => { | |||
|  |         this.hooks.hook("editComponentState", handler); | |||
|  |       }, | |||
|  |       // custom inspector
 | |||
|  |       getInspectorTree: (handler) => { | |||
|  |         this.hooks.hook("getInspectorTree", handler); | |||
|  |       }, | |||
|  |       getInspectorState: (handler) => { | |||
|  |         this.hooks.hook("getInspectorState", handler); | |||
|  |       }, | |||
|  |       editInspectorState: (handler) => { | |||
|  |         this.hooks.hook("editInspectorState", handler); | |||
|  |       }, | |||
|  |       // timeline
 | |||
|  |       inspectTimelineEvent: (handler) => { | |||
|  |         this.hooks.hook("inspectTimelineEvent", handler); | |||
|  |       }, | |||
|  |       timelineCleared: (handler) => { | |||
|  |         this.hooks.hook("timelineCleared", handler); | |||
|  |       }, | |||
|  |       // settings
 | |||
|  |       setPluginSettings: (handler) => { | |||
|  |         this.hooks.hook("setPluginSettings", handler); | |||
|  |       } | |||
|  |     }; | |||
|  |   } | |||
|  |   // component inspector
 | |||
|  |   notifyComponentUpdate(instance) { | |||
|  |     var _a25; | |||
|  |     if (devtoolsState.highPerfModeEnabled) { | |||
|  |       return; | |||
|  |     } | |||
|  |     const inspector = getActiveInspectors().find((i) => i.packageName === this.plugin.descriptor.packageName); | |||
|  |     if (inspector == null ? void 0 : inspector.id) { | |||
|  |       if (instance) { | |||
|  |         const args = [ | |||
|  |           instance.appContext.app, | |||
|  |           instance.uid, | |||
|  |           (_a25 = instance.parent) == null ? void 0 : _a25.uid, | |||
|  |           instance | |||
|  |         ]; | |||
|  |         devtoolsHooks.callHook("component:updated", ...args); | |||
|  |       } else { | |||
|  |         devtoolsHooks.callHook( | |||
|  |           "component:updated" | |||
|  |           /* COMPONENT_UPDATED */ | |||
|  |         ); | |||
|  |       } | |||
|  |       this.hooks.callHook("sendInspectorState", { inspectorId: inspector.id, plugin: this.plugin }); | |||
|  |     } | |||
|  |   } | |||
|  |   // custom inspector
 | |||
|  |   addInspector(options) { | |||
|  |     this.hooks.callHook("addInspector", { inspector: options, plugin: this.plugin }); | |||
|  |     if (this.plugin.descriptor.settings) { | |||
|  |       initPluginSettings(options.id, this.plugin.descriptor.settings); | |||
|  |     } | |||
|  |   } | |||
|  |   sendInspectorTree(inspectorId) { | |||
|  |     if (devtoolsState.highPerfModeEnabled) { | |||
|  |       return; | |||
|  |     } | |||
|  |     this.hooks.callHook("sendInspectorTree", { inspectorId, plugin: this.plugin }); | |||
|  |   } | |||
|  |   sendInspectorState(inspectorId) { | |||
|  |     if (devtoolsState.highPerfModeEnabled) { | |||
|  |       return; | |||
|  |     } | |||
|  |     this.hooks.callHook("sendInspectorState", { inspectorId, plugin: this.plugin }); | |||
|  |   } | |||
|  |   selectInspectorNode(inspectorId, nodeId) { | |||
|  |     this.hooks.callHook("customInspectorSelectNode", { inspectorId, nodeId, plugin: this.plugin }); | |||
|  |   } | |||
|  |   visitComponentTree(payload) { | |||
|  |     return this.hooks.callHook("visitComponentTree", payload); | |||
|  |   } | |||
|  |   // timeline
 | |||
|  |   now() { | |||
|  |     if (devtoolsState.highPerfModeEnabled) { | |||
|  |       return 0; | |||
|  |     } | |||
|  |     return Date.now(); | |||
|  |   } | |||
|  |   addTimelineLayer(options) { | |||
|  |     this.hooks.callHook("timelineLayerAdded", { options, plugin: this.plugin }); | |||
|  |   } | |||
|  |   addTimelineEvent(options) { | |||
|  |     if (devtoolsState.highPerfModeEnabled) { | |||
|  |       return; | |||
|  |     } | |||
|  |     this.hooks.callHook("timelineEventAdded", { options, plugin: this.plugin }); | |||
|  |   } | |||
|  |   // settings
 | |||
|  |   getSettings(pluginId) { | |||
|  |     return getPluginSettings(pluginId != null ? pluginId : this.plugin.descriptor.id, this.plugin.descriptor.settings); | |||
|  |   } | |||
|  |   // utilities
 | |||
|  |   getComponentInstances(app) { | |||
|  |     return this.hooks.callHook("getComponentInstances", { app }); | |||
|  |   } | |||
|  |   getComponentBounds(instance) { | |||
|  |     return this.hooks.callHook("getComponentBounds", { instance }); | |||
|  |   } | |||
|  |   getComponentName(instance) { | |||
|  |     return this.hooks.callHook("getComponentName", { instance }); | |||
|  |   } | |||
|  |   highlightElement(instance) { | |||
|  |     const uid = instance.__VUE_DEVTOOLS_NEXT_UID__; | |||
|  |     return this.hooks.callHook("componentHighlight", { uid }); | |||
|  |   } | |||
|  |   unhighlightElement() { | |||
|  |     return this.hooks.callHook( | |||
|  |       "componentUnhighlight" | |||
|  |       /* COMPONENT_UNHIGHLIGHT */ | |||
|  |     ); | |||
|  |   } | |||
|  | }; | |||
|  | var DevToolsPluginAPI = DevToolsV6PluginAPI; | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var UNDEFINED = "__vue_devtool_undefined__"; | |||
|  | var INFINITY = "__vue_devtool_infinity__"; | |||
|  | var NEGATIVE_INFINITY = "__vue_devtool_negative_infinity__"; | |||
|  | var NAN = "__vue_devtool_nan__"; | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var tokenMap = { | |||
|  |   [UNDEFINED]: "undefined", | |||
|  |   [NAN]: "NaN", | |||
|  |   [INFINITY]: "Infinity", | |||
|  |   [NEGATIVE_INFINITY]: "-Infinity" | |||
|  | }; | |||
|  | var reversedTokenMap = Object.entries(tokenMap).reduce((acc, [key, value]) => { | |||
|  |   acc[value] = key; | |||
|  |   return acc; | |||
|  | }, {}); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var _a12; | |||
|  | var _b12; | |||
|  | (_b12 = (_a12 = target).__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__) != null ? _b12 : _a12.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__ = /* @__PURE__ */ new Set(); | |||
|  | function setupDevToolsPlugin(pluginDescriptor, setupFn) { | |||
|  |   return hook.setupDevToolsPlugin(pluginDescriptor, setupFn); | |||
|  | } | |||
|  | function callDevToolsPluginSetupFn(plugin, app) { | |||
|  |   const [pluginDescriptor, setupFn] = plugin; | |||
|  |   if (pluginDescriptor.app !== app) | |||
|  |     return; | |||
|  |   const api = new DevToolsPluginAPI({ | |||
|  |     plugin: { | |||
|  |       setupFn, | |||
|  |       descriptor: pluginDescriptor | |||
|  |     }, | |||
|  |     ctx: devtoolsContext | |||
|  |   }); | |||
|  |   if (pluginDescriptor.packageName === "vuex") { | |||
|  |     api.on.editInspectorState((payload) => { | |||
|  |       api.sendInspectorState(payload.inspectorId); | |||
|  |     }); | |||
|  |   } | |||
|  |   setupFn(api); | |||
|  | } | |||
|  | function registerDevToolsPlugin(app, options) { | |||
|  |   if (target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.has(app)) { | |||
|  |     return; | |||
|  |   } | |||
|  |   if (devtoolsState.highPerfModeEnabled && !(options == null ? void 0 : options.inspectingComponent)) { | |||
|  |     return; | |||
|  |   } | |||
|  |   target.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.add(app); | |||
|  |   devtoolsPluginBuffer.forEach((plugin) => { | |||
|  |     callDevToolsPluginSetupFn(plugin, app); | |||
|  |   }); | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var ROUTER_KEY = "__VUE_DEVTOOLS_ROUTER__"; | |||
|  | var ROUTER_INFO_KEY = "__VUE_DEVTOOLS_ROUTER_INFO__"; | |||
|  | var _a13; | |||
|  | var _b13; | |||
|  | (_b13 = (_a13 = target)[ROUTER_INFO_KEY]) != null ? _b13 : _a13[ROUTER_INFO_KEY] = { | |||
|  |   currentRoute: null, | |||
|  |   routes: [] | |||
|  | }; | |||
|  | var _a14; | |||
|  | var _b14; | |||
|  | (_b14 = (_a14 = target)[ROUTER_KEY]) != null ? _b14 : _a14[ROUTER_KEY] = {}; | |||
|  | var devtoolsRouterInfo = new Proxy(target[ROUTER_INFO_KEY], { | |||
|  |   get(target22, property) { | |||
|  |     return target[ROUTER_INFO_KEY][property]; | |||
|  |   } | |||
|  | }); | |||
|  | var devtoolsRouter = new Proxy(target[ROUTER_KEY], { | |||
|  |   get(target22, property) { | |||
|  |     if (property === "value") { | |||
|  |       return target[ROUTER_KEY]; | |||
|  |     } | |||
|  |   } | |||
|  | }); | |||
|  | function getRoutes(router) { | |||
|  |   const routesMap = /* @__PURE__ */ new Map(); | |||
|  |   return ((router == null ? void 0 : router.getRoutes()) || []).filter((i) => !routesMap.has(i.path) && routesMap.set(i.path, 1)); | |||
|  | } | |||
|  | function filterRoutes(routes) { | |||
|  |   return routes.map((item) => { | |||
|  |     let { path, name, children, meta } = item; | |||
|  |     if (children == null ? void 0 : children.length) | |||
|  |       children = filterRoutes(children); | |||
|  |     return { | |||
|  |       path, | |||
|  |       name, | |||
|  |       children, | |||
|  |       meta | |||
|  |     }; | |||
|  |   }); | |||
|  | } | |||
|  | function filterCurrentRoute(route) { | |||
|  |   if (route) { | |||
|  |     const { fullPath, hash, href, path, name, matched, params, query } = route; | |||
|  |     return { | |||
|  |       fullPath, | |||
|  |       hash, | |||
|  |       href, | |||
|  |       path, | |||
|  |       name, | |||
|  |       params, | |||
|  |       query, | |||
|  |       matched: filterRoutes(matched) | |||
|  |     }; | |||
|  |   } | |||
|  |   return route; | |||
|  | } | |||
|  | function normalizeRouterInfo(appRecord, activeAppRecord2) { | |||
|  |   function init() { | |||
|  |     var _a25; | |||
|  |     const router = (_a25 = appRecord.app) == null ? void 0 : _a25.config.globalProperties.$router; | |||
|  |     const currentRoute = filterCurrentRoute(router == null ? void 0 : router.currentRoute.value); | |||
|  |     const routes = filterRoutes(getRoutes(router)); | |||
|  |     const c = console.warn; | |||
|  |     console.warn = () => { | |||
|  |     }; | |||
|  |     target[ROUTER_INFO_KEY] = { | |||
|  |       currentRoute: currentRoute ? deepClone(currentRoute) : {}, | |||
|  |       routes: deepClone(routes) | |||
|  |     }; | |||
|  |     target[ROUTER_KEY] = router; | |||
|  |     console.warn = c; | |||
|  |   } | |||
|  |   init(); | |||
|  |   hook.on.componentUpdated(debounce(() => { | |||
|  |     var _a25; | |||
|  |     if (((_a25 = activeAppRecord2.value) == null ? void 0 : _a25.app) !== appRecord.app) | |||
|  |       return; | |||
|  |     init(); | |||
|  |     if (devtoolsState.highPerfModeEnabled) | |||
|  |       return; | |||
|  |     devtoolsContext.hooks.callHook("routerInfoUpdated", { state: target[ROUTER_INFO_KEY] }); | |||
|  |   }, 200)); | |||
|  | } | |||
|  | function createDevToolsApi(hooks2) { | |||
|  |   return { | |||
|  |     // get inspector tree
 | |||
|  |     async getInspectorTree(payload) { | |||
|  |       const _payload = { | |||
|  |         ...payload, | |||
|  |         app: activeAppRecord.value.app, | |||
|  |         rootNodes: [] | |||
|  |       }; | |||
|  |       await new Promise((resolve) => { | |||
|  |         hooks2.callHookWith( | |||
|  |           async (callbacks) => { | |||
|  |             await Promise.all(callbacks.map((cb) => cb(_payload))); | |||
|  |             resolve(); | |||
|  |           }, | |||
|  |           "getInspectorTree" | |||
|  |           /* GET_INSPECTOR_TREE */ | |||
|  |         ); | |||
|  |       }); | |||
|  |       return _payload.rootNodes; | |||
|  |     }, | |||
|  |     // get inspector state
 | |||
|  |     async getInspectorState(payload) { | |||
|  |       const _payload = { | |||
|  |         ...payload, | |||
|  |         app: activeAppRecord.value.app, | |||
|  |         state: null | |||
|  |       }; | |||
|  |       const ctx = { | |||
|  |         currentTab: `custom-inspector:${payload.inspectorId}` | |||
|  |       }; | |||
|  |       await new Promise((resolve) => { | |||
|  |         hooks2.callHookWith( | |||
|  |           async (callbacks) => { | |||
|  |             await Promise.all(callbacks.map((cb) => cb(_payload, ctx))); | |||
|  |             resolve(); | |||
|  |           }, | |||
|  |           "getInspectorState" | |||
|  |           /* GET_INSPECTOR_STATE */ | |||
|  |         ); | |||
|  |       }); | |||
|  |       return _payload.state; | |||
|  |     }, | |||
|  |     // edit inspector state
 | |||
|  |     editInspectorState(payload) { | |||
|  |       const stateEditor2 = new StateEditor(); | |||
|  |       const _payload = { | |||
|  |         ...payload, | |||
|  |         app: activeAppRecord.value.app, | |||
|  |         set: (obj, path = payload.path, value = payload.state.value, cb) => { | |||
|  |           stateEditor2.set(obj, path, value, cb || stateEditor2.createDefaultSetCallback(payload.state)); | |||
|  |         } | |||
|  |       }; | |||
|  |       hooks2.callHookWith( | |||
|  |         (callbacks) => { | |||
|  |           callbacks.forEach((cb) => cb(_payload)); | |||
|  |         }, | |||
|  |         "editInspectorState" | |||
|  |         /* EDIT_INSPECTOR_STATE */ | |||
|  |       ); | |||
|  |     }, | |||
|  |     // send inspector state
 | |||
|  |     sendInspectorState(inspectorId) { | |||
|  |       const inspector = getInspector(inspectorId); | |||
|  |       hooks2.callHook("sendInspectorState", { inspectorId, plugin: { | |||
|  |         descriptor: inspector.descriptor, | |||
|  |         setupFn: () => ({}) | |||
|  |       } }); | |||
|  |     }, | |||
|  |     // inspect component inspector
 | |||
|  |     inspectComponentInspector() { | |||
|  |       return inspectComponentHighLighter(); | |||
|  |     }, | |||
|  |     // cancel inspect component inspector
 | |||
|  |     cancelInspectComponentInspector() { | |||
|  |       return cancelInspectComponentHighLighter(); | |||
|  |     }, | |||
|  |     // get component render code
 | |||
|  |     getComponentRenderCode(id) { | |||
|  |       const instance = getComponentInstance(activeAppRecord.value, id); | |||
|  |       if (instance) | |||
|  |         return !((instance == null ? void 0 : instance.type) instanceof Function) ? instance.render.toString() : instance.type.toString(); | |||
|  |     }, | |||
|  |     // scroll to component
 | |||
|  |     scrollToComponent(id) { | |||
|  |       return scrollToComponent({ id }); | |||
|  |     }, | |||
|  |     // open in editor
 | |||
|  |     openInEditor, | |||
|  |     // get vue inspector
 | |||
|  |     getVueInspector: getComponentInspector, | |||
|  |     // toggle app
 | |||
|  |     toggleApp(id, options) { | |||
|  |       const appRecord = devtoolsAppRecords.value.find((record) => record.id === id); | |||
|  |       if (appRecord) { | |||
|  |         setActiveAppRecordId(id); | |||
|  |         setActiveAppRecord(appRecord); | |||
|  |         normalizeRouterInfo(appRecord, activeAppRecord); | |||
|  |         callInspectorUpdatedHook(); | |||
|  |         registerDevToolsPlugin(appRecord.app, options); | |||
|  |       } | |||
|  |     }, | |||
|  |     // inspect dom
 | |||
|  |     inspectDOM(instanceId) { | |||
|  |       const instance = getComponentInstance(activeAppRecord.value, instanceId); | |||
|  |       if (instance) { | |||
|  |         const [el] = getRootElementsFromComponentInstance(instance); | |||
|  |         if (el) { | |||
|  |           target.__VUE_DEVTOOLS_INSPECT_DOM_TARGET__ = el; | |||
|  |         } | |||
|  |       } | |||
|  |     }, | |||
|  |     updatePluginSettings(pluginId, key, value) { | |||
|  |       setPluginSettings(pluginId, key, value); | |||
|  |     }, | |||
|  |     getPluginSettings(pluginId) { | |||
|  |       return { | |||
|  |         options: getPluginSettingsOptions(pluginId), | |||
|  |         values: getPluginSettings(pluginId) | |||
|  |       }; | |||
|  |     } | |||
|  |   }; | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | var _a15; | |||
|  | var _b15; | |||
|  | (_b15 = (_a15 = target).__VUE_DEVTOOLS_ENV__) != null ? _b15 : _a15.__VUE_DEVTOOLS_ENV__ = { | |||
|  |   vitePluginDetected: false | |||
|  | }; | |||
|  | var hooks = createDevToolsCtxHooks(); | |||
|  | var _a16; | |||
|  | var _b16; | |||
|  | (_b16 = (_a16 = target).__VUE_DEVTOOLS_KIT_CONTEXT__) != null ? _b16 : _a16.__VUE_DEVTOOLS_KIT_CONTEXT__ = { | |||
|  |   hooks, | |||
|  |   get state() { | |||
|  |     return { | |||
|  |       ...devtoolsState, | |||
|  |       activeAppRecordId: activeAppRecord.id, | |||
|  |       activeAppRecord: activeAppRecord.value, | |||
|  |       appRecords: devtoolsAppRecords.value | |||
|  |     }; | |||
|  |   }, | |||
|  |   api: createDevToolsApi(hooks) | |||
|  | }; | |||
|  | var devtoolsContext = target.__VUE_DEVTOOLS_KIT_CONTEXT__; | |||
|  | init_esm_shims2(); | |||
|  | var import_speakingurl = __toESM2(require_speakingurl2(), 1); | |||
|  | var _a17; | |||
|  | var _b17; | |||
|  | var appRecordInfo = (_b17 = (_a17 = target).__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__) != null ? _b17 : _a17.__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__ = { | |||
|  |   id: 0, | |||
|  |   appIds: /* @__PURE__ */ new Set() | |||
|  | }; | |||
|  | function onDevToolsClientConnected(fn) { | |||
|  |   return new Promise((resolve) => { | |||
|  |     if (devtoolsState.connected && devtoolsState.clientConnected) { | |||
|  |       fn(); | |||
|  |       resolve(); | |||
|  |       return; | |||
|  |     } | |||
|  |     devtoolsContext.hooks.hook("devtoolsConnectedUpdated", ({ state }) => { | |||
|  |       if (state.connected && state.clientConnected) { | |||
|  |         fn(); | |||
|  |         resolve(); | |||
|  |       } | |||
|  |     }); | |||
|  |   }); | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | function toggleHighPerfMode(state) { | |||
|  |   devtoolsState.highPerfModeEnabled = state != null ? state : !devtoolsState.highPerfModeEnabled; | |||
|  |   if (!state && activeAppRecord.value) { | |||
|  |     registerDevToolsPlugin(activeAppRecord.value.app); | |||
|  |   } | |||
|  | } | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | function updateDevToolsClientDetected(params) { | |||
|  |   devtoolsState.devtoolsClientDetected = { | |||
|  |     ...devtoolsState.devtoolsClientDetected, | |||
|  |     ...params | |||
|  |   }; | |||
|  |   const devtoolsClientVisible = Object.values(devtoolsState.devtoolsClientDetected).some(Boolean); | |||
|  |   toggleHighPerfMode(!devtoolsClientVisible); | |||
|  | } | |||
|  | var _a18; | |||
|  | var _b18; | |||
|  | (_b18 = (_a18 = target).__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__) != null ? _b18 : _a18.__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__ = updateDevToolsClientDetected; | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var DoubleIndexedKV = class { | |||
|  |   constructor() { | |||
|  |     this.keyToValue = /* @__PURE__ */ new Map(); | |||
|  |     this.valueToKey = /* @__PURE__ */ new Map(); | |||
|  |   } | |||
|  |   set(key, value) { | |||
|  |     this.keyToValue.set(key, value); | |||
|  |     this.valueToKey.set(value, key); | |||
|  |   } | |||
|  |   getByKey(key) { | |||
|  |     return this.keyToValue.get(key); | |||
|  |   } | |||
|  |   getByValue(value) { | |||
|  |     return this.valueToKey.get(value); | |||
|  |   } | |||
|  |   clear() { | |||
|  |     this.keyToValue.clear(); | |||
|  |     this.valueToKey.clear(); | |||
|  |   } | |||
|  | }; | |||
|  | var Registry = class { | |||
|  |   constructor(generateIdentifier) { | |||
|  |     this.generateIdentifier = generateIdentifier; | |||
|  |     this.kv = new DoubleIndexedKV(); | |||
|  |   } | |||
|  |   register(value, identifier) { | |||
|  |     if (this.kv.getByValue(value)) { | |||
|  |       return; | |||
|  |     } | |||
|  |     if (!identifier) { | |||
|  |       identifier = this.generateIdentifier(value); | |||
|  |     } | |||
|  |     this.kv.set(identifier, value); | |||
|  |   } | |||
|  |   clear() { | |||
|  |     this.kv.clear(); | |||
|  |   } | |||
|  |   getIdentifier(value) { | |||
|  |     return this.kv.getByValue(value); | |||
|  |   } | |||
|  |   getValue(identifier) { | |||
|  |     return this.kv.getByKey(identifier); | |||
|  |   } | |||
|  | }; | |||
|  | var ClassRegistry = class extends Registry { | |||
|  |   constructor() { | |||
|  |     super((c) => c.name); | |||
|  |     this.classToAllowedProps = /* @__PURE__ */ new Map(); | |||
|  |   } | |||
|  |   register(value, options) { | |||
|  |     if (typeof options === "object") { | |||
|  |       if (options.allowProps) { | |||
|  |         this.classToAllowedProps.set(value, options.allowProps); | |||
|  |       } | |||
|  |       super.register(value, options.identifier); | |||
|  |     } else { | |||
|  |       super.register(value, options); | |||
|  |     } | |||
|  |   } | |||
|  |   getAllowedProps(value) { | |||
|  |     return this.classToAllowedProps.get(value); | |||
|  |   } | |||
|  | }; | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | function valuesOfObj(record) { | |||
|  |   if ("values" in Object) { | |||
|  |     return Object.values(record); | |||
|  |   } | |||
|  |   const values = []; | |||
|  |   for (const key in record) { | |||
|  |     if (record.hasOwnProperty(key)) { | |||
|  |       values.push(record[key]); | |||
|  |     } | |||
|  |   } | |||
|  |   return values; | |||
|  | } | |||
|  | function find(record, predicate) { | |||
|  |   const values = valuesOfObj(record); | |||
|  |   if ("find" in values) { | |||
|  |     return values.find(predicate); | |||
|  |   } | |||
|  |   const valuesNotNever = values; | |||
|  |   for (let i = 0; i < valuesNotNever.length; i++) { | |||
|  |     const value = valuesNotNever[i]; | |||
|  |     if (predicate(value)) { | |||
|  |       return value; | |||
|  |     } | |||
|  |   } | |||
|  |   return void 0; | |||
|  | } | |||
|  | function forEach(record, run) { | |||
|  |   Object.entries(record).forEach(([key, value]) => run(value, key)); | |||
|  | } | |||
|  | function includes(arr, value) { | |||
|  |   return arr.indexOf(value) !== -1; | |||
|  | } | |||
|  | function findArr(record, predicate) { | |||
|  |   for (let i = 0; i < record.length; i++) { | |||
|  |     const value = record[i]; | |||
|  |     if (predicate(value)) { | |||
|  |       return value; | |||
|  |     } | |||
|  |   } | |||
|  |   return void 0; | |||
|  | } | |||
|  | var CustomTransformerRegistry = class { | |||
|  |   constructor() { | |||
|  |     this.transfomers = {}; | |||
|  |   } | |||
|  |   register(transformer) { | |||
|  |     this.transfomers[transformer.name] = transformer; | |||
|  |   } | |||
|  |   findApplicable(v) { | |||
|  |     return find(this.transfomers, (transformer) => transformer.isApplicable(v)); | |||
|  |   } | |||
|  |   findByName(name) { | |||
|  |     return this.transfomers[name]; | |||
|  |   } | |||
|  | }; | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1); | |||
|  | var isUndefined = (payload) => typeof payload === "undefined"; | |||
|  | var isNull = (payload) => payload === null; | |||
|  | var isPlainObject2 = (payload) => { | |||
|  |   if (typeof payload !== "object" || payload === null) | |||
|  |     return false; | |||
|  |   if (payload === Object.prototype) | |||
|  |     return false; | |||
|  |   if (Object.getPrototypeOf(payload) === null) | |||
|  |     return true; | |||
|  |   return Object.getPrototypeOf(payload) === Object.prototype; | |||
|  | }; | |||
|  | var isEmptyObject = (payload) => isPlainObject2(payload) && Object.keys(payload).length === 0; | |||
|  | var isArray = (payload) => Array.isArray(payload); | |||
|  | var isString = (payload) => typeof payload === "string"; | |||
|  | var isNumber = (payload) => typeof payload === "number" && !isNaN(payload); | |||
|  | var isBoolean = (payload) => typeof payload === "boolean"; | |||
|  | var isRegExp = (payload) => payload instanceof RegExp; | |||
|  | var isMap = (payload) => payload instanceof Map; | |||
|  | var isSet = (payload) => payload instanceof Set; | |||
|  | var isSymbol = (payload) => getType(payload) === "Symbol"; | |||
|  | var isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf()); | |||
|  | var isError = (payload) => payload instanceof Error; | |||
|  | var isNaNValue = (payload) => typeof payload === "number" && isNaN(payload); | |||
|  | var isPrimitive2 = (payload) => isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload); | |||
|  | var isBigint = (payload) => typeof payload === "bigint"; | |||
|  | var isInfinite = (payload) => payload === Infinity || payload === -Infinity; | |||
|  | var isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView); | |||
|  | var isURL = (payload) => payload instanceof URL; | |||
|  | init_esm_shims2(); | |||
|  | var escapeKey = (key) => key.replace(/\./g, "\\."); | |||
|  | var stringifyPath = (path) => path.map(String).map(escapeKey).join("."); | |||
|  | var parsePath = (string) => { | |||
|  |   const result = []; | |||
|  |   let segment = ""; | |||
|  |   for (let i = 0; i < string.length; i++) { | |||
|  |     let char = string.charAt(i); | |||
|  |     const isEscapedDot = char === "\\" && string.charAt(i + 1) === "."; | |||
|  |     if (isEscapedDot) { | |||
|  |       segment += "."; | |||
|  |       i++; | |||
|  |       continue; | |||
|  |     } | |||
|  |     const isEndOfSegment = char === "."; | |||
|  |     if (isEndOfSegment) { | |||
|  |       result.push(segment); | |||
|  |       segment = ""; | |||
|  |       continue; | |||
|  |     } | |||
|  |     segment += char; | |||
|  |   } | |||
|  |   const lastSegment = segment; | |||
|  |   result.push(lastSegment); | |||
|  |   return result; | |||
|  | }; | |||
|  | init_esm_shims2(); | |||
|  | function simpleTransformation(isApplicable, annotation, transform, untransform) { | |||
|  |   return { | |||
|  |     isApplicable, | |||
|  |     annotation, | |||
|  |     transform, | |||
|  |     untransform | |||
|  |   }; | |||
|  | } | |||
|  | var simpleRules = [ | |||
|  |   simpleTransformation(isUndefined, "undefined", () => null, () => void 0), | |||
|  |   simpleTransformation(isBigint, "bigint", (v) => v.toString(), (v) => { | |||
|  |     if (typeof BigInt !== "undefined") { | |||
|  |       return BigInt(v); | |||
|  |     } | |||
|  |     console.error("Please add a BigInt polyfill."); | |||
|  |     return v; | |||
|  |   }), | |||
|  |   simpleTransformation(isDate, "Date", (v) => v.toISOString(), (v) => new Date(v)), | |||
|  |   simpleTransformation(isError, "Error", (v, superJson) => { | |||
|  |     const baseError = { | |||
|  |       name: v.name, | |||
|  |       message: v.message | |||
|  |     }; | |||
|  |     superJson.allowedErrorProps.forEach((prop) => { | |||
|  |       baseError[prop] = v[prop]; | |||
|  |     }); | |||
|  |     return baseError; | |||
|  |   }, (v, superJson) => { | |||
|  |     const e = new Error(v.message); | |||
|  |     e.name = v.name; | |||
|  |     e.stack = v.stack; | |||
|  |     superJson.allowedErrorProps.forEach((prop) => { | |||
|  |       e[prop] = v[prop]; | |||
|  |     }); | |||
|  |     return e; | |||
|  |   }), | |||
|  |   simpleTransformation(isRegExp, "regexp", (v) => "" + v, (regex) => { | |||
|  |     const body = regex.slice(1, regex.lastIndexOf("/")); | |||
|  |     const flags = regex.slice(regex.lastIndexOf("/") + 1); | |||
|  |     return new RegExp(body, flags); | |||
|  |   }), | |||
|  |   simpleTransformation( | |||
|  |     isSet, | |||
|  |     "set", | |||
|  |     // (sets only exist in es6+)
 | |||
|  |     // eslint-disable-next-line es5/no-es6-methods
 | |||
|  |     (v) => [...v.values()], | |||
|  |     (v) => new Set(v) | |||
|  |   ), | |||
|  |   simpleTransformation(isMap, "map", (v) => [...v.entries()], (v) => new Map(v)), | |||
|  |   simpleTransformation((v) => isNaNValue(v) || isInfinite(v), "number", (v) => { | |||
|  |     if (isNaNValue(v)) { | |||
|  |       return "NaN"; | |||
|  |     } | |||
|  |     if (v > 0) { | |||
|  |       return "Infinity"; | |||
|  |     } else { | |||
|  |       return "-Infinity"; | |||
|  |     } | |||
|  |   }, Number), | |||
|  |   simpleTransformation((v) => v === 0 && 1 / v === -Infinity, "number", () => { | |||
|  |     return "-0"; | |||
|  |   }, Number), | |||
|  |   simpleTransformation(isURL, "URL", (v) => v.toString(), (v) => new URL(v)) | |||
|  | ]; | |||
|  | function compositeTransformation(isApplicable, annotation, transform, untransform) { | |||
|  |   return { | |||
|  |     isApplicable, | |||
|  |     annotation, | |||
|  |     transform, | |||
|  |     untransform | |||
|  |   }; | |||
|  | } | |||
|  | var symbolRule = compositeTransformation((s, superJson) => { | |||
|  |   if (isSymbol(s)) { | |||
|  |     const isRegistered = !!superJson.symbolRegistry.getIdentifier(s); | |||
|  |     return isRegistered; | |||
|  |   } | |||
|  |   return false; | |||
|  | }, (s, superJson) => { | |||
|  |   const identifier = superJson.symbolRegistry.getIdentifier(s); | |||
|  |   return ["symbol", identifier]; | |||
|  | }, (v) => v.description, (_, a, superJson) => { | |||
|  |   const value = superJson.symbolRegistry.getValue(a[1]); | |||
|  |   if (!value) { | |||
|  |     throw new Error("Trying to deserialize unknown symbol"); | |||
|  |   } | |||
|  |   return value; | |||
|  | }); | |||
|  | var constructorToName = [ | |||
|  |   Int8Array, | |||
|  |   Uint8Array, | |||
|  |   Int16Array, | |||
|  |   Uint16Array, | |||
|  |   Int32Array, | |||
|  |   Uint32Array, | |||
|  |   Float32Array, | |||
|  |   Float64Array, | |||
|  |   Uint8ClampedArray | |||
|  | ].reduce((obj, ctor) => { | |||
|  |   obj[ctor.name] = ctor; | |||
|  |   return obj; | |||
|  | }, {}); | |||
|  | var typedArrayRule = compositeTransformation(isTypedArray, (v) => ["typed-array", v.constructor.name], (v) => [...v], (v, a) => { | |||
|  |   const ctor = constructorToName[a[1]]; | |||
|  |   if (!ctor) { | |||
|  |     throw new Error("Trying to deserialize unknown typed array"); | |||
|  |   } | |||
|  |   return new ctor(v); | |||
|  | }); | |||
|  | function isInstanceOfRegisteredClass(potentialClass, superJson) { | |||
|  |   if (potentialClass == null ? void 0 : potentialClass.constructor) { | |||
|  |     const isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor); | |||
|  |     return isRegistered; | |||
|  |   } | |||
|  |   return false; | |||
|  | } | |||
|  | var classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => { | |||
|  |   const identifier = superJson.classRegistry.getIdentifier(clazz.constructor); | |||
|  |   return ["class", identifier]; | |||
|  | }, (clazz, superJson) => { | |||
|  |   const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor); | |||
|  |   if (!allowedProps) { | |||
|  |     return { ...clazz }; | |||
|  |   } | |||
|  |   const result = {}; | |||
|  |   allowedProps.forEach((prop) => { | |||
|  |     result[prop] = clazz[prop]; | |||
|  |   }); | |||
|  |   return result; | |||
|  | }, (v, a, superJson) => { | |||
|  |   const clazz = superJson.classRegistry.getValue(a[1]); | |||
|  |   if (!clazz) { | |||
|  |     throw new Error(`Trying to deserialize unknown class '${a[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`); | |||
|  |   } | |||
|  |   return Object.assign(Object.create(clazz.prototype), v); | |||
|  | }); | |||
|  | var customRule = compositeTransformation((value, superJson) => { | |||
|  |   return !!superJson.customTransformerRegistry.findApplicable(value); | |||
|  | }, (value, superJson) => { | |||
|  |   const transformer = superJson.customTransformerRegistry.findApplicable(value); | |||
|  |   return ["custom", transformer.name]; | |||
|  | }, (value, superJson) => { | |||
|  |   const transformer = superJson.customTransformerRegistry.findApplicable(value); | |||
|  |   return transformer.serialize(value); | |||
|  | }, (v, a, superJson) => { | |||
|  |   const transformer = superJson.customTransformerRegistry.findByName(a[1]); | |||
|  |   if (!transformer) { | |||
|  |     throw new Error("Trying to deserialize unknown custom value"); | |||
|  |   } | |||
|  |   return transformer.deserialize(v); | |||
|  | }); | |||
|  | var compositeRules = [classRule, symbolRule, customRule, typedArrayRule]; | |||
|  | var transformValue = (value, superJson) => { | |||
|  |   const applicableCompositeRule = findArr(compositeRules, (rule) => rule.isApplicable(value, superJson)); | |||
|  |   if (applicableCompositeRule) { | |||
|  |     return { | |||
|  |       value: applicableCompositeRule.transform(value, superJson), | |||
|  |       type: applicableCompositeRule.annotation(value, superJson) | |||
|  |     }; | |||
|  |   } | |||
|  |   const applicableSimpleRule = findArr(simpleRules, (rule) => rule.isApplicable(value, superJson)); | |||
|  |   if (applicableSimpleRule) { | |||
|  |     return { | |||
|  |       value: applicableSimpleRule.transform(value, superJson), | |||
|  |       type: applicableSimpleRule.annotation | |||
|  |     }; | |||
|  |   } | |||
|  |   return void 0; | |||
|  | }; | |||
|  | var simpleRulesByAnnotation = {}; | |||
|  | simpleRules.forEach((rule) => { | |||
|  |   simpleRulesByAnnotation[rule.annotation] = rule; | |||
|  | }); | |||
|  | var untransformValue = (json, type, superJson) => { | |||
|  |   if (isArray(type)) { | |||
|  |     switch (type[0]) { | |||
|  |       case "symbol": | |||
|  |         return symbolRule.untransform(json, type, superJson); | |||
|  |       case "class": | |||
|  |         return classRule.untransform(json, type, superJson); | |||
|  |       case "custom": | |||
|  |         return customRule.untransform(json, type, superJson); | |||
|  |       case "typed-array": | |||
|  |         return typedArrayRule.untransform(json, type, superJson); | |||
|  |       default: | |||
|  |         throw new Error("Unknown transformation: " + type); | |||
|  |     } | |||
|  |   } else { | |||
|  |     const transformation = simpleRulesByAnnotation[type]; | |||
|  |     if (!transformation) { | |||
|  |       throw new Error("Unknown transformation: " + type); | |||
|  |     } | |||
|  |     return transformation.untransform(json, superJson); | |||
|  |   } | |||
|  | }; | |||
|  | init_esm_shims2(); | |||
|  | var getNthKey = (value, n) => { | |||
|  |   if (n > value.size) | |||
|  |     throw new Error("index out of bounds"); | |||
|  |   const keys = value.keys(); | |||
|  |   while (n > 0) { | |||
|  |     keys.next(); | |||
|  |     n--; | |||
|  |   } | |||
|  |   return keys.next().value; | |||
|  | }; | |||
|  | function validatePath(path) { | |||
|  |   if (includes(path, "__proto__")) { | |||
|  |     throw new Error("__proto__ is not allowed as a property"); | |||
|  |   } | |||
|  |   if (includes(path, "prototype")) { | |||
|  |     throw new Error("prototype is not allowed as a property"); | |||
|  |   } | |||
|  |   if (includes(path, "constructor")) { | |||
|  |     throw new Error("constructor is not allowed as a property"); | |||
|  |   } | |||
|  | } | |||
|  | var getDeep = (object, path) => { | |||
|  |   validatePath(path); | |||
|  |   for (let i = 0; i < path.length; i++) { | |||
|  |     const key = path[i]; | |||
|  |     if (isSet(object)) { | |||
|  |       object = getNthKey(object, +key); | |||
|  |     } else if (isMap(object)) { | |||
|  |       const row = +key; | |||
|  |       const type = +path[++i] === 0 ? "key" : "value"; | |||
|  |       const keyOfRow = getNthKey(object, row); | |||
|  |       switch (type) { | |||
|  |         case "key": | |||
|  |           object = keyOfRow; | |||
|  |           break; | |||
|  |         case "value": | |||
|  |           object = object.get(keyOfRow); | |||
|  |           break; | |||
|  |       } | |||
|  |     } else { | |||
|  |       object = object[key]; | |||
|  |     } | |||
|  |   } | |||
|  |   return object; | |||
|  | }; | |||
|  | var setDeep = (object, path, mapper) => { | |||
|  |   validatePath(path); | |||
|  |   if (path.length === 0) { | |||
|  |     return mapper(object); | |||
|  |   } | |||
|  |   let parent = object; | |||
|  |   for (let i = 0; i < path.length - 1; i++) { | |||
|  |     const key = path[i]; | |||
|  |     if (isArray(parent)) { | |||
|  |       const index = +key; | |||
|  |       parent = parent[index]; | |||
|  |     } else if (isPlainObject2(parent)) { | |||
|  |       parent = parent[key]; | |||
|  |     } else if (isSet(parent)) { | |||
|  |       const row = +key; | |||
|  |       parent = getNthKey(parent, row); | |||
|  |     } else if (isMap(parent)) { | |||
|  |       const isEnd = i === path.length - 2; | |||
|  |       if (isEnd) { | |||
|  |         break; | |||
|  |       } | |||
|  |       const row = +key; | |||
|  |       const type = +path[++i] === 0 ? "key" : "value"; | |||
|  |       const keyOfRow = getNthKey(parent, row); | |||
|  |       switch (type) { | |||
|  |         case "key": | |||
|  |           parent = keyOfRow; | |||
|  |           break; | |||
|  |         case "value": | |||
|  |           parent = parent.get(keyOfRow); | |||
|  |           break; | |||
|  |       } | |||
|  |     } | |||
|  |   } | |||
|  |   const lastKey = path[path.length - 1]; | |||
|  |   if (isArray(parent)) { | |||
|  |     parent[+lastKey] = mapper(parent[+lastKey]); | |||
|  |   } else if (isPlainObject2(parent)) { | |||
|  |     parent[lastKey] = mapper(parent[lastKey]); | |||
|  |   } | |||
|  |   if (isSet(parent)) { | |||
|  |     const oldValue = getNthKey(parent, +lastKey); | |||
|  |     const newValue = mapper(oldValue); | |||
|  |     if (oldValue !== newValue) { | |||
|  |       parent.delete(oldValue); | |||
|  |       parent.add(newValue); | |||
|  |     } | |||
|  |   } | |||
|  |   if (isMap(parent)) { | |||
|  |     const row = +path[path.length - 2]; | |||
|  |     const keyToRow = getNthKey(parent, row); | |||
|  |     const type = +lastKey === 0 ? "key" : "value"; | |||
|  |     switch (type) { | |||
|  |       case "key": { | |||
|  |         const newKey = mapper(keyToRow); | |||
|  |         parent.set(newKey, parent.get(keyToRow)); | |||
|  |         if (newKey !== keyToRow) { | |||
|  |           parent.delete(keyToRow); | |||
|  |         } | |||
|  |         break; | |||
|  |       } | |||
|  |       case "value": { | |||
|  |         parent.set(keyToRow, mapper(parent.get(keyToRow))); | |||
|  |         break; | |||
|  |       } | |||
|  |     } | |||
|  |   } | |||
|  |   return object; | |||
|  | }; | |||
|  | function traverse(tree, walker2, origin = []) { | |||
|  |   if (!tree) { | |||
|  |     return; | |||
|  |   } | |||
|  |   if (!isArray(tree)) { | |||
|  |     forEach(tree, (subtree, key) => traverse(subtree, walker2, [...origin, ...parsePath(key)])); | |||
|  |     return; | |||
|  |   } | |||
|  |   const [nodeValue, children] = tree; | |||
|  |   if (children) { | |||
|  |     forEach(children, (child, key) => { | |||
|  |       traverse(child, walker2, [...origin, ...parsePath(key)]); | |||
|  |     }); | |||
|  |   } | |||
|  |   walker2(nodeValue, origin); | |||
|  | } | |||
|  | function applyValueAnnotations(plain, annotations, superJson) { | |||
|  |   traverse(annotations, (type, path) => { | |||
|  |     plain = setDeep(plain, path, (v) => untransformValue(v, type, superJson)); | |||
|  |   }); | |||
|  |   return plain; | |||
|  | } | |||
|  | function applyReferentialEqualityAnnotations(plain, annotations) { | |||
|  |   function apply(identicalPaths, path) { | |||
|  |     const object = getDeep(plain, parsePath(path)); | |||
|  |     identicalPaths.map(parsePath).forEach((identicalObjectPath) => { | |||
|  |       plain = setDeep(plain, identicalObjectPath, () => object); | |||
|  |     }); | |||
|  |   } | |||
|  |   if (isArray(annotations)) { | |||
|  |     const [root, other] = annotations; | |||
|  |     root.forEach((identicalPath) => { | |||
|  |       plain = setDeep(plain, parsePath(identicalPath), () => plain); | |||
|  |     }); | |||
|  |     if (other) { | |||
|  |       forEach(other, apply); | |||
|  |     } | |||
|  |   } else { | |||
|  |     forEach(annotations, apply); | |||
|  |   } | |||
|  |   return plain; | |||
|  | } | |||
|  | var isDeep = (object, superJson) => isPlainObject2(object) || isArray(object) || isMap(object) || isSet(object) || isInstanceOfRegisteredClass(object, superJson); | |||
|  | function addIdentity(object, path, identities) { | |||
|  |   const existingSet = identities.get(object); | |||
|  |   if (existingSet) { | |||
|  |     existingSet.push(path); | |||
|  |   } else { | |||
|  |     identities.set(object, [path]); | |||
|  |   } | |||
|  | } | |||
|  | function generateReferentialEqualityAnnotations(identitites, dedupe) { | |||
|  |   const result = {}; | |||
|  |   let rootEqualityPaths = void 0; | |||
|  |   identitites.forEach((paths) => { | |||
|  |     if (paths.length <= 1) { | |||
|  |       return; | |||
|  |     } | |||
|  |     if (!dedupe) { | |||
|  |       paths = paths.map((path) => path.map(String)).sort((a, b) => a.length - b.length); | |||
|  |     } | |||
|  |     const [representativePath, ...identicalPaths] = paths; | |||
|  |     if (representativePath.length === 0) { | |||
|  |       rootEqualityPaths = identicalPaths.map(stringifyPath); | |||
|  |     } else { | |||
|  |       result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath); | |||
|  |     } | |||
|  |   }); | |||
|  |   if (rootEqualityPaths) { | |||
|  |     if (isEmptyObject(result)) { | |||
|  |       return [rootEqualityPaths]; | |||
|  |     } else { | |||
|  |       return [rootEqualityPaths, result]; | |||
|  |     } | |||
|  |   } else { | |||
|  |     return isEmptyObject(result) ? void 0 : result; | |||
|  |   } | |||
|  | } | |||
|  | var walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = /* @__PURE__ */ new Map()) => { | |||
|  |   var _a25; | |||
|  |   const primitive = isPrimitive2(object); | |||
|  |   if (!primitive) { | |||
|  |     addIdentity(object, path, identities); | |||
|  |     const seen = seenObjects.get(object); | |||
|  |     if (seen) { | |||
|  |       return dedupe ? { | |||
|  |         transformedValue: null | |||
|  |       } : seen; | |||
|  |     } | |||
|  |   } | |||
|  |   if (!isDeep(object, superJson)) { | |||
|  |     const transformed2 = transformValue(object, superJson); | |||
|  |     const result2 = transformed2 ? { | |||
|  |       transformedValue: transformed2.value, | |||
|  |       annotations: [transformed2.type] | |||
|  |     } : { | |||
|  |       transformedValue: object | |||
|  |     }; | |||
|  |     if (!primitive) { | |||
|  |       seenObjects.set(object, result2); | |||
|  |     } | |||
|  |     return result2; | |||
|  |   } | |||
|  |   if (includes(objectsInThisPath, object)) { | |||
|  |     return { | |||
|  |       transformedValue: null | |||
|  |     }; | |||
|  |   } | |||
|  |   const transformationResult = transformValue(object, superJson); | |||
|  |   const transformed = (_a25 = transformationResult == null ? void 0 : transformationResult.value) != null ? _a25 : object; | |||
|  |   const transformedValue = isArray(transformed) ? [] : {}; | |||
|  |   const innerAnnotations = {}; | |||
|  |   forEach(transformed, (value, index) => { | |||
|  |     if (index === "__proto__" || index === "constructor" || index === "prototype") { | |||
|  |       throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`); | |||
|  |     } | |||
|  |     const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects); | |||
|  |     transformedValue[index] = recursiveResult.transformedValue; | |||
|  |     if (isArray(recursiveResult.annotations)) { | |||
|  |       innerAnnotations[index] = recursiveResult.annotations; | |||
|  |     } else if (isPlainObject2(recursiveResult.annotations)) { | |||
|  |       forEach(recursiveResult.annotations, (tree, key) => { | |||
|  |         innerAnnotations[escapeKey(index) + "." + key] = tree; | |||
|  |       }); | |||
|  |     } | |||
|  |   }); | |||
|  |   const result = isEmptyObject(innerAnnotations) ? { | |||
|  |     transformedValue, | |||
|  |     annotations: !!transformationResult ? [transformationResult.type] : void 0 | |||
|  |   } : { | |||
|  |     transformedValue, | |||
|  |     annotations: !!transformationResult ? [transformationResult.type, innerAnnotations] : innerAnnotations | |||
|  |   }; | |||
|  |   if (!primitive) { | |||
|  |     seenObjects.set(object, result); | |||
|  |   } | |||
|  |   return result; | |||
|  | }; | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | function getType2(payload) { | |||
|  |   return Object.prototype.toString.call(payload).slice(8, -1); | |||
|  | } | |||
|  | function isArray2(payload) { | |||
|  |   return getType2(payload) === "Array"; | |||
|  | } | |||
|  | function isPlainObject3(payload) { | |||
|  |   if (getType2(payload) !== "Object") | |||
|  |     return false; | |||
|  |   const prototype = Object.getPrototypeOf(payload); | |||
|  |   return !!prototype && prototype.constructor === Object && prototype === Object.prototype; | |||
|  | } | |||
|  | function isNull2(payload) { | |||
|  |   return getType2(payload) === "Null"; | |||
|  | } | |||
|  | function isOneOf(a, b, c, d, e) { | |||
|  |   return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value); | |||
|  | } | |||
|  | function isUndefined2(payload) { | |||
|  |   return getType2(payload) === "Undefined"; | |||
|  | } | |||
|  | var isNullOrUndefined = isOneOf(isNull2, isUndefined2); | |||
|  | function assignProp(carry, key, newVal, originalObject, includeNonenumerable) { | |||
|  |   const propType = {}.propertyIsEnumerable.call(originalObject, key) ? "enumerable" : "nonenumerable"; | |||
|  |   if (propType === "enumerable") | |||
|  |     carry[key] = newVal; | |||
|  |   if (includeNonenumerable && propType === "nonenumerable") { | |||
|  |     Object.defineProperty(carry, key, { | |||
|  |       value: newVal, | |||
|  |       enumerable: false, | |||
|  |       writable: true, | |||
|  |       configurable: true | |||
|  |     }); | |||
|  |   } | |||
|  | } | |||
|  | function copy(target22, options = {}) { | |||
|  |   if (isArray2(target22)) { | |||
|  |     return target22.map((item) => copy(item, options)); | |||
|  |   } | |||
|  |   if (!isPlainObject3(target22)) { | |||
|  |     return target22; | |||
|  |   } | |||
|  |   const props = Object.getOwnPropertyNames(target22); | |||
|  |   const symbols = Object.getOwnPropertySymbols(target22); | |||
|  |   return [...props, ...symbols].reduce((carry, key) => { | |||
|  |     if (isArray2(options.props) && !options.props.includes(key)) { | |||
|  |       return carry; | |||
|  |     } | |||
|  |     const val = target22[key]; | |||
|  |     const newVal = copy(val, options); | |||
|  |     assignProp(carry, key, newVal, target22, options.nonenumerable); | |||
|  |     return carry; | |||
|  |   }, {}); | |||
|  | } | |||
|  | var SuperJSON = class { | |||
|  |   /** | |||
|  |    * @param dedupeReferentialEqualities  If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`. | |||
|  |    */ | |||
|  |   constructor({ dedupe = false } = {}) { | |||
|  |     this.classRegistry = new ClassRegistry(); | |||
|  |     this.symbolRegistry = new Registry((s) => { | |||
|  |       var _a25; | |||
|  |       return (_a25 = s.description) != null ? _a25 : ""; | |||
|  |     }); | |||
|  |     this.customTransformerRegistry = new CustomTransformerRegistry(); | |||
|  |     this.allowedErrorProps = []; | |||
|  |     this.dedupe = dedupe; | |||
|  |   } | |||
|  |   serialize(object) { | |||
|  |     const identities = /* @__PURE__ */ new Map(); | |||
|  |     const output = walker(object, identities, this, this.dedupe); | |||
|  |     const res = { | |||
|  |       json: output.transformedValue | |||
|  |     }; | |||
|  |     if (output.annotations) { | |||
|  |       res.meta = { | |||
|  |         ...res.meta, | |||
|  |         values: output.annotations | |||
|  |       }; | |||
|  |     } | |||
|  |     const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe); | |||
|  |     if (equalityAnnotations) { | |||
|  |       res.meta = { | |||
|  |         ...res.meta, | |||
|  |         referentialEqualities: equalityAnnotations | |||
|  |       }; | |||
|  |     } | |||
|  |     return res; | |||
|  |   } | |||
|  |   deserialize(payload) { | |||
|  |     const { json, meta } = payload; | |||
|  |     let result = copy(json); | |||
|  |     if (meta == null ? void 0 : meta.values) { | |||
|  |       result = applyValueAnnotations(result, meta.values, this); | |||
|  |     } | |||
|  |     if (meta == null ? void 0 : meta.referentialEqualities) { | |||
|  |       result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities); | |||
|  |     } | |||
|  |     return result; | |||
|  |   } | |||
|  |   stringify(object) { | |||
|  |     return JSON.stringify(this.serialize(object)); | |||
|  |   } | |||
|  |   parse(string) { | |||
|  |     return this.deserialize(JSON.parse(string)); | |||
|  |   } | |||
|  |   registerClass(v, options) { | |||
|  |     this.classRegistry.register(v, options); | |||
|  |   } | |||
|  |   registerSymbol(v, identifier) { | |||
|  |     this.symbolRegistry.register(v, identifier); | |||
|  |   } | |||
|  |   registerCustom(transformer, name) { | |||
|  |     this.customTransformerRegistry.register({ | |||
|  |       name, | |||
|  |       ...transformer | |||
|  |     }); | |||
|  |   } | |||
|  |   allowErrorProps(...props) { | |||
|  |     this.allowedErrorProps.push(...props); | |||
|  |   } | |||
|  | }; | |||
|  | SuperJSON.defaultInstance = new SuperJSON(); | |||
|  | SuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance); | |||
|  | SuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance); | |||
|  | SuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance); | |||
|  | SuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance); | |||
|  | SuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance); | |||
|  | SuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance); | |||
|  | SuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance); | |||
|  | SuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance); | |||
|  | var serialize = SuperJSON.serialize; | |||
|  | var deserialize = SuperJSON.deserialize; | |||
|  | var stringify = SuperJSON.stringify; | |||
|  | var parse = SuperJSON.parse; | |||
|  | var registerClass = SuperJSON.registerClass; | |||
|  | var registerCustom = SuperJSON.registerCustom; | |||
|  | var registerSymbol = SuperJSON.registerSymbol; | |||
|  | var allowErrorProps = SuperJSON.allowErrorProps; | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var _a19; | |||
|  | var _b19; | |||
|  | (_b19 = (_a19 = target).__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__) != null ? _b19 : _a19.__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__ = []; | |||
|  | var _a20; | |||
|  | var _b20; | |||
|  | (_b20 = (_a20 = target).__VUE_DEVTOOLS_KIT_RPC_CLIENT__) != null ? _b20 : _a20.__VUE_DEVTOOLS_KIT_RPC_CLIENT__ = null; | |||
|  | var _a21; | |||
|  | var _b21; | |||
|  | (_b21 = (_a21 = target).__VUE_DEVTOOLS_KIT_RPC_SERVER__) != null ? _b21 : _a21.__VUE_DEVTOOLS_KIT_RPC_SERVER__ = null; | |||
|  | var _a222; | |||
|  | var _b22; | |||
|  | (_b22 = (_a222 = target).__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__) != null ? _b22 : _a222.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__ = null; | |||
|  | var _a23; | |||
|  | var _b23; | |||
|  | (_b23 = (_a23 = target).__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__) != null ? _b23 : _a23.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__ = null; | |||
|  | var _a24; | |||
|  | var _b24; | |||
|  | (_b24 = (_a24 = target).__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__) != null ? _b24 : _a24.__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__ = null; | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | init_esm_shims2(); | |||
|  | var MAX_SERIALIZED_SIZE = 2 * 1024 * 1024; | |||
|  | export { | |||
|  |   addCustomCommand, | |||
|  |   addCustomTab, | |||
|  |   onDevToolsClientConnected, | |||
|  |   onDevToolsConnected, | |||
|  |   removeCustomCommand, | |||
|  |   setupDevToolsPlugin, | |||
|  |   setupDevToolsPlugin as setupDevtoolsPlugin | |||
|  | }; | |||
|  | //# sourceMappingURL=vitepress___@vue_devtools-api.js.map
 |