2026-02-11 16:20:26 +00:00
// 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 ;
2026-02-16 13:45:45 +00:00
var _ _commonJS = ( cb , mod ) => function ( ) {
2026-02-11 16:20:26 +00:00
return mod || ( 0 , cb [ _ _getOwnPropNames ( cb ) [ 0 ] ] ) ( ( mod = { exports : { } } ) . exports , mod ) , mod . exports ;
} ;
var _ _copyProps = ( to , from , except , desc ) => {
2026-02-16 13:45:45 +00:00
if ( from && typeof from === "object" || typeof from === "function" ) for ( var keys = _ _getOwnPropNames ( from ) , i = 0 , n = keys . length , key ; i < n ; i ++ ) {
key = keys [ i ] ;
if ( ! _ _hasOwnProp . call ( to , key ) && key !== except ) _ _defProp ( to , key , {
get : ( ( k ) => from [ k ] ) . bind ( null , key ) ,
enumerable : ! ( desc = _ _getOwnPropDesc ( from , key ) ) || desc . enumerable
} ) ;
2026-02-11 16:20:26 +00:00
}
return to ;
} ;
2026-02-16 13:45:45 +00:00
var _ _toESM = ( mod , isNodeMode , target$1 ) => ( target$1 = mod != null ? _ _create ( _ _getProtoOf ( mod ) ) : { } , _ _copyProps ( isNodeMode || ! mod || ! mod . _ _esModule ? _ _defProp ( target$1 , "default" , {
value : mod ,
enumerable : true
} ) : target$1 , mod ) ) ;
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 isInElectron = typeof navigator !== "undefined" && navigator . userAgent ? . toLowerCase ( ) . includes ( "electron" ) ;
var isNuxtApp = typeof window !== "undefined" && ! ! window . _ _NUXT _ _ ;
var require _rfdc = _ _commonJS ( { "../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js" : ( ( exports , module ) => {
module . exports = rfdc$1 ;
function copyBuffer ( cur ) {
if ( cur instanceof Buffer ) return Buffer . from ( cur ) ;
return new cur . constructor ( cur . buffer . slice ( ) , cur . byteOffset , cur . length ) ;
}
function rfdc$1 ( 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 handler$1 of opts . constructorHandlers ) constructorHandlers . set ( handler$1 [ 0 ] , handler$1 [ 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 ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
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 ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
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 ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
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 handler$1 of opts . constructorHandlers ) constructorHandlers . set ( handler$1 [ 0 ] , handler$1 [ 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 ) ;
2026-02-11 16:20:26 +00:00
}
}
2026-02-16 13:45:45 +00:00
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 ) ;
2026-02-11 16:20:26 +00:00
}
}
2026-02-16 13:45:45 +00:00
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 ) ;
2026-02-11 16:20:26 +00:00
}
}
2026-02-16 13:45:45 +00:00
refs . pop ( ) ;
refsNew . pop ( ) ;
return o2 ;
2026-02-11 16:20:26 +00:00
}
}
2026-02-16 13:45:45 +00:00
} ) } ) ;
2026-02-11 16:20:26 +00:00
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 ) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
function basename ( filename , ext ) {
let normalizedFilename = filename . replace ( /^[a-z]:/i , "" ) . replace ( /\\/g , "/" ) ;
2026-02-16 13:45:45 +00:00
if ( normalizedFilename . endsWith ( ` index ${ ext } ` ) ) normalizedFilename = normalizedFilename . replace ( ` /index ${ ext } ` , ext ) ;
2026-02-11 16:20:26 +00:00
const lastSlashIndex = normalizedFilename . lastIndexOf ( "/" ) ;
const baseNameWithExt = normalizedFilename . substring ( lastSlashIndex + 1 ) ;
if ( ext ) {
const extIndex = baseNameWithExt . lastIndexOf ( ext ) ;
return baseNameWithExt . substring ( 0 , extIndex ) ;
}
return "" ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
var HTTP _URL _RE = /^https?:\/\// ;
function isUrlString ( str ) {
return str . startsWith ( "/" ) || HTTP _URL _RE . test ( str ) ;
}
var deepClone = ( 0 , import _rfdc . default ) ( { circles : true } ) ;
2024-01-05 12:14:38 +00:00
2026-02-11 16:20:26 +00:00
// node_modules/perfect-debounce/dist/index.mjs
2026-02-16 13:45:45 +00:00
var DEBOUNCE _DEFAULTS = { trailing : true } ;
2026-02-11 16:20:26 +00:00
function debounce ( fn , wait = 25 , options = { } ) {
2026-02-16 13:45:45 +00:00
options = {
... DEBOUNCE _DEFAULTS ,
... options
} ;
if ( ! Number . isFinite ( wait ) ) throw new TypeError ( "Expected `wait` to be a finite number" ) ;
2026-02-11 16:20:26 +00:00
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 ;
} ;
2026-02-16 13:45:45 +00:00
const debounced = function ( ... args ) {
if ( options . trailing ) trailingArgs = args ;
if ( currentPromise ) return currentPromise ;
2026-02-11 16:20:26 +00:00
return new Promise ( ( resolve ) => {
const shouldCallNow = ! timeout && options . leading ;
clearTimeout ( timeout ) ;
timeout = setTimeout ( ( ) => {
timeout = null ;
const promise = options . leading ? leadingValue : applyFn ( this , args ) ;
2026-02-16 13:45:45 +00:00
trailingArgs = null ;
for ( const _resolve of resolveList ) _resolve ( promise ) ;
2026-02-11 16:20:26 +00:00
resolveList = [ ] ;
} , wait ) ;
if ( shouldCallNow ) {
leadingValue = applyFn ( this , args ) ;
resolve ( leadingValue ) ;
2026-02-16 13:45:45 +00:00
} else resolveList . push ( resolve ) ;
2026-02-11 16:20:26 +00:00
} ) ;
} ;
2026-02-16 13:45:45 +00:00
const _clearTimeout = ( timer ) => {
if ( timer ) {
clearTimeout ( timer ) ;
timeout = null ;
}
} ;
debounced . isPending = ( ) => ! ! timeout ;
debounced . cancel = ( ) => {
_clearTimeout ( timeout ) ;
resolveList = [ ] ;
trailingArgs = null ;
} ;
debounced . flush = ( ) => {
_clearTimeout ( timeout ) ;
if ( ! trailingArgs || currentPromise ) return ;
const args = trailingArgs ;
trailingArgs = null ;
return applyFn ( this , args ) ;
} ;
return debounced ;
2026-02-11 16:20:26 +00:00
}
async function _applyPromised ( fn , _this , args ) {
return await fn . apply ( _this , args ) ;
}
2024-01-05 12:14:38 +00:00
2026-02-11 16:20:26 +00:00
// 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 ;
}
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
return hooks2 ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
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 ( ) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
// node_modules/birpc/dist/index.mjs
var { clearTimeout : clearTimeout2 , setTimeout : setTimeout2 } = globalThis ;
var random = Math . random . bind ( Math ) ;
// 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 ;
2026-02-16 13:45:45 +00:00
var _ _commonJS2 = ( cb , mod ) => function ( ) {
2026-02-11 16:20:26 +00:00
return mod || ( 0 , cb [ _ _getOwnPropNames2 ( cb ) [ 0 ] ] ) ( ( mod = { exports : { } } ) . exports , mod ) , mod . exports ;
} ;
var _ _copyProps2 = ( to , from , except , desc ) => {
2026-02-16 13:45:45 +00:00
if ( from && typeof from === "object" || typeof from === "function" ) for ( var keys = _ _getOwnPropNames2 ( from ) , i = 0 , n = keys . length , key ; i < n ; i ++ ) {
key = keys [ i ] ;
if ( ! _ _hasOwnProp2 . call ( to , key ) && key !== except ) _ _defProp2 ( to , key , {
get : ( ( k ) => from [ k ] ) . bind ( null , key ) ,
enumerable : ! ( desc = _ _getOwnPropDesc2 ( from , key ) ) || desc . enumerable
} ) ;
2026-02-11 16:20:26 +00:00
}
return to ;
} ;
2026-02-16 13:45:45 +00:00
var _ _toESM2 = ( mod , isNodeMode , target$1 ) => ( target$1 = mod != null ? _ _create2 ( _ _getProtoOf2 ( mod ) ) : { } , _ _copyProps2 ( isNodeMode || ! mod || ! mod . _ _esModule ? _ _defProp2 ( target$1 , "default" , {
value : mod ,
enumerable : true
} ) : target$1 , mod ) ) ;
2026-02-11 16:20:26 +00:00
function getComponentTypeName ( options ) {
const name = options . name || options . _componentTag || options . _ _VUE _DEVTOOLS _COMPONENT _GUSSED _NAME _ _ || options . _ _name ;
2026-02-16 13:45:45 +00:00
if ( name === "index" && options . _ _file ? . endsWith ( "index.vue" ) ) return "" ;
2026-02-11 16:20:26 +00:00
return name ;
}
function getComponentFileName ( options ) {
const file = options . _ _file ;
2026-02-16 13:45:45 +00:00
if ( file ) return classify ( basename ( file , ".vue" ) ) ;
2026-02-11 16:20:26 +00:00
}
function saveComponentGussedName ( instance , name ) {
instance . type . _ _VUE _DEVTOOLS _COMPONENT _GUSSED _NAME _ _ = name ;
return name ;
}
function getAppRecord ( instance ) {
2026-02-16 13:45:45 +00:00
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 _ _ ;
2026-02-11 16:20:26 +00:00
}
function isFragment ( instance ) {
2026-02-16 13:45:45 +00:00
const subTreeType = instance . subTree ? . type ;
2026-02-11 16:20:26 +00:00
const appRecord = getAppRecord ( instance ) ;
2026-02-16 13:45:45 +00:00
if ( appRecord ) return appRecord ? . types ? . Fragment === subTreeType ;
2026-02-11 16:20:26 +00:00
return false ;
}
function getInstanceName ( instance ) {
2026-02-16 13:45:45 +00:00
const name = getComponentTypeName ( instance ? . type || { } ) ;
if ( name ) return name ;
if ( instance ? . root === instance ) return "Root" ;
for ( const key in instance . parent ? . type ? . components ) if ( instance . parent . type . components [ key ] === instance ? . type ) return saveComponentGussedName ( instance , key ) ;
for ( const key in instance . appContext ? . components ) if ( instance . appContext . components [ key ] === instance ? . type ) return saveComponentGussedName ( instance , key ) ;
const fileName = getComponentFileName ( instance ? . type || { } ) ;
if ( fileName ) return fileName ;
2026-02-11 16:20:26 +00:00
return "Anonymous Component" ;
}
function getUniqueComponentId ( instance ) {
2026-02-16 13:45:45 +00:00
return ` ${ instance ? . appContext ? . app ? . _ _VUE _DEVTOOLS _NEXT _APP _RECORD _ID _ _ ? ? 0 } : ${ instance === instance ? . root ? "root" : instance . uid } ` ;
2026-02-11 16:20:26 +00:00
}
function getComponentInstance ( appRecord , instanceId ) {
instanceId = instanceId || ` ${ appRecord . id } :root ` ;
2026-02-16 13:45:45 +00:00
return appRecord . instanceMap . get ( instanceId ) || appRecord . instanceMap . get ( ":root" ) ;
2026-02-11 16:20:26 +00:00
}
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 ) {
2026-02-16 13:45:45 +00:00
if ( ! range ) range = document . createRange ( ) ;
2026-02-11 16:20:26 +00:00
range . selectNode ( node ) ;
return range . getBoundingClientRect ( ) ;
}
function getFragmentRect ( vnode ) {
const rect = createRect ( ) ;
2026-02-16 13:45:45 +00:00
if ( ! vnode . children ) return rect ;
2026-02-11 16:20:26 +00:00
for ( let i = 0 , l = vnode . children . length ; i < l ; i ++ ) {
const childVnode = vnode . children [ i ] ;
let childRect ;
2026-02-16 13:45:45 +00:00
if ( childVnode . component ) childRect = getComponentBoundingRect ( childVnode . component ) ;
else if ( childVnode . el ) {
2026-02-11 16:20:26 +00:00
const el = childVnode . el ;
2026-02-16 13:45:45 +00:00
if ( el . nodeType === 1 || el . getBoundingClientRect ) childRect = el . getBoundingClientRect ( ) ;
else if ( el . nodeType === 3 && el . data . trim ( ) ) childRect = getTextRect ( el ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
if ( childRect ) mergeRects ( rect , childRect ) ;
2026-02-11 16:20:26 +00:00
}
return rect ;
}
function mergeRects ( a , b ) {
2026-02-16 13:45:45 +00:00
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 ;
2026-02-11 16:20:26 +00:00
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 ;
2026-02-16 13:45:45 +00:00
if ( typeof window === "undefined" ) return DEFAULT _RECT ;
if ( isFragment ( instance ) ) return getFragmentRect ( instance . subTree ) ;
else if ( el ? . nodeType === 1 ) return el ? . getBoundingClientRect ( ) ;
else if ( instance . subTree . component ) return getComponentBoundingRect ( instance . subTree . component ) ;
else return DEFAULT _RECT ;
2026-02-11 16:20:26 +00:00
}
function getRootElementsFromComponentInstance ( instance ) {
2026-02-16 13:45:45 +00:00
if ( isFragment ( instance ) ) return getFragmentRootElements ( instance . subTree ) ;
if ( ! instance . subTree ) return [ ] ;
2026-02-11 16:20:26 +00:00
return [ instance . subTree . el ] ;
}
function getFragmentRootElements ( vnode ) {
2026-02-16 13:45:45 +00:00
if ( ! vnode . children ) return [ ] ;
2026-02-11 16:20:26 +00:00
const list = [ ] ;
vnode . children . forEach ( ( childVnode ) => {
2026-02-16 13:45:45 +00:00
if ( childVnode . component ) list . push ( ... getRootElementsFromComponentInstance ( childVnode . component ) ) ;
else if ( childVnode ? . el ) list . push ( childVnode . el ) ;
2026-02-11 16:20:26 +00:00
} ) ;
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 ) {
const containerEl = document . createElement ( "div" ) ;
2026-02-16 13:45:45 +00:00
containerEl . id = options . elementId ? ? CONTAINER _ELEMENT _ID ;
2026-02-11 16:20:26 +00:00
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 )
} ) ;
2026-02-16 13:45:45 +00:00
Object . assign ( cardEl . style , { top : options . bounds . top < 35 ? 0 : "-35px" } ) ;
2026-02-11 16:20:26 +00:00
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 ) ;
2026-02-16 13:45:45 +00:00
if ( ! bounds . width && ! bounds . height ) return ;
2026-02-11 16:20:26 +00:00
const name = getInstanceName ( instance ) ;
2026-02-16 13:45:45 +00:00
getContainerElement ( ) ? update ( {
bounds ,
name
} ) : create ( {
bounds ,
name
} ) ;
2026-02-11 16:20:26 +00:00
}
function unhighlight ( ) {
const el = getContainerElement ( ) ;
2026-02-16 13:45:45 +00:00
if ( el ) el . style . display = "none" ;
2026-02-11 16:20:26 +00:00
}
var inspectInstance = null ;
function inspectFn ( e ) {
2026-02-16 13:45:45 +00:00
const target$1 = e . target ;
if ( target$1 ) {
const instance = target$1 . _ _vueParentComponent ;
2026-02-11 16:20:26 +00:00
if ( instance ) {
inspectInstance = instance ;
2026-02-16 13:45:45 +00:00
if ( instance . vnode . el ) {
2026-02-11 16:20:26 +00:00
const bounds = getComponentBoundingRect ( instance ) ;
const name = getInstanceName ( instance ) ;
2026-02-16 13:45:45 +00:00
getContainerElement ( ) ? update ( {
bounds ,
name
} ) : create ( {
bounds ,
name
} ) ;
2026-02-11 16:20:26 +00:00
}
}
}
}
function selectComponentFn ( e , cb ) {
e . preventDefault ( ) ;
e . stopPropagation ( ) ;
2026-02-16 13:45:45 +00:00
if ( inspectInstance ) cb ( getUniqueComponentId ( inspectInstance ) ) ;
2026-02-11 16:20:26 +00:00
}
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 ( ) ;
2026-02-16 13:45:45 +00:00
if ( el ) el . style . display = "none" ;
2026-02-11 16:20:26 +00:00
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 ) ;
2026-02-16 13:45:45 +00:00
if ( typeof el . scrollIntoView === "function" ) el . scrollIntoView ( { behavior : "smooth" } ) ;
else {
2026-02-11 16:20:26 +00:00
const bounds = getComponentBoundingRect ( instance ) ;
const scrollTarget = document . createElement ( "div" ) ;
const styles = {
... getStyles ( bounds ) ,
position : "absolute"
} ;
Object . assign ( scrollTarget . style , styles ) ;
document . body . appendChild ( scrollTarget ) ;
2026-02-16 13:45:45 +00:00
scrollTarget . scrollIntoView ( { behavior : "smooth" } ) ;
2026-02-11 16:20:26 +00:00
setTimeout ( ( ) => {
document . body . removeChild ( scrollTarget ) ;
} , 2e3 ) ;
}
setTimeout ( ( ) => {
const bounds = getComponentBoundingRect ( instance ) ;
if ( bounds . width || bounds . height ) {
const name = getInstanceName ( instance ) ;
2026-02-16 13:45:45 +00:00
const el$1 = getContainerElement ( ) ;
el$1 ? update ( {
... options ,
name ,
bounds
} ) : create ( {
... options ,
name ,
bounds
} ) ;
2026-02-11 16:20:26 +00:00
setTimeout ( ( ) => {
2026-02-16 13:45:45 +00:00
if ( el$1 ) el$1 . style . display = "none" ;
2026-02-11 16:20:26 +00:00
} , 1500 ) ;
}
} , 1200 ) ;
}
}
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _COMPONENT _INSPECTOR _ENABLED _ _ ? ? = true ;
2026-02-11 16:20:26 +00:00
function waitForInspectorInit ( cb ) {
let total = 0 ;
const timer = setInterval ( ( ) => {
if ( target . _ _VUE _INSPECTOR _ _ ) {
clearInterval ( timer ) ;
total += 30 ;
cb ( ) ;
}
2026-02-16 13:45:45 +00:00
if ( total >= 5e3 ) clearInterval ( timer ) ;
2026-02-11 16:20:26 +00:00
} , 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 _ _ ) ;
}
2026-02-16 13:45:45 +00:00
if ( ! target . _ _VUE _INSPECTOR _ _ ) waitForInspectorInit ( ( ) => {
2026-02-11 16:20:26 +00:00
setup ( ) ;
2026-02-16 13:45:45 +00:00
} ) ;
else setup ( ) ;
2026-02-11 16:20:26 +00:00
} ) ;
}
2026-02-16 13:45:45 +00:00
var ReactiveFlags = ( function ( ReactiveFlags$1 ) {
ReactiveFlags$1 [ "SKIP" ] = "__v_skip" ;
ReactiveFlags$1 [ "IS_REACTIVE" ] = "__v_isReactive" ;
ReactiveFlags$1 [ "IS_READONLY" ] = "__v_isReadonly" ;
ReactiveFlags$1 [ "IS_SHALLOW" ] = "__v_isShallow" ;
ReactiveFlags$1 [ "RAW" ] = "__v_raw" ;
return ReactiveFlags$1 ;
} ) ( { } ) ;
2026-02-11 16:20:26 +00:00
function isReadonly ( value ) {
2026-02-16 13:45:45 +00:00
return ! ! ( value && value [ ReactiveFlags . IS _READONLY ] ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
function isReactive$1 ( value ) {
if ( isReadonly ( value ) ) return isReactive$1 ( value [ ReactiveFlags . RAW ] ) ;
return ! ! ( value && value [ ReactiveFlags . IS _REACTIVE ] ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
function isRef$1 ( r ) {
2026-02-11 16:20:26 +00:00
return ! ! ( r && r . _ _v _isRef === true ) ;
}
2026-02-16 13:45:45 +00:00
function toRaw$1 ( observed ) {
const raw = observed && observed [ ReactiveFlags . RAW ] ;
return raw ? toRaw$1 ( raw ) : observed ;
2026-02-11 16:20:26 +00:00
}
var StateEditor = class {
constructor ( ) {
this . refEditor = new RefStateEditor ( ) ;
}
set ( object , path , value , cb ) {
const sections = Array . isArray ( path ) ? path : path . split ( "." ) ;
while ( sections . length > 1 ) {
const section = sections . shift ( ) ;
2026-02-16 13:45:45 +00:00
if ( object instanceof Map ) object = object . get ( section ) ;
else if ( object instanceof Set ) object = Array . from ( object . values ( ) ) [ section ] ;
2026-02-11 16:20:26 +00:00
else object = object [ section ] ;
2026-02-16 13:45:45 +00:00
if ( this . refEditor . isRef ( object ) ) object = this . refEditor . get ( object ) ;
2026-02-11 16:20:26 +00:00
}
const field = sections [ 0 ] ;
const item = this . refEditor . get ( object ) [ field ] ;
2026-02-16 13:45:45 +00:00
if ( cb ) cb ( object , field , value ) ;
else if ( this . refEditor . isRef ( item ) ) this . refEditor . set ( item , value ) ;
else object [ field ] = value ;
2026-02-11 16:20:26 +00:00
}
get ( object , path ) {
const sections = Array . isArray ( path ) ? path : path . split ( "." ) ;
for ( let i = 0 ; i < sections . length ; i ++ ) {
2026-02-16 13:45:45 +00:00
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 ;
2026-02-11 16:20:26 +00:00
}
return object ;
}
has ( object , path , parent = false ) {
2026-02-16 13:45:45 +00:00
if ( typeof object === "undefined" ) return false ;
2026-02-11 16:20:26 +00:00
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 ] ;
2026-02-16 13:45:45 +00:00
if ( this . refEditor . isRef ( object ) ) object = this . refEditor . get ( object ) ;
2026-02-11 16:20:26 +00:00
}
return object != null && Object . prototype . hasOwnProperty . call ( object , sections [ 0 ] ) ;
}
createDefaultSetCallback ( state ) {
return ( object , field , value ) => {
2026-02-16 13:45:45 +00:00
if ( state . remove || state . newKey ) if ( Array . isArray ( object ) ) object . splice ( field , 1 ) ;
else if ( toRaw$1 ( object ) instanceof Map ) object . delete ( field ) ;
else if ( toRaw$1 ( object ) instanceof Set ) object . delete ( Array . from ( object . values ( ) ) [ field ] ) ;
else Reflect . deleteProperty ( object , field ) ;
2026-02-11 16:20:26 +00:00
if ( ! state . remove ) {
2026-02-16 13:45:45 +00:00
const target$1 = object [ state . newKey || field ] ;
if ( this . refEditor . isRef ( target$1 ) ) this . refEditor . set ( target$1 , value ) ;
else if ( toRaw$1 ( object ) instanceof Map ) object . set ( state . newKey || field , value ) ;
else if ( toRaw$1 ( object ) instanceof Set ) object . add ( value ) ;
else object [ state . newKey || field ] = value ;
2024-01-05 12:14:38 +00:00
}
} ;
2026-02-11 16:20:26 +00:00
}
} ;
var RefStateEditor = class {
set ( ref , value ) {
2026-02-16 13:45:45 +00:00
if ( isRef$1 ( ref ) ) ref . value = value ;
else {
2026-02-11 16:20:26 +00:00
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 ) {
2026-02-16 13:45:45 +00:00
const previousKeysSet$1 = new Set ( ref . keys ( ) ) ;
2026-02-11 16:20:26 +00:00
currentKeys . forEach ( ( key ) => {
ref . set ( key , Reflect . get ( value , key ) ) ;
2026-02-16 13:45:45 +00:00
previousKeysSet$1 . delete ( key ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
previousKeysSet$1 . forEach ( ( key ) => ref . delete ( key ) ) ;
2026-02-11 16:20:26 +00:00
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 ) {
2026-02-16 13:45:45 +00:00
return isRef$1 ( ref ) ? ref . value : ref ;
2026-02-11 16:20:26 +00:00
}
isRef ( ref ) {
2026-02-16 13:45:45 +00:00
return isRef$1 ( ref ) || isReactive$1 ( ref ) ;
2026-02-11 16:20:26 +00:00
}
} ;
var stateEditor = new StateEditor ( ) ;
var TIMELINE _LAYERS _STATE _STORAGE _ID = "__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS_STATE__" ;
function getTimelineLayersStateFromStorage ( ) {
2026-02-16 13:45:45 +00:00
if ( typeof window === "undefined" || ! isBrowser || typeof localStorage === "undefined" || localStorage === null ) return {
recordingState : false ,
mouseEventEnabled : false ,
keyboardEventEnabled : false ,
componentEventEnabled : false ,
performanceEventEnabled : false ,
selected : ""
} ;
2026-02-11 16:20:26 +00:00
const state = typeof localStorage . getItem !== "undefined" ? localStorage . getItem ( TIMELINE _LAYERS _STATE _STORAGE _ID ) : null ;
return state ? JSON . parse ( state ) : {
recordingState : false ,
mouseEventEnabled : false ,
keyboardEventEnabled : false ,
componentEventEnabled : false ,
performanceEventEnabled : false ,
selected : ""
} ;
}
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _KIT _TIMELINE _LAYERS ? ? = [ ] ;
var devtoolsTimelineLayers = new Proxy ( target . _ _VUE _DEVTOOLS _KIT _TIMELINE _LAYERS , { get ( target$1 , prop , receiver ) {
return Reflect . get ( target$1 , prop , receiver ) ;
} } ) ;
2026-02-11 16:20:26 +00:00
function addTimelineLayer ( options , descriptor ) {
devtoolsState . timelineLayersState [ descriptor . id ] = false ;
devtoolsTimelineLayers . push ( {
... options ,
descriptorId : descriptor . id ,
appRecord : getAppRecord ( descriptor . app )
} ) ;
}
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _KIT _INSPECTOR _ _ ? ? = [ ] ;
var devtoolsInspector = new Proxy ( target . _ _VUE _DEVTOOLS _KIT _INSPECTOR _ _ , { get ( target$1 , prop , receiver ) {
return Reflect . get ( target$1 , prop , receiver ) ;
} } ) ;
2026-02-11 16:20:26 +00:00
var callInspectorUpdatedHook = debounce ( ( ) => {
2026-02-16 13:45:45 +00:00
devtoolsContext . hooks . callHook ( DevToolsMessagingHookKeys . SEND _INSPECTOR _TO _CLIENT , getActiveInspectors ( ) ) ;
2026-02-11 16:20:26 +00:00
} ) ;
function addInspector ( inspector , descriptor ) {
devtoolsInspector . push ( {
options : inspector ,
descriptor ,
2026-02-16 13:45:45 +00:00
treeFilterPlaceholder : inspector . treeFilterPlaceholder ? ? "Search tree..." ,
stateFilterPlaceholder : inspector . stateFilterPlaceholder ? ? "Search state..." ,
2026-02-11 16:20:26 +00:00
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 ) => {
const descriptor = inspector . descriptor ;
const options = inspector . options ;
return {
id : options . id ,
label : options . label ,
logo : descriptor . logo ,
2026-02-16 13:45:45 +00:00
icon : ` custom-ic-baseline- ${ options ? . icon ? . replace ( /_/g , "-" ) } ` ,
2026-02-11 16:20:26 +00:00
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 ) ) ;
}
2026-02-16 13:45:45 +00:00
var DevToolsV6PluginAPIHookKeys = ( function ( DevToolsV6PluginAPIHookKeys$1 ) {
DevToolsV6PluginAPIHookKeys$1 [ "VISIT_COMPONENT_TREE" ] = "visitComponentTree" ;
DevToolsV6PluginAPIHookKeys$1 [ "INSPECT_COMPONENT" ] = "inspectComponent" ;
DevToolsV6PluginAPIHookKeys$1 [ "EDIT_COMPONENT_STATE" ] = "editComponentState" ;
DevToolsV6PluginAPIHookKeys$1 [ "GET_INSPECTOR_TREE" ] = "getInspectorTree" ;
DevToolsV6PluginAPIHookKeys$1 [ "GET_INSPECTOR_STATE" ] = "getInspectorState" ;
DevToolsV6PluginAPIHookKeys$1 [ "EDIT_INSPECTOR_STATE" ] = "editInspectorState" ;
DevToolsV6PluginAPIHookKeys$1 [ "INSPECT_TIMELINE_EVENT" ] = "inspectTimelineEvent" ;
DevToolsV6PluginAPIHookKeys$1 [ "TIMELINE_CLEARED" ] = "timelineCleared" ;
DevToolsV6PluginAPIHookKeys$1 [ "SET_PLUGIN_SETTINGS" ] = "setPluginSettings" ;
return DevToolsV6PluginAPIHookKeys$1 ;
} ) ( { } ) ;
var DevToolsContextHookKeys = ( function ( DevToolsContextHookKeys$1 ) {
DevToolsContextHookKeys$1 [ "ADD_INSPECTOR" ] = "addInspector" ;
DevToolsContextHookKeys$1 [ "SEND_INSPECTOR_TREE" ] = "sendInspectorTree" ;
DevToolsContextHookKeys$1 [ "SEND_INSPECTOR_STATE" ] = "sendInspectorState" ;
DevToolsContextHookKeys$1 [ "CUSTOM_INSPECTOR_SELECT_NODE" ] = "customInspectorSelectNode" ;
DevToolsContextHookKeys$1 [ "TIMELINE_LAYER_ADDED" ] = "timelineLayerAdded" ;
DevToolsContextHookKeys$1 [ "TIMELINE_EVENT_ADDED" ] = "timelineEventAdded" ;
DevToolsContextHookKeys$1 [ "GET_COMPONENT_INSTANCES" ] = "getComponentInstances" ;
DevToolsContextHookKeys$1 [ "GET_COMPONENT_BOUNDS" ] = "getComponentBounds" ;
DevToolsContextHookKeys$1 [ "GET_COMPONENT_NAME" ] = "getComponentName" ;
DevToolsContextHookKeys$1 [ "COMPONENT_HIGHLIGHT" ] = "componentHighlight" ;
DevToolsContextHookKeys$1 [ "COMPONENT_UNHIGHLIGHT" ] = "componentUnhighlight" ;
return DevToolsContextHookKeys$1 ;
} ) ( { } ) ;
var DevToolsMessagingHookKeys = ( function ( DevToolsMessagingHookKeys$1 ) {
DevToolsMessagingHookKeys$1 [ "SEND_INSPECTOR_TREE_TO_CLIENT" ] = "sendInspectorTreeToClient" ;
DevToolsMessagingHookKeys$1 [ "SEND_INSPECTOR_STATE_TO_CLIENT" ] = "sendInspectorStateToClient" ;
DevToolsMessagingHookKeys$1 [ "SEND_TIMELINE_EVENT_TO_CLIENT" ] = "sendTimelineEventToClient" ;
DevToolsMessagingHookKeys$1 [ "SEND_INSPECTOR_TO_CLIENT" ] = "sendInspectorToClient" ;
DevToolsMessagingHookKeys$1 [ "SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT" ] = "sendActiveAppUpdatedToClient" ;
DevToolsMessagingHookKeys$1 [ "DEVTOOLS_STATE_UPDATED" ] = "devtoolsStateUpdated" ;
DevToolsMessagingHookKeys$1 [ "DEVTOOLS_CONNECTED_UPDATED" ] = "devtoolsConnectedUpdated" ;
DevToolsMessagingHookKeys$1 [ "ROUTER_INFO_UPDATED" ] = "routerInfoUpdated" ;
return DevToolsMessagingHookKeys$1 ;
} ) ( { } ) ;
2026-02-11 16:20:26 +00:00
function createDevToolsCtxHooks ( ) {
2026-02-16 13:45:45 +00:00
const hooks$1 = createHooks ( ) ;
hooks$1 . hook ( DevToolsContextHookKeys . ADD _INSPECTOR , ( { inspector , plugin } ) => {
2026-02-11 16:20:26 +00:00
addInspector ( inspector , plugin . descriptor ) ;
} ) ;
const debounceSendInspectorTree = debounce ( async ( { inspectorId , plugin } ) => {
2026-02-16 13:45:45 +00:00
if ( ! inspectorId || ! plugin ? . descriptor ? . app || devtoolsState . highPerfModeEnabled ) return ;
2026-02-11 16:20:26 +00:00
const inspector = getInspector ( inspectorId , plugin . descriptor . app ) ;
const _payload = {
app : plugin . descriptor . app ,
inspectorId ,
2026-02-16 13:45:45 +00:00
filter : inspector ? . treeFilter || "" ,
2026-02-11 16:20:26 +00:00
rootNodes : [ ]
} ;
await new Promise ( ( resolve ) => {
2026-02-16 13:45:45 +00:00
hooks$1 . callHookWith ( async ( callbacks ) => {
await Promise . all ( callbacks . map ( ( cb ) => cb ( _payload ) ) ) ;
resolve ( ) ;
} , DevToolsV6PluginAPIHookKeys . GET _INSPECTOR _TREE ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . callHookWith ( async ( callbacks ) => {
await Promise . all ( callbacks . map ( ( cb ) => cb ( {
inspectorId ,
rootNodes : _payload . rootNodes
} ) ) ) ;
} , DevToolsMessagingHookKeys . SEND _INSPECTOR _TREE _TO _CLIENT ) ;
2026-02-11 16:20:26 +00:00
} , 120 ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . SEND _INSPECTOR _TREE , debounceSendInspectorTree ) ;
2026-02-11 16:20:26 +00:00
const debounceSendInspectorState = debounce ( async ( { inspectorId , plugin } ) => {
2026-02-16 13:45:45 +00:00
if ( ! inspectorId || ! plugin ? . descriptor ? . app || devtoolsState . highPerfModeEnabled ) return ;
2026-02-11 16:20:26 +00:00
const inspector = getInspector ( inspectorId , plugin . descriptor . app ) ;
const _payload = {
app : plugin . descriptor . app ,
inspectorId ,
2026-02-16 13:45:45 +00:00
nodeId : inspector ? . selectedNodeId || "" ,
2026-02-11 16:20:26 +00:00
state : null
} ;
2026-02-16 13:45:45 +00:00
const ctx = { currentTab : ` custom-inspector: ${ inspectorId } ` } ;
if ( _payload . nodeId ) await new Promise ( ( resolve ) => {
hooks$1 . callHookWith ( async ( callbacks ) => {
await Promise . all ( callbacks . map ( ( cb ) => cb ( _payload , ctx ) ) ) ;
resolve ( ) ;
} , DevToolsV6PluginAPIHookKeys . GET _INSPECTOR _STATE ) ;
} ) ;
hooks$1 . callHookWith ( async ( callbacks ) => {
await Promise . all ( callbacks . map ( ( cb ) => cb ( {
inspectorId ,
nodeId : _payload . nodeId ,
state : _payload . state
} ) ) ) ;
} , DevToolsMessagingHookKeys . SEND _INSPECTOR _STATE _TO _CLIENT ) ;
2026-02-11 16:20:26 +00:00
} , 120 ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . SEND _INSPECTOR _STATE , debounceSendInspectorState ) ;
hooks$1 . hook ( DevToolsContextHookKeys . CUSTOM _INSPECTOR _SELECT _NODE , ( { inspectorId , nodeId , plugin } ) => {
2026-02-11 16:20:26 +00:00
const inspector = getInspector ( inspectorId , plugin . descriptor . app ) ;
2026-02-16 13:45:45 +00:00
if ( ! inspector ) return ;
2026-02-11 16:20:26 +00:00
inspector . selectedNodeId = nodeId ;
} ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . TIMELINE _LAYER _ADDED , ( { options , plugin } ) => {
2026-02-11 16:20:26 +00:00
addTimelineLayer ( options , plugin . descriptor ) ;
} ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . TIMELINE _EVENT _ADDED , ( { options , plugin } ) => {
if ( devtoolsState . highPerfModeEnabled || ! devtoolsState . timelineLayersState ? . [ plugin . descriptor . id ] && ! [
"performance" ,
"component-event" ,
"keyboard" ,
"mouse"
] . includes ( options . layerId ) ) return ;
hooks$1 . callHookWith ( async ( callbacks ) => {
await Promise . all ( callbacks . map ( ( cb ) => cb ( options ) ) ) ;
} , DevToolsMessagingHookKeys . SEND _TIMELINE _EVENT _TO _CLIENT ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . GET _COMPONENT _INSTANCES , async ( { app } ) => {
2026-02-11 16:20:26 +00:00
const appRecord = app . _ _VUE _DEVTOOLS _NEXT _APP _RECORD _ _ ;
2026-02-16 13:45:45 +00:00
if ( ! appRecord ) return null ;
2026-02-11 16:20:26 +00:00
const appId = appRecord . id . toString ( ) ;
2026-02-16 13:45:45 +00:00
return [ ... appRecord . instanceMap ] . filter ( ( [ key ] ) => key . split ( ":" ) [ 0 ] === appId ) . map ( ( [ , instance ] ) => instance ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . GET _COMPONENT _BOUNDS , async ( { instance } ) => {
return getComponentBoundingRect ( instance ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . GET _COMPONENT _NAME , ( { instance } ) => {
return getInstanceName ( instance ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . COMPONENT _HIGHLIGHT , ( { uid } ) => {
2026-02-11 16:20:26 +00:00
const instance = activeAppRecord . value . instanceMap . get ( uid ) ;
2026-02-16 13:45:45 +00:00
if ( instance ) highlight ( instance ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . hook ( DevToolsContextHookKeys . COMPONENT _UNHIGHLIGHT , ( ) => {
2026-02-11 16:20:26 +00:00
unhighlight ( ) ;
} ) ;
2026-02-16 13:45:45 +00:00
return hooks$1 ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _KIT _APP _RECORDS _ _ ? ? = [ ] ;
target . _ _VUE _DEVTOOLS _KIT _ACTIVE _APP _RECORD _ _ ? ? = { } ;
target . _ _VUE _DEVTOOLS _KIT _ACTIVE _APP _RECORD _ID _ _ ? ? = "" ;
target . _ _VUE _DEVTOOLS _KIT _CUSTOM _TABS _ _ ? ? = [ ] ;
target . _ _VUE _DEVTOOLS _KIT _CUSTOM _COMMANDS _ _ ? ? = [ ] ;
2026-02-11 16:20:26 +00:00
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 ( )
} ;
}
2026-02-16 13:45:45 +00:00
target [ STATE _KEY ] ? ? = initStateFactory ( ) ;
2026-02-11 16:20:26 +00:00
var callStateUpdatedHook = debounce ( ( state ) => {
2026-02-16 13:45:45 +00:00
devtoolsContext . hooks . callHook ( DevToolsMessagingHookKeys . DEVTOOLS _STATE _UPDATED , { state } ) ;
2026-02-11 16:20:26 +00:00
} ) ;
var callConnectedUpdatedHook = debounce ( ( state , oldState ) => {
2026-02-16 13:45:45 +00:00
devtoolsContext . hooks . callHook ( DevToolsMessagingHookKeys . DEVTOOLS _CONNECTED _UPDATED , {
state ,
oldState
} ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
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 ] ;
} } ) ;
2026-02-11 16:20:26 +00:00
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 ] , {
2026-02-16 13:45:45 +00:00
get ( target$1 , 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 _ _ ;
2026-02-11 16:20:26 +00:00
return target [ STATE _KEY ] [ property ] ;
} ,
2026-02-16 13:45:45 +00:00
deleteProperty ( target$1 , property ) {
delete target$1 [ property ] ;
2026-02-11 16:20:26 +00:00
return true ;
} ,
2026-02-16 13:45:45 +00:00
set ( target$1 , property , value ) {
( { ... target [ STATE _KEY ] } ) ;
target$1 [ property ] = value ;
2026-02-11 16:20:26 +00:00
target [ STATE _KEY ] [ property ] = value ;
return true ;
}
} ) ;
function onDevToolsConnected ( fn ) {
return new Promise ( ( resolve ) => {
if ( devtoolsState . connected ) {
fn ( ) ;
resolve ( ) ;
}
2026-02-16 13:45:45 +00:00
devtoolsContext . hooks . hook ( DevToolsMessagingHookKeys . DEVTOOLS _CONNECTED _UPDATED , ( { state } ) => {
2026-02-11 16:20:26 +00:00
if ( state . connected ) {
fn ( ) ;
resolve ( ) ;
}
} ) ;
} ) ;
}
var resolveIcon = ( icon ) => {
2026-02-16 13:45:45 +00:00
if ( ! icon ) return ;
if ( icon . startsWith ( "baseline-" ) ) return ` custom-ic- ${ icon } ` ;
if ( icon . startsWith ( "i-" ) || isUrlString ( icon ) ) return icon ;
2026-02-11 16:20:26 +00:00
return ` custom-ic-baseline- ${ icon } ` ;
} ;
function addCustomTab ( tab ) {
const tabs = target . _ _VUE _DEVTOOLS _KIT _CUSTOM _TABS _ _ ;
2026-02-16 13:45:45 +00:00
if ( tabs . some ( ( t ) => t . name === tab . name ) ) return ;
2026-02-11 16:20:26 +00:00
tabs . push ( {
... tab ,
icon : resolveIcon ( tab . icon )
} ) ;
updateAllStates ( ) ;
}
function addCustomCommand ( action ) {
const commands = target . _ _VUE _DEVTOOLS _KIT _CUSTOM _COMMANDS _ _ ;
2026-02-16 13:45:45 +00:00
if ( commands . some ( ( t ) => t . id === action . id ) ) return ;
2026-02-11 16:20:26 +00:00
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 ) ;
2026-02-16 13:45:45 +00:00
if ( index === - 1 ) return ;
2026-02-11 16:20:26 +00:00
commands . splice ( index , 1 ) ;
updateAllStates ( ) ;
}
function openInEditor ( options = { } ) {
const { file , host , baseUrl = window . location . origin , line = 0 , column = 0 } = options ;
if ( file ) {
if ( host === "chrome-extension" ) {
const fileName = file . replace ( /\\/g , "\\\\" ) ;
2026-02-16 13:45:45 +00:00
const _baseUrl = window . VUE _DEVTOOLS _CONFIG ? . openInEditorHost ? ? "/" ;
2026-02-11 16:20:26 +00:00
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" ) ;
2024-01-05 12:14:38 +00:00
}
} ) ;
2026-02-11 16:20:26 +00:00
} else if ( devtoolsState . vitePluginDetected ) {
2026-02-16 13:45:45 +00:00
const _baseUrl = target . _ _VUE _DEVTOOLS _OPEN _IN _EDITOR _BASE _URL _ _ ? ? baseUrl ;
2026-02-11 16:20:26 +00:00
target . _ _VUE _INSPECTOR _ _ . openInEditor ( _baseUrl , file , line , column ) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
}
}
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _KIT _PLUGIN _BUFFER _ _ ? ? = [ ] ;
var devtoolsPluginBuffer = new Proxy ( target . _ _VUE _DEVTOOLS _KIT _PLUGIN _BUFFER _ _ , { get ( target$1 , prop , receiver ) {
return Reflect . get ( target$1 , prop , receiver ) ;
} } ) ;
2026-02-11 16:20:26 +00:00
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 ) {
2026-02-16 13:45:45 +00:00
return ( devtoolsPluginBuffer . find ( ( item ) => item [ 0 ] . id === pluginId && ! ! item [ 0 ] ? . settings ) ? . [ 0 ] ? ? null ) ? . settings ? ? null ;
2026-02-11 16:20:26 +00:00
}
function getPluginSettings ( pluginId , fallbackValue ) {
const localKey = getPluginLocalKey ( pluginId ) ;
if ( localKey ) {
const localSettings = localStorage . getItem ( localKey ) ;
2026-02-16 13:45:45 +00:00
if ( localSettings ) return JSON . parse ( localSettings ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
if ( pluginId ) return _getSettings ( ( devtoolsPluginBuffer . find ( ( item ) => item [ 0 ] . id === pluginId ) ? . [ 0 ] ? ? null ) ? . settings ? ? { } ) ;
2026-02-11 16:20:26 +00:00
return _getSettings ( fallbackValue ) ;
}
function initPluginSettings ( pluginId , settings ) {
const localKey = getPluginLocalKey ( pluginId ) ;
2026-02-16 13:45:45 +00:00
if ( ! localStorage . getItem ( localKey ) ) localStorage . setItem ( localKey , JSON . stringify ( _getSettings ( settings ) ) ) ;
2026-02-11 16:20:26 +00:00
}
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 ) ) ;
2026-02-16 13:45:45 +00:00
devtoolsContext . hooks . callHookWith ( ( callbacks ) => {
callbacks . forEach ( ( cb ) => cb ( {
pluginId ,
key ,
oldValue : parsedLocalSettings [ key ] ,
newValue : value ,
settings : updated
} ) ) ;
} , DevToolsV6PluginAPIHookKeys . SET _PLUGIN _SETTINGS ) ;
}
var DevToolsHooks = ( function ( DevToolsHooks$1 ) {
DevToolsHooks$1 [ "APP_INIT" ] = "app:init" ;
DevToolsHooks$1 [ "APP_UNMOUNT" ] = "app:unmount" ;
DevToolsHooks$1 [ "COMPONENT_UPDATED" ] = "component:updated" ;
DevToolsHooks$1 [ "COMPONENT_ADDED" ] = "component:added" ;
DevToolsHooks$1 [ "COMPONENT_REMOVED" ] = "component:removed" ;
DevToolsHooks$1 [ "COMPONENT_EMIT" ] = "component:emit" ;
DevToolsHooks$1 [ "PERFORMANCE_START" ] = "perf:start" ;
DevToolsHooks$1 [ "PERFORMANCE_END" ] = "perf:end" ;
DevToolsHooks$1 [ "ADD_ROUTE" ] = "router:add-route" ;
DevToolsHooks$1 [ "REMOVE_ROUTE" ] = "router:remove-route" ;
DevToolsHooks$1 [ "RENDER_TRACKED" ] = "render:tracked" ;
DevToolsHooks$1 [ "RENDER_TRIGGERED" ] = "render:triggered" ;
DevToolsHooks$1 [ "APP_CONNECTED" ] = "app:connected" ;
DevToolsHooks$1 [ "SETUP_DEVTOOLS_PLUGIN" ] = "devtools-plugin:setup" ;
return DevToolsHooks$1 ;
} ) ( { } ) ;
var devtoolsHooks = target . _ _VUE _DEVTOOLS _HOOK ? ? = createHooks ( ) ;
2026-02-11 16:20:26 +00:00
var on = {
vueAppInit ( fn ) {
2026-02-16 13:45:45 +00:00
devtoolsHooks . hook ( DevToolsHooks . APP _INIT , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
vueAppUnmount ( fn ) {
2026-02-16 13:45:45 +00:00
devtoolsHooks . hook ( DevToolsHooks . APP _UNMOUNT , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
vueAppConnected ( fn ) {
2026-02-16 13:45:45 +00:00
devtoolsHooks . hook ( DevToolsHooks . APP _CONNECTED , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
componentAdded ( fn ) {
2026-02-16 13:45:45 +00:00
return devtoolsHooks . hook ( DevToolsHooks . COMPONENT _ADDED , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
componentEmit ( fn ) {
2026-02-16 13:45:45 +00:00
return devtoolsHooks . hook ( DevToolsHooks . COMPONENT _EMIT , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
componentUpdated ( fn ) {
2026-02-16 13:45:45 +00:00
return devtoolsHooks . hook ( DevToolsHooks . COMPONENT _UPDATED , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
componentRemoved ( fn ) {
2026-02-16 13:45:45 +00:00
return devtoolsHooks . hook ( DevToolsHooks . COMPONENT _REMOVED , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
setupDevtoolsPlugin ( fn ) {
2026-02-16 13:45:45 +00:00
devtoolsHooks . hook ( DevToolsHooks . SETUP _DEVTOOLS _PLUGIN , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
perfStart ( fn ) {
2026-02-16 13:45:45 +00:00
return devtoolsHooks . hook ( DevToolsHooks . PERFORMANCE _START , fn ) ;
2026-02-11 16:20:26 +00:00
} ,
perfEnd ( fn ) {
2026-02-16 13:45:45 +00:00
return devtoolsHooks . hook ( DevToolsHooks . PERFORMANCE _END , fn ) ;
2026-02-11 16:20:26 +00:00
}
} ;
var hook = {
on ,
setupDevToolsPlugin ( pluginDescriptor , setupFn ) {
2026-02-16 13:45:45 +00:00
return devtoolsHooks . callHook ( DevToolsHooks . SETUP _DEVTOOLS _PLUGIN , pluginDescriptor , setupFn ) ;
2026-02-11 16:20:26 +00:00
}
} ;
var DevToolsV6PluginAPI = class {
constructor ( { plugin , ctx } ) {
this . hooks = ctx . hooks ;
this . plugin = plugin ;
}
get on ( ) {
return {
visitComponentTree : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . VISIT _COMPONENT _TREE , handler ) ;
2026-02-11 16:20:26 +00:00
} ,
inspectComponent : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . INSPECT _COMPONENT , handler ) ;
2026-02-11 16:20:26 +00:00
} ,
editComponentState : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . EDIT _COMPONENT _STATE , handler ) ;
2026-02-11 16:20:26 +00:00
} ,
getInspectorTree : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . GET _INSPECTOR _TREE , handler ) ;
2026-02-11 16:20:26 +00:00
} ,
getInspectorState : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . GET _INSPECTOR _STATE , handler ) ;
2026-02-11 16:20:26 +00:00
} ,
editInspectorState : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . EDIT _INSPECTOR _STATE , handler ) ;
2026-02-11 16:20:26 +00:00
} ,
inspectTimelineEvent : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . INSPECT _TIMELINE _EVENT , handler ) ;
2026-02-11 16:20:26 +00:00
} ,
timelineCleared : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . TIMELINE _CLEARED , handler ) ;
2026-02-11 16:20:26 +00:00
} ,
setPluginSettings : ( handler ) => {
2026-02-16 13:45:45 +00:00
this . hooks . hook ( DevToolsV6PluginAPIHookKeys . SET _PLUGIN _SETTINGS , handler ) ;
2026-02-11 16:20:26 +00:00
}
} ;
}
notifyComponentUpdate ( instance ) {
2026-02-16 13:45:45 +00:00
if ( devtoolsState . highPerfModeEnabled ) return ;
2026-02-11 16:20:26 +00:00
const inspector = getActiveInspectors ( ) . find ( ( i ) => i . packageName === this . plugin . descriptor . packageName ) ;
2026-02-16 13:45:45 +00:00
if ( inspector ? . id ) {
2026-02-11 16:20:26 +00:00
if ( instance ) {
const args = [
instance . appContext . app ,
instance . uid ,
2026-02-16 13:45:45 +00:00
instance . parent ? . uid ,
2026-02-11 16:20:26 +00:00
instance
] ;
2026-02-16 13:45:45 +00:00
devtoolsHooks . callHook ( DevToolsHooks . COMPONENT _UPDATED , ... args ) ;
} else devtoolsHooks . callHook ( DevToolsHooks . COMPONENT _UPDATED ) ;
this . hooks . callHook ( DevToolsContextHookKeys . SEND _INSPECTOR _STATE , {
inspectorId : inspector . id ,
plugin : this . plugin
} ) ;
2026-02-11 16:20:26 +00:00
}
}
addInspector ( options ) {
2026-02-16 13:45:45 +00:00
this . hooks . callHook ( DevToolsContextHookKeys . ADD _INSPECTOR , {
inspector : options ,
plugin : this . plugin
} ) ;
if ( this . plugin . descriptor . settings ) initPluginSettings ( options . id , this . plugin . descriptor . settings ) ;
2026-02-11 16:20:26 +00:00
}
sendInspectorTree ( inspectorId ) {
2026-02-16 13:45:45 +00:00
if ( devtoolsState . highPerfModeEnabled ) return ;
this . hooks . callHook ( DevToolsContextHookKeys . SEND _INSPECTOR _TREE , {
inspectorId ,
plugin : this . plugin
} ) ;
2026-02-11 16:20:26 +00:00
}
sendInspectorState ( inspectorId ) {
2026-02-16 13:45:45 +00:00
if ( devtoolsState . highPerfModeEnabled ) return ;
this . hooks . callHook ( DevToolsContextHookKeys . SEND _INSPECTOR _STATE , {
inspectorId ,
plugin : this . plugin
} ) ;
2026-02-11 16:20:26 +00:00
}
selectInspectorNode ( inspectorId , nodeId ) {
2026-02-16 13:45:45 +00:00
this . hooks . callHook ( DevToolsContextHookKeys . CUSTOM _INSPECTOR _SELECT _NODE , {
inspectorId ,
nodeId ,
plugin : this . plugin
} ) ;
2026-02-11 16:20:26 +00:00
}
visitComponentTree ( payload ) {
2026-02-16 13:45:45 +00:00
return this . hooks . callHook ( DevToolsV6PluginAPIHookKeys . VISIT _COMPONENT _TREE , payload ) ;
2026-02-11 16:20:26 +00:00
}
now ( ) {
2026-02-16 13:45:45 +00:00
if ( devtoolsState . highPerfModeEnabled ) return 0 ;
2026-02-11 16:20:26 +00:00
return Date . now ( ) ;
}
addTimelineLayer ( options ) {
2026-02-16 13:45:45 +00:00
this . hooks . callHook ( DevToolsContextHookKeys . TIMELINE _LAYER _ADDED , {
options ,
plugin : this . plugin
} ) ;
2026-02-11 16:20:26 +00:00
}
addTimelineEvent ( options ) {
2026-02-16 13:45:45 +00:00
if ( devtoolsState . highPerfModeEnabled ) return ;
this . hooks . callHook ( DevToolsContextHookKeys . TIMELINE _EVENT _ADDED , {
options ,
plugin : this . plugin
} ) ;
2026-02-11 16:20:26 +00:00
}
getSettings ( pluginId ) {
2026-02-16 13:45:45 +00:00
return getPluginSettings ( pluginId ? ? this . plugin . descriptor . id , this . plugin . descriptor . settings ) ;
2026-02-11 16:20:26 +00:00
}
getComponentInstances ( app ) {
2026-02-16 13:45:45 +00:00
return this . hooks . callHook ( DevToolsContextHookKeys . GET _COMPONENT _INSTANCES , { app } ) ;
2026-02-11 16:20:26 +00:00
}
getComponentBounds ( instance ) {
2026-02-16 13:45:45 +00:00
return this . hooks . callHook ( DevToolsContextHookKeys . GET _COMPONENT _BOUNDS , { instance } ) ;
2026-02-11 16:20:26 +00:00
}
getComponentName ( instance ) {
2026-02-16 13:45:45 +00:00
return this . hooks . callHook ( DevToolsContextHookKeys . GET _COMPONENT _NAME , { instance } ) ;
2026-02-11 16:20:26 +00:00
}
highlightElement ( instance ) {
const uid = instance . _ _VUE _DEVTOOLS _NEXT _UID _ _ ;
2026-02-16 13:45:45 +00:00
return this . hooks . callHook ( DevToolsContextHookKeys . COMPONENT _HIGHLIGHT , { uid } ) ;
2026-02-11 16:20:26 +00:00
}
unhighlightElement ( ) {
2026-02-16 13:45:45 +00:00
return this . hooks . callHook ( DevToolsContextHookKeys . COMPONENT _UNHIGHLIGHT ) ;
2026-02-11 16:20:26 +00:00
}
} ;
var DevToolsPluginAPI = DevToolsV6PluginAPI ;
var UNDEFINED = "__vue_devtool_undefined__" ;
var INFINITY = "__vue_devtool_infinity__" ;
var NEGATIVE _INFINITY = "__vue_devtool_negative_infinity__" ;
var NAN = "__vue_devtool_nan__" ;
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 ;
} , { } ) ;
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _KIT _ _REGISTERED _PLUGIN _APPS _ _ ? ? = /* @__PURE__ */ new Set ( ) ;
2026-02-11 16:20:26 +00:00
function setupDevToolsPlugin ( pluginDescriptor , setupFn ) {
return hook . setupDevToolsPlugin ( pluginDescriptor , setupFn ) ;
}
function callDevToolsPluginSetupFn ( plugin , app ) {
const [ pluginDescriptor , setupFn ] = plugin ;
2026-02-16 13:45:45 +00:00
if ( pluginDescriptor . app !== app ) return ;
2026-02-11 16:20:26 +00:00
const api = new DevToolsPluginAPI ( {
plugin : {
setupFn ,
descriptor : pluginDescriptor
} ,
ctx : devtoolsContext
} ) ;
2026-02-16 13:45:45 +00:00
if ( pluginDescriptor . packageName === "vuex" ) api . on . editInspectorState ( ( payload ) => {
api . sendInspectorState ( payload . inspectorId ) ;
} ) ;
2026-02-11 16:20:26 +00:00
setupFn ( api ) ;
}
function registerDevToolsPlugin ( app , options ) {
2026-02-16 13:45:45 +00:00
if ( target . _ _VUE _DEVTOOLS _KIT _ _REGISTERED _PLUGIN _APPS _ _ . has ( app ) ) return ;
if ( devtoolsState . highPerfModeEnabled && ! options ? . inspectingComponent ) return ;
2026-02-11 16:20:26 +00:00
target . _ _VUE _DEVTOOLS _KIT _ _REGISTERED _PLUGIN _APPS _ _ . add ( app ) ;
devtoolsPluginBuffer . forEach ( ( plugin ) => {
callDevToolsPluginSetupFn ( plugin , app ) ;
} ) ;
}
var ROUTER _KEY = "__VUE_DEVTOOLS_ROUTER__" ;
var ROUTER _INFO _KEY = "__VUE_DEVTOOLS_ROUTER_INFO__" ;
2026-02-16 13:45:45 +00:00
target [ ROUTER _INFO _KEY ] ? ? = {
2026-02-11 16:20:26 +00:00
currentRoute : null ,
routes : [ ]
} ;
2026-02-16 13:45:45 +00:00
target [ ROUTER _KEY ] ? ? = { } ;
var devtoolsRouterInfo = new Proxy ( target [ ROUTER _INFO _KEY ] , { get ( target$1 , property ) {
return target [ ROUTER _INFO _KEY ] [ property ] ;
} } ) ;
var devtoolsRouter = new Proxy ( target [ ROUTER _KEY ] , { get ( target$1 , property ) {
if ( property === "value" ) return target [ ROUTER _KEY ] ;
} } ) ;
2026-02-11 16:20:26 +00:00
function getRoutes ( router ) {
const routesMap = /* @__PURE__ */ new Map ( ) ;
2026-02-16 13:45:45 +00:00
return ( router ? . getRoutes ( ) || [ ] ) . filter ( ( i ) => ! routesMap . has ( i . path ) && routesMap . set ( i . path , 1 ) ) ;
2026-02-11 16:20:26 +00:00
}
function filterRoutes ( routes ) {
return routes . map ( ( item ) => {
let { path , name , children , meta } = item ;
2026-02-16 13:45:45 +00:00
if ( children ? . length ) children = filterRoutes ( children ) ;
2026-02-11 16:20:26 +00:00
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 ;
}
2026-02-16 13:45:45 +00:00
function normalizeRouterInfo ( appRecord , activeAppRecord$1 ) {
2026-02-11 16:20:26 +00:00
function init ( ) {
2026-02-16 13:45:45 +00:00
const router = appRecord . app ? . config . globalProperties . $router ;
const currentRoute = filterCurrentRoute ( router ? . currentRoute . value ) ;
2026-02-11 16:20:26 +00:00
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 ( ( ) => {
2026-02-16 13:45:45 +00:00
if ( activeAppRecord$1 . value ? . app !== appRecord . app ) return ;
2026-02-11 16:20:26 +00:00
init ( ) ;
2026-02-16 13:45:45 +00:00
if ( devtoolsState . highPerfModeEnabled ) return ;
devtoolsContext . hooks . callHook ( DevToolsMessagingHookKeys . ROUTER _INFO _UPDATED , { state : target [ ROUTER _INFO _KEY ] } ) ;
2026-02-11 16:20:26 +00:00
} , 200 ) ) ;
}
2026-02-16 13:45:45 +00:00
function createDevToolsApi ( hooks$1 ) {
2026-02-11 16:20:26 +00:00
return {
async getInspectorTree ( payload ) {
const _payload = {
... payload ,
app : activeAppRecord . value . app ,
rootNodes : [ ]
} ;
await new Promise ( ( resolve ) => {
2026-02-16 13:45:45 +00:00
hooks$1 . callHookWith ( async ( callbacks ) => {
await Promise . all ( callbacks . map ( ( cb ) => cb ( _payload ) ) ) ;
resolve ( ) ;
} , DevToolsV6PluginAPIHookKeys . GET _INSPECTOR _TREE ) ;
2026-02-11 16:20:26 +00:00
} ) ;
return _payload . rootNodes ;
} ,
async getInspectorState ( payload ) {
const _payload = {
... payload ,
app : activeAppRecord . value . app ,
state : null
} ;
2026-02-16 13:45:45 +00:00
const ctx = { currentTab : ` custom-inspector: ${ payload . inspectorId } ` } ;
2026-02-11 16:20:26 +00:00
await new Promise ( ( resolve ) => {
2026-02-16 13:45:45 +00:00
hooks$1 . callHookWith ( async ( callbacks ) => {
await Promise . all ( callbacks . map ( ( cb ) => cb ( _payload , ctx ) ) ) ;
resolve ( ) ;
} , DevToolsV6PluginAPIHookKeys . GET _INSPECTOR _STATE ) ;
2026-02-11 16:20:26 +00:00
} ) ;
return _payload . state ;
} ,
editInspectorState ( payload ) {
2026-02-16 13:45:45 +00:00
const stateEditor$1 = new StateEditor ( ) ;
2026-02-11 16:20:26 +00:00
const _payload = {
... payload ,
app : activeAppRecord . value . app ,
set : ( obj , path = payload . path , value = payload . state . value , cb ) => {
2026-02-16 13:45:45 +00:00
stateEditor$1 . set ( obj , path , value , cb || stateEditor$1 . createDefaultSetCallback ( payload . state ) ) ;
2026-02-11 16:20:26 +00:00
}
} ;
2026-02-16 13:45:45 +00:00
hooks$1 . callHookWith ( ( callbacks ) => {
callbacks . forEach ( ( cb ) => cb ( _payload ) ) ;
} , DevToolsV6PluginAPIHookKeys . EDIT _INSPECTOR _STATE ) ;
2026-02-11 16:20:26 +00:00
} ,
sendInspectorState ( inspectorId ) {
const inspector = getInspector ( inspectorId ) ;
2026-02-16 13:45:45 +00:00
hooks$1 . callHook ( DevToolsContextHookKeys . SEND _INSPECTOR _STATE , {
inspectorId ,
plugin : {
descriptor : inspector . descriptor ,
setupFn : ( ) => ( { } )
}
} ) ;
2026-02-11 16:20:26 +00:00
} ,
inspectComponentInspector ( ) {
return inspectComponentHighLighter ( ) ;
} ,
cancelInspectComponentInspector ( ) {
return cancelInspectComponentHighLighter ( ) ;
} ,
getComponentRenderCode ( id ) {
const instance = getComponentInstance ( activeAppRecord . value , id ) ;
2026-02-16 13:45:45 +00:00
if ( instance ) return ! ( typeof instance ? . type === "function" ) ? instance . render . toString ( ) : instance . type . toString ( ) ;
2026-02-11 16:20:26 +00:00
} ,
scrollToComponent ( id ) {
return scrollToComponent ( { id } ) ;
} ,
openInEditor ,
getVueInspector : getComponentInspector ,
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 ) ;
}
} ,
inspectDOM ( instanceId ) {
const instance = getComponentInstance ( activeAppRecord . value , instanceId ) ;
if ( instance ) {
const [ el ] = getRootElementsFromComponentInstance ( instance ) ;
2026-02-16 13:45:45 +00:00
if ( el ) target . _ _VUE _DEVTOOLS _INSPECT _DOM _TARGET _ _ = el ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
} ,
updatePluginSettings ( pluginId , key , value ) {
setPluginSettings ( pluginId , key , value ) ;
} ,
getPluginSettings ( pluginId ) {
return {
options : getPluginSettingsOptions ( pluginId ) ,
values : getPluginSettings ( pluginId )
} ;
}
} ;
}
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _ENV _ _ ? ? = { vitePluginDetected : false } ;
2026-02-11 16:20:26 +00:00
var hooks = createDevToolsCtxHooks ( ) ;
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _KIT _CONTEXT _ _ ? ? = {
2026-02-11 16:20:26 +00:00
hooks ,
get state ( ) {
return {
... devtoolsState ,
activeAppRecordId : activeAppRecord . id ,
activeAppRecord : activeAppRecord . value ,
appRecords : devtoolsAppRecords . value
} ;
} ,
api : createDevToolsApi ( hooks )
} ;
var devtoolsContext = target . _ _VUE _DEVTOOLS _KIT _CONTEXT _ _ ;
2026-02-16 13:45:45 +00:00
var require _speakingurl$1 = _ _commonJS2 ( { "../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js" : ( ( exports , module ) => {
( function ( root ) {
var charMap = {
"À" : "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" ,
"ا " : "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" ,
"گ" : "g" ,
"چ" : "ch" ,
"پ" : "p" ,
"ژ" : "zh" ,
"ک" : "k" ,
"ی" : "y" ,
"َ" : "a" ,
"ً" : "an" ,
"ِ" : "e" ,
"ٍ" : "en" ,
"ُ" : "u" ,
"ٌ" : "on" ,
"ْ" : "" ,
"٠ " : "0" ,
"١ " : "1" ,
"٢" : "2" ,
"٣" : "3" ,
"٤" : "4" ,
"٥ " : "5" ,
"٦" : "6" ,
"٧ " : "7" ,
"٨" : "8" ,
"٩" : "9" ,
"۰ " : "0" ,
"۱ " : "1" ,
"۲" : "2" ,
"۳" : "3" ,
"۴" : "4" ,
"۵ " : "5" ,
"۶" : "6" ,
"۷ " : "7" ,
"۸" : "8" ,
"۹" : "9" ,
"က" : "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" ,
"ြ" : "y" ,
"ျ" : "ya" ,
"ွ" : "w" ,
"ြွ" : "yw" ,
"ျွ" : "ywa" ,
"ှ" : "h" ,
"ဧ" : "e" ,
"၏" : "-e" ,
"ဣ" : "i" ,
"ဤ" : "-i" ,
"ဉ" : "u" ,
"ဦ" : "-u" ,
"ဩ" : "aw" ,
"သြော" : "aw" ,
"ဪ" : "aw" ,
"၀ " : "0" ,
"၁" : "1" ,
"၂" : "2" ,
"၃" : "3" ,
"၄" : "4" ,
"၅" : "5" ,
"၆" : "6" ,
"၇" : "7" ,
"၈" : "8" ,
"၉" : "9" ,
"္" : "" ,
"့" : "" ,
"း" : "" ,
"č" : "c" ,
"ď" : "d" ,
"ě" : "e" ,
"ň" : "n" ,
"ř" : "r" ,
"š" : "s" ,
"ť" : "t" ,
"ů" : "u" ,
"ž" : "z" ,
"Č" : "C" ,
"Ď" : "D" ,
"Ě" : "E" ,
"Ň" : "N" ,
"Ř" : "R" ,
"Š" : "S" ,
"Ť" : "T" ,
"Ů" : "U" ,
"Ž" : "Z" ,
"ހ" : "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" ,
"ް" : "" ,
"ა" : "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" ,
"α " : "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" ,
"ā" : "a" ,
"ē" : "e" ,
"ģ" : "g" ,
"ī" : "i" ,
"ķ" : "k" ,
"ļ" : "l" ,
"ņ" : "n" ,
"ū" : "u" ,
"Ā" : "A" ,
"Ē" : "E" ,
"Ģ" : "G" ,
"Ī" : "I" ,
"Ķ" : "k" ,
"Ļ" : "L" ,
"Ņ" : "N" ,
"Ū" : "U" ,
"Ќ" : "Kj" ,
"ќ" : "kj" ,
"Љ" : "Lj" ,
"љ" : "lj" ,
"Њ" : "Nj" ,
"њ" : "nj" ,
"Т с " : "Ts" ,
"тс" : "ts" ,
"ą" : "a" ,
"ć" : "c" ,
"ę" : "e" ,
"ł" : "l" ,
"ń" : "n" ,
"ś" : "s" ,
"ź" : "z" ,
"ż" : "z" ,
"Ą" : "A" ,
"Ć" : "C" ,
"Ę" : "E" ,
"Ł" : "L" ,
"Ń" : "N" ,
"Ś" : "S" ,
"Ź" : "Z" ,
"Ż" : "Z" ,
"Є" : "Ye" ,
"І " : "I" ,
"Ї" : "Yi" ,
"Ґ" : "G" ,
"є" : "ye" ,
"і " : "i" ,
"ї" : "yi" ,
"ґ" : "g" ,
"ă" : "a" ,
"Ă" : "A" ,
"ș" : "s" ,
"Ș" : "S" ,
"ț" : "t" ,
"Ț" : "T" ,
"ţ" : "t" ,
"Ţ" : "T" ,
"а " : "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" ,
"ђ" : "dj" ,
"ј " : "j" ,
"ћ" : "c" ,
"џ" : "dz" ,
"Ђ" : "Dj" ,
"Ј " : "j" ,
"Ћ" : "C" ,
"Џ" : "Dz" ,
"ľ" : "l" ,
"ĺ" : "l" ,
"ŕ" : "r" ,
"Ľ" : "L" ,
"Ĺ" : "L" ,
"Ŕ" : "R" ,
"ş" : "s" ,
"Ş" : "S" ,
"ı " : "i" ,
"İ" : "I" ,
"ğ" : "g" ,
"Ğ" : "G" ,
"ả" : "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" ,
"Ắ" : "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" ,
"“" : '"' ,
"”" : '"' ,
"‘ " : "'" ,
"’ " : "'" ,
"∂" : "d" ,
"ƒ" : "f" ,
"™" : "(TM)" ,
"©" : "(C)" ,
"œ" : "oe" ,
"Œ" : "OE" ,
"®" : "(R)" ,
"†" : "+" ,
"℠" : "(SM)" ,
"…" : "..." ,
"˚" : "o" ,
"º" : "o" ,
"ª" : "a" ,
"•" : "*" ,
"၊" : "," ,
"။" : "." ,
"$" : "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 = [ "်" , "ް" ] ;
var diatricMap = {
"ာ" : "a" ,
"ါ" : "a" ,
"ေ" : "e" ,
"ဲ" : "e" ,
"ိ" : "i" ,
"ီ" : "i" ,
"ို" : "o" ,
"ု" : "u" ,
"ူ" : "u" ,
"ေါင်" : "aung" ,
"ော" : "aw" ,
"ော်" : "aw" ,
"ေါ" : "aw" ,
"ေါ်" : "aw" ,
"်" : "်" ,
"က်" : "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" ,
"ައް" : "ah" ,
"ަށް" : "ah"
} ;
var langCharMap = {
"en" : { } ,
"az" : {
"ç" : "c" ,
"ə" : "e" ,
"ğ" : "g" ,
"ı " : "i" ,
"ö" : "o" ,
"ş" : "s" ,
"ü" : "u" ,
"Ç" : "C" ,
"Ə" : "E" ,
"Ğ" : "G" ,
"İ" : "I" ,
"Ö" : "O" ,
"Ş" : "S" ,
"Ü" : "U"
} ,
"cs" : {
"č" : "c" ,
"ď" : "d" ,
"ě" : "e" ,
"ň" : "n" ,
"ř" : "r" ,
"š" : "s" ,
"ť" : "t" ,
"ů" : "u" ,
"ž" : "z" ,
"Č" : "C" ,
"Ď" : "D" ,
"Ě" : "E" ,
"Ň" : "N" ,
"Ř" : "R" ,
"Š" : "S" ,
"Ť" : "T" ,
"Ů" : "U" ,
"Ž" : "Z"
} ,
"fi" : {
"ä" : "a" ,
"Ä" : "A" ,
"ö" : "o" ,
"Ö" : "O"
} ,
"hu" : {
"ä" : "a" ,
"Ä" : "A" ,
"ö" : "o" ,
"Ö" : "O" ,
"ü" : "u" ,
"Ü" : "U" ,
"ű" : "u" ,
"Ű" : "U"
} ,
"lt" : {
"ą" : "a" ,
"č" : "c" ,
"ę" : "e" ,
"ė" : "e" ,
"į" : "i" ,
"š" : "s" ,
"ų" : "u" ,
"ū" : "u" ,
"ž" : "z" ,
"Ą" : "A" ,
"Č" : "C" ,
"Ę" : "E" ,
"Ė" : "E" ,
"Į" : "I" ,
"Š" : "S" ,
"Ų" : "U" ,
"Ū" : "U"
} ,
"lv" : {
"ā" : "a" ,
"č" : "c" ,
"ē" : "e" ,
"ģ" : "g" ,
"ī" : "i" ,
"ķ" : "k" ,
"ļ" : "l" ,
"ņ" : "n" ,
"š" : "s" ,
"ū" : "u" ,
"ž" : "z" ,
"Ā" : "A" ,
"Č" : "C" ,
"Ē" : "E" ,
"Ģ" : "G" ,
"Ī" : "i" ,
"Ķ" : "k" ,
"Ļ" : "L" ,
"Ņ" : "N" ,
"Š" : "S" ,
"Ū" : "u" ,
"Ž" : "Z"
} ,
"pl" : {
"ą" : "a" ,
"ć" : "c" ,
"ę" : "e" ,
"ł" : "l" ,
"ń" : "n" ,
"ó" : "o" ,
"ś" : "s" ,
"ź" : "z" ,
"ż" : "z" ,
"Ą" : "A" ,
"Ć" : "C" ,
"Ę" : "e" ,
"Ł" : "L" ,
"Ń" : "N" ,
"Ó" : "O" ,
"Ś" : "S" ,
"Ź" : "Z" ,
"Ż" : "Z"
} ,
"sv" : {
"ä" : "a" ,
"Ä" : "A" ,
"ö" : "o" ,
"Ö" : "O"
} ,
"sk" : {
"ä" : "a" ,
"Ä" : "A"
} ,
"sr" : {
"љ" : "lj" ,
"њ" : "nj" ,
"Љ" : "Lj" ,
"Њ" : "Nj" ,
"đ" : "dj" ,
"Đ" : "Dj"
} ,
"tr" : {
"Ü" : "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 getSlug$1 ( 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 ( 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 ( _ , i$1 , r ) {
var j = i$1 . 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 createSlug$1 ( opts ) {
return function getSlugWithConfig ( input ) {
return getSlug ( input , opts ) ;
} ;
} ;
var escapeChars = function escapeChars$1 ( 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 _speakingurl = _ _commonJS2 ( { "../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/index.js" : ( ( exports , module ) => {
module . exports = require _speakingurl$1 ( ) ;
} ) } ) ;
var import _speakingurl = _ _toESM2 ( require _speakingurl ( ) , 1 ) ;
var appRecordInfo = target . _ _VUE _DEVTOOLS _NEXT _APP _RECORD _INFO _ _ ? ? = {
2026-02-11 16:20:26 +00:00
id : 0 ,
appIds : /* @__PURE__ */ new Set ( )
} ;
function onDevToolsClientConnected ( fn ) {
return new Promise ( ( resolve ) => {
if ( devtoolsState . connected && devtoolsState . clientConnected ) {
fn ( ) ;
resolve ( ) ;
return ;
}
2026-02-16 13:45:45 +00:00
devtoolsContext . hooks . hook ( DevToolsMessagingHookKeys . DEVTOOLS _CONNECTED _UPDATED , ( { state } ) => {
2026-02-11 16:20:26 +00:00
if ( state . connected && state . clientConnected ) {
fn ( ) ;
resolve ( ) ;
}
2024-01-05 12:14:38 +00:00
} ) ;
2026-02-11 16:20:26 +00:00
} ) ;
}
function toggleHighPerfMode ( state ) {
2026-02-16 13:45:45 +00:00
devtoolsState . highPerfModeEnabled = state ? ? ! devtoolsState . highPerfModeEnabled ;
if ( ! state && activeAppRecord . value ) registerDevToolsPlugin ( activeAppRecord . value . app ) ;
2026-02-11 16:20:26 +00:00
}
function updateDevToolsClientDetected ( params ) {
devtoolsState . devtoolsClientDetected = {
... devtoolsState . devtoolsClientDetected ,
... params
} ;
2026-02-16 13:45:45 +00:00
toggleHighPerfMode ( ! Object . values ( devtoolsState . devtoolsClientDetected ) . some ( Boolean ) ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _UPDATE _CLIENT _DETECTED _ _ ? ? = updateDevToolsClientDetected ;
2026-02-11 16:20:26 +00:00
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 ) {
2026-02-16 13:45:45 +00:00
if ( this . kv . getByValue ( value ) ) return ;
if ( ! identifier ) identifier = this . generateIdentifier ( value ) ;
2026-02-11 16:20:26 +00:00
this . kv . set ( identifier , value ) ;
}
clear ( ) {
this . kv . clear ( ) ;
}
getIdentifier ( value ) {
return this . kv . getByValue ( value ) ;
}
getValue ( identifier ) {
return this . kv . getByKey ( identifier ) ;
2024-01-05 12:14:38 +00:00
}
} ;
2026-02-11 16:20:26 +00:00
var ClassRegistry = class extends Registry {
constructor ( ) {
super ( ( c ) => c . name ) ;
this . classToAllowedProps = /* @__PURE__ */ new Map ( ) ;
}
register ( value , options ) {
if ( typeof options === "object" ) {
2026-02-16 13:45:45 +00:00
if ( options . allowProps ) this . classToAllowedProps . set ( value , options . allowProps ) ;
2026-02-11 16:20:26 +00:00
super . register ( value , options . identifier ) ;
2026-02-16 13:45:45 +00:00
} else super . register ( value , options ) ;
2026-02-11 16:20:26 +00:00
}
getAllowedProps ( value ) {
return this . classToAllowedProps . get ( value ) ;
}
} ;
function valuesOfObj ( record ) {
2026-02-16 13:45:45 +00:00
if ( "values" in Object ) return Object . values ( record ) ;
2026-02-11 16:20:26 +00:00
const values = [ ] ;
2026-02-16 13:45:45 +00:00
for ( const key in record ) if ( record . hasOwnProperty ( key ) ) values . push ( record [ key ] ) ;
2026-02-11 16:20:26 +00:00
return values ;
}
function find ( record , predicate ) {
const values = valuesOfObj ( record ) ;
2026-02-16 13:45:45 +00:00
if ( "find" in values ) return values . find ( predicate ) ;
2026-02-11 16:20:26 +00:00
const valuesNotNever = values ;
for ( let i = 0 ; i < valuesNotNever . length ; i ++ ) {
const value = valuesNotNever [ i ] ;
2026-02-16 13:45:45 +00:00
if ( predicate ( value ) ) return value ;
2026-02-11 16:20:26 +00:00
}
}
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 ] ;
2026-02-16 13:45:45 +00:00
if ( predicate ( value ) ) return value ;
2026-02-11 16:20:26 +00:00
}
}
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 ] ;
}
} ;
2026-02-16 13:45:45 +00:00
var getType$1 = ( payload ) => Object . prototype . toString . call ( payload ) . slice ( 8 , - 1 ) ;
var isUndefined$1 = ( payload ) => typeof payload === "undefined" ;
var isNull$1 = ( payload ) => payload === null ;
var isPlainObject$2 = ( payload ) => {
if ( typeof payload !== "object" || payload === null ) return false ;
if ( payload === Object . prototype ) return false ;
if ( Object . getPrototypeOf ( payload ) === null ) return true ;
2026-02-11 16:20:26 +00:00
return Object . getPrototypeOf ( payload ) === Object . prototype ;
} ;
2026-02-16 13:45:45 +00:00
var isEmptyObject = ( payload ) => isPlainObject$2 ( payload ) && Object . keys ( payload ) . length === 0 ;
var isArray$2 = ( payload ) => Array . isArray ( payload ) ;
2026-02-11 16:20:26 +00:00
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 ;
2026-02-16 13:45:45 +00:00
var isSymbol = ( payload ) => getType$1 ( payload ) === "Symbol" ;
2026-02-11 16:20:26 +00:00
var isDate = ( payload ) => payload instanceof Date && ! isNaN ( payload . valueOf ( ) ) ;
var isError = ( payload ) => payload instanceof Error ;
var isNaNValue = ( payload ) => typeof payload === "number" && isNaN ( payload ) ;
2026-02-16 13:45:45 +00:00
var isPrimitive = ( payload ) => isBoolean ( payload ) || isNull$1 ( payload ) || isUndefined$1 ( payload ) || isNumber ( payload ) || isString ( payload ) || isSymbol ( payload ) ;
2026-02-11 16:20:26 +00:00
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 ;
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 ) ;
2026-02-16 13:45:45 +00:00
if ( char === "\\" && string . charAt ( i + 1 ) === "." ) {
2026-02-11 16:20:26 +00:00
segment += "." ;
i ++ ;
continue ;
}
2026-02-16 13:45:45 +00:00
if ( char === "." ) {
2026-02-11 16:20:26 +00:00
result . push ( segment ) ;
segment = "" ;
continue ;
}
segment += char ;
}
const lastSegment = segment ;
result . push ( lastSegment ) ;
return result ;
} ;
function simpleTransformation ( isApplicable , annotation , transform , untransform ) {
return {
isApplicable ,
annotation ,
transform ,
untransform
} ;
}
var simpleRules = [
2026-02-16 13:45:45 +00:00
simpleTransformation ( isUndefined$1 , "undefined" , ( ) => null , ( ) => void 0 ) ,
2026-02-11 16:20:26 +00:00
simpleTransformation ( isBigint , "bigint" , ( v ) => v . toString ( ) , ( v ) => {
2026-02-16 13:45:45 +00:00
if ( typeof BigInt !== "undefined" ) return BigInt ( v ) ;
2026-02-11 16:20:26 +00:00
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 ) ;
} ) ,
2026-02-16 13:45:45 +00:00
simpleTransformation ( isSet , "set" , ( v ) => [ ... v . values ( ) ] , ( v ) => new Set ( v ) ) ,
2026-02-11 16:20:26 +00:00
simpleTransformation ( isMap , "map" , ( v ) => [ ... v . entries ( ) ] , ( v ) => new Map ( v ) ) ,
simpleTransformation ( ( v ) => isNaNValue ( v ) || isInfinite ( v ) , "number" , ( v ) => {
2026-02-16 13:45:45 +00:00
if ( isNaNValue ( v ) ) return "NaN" ;
if ( v > 0 ) return "Infinity" ;
else return "-Infinity" ;
2026-02-11 16:20:26 +00:00
} , 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 ) => {
2026-02-16 13:45:45 +00:00
if ( isSymbol ( s ) ) return ! ! superJson . symbolRegistry . getIdentifier ( s ) ;
2026-02-11 16:20:26 +00:00
return false ;
} , ( s , superJson ) => {
2026-02-16 13:45:45 +00:00
return [ "symbol" , superJson . symbolRegistry . getIdentifier ( s ) ] ;
2026-02-11 16:20:26 +00:00
} , ( v ) => v . description , ( _ , a , superJson ) => {
const value = superJson . symbolRegistry . getValue ( a [ 1 ] ) ;
2026-02-16 13:45:45 +00:00
if ( ! value ) throw new Error ( "Trying to deserialize unknown symbol" ) ;
2026-02-11 16:20:26 +00:00
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 ] ] ;
2026-02-16 13:45:45 +00:00
if ( ! ctor ) throw new Error ( "Trying to deserialize unknown typed array" ) ;
2026-02-11 16:20:26 +00:00
return new ctor ( v ) ;
} ) ;
function isInstanceOfRegisteredClass ( potentialClass , superJson ) {
2026-02-16 13:45:45 +00:00
if ( potentialClass ? . constructor ) return ! ! superJson . classRegistry . getIdentifier ( potentialClass . constructor ) ;
2026-02-11 16:20:26 +00:00
return false ;
}
var classRule = compositeTransformation ( isInstanceOfRegisteredClass , ( clazz , superJson ) => {
2026-02-16 13:45:45 +00:00
return [ "class" , superJson . classRegistry . getIdentifier ( clazz . constructor ) ] ;
2026-02-11 16:20:26 +00:00
} , ( clazz , superJson ) => {
const allowedProps = superJson . classRegistry . getAllowedProps ( clazz . constructor ) ;
2026-02-16 13:45:45 +00:00
if ( ! allowedProps ) return { ... clazz } ;
2026-02-11 16:20:26 +00:00
const result = { } ;
allowedProps . forEach ( ( prop ) => {
result [ prop ] = clazz [ prop ] ;
} ) ;
return result ;
} , ( v , a , superJson ) => {
const clazz = superJson . classRegistry . getValue ( a [ 1 ] ) ;
2026-02-16 13:45:45 +00:00
if ( ! clazz ) throw new Error ( ` Trying to deserialize unknown class ' ${ a [ 1 ] } ' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564 ` ) ;
2026-02-11 16:20:26 +00:00
return Object . assign ( Object . create ( clazz . prototype ) , v ) ;
} ) ;
var customRule = compositeTransformation ( ( value , superJson ) => {
return ! ! superJson . customTransformerRegistry . findApplicable ( value ) ;
} , ( value , superJson ) => {
2026-02-16 13:45:45 +00:00
return [ "custom" , superJson . customTransformerRegistry . findApplicable ( value ) . name ] ;
2026-02-11 16:20:26 +00:00
} , ( value , superJson ) => {
2026-02-16 13:45:45 +00:00
return superJson . customTransformerRegistry . findApplicable ( value ) . serialize ( value ) ;
2026-02-11 16:20:26 +00:00
} , ( v , a , superJson ) => {
const transformer = superJson . customTransformerRegistry . findByName ( a [ 1 ] ) ;
2026-02-16 13:45:45 +00:00
if ( ! transformer ) throw new Error ( "Trying to deserialize unknown custom value" ) ;
2026-02-11 16:20:26 +00:00
return transformer . deserialize ( v ) ;
} ) ;
2026-02-16 13:45:45 +00:00
var compositeRules = [
classRule ,
symbolRule ,
customRule ,
typedArrayRule
] ;
2026-02-11 16:20:26 +00:00
var transformValue = ( value , superJson ) => {
const applicableCompositeRule = findArr ( compositeRules , ( rule ) => rule . isApplicable ( value , superJson ) ) ;
2026-02-16 13:45:45 +00:00
if ( applicableCompositeRule ) return {
value : applicableCompositeRule . transform ( value , superJson ) ,
type : applicableCompositeRule . annotation ( value , superJson )
} ;
2026-02-11 16:20:26 +00:00
const applicableSimpleRule = findArr ( simpleRules , ( rule ) => rule . isApplicable ( value , superJson ) ) ;
2026-02-16 13:45:45 +00:00
if ( applicableSimpleRule ) return {
value : applicableSimpleRule . transform ( value , superJson ) ,
type : applicableSimpleRule . annotation
} ;
2026-02-11 16:20:26 +00:00
} ;
var simpleRulesByAnnotation = { } ;
simpleRules . forEach ( ( rule ) => {
simpleRulesByAnnotation [ rule . annotation ] = rule ;
} ) ;
var untransformValue = ( json , type , superJson ) => {
2026-02-16 13:45:45 +00:00
if ( isArray$2 ( 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 :
2026-02-11 16:20:26 +00:00
throw new Error ( "Unknown transformation: " + type ) ;
2026-02-16 13:45:45 +00:00
}
else {
const transformation = simpleRulesByAnnotation [ type ] ;
if ( ! transformation ) throw new Error ( "Unknown transformation: " + type ) ;
2026-02-11 16:20:26 +00:00
return transformation . untransform ( json , superJson ) ;
}
} ;
var getNthKey = ( value , n ) => {
2026-02-16 13:45:45 +00:00
if ( n > value . size ) throw new Error ( "index out of bounds" ) ;
2026-02-11 16:20:26 +00:00
const keys = value . keys ( ) ;
while ( n > 0 ) {
keys . next ( ) ;
n -- ;
}
return keys . next ( ) . value ;
} ;
function validatePath ( path ) {
2026-02-16 13:45:45 +00:00
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" ) ;
2026-02-11 16:20:26 +00:00
}
var getDeep = ( object , path ) => {
validatePath ( path ) ;
for ( let i = 0 ; i < path . length ; i ++ ) {
const key = path [ i ] ;
2026-02-16 13:45:45 +00:00
if ( isSet ( object ) ) object = getNthKey ( object , + key ) ;
else if ( isMap ( object ) ) {
2026-02-11 16:20:26 +00:00
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 ;
}
2026-02-16 13:45:45 +00:00
} else object = object [ key ] ;
2026-02-11 16:20:26 +00:00
}
return object ;
} ;
var setDeep = ( object , path , mapper ) => {
validatePath ( path ) ;
2026-02-16 13:45:45 +00:00
if ( path . length === 0 ) return mapper ( object ) ;
2026-02-11 16:20:26 +00:00
let parent = object ;
for ( let i = 0 ; i < path . length - 1 ; i ++ ) {
const key = path [ i ] ;
2026-02-16 13:45:45 +00:00
if ( isArray$2 ( parent ) ) {
2026-02-11 16:20:26 +00:00
const index = + key ;
parent = parent [ index ] ;
2026-02-16 13:45:45 +00:00
} else if ( isPlainObject$2 ( parent ) ) parent = parent [ key ] ;
else if ( isSet ( parent ) ) {
2026-02-11 16:20:26 +00:00
const row = + key ;
parent = getNthKey ( parent , row ) ;
} else if ( isMap ( parent ) ) {
2026-02-16 13:45:45 +00:00
if ( i === path . length - 2 ) break ;
2026-02-11 16:20:26 +00:00
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 ] ;
2026-02-16 13:45:45 +00:00
if ( isArray$2 ( parent ) ) parent [ + lastKey ] = mapper ( parent [ + lastKey ] ) ;
else if ( isPlainObject$2 ( parent ) ) parent [ lastKey ] = mapper ( parent [ lastKey ] ) ;
2026-02-11 16:20:26 +00:00
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 ) ;
2026-02-16 13:45:45 +00:00
switch ( + lastKey === 0 ? "key" : "value" ) {
2026-02-11 16:20:26 +00:00
case "key" : {
const newKey = mapper ( keyToRow ) ;
parent . set ( newKey , parent . get ( keyToRow ) ) ;
2026-02-16 13:45:45 +00:00
if ( newKey !== keyToRow ) parent . delete ( keyToRow ) ;
2026-02-11 16:20:26 +00:00
break ;
}
2026-02-16 13:45:45 +00:00
case "value" :
2026-02-11 16:20:26 +00:00
parent . set ( keyToRow , mapper ( parent . get ( keyToRow ) ) ) ;
break ;
}
}
return object ;
} ;
2026-02-16 13:45:45 +00:00
function traverse ( tree , walker$1 , origin = [ ] ) {
if ( ! tree ) return ;
if ( ! isArray$2 ( tree ) ) {
forEach ( tree , ( subtree , key ) => traverse ( subtree , walker$1 , [ ... origin , ... parsePath ( key ) ] ) ) ;
2026-02-11 16:20:26 +00:00
return ;
}
const [ nodeValue , children ] = tree ;
2026-02-16 13:45:45 +00:00
if ( children ) forEach ( children , ( child , key ) => {
traverse ( child , walker$1 , [ ... origin , ... parsePath ( key ) ] ) ;
} ) ;
walker$1 ( nodeValue , origin ) ;
2026-02-11 16:20:26 +00:00
}
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 ) ;
} ) ;
}
2026-02-16 13:45:45 +00:00
if ( isArray$2 ( annotations ) ) {
2026-02-11 16:20:26 +00:00
const [ root , other ] = annotations ;
root . forEach ( ( identicalPath ) => {
plain = setDeep ( plain , parsePath ( identicalPath ) , ( ) => plain ) ;
2024-01-05 12:14:38 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
if ( other ) forEach ( other , apply ) ;
} else forEach ( annotations , apply ) ;
2026-02-11 16:20:26 +00:00
return plain ;
}
2026-02-16 13:45:45 +00:00
var isDeep = ( object , superJson ) => isPlainObject$2 ( object ) || isArray$2 ( object ) || isMap ( object ) || isSet ( object ) || isInstanceOfRegisteredClass ( object , superJson ) ;
2026-02-11 16:20:26 +00:00
function addIdentity ( object , path , identities ) {
const existingSet = identities . get ( object ) ;
2026-02-16 13:45:45 +00:00
if ( existingSet ) existingSet . push ( path ) ;
else identities . set ( object , [ path ] ) ;
2024-01-05 12:14:38 +00:00
}
2026-02-11 16:20:26 +00:00
function generateReferentialEqualityAnnotations ( identitites , dedupe ) {
const result = { } ;
let rootEqualityPaths = void 0 ;
identitites . forEach ( ( paths ) => {
2026-02-16 13:45:45 +00:00
if ( paths . length <= 1 ) return ;
if ( ! dedupe ) paths = paths . map ( ( path ) => path . map ( String ) ) . sort ( ( a , b ) => a . length - b . length ) ;
2026-02-11 16:20:26 +00:00
const [ representativePath , ... identicalPaths ] = paths ;
2026-02-16 13:45:45 +00:00
if ( representativePath . length === 0 ) rootEqualityPaths = identicalPaths . map ( stringifyPath ) ;
else result [ stringifyPath ( representativePath ) ] = identicalPaths . map ( stringifyPath ) ;
2026-02-11 16:20:26 +00:00
} ) ;
2026-02-16 13:45:45 +00:00
if ( rootEqualityPaths ) if ( isEmptyObject ( result ) ) return [ rootEqualityPaths ] ;
else return [ rootEqualityPaths , result ] ;
else return isEmptyObject ( result ) ? void 0 : result ;
2026-02-11 16:20:26 +00:00
}
var walker = ( object , identities , superJson , dedupe , path = [ ] , objectsInThisPath = [ ] , seenObjects = /* @__PURE__ */ new Map ( ) ) => {
2026-02-16 13:45:45 +00:00
const primitive = isPrimitive ( object ) ;
2026-02-11 16:20:26 +00:00
if ( ! primitive ) {
addIdentity ( object , path , identities ) ;
const seen = seenObjects . get ( object ) ;
2026-02-16 13:45:45 +00:00
if ( seen ) return dedupe ? { transformedValue : null } : seen ;
2026-02-11 16:20:26 +00:00
}
if ( ! isDeep ( object , superJson ) ) {
2026-02-16 13:45:45 +00:00
const transformed$1 = transformValue ( object , superJson ) ;
const result$1 = transformed$1 ? {
transformedValue : transformed$1 . value ,
annotations : [ transformed$1 . type ]
} : { transformedValue : object } ;
if ( ! primitive ) seenObjects . set ( object , result$1 ) ;
return result$1 ;
}
if ( includes ( objectsInThisPath , object ) ) return { transformedValue : null } ;
2026-02-11 16:20:26 +00:00
const transformationResult = transformValue ( object , superJson ) ;
2026-02-16 13:45:45 +00:00
const transformed = transformationResult ? . value ? ? object ;
const transformedValue = isArray$2 ( transformed ) ? [ ] : { } ;
2026-02-11 16:20:26 +00:00
const innerAnnotations = { } ;
forEach ( transformed , ( value , index ) => {
2026-02-16 13:45:45 +00:00
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. ` ) ;
2026-02-11 16:20:26 +00:00
const recursiveResult = walker ( value , identities , superJson , dedupe , [ ... path , index ] , [ ... objectsInThisPath , object ] , seenObjects ) ;
transformedValue [ index ] = recursiveResult . transformedValue ;
2026-02-16 13:45:45 +00:00
if ( isArray$2 ( recursiveResult . annotations ) ) innerAnnotations [ index ] = recursiveResult . annotations ;
else if ( isPlainObject$2 ( recursiveResult . annotations ) ) forEach ( recursiveResult . annotations , ( tree , key ) => {
innerAnnotations [ escapeKey ( index ) + "." + key ] = tree ;
} ) ;
2026-02-11 16:20:26 +00:00
} ) ;
const result = isEmptyObject ( innerAnnotations ) ? {
transformedValue ,
annotations : ! ! transformationResult ? [ transformationResult . type ] : void 0
} : {
transformedValue ,
annotations : ! ! transformationResult ? [ transformationResult . type , innerAnnotations ] : innerAnnotations
} ;
2026-02-16 13:45:45 +00:00
if ( ! primitive ) seenObjects . set ( object , result ) ;
2026-02-11 16:20:26 +00:00
return result ;
} ;
2026-02-16 13:45:45 +00:00
function getType ( payload ) {
2026-02-11 16:20:26 +00:00
return Object . prototype . toString . call ( payload ) . slice ( 8 , - 1 ) ;
}
2026-02-16 13:45:45 +00:00
function isArray$1 ( payload ) {
return getType ( payload ) === "Array" ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
function isPlainObject$1 ( payload ) {
if ( getType ( payload ) !== "Object" ) return false ;
2026-02-11 16:20:26 +00:00
const prototype = Object . getPrototypeOf ( payload ) ;
return ! ! prototype && prototype . constructor === Object && prototype === Object . prototype ;
}
2026-02-16 13:45:45 +00:00
function isNull ( payload ) {
return getType ( payload ) === "Null" ;
2026-02-11 16:20:26 +00:00
}
function isOneOf ( a , b , c , d , e ) {
return ( value ) => a ( value ) || b ( value ) || ! ! c && c ( value ) || ! ! d && d ( value ) || ! ! e && e ( value ) ;
}
2026-02-16 13:45:45 +00:00
function isUndefined ( payload ) {
return getType ( payload ) === "Undefined" ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
var isNullOrUndefined = isOneOf ( isNull , isUndefined ) ;
2026-02-11 16:20:26 +00:00
function assignProp ( carry , key , newVal , originalObject , includeNonenumerable ) {
const propType = { } . propertyIsEnumerable . call ( originalObject , key ) ? "enumerable" : "nonenumerable" ;
2026-02-16 13:45:45 +00:00
if ( propType === "enumerable" ) carry [ key ] = newVal ;
if ( includeNonenumerable && propType === "nonenumerable" ) Object . defineProperty ( carry , key , {
value : newVal ,
enumerable : false ,
writable : true ,
configurable : true
} ) ;
2026-02-11 16:20:26 +00:00
}
2026-02-16 13:45:45 +00:00
function copy ( target$1 , options = { } ) {
if ( isArray$1 ( target$1 ) ) return target$1 . map ( ( item ) => copy ( item , options ) ) ;
if ( ! isPlainObject$1 ( target$1 ) ) return target$1 ;
const props = Object . getOwnPropertyNames ( target$1 ) ;
const symbols = Object . getOwnPropertySymbols ( target$1 ) ;
2026-02-11 16:20:26 +00:00
return [ ... props , ... symbols ] . reduce ( ( carry , key ) => {
2026-02-16 13:45:45 +00:00
if ( isArray$1 ( options . props ) && ! options . props . includes ( key ) ) return carry ;
const val = target$1 [ key ] ;
assignProp ( carry , key , copy ( val , options ) , target$1 , options . nonenumerable ) ;
2026-02-11 16:20:26 +00:00
return carry ;
} , { } ) ;
}
var SuperJSON = class {
/ * *
2026-02-16 13:45:45 +00:00
* @ param dedupeReferentialEqualities If true , SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with ` null ` .
* /
2026-02-11 16:20:26 +00:00
constructor ( { dedupe = false } = { } ) {
this . classRegistry = new ClassRegistry ( ) ;
2026-02-16 13:45:45 +00:00
this . symbolRegistry = new Registry ( ( s ) => s . description ? ? "" ) ;
2026-02-11 16:20:26 +00:00
this . customTransformerRegistry = new CustomTransformerRegistry ( ) ;
this . allowedErrorProps = [ ] ;
this . dedupe = dedupe ;
}
serialize ( object ) {
const identities = /* @__PURE__ */ new Map ( ) ;
const output = walker ( object , identities , this , this . dedupe ) ;
2026-02-16 13:45:45 +00:00
const res = { json : output . transformedValue } ;
if ( output . annotations ) res . meta = {
... res . meta ,
values : output . annotations
2026-02-11 16:20:26 +00:00
} ;
const equalityAnnotations = generateReferentialEqualityAnnotations ( identities , this . dedupe ) ;
2026-02-16 13:45:45 +00:00
if ( equalityAnnotations ) res . meta = {
... res . meta ,
referentialEqualities : equalityAnnotations
} ;
2026-02-11 16:20:26 +00:00
return res ;
}
deserialize ( payload ) {
const { json , meta } = payload ;
let result = copy ( json ) ;
2026-02-16 13:45:45 +00:00
if ( meta ? . values ) result = applyValueAnnotations ( result , meta . values , this ) ;
if ( meta ? . referentialEqualities ) result = applyReferentialEqualityAnnotations ( result , meta . referentialEqualities ) ;
2026-02-11 16:20:26 +00:00
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 ;
2026-02-16 13:45:45 +00:00
var stringify$1 = SuperJSON . stringify ;
var parse$1 = SuperJSON . parse ;
2026-02-11 16:20:26 +00:00
var registerClass = SuperJSON . registerClass ;
var registerCustom = SuperJSON . registerCustom ;
var registerSymbol = SuperJSON . registerSymbol ;
var allowErrorProps = SuperJSON . allowErrorProps ;
2026-02-16 13:45:45 +00:00
target . _ _VUE _DEVTOOLS _KIT _MESSAGE _CHANNELS _ _ ? ? = [ ] ;
target . _ _VUE _DEVTOOLS _KIT _RPC _CLIENT _ _ ? ? = null ;
target . _ _VUE _DEVTOOLS _KIT _RPC _SERVER _ _ ? ? = null ;
target . _ _VUE _DEVTOOLS _KIT _VITE _RPC _CLIENT _ _ ? ? = null ;
target . _ _VUE _DEVTOOLS _KIT _VITE _RPC _SERVER _ _ ? ? = null ;
target . _ _VUE _DEVTOOLS _KIT _BROADCAST _RPC _SERVER _ _ ? ? = null ;
2026-02-11 16:20:26 +00:00
var MAX _SERIALIZED _SIZE = 2 * 1024 * 1024 ;
2024-01-05 12:14:38 +00:00
export {
2026-02-11 16:20:26 +00:00
addCustomCommand ,
addCustomTab ,
onDevToolsClientConnected ,
onDevToolsConnected ,
removeCustomCommand ,
setupDevToolsPlugin ,
setupDevToolsPlugin as setupDevtoolsPlugin
2024-01-05 12:14:38 +00:00
} ;
//# sourceMappingURL=vitepress___@vue_devtools-api.js.map