@sentinel-it/meowmeow-sdk 1.0.0-rc.b28bb80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +202 -0
- package/dist/index.d.ts +431 -0
- package/dist/meowmeow-sdk.esm.js +14503 -0
- package/dist/meowmeow-sdk.esm.js.map +1 -0
- package/dist/meowmeow-sdk.js +808 -0
- package/dist/meowmeow-sdk.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meowmeow-sdk.js","sources":["../node_modules/.pnpm/@vue+shared@3.5.32/node_modules/@vue/shared/dist/shared.esm-bundler.js","../node_modules/.pnpm/@vue+reactivity@3.5.32/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../node_modules/.pnpm/@vue+runtime-core@3.5.32/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../node_modules/.pnpm/@vue+runtime-dom@3.5.32/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../src/core/events/EventEmitter.ts","../src/core/types/errors.ts","../src/core/client/Room.ts","../node_modules/.pnpm/decode-uri-component@0.4.1/node_modules/decode-uri-component/index.js","../node_modules/.pnpm/filter-obj@5.1.0/node_modules/filter-obj/index.js","../node_modules/.pnpm/split-on-first@3.0.0/node_modules/split-on-first/index.js","../node_modules/.pnpm/query-string@9.3.1/node_modules/query-string/base.js","../src/utils/logger.ts","../src/utils/isLocalhost.ts","../src/utils/pull-kit.ts","../src/utils/decorate-kit/core/decorate-with.ts","../src/utils/decorate-kit/resolve/decorator.ts","../src/utils/decorate-kit/utils.ts","../src/utils/decorate-kit/concurrency/single/decorator.ts","../src/core/client/WebSocketConnection.ts","../src/utils/orderGuard/OrderGuard.ts","../src/utils/orderGuard/OriginOrderGuard.ts","../src/core/client/MeowMeowClient.ts","../node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/mobx.esm.js","../src/core/store/MeowMeowStore.ts","../src/ui/i18n/index.ts","../src/ui/i18n/locales/en.ts","../src/ui/i18n/locales/th.ts","../src/ui/i18n/locales/zh.ts","../src/ui/i18n/locales/id.ts","../src/ui/i18n/locales/ko.ts","../src/ui/i18n/locales/ja.ts","../src/ui/i18n/locales/vi.ts","../src/ui/i18n/locales/fr.ts","../src/ui/i18n/locales/es.ts","../src/ui/i18n/locales/pt.ts","../src/ui/i18n/locales/tl.ts","../node_modules/.pnpm/marked@18.0.2/node_modules/marked/lib/marked.esm.js","../src/ui/utils/emoji.ts","../src/ui/stores/store.ts","../src/ui/components/ChatPreview.vue","../src/ui/utils/guard-custom-elements.ts","../node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.js","../src/ui/components/EmojiPicker.vue","../src/ui/components/ChatRoom.vue","../src/ui/components/DebugPanel.vue","../src/ui/components/DebugLanguage.vue","../src/ui/App.vue","../src/ui/MeowMeow.ts"],"sourcesContent":["/**\n* @vue/shared v3.5.32\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.32\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.__v_skip = true;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n activeEffectScope = this.prevScope;\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nfunction toWrapped(target, item) {\n if (isReadonly(target)) {\n return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item);\n }\n return toReactive(item);\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, (item) => toWrapped(this, item));\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toWrapped(this, value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(\n this,\n \"filter\",\n fn,\n thisArg,\n (v) => v.map((item) => toWrapped(this, item)),\n arguments\n );\n },\n find(fn, thisArg) {\n return apply(\n this,\n \"find\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(\n this,\n \"findLast\",\n fn,\n thisArg,\n (item) => toWrapped(this, item),\n arguments\n );\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", (item) => toWrapped(this, item));\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n let wrappedFn = fn;\n let wrapInitialAccumulator = false;\n if (arr !== self) {\n if (needsWrap) {\n wrapInitialAccumulator = args.length === 0;\n wrappedFn = function(acc, item, index) {\n if (wrapInitialAccumulator) {\n wrapInitialAccumulator = false;\n acc = toWrapped(self, acc);\n }\n return fn.call(this, acc, toWrapped(self, item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n const result = arr[method](wrappedFn, ...args);\n return wrapInitialAccumulator ? toWrapped(self, result) : result;\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key);\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return extend(\n // inheriting all iterator properties\n Object.create(innerIterator),\n {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n }\n }\n );\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n const target = toRaw(this);\n const proto = getProto(target);\n const rawValue = toRaw(value);\n const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value;\n const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue);\n if (!hadKey) {\n target.add(valueToAdd);\n trigger(target, \"add\", valueToAdd, valueToAdd);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\n// @__NO_SIDE_EFFECTS__\nfunction reactive(target) {\n if (/* @__PURE__ */ isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReactive(value) {\n if (/* @__PURE__ */ isReadonly(value)) {\n return /* @__PURE__ */ isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\n// @__NO_SIDE_EFFECTS__\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? /* @__PURE__ */ toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value;\n\n// @__NO_SIDE_EFFECTS__\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\n// @__NO_SIDE_EFFECTS__\nfunction ref(value) {\n return createRef(value, false);\n}\n// @__NO_SIDE_EFFECTS__\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (/* @__PURE__ */ isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, key, _defaultValue) {\n this._object = _object;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n this._key = isSymbol(key) ? key : String(key);\n this._raw = toRaw(_object);\n let shallow = true;\n let obj = _object;\n if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {\n do {\n shallow = !isProxy(obj) || isShallow(obj);\n } while (shallow && (obj = obj[\"__v_raw\"]));\n }\n this._shallow = shallow;\n }\n get value() {\n let val = this._object[this._key];\n if (this._shallow) {\n val = unref(val);\n }\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) {\n const nestedRef = this._object[this._key];\n if (/* @__PURE__ */ isRef(nestedRef)) {\n nestedRef.value = newVal;\n return;\n }\n }\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(this._raw, this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction toRef(source, key, defaultValue) {\n if (/* @__PURE__ */ isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return /* @__PURE__ */ ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n return new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.32\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, watch as watch$1, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, customRef, shallowReactive, trigger, ReactiveEffect, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, hyphenate, hasChanged, looseToNumber, isModelListener, looseEqual, EMPTY_ARR, toRawType, makeMap, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst setHmrUpdating = (v) => {\n try {\n return isHmrUpdating;\n } finally {\n isHmrUpdating = v;\n }\n};\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nfunction provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentInstance || currentInstance.isMounted) {\n warn$1(`provide() can only be used inside setup().`);\n }\n }\n if (currentInstance) {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = getCurrentInstance();\n if (instance || currentApp) {\n let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(getCurrentInstance() || currentApp);\n}\n\nconst ssrContextKey = /* @__PURE__ */ Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nconst pendingMounts = /* @__PURE__ */ new WeakMap();\nconst TeleportEndKey = /* @__PURE__ */ Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n const mount = (vnode, container2, anchor2) => {\n if (vnode.shapeFlag & 16) {\n mountChildren(\n vnode.children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = (vnode = n2) => {\n const disabled2 = isTeleportDisabled(vnode.props);\n const target = vnode.target = resolveTarget(vnode.props, querySelector);\n const targetAnchor = prepareAnchor(target, vnode, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled2) {\n mount(vnode, target, targetAnchor);\n updateCssVars(vnode, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled2) {\n warn$1(\"Invalid Teleport target on mount:\", target, `(${typeof target})`);\n }\n };\n const queuePendingMount = (vnode) => {\n const mountJob = () => {\n if (pendingMounts.get(vnode) !== mountJob) return;\n pendingMounts.delete(vnode);\n if (isTeleportDisabled(vnode.props)) {\n mount(vnode, container, vnode.anchor);\n updateCssVars(vnode, true);\n }\n mountToTarget(vnode);\n };\n pendingMounts.set(vnode, mountJob);\n queuePostRenderEffect(mountJob, parentSuspense);\n };\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {\n queuePendingMount(n2);\n return;\n }\n if (disabled) {\n mount(n2, container, mainAnchor);\n updateCssVars(n2, true);\n }\n mountToTarget();\n } else {\n n2.el = n1.el;\n const mainAnchor = n2.anchor = n1.anchor;\n const pendingMount = pendingMounts.get(n1);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(n1);\n queuePendingMount(n2);\n return;\n }\n n2.targetStart = n1.targetStart;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n let shouldRemove = doRemove || !isTeleportDisabled(props);\n const pendingMount = pendingMounts.get(vnode);\n if (pendingMount) {\n pendingMount.flags |= 8;\n pendingMounts.delete(vnode);\n shouldRemove = false;\n }\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateAnchor(target2, targetNode) {\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n }\n function hydrateDisabledTeleport(node2, vnode2) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(node, vnode);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(\n target,\n vnode,\n createText,\n insert,\n // if target is the same as the main view, insert anchors before current node\n // to avoid hydrating mismatch\n parentNode(node) === target ? node : null\n );\n }\n } else {\n vnode.anchor = nextSibling(node);\n hydrateAnchor(target, targetNode);\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode);\n vnode.targetStart = node;\n vnode.targetAnchor = nextSibling(node);\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert, anchor = null) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target, anchor);\n insert(targetAnchor, target, anchor);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = /* @__PURE__ */ Symbol(\"_leaveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n const done = el[enterCbKey].bind(null, false);\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n const done = el[leaveCbKey].bind(null, false);\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n if (!!(process.env.NODE_ENV !== \"production\") && isTemplateRefKey(refs, key)) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\nfunction isTemplateRefKey(refs, key) {\n let desc;\n return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable);\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n if (isTemplateRefKey(refs, key)) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2, key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(ref2)) {\n return false;\n }\n if (key && isTemplateRefKey(refs, key)) {\n return false;\n }\n return true;\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n const oldRawRefAtom = oldRawRef;\n if (canSetRef(oldRef, oldRawRefAtom.k)) {\n oldRef.value = null;\n }\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref, rawRef.k)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref, rawRef.k)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement && !isReservedProp(key)) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type\n );\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && (!Number.isInteger(source) || source < 0)) {\n warn$1(\n `The v-for range expects a positive integer value but got ${source}.`\n );\n ret = [];\n } else {\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (hasOwn(props, key)) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, props, type }\n }, key) {\n let cssModules;\n return !!(accessCache[key] || __VUE_OPTIONS_API__ && data !== EMPTY_OBJ && key[0] !== \"$\" && hasOwn(data, key) || hasSetupBinding(setupState, key) || hasOwn(props, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key) || (cssModules = type.__cssModules) && cssModules[key]);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n});\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext(\"useSlots\").slots;\n}\nfunction useAttrs() {\n return getContext(\"useAttrs\").attrs;\n}\nfunction getContext(calledFunctionName) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`${calledFunctionName}() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\")) continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b) return a || b;\n if (isArray(a) && isArray(b)) return a.concat(b);\n return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n const inSSRSetup = isInSSRComponentSetup;\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (inSSRSetup) {\n setInSSRSetupState(false);\n }\n const restore = () => {\n setCurrentInstance(ctx);\n if (inSSRSetup) {\n setInSSRSetupState(true);\n }\n };\n const cleanup = () => {\n if (getCurrentInstance() !== ctx) ctx.scope.off();\n unsetCurrentInstance();\n if (inSSRSetup) {\n setInSSRSetupState(false);\n }\n };\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n restore();\n Promise.resolve().then(() => Promise.resolve().then(cleanup));\n throw e;\n });\n }\n return [\n awaitable,\n () => {\n restore();\n Promise.resolve().then(cleanup);\n }\n ];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val,\n enumerable: true\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components) instance.components = components;\n if (directives) instance.directives = directives;\n if (serverPrefetch) {\n markAsyncBoundary(instance);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n {\n watch(getter, handler);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n {\n watch(getter, raw.bind(publicThis));\n }\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to) return from;\n if (!from) return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const pluginCleanupFns = [];\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n const cloned = cloneVNode(vnode);\n cloned.el = null;\n render(cloned, rootContainer, namespace);\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getComponentPublicInstance(vnode.component);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n onUnmount(cleanupFn) {\n if (!!(process.env.NODE_ENV !== \"production\") && typeof cleanupFn !== \"function\") {\n warn$1(\n `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n );\n }\n pluginCleanupFns.push(cleanupFn);\n },\n unmount() {\n if (isMounted) {\n callWithAsyncErrorHandling(\n pluginCleanupFns,\n app._instance,\n 16\n );\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n if (hasOwn(context.provides, key)) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n } else {\n warn$1(\n `App already provides property with key \"${String(key)}\" inherited from its parent element. It will be overwritten with the new value.`\n );\n }\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useModel() called without active instance.`);\n return ref();\n }\n const camelizedName = camelize(name);\n if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][camelizedName]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return ref();\n }\n const hyphenatedName = hyphenate(name);\n const modifiers = getModelModifiers(props, camelizedName);\n const res = customRef((track, trigger) => {\n let localValue;\n let prevSetValue = EMPTY_OBJ;\n let prevEmittedValue;\n watchSyncEffect(() => {\n const propValue = props[camelizedName];\n if (hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const emittedValue = options.set ? options.set(value) : value;\n if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {\n return;\n }\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, emittedValue);\n if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {\n trigger();\n }\n prevSetValue = value;\n prevEmittedValue = emittedValue;\n }\n };\n });\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\nconst getModelModifiers = (props, modelName) => {\n return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];\n};\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(camelize(event))}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modifiers = isModelListener && getModelModifiers(props, event.slice(7));\n if (modifiers) {\n if (modifiers.trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (modifiers.number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nconst mixinEmitsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = __VUE_OPTIONS_API__ && asMixin ? mixinEmitsCache : appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return shallowReadonly(attrs);\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n null\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs, false, true);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root, null, false, true);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n setTransitionHooks(root, vnode.transition);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction hasPropValueChanged(nextProps, prevProps, key) {\n const nextProp = nextProps[key];\n const prevProp = prevProps[key];\n if (key === \"style\" && isObject(nextProp) && isObject(prevProp)) {\n return !looseEqual(nextProp, prevProp);\n }\n return nextProp !== prevProp;\n}\nfunction updateHOCHostEl({ vnode, parent, suspense }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.suspense.vnode.el = root.el = el;\n vnode = root;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n if (suspense && suspense.activeBranch === vnode) {\n suspense.vnode.el = el;\n }\n}\n\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = createInternalObject();\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId) return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance.attrs, \"set\", \"\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n if (instance.ce) {\n instance.ce._setProp(key, value);\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = __VUE_OPTIONS_API__ && asMixin ? mixinPropsCache : appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys) needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n const propType = prop.type;\n let shouldCast = false;\n let shouldCastTrue = true;\n if (isArray(propType)) {\n for (let index = 0; index < propType.length; ++index) {\n const type = propType[index];\n const typeName = isFunction(type) && type.name;\n if (typeName === \"Boolean\") {\n shouldCast = true;\n break;\n } else if (typeName === \"String\") {\n shouldCastTrue = false;\n }\n }\n } else {\n shouldCast = isFunction(propType) && propType.name === \"Boolean\";\n }\n prop[0 /* shouldCast */] = shouldCast;\n prop[1 /* shouldCastTrue */] = shouldCastTrue;\n if (shouldCast || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));\n for (const key in options) {\n let opt = options[key];\n if (opt == null) continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !camelizePropsKey.includes(key)\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (expectedType === \"null\") {\n valid = value === null;\n } else if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key === \"_\" || key === \"_ctx\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && !(ctx === null && currentRenderingInstance) && !(ctx && ctx.root !== currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key)) continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n for (const key in children) {\n if (optimized || !isInternalKey(key)) {\n slots[key] = children[key];\n }\n }\n};\nconst initSlots = (instance, children, optimized) => {\n const slots = instance.slots = createInternalObject();\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n assignSlots(slots, children, optimized);\n if (optimized) {\n def(slots, \"_\", type, true);\n }\n } else {\n normalizeObjectSlots(children, slots);\n }\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n }\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n assignSlots(slots, children, optimized);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n assignSlots(slots, children, optimized);\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n const measureName = `<${formatComponentName(instance, instance.type)}> ${type}`;\n perf.mark(endTag);\n perf.measure(measureName, startTag, endTag);\n perf.clearMeasures(measureName);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n } else if (ref == null && n1 && n1.ref != null) {\n setRef(n1.ref, null, parentSuspense, n1, true);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n const customElement = n1.el && n1.el._isVueCE ? n1.el : null;\n try {\n if (customElement) {\n customElement._beginPatch();\n }\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } finally {\n if (customElement) {\n customElement._endPatch();\n }\n }\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(el, \"__vnode\", vnode, true);\n def(el, \"__vueParentComponent\", parentComponent, true);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n const isHmr = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating;\n queuePostRenderEffect(() => {\n let prev;\n if (!!(process.env.NODE_ENV !== \"production\")) prev = setHmrUpdating(isHmr);\n try {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\")) setHmrUpdating(prev);\n }\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n el.__vnode = n2;\n }\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n hostSetElementText(el, \"\");\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n parentComponent\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key)) continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren && n1.dynamicChildren.length === dynamicChildren.length) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance, false, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) initialVNode.el = null;\n if (instance.asyncDep) {\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n initialVNode.placeholder = placeholder.el;\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent, root, type } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode && type.__asyncHydrate) {\n type.__asyncHydrate(\n el,\n instance,\n hydrateSubTree\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (root.ce && root.ce._hasShadowRoot()) {\n root.ce._injectChildStyle(\n type,\n instance.parent ? instance.parent.type : void 0\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n queuePostRenderEffect(() => {\n if (!instance.isUnmounted) update();\n }, parentSuspense);\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n instance.scope.on();\n const effect = instance.effect = new ReactiveEffect(componentUpdateFn);\n instance.scope.off();\n const update = instance.update = effect.run.bind(effect);\n const job = instance.job = effect.runIfDirty.bind(effect);\n job.i = instance;\n job.id = instance.uid;\n effect.scheduler = () => queueJob(job);\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchorVNode = c2[nextIndex + 1];\n const anchor = nextIndex + 1 < l2 ? (\n // #13559, #14173 fallback to el placeholder for unresolved async component\n anchorVNode.el || resolveAsyncComponentPlaceholder(anchorVNode)\n ) : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => {\n if (vnode.ctx.isUnmounted) {\n hostRemove(el);\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const performLeave = () => {\n if (el._isLeaving) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs,\n cacheIndex,\n memo\n } = vnode;\n if (patchFlag === -2) {\n optimized = false;\n }\n if (ref != null) {\n pauseTracking();\n setRef(ref, null, parentSuspense, vnode, true);\n resetTracking();\n }\n if (cacheIndex != null) {\n parentComponent.renderCache[cacheIndex] = void 0;\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #5154\n // when v-once is used inside a block, setBlockTracking(-1) marks the\n // parent block with hasOnce: true\n // so that it doesn't take the fast path during unmount - otherwise\n // components nested in v-once are never unmounted.\n !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n const shouldInvalidateMemo = memo != null && cacheIndex == null;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs || shouldInvalidateMemo) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n if (shouldInvalidateMemo) {\n vnode.el = null;\n }\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, job, subTree, um, m, a } = instance;\n invalidateMount(m);\n invalidateMount(a);\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (job) {\n job.flags |= 8;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n const el = hostNextSibling(vnode.anchor || vnode.el);\n const teleportEnd = el && el[TeleportEndKey];\n return teleportEnd ? hostNextSibling(teleportEnd) : el;\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n let instance;\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n instance = container._vnode.component;\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n container._vnode = vnode;\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs(instance);\n flushPostFlushCbs();\n isFlushing = false;\n }\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, job }, allowed) {\n if (allowed) {\n effect.flags |= 32;\n job.flags |= 4;\n } else {\n effect.flags &= -33;\n job.flags &= -5;\n }\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow && c2.patchFlag !== -2)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n if (c2.patchFlag === -1) {\n c2 = ch2[i] = cloneIfMounted(c2);\n }\n c2.el = c1.el;\n }\n if (c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n c2.el && (c2.el.__vnode = c2);\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\nfunction invalidateMount(hooks) {\n if (hooks) {\n for (let i = 0; i < hooks.length; i++)\n hooks[i].flags |= 8;\n }\n}\nfunction resolveAsyncComponentPlaceholder(anchorVnode) {\n if (anchorVnode.placeholder) {\n return anchorVnode.placeholder;\n }\n const instance = anchorVnode.component;\n if (instance) {\n return resolveAsyncComponentPlaceholder(instance.subTree);\n }\n return null;\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(pendingBranch, newBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n `<Suspense> is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n isFallbackMountPending: false,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2,\n isInFallback\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n if (isInFallback && vnode2.ssFallback) {\n vnode2.ssFallback.el = null;\n }\n }\n };\n }\n if (activeBranch && !suspense.isFallbackMountPending) {\n if (parentNode(activeBranch.el) === container2) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n if (!delayEnter && isInFallback && vnode2.ssFallback) {\n queuePostRenderEffect(() => vnode2.ssFallback.el = null, suspense);\n }\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n suspense.isFallbackMountPending = false;\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n suspense.isFallbackMountPending = false;\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n suspense.isFallbackMountPending = true;\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect, optimized2) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n unsetCurrentInstance();\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized2\n );\n if (placeholder) {\n vnode2.placeholder = null;\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n const suspensible = vnode.props && vnode.props.suspensible;\n return suspensible != null && suspensible !== false;\n}\n\nconst Fragment = /* @__PURE__ */ Symbol.for(\"v-fgt\");\nconst Text = /* @__PURE__ */ Symbol.for(\"v-txt\");\nconst Comment = /* @__PURE__ */ Symbol.for(\"v-cmt\");\nconst Static = /* @__PURE__ */ Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value, inVOnce = false) {\n isBlockTreeEnabled += value;\n if (value < 0 && currentBlock && inVOnce) {\n currentBlock.hasOnce = true;\n }\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && n1.component) {\n const dirtyInstances = hmrDirtyComponents.get(n2.type);\n if (dirtyInstances && dirtyInstances.has(n1.component)) {\n n1.shapeFlag &= -257;\n n2.shapeFlag &= -513;\n return false;\n }\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetStart: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag = -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props) return null;\n return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n const { props, ref, patchFlag, children, transition } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetStart: vnode.targetStart,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n placeholder: vnode.placeholder,\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n if (transition && cloneTransition) {\n setTransitionHooks(\n cloned,\n transition.clone(cloned)\n );\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (isVNode(child)) {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !isInternalObject(children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n } else if (incoming == null && existing == null && // mergeProps({ 'onUpdate:modelValue': undefined }) should not retain\n // the model listener.\n !isModelListener(key)) {\n ret[key] = incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n job: null,\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n ids: parent ? parent.ids : [\"\", 0, 0],\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children, optimized || isSSR);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n pauseTracking();\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n const isAsyncSetup = isPromise(setupResult);\n resetTracking();\n reset();\n if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {\n markAsyncBoundary(instance);\n }\n if (isAsyncSetup) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = formatComponentName(instance, Component);\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = Component.template || __VUE_OPTIONS_API__ && resolveMergedOptions(instance).template;\n if (template) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(\n extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n Component.render = compile(template, finalCompilerOptions);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n if (__VUE_OPTIONS_API__ && true) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function: `, Component);\n }\n }\n}\nconst attrsProxyHandlers = !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} : {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n }\n};\nfunction getSlotsProxy(instance) {\n return new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n let attrsProxy;\n let slotsProxy;\n return Object.freeze({\n get attrs() {\n return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n },\n get slots() {\n return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n attrs: new Proxy(instance.attrs, attrsProxyHandlers),\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getComponentPublicInstance(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n } else {\n return instance.proxy;\n }\n}\nconst classifyRE = /(?:^|[-_])\\w/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(instance.components) || instance.parent && inferFromRegistry(\n instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nfunction h(type, propsOrChildren, children) {\n try {\n setBlockTracking(-1);\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n } finally {\n setBlockTracking(1);\n }\n}\n\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n __vue_custom_formatter: true,\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n pauseTracking();\n const value = obj.value;\n resetTracking();\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n formatValue(value),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n ret.cacheIndex = index;\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.5.32\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode,\n getComponentPublicInstance,\n ensureValidVNode,\n pushWarningContext,\n popWarningContext\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = null;\nconst compatUtils = null;\nconst DeprecationTypes = null;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","/**\n* @vue/runtime-dom v3.5.32\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { warn, BaseTransitionPropsValidators, h, BaseTransition, assertNumber, getCurrentInstance, onBeforeUpdate, queuePostFlushCb, onMounted, watch, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, nextTick, unref, createVNode, defineComponent, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, createRenderer, isRuntimeOnly, createHydrationRenderer } from '@vue/runtime-core';\nexport * from '@vue/runtime-core';\nimport { extend, isObject, toNumber, isArray, NOOP, normalizeCssVarValue, isString, hyphenate, capitalize, includeBooleanAttr, isSymbol, isSpecialBooleanAttr, isFunction, isOn, isModelListener, camelize as camelize$1, hasOwn, isPlainObject, EMPTY_OBJ, looseIndexOf, isSet, looseEqual, looseToNumber, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';\n\nlet policy = void 0;\nconst tt = typeof window !== \"undefined\" && window.trustedTypes;\nif (tt) {\n try {\n policy = /* @__PURE__ */ tt.createPolicy(\"vue\", {\n createHTML: (val) => val\n });\n } catch (e) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Error creating trusted types policy: ${e}`);\n }\n}\nconst unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, namespace, is, props) => {\n const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text) => doc.createTextNode(text),\n createComment: (text) => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, namespace, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling)) break;\n }\n } else {\n templateContainer.innerHTML = unsafeToTrustedHTML(\n namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content\n );\n const template = templateContainer.content;\n if (namespace === \"svg\" || namespace === \"mathml\") {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = /* @__PURE__ */ Symbol(\"_vtc\");\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = /* @__PURE__ */ extend(\n {},\n BaseTransitionPropsValidators,\n DOMTransitionPropsValidators\n);\nconst decorate$1 = (t) => {\n t.displayName = \"Transition\";\n t.props = TransitionPropsValidators;\n return t;\n};\nconst Transition = /* @__PURE__ */ decorate$1(\n (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots)\n);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const {\n name = \"v\",\n type,\n duration,\n enterFromClass = `${name}-enter-from`,\n enterActiveClass = `${name}-enter-active`,\n enterToClass = `${name}-enter-to`,\n appearFromClass = enterFromClass,\n appearActiveClass = enterActiveClass,\n appearToClass = enterToClass,\n leaveFromClass = `${name}-leave-from`,\n leaveActiveClass = `${name}-leave-active`,\n leaveToClass = `${name}-leave-to`\n } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const {\n onBeforeEnter,\n onEnter,\n onEnterCancelled,\n onLeave,\n onLeaveCancelled,\n onBeforeAppear = onBeforeEnter,\n onAppear = onEnter,\n onAppearCancelled = onEnterCancelled\n } = baseProps;\n const finishEnter = (el, isAppear, done, isCancelled) => {\n el._enterCancelled = isCancelled;\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n if (!el._enterCancelled) {\n forceReflow(el);\n addTransitionClass(el, leaveActiveClass);\n } else {\n addTransitionClass(el, leaveActiveClass);\n forceReflow(el);\n }\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false, void 0, true);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true, void 0, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(res, \"<transition> explicit duration\");\n }\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el[vtcKey] = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout != null) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(?:transform|all)(?:,|$)/.test(\n getStyleProperties(`${TRANSITION}Property`).toString()\n );\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n if (s === \"auto\") return 0;\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow(el) {\n const targetDocument = el ? el.ownerDocument : document;\n return targetDocument.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el[vtcKey];\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\n\nconst vShowOriginalDisplay = /* @__PURE__ */ Symbol(\"_vod\");\nconst vShowHidden = /* @__PURE__ */ Symbol(\"_vsh\");\nconst vShow = {\n // used for prop mismatch check during hydration\n name: \"show\",\n beforeMount(el, { value }, { transition }) {\n el[vShowOriginalDisplay] = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue) return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nfunction setDisplay(el, value) {\n el.style.display = value ? el[vShowOriginalDisplay] : \"none\";\n el[vShowHidden] = !value;\n}\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: \"none\" } };\n }\n };\n}\n\nconst CSS_VAR_TEXT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n Array.from(\n document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n ).forEach((node) => setVarsOnNode(node, vars));\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.getCssVars = () => getter(instance.proxy);\n }\n const setVars = () => {\n const vars = getter(instance.proxy);\n if (instance.ce) {\n setVarsOnNode(instance.ce, vars);\n } else {\n setVarsOnVNode(instance.subTree, vars);\n }\n updateTeleports(vars);\n };\n onBeforeUpdate(() => {\n queuePostFlushCb(setVars);\n });\n onMounted(() => {\n watch(setVars, NOOP, { flush: \"post\" });\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n } else if (vnode.type === Fragment) {\n vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n } else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor) break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n let cssText = \"\";\n for (const key in vars) {\n const value = normalizeCssVarValue(vars[key]);\n style.setProperty(`--${key}`, value);\n cssText += `--${key}: ${value};`;\n }\n style[CSS_VAR_TEXT] = cssText;\n }\n}\n\nconst displayRE = /(?:^|;)\\s*display\\s*:/;\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n let hasControlledDisplay = false;\n if (next && !isCssString) {\n if (prev) {\n if (!isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n } else {\n for (const prevStyle of prev.split(\";\")) {\n const key = prevStyle.slice(0, prevStyle.indexOf(\":\")).trim();\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n }\n for (const key in next) {\n if (key === \"display\") {\n hasControlledDisplay = true;\n }\n setStyle(style, key, next[key]);\n }\n } else {\n if (isCssString) {\n if (prev !== next) {\n const cssVarText = style[CSS_VAR_TEXT];\n if (cssVarText) {\n next += \";\" + cssVarText;\n }\n style.cssText = next;\n hasControlledDisplay = displayRE.test(next);\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n }\n if (vShowOriginalDisplay in el) {\n el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : \"\";\n if (el[vShowHidden]) {\n style.display = \"none\";\n }\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null) val = \"\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (semicolonRE.test(val)) {\n warn(\n `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n );\n }\n }\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(\n hyphenate(prefixed),\n val.replace(importantRE, \"\"),\n \"important\"\n );\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(\n key,\n isBoolean ? \"\" : isSymbol(value) ? String(value) : value\n );\n }\n }\n}\n\nfunction patchDOMProp(el, key, value, parentComponent, attrName) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (value != null) {\n el[key] = key === \"innerHTML\" ? unsafeToTrustedHTML(value) : value;\n }\n return;\n }\n const tag = el.tagName;\n if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n !tag.includes(\"-\")) {\n const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") || \"\" : el.value;\n const newValue = value == null ? (\n // #11647: value should be set as empty string for null and undefined,\n // but <input type=\"checkbox\"> should be set as 'on'.\n el.type === \"checkbox\" ? \"on\" : \"\"\n ) : String(value);\n if (oldValue !== newValue || !(\"_value\" in el)) {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n el._value = value;\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n warn(\n `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n e\n );\n }\n }\n needRemove && el.removeAttribute(attrName || key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nconst veiKey = /* @__PURE__ */ Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n const invokers = el[veiKey] || (el[veiKey] = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(\n !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue,\n instance\n );\n addEventListener(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n if (!e._vts) {\n e._vts = Date.now();\n } else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(\n patchStopImmediatePropagation(e, invoker.value),\n instance,\n 5,\n [e]\n );\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction sanitizeEventValue(value, propName) {\n if (isFunction(value) || isArray(value)) {\n return value;\n }\n warn(\n `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`\n );\n return NOOP;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map(\n (fn) => (e2) => !e2._stopped && fn && fn(e2)\n );\n } else {\n return value;\n }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {\n const isSVG = namespace === \"svg\";\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue);\n if (!el.tagName.includes(\"-\") && (key === \"value\" || key === \"checked\" || key === \"selected\")) {\n patchAttr(el, key, nextValue, isSVG, parentComponent, key !== \"value\");\n }\n } else if (\n // #11081 force set props for possible async custom element\n el._isVueCE && // #12408 check if it's declared prop or it's async custom element\n (shouldSetAsPropForVueCE(el, key) || // @ts-expect-error _def is private\n el._def.__asyncLoader && (/[A-Z]/.test(key) || !isString(nextValue)))\n ) {\n patchDOMProp(el, camelize$1(key), nextValue, parentComponent, key);\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && isNativeOn(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\" || key === \"autocorrect\") {\n return false;\n }\n if (key === \"sandbox\" && el.tagName === \"IFRAME\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (key === \"width\" || key === \"height\") {\n const tag = el.tagName;\n if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n return false;\n }\n }\n if (isNativeOn(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\nfunction shouldSetAsPropForVueCE(el, key) {\n const props = (\n // @ts-expect-error _def is private\n el._def.props\n );\n if (!props) {\n return false;\n }\n const camelKey = camelize$1(key);\n return Array.isArray(props) ? props.some((prop) => camelize$1(prop) === camelKey) : Object.keys(props).some((prop) => camelize$1(prop) === camelKey);\n}\n\nconst REMOVAL = {};\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, extraOptions, _createApp) {\n let Comp = defineComponent(options, extraOptions);\n if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, _createApp);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\nconst defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {\n return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);\n});\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, _createApp = createApp) {\n super();\n this._def = _def;\n this._props = _props;\n this._createApp = _createApp;\n this._isVueCE = true;\n /**\n * @internal\n */\n this._instance = null;\n /**\n * @internal\n */\n this._app = null;\n /**\n * @internal\n */\n this._nonce = this._def.nonce;\n this._connected = false;\n this._resolved = false;\n this._patching = false;\n this._dirty = false;\n this._numberProps = null;\n this._styleChildren = /* @__PURE__ */ new WeakSet();\n this._styleAnchors = /* @__PURE__ */ new WeakMap();\n this._ob = null;\n if (this.shadowRoot && _createApp !== createApp) {\n this._root = this.shadowRoot;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n warn(\n `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n );\n }\n if (_def.shadowRoot !== false) {\n this.attachShadow(\n extend({}, _def.shadowRootOptions, {\n mode: \"open\"\n })\n );\n this._root = this.shadowRoot;\n } else {\n this._root = this;\n }\n }\n }\n connectedCallback() {\n if (!this.isConnected) return;\n if (!this.shadowRoot && !this._resolved) {\n this._parseSlots();\n }\n this._connected = true;\n let parent = this;\n while (parent = parent && // #12479 should check assignedSlot first to get correct parent\n (parent.assignedSlot || parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n this._parent = parent;\n break;\n }\n }\n if (!this._instance) {\n if (this._resolved) {\n this._mount(this._def);\n } else {\n if (parent && parent._pendingResolve) {\n this._pendingResolve = parent._pendingResolve.then(() => {\n this._pendingResolve = void 0;\n this._resolveDef();\n });\n } else {\n this._resolveDef();\n }\n }\n }\n }\n _setParent(parent = this._parent) {\n if (parent) {\n this._instance.parent = parent._instance;\n this._inheritParentContext(parent);\n }\n }\n _inheritParentContext(parent = this._parent) {\n if (parent && this._app) {\n Object.setPrototypeOf(\n this._app._context.provides,\n parent._instance.provides\n );\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n if (this._ob) {\n this._ob.disconnect();\n this._ob = null;\n }\n this._app && this._app.unmount();\n if (this._instance) this._instance.ce = void 0;\n this._app = this._instance = null;\n if (this._teleportTargets) {\n this._teleportTargets.clear();\n this._teleportTargets = void 0;\n }\n }\n });\n }\n _processMutations(mutations) {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n if (this._pendingResolve) {\n return;\n }\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n this._ob = new MutationObserver(this._processMutations.bind(this));\n this._ob.observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n this._resolved = true;\n this._pendingResolve = void 0;\n const { props, styles } = def;\n let numberProps;\n if (props && !isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n if (key in this._props) {\n this._props[key] = toNumber(this._props[key]);\n }\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize$1(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n this._resolveProps(def);\n if (this.shadowRoot) {\n this._applyStyles(styles);\n } else if (!!(process.env.NODE_ENV !== \"production\") && styles) {\n warn(\n \"Custom element style injection is not supported when using shadowRoot: false\"\n );\n }\n this._mount(def);\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n this._pendingResolve = asyncDef().then((def) => {\n def.configureApp = this._def.configureApp;\n resolve(this._def = def, true);\n });\n } else {\n resolve(this._def);\n }\n }\n _mount(def) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) && !def.name) {\n def.name = \"VueElement\";\n }\n this._app = this._createApp(def);\n this._inheritParentContext();\n if (def.configureApp) {\n def.configureApp(this._app);\n }\n this._app._ceVNode = this._createVNode();\n this._app.mount(this._root);\n const exposed = this._instance && this._instance.exposed;\n if (!exposed) return;\n for (const key in exposed) {\n if (!hasOwn(this, key)) {\n Object.defineProperty(this, key, {\n // unwrap ref to be consistent with public instance behavior\n get: () => unref(exposed[key])\n });\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`Exposed property \"${key}\" already exists on custom element.`);\n }\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key]);\n }\n }\n for (const key of declaredPropKeys.map(camelize$1)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val, true, !this._patching);\n }\n });\n }\n }\n _setAttr(key) {\n if (key.startsWith(\"data-v-\")) return;\n const has = this.hasAttribute(key);\n let value = has ? this.getAttribute(key) : REMOVAL;\n const camelKey = camelize$1(key);\n if (has && this._numberProps && this._numberProps[camelKey]) {\n value = toNumber(value);\n }\n this._setProp(camelKey, value, false, true);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = false) {\n if (val !== this._props[key]) {\n this._dirty = true;\n if (val === REMOVAL) {\n delete this._props[key];\n } else {\n this._props[key] = val;\n if (key === \"key\" && this._app) {\n this._app._ceVNode.key = val;\n }\n }\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n const ob = this._ob;\n if (ob) {\n this._processMutations(ob.takeRecords());\n ob.disconnect();\n }\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n ob && ob.observe(this, { attributes: true });\n }\n }\n }\n _update() {\n const vnode = this._createVNode();\n if (this._app) vnode.appContext = this._app._context;\n render(vnode, this._root);\n }\n _createVNode() {\n const baseProps = {};\n if (!this.shadowRoot) {\n baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);\n }\n const vnode = createVNode(this._def, extend(baseProps, this._props));\n if (!this._instance) {\n vnode.ce = (instance) => {\n this._instance = instance;\n instance.ce = this;\n instance.isCE = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ceReload = (newStyles) => {\n if (this._styles) {\n this._styles.forEach((s) => this._root.removeChild(s));\n this._styles.length = 0;\n }\n this._styleAnchors.delete(this._def);\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(\n new CustomEvent(\n event,\n isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args }\n )\n );\n };\n instance.emit = (event, ...args) => {\n dispatch(event, args);\n if (hyphenate(event) !== event) {\n dispatch(hyphenate(event), args);\n }\n };\n this._setParent();\n };\n }\n return vnode;\n }\n _applyStyles(styles, owner, parentComp) {\n if (!styles) return;\n if (owner) {\n if (owner === this._def || this._styleChildren.has(owner)) {\n return;\n }\n this._styleChildren.add(owner);\n }\n const nonce = this._nonce;\n const root = this.shadowRoot;\n const insertionAnchor = parentComp ? this._getStyleAnchor(parentComp) || this._getStyleAnchor(this._def) : this._getRootStyleInsertionAnchor(root);\n let last = null;\n for (let i = styles.length - 1; i >= 0; i--) {\n const s = document.createElement(\"style\");\n if (nonce) s.setAttribute(\"nonce\", nonce);\n s.textContent = styles[i];\n root.insertBefore(s, last || insertionAnchor);\n last = s;\n if (i === 0) {\n if (!parentComp) this._styleAnchors.set(this._def, s);\n if (owner) this._styleAnchors.set(owner, s);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (owner) {\n if (owner.__hmrId) {\n if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();\n let entry = this._childStyles.get(owner.__hmrId);\n if (!entry) {\n this._childStyles.set(owner.__hmrId, entry = []);\n }\n entry.push(s);\n }\n } else {\n (this._styles || (this._styles = [])).push(s);\n }\n }\n }\n }\n _getStyleAnchor(comp) {\n if (!comp) {\n return null;\n }\n const anchor = this._styleAnchors.get(comp);\n if (anchor && anchor.parentNode === this.shadowRoot) {\n return anchor;\n }\n if (anchor) {\n this._styleAnchors.delete(comp);\n }\n return null;\n }\n _getRootStyleInsertionAnchor(root) {\n for (let i = 0; i < root.childNodes.length; i++) {\n const node = root.childNodes[i];\n if (!(node instanceof HTMLStyleElement)) {\n return node;\n }\n }\n return null;\n }\n /**\n * Only called when shadowRoot is false\n */\n _parseSlots() {\n const slots = this._slots = {};\n let n;\n while (n = this.firstChild) {\n const slotName = n.nodeType === 1 && n.getAttribute(\"slot\") || \"default\";\n (slots[slotName] || (slots[slotName] = [])).push(n);\n this.removeChild(n);\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _renderSlots() {\n const outlets = this._getSlots();\n const scopeId = this._instance.type.__scopeId;\n for (let i = 0; i < outlets.length; i++) {\n const o = outlets[i];\n const slotName = o.getAttribute(\"name\") || \"default\";\n const content = this._slots[slotName];\n const parent = o.parentNode;\n if (content) {\n for (const n of content) {\n if (scopeId && n.nodeType === 1) {\n const id = scopeId + \"-s\";\n const walker = document.createTreeWalker(n, 1);\n n.setAttribute(id, \"\");\n let child;\n while (child = walker.nextNode()) {\n child.setAttribute(id, \"\");\n }\n }\n parent.insertBefore(n, o);\n }\n } else {\n while (o.firstChild) parent.insertBefore(o.firstChild, o);\n }\n parent.removeChild(o);\n }\n }\n /**\n * @internal\n */\n _getSlots() {\n const roots = [this];\n if (this._teleportTargets) {\n roots.push(...this._teleportTargets);\n }\n const slots = /* @__PURE__ */ new Set();\n for (const root of roots) {\n const found = root.querySelectorAll(\"slot\");\n for (let i = 0; i < found.length; i++) {\n slots.add(found[i]);\n }\n }\n return Array.from(slots);\n }\n /**\n * @internal\n */\n _injectChildStyle(comp, parentComp) {\n this._applyStyles(comp.styles, comp, parentComp);\n }\n /**\n * @internal\n */\n _beginPatch() {\n this._patching = true;\n this._dirty = false;\n }\n /**\n * @internal\n */\n _endPatch() {\n this._patching = false;\n if (this._dirty && this._instance) {\n this._update();\n }\n }\n /**\n * @internal\n */\n _hasShadowRoot() {\n return this._def.shadowRoot !== false;\n }\n /**\n * @internal\n */\n _removeChildStyle(comp) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this._styleChildren.delete(comp);\n this._styleAnchors.delete(comp);\n if (this._childStyles && comp.__hmrId) {\n const oldStyles = this._childStyles.get(comp.__hmrId);\n if (oldStyles) {\n oldStyles.forEach((s) => this._root.removeChild(s));\n oldStyles.length = 0;\n }\n }\n }\n }\n}\nfunction useHost(caller) {\n const instance = getCurrentInstance();\n const el = instance && instance.ce;\n if (el) {\n return el;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!instance) {\n warn(\n `${caller || \"useHost\"} called without an active component instance.`\n );\n } else {\n warn(\n `${caller || \"useHost\"} can only be used in components defined via defineCustomElement.`\n );\n }\n }\n return null;\n}\nfunction useShadowRoot() {\n const el = !!(process.env.NODE_ENV !== \"production\") ? useHost(\"useShadowRoot\") : useHost();\n return el && el.shadowRoot;\n}\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = /* @__PURE__ */ Symbol(\"_moveCb\");\nconst enterCbKey = /* @__PURE__ */ Symbol(\"_enterCb\");\nconst decorate = (t) => {\n delete t.props.mode;\n return t;\n};\nconst TransitionGroupImpl = /* @__PURE__ */ decorate({\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(\n prevChildren[0].el,\n instance.vnode.el,\n moveClass\n )) {\n prevChildren = [];\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow(instance.vnode.el);\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el[moveCbKey] = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || e.propertyName.endsWith(\"transform\")) {\n el.removeEventListener(\"transitionend\", cb);\n el[moveCbKey] = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n prevChildren = [];\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = [];\n if (children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.el && child.el instanceof Element) {\n prevChildren.push(child);\n setTransitionHooks(\n child,\n resolveTransitionHooks(\n child,\n cssTransitionProps,\n state,\n instance\n )\n );\n positionMap.set(child, getPosition(child.el));\n }\n }\n }\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") && child.type !== Text) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n return createVNode(tag, null, children);\n };\n }\n});\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el[moveCbKey]) {\n el[moveCbKey]();\n }\n if (el[enterCbKey]) {\n el[enterCbKey]();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, getPosition(c.el));\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const el = c.el;\n const s = el.style;\n const rect = el.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n if (el.offsetWidth) scaleX = rect.width / el.offsetWidth;\n if (el.offsetHeight) scaleY = rect.height / el.offsetHeight;\n if (!Number.isFinite(scaleX) || scaleX === 0) scaleX = 1;\n if (!Number.isFinite(scaleY) || scaleY === 0) scaleY = 1;\n if (Math.abs(scaleX - 1) < 0.01) scaleX = 1;\n if (Math.abs(scaleY - 1) < 0.01) scaleY = 1;\n s.transform = s.webkitTransform = `translate(${dx / scaleX}px,${dy / scaleY}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction getPosition(el) {\n const rect = el.getBoundingClientRect();\n return {\n left: rect.left,\n top: rect.top\n };\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props[\"onUpdate:modelValue\"] || false;\n return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nconst assignKey = /* @__PURE__ */ Symbol(\"_assign\");\nfunction castValue(value, trim, number) {\n if (trim) value = value.trim();\n if (number) value = looseToNumber(value);\n return value;\n}\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n if (e.target.composing) return;\n el[assignKey](castValue(el.value, trim, castToNumber));\n });\n if (trim || castToNumber) {\n addEventListener(el, \"change\", () => {\n el.value = castValue(el.value, trim, castToNumber);\n });\n }\n if (!lazy) {\n addEventListener(el, \"compositionstart\", onCompositionStart);\n addEventListener(el, \"compositionend\", onCompositionEnd);\n addEventListener(el, \"change\", onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? \"\" : value;\n },\n beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (el.composing) return;\n const elValue = (number || el.type === \"number\") && !/^0\\d/.test(el.value) ? looseToNumber(el.value) : el.value;\n const newValue = value == null ? \"\" : value;\n if (elValue === newValue) {\n return;\n }\n const rootNode = el.getRootNode();\n if ((rootNode instanceof Document || rootNode instanceof ShadowRoot) && rootNode.activeElement === el && el.type !== \"range\") {\n if (lazy && value === oldValue) {\n return;\n }\n if (trim && el.value.trim() === newValue) {\n return;\n }\n }\n el.value = newValue;\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el[assignKey];\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n } else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n } else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n } else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n } else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n el._modelValue = value;\n let checked;\n if (isArray(value)) {\n checked = looseIndexOf(value, vnode.props.value) > -1;\n } else if (isSet(value)) {\n checked = value.has(vnode.props.value);\n } else {\n if (value === oldValue) return;\n checked = looseEqual(value, getCheckboxValue(el, true));\n }\n if (el.checked !== checked) {\n el.checked = checked;\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n el[assignKey](getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, \"change\", () => {\n const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n );\n el[assignKey](\n el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n );\n el._assigning = true;\n nextTick(() => {\n el._assigning = false;\n });\n });\n el[assignKey] = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value }) {\n setSelected(el, value);\n },\n beforeUpdate(el, _binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n },\n updated(el, { value }) {\n if (!el._assigning) {\n setSelected(el, value);\n }\n }\n};\nfunction setSelected(el, value) {\n const isMultiple = el.multiple;\n const isArrayValue = isArray(value);\n if (isMultiple && !isArrayValue && !isSet(value)) {\n !!(process.env.NODE_ENV !== \"production\") && warn(\n `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n );\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArrayValue) {\n const optionType = typeof optionValue;\n if (optionType === \"string\" || optionType === \"number\") {\n option.selected = value.some((v) => String(v) === String(optionValue));\n } else {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n } else {\n option.selected = value.has(optionValue);\n }\n } else if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) el.selectedIndex = i;\n return;\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\nfunction getValue(el) {\n return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n const key = checked ? \"_trueValue\" : \"_falseValue\";\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"created\");\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"mounted\");\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"updated\");\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case \"SELECT\":\n return vModelSelect;\n case \"TEXTAREA\":\n return vModelText;\n default:\n switch (type) {\n case \"checkbox\":\n return vModelCheckbox;\n case \"radio\":\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(\n el.tagName,\n vnode.props && vnode.props.type\n );\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n } else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n } else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== \"string\") {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(),\n vnode.props && vnode.props.type\n );\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n if (!fn) return fn;\n const cache = fn._withMods || (fn._withMods = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers)) return;\n }\n return fn(event, ...args);\n }));\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n const cache = fn._withKeys || (fn._withKeys = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = ((event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some(\n (k) => k === eventKey || keyNames[k] === eventKey\n )) {\n return fn(event);\n }\n }));\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\nconst render = ((...args) => {\n ensureRenderer().render(...args);\n});\nconst hydrate = ((...args) => {\n ensureHydrationRenderer().hydrate(...args);\n});\nconst createApp = ((...args) => {\n const app = ensureRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container) return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n component.template = container.innerHTML;\n }\n if (container.nodeType === 1) {\n container.textContent = \"\";\n }\n const proxy = mount(container, false, resolveRootNamespace(container));\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n return proxy;\n };\n return app;\n});\nconst createSSRApp = ((...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, resolveRootNamespace(container));\n }\n };\n return app;\n});\nfunction resolveRootNamespace(container) {\n if (container instanceof SVGElement) {\n return \"svg\";\n }\n if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n return \"mathml\";\n }\n}\nfunction injectNativeTagCheck(app) {\n Object.defineProperty(app.config, \"isNativeTag\", {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n writable: false\n });\n}\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, \"isCustomElement\", {\n get() {\n return isCustomElement;\n },\n set() {\n warn(\n `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n );\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n Object.defineProperty(app.config, \"compilerOptions\", {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n warn(\n `Failed to mount app: mount target selector \"${container}\" returned null.`\n );\n }\n return res;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n warn(\n `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n );\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n} ;\n\nexport { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, nodeOps, patchProp, render, useCssModule, useCssVars, useHost, useShadowRoot, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers };\n","import type { EventHandler } from '../types'\n\n/** 型別安全的事件發送器,`MeowMeowClient` 與 `Room` 皆繼承此類別。 */\nexport class EventEmitter<TEventMap extends object = Record<string, unknown>> {\n private _listeners: Map<string, Set<EventHandler>> = new Map()\n\n /**\n * 註冊事件監聽器。\n * @param event 事件名稱\n * @param handler 事件處理函式\n */\n on<E extends keyof TEventMap>(event: E, handler: (payload: TEventMap[E]) => void): void {\n const key = event as string\n if (!this._listeners.has(key)) {\n this._listeners.set(key, new Set())\n }\n const set = this._listeners.get(key)\n if (!set) throw new Error(`EventEmitter: listeners not initialized for event \"${key}\"`)\n set.add(handler as EventHandler)\n }\n\n /**\n * 移除已註冊的事件監聽器。\n * @param event 事件名稱\n * @param handler 要移除的處理函式(需與 `on` 傳入的參考相同)\n */\n off<E extends keyof TEventMap>(event: E, handler: (payload: TEventMap[E]) => void): void {\n const listeners = this._listeners.get(event as string)\n if (listeners) listeners.delete(handler as EventHandler)\n }\n\n protected emit<E extends keyof TEventMap>(\n event: E,\n ...args: TEventMap[E] extends void ? [] : [payload: TEventMap[E]]\n ): void {\n const payload = args[0]\n const listeners = this._listeners.get(event as string)\n if (listeners) listeners.forEach((handler) => {\n try { handler(payload) }\n catch (err) { console.error(`EventEmitter: handler error on \"${String(event)}\"`, err) }\n })\n }\n\n /** 移除所有事件的所有監聽器。 */\n public removeAllListeners(): void {\n this._listeners.clear()\n }\n}\n","export type WsErrorCode =\n | 'BAD_REQUEST' // 請求格式錯誤\n | 'TOKEN_INVALID' // Token 無效或已過期\n | 'FORBIDDEN' // 無操作權限\n | 'USER_MUTED' // 使用者被禁言\n | 'USER_BANNED' // 使用者被封禁\n | 'ROOM_NOT_FOUND' // 聊天室不存在\n | 'CHAT_MESSAGE_STORE_UNAVAILABLE' // 訊息儲存服務異常\n | 'CHAT_MESSAGE_BLOCKED' // 訊息被過濾擋下\n | 'INTERNAL_SERVER_ERROR' // 伺服器內部錯誤\n | 'INVALID_TYPE' // 不支援的訊息類型\n | 'INVALID_MESSAGE_TYPE' // 不支援的聊天訊息類型\n | 'MISSING_REF' // request 缺少 ref 欄位\n\n\nexport type ClientErrorCode = 'WS_ERROR' | 'WS_MESSAGE_ERROR' | 'TOKEN_REFRESH_FAILED'\n\nexport class WsRequestError extends Error {\n constructor(readonly code: WsErrorCode, message: string, readonly seq: number) {\n super(message)\n this.name = 'WsRequestError'\n }\n}\n","import { EventEmitter } from '../events/EventEmitter'\nimport type { ConnectionApi } from './Connection'\nimport type { Message, MessagesResult, RoomEventMap, PushEventPayloadMap, GetMessagesOptions, User, WsErrorCode } from '../types'\nimport { WsRequestError } from '../types'\n\n/**\n * 代表一個已加入的聊天室,提供發送訊息、載入歷史紀錄與監聽即時事件的能力。\n * 由 {@link MeowMeowClient.join} 回傳,不應自行建構。\n *\n * @remarks\n * 可透過 `on(event, handler)` 監聽以下事件:\n *\n * | 事件 | Payload | 說明 |\n * |------|---------|------|\n * | `message` | {@link Message} | 收到新訊息(含 pending 樂觀更新) |\n * | `presence` | `{ type, user, onlineCount }` | 使用者加入或離開 |\n * | `muted` | `{ until }` | 被禁言 |\n * | `unmuted` | — | 禁言解除 |\n * | `room_updated` | `{ cooldownSeconds }` | 聊天室設定更新 |\n */\nexport class Room extends EventEmitter<RoomEventMap> {\n /** 聊天室唯一識別碼 */\n readonly id: string\n /** 聊天室顯示名稱 */\n readonly name: string\n\n private readonly connectionApi: ConnectionApi\n private _onlineUsers: User[] = []\n private _cooldownSeconds = 0\n private _messages: Message[] = []\n private _hasMore = false\n\n /** 發送訊息冷卻秒數(0 表示無限制) */\n get cooldownSeconds(): number { return this._cooldownSeconds }\n /** 目前在線的使用者列表 */\n get onlineUsers(): User[] { return [...this._onlineUsers] }\n /** 目前已載入的訊息列表(依序號排序) */\n get messages(): Message[] { return [...this._messages] }\n /** 是否還有更早的歷史訊息可以載入 */\n get hasMore(): boolean { return this._hasMore }\n\n /** @internal */\n constructor(id: string, name: string = '', connectionApi: ConnectionApi) {\n super()\n this.id = id\n this.name = name || id\n this.connectionApi = connectionApi\n }\n\n /**\n * 發送文字訊息。採樂觀更新,訊息會立即出現在 `messages` 並觸發 `message` 事件;\n * 若伺服器回傳錯誤,該訊息的 `errorCode` 會被設定且 `pending` 設為 false。\n * @param content 訊息文字內容\n * @param sender 發送者資訊\n */\n async send(content: string, sender: User): Promise<void> {\n const clientRef = crypto.randomUUID()\n const pending = this._createPendingMessage('text', content, sender, clientRef)\n this._messages = [...this._messages, pending]\n this.emit('message', pending)\n try {\n await this.connectionApi.sendMessage(this.id, { type: 'text', content, clientRef })\n } catch (err) {\n const failed = this._markFailed(clientRef, err)\n if (failed) this.emit('message', failed)\n }\n }\n\n /**\n * 發送貼圖訊息,行為同 {@link send}(樂觀更新)。\n * @param options 貼圖包 ID 與貼圖代碼\n * @param sender 發送者資訊\n */\n async sendSticker(options: { packId: string; code: string }, sender: User): Promise<void> {\n const clientRef = crypto.randomUUID()\n const metadata: Message['metadata'] = { sticker: { packId: options.packId, code: options.code, url: '' } }\n const pending = this._createPendingMessage('sticker', '', sender, clientRef, metadata)\n this._messages = [...this._messages, pending]\n this.emit('message', pending)\n try {\n await this.connectionApi.sendMessage(this.id, { type: 'sticker', packId: options.packId, code: options.code, clientRef })\n } catch (err) {\n const failed = this._markFailed(clientRef, err)\n if (failed) this.emit('message', failed)\n }\n }\n\n /**\n * 從伺服器取得歷史訊息,不會修改 `messages` 狀態。\n * 如需自動合併至 `messages`,請使用 {@link loadMoreMessages}。\n * @param options 查詢選項,預設取最新 5 筆\n * @internal\n */\n async getMessages(options: GetMessagesOptions = { limit: 5 }): Promise<MessagesResult> {\n return this.connectionApi.getMessages(this.id, options)\n }\n\n /**\n * 載入更早的歷史訊息並合併進 `messages`,同時更新 `hasMore`。\n * 適合實作「載入更多」的 UI 行為。\n * @internal\n */\n async loadMoreMessages(options?: GetMessagesOptions): Promise<void> {\n const result = await this.getMessages(options)\n this._messages = this._mergeSorted(result.messages, this._messages)\n this._hasMore = result.hasMore\n }\n\n // ─── Internal handlers (called by MeowMeowClient) ──────────────────────────\n\n /** @internal */\n _setOnlineUsers(users: User[]): void {\n this._onlineUsers = [...users]\n }\n\n /** @internal */\n _setCooldownSeconds(seconds: number): void {\n this._cooldownSeconds = seconds\n }\n\n /** @internal */\n _initMessages(messages: Message[], hasMore: boolean): void {\n this._messages = this._mergeSorted(messages, this._messages)\n this._hasMore = hasMore\n }\n\n /** @internal */\n _handleMessage(msg: Message): void {\n if (msg.clientRef) {\n this._messages = this._messages.filter(m => !(m.pending && m.clientRef === msg.clientRef))\n }\n this._messages = this._insertMessage(msg, this._messages)\n this.emit('message', msg)\n }\n\n /** @internal */\n _handleRoomUpdated(payload: PushEventPayloadMap['room_updated'] & { seq: number }): void {\n this._cooldownSeconds = payload.cooldownSeconds\n this.emit('room_updated', { cooldownSeconds: payload.cooldownSeconds })\n }\n\n /** @internal */\n _handlePresence(payload: PushEventPayloadMap['presence']): void {\n if (payload.type === 'join') {\n this._onlineUsers = [...this._onlineUsers, payload.user]\n } else {\n this._onlineUsers = this._onlineUsers.filter(u => u.id !== payload.user.id)\n }\n this.emit('presence', payload)\n }\n\n /** @internal */\n _handleMuted(payload: PushEventPayloadMap['muted']): void {\n this.emit('muted', payload)\n }\n\n /** @internal */\n _handleUnmuted(): void {\n this.emit('unmuted')\n }\n\n /** @internal */\n _handleWarned(payload: PushEventPayloadMap['warned'] & { seq: number }): void {\n const msg: Message = {\n id: `warned-${payload.seq}`,\n seq: payload.seq,\n subSeq: 0,\n type: 'system',\n content: payload.reason ?? '',\n userId: '',\n userName: '',\n avatar: null,\n createdAt: new Date().toISOString(),\n metadata: null,\n }\n this._messages = this._insertMessage(msg, this._messages)\n this.emit('message', msg)\n }\n\n /** @internal */\n reset(): void {\n this._messages = []\n this._hasMore = false\n }\n\n // ─── Private helpers ────────────────────────────────────────────────────────\n\n private _createPendingMessage(\n type: 'text' | 'sticker',\n content: string,\n sender: User,\n clientRef: string,\n metadata: Message['metadata'] = null,\n ): Message {\n const last = this._messages[this._messages.length - 1]\n return {\n id: `pending-${clientRef}`,\n seq: last?.seq ?? 0,\n subSeq: (last?.subSeq ?? 0) + 1,\n type,\n content,\n userId: sender.id,\n userName: sender.name,\n avatar: sender.avatar,\n createdAt: new Date().toISOString(),\n metadata,\n clientRef,\n pending: true,\n }\n }\n\n private _markFailed(clientRef: string, err: unknown): Message | null {\n const errorCode: WsErrorCode = err instanceof WsRequestError ? err.code : 'INTERNAL_SERVER_ERROR'\n let failed: Message | null = null\n this._messages = this._messages.map(m => {\n if (m.pending && m.clientRef === clientRef) {\n failed = { ...m, pending: false, errorCode }\n return failed\n }\n return m\n })\n return failed\n }\n\n // 單筆插入已排序陣列,O(1) 最佳、O(log n) 最差\n private _insertMessage(msg: Message, msgs: Message[]): Message[] {\n if (msgs.some(m => m.id === msg.id)) return msgs\n\n const last = msgs[msgs.length - 1]\n if (!last || msg.seq > last.seq || (msg.seq === last.seq && msg.subSeq > last.subSeq)) {\n return [...msgs, msg]\n }\n\n let lo = 0, hi = msgs.length\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n const m = msgs[mid]\n if (m.seq < msg.seq || (m.seq === msg.seq && m.subSeq < msg.subSeq)) lo = mid + 1\n else hi = mid\n }\n const result = [...msgs]\n result.splice(lo, 0, msg)\n return result\n }\n\n // 合併兩個已排序陣列並去重,O(n)\n private _mergeSorted(a: Message[], b: Message[]): Message[] {\n const result: Message[] = []\n const seen = new Set<string>()\n let i = 0, j = 0\n\n while (i < a.length && j < b.length) {\n const cmp = a[i].seq - b[j].seq || a[i].subSeq - b[j].subSeq\n const msg = cmp <= 0 ? a[i++] : b[j++]\n if (!seen.has(msg.id)) { seen.add(msg.id); result.push(msg) }\n }\n\n for (; i < a.length; i++)\n if (!seen.has(a[i].id)) { seen.add(a[i].id); result.push(a[i]) }\n\n for (; j < b.length; j++)\n if (!seen.has(b[j].id)) { seen.add(b[j].id); result.push(b[j]) }\n\n return result\n }\n}\n","const token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nexport default function decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n","export function includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n","export default function splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n","import decodeComponent from 'decode-uri-component';\nimport {includeKeys} from 'filter-obj';\nimport splitOnFirst from 'split-on-first';\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSeparator = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSeparator, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst newValue = isArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : (value === null ? value : decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: decode(value, options).split(options.arrayFormatSeparator);\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options, type) {\n\tif (type === 'string' && typeof value === 'string') {\n\t\treturn value;\n\t}\n\n\tif (typeof type === 'function' && typeof value === 'string') {\n\t\treturn type(value);\n\t}\n\n\tif (type === 'boolean' && value === null) {\n\t\treturn true;\n\t}\n\n\tif (type === 'boolean' && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (type === 'boolean' && value !== null && (value.toLowerCase() === '1' || value.toLowerCase() === '0')) {\n\t\treturn value.toLowerCase() === '1';\n\t}\n\n\tif (type === 'string[]' && options.arrayFormat !== 'none' && typeof value === 'string') {\n\t\treturn [value];\n\t}\n\n\tif (type === 'number[]' && options.arrayFormat !== 'none' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn [Number(value)];\n\t}\n\n\tif (type === 'number' && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\tif (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\treturn Number(value);\n\t}\n\n\treturn value;\n}\n\nexport function extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nexport function parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\ttypes: Object.create(null),\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options));\n\t\tformatter(decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null && options.types[key] !== 'string') {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tconst typeOption = options.types[key];\n\t\t\t\tconst type = typeof typeOption === 'function' ? typeOption : (typeOption ? typeOption.replace('[]', '') : undefined);\n\t\t\t\tvalue[key2] = parseValue(value2, options, type);\n\t\t\t}\n\t\t} else if (typeof value === 'object' && value !== null && options.types[key] === 'string') {\n\t\t\treturnValue[key] = Object.values(value).join(options.arrayFormatSeparator);\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options, options.types[key]);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexport function stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tlet value = object[key];\n\n\t\t// Apply replacer function if provided\n\t\tif (options.replacer) {\n\t\t\tvalue = options.replacer(key, value);\n\n\t\t\t// If replacer returns undefined, skip this key\n\t\t\tif (value === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\t// Apply replacer to array elements if provided\n\t\t\t// Note: We don't re-apply replacer to the array itself, only to elements\n\t\t\tlet processedArray = value;\n\t\t\tif (options.replacer) {\n\t\t\t\tprocessedArray = value.map((item, index) =>\n\t\t\t\t\toptions.replacer(`${key}[${index}]`, item),\n\t\t\t\t).filter(item => item !== undefined);\n\t\t\t}\n\n\t\t\treturn processedArray\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nexport function parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}),\n\t};\n}\n\nexport function stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false, ...options}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tqueryString &&= `?${queryString}`;\n\n\tlet hash = getHash(object.url);\n\tif (typeof object.fragmentIdentifier === 'string') {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nexport function pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nexport function exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n","import queryString from 'query-string'\n\nenum LogLevel {\n Debug,\n Info,\n Warn,\n Error,\n}\n\nconst queryObject = queryString.parse(document.location.search)\nlet logLevel = Number(queryObject['logLevel'])\nif (isNaN(logLevel)) logLevel = LogLevel.Warn\n\nclass Logger {\n debug(...args: unknown[]) {\n if (logLevel > LogLevel.Debug) return\n console.log(...args)\n }\n info(...args: unknown[]) {\n if (logLevel > LogLevel.Info) return\n console.info(...args)\n }\n warn(...args: unknown[]) {\n if (logLevel > LogLevel.Warn) return\n console.warn(...args)\n }\n error(...args: unknown[]) {\n if (logLevel > LogLevel.Error) return\n console.error(...args)\n }\n}\n\nexport const log = new Logger()\n","export function isLocalhost(): boolean {\n return /^localhost$|^127\\.|^\\[::1\\]$/.test(window.location.hostname)\n}\n","import { ShadowType } from \"./others\";\n\nconst pkgName = 'pull-kit';\n\ntype Admin<TKey,TValue> = {\n dataMap: Map<TKey|undefined, TValue>;\n};\nfunction pullAdmin<TKey,TValue>(owner: any, symbol: symbol):Admin<TKey,TValue> {\n if ((typeof owner !== 'object' && typeof owner !== 'function') || owner === null) {\n throw new Error(`[${pkgName}] Failed to pull kit from owner`);\n }\n return owner[symbol] || (owner[symbol] = { dataMap: new Map() }) satisfies Admin<TKey,TValue>;\n}\nfunction hasAdmin<TKey,TValue>(owner: any, symbol: symbol) {\n return !!owner[symbol];\n}\n\nexport type PullMapKey<TKey,TValue> = ShadowType<[TKey, TValue]>;\nexport function definePullMapKey<K = any,V = any>(description?: string | number): PullMapKey<K,V> {\n return Symbol(description) as PullMapKey<K,V>;\n}\nconst PULL_MAP_ADMIN = Symbol(`${pkgName}-admin:map`);\nexport function pullMap<K, V>(owner:unknown, key?:PullMapKey<K,V>):Map<K, V>{\n const admin = pullAdmin<PullMapKey<K, V>, Map<K,V>>(owner, PULL_MAP_ADMIN);\n let map = admin.dataMap.get(key);\n if(!map){\n map = new Map<K,V>();\n admin.dataMap.set(key, map);\n }\n return map;\n}\nexport function hasMap<K, V>(owner:unknown, key?:PullMapKey<K,V>) {\n if(!hasAdmin(owner, PULL_MAP_ADMIN)) return false;\n const admin = pullAdmin<PullMapKey<K, V>, Map<K,V>>(owner, PULL_MAP_ADMIN);\n return admin.dataMap.has(key);\n}\n\nexport type PullWeakMapKey<TKey,TValue> = ShadowType<[TKey, TValue]>;\nexport function definePullWeakMapKey<K = any,V = any>(description?: string | number): PullWeakMapKey<K,V> {\n return Symbol(description) as PullWeakMapKey<K,V>;\n}\nconst PULL_WEAK_MAP_ADMIN = Symbol(`${pkgName}-admin:weak-map`);\nexport function pullWeakMap<K extends WeakKey, V>(owner:unknown, key?:PullWeakMapKey<K,V>):WeakMap<K, V>{\n const admin = pullAdmin<PullWeakMapKey<K, V>, WeakMap<K,V>>(owner, PULL_WEAK_MAP_ADMIN);\n let weakMap = admin.dataMap.get(key);\n if(!weakMap){\n weakMap = new WeakMap<K,V>();\n admin.dataMap.set(key, weakMap);\n }\n return weakMap;\n}\nexport function hasWeakMap<K extends WeakKey, V>(owner:unknown, key?:PullWeakMapKey<K,V>) {\n if(!hasAdmin(owner, PULL_WEAK_MAP_ADMIN)) return false;\n const admin = pullAdmin<PullWeakMapKey<K, V>, WeakMap<K,V>>(owner, PULL_WEAK_MAP_ADMIN);\n return admin.dataMap.has(key);\n}\n\nexport type PullSetKey<TValue> = ShadowType<TValue>;\nexport function definePullSetKey<T = any>(description?: string | number): PullSetKey<T> {\n return Symbol(description) as PullSetKey<T>;\n}\nconst PULL_SET_ADMIN = Symbol(`${pkgName}-admin:set`);\nexport function pullSet<T>(owner:unknown, key?:PullSetKey<T>):Set<T>{\n const admin = pullAdmin<PullSetKey<T>, Set<T>>(owner, PULL_SET_ADMIN);\n let set = admin.dataMap.get(key);\n if(!set){\n set = new Set<T>();\n admin.dataMap.set(key, set);\n }\n return set;\n}\nexport function hasSet<T>(owner:unknown, key?:PullSetKey<T>) {\n if(!hasAdmin(owner, PULL_SET_ADMIN)) return false;\n const admin = pullAdmin<PullSetKey<T>, Set<T>>(owner, PULL_SET_ADMIN);\n return admin.dataMap.has(key);\n}\n\nexport type PullWeakSetKey<TValue> = ShadowType<TValue>;\nexport function definePullWeakSetKey<T = any>(description?: string | number): PullWeakSetKey<T> {\n return Symbol(description) as PullWeakSetKey<T>;\n}\nconst PULL_WEAK_SET_ADMIN = Symbol(`${pkgName}-admin:weak-set`);\nexport function pullWeakSet<T extends WeakKey>(owner:unknown, key?:PullWeakSetKey<T>):WeakSet<T>{\n const admin = pullAdmin<PullWeakSetKey<T>, WeakSet<T>>(owner, PULL_WEAK_SET_ADMIN);\n let weakSet = admin.dataMap.get(key);\n if(!weakSet){\n weakSet = new WeakSet<T>();\n admin.dataMap.set(key, weakSet);\n }\n return weakSet;\n}\nexport function hasWeakSet<T extends WeakKey>(owner:unknown, key?:PullWeakSetKey<T>) {\n if(!hasAdmin(owner, PULL_WEAK_SET_ADMIN)) return false;\n const admin = pullAdmin<PullWeakSetKey<T>, WeakSet<T>>(owner, PULL_WEAK_SET_ADMIN);\n return admin.dataMap.has(key);\n}\n\nexport type PullPropKey<TValue> = ShadowType<TValue>;\nexport function definePullPropKey<T = any>(description?: string | number): PullPropKey<T> {\n return Symbol(description) as PullPropKey<T>;\n}\nconst PULL_PROP_ADMIN = Symbol(`${pkgName}-admin:prop`);\nexport function pullProp<T>(owner:unknown, key?:PullPropKey<T>): T | undefined{\n const admin = pullAdmin<PullPropKey<T>, T>(owner, PULL_PROP_ADMIN);\n const value = admin.dataMap.get(key);\n return value;\n}\nexport function pushProp<T>(\n owner: unknown,\n value: T,\n key?: PullPropKey<T>\n): void {\n const admin = pullAdmin<PullPropKey<T>, T>(owner, PULL_PROP_ADMIN);\n admin.dataMap.set(key, value);\n}\nexport function hasProp<TKey extends unknown | PullPropKey<any>>(\n owner: unknown,\n key?: TKey\n) {\n if(!hasAdmin(owner, PULL_PROP_ADMIN)) return false;\n const admin = pullAdmin<TKey, any>(owner, PULL_PROP_ADMIN);\n return admin.dataMap.has(key);\n}\nexport function deleteProp<TKey extends unknown | PullPropKey<any>>(\n owner: unknown,\n key?: TKey\n): void {\n const admin = pullAdmin<TKey, any>(owner, PULL_PROP_ADMIN);\n admin.dataMap.delete(key);\n}\n","import { Func } from \"../types\";\n\nexport type WrapFactoryContext<TOwner = any, TPropertyKey extends keyof TOwner = keyof TOwner, TOrigFn extends Func<TOwner> = Func<TOwner>> = {\n target: TOwner\n propertyKey: TPropertyKey;\n descriptor: TypedPropertyDescriptor<TOrigFn>;\n original: TOrigFn;\n};\n\nexport function decorateWith<\n TOwner = any,\n TPropertyKey extends keyof TOwner = keyof TOwner,\n TOrigFn extends TOwner[keyof TOwner]&Func<TOwner> = TOwner[keyof TOwner]&Func<TOwner> ,\n TWrapper extends Func<TOwner> = Func<TOwner> ,\n>(\n wrapFactory: (context:WrapFactoryContext<TOwner, TPropertyKey, TOrigFn>) => TWrapper,\n) {\n return function(\n target: TOwner,\n propertyKey: TPropertyKey,\n descriptor: TypedPropertyDescriptor<TOrigFn>,\n _wrapperType?:TWrapper,\n ) {\n const original = descriptor.value;\n if(typeof original !== 'function') throw new Error('[define-method-decorator] Decorator Error: descriptor.value is not a function.');\n (descriptor.value as any) = wrapFactory({\n target,\n propertyKey,\n descriptor,\n original,\n });\n return descriptor;\n };\n}\n\nexport type GetWrappedFnType<TDecorator extends ReturnType<typeof decorateWith<any, any, any>>> = NonNullable<Parameters<TDecorator>[3]>;\n\n\n/**\n@example\n\nconst signature = Symbol('signature');\n\nconst myDecorator = decorateWith((_context)=>{\n _context.target;//Test\n _context.original;//(a: number, b: number): number\n _context.propertyKey;//\"test\"\n _context.descriptor;//TypedPropertyDescriptor<(a: number) => string>\n const outputFn = function (a:string){\n return a.length;\n };\n (outputFn as any)[signature] = true;\n return outputFn;\n});\n\nfunction myDecorated<TOrigFn extends ((...args: any[]) => any)>(fn:TOrigFn){\n if(!(fn as any)[signature]) throw new Error('The provided function is not decorated with the corresponding decorator.');\n return fn as any as GetWrappedFnType<typeof myDecorator>;\n}\n\nclass Test {\n @myDecorator\n add(a: number, b: number) {\n return a + b;\n }\n\n @decorateWith((_context)=>{\n _context.target;//Test\n _context.original;//(a: number, b: number): number\n _context.propertyKey;//\"test\"\n _context.descriptor;//TypedPropertyDescriptor<(a: number) => string>\n return function (a:string){\n return a.length;\n };\n })\n test(a: number) {\n return a.toString();\n }\n}\nconst test = new Test();\n\nmyDecorated(test.add)//(a: string) => number \nconst result = myDecorated(test.add)('1');\nresult;//number\n\n*/\n\n\n/**\n@example\n\nconst signature = Symbol('signature');\n\nfunction myDecorator<\n TOwner,\n TOrigFn extends TOwner[keyof TOwner]&Func<TOwner>,\n TToString extends boolean,\n>(\n toString: TToString,\n ownerHandler:(owner:TOwner)=>any\n){\n return decorateWith<\n TOwner,\n keyof TOwner,\n TOrigFn,\n (...args:Parameters<TOrigFn>)=>TToString extends true ? string : number\n >((_context)=>{\n function wrapper(this:TOwner, ...args:Parameters<TOrigFn>):TToString extends true ? string : number;\n function wrapper(this:TOwner, ...args:Parameters<TOrigFn>){\n ownerHandler(this);\n if(toString) return args.length.toString();\n else return args.length;\n }\n (wrapper as any)[signature] = toString;\n return wrapper;\n }\n );\n};\n\nfunction myDecorated<TOrigFn extends ((...args: any[]) => any), TToString extends boolean>(fn:TOrigFn, toString:TToString){\n if((fn as any)[signature] === undefined) throw new Error('The provided function is not decorated with the corresponding decorator.');\n if((fn as any)[signature] !== toString) throw new Error(\"Invalid usage of 'myDecorated'. The 'toString' parameter in 'myDecorated' does not match the 'toString' parameter of the decorated method.\");\n return fn as any as GetWrappedFnType<ReturnType<typeof myDecorator<any, TOrigFn, TToString>>>;\n}\n\nclass Test {\n @myDecorator(true, (c)=>{\n c//Test\n c.add//Test.add(a: number, b: number): number\n })\n add(a: number, b: number) {\n return a + b;\n }\n}\nconst test = new Test();\n\nconst resultString = myDecorated(test.add, true);//(a: number, b: number) => string\nconst resultNumber = myDecorated(test.add, false);//(a: number, b: number) => number\n\n*/\n","import { decorateWith, WrapFactoryContext } from \"../core/decorate-with\";\nimport { Func } from \"../types\";\n\nexport type ResolverContext<TOwner, TPropertyKey extends keyof TOwner, TOrigFn extends Func, TReturn> = {\n propertyKey: TPropertyKey;\n original: TOrigFn;\n thisArg: TOwner;\n args: Parameters<TOrigFn>;\n wrapper: Func<TOwner,Parameters<TOrigFn>,TReturn>;\n};\n\nexport type Resolver<TOwner, TPropertyKey extends keyof TOwner, TOrigFn extends Func, TReturn> = (\n context: ResolverContext<TOwner, TPropertyKey, TOrigFn, TReturn>\n) => TReturn;\n\nexport function resolveWith<\n TOwner = any,\n TPropertyKey extends keyof TOwner = any,\n TOrigFn extends TOwner[keyof TOwner]&Func<TOwner> = any,\n TReturn = any,\n>(\n resolver: Resolver<TOwner, TPropertyKey, TOrigFn, TReturn>,\n onWrapped?:Func<any,[wapper:Func<TOwner, Parameters<TOrigFn>, TReturn>, context:WrapFactoryContext<TOwner, TPropertyKey, TOrigFn>]>\n){\n return decorateWith<\n TOwner,\n TPropertyKey,\n TOrigFn,\n Func<TOwner, Parameters<TOrigFn>, TReturn>\n >((context)=>{\n const {original, propertyKey} = context;\n function wrapper(this:TOwner, ...args:Parameters<TOrigFn>){\n return resolver({\n propertyKey,\n original,\n thisArg: this,\n args,\n wrapper,\n });\n }\n if(onWrapped) onWrapped(wrapper, context);\n return wrapper;\n });\n};\n\n/**\n@example\n\nimport { GetWrappedFnType } from \"../core/decorate-with\";\n\nconst myDecorator = resolveWith((_context)=>{\n return 'test';\n}, (_original, wapper)=>{\n wapper\n});\n\nfunction myDecorated<TOrigFn extends ((...args: any[]) => any)>(fn:TOrigFn){\n return fn as any as GetWrappedFnType<ReturnType<typeof resolveWith<any, any, TOrigFn, string>>>;\n}\n\nclass Test {\n @myDecorator\n add(a: number, b: number) {\n return a + b;\n }\n\n @resolveWith((_context)=>{\n _context.args//[a: number]\n _context.original//(a: number) => string\n _context.propertyKey//\"test\"\n _context.thisArg//Test\n _context.wrapper//Func<Test, [a: number], any>\n return 1;\n }, (wapper, context)=>{\n wapper//Func<Test, [a: number], any>\n context.descriptor//TypedPropertyDescriptor<(a: number) => string>\n context.original//(a: number) => string\n context.propertyKey//\"test\"\n context.target//Test\n })\n test(a: number) {\n return a.toString();\n }\n}\nconst test = new Test();\n\nmyDecorated(test.add)//Func<any, [a: number, b: number], string>\nconst result = myDecorated(test.add)(1,2);\nresult;//string\n\n*/\n","import { AsyncFn, SyncOrAsyncFn } from \"./types\";\n\nconst asyncConstructor = (async function () {/** */}).constructor;\nexport function isAsync<T,A extends any[],R>(fn:SyncOrAsyncFn<T,A,R>): fn is AsyncFn<T,A,R>{\n return fn instanceof asyncConstructor;\n}\n\nexport function isPromise<T = any>(value: unknown): value is Promise<T> {\n return (\n typeof value === 'object' &&\n value !== null &&\n typeof (value as any).then === 'function'\n );\n}\n","import { definePullMapKey, pullMap } from \"../../../pull-kit\";\nimport { resolveWith } from \"../../resolve/decorator\";\nimport { isPromise } from \"../../utils\";\n\nexport const SINGLE_CONTEXT_MAP_SYMBOL = definePullMapKey('single-context-map');\n\nexport type SingleOptions = {\n /** \n * 是否與實體隔離。\n * true: 每個實體擁有獨立的執行鎖(預設)。\n * false: 整個 Class 共享同一個執行鎖。\n */\n isolated?: boolean;\n};\n\n/**\n * @single 裝飾器:確保同一個非同步方法在同一時間只有一個在執行。\n * 若方法正在執行中,後續的呼叫將共享同一個 Promise 結果。\n * 當 Promise settle (resolve/reject) 後,鎖會自動釋放。\n */\nexport function single(options: SingleOptions = {}) {\n return resolveWith<any, any, any>((resolveContext) => {\n const { thisArg, propertyKey, original, args } = resolveContext;\n \n const isolated = options.isolated ?? true;\n const host = isolated ? thisArg : (thisArg as any).constructor;\n \n const contextMap = pullMap<PropertyKey, Promise<any>>(host, SINGLE_CONTEXT_MAP_SYMBOL);\n \n let pending = contextMap.get(propertyKey);\n \n if (pending) {\n return pending;\n }\n\n const result = original.apply(thisArg, args);\n\n if (isPromise(result)) {\n pending = result;\n contextMap.set(propertyKey, pending);\n \n result.finally(() => {\n if (contextMap.get(propertyKey) === pending) {\n contextMap.delete(propertyKey);\n }\n });\n \n return pending;\n }\n\n return result;\n });\n}\n","import { log } from '../../utils/logger'\nimport { isLocalhost } from '../../utils/isLocalhost'\nimport { single } from '../../utils/decorate-kit/concurrency/single/decorator'\nimport type { ConnectionApi } from './Connection'\nimport type { MeowMeowClient } from './MeowMeowClient'\nimport type {\n MeowMeowClientOptions,\n WsClientRequest,\n WsRequestMap,\n MessagesResult,\n GetMessagesOptions,\n SendMessagePayload,\n RawMessagePayload,\n ChatMessagePayload,\n Message,\n ServerEnvelope,\n DisconnectReason,\n} from '../types'\nimport { WsRequestError } from '../types'\n\ninterface ApiResponseMap {\n 'POST /api/v1/ws/ticket': { data: { ticket: string; expiresAt: string } }\n}\n\ntype ApiResult<T> = { ok: true; data: T } | { ok: false; error: { code: string; message: string } }\n\ninterface PendingRequest {\n resolve: (value: { seq: number; payload: unknown }) => void\n reject: (error: Error) => void\n timer: ReturnType<typeof setTimeout>\n}\n\nconst REQUEST_TIMEOUT_MS = 15_000\nconst PING_INTERVAL_MS = 30_000\nconst MAX_RECONNECT_DELAY_MS = 30_000\n\nconst TOKEN_EXPIRY_BUFFER_S = 30\n\nfunction parseJwtPayload(token: string): Record<string, unknown> {\n const base64 = token.split('.')[1]\n return JSON.parse(atob(base64)) as Record<string, unknown>\n}\n\n\n\nfunction isTokenExpired(token: string): boolean {\n const { exp } = parseJwtPayload(token)\n return Date.now() / 1000 >= (exp as number) - TOKEN_EXPIRY_BUFFER_S\n}\n\nfunction toMessage(p: RawMessagePayload | ChatMessagePayload, seq: number, subSeq = 0): Message {\n return {\n id: p.id,\n seq,\n subSeq,\n type: p.type,\n content: p.body.content,\n userId: p.sender.id,\n userName: p.sender.name,\n avatar: p.sender.avatar ?? null,\n createdAt: p.createdAt,\n metadata: p.metadata ?? null,\n clientRef: 'clientRef' in p ? (p.clientRef ?? null) : null,\n }\n}\n\nexport class WebSocketConnection implements ConnectionApi {\n private appId: string\n private token: string\n private readonly baseUrl: string\n private readonly onTokenRefresh?: () => Promise<string>\n private readonly client: MeowMeowClient\n\n private ws: WebSocket | null = null\n private currentRoomId = ''\n private reconnectAttempts = 0\n private readonly maxReconnectAttempts = 10\n private shouldReconnect = true\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null\n private pingTimer: ReturnType<typeof setInterval> | null = null\n private readonly pendingRequests = new Map<string, PendingRequest>()\n private cachedTicket: string | null = null\n private cachedTicketExpiresAt = 0\n private lastRecoveredAt = 0\n\n constructor(options: MeowMeowClientOptions, client: MeowMeowClient) {\n this.client = client\n this.token = options.token\n const { iss, serverHost } = parseJwtPayload(options.token)\n this.appId = iss as string\n this.baseUrl = isLocalhost() ? '' : `https://${serverHost as string}`\n this.onTokenRefresh = options.onTokenRefresh\n }\n\n @single()\n async connect(roomId: string): Promise<void> {\n this.currentRoomId = roomId\n this.shouldReconnect = true\n this.reconnectAttempts = 0\n const failReason = await this.openWebSocket(false, roomId)\n if (failReason) this.internalClose(failReason)\n }\n\n disconnect(reason: DisconnectReason = 'manual disconnect'): void {\n this.internalClose(reason)\n }\n\n async sendMessage(roomId: string, payload: SendMessagePayload): Promise<void> {\n await this.request({ type: 'request', action: 'send_message', roomId, payload })\n }\n\n async getMessages(roomId: string, options: GetMessagesOptions = { limit: 5 }): Promise<MessagesResult> {\n const { seq: responseSeq, payload: res } = await this.request<WsRequestMap['get_messages']['res']>({\n type: 'request',\n action: 'get_messages',\n roomId,\n payload: { limit: options.limit, before: options.before },\n })\n return {\n messages: res.messages.map((p, i) => toMessage(p, responseSeq, i + 1)),\n hasMore: res.hasMore,\n }\n }\n\n private request<T = unknown>(data: WsClientRequest): Promise<{ seq: number; payload: T }> {\n const ref = crypto.randomUUID()\n const ref8 = ref.slice(0, 8)\n return new Promise<{ seq: number; payload: T }>((resolve, reject) => {\n const timer = setTimeout(() => {\n this.pendingRequests.delete(ref)\n reject(new Error(`[WS] ${data.action} request timed out (ref: ${ref8})`))\n }, REQUEST_TIMEOUT_MS)\n\n this.pendingRequests.set(ref, {\n resolve: (v) => resolve(v as { seq: number; payload: T }),\n reject,\n timer,\n })\n this.sendRaw({ ...(data as object), ref })\n }).then(\n (result) => { log.debug(`[WS ↓] response/${data.action}(${ref8}) ✓`, result); return result },\n (err) => { log.debug(`[WS ↓] response/${data.action}(${ref8}) ✗`, err); throw err },\n )\n }\n\n private sendRaw(data: unknown): void {\n if (this.ws && this.ws.readyState === WebSocket.OPEN) {\n const d = data as Record<string, unknown>\n const ref = typeof d.ref === 'string' ? d.ref.slice(0, 8) : ''\n log.debug(`[WS ↑] ${d.type}/${d.action}(${ref})`, data)\n this.ws.send(JSON.stringify(data))\n }\n }\n\n // ─── WebSocket lifecycle ─────────────────────────────────────────────────────\n\n private clearWebSocketHandlers(): void {\n if (!this.ws) return\n this.ws.onopen = null\n this.ws.onmessage = null\n this.ws.onclose = null\n this.ws.onerror = null\n }\n\n private internalClose(reason: DisconnectReason): void {\n this.shouldReconnect = false\n this.stopPing()\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer)\n this.reconnectTimer = null\n }\n this.clearWebSocketHandlers()\n if (this.ws) {\n this.ws.close()\n this.ws = null\n }\n this.clearPendingRequests(reason)\n this.client.onDisconnected({ reason, willReconnect: false })\n }\n\n private isTicketValid(): boolean {\n return this.cachedTicket !== null && Date.now() < this.cachedTicketExpiresAt - TOKEN_EXPIRY_BUFFER_S * 1000\n }\n\n private async openWebSocket(isReconnect: boolean, roomId?: string): Promise<DisconnectReason | null> {\n this.stopPing()\n this.clearWebSocketHandlers()\n\n if (this.ws) {\n this.ws.close()\n this.ws = null\n }\n\n if (isTokenExpired(this.token)) {\n const ok = await this.refreshToken()\n if (!ok) return 'token_refresh_failed'\n }\n let ticket: string\n if (isReconnect && this.isTicketValid()) {\n ticket = this.cachedTicket as string\n } else {\n const fetched = await this.fetchTicket()\n if (fetched === 'user_banned') return 'user_banned'\n if (fetched === 'fetch_ticket_failed') return 'fetch_ticket_failed'\n ticket = fetched\n }\n const origin = this.baseUrl || window.location.origin\n const wsBase = origin.replace(/^https/, 'wss').replace(/^http/, 'ws')\n const params = new URLSearchParams({ ticket })\n if (roomId) params.set('roomId', roomId)\n const wsUrl = `${wsBase}/ws/user?${params}`\n log.info('[WS] connecting', wsUrl)\n const ws = new WebSocket(wsUrl)\n this.ws = ws\n\n return new Promise<DisconnectReason | null>((resolve) => {\n let settled = false\n\n ws.onopen = () => {\n settled = true\n this.reconnectAttempts = 0\n this.startPing()\n log.info('[WS] connected')\n if (isReconnect) this.client.onReconnected()\n resolve(null)\n }\n\n ws.onmessage = (event: MessageEvent) => {\n try {\n const envelope = JSON.parse(event.data as string) as ServerEnvelope\n this.handleEnvelope(envelope)\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err)\n log.error('[WS] message processing error', { error: message, data: event.data })\n this.client.onError({ code: 'WS_MESSAGE_ERROR', message: `Message processing error: ${message}` })\n }\n }\n\n ws.onclose = (event: CloseEvent) => {\n this.stopPing()\n\n if (!settled) {\n resolve(event.reason || 'fetch_ticket_failed')\n return\n }\n\n const willReconnect = this.canReconnect\n log.info('[WS] disconnected', { code: event.code, reason: event.reason || 'closed', willReconnect })\n\n this.clearPendingRequests(event.reason || 'closed')\n this.client.onDisconnected({ reason: event.reason || 'closed', willReconnect })\n\n if (willReconnect) this.tryReconnect()\n }\n\n ws.onerror = (event) => {\n log.error('[WS] error', event)\n if (!settled) resolve('fetch_ticket_failed')\n else this.client.onError({ code: 'WS_ERROR', message: 'WebSocket error' })\n }\n })\n }\n\n private get canReconnect(): boolean {\n return this.shouldReconnect && this.reconnectAttempts < this.maxReconnectAttempts\n }\n\n private tryReconnect(): void {\n if (!this.canReconnect) {\n this.shouldReconnect = false\n this.client.onDisconnected({ reason: 'reconnect_failed', willReconnect: false })\n return\n }\n\n this.reconnectAttempts++\n const delay = Math.min(1000 * 2 ** this.reconnectAttempts, MAX_RECONNECT_DELAY_MS)\n log.info(`[WS] reconnecting in ${delay}ms (attempt ${this.reconnectAttempts})`)\n this.client.onReconnecting({ attempt: this.reconnectAttempts })\n\n this.reconnectTimer = setTimeout(async () => {\n const failReason = await this.openWebSocket(true, this.currentRoomId)\n if (failReason) this.tryReconnect()\n }, delay)\n }\n\n private startPing(): void {\n this.pingTimer = setInterval(() => {\n const currentWs = this.ws\n this.request({ type: 'request', action: 'ping' }).catch(() => {\n if (this.ws !== currentWs || !currentWs) return\n\n this.stopPing()\n this.clearWebSocketHandlers()\n if (this.ws) {\n this.ws.close()\n this.ws = null\n }\n const willReconnect = this.canReconnect\n this.clearPendingRequests('ping_timeout')\n this.client.onDisconnected({ reason: 'ping_timeout', willReconnect })\n if (willReconnect) this.tryReconnect()\n })\n }, PING_INTERVAL_MS)\n }\n\n private clearPendingRequests(reason: string): void {\n for (const [ref, pending] of this.pendingRequests.entries()) {\n clearTimeout(pending.timer)\n pending.reject(new Error(`[WS] Request cancelled: ${reason} (ref: ${ref.slice(0, 8)})`))\n }\n this.pendingRequests.clear()\n }\n\n private stopPing(): void {\n if (this.pingTimer) {\n clearInterval(this.pingTimer)\n this.pingTimer = null\n }\n }\n\n // ─── Envelope dispatch ───────────────────────────────────────────────────────\n\n private handleEnvelope(envelope: ServerEnvelope): void {\n if (envelope.type === 'push') {\n log.debug(`[WS ↓] push/${envelope.event}`, envelope)\n switch (envelope.event) {\n case 'connected':\n this.client.onConnected({ ...envelope.payload, seq: envelope.seq })\n break\n case 'room_joined':\n this.client.onRoomJoined({ ...envelope.payload, seq: envelope.seq })\n break\n case 'presence':\n this.client.onPresence({ ...envelope.payload, seq: envelope.seq })\n break\n case 'muted':\n this.client.onMuted({ ...envelope.payload, seq: envelope.seq })\n break\n case 'unmuted':\n this.client.onUnmuted({ seq: envelope.seq })\n break\n case 'banned':\n this.shouldReconnect = false\n this.client.onBanned({ ...envelope.payload, seq: envelope.seq })\n break\n case 'unbanned':\n this.client.onUnbanned({ seq: envelope.seq })\n break\n case 'warned':\n this.client.onWarned({ ...envelope.payload, seq: envelope.seq })\n break\n case 'message':\n this.client.onMessage(toMessage(envelope.payload, envelope.seq))\n break\n case 'room_updated':\n this.client.onRoomUpdated({ ...envelope.payload, seq: envelope.seq })\n break\n case 'room_unavailable':\n case 'connection_replaced':\n this.internalClose(envelope.event)\n break\n }\n } else if (envelope.type === 'response') {\n const pending = this.pendingRequests.get(envelope.ref)\n if (!pending) return\n clearTimeout(pending.timer)\n this.pendingRequests.delete(envelope.ref)\n if (envelope.ok) {\n pending.resolve({ seq: envelope.seq, payload: envelope.payload })\n } else {\n if (envelope.error.code === 'TOKEN_INVALID') {\n this.recoverAuth()\n }\n pending.reject(new WsRequestError(envelope.error.code, envelope.error.message, envelope.seq))\n }\n }\n }\n\n // ─── REST API ────────────────────────────────────────────────────────────────\n\n @single()\n private async recoverAuth(): Promise<void> {\n const now = Date.now()\n if (now - this.lastRecoveredAt < 10000) {\n log.error('[WS] Auth recovery failed (loop detected)')\n this.internalClose('token_refresh_failed')\n return\n }\n\n this.lastRecoveredAt = now\n\n const ok = await this.refreshToken()\n if (ok) {\n await this.connect(this.currentRoomId)\n } else {\n this.internalClose('token_refresh_failed')\n }\n }\n\n private async fetchTicket(): Promise<'user_banned' | 'fetch_ticket_failed' | string> {\n const result = await this.apiFetch('POST /api/v1/ws/ticket')\n if (!result.ok) {\n if (result.error.code === 'USER_BANNED') return 'user_banned'\n if (result.error.code === 'TOKEN_INVALID' || result.error.code === 'TOKEN_EXPIRED') {\n const ok = await this.refreshToken()\n if (!ok) return 'fetch_ticket_failed'\n const retried = await this.apiFetch('POST /api/v1/ws/ticket')\n if (!retried.ok) return 'fetch_ticket_failed'\n this.cachedTicket = retried.data.data.ticket\n this.cachedTicketExpiresAt = new Date(retried.data.data.expiresAt).getTime()\n return this.cachedTicket\n }\n return 'fetch_ticket_failed'\n }\n this.cachedTicket = result.data.data.ticket\n this.cachedTicketExpiresAt = new Date(result.data.data.expiresAt).getTime()\n return this.cachedTicket\n }\n\n private async apiFetch<K extends keyof ApiResponseMap>(route: K, body?: unknown): Promise<ApiResult<ApiResponseMap[K]>> {\n const [method, path] = route.split(' ') as [string, string]\n const res = await fetch(`${this.baseUrl || ''}${path}`, {\n method,\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${this.token}`,\n 'X-App-Id': this.appId,\n },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n })\n if (!res.ok) {\n const error = await res.json() as { error: { code: string; message: string } }\n return { ok: false, error: error.error }\n }\n return { ok: true, data: await res.json() as ApiResponseMap[K] }\n }\n\n @single()\n async refreshToken(): Promise<boolean> {\n if (!this.onTokenRefresh) return false\n log.info('[WS] refreshing token')\n try {\n this.token = await this.onTokenRefresh()\n this.appId = parseJwtPayload(this.token).iss as string\n log.info('[WS] token refreshed')\n return true\n } catch {\n log.error('[WS] token refresh failed')\n this.client.onError({ code: 'TOKEN_REFRESH_FAILED', message: 'Token refresh failed' })\n return false\n }\n }\n}\n","type OrderGuardItem = {\n order: number\n}\n\ntype KeyItemMap<TKey> = Map<TKey, OrderGuardItem>\n\n/** 處理只有 更新資料 發生亂序問題的過濾器 */\nexport class OrderGuard<TKey> {\n protected groupMap: Map<unknown, KeyItemMap<TKey>> = new Map()\n\n protected getItem(key: TKey, group: unknown): OrderGuardItem {\n let itemMap = this.groupMap.get(group)\n if (!itemMap) {\n itemMap = new Map() as KeyItemMap<TKey>\n this.groupMap.set(group, itemMap)\n }\n let item = itemMap.get(key)\n if (!item) {\n item = { order: 0 }\n itemMap.set(key, item)\n }\n return item\n }\n\n updateValue(key: TKey, order: number, updater: () => unknown, group?: unknown): void {\n const item = this.getItem(key, group)\n if (order > item.order) {\n item.order = order\n updater()\n }\n }\n\n dispose(): void {\n this.groupMap.forEach(itemMap => itemMap.clear())\n this.groupMap.clear()\n }\n}\n","type PendingUpdater = { order: number; updater: () => unknown }\n\ntype OriginOrderGuardItem = {\n initialized: boolean\n order: number\n pending: PendingUpdater[]\n}\n\ntype KeyItemMap<TKey> = Map<TKey, OriginOrderGuardItem>\n\n/** 處理 需要初始化基礎設施 和 更新資料 發生亂序問題的過濾器\n * mode 'single': pending 只保留 order 最大的一筆(預設)\n * mode 'multi': pending 保留全部\n */\nexport class OriginOrderGuard<TKey> {\n private readonly mode: 'single' | 'multi'\n protected groupMap: Map<unknown, KeyItemMap<TKey>> = new Map()\n\n constructor(mode: 'single' | 'multi' = 'single') {\n this.mode = mode\n }\n\n protected getItem(key: TKey, group: unknown): OriginOrderGuardItem {\n let itemMap = this.groupMap.get(group)\n if (!itemMap) {\n itemMap = new Map() as KeyItemMap<TKey>\n this.groupMap.set(group, itemMap)\n }\n let item = itemMap.get(key)\n if (!item) {\n item = { initialized: false, order: 0, pending: [] }\n itemMap.set(key, item)\n }\n return item\n }\n\n initValue(key: TKey, order: number, updater: () => unknown, group?: unknown): void {\n const item = this.getItem(key, group)\n if (item.initialized) {\n this.updateValue(key, order, updater, group)\n return\n }\n item.initialized = true\n item.order = order\n updater()\n item.pending\n .filter(p => p.order > order)\n .sort((a, b) => a.order - b.order)\n .forEach(p => { item.order = p.order; p.updater() })\n item.pending = []\n }\n\n updateValue(key: TKey, order: number, updater: () => unknown, group?: unknown): void {\n const item = this.getItem(key, group)\n if (item.initialized) {\n if (order > item.order) {\n item.order = order\n updater()\n }\n return\n }\n if (this.mode === 'single') {\n if (order <= item.order) return\n item.order = order\n item.pending[0] = { order, updater }\n } else {\n item.pending.push({ order, updater })\n if (order > item.order) item.order = order\n }\n }\n\n reset(): void {\n this.groupMap.forEach(itemMap => itemMap.clear())\n this.groupMap.clear()\n }\n\n dispose(): void {\n this.reset()\n }\n}\n","import { EventEmitter } from '../events/EventEmitter'\nimport { Room } from './Room'\nimport type { ConnectionApi } from './Connection'\nimport { WebSocketConnection } from './WebSocketConnection'\nimport { MockConnection } from './MockConnection'\nimport type {\n MeowMeowClientOptions,\n ClientEventMap,\n ClientErrorCode,\n ConnectionStatus,\n Message,\n PushEventPayloadMap,\n DisconnectReason,\n User,\n} from '../types'\nimport { OrderGuard } from '../../utils/orderGuard/OrderGuard'\nimport { OriginOrderGuard } from '../../utils/orderGuard/OriginOrderGuard'\n\nconst JOIN_TIMEOUT_MS = 10_000\n\n/**\n * MeowMeow SDK 的核心 Client,負責管理 WebSocket 連線與聊天室生命週期。\n *\n * @remarks\n * 可透過 `on(event, handler)` 監聽以下事件:\n *\n * | 事件 | Payload | 說明 |\n * |------|---------|------|\n * | `connected` | `{ user }` | 連線建立並通過身份驗證 |\n * | `disconnected` | `{ reason, willReconnect }` | 連線中斷 |\n * | `reconnecting` | `{ attempt }` | 正在嘗試重連 |\n * | `reconnected` | — | 重連成功 |\n * | `room_joined` | `{ onlineUsers, cooldownSeconds, greetingMessage? }` | 成功加入聊天室 |\n * | `banned` | `{ until }` | 被封禁 |\n * | `unbanned` | — | 封禁解除 |\n * | `error` | `{ code, message }` | SDK 內部錯誤 |\n *\n * @example\n * ```ts\n * const client = new MeowMeowClient({ token: '...', roomId: 'room-1' })\n * const room = await client.join()\n * room.on('message', msg => console.log(msg))\n * client.on('disconnected', ({ reason }) => console.warn('disconnected:', reason))\n * ```\n */\nexport class MeowMeowClient extends EventEmitter<ClientEventMap> {\n private readonly connectionApi: ConnectionApi\n private readonly roomId: string\n private currentRoom: Room | null = null\n private _pendingJoinPromise: Promise<Room> | null = null\n private _pendingJoinResolve: ((room: Room) => void) | null = null\n private _pendingJoinReject: ((err: Error) => void) | null = null\n private _pendingJoinTimer: ReturnType<typeof setTimeout> | null = null\n\n // ─── State ──────────────────────────────────────────────────────────────────\n private _connectionStatus: ConnectionStatus = 'disconnected'\n private _currentUser: User | null = null\n private _isMuted = false\n private _mutedUntil: string | null = null\n private _isBanned = false\n private readonly _userStateFilter = new OrderGuard<'muted' | 'banned'>()\n private readonly _onlineUsersFilter = new OriginOrderGuard<'users'>('multi')\n\n /** 目前的連線狀態 */\n get connectionStatus(): ConnectionStatus { return this._connectionStatus }\n /** 目前登入的使用者,連線前為 null */\n get currentUser(): User | null { return this._currentUser }\n /** 目前使用者是否被禁言 */\n get isMuted(): boolean { return this._isMuted }\n /** 禁言到期時間(ISO 8601),未被禁言時為 null */\n get mutedUntil(): string | null { return this._mutedUntil }\n /** 目前使用者是否被封禁 */\n get isBanned(): boolean { return this._isBanned }\n\n constructor(options: MeowMeowClientOptions) {\n super()\n this.roomId = options.roomId\n\n if (import.meta.env.VITE_USE_MOCK === 'true') {\n const mock = new MockConnection(this)\n if (typeof window !== 'undefined') {\n ;(window as unknown as Record<string, unknown>).mockConn = mock\n }\n this.connectionApi = mock\n } else {\n this.connectionApi = new WebSocketConnection(options, this)\n }\n }\n\n // ─── Public API ─────────────────────────────────────────────────────────────\n\n // TODO: 將 join() 從 throw 改為 return,簽名改成 Promise<{ room: Room; reason: null } | { room: null; reason: DisconnectReason }>\n // MeowMeowStore.join() 同步改為 Promise<DisconnectReason | null>\n // 影響範圍:MeowMeowStore.join、MeowMeow.ts(try/catch 可移除)、store-playground.ts\n /**\n * 建立連線並加入聊天室,回傳 {@link Room} 實例。\n *\n * 若連線或加入超過 10 秒未完成,Promise 將 reject。\n * 重複呼叫時回傳同一個 pending Promise,不會建立多條連線。\n */\n async join(): Promise<Room> {\n if (this.currentRoom && !this._pendingJoinPromise) return this.currentRoom\n if (this._pendingJoinPromise) return this._pendingJoinPromise\n\n const room = new Room(this.roomId, this.roomId, this.connectionApi)\n this.currentRoom = room\n const pending = new Promise<Room>((resolve, reject) => {\n this._pendingJoinResolve = resolve\n this._pendingJoinReject = reject\n })\n this._pendingJoinPromise = pending\n await this.connectionApi.connect(this.roomId)\n this._startJoinTimer('connected_timeout')\n return pending\n }\n\n /**\n * 主動斷開 WebSocket 連線。\n * @param reason 斷線原因,預設為 `'manual disconnect'`\n */\n disconnect(reason: DisconnectReason = 'manual disconnect'): void {\n this._clearPendingJoin()\n this.connectionApi.disconnect(reason)\n }\n\n /** 斷開連線並移除所有事件監聽器,釋放資源。頁面卸載時應呼叫此方法。 */\n dispose(): void {\n this.disconnect()\n this.removeAllListeners()\n if (this.currentRoom) {\n this.currentRoom.removeAllListeners()\n this.currentRoom = null\n }\n }\n\n // ─── Connection callbacks (called by connectionApi) ──────────────────────────\n\n /** @internal */\n onConnected(payload: PushEventPayloadMap['connected'] & { seq: number }): void {\n const { status, ...user } = payload.user\n this._connectionStatus = 'connected'\n this._currentUser = user\n this._userStateFilter.updateValue('muted', payload.seq, () => {\n this._isMuted = status === 'muted'\n })\n this._userStateFilter.updateValue('banned', payload.seq, () => {\n this._isBanned = status === 'banned'\n })\n if (this._pendingJoinReject) {\n this._startJoinTimer('room_joined_timeout')\n }\n this.emit('connected', { user })\n }\n\n /** @internal */\n onDisconnected(payload: { reason: DisconnectReason; willReconnect: boolean }): void {\n this._connectionStatus = 'disconnected'\n this._currentUser = null\n this._isMuted = false\n this._mutedUntil = null\n this._userStateFilter.dispose()\n this._onlineUsersFilter.reset()\n if (this.currentRoom) this.currentRoom.reset()\n if (this._pendingJoinReject) {\n this._pendingJoinReject(new Error(`join failed: ${payload.reason}`))\n this._clearPendingJoin()\n this.currentRoom = null\n }\n this.emit('disconnected', payload)\n }\n\n /** @internal */\n onReconnecting(payload: { attempt: number }): void {\n this._connectionStatus = 'reconnecting'\n this._onlineUsersFilter.reset()\n if (this.currentRoom) this.currentRoom.reset()\n this.emit('reconnecting', payload)\n }\n\n /** @internal */\n onReconnected(): void {\n this._connectionStatus = 'connected'\n this.emit('reconnected')\n }\n\n /** @internal */\n onRoomJoined(payload: PushEventPayloadMap['room_joined'] & { seq: number }): void {\n this._connectionStatus = 'joined'\n if (this.currentRoom) {\n this._onlineUsersFilter.initValue('users', payload.seq, () => {\n this.currentRoom!._setOnlineUsers(payload.onlineUsers)\n })\n this.currentRoom._setCooldownSeconds(payload.cooldownSeconds)\n }\n this.emit('room_joined', { onlineUsers: payload.onlineUsers, cooldownSeconds: payload.cooldownSeconds, greetingMessage: payload.greetingMessage })\n if (this._pendingJoinResolve && this.currentRoom) {\n const resolve = this._pendingJoinResolve\n const room = this.currentRoom\n this._clearPendingJoin()\n resolve(room)\n }\n }\n\n /** @internal */\n onRoomUpdated(payload: PushEventPayloadMap['room_updated'] & { seq: number }): void {\n if (this.currentRoom) this.currentRoom._handleRoomUpdated(payload)\n }\n\n /** @internal */\n onMessage(message: Message): void {\n if (this.currentRoom) this.currentRoom._handleMessage(message)\n }\n\n /** @internal */\n onPresence(payload: PushEventPayloadMap['presence'] & { seq: number }): void {\n if (this.currentRoom) {\n const { seq, ...cleanPayload } = payload\n this._onlineUsersFilter.updateValue('users', seq, () => {\n this.currentRoom!._handlePresence(cleanPayload)\n })\n }\n }\n\n /** @internal */\n onMuted(payload: PushEventPayloadMap['muted'] & { seq: number }): void {\n this._userStateFilter.updateValue('muted', payload.seq, () => {\n this._isMuted = true\n this._mutedUntil = payload.until\n if (this.currentRoom) this.currentRoom._handleMuted({ until: payload.until })\n })\n }\n\n /** @internal */\n onUnmuted(payload: { seq: number }): void {\n this._userStateFilter.updateValue('muted', payload.seq, () => {\n this._isMuted = false\n this._mutedUntil = null\n if (this.currentRoom) this.currentRoom._handleUnmuted()\n })\n }\n\n /** @internal */\n onBanned(payload: PushEventPayloadMap['banned'] & { seq: number }): void {\n this._userStateFilter.updateValue('banned', payload.seq, () => {\n this._isBanned = true\n })\n this.emit('banned', { until: payload.until })\n }\n\n /** @internal */\n onUnbanned(payload: { seq: number }): void {\n this._userStateFilter.updateValue('banned', payload.seq, () => {\n this._isBanned = false\n })\n this.emit('unbanned')\n }\n\n /** @internal */\n onWarned(payload: PushEventPayloadMap['warned'] & { seq: number }): void {\n if (this.currentRoom) this.currentRoom._handleWarned(payload)\n }\n\n /** @internal */\n onError(payload: { code: ClientErrorCode; message: string }): void {\n this.emit('error', payload)\n }\n\n // ─── Pending join helpers ────────────────────────────────────────────────────\n\n private _startJoinTimer(reason: DisconnectReason): void {\n if (this._pendingJoinTimer) clearTimeout(this._pendingJoinTimer)\n this._pendingJoinTimer = setTimeout(() => {\n if (this._pendingJoinReject) {\n this._pendingJoinReject(new Error(`join timeout: ${reason}`))\n this._clearPendingJoin()\n this.currentRoom = null\n this.connectionApi.disconnect(reason)\n }\n }, JOIN_TIMEOUT_MS)\n }\n\n private _clearPendingJoin(): void {\n if (this._pendingJoinTimer) {\n clearTimeout(this._pendingJoinTimer)\n this._pendingJoinTimer = null\n }\n this._pendingJoinResolve = null\n this._pendingJoinReject = null\n this._pendingJoinPromise = null\n }\n}\n","var niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n /*\n 2(prop) {\n return `invalid decorator for '${prop.toString()}'`\n },\n 3(prop) {\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\n },\n 4(prop) {\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\n },\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = process.env.NODE_ENV !== \"production\" ? niceErrors : {};\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (process.env.NODE_ENV !== \"production\") {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof self !== \"undefined\") {\n return self;\n }\n return mockGlobal;\n}\n\n// We shorten anything used > 5 times\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die(process.env.NODE_ENV !== \"production\" ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : \"Proxy not available\");\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if (process.env.NODE_ENV !== \"production\" && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\n * Makes sure that the provided function is invoked at most once.\n */\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n var proto = Object.getPrototypeOf(value);\n if (proto == null) {\n return true;\n }\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n}\n// https://stackoverflow.com/a/37865170\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n if (!constructor) {\n return false;\n }\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\n/**\n * Yields true for both native and observable Map, even across different windows.\n */\nfunction isES6Map(thing) {\n return thing != null && Object.prototype.toString.call(thing) === \"[object Map]\";\n}\n/**\n * Makes sure a Map is an instance of non-inherited native or observable Map.\n */\nfunction isPlainES6Map(thing) {\n var mapProto = Object.getPrototypeOf(thing);\n var objectProto = Object.getPrototypeOf(mapProto);\n var nullProto = Object.getPrototypeOf(objectProto);\n return nullProto === null;\n}\n/**\n * Yields true for both native and observable Set, even across different windows.\n */\nfunction isES6Set(thing) {\n return thing != null && Object.prototype.toString.call(thing) === \"[object Set]\";\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\n * Returns the following: own enumerable keys and symbols.\n */\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object);\n // Not supported in IE, so there are not going to be symbol props anyway...\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n var symbols = Object.getOwnPropertySymbols(object);\n if (!symbols.length) {\n return keys;\n }\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n}\n// From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} : /* istanbul ignore next */Object.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n}\n// From Immer utils\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {};\n // Note: without polyfill for ownKeys, symbols won't be picked up\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\nfunction getFlag(flags, mask) {\n return !!(flags & mask);\n}\nfunction setFlag(flags, mask, newValue) {\n if (newValue) {\n flags |= mask;\n } else {\n flags &= ~mask;\n }\n return flags;\n}\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _createForOfIteratorHelperLoose(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (t) return (t = t.call(r)).next.bind(t);\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var o = 0;\n return function () {\n return o >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[o++]\n };\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);\n}\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\n * Creates a function that acts as\n * - decorator\n * - annotation object\n */\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n if (is20223Decorator(property)) {\n return annotation.decorate_20223_(target, property);\n } else {\n storeAnnotation(target, property, annotation);\n }\n }\n return Object.assign(decorator, annotation);\n}\n/**\n * Stores annotation to prototype,\n * so it can be inspected later by `makeObservable` called from constructor\n */\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n }\n // @override must override something\n if (process.env.NODE_ENV !== \"production\" && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n }\n // Cannot re-decorate\n assertNotDecorated(prototype, annotation, key);\n // Ignore override\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\nfunction assertNotDecorated(prototype, annotation, key) {\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\n * Collects annotations from prototypes and stores them on target (instance)\n */\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n // if (__DEV__ && !target[storedAnnotationsSymbol]) {\n // die(\n // `No annotations were passed to makeObservable, but no decorated members have been found either`\n // )\n // }\n // We need a copy as we will remove annotation from the list once it's applied.\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n return target[storedAnnotationsSymbol];\n}\nfunction is20223Decorator(context) {\n return typeof context == \"object\" && typeof context[\"kind\"] == \"string\";\n}\nfunction assert20223DecoratorType(context, types) {\n if (process.env.NODE_ENV !== \"production\" && !types.includes(context.kind)) {\n die(\"The decorator applied to '\" + String(context.name) + \"' cannot be used on a \" + context.kind + \" element\");\n }\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n /**\n * Create a new atom. For debugging purposes it is recommended to give it a name.\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Atom@\" + getNextId() : \"Atom\";\n }\n this.name_ = void 0;\n this.flags_ = 0;\n this.observers_ = new Set();\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n // onBecomeObservedListeners\n this.onBOL = void 0;\n // onBecomeUnobservedListeners\n this.onBUOL = void 0;\n this.name_ = name_;\n }\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n var _proto = Atom.prototype;\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\n * Invoke this method to notify mobx that your atom has been used somehow.\n * Returns true if there is currently a reactive context.\n */;\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\n */;\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n _proto.toString = function toString() {\n return this.name_;\n };\n return _createClass(Atom, [{\n key: \"isBeingObserved\",\n get: function get() {\n return getFlag(this.flags_, Atom.isBeingObservedMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Atom.isBeingObservedMask_, newValue);\n }\n }, {\n key: \"isPendingUnobservation\",\n get: function get() {\n return getFlag(this.flags_, Atom.isPendingUnobservationMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Atom.isPendingUnobservationMask_, newValue);\n }\n }, {\n key: \"diffValue\",\n get: function get() {\n return getFlag(this.flags_, Atom.diffValueMask_) ? 1 : 0;\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Atom.diffValueMask_, newValue === 1 ? true : false);\n }\n }]);\n}();\nAtom.isBeingObservedMask_ = 1;\nAtom.isPendingUnobservationMask_ = 2;\nAtom.diffValueMask_ = 4;\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n var atom = new Atom(name);\n // default `noop` listener will not initialize the hook Set\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n }\n // something that can be converted and mutated?\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n if (process.env.NODE_ENV !== \"production\") {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if (process.env.NODE_ENV !== \"production\" && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_,\n decorate_20223_: decorate_20223_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\nfunction make_(adm, key) {\n // Must not be plain object\n if (process.env.NODE_ENV !== \"production\" && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n }\n // Must override something\n if (process.env.NODE_ENV !== \"production\" && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n return 0 /* MakeResult.Cancel */;\n}\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\nfunction decorate_20223_(desc, context) {\n console.warn(\"'\" + this.annotationType_ + \"' cannot be used with decorators - this is a no-op\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1,\n decorate_20223_: decorate_20223_$1\n };\n}\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n }\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2 /* MakeResult.Continue */;\n}\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\nfunction decorate_20223_$1(mthd, context) {\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"method\", \"field\"]);\n }\n var kind = context.kind,\n name = context.name,\n addInitializer = context.addInitializer;\n var ann = this;\n var _createAction = function _createAction(m) {\n var _ann$options_$name, _ann$options_, _ann$options_$autoAct, _ann$options_2;\n return createAction((_ann$options_$name = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.name) != null ? _ann$options_$name : name.toString(), m, (_ann$options_$autoAct = (_ann$options_2 = ann.options_) == null ? void 0 : _ann$options_2.autoAction) != null ? _ann$options_$autoAct : false);\n };\n if (kind == \"field\") {\n return function (initMthd) {\n var _ann$options_3;\n var mthd = initMthd;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_ann$options_3 = ann.options_) != null && _ann$options_3.bound) {\n mthd = mthd.bind(this);\n mthd.isMobxAction = true;\n }\n return mthd;\n };\n }\n if (kind == \"method\") {\n var _this$options_2;\n if (!isAction(mthd)) {\n mthd = _createAction(mthd);\n }\n if ((_this$options_2 = this.options_) != null && _this$options_2.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobxAction = true;\n self[name] = bound;\n });\n }\n return mthd;\n }\n die(\"Cannot apply '\" + ann.annotationType_ + \"' to '\" + String(name) + \"' (kind: \" + kind + \"):\" + (\"\\n'\" + ann.annotationType_ + \"' can only be used on properties with a function value.\"));\n}\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\nfunction createActionDescriptor(adm, annotation, key, descriptor,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false,\n // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2,\n decorate_20223_: decorate_20223_$2\n };\n}\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // prototype\n // bound - must annotate protos to support super.flow()\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0 /* MakeResult.Cancel */;\n }\n }\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1 /* MakeResult.Break */;\n }\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2 /* MakeResult.Continue */;\n}\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\nfunction decorate_20223_$2(mthd, context) {\n var _this$options_3;\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"method\"]);\n }\n var name = context.name,\n addInitializer = context.addInitializer;\n if (!isFlow(mthd)) {\n mthd = flow(mthd);\n }\n if ((_this$options_3 = this.options_) != null && _this$options_3.bound) {\n addInitializer(function () {\n var self = this;\n var bound = self[name].bind(self);\n bound.isMobXFlow = true;\n self[name] = bound;\n });\n }\n return mthd;\n}\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound,\n// provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n // In case of flow.bound, the descriptor can be from already annotated prototype\n if (!isFlow(value)) {\n value = flow(value);\n }\n if (bound) {\n var _adm$proxy_;\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n // This is normally set by `flow`, but `bind` returns new function...\n value.isMobXFlow = true;\n }\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3,\n decorate_20223_: decorate_20223_$3\n };\n}\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\nfunction decorate_20223_$3(get, context) {\n if (process.env.NODE_ENV !== \"production\") {\n assert20223DecoratorType(context, [\"getter\"]);\n }\n var ann = this;\n var key = context.name,\n addInitializer = context.addInitializer;\n addInitializer(function () {\n var adm = asObservableObject(this)[$mobx];\n var options = _extends({}, ann.options_, {\n get: get,\n context: this\n });\n options.name || (options.name = process.env.NODE_ENV !== \"production\" ? adm.name_ + \".\" + key.toString() : \"ObservableObject.\" + key.toString());\n adm.values_.set(key, new ComputedValue(options));\n });\n return function () {\n return this[$mobx].getObservablePropValue_(key);\n };\n}\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n if (process.env.NODE_ENV !== \"production\" && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4,\n decorate_20223_: decorate_20223_$4\n };\n}\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0 /* MakeResult.Cancel */ : 1 /* MakeResult.Break */;\n}\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\nfunction decorate_20223_$4(desc, context) {\n if (process.env.NODE_ENV !== \"production\") {\n if (context.kind === \"field\") {\n throw die(\"Please use `@observable accessor \" + String(context.name) + \"` instead of `@observable \" + String(context.name) + \"`\");\n }\n assert20223DecoratorType(context, [\"accessor\"]);\n }\n var ann = this;\n var kind = context.kind,\n name = context.name;\n // The laziness here is not ideal... It's a workaround to how 2022.3 Decorators are implemented:\n // `addInitializer` callbacks are executed _before_ any accessors are defined (instead of the ideal-for-us right after each).\n // This means that, if we were to do our stuff in an `addInitializer`, we'd attempt to read a private slot\n // before it has been initialized. The runtime doesn't like that and throws a `Cannot read private member\n // from an object whose class did not declare it` error.\n // TODO: it seems that this will not be required anymore in the final version of the spec\n // See TODO: link\n var initializedObjects = new WeakSet();\n function initializeObservable(target, value) {\n var _ann$options_$enhance, _ann$options_;\n var adm = asObservableObject(target)[$mobx];\n var observable = new ObservableValue(value, (_ann$options_$enhance = (_ann$options_ = ann.options_) == null ? void 0 : _ann$options_.enhancer) != null ? _ann$options_$enhance : deepEnhancer, process.env.NODE_ENV !== \"production\" ? adm.name_ + \".\" + name.toString() : \"ObservableObject.\" + name.toString(), false);\n adm.values_.set(name, observable);\n initializedObjects.add(target);\n }\n if (kind == \"accessor\") {\n return {\n get: function get() {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, desc.get.call(this));\n }\n return this[$mobx].getObservablePropValue_(name);\n },\n set: function set(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return this[$mobx].setObservablePropValue_(name, value);\n },\n init: function init(value) {\n if (!initializedObjects.has(this)) {\n initializeObservable(this, value);\n }\n return value;\n }\n };\n }\n return;\n}\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n if (process.env.NODE_ENV !== \"production\" && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5,\n decorate_20223_: decorate_20223_$5\n };\n}\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = isAction(descriptor.set) ? descriptor.set // See #4553\n : createAction(key.toString(), descriptor.set);\n // own\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0 /* MakeResult.Cancel */ : 2 /* MakeResult.Continue */;\n }\n // proto\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2 /* MakeResult.Continue */;\n }\n // function on proto -> autoAction/flow\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n }\n // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable;\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n }\n // lone setter -> action setter\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n }\n // other -> observable\n // if function respect autoBind option\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\nfunction decorate_20223_$5(desc, context) {\n die(\"'\" + this.annotationType_ + \"' cannot be used as a decorator\");\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\";\n// Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\n * Turns an object, array or function into a reactive structure.\n * @param v the value which should become observable.\n */\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp; (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return observableAnnotation.decorate_20223_(v, arg2);\n }\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n }\n // already observable - ignore\n if (isObservable(v)) {\n return v;\n }\n // plain object\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n }\n // Array\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n }\n // Map\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n }\n // Set\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n }\n // other object - ignore\n if (typeof v === \"object\" && v !== null) {\n return v;\n }\n // anything else\n return observable.box(v, arg2);\n}\nassign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return initObservable(function () {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n });\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n};\n// eslint-disable-next-line\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\n * Decorator for class properties: @computed get value() { return expr; }.\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\n */\nvar computed = function computed(arg1, arg2) {\n if (is20223Decorator(arg2)) {\n // @computed (2022.3 Decorators)\n return computedAnnotation.decorate_20223_(arg1, arg2);\n }\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n }\n // computed(expr, options?)\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\"); /* for generated name */\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// we don't use globalState for these in order to avoid possible issues with multiple\n// mobx versions\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false;\n// we can safely recycle this object\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n res.isMobxAction = true;\n res.toString = function () {\n return fn.toString();\n };\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n defineProperty(res, \"name\", tmpNameDescriptor);\n }\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation,\n// true for autoAction\nscope, args) {\n var notifySpy_ = process.env.NODE_ENV !== \"production\" && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n if (process.env.NODE_ENV !== \"production\" && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n currentActionId = runInfo.parentActionId_;\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n if (process.env.NODE_ENV !== \"production\" && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar CREATE = \"create\";\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableValue@\" + getNextId() : \"ObservableValue\";\n }\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n if (process.env.NODE_ENV !== \"production\" && notifySpy && isSpyEnabled()) {\n var _this$value_;\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _this,\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + ((_this$value_ = _this.value_) == null ? void 0 : _this$value_.toString())\n });\n }\n return _this;\n }\n _inheritsLoose(ObservableValue, _Atom);\n var _proto = ObservableValue.prototype;\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n this.setNewValue_(newValue);\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n if (!change) {\n return globalState.UNCHANGED;\n }\n newValue = change.newValue;\n }\n // apply modifier\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n return registerListener(this, listener);\n };\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[Symbol.toPrimitive] = function () {\n return this.valueOf();\n };\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\n/**\n * A node in the state dependency root that observes other nodes, and can be observed itself.\n *\n * ComputedValue will remember the result of the computation for the duration of the batch, or\n * while being observed.\n *\n * During this time it will recompute only when one of its direct dependencies changed,\n * but only when it is being accessed with `ComputedValue.get()`.\n *\n * Implementation description:\n * 1. First time it's being accessed it will compute and remember result\n * give back remembered result until 2. happens\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\n * 3. When it's being accessed, recompute if any shallow dependency changed.\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\n * go to step 2. either way\n *\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\n */\nvar ComputedValue = /*#__PURE__*/function () {\n /**\n * Create a new computed value based on a function expression.\n *\n * The `name` property is for debug purposes only.\n *\n * The `equals` property specifies the comparer function to use to determine if a newly produced\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\n * Structural comparison can be convenient if you always produce a new aggregated object and\n * don't want to notify observers if it is structurally the same.\n * This is useful for working with vectors, mouse coordinates etc.\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n // nodes we are looking at. Our value depends on these nodes\n this.newObserving_ = null;\n // during tracking it's an array with new observed observers\n this.observers_ = new Set();\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.flags_ = 0;\n this.derivation = void 0;\n // N.B: unminified as it is used by MST\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n if (!options.get) {\n die(31);\n }\n this.derivation = options.get;\n this.name_ = options.name || (process.env.NODE_ENV !== \"production\" ? \"ComputedValue@\" + getNextId() : \"ComputedValue\");\n if (options.set) {\n this.setter_ = createAction(process.env.NODE_ENV !== \"production\" ? this.name_ + \"-setter\" : \"ComputedValue-setter\", options.set);\n }\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n var _proto = ComputedValue.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n // to check for cycles\n ;\n /**\n * Returns the current value of this computed value.\n * Will evaluate its computation first if needed.\n */\n _proto.get = function get() {\n if (this.isComputing) {\n die(32, this.name_, this.derivation);\n }\n if (globalState.inBatch === 0 &&\n // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n globalState.trackingContext = prevTrackingContext;\n }\n }\n var result = this.value_;\n if (isCaughtException(result)) {\n throw result.cause;\n }\n return result;\n };\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter) {\n die(33, this.name_);\n }\n this.isRunningSetter = true;\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended = /* see #1208 */this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n if (changed) {\n this.value_ = newValue;\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n return changed;\n };\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing = true;\n // don't allow state changes during computation\n var prev = allowStateChangesStart(false);\n var res;\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n allowStateChangesEnd(prev);\n this.isComputing = false;\n return res;\n };\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n if (process.env.NODE_ENV !== \"production\" && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n firstTime = false;\n prevValue = newValue;\n });\n };\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n _proto[Symbol.toPrimitive] = function () {\n return this.valueOf();\n };\n return _createClass(ComputedValue, [{\n key: \"isComputing\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isComputingMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isComputingMask_, newValue);\n }\n }, {\n key: \"isRunningSetter\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isRunningSetterMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isRunningSetterMask_, newValue);\n }\n }, {\n key: \"isBeingObserved\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isBeingObservedMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isBeingObservedMask_, newValue);\n }\n }, {\n key: \"isPendingUnobservation\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.isPendingUnobservationMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.isPendingUnobservationMask_, newValue);\n }\n }, {\n key: \"diffValue\",\n get: function get() {\n return getFlag(this.flags_, ComputedValue.diffValueMask_) ? 1 : 0;\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, ComputedValue.diffValueMask_, newValue === 1 ? true : false);\n }\n }]);\n}();\nComputedValue.isComputingMask_ = 1;\nComputedValue.isRunningSetterMask_ = 2;\nComputedValue.isBeingObservedMask_ = 4;\nComputedValue.isPendingUnobservationMask_ = 8;\nComputedValue.diffValueMask_ = 16;\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\";\n // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\";\n // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\";\n // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\nvar TraceMode;\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause;\n // Empty\n};\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\n * Finds out whether any dependency of the derivation has actually changed.\n * If dependenciesState is 1 then it will recalculate dependencies,\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\n *\n * By iterating over the dependencies in the same order that they were reported and\n * stopping on the first change, all the recalculations are only called for ComputedValues\n * that will be tracked by derivation. That is because we assume that if the first x\n * dependencies of the derivation doesn't change then the derivation should run the same way\n * up until accessing x-th dependency.\n */\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n var obs = derivation.observing_,\n l = obs.length;\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var hasObservers = atom.observers_.size > 0;\n // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if (process.env.NODE_ENV !== \"production\" && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\n * Executes the provided function `f` and tracks which observables are being accessed.\n * The tracking information is stored on the `derivation` object and the derivation is registered\n * as observer of any of the accessed observables.\n */\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true);\n changeDependenciesStateTo0(derivation);\n // Preallocate array; will be trimmed by bindDependencies.\n derivation.newObserving_ = new Array(\n // Reserve constant space for initial dependencies, dynamic space otherwise.\n // See https://github.com/mobxjs/mobx/pull/3833\n derivation.runId_ === 0 ? 100 : derivation.observing_.length);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (derivation.observing_.length !== 0) {\n return;\n }\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\n * diffs newObserving with observing.\n * update observing to be newObserving with unique observables\n * notify observers that become observed/unobserved\n */\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_;\n // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n if (dep.diffValue === 0) {\n dep.diffValue = 1;\n if (i0 !== i) {\n observing[i0] = dep;\n }\n i0++;\n }\n // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n l = prevObserving.length;\n while (l--) {\n var _dep = prevObserving[l];\n if (_dep.diffValue === 0) {\n removeObserver(_dep, derivation);\n }\n _dep.diffValue = 0;\n }\n // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n while (i0--) {\n var _dep2 = observing[i0];\n if (_dep2.diffValue === 1) {\n _dep2.diffValue = 0;\n addObserver(_dep2, derivation);\n }\n }\n // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\n *\n */\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\n * These values will persist if global state is reset\n */\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n /**\n * MobXGlobals version.\n * MobX compatiblity with other versions loaded in memory as long as this version matches.\n * It indicates that the global state still stores similar information\n *\n * N.B: this version is unrelated to the package version of MobX, and is only the version of the\n * internal state storage of MobX, and can be the same across many different package versions\n */\n this.version = 6;\n /**\n * globally unique token to signal unchanged\n */\n this.UNCHANGED = {};\n /**\n * Currently running derivation\n */\n this.trackingDerivation = null;\n /**\n * Currently running reaction. This determines if we currently have a reactive context.\n * (Tracking derivation is also set for temporal tracking of computed values inside actions,\n * but trackingReaction can only be set by a form of Reaction)\n */\n this.trackingContext = null;\n /**\n * Each time a derivation is tracked, it is assigned a unique run-id\n */\n this.runId = 0;\n /**\n * 'guid' for general purpose. Will be persisted amongst resets.\n */\n this.mobxGuid = 0;\n /**\n * Are we in a batch block? (and how many of them)\n */\n this.inBatch = 0;\n /**\n * Observables that don't have observers anymore, and are about to be\n * suspended, unless somebody else accesses it in the same batch\n *\n * @type {IObservable[]}\n */\n this.pendingUnobservations = [];\n /**\n * List of scheduled, not yet executed, reactions.\n */\n this.pendingReactions = [];\n /**\n * Are we currently processing reactions?\n */\n this.isRunningReactions = false;\n /**\n * Is it allowed to change observables at this point?\n * In general, MobX doesn't allow that when running computations and React.render.\n * To ensure that those functions stay pure.\n */\n this.allowStateChanges = false;\n /**\n * Is it allowed to read observables at this point?\n * Used to hold the state needed for `observableRequiresReaction`\n */\n this.allowStateReads = true;\n /**\n * If strict mode is enabled, state changes are by default not allowed\n */\n this.enforceActions = true;\n /**\n * Spy callbacks\n */\n this.spyListeners = [];\n /**\n * Globally attached error handlers that react specifically to errors in reactions\n */\n this.globalReactionErrorHandlers = [];\n /**\n * Warn if computed values are accessed outside a reactive context\n */\n this.computedRequiresReaction = false;\n /**\n * (Experimental)\n * Warn if you try to create to derivation / reactive context without accessing any observable.\n */\n this.reactionRequiresObservable = false;\n /**\n * (Experimental)\n * Warn if observables are accessed outside a reactive context\n */\n this.observableRequiresReaction = false;\n /*\n * Don't catch and rethrow exceptions. This is useful for inspecting the state of\n * the stack when an exception occurs while debugging.\n */\n this.disableErrorBoundaries = false;\n /*\n * If true, we are already handling an exception in an action. Any errors in reactions should be suppressed, as\n * they are not the cause, see: https://github.com/mobxjs/mobx/issues/1836\n */\n this.suppressReactionErrors = false;\n this.useProxies = true;\n /*\n * print warnings about code that would fail if proxies weren't available\n */\n this.verifyProxies = false;\n /**\n * False forces all object's descriptors to\n * writable: true\n * configurable: true\n */\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n isolateCalled = true;\n if (canMergeGlobalState) {\n var global = getGlobal();\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\n * For testing purposes only; this will break the internal state of existing observables,\n * but can be used to get back at a stable state after throwing errors\n */\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n}\n// function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n}\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n }\n // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n}\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\n * Avoids unnecessary recalculations.\n */\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions();\n // the batch is actually about to finish, all unobserving should happen here.\n var list = globalState.pendingUnobservations;\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation = false;\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved = false;\n observable.onBUO();\n }\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n if (derivation !== null) {\n /**\n * Simple optimization, give each derivation run an unique id (runId)\n * Check if last time this observable was accessed the same runId is used\n * if this is the case, the relation is already known\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_;\n // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n if (!observable.isBeingObserved && globalState.trackingContext) {\n observable.isBeingObserved = true;\n observable.onBO();\n }\n }\n return observable.isBeingObserved;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n return false;\n}\n// function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n/**\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\n * It will propagate changes to observers from previous run\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\n * Hopefully self reruning autoruns aren't a feature people should depend on\n * Also most basic use cases should be ok\n */\n// Called by Atom when its value changes\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n // Ideally we use for..of here, but the downcompiled version is really slow...\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n d.onBecomeStale_();\n }\n d.dependenciesState_ = IDerivationState_.STALE_;\n });\n // invariantLOS(observable, \"changed end\");\n}\n// Called by ComputedValue when it recalculate and its value changed\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n });\n // invariantLOS(observable, \"confirmed end\");\n}\n// Used by computed when its dependency changed, but we don't wan't to immediately recompute.\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n });\n // invariantLOS(observable, \"maybe end\");\n}\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1);\n // prettier-ignore\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n }\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n // nodes we are looking at. Our value depends on these nodes\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.flags_ = 0;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n var _proto = Reaction.prototype;\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled) {\n this.isScheduled = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n }\n /**\n * internal, use schedule() if you intend to kick off a reaction\n */;\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed) {\n startBatch();\n this.isScheduled = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n if (shouldCompute(this)) {\n this.isTrackPending = true;\n try {\n this.onInvalidate_();\n if (process.env.NODE_ENV !== \"production\" && this.isTrackPending && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n _proto.track = function track(fn) {\n if (this.isDisposed) {\n return;\n // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n if (process.env.NODE_ENV !== \"production\" && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n this.isRunning = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning = false;\n this.isTrackPending = false;\n if (this.isDisposed) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n if (process.env.NODE_ENV !== \"production\" && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n endBatch();\n };\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n var message = process.env.NODE_ENV !== \"production\" ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : \"[mobx] uncaught error in '\" + this + \"'\";\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n _proto.dispose = function dispose() {\n if (!this.isDisposed) {\n this.isDisposed = true;\n if (!this.isRunning) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n _proto.getDisposer_ = function getDisposer_(abortSignal) {\n var _this2 = this;\n var dispose = function dispose() {\n _this2.dispose();\n abortSignal == null || abortSignal.removeEventListener == null || abortSignal.removeEventListener(\"abort\", dispose);\n };\n abortSignal == null || abortSignal.addEventListener == null || abortSignal.addEventListener(\"abort\", dispose);\n dispose[$mobx] = this;\n if (\"dispose\" in Symbol && typeof Symbol.dispose === \"symbol\") {\n dispose[Symbol.dispose] = dispose;\n }\n return dispose;\n };\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n trace(this, enterBreakPoint);\n };\n return _createClass(Reaction, [{\n key: \"isDisposed\",\n get: function get() {\n return getFlag(this.flags_, Reaction.isDisposedMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.isDisposedMask_, newValue);\n }\n }, {\n key: \"isScheduled\",\n get: function get() {\n return getFlag(this.flags_, Reaction.isScheduledMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.isScheduledMask_, newValue);\n }\n }, {\n key: \"isTrackPending\",\n get: function get() {\n return getFlag(this.flags_, Reaction.isTrackPendingMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.isTrackPendingMask_, newValue);\n }\n }, {\n key: \"isRunning\",\n get: function get() {\n return getFlag(this.flags_, Reaction.isRunningMask_);\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.isRunningMask_, newValue);\n }\n }, {\n key: \"diffValue\",\n get: function get() {\n return getFlag(this.flags_, Reaction.diffValueMask_) ? 1 : 0;\n },\n set: function set(newValue) {\n this.flags_ = setFlag(this.flags_, Reaction.diffValueMask_, newValue === 1 ? true : false);\n }\n }]);\n}();\nReaction.isDisposedMask_ = 1;\nReaction.isScheduledMask_ = 2;\nReaction.isTrackPendingMask_ = 4;\nReaction.isRunningMask_ = 8;\nReaction.diffValueMask_ = 16;\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\n * Magic number alert!\n * Defines within how many times a reaction is allowed to re-trigger itself\n * until it is assumed that this is gonna be a never ending loop...\n */\nvar MAX_REACTION_ITERATIONS = 100;\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n reactionScheduler(runReactionsHelper);\n}\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0;\n // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(process.env.NODE_ENV !== \"production\" ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : \"[mobx] cycle in reaction: \" + allReactions[0]);\n allReactions.splice(0); // clear reactions\n }\n var remainingReactions = allReactions.splice(0);\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n globalState.isRunningReactions = false;\n}\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return process.env.NODE_ENV !== \"production\" && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n } // dead code elimination can do the rest\n if (!globalState.spyListeners.length) {\n return;\n }\n var listeners = globalState.spyListeners;\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var change = _extends({}, event, {\n spyReportStart: true\n });\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\"[mobx.spy] Is a no-op in production builds\");\n return function () {};\n } else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"<unnamed action>\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n }\n // action(\"name\", fn() {})\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n }\n // @action (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return (autoAction ? autoActionAnnotation : actionAnnotation).decorate_20223_(arg1, arg2);\n }\n // @action\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n }\n // action(\"name\") & @action(\"name\")\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n if (process.env.NODE_ENV !== \"production\") {\n die(\"Invalid arguments for `action`\");\n }\n };\n return res;\n}\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\n * Creates a named reactive view and keeps it alive, so that the view is always\n * updated if one of the dependencies changes, even when the view is not further used by something else.\n * @param view The reactive view\n * @returns disposer function, which can be used to stop the view from being updated in the future.\n */\nfunction autorun(view, opts) {\n var _opts$name, _opts, _opts2, _opts3;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : process.env.NODE_ENV !== \"production\" ? view.name || \"Autorun@\" + getNextId() : \"Autorun\";\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts);\n // debounced autorun\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n if (!reaction.isDisposed) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n function reactionRunner() {\n view(reaction);\n }\n if (!((_opts2 = opts) != null && (_opts2 = _opts2.signal) != null && _opts2.aborted)) {\n reaction.schedule_();\n }\n return reaction.getDisposer_((_opts3 = opts) == null ? void 0 : _opts3.signal);\n}\nvar run = function run(f) {\n return f();\n};\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\nfunction reaction(expression, effect, opts) {\n var _opts$name2, _opts4, _opts5;\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n function reactionRunner() {\n isScheduled = false;\n if (r.isDisposed) {\n return;\n }\n var changed = false;\n var oldValue = value;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n value = nextValue;\n });\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n firstTime = false;\n }\n if (!((_opts4 = opts) != null && (_opts4 = _opts4.signal) != null && _opts4.aborted)) {\n r.schedule_();\n }\n return r.getDisposer_((_opts5 = opts) == null ? void 0 : _opts5.signal);\n}\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n return function () {\n var hookListeners = atom[listenersKey];\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\";\n// const IF_AVAILABLE = \"ifavailable\"\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n if (process.env.NODE_ENV !== \"production\" && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n }\n // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n var descriptors = getOwnPropertyDescriptors(properties);\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key],\n // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n });\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n return result;\n}\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n return result;\n}\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow (2022.3 Decorators)\n if (is20223Decorator(arg2)) {\n return flowAnnotation.decorate_20223_(arg1, arg2);\n }\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n }\n // flow(fn)\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n var generator = arg1;\n var name = generator.name || \"<unnamed flow>\";\n // Implementation based on https://github.com/tj/co/blob/master/index.js\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n next(ret);\n }\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n if (ret.done) {\n return resolve(ret.value);\n }\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n onFulfilled(undefined); // kick off the process\n });\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n }\n // Finally block can return (or yield) stuff..\n var _res = gen[\"return\"](undefined);\n // eat anything that promise would do, it's cancelled!\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n return promise;\n };\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n target = getAdministration(thing, propOrHandler);\n } else if (process.env.NODE_ENV !== \"production\") {\n return die(\"Expected observable map, object or array as first array\");\n }\n if (process.env.NODE_ENV !== \"production\" && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n if (isObservableObject(value) === false) {\n return false;\n }\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n if (property !== undefined) {\n if (process.env.NODE_ENV !== \"production\" && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n return false;\n }\n // For first check, see #701\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\nfunction isObservable(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n return;\n }\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n startBatch();\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\n * Recursively converts an observable to it's non-observable native counterpart.\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\n * Computed and other non-enumerable properties are completely ignored.\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\n */\nfunction toJS(source, options) {\n if (process.env.NODE_ENV !== \"production\" && options) {\n die(\"toJS no longer supports options\");\n }\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n var enterBreakPoint = false;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n var derivation = getAtomFromArgs(args);\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n case 1:\n return getAtom(args[0]);\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\n * During a transaction no views are updated until the end of the transaction.\n * The transaction will be run synchronously nonetheless.\n *\n * @param action a function that updates some reactive state\n * @returns any value that was returned by the 'action' parameter.\n */\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n startBatch();\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n return _when(predicate, arg1, arg2 || {});\n}\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed) {\n disposer();\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n opts.name = process.env.NODE_ENV !== \"production\" ? opts.name || \"When@\" + getNextId() : \"When\";\n var effectAction = createAction(process.env.NODE_ENV !== \"production\" ? opts.name + \"-effect\" : \"When-effect\", effect);\n // eslint-disable-next-line\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n if (cond) {\n r.dispose();\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n effectAction();\n }\n }, opts);\n return disposer;\n}\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n if (process.env.NODE_ENV !== \"production\" && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n opts == null || (_opts$signal2 = opts.signal) == null || _opts$signal2.addEventListener == null || _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n return opts == null || (_opts$signal3 = opts.signal) == null || _opts$signal3.removeEventListener == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n}\n// Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\nvar objectProxyTraps = {\n has: function has(target, name) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n if (!isStringish(name)) {\n return false;\n }\n if (process.env.NODE_ENV !== \"production\" && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n if (!isStringish(name)) {\n return false;\n }\n // null (intercepted) -> true (success)\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n }\n // null (intercepted) -> true (success)\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n if (change && !change.type) {\n die(14);\n }\n if (!change) {\n break;\n }\n }\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n if (!listeners) {\n return;\n }\n listeners = listeners.slice();\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n initObservable(function () {\n var _annotations;\n var adm = asObservableObject(target, options)[$mobx];\n if (process.env.NODE_ENV !== \"production\" && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n }\n // Default to decorators\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target);\n // Annotate\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n });\n return target;\n}\n// proto[keysSymbol] = new Set<PropertyKey>()\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n }\n // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n initObservable(function () {\n var adm = asObservableObject(target, options)[$mobx];\n // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key,\n // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n });\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n if (name === $mobx) {\n return adm;\n }\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n // this is the prop that gets proxied, so can't replace it!\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, process.env.NODE_ENV !== \"production\" ? name + \"[..]\" : \"ObservableArray[..]\");\n };\n }\n var _proto = ObservableArrayAdministration.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n return values;\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n return registerListener(this, listener);\n };\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n var currentLength = this.values_.length;\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n this.lastKnownLength_ += delta;\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n if (!change) {\n return EMPTY_ARRAY;\n }\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n if (this.legacyMode_ || process.env.NODE_ENV !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n return this.dehanceValues_(res);\n };\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount);\n // The items that that should remain at the end of the array\n var oldItems = this.values_.slice(index + deleteCount);\n // New length is the previous length + addition count - deletion count\n this.values_.length += newItems.length - deleteCount;\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n return res;\n }\n };\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null;\n // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n this.atom_.reportChanged();\n // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn(process.env.NODE_ENV !== \"production\" ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : \"[mobx] Out of bounds read: \" + index);\n return undefined;\n }\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n // since \"this\" is the real array we need to pass its proxy\n index: index,\n newValue: newValue\n });\n if (!change) {\n return;\n }\n newValue = change.newValue;\n }\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n assertProxies();\n return initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n if (initialValues && initialValues.length) {\n adm.spliceWithArray_(0, 0, initialValues);\n }\n return proxy;\n });\n}\n// eslint-disable-next-line\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n /*\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\n * since these functions alter the inner structure of the array, the have side effects.\n * Because the have side effects, they should not be used in computed function,\n * and for that reason the do not call dependencyState.notifyObserved\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n var adm = this[$mobx];\n switch (arguments.length) {\n case 0:\n return [];\n case 1:\n return adm.spliceWithArray_(index);\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n return false;\n }\n};\n/**\n * Wrap function from prototype\n * Without this, everything works as well, but this works\n * faster as everything works on unproxied values\n */\naddArrayExtension(\"at\", simpleFunc);\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc);\naddArrayExtension(\"toSorted\", simpleFunc);\naddArrayExtension(\"toSpliced\", simpleFunc);\naddArrayExtension(\"with\", simpleFunc);\n// map\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"findLast\", mapLikeFunc);\naddArrayExtension(\"findLastIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc);\naddArrayExtension(\"toReversed\", mapLikeFunc);\n// reduce\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n}\n// Report and delegate to dehanced array\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n}\n// Make sure callbacks receive correct array arg #2326\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n // #2432 - reduce behavior depends on arguments.length\n var callback = arguments[0];\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\";\n// just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\nvar ObservableMap = /*#__PURE__*/function () {\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableMap@\" + getNextId() : \"ObservableMap\";\n }\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n // hasMap, not hashMap >-).\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n if (!isFunction(Map)) {\n die(18);\n }\n initObservable(function () {\n _this.keysAtom_ = createAtom(process.env.NODE_ENV !== \"production\" ? _this.name_ + \".keys()\" : \"ObservableMap.keys()\");\n _this.data_ = new Map();\n _this.hasMap_ = new Map();\n if (initialData) {\n _this.merge(initialData);\n }\n });\n }\n var _proto = ObservableMap.prototype;\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n _proto.has = function has(key) {\n var _this2 = this;\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n var entry = this.hasMap_.get(key);\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableMap.key?\", false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n return entry.get();\n };\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n if (!change) {\n return this;\n }\n value = change.newValue;\n }\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n if (!change) {\n return false;\n }\n }\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n transaction(function () {\n var _this3$hasMap_$get;\n _this3.keysAtom_.reportChanged();\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null || _this3$hasMap_$get.setNewValue_(false);\n var observable = _this3.data_.get(key);\n observable.setNewValue_(undefined);\n _this3.data_[\"delete\"](key);\n });\n if (notify) {\n notifyListeners(this, _change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n var observable = new ObservableValue(newValue, _this4.enhancer_, process.env.NODE_ENV !== \"production\" ? _this4.name_ + \".\" + stringifyKey(key) : \"ObservableMap.key\", false);\n _this4.data_.set(key, observable);\n newValue = observable.value_; // value might have been changed\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null || _this4$hasMap_$get.setNewValue_(true);\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n return this.dehanceValue_(undefined);\n };\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterableForMap({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterableForMap({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n _proto[Symbol.iterator] = function () {\n return this.entries();\n };\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */;\n _proto.merge = function merge(other) {\n var _this5 = this;\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (!isPlainES6Map(other)) {\n die(19, other);\n }\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n _proto.clear = function clear() {\n var _this6 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n _this6[\"delete\"](key);\n }\n });\n });\n };\n _proto.replace = function replace(values) {\n var _this7 = this;\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map();\n // Used for optimization\n var keysReportChangedCalled = false;\n // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key);\n // Was the key removed?\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n orderedData.set(key, value);\n }\n }\n }\n // Merge entries\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key);\n // Add or update value\n _this7.set(_key, _value);\n // The addition could have been prevent by interceptor\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n orderedData.set(_key, _value2);\n // Was a new key added?\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n }\n // Check for possible key order change\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n break;\n }\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n }\n // Use correctly ordered map\n _this7.data_ = orderedData;\n });\n return this;\n };\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n return _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: Symbol.toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n}();\n// eslint-disable-next-line\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\nfunction makeIterableForMap(iterator) {\n iterator[Symbol.toStringTag] = \"MapIterator\";\n return makeIterable(iterator);\n}\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar ObservableSetMarker = {};\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n var _this = this;\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableSet@\" + getNextId() : \"ObservableSet\";\n }\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n if (!isFunction(Set)) {\n die(22);\n }\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n initObservable(function () {\n _this.atom_ = createAtom(_this.name_);\n if (initialData) {\n _this.replace(initialData);\n }\n });\n }\n var _proto = ObservableSet.prototype;\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n return value;\n };\n _proto.clear = function clear() {\n var _this2 = this;\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this2.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n _this2[\"delete\"](value);\n }\n });\n });\n };\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n _proto.add = function add(value) {\n var _this3 = this;\n checkIfStateModificationsAreAllowed(this.atom_);\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n if (!change) {\n return this;\n }\n // implemented reassignment same as it's done for ObservableMap\n value = change.newValue;\n }\n if (!this.has(value)) {\n transaction(function () {\n _this3.data_.add(_this3.enhancer_(value, undefined));\n _this3.atom_.reportChanged();\n });\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change);\n }\n if (notify) {\n notifyListeners(this, _change);\n }\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n }\n return this;\n };\n _proto[\"delete\"] = function _delete(value) {\n var _this4 = this;\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n if (!change) {\n return false;\n }\n }\n if (this.has(value)) {\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change2);\n }\n transaction(function () {\n _this4.atom_.reportChanged();\n _this4.data_[\"delete\"](value);\n });\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n return true;\n }\n return false;\n };\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n _proto.entries = function entries() {\n var values = this.values();\n return makeIterableForSet({\n next: function next() {\n var _values$next = values.next(),\n value = _values$next.value,\n done = _values$next.done;\n return !done ? {\n value: [value, value],\n done: done\n } : {\n value: undefined,\n done: done\n };\n }\n });\n };\n _proto.keys = function keys() {\n return this.values();\n };\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var values = this.data_.values();\n return makeIterableForSet({\n next: function next() {\n var _values$next2 = values.next(),\n value = _values$next2.value,\n done = _values$next2.done;\n return !done ? {\n value: self.dehanceValue_(value),\n done: done\n } : {\n value: undefined,\n done: done\n };\n }\n });\n };\n _proto.intersection = function intersection(otherSet) {\n if (isES6Set(otherSet) && !isObservableSet(otherSet)) {\n return otherSet.intersection(this);\n } else {\n var dehancedSet = new Set(this);\n return dehancedSet.intersection(otherSet);\n }\n };\n _proto.union = function union(otherSet) {\n if (isES6Set(otherSet) && !isObservableSet(otherSet)) {\n return otherSet.union(this);\n } else {\n var dehancedSet = new Set(this);\n return dehancedSet.union(otherSet);\n }\n };\n _proto.difference = function difference(otherSet) {\n return new Set(this).difference(otherSet);\n };\n _proto.symmetricDifference = function symmetricDifference(otherSet) {\n if (isES6Set(otherSet) && !isObservableSet(otherSet)) {\n return otherSet.symmetricDifference(this);\n } else {\n var dehancedSet = new Set(this);\n return dehancedSet.symmetricDifference(otherSet);\n }\n };\n _proto.isSubsetOf = function isSubsetOf(otherSet) {\n return new Set(this).isSubsetOf(otherSet);\n };\n _proto.isSupersetOf = function isSupersetOf(otherSet) {\n return new Set(this).isSupersetOf(otherSet);\n };\n _proto.isDisjointFrom = function isDisjointFrom(otherSet) {\n if (isES6Set(otherSet) && !isObservableSet(otherSet)) {\n return otherSet.isDisjointFrom(this);\n } else {\n var dehancedSet = new Set(this);\n return dehancedSet.isDisjointFrom(otherSet);\n }\n };\n _proto.replace = function replace(other) {\n var _this5 = this;\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n transaction(function () {\n if (Array.isArray(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (isES6Set(other)) {\n _this5.clear();\n other.forEach(function (value) {\n return _this5.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n return registerListener(this, listener);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n _proto[Symbol.iterator] = function () {\n return this.values();\n };\n return _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: Symbol.toStringTag,\n get: function get() {\n return \"Set\";\n }\n }]);\n}();\n// eslint-disable-next-line\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\nfunction makeIterableForSet(iterator) {\n iterator[Symbol.toStringTag] = \"SetIterator\";\n return makeIterable(iterator);\n}\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_,\n // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom(process.env.NODE_ENV !== \"production\" ? this.name_ + \".keys\" : \"ObservableObject.keys\");\n // Optimization: we use this frequently\n this.isPlainObject_ = isPlainObject(this.target_);\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n if (process.env.NODE_ENV !== \"production\") {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n var _proto = ObservableObjectAdministration.prototype;\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n }\n // intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n if (!change) {\n return null;\n }\n newValue = change.newValue;\n }\n newValue = observable.prepareNewValue_(newValue);\n // notify spy & observers\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n if (notify) {\n notifyListeners(this, _change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n return true;\n };\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n return this.target_[key];\n }\n /**\n * @param {PropertyKey} key\n * @param {any} value\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n }\n // Trap for \"in\"\n ;\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableObject.key?\", false);\n this.pendingKeys_.set(key, entry);\n }\n return entry.get();\n }\n /**\n * @param {PropertyKey} key\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\n */;\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return;\n }\n assertAnnotable(this, annotation, key);\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n var source = this.target_;\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n if (outcome === 0 /* MakeResult.Cancel */) {\n return;\n }\n if (outcome === 1 /* MakeResult.Break */) {\n break;\n }\n }\n source = Object.getPrototypeOf(source);\n }\n recordAnnotationApplied(this, annotation, key);\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n return outcome;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n if (!change) {\n return null;\n }\n var newValue = change.newValue;\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n }\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n // Notify\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n if (!change) {\n return null;\n }\n value = change.newValue;\n }\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n var observable = new ObservableValue(value, enhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\", false);\n this.values_.set(key, observable);\n // Notify (value possibly changed by ObservableValue)\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n return true;\n }\n // If original descriptor becomes relevant, move this to annotation directly\n ;\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n try {\n startBatch();\n // Delete\n var deleteOutcome = this.delete_(key);\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n }\n // ADD interceptor\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n if (!change) {\n return null;\n }\n }\n options.name || (options.name = process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\");\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n };\n // Define\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n this.values_.set(key, new ComputedValue(options));\n // Notify\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * @param {PropertyKey} key\n * @param {PropertyDescriptor} descriptor\n * @param {boolean} proxyTrap whether it's called from proxy trap\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\n */;\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n }\n // Intercept\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n });\n // Cancelled\n if (!change) {\n return null;\n }\n }\n // Delete\n try {\n var _this$pendingKeys_;\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var observable = this.values_.get(key);\n // Value needed for spies/listeners\n var value = undefined;\n // Optimization: don't pull the value unless we will need it\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n }\n // delete prop (do first, may fail)\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n }\n // Allow re-annotating this field\n if (process.env.NODE_ENV !== \"production\") {\n delete this.appliedAnnotations_[key];\n }\n // Clear observable\n if (observable) {\n this.values_[\"delete\"](key);\n // for computed, value is undefined\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n }\n // Notify: autorun(() => obj[key]), see #1796\n propagateChanged(observable);\n }\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n (_this$pendingKeys_ = this.pendingKeys_) == null || (_this$pendingKeys_ = _this$pendingKeys_.get(key)) == null || _this$pendingKeys_.set(key in this.target_);\n // Notify spies/listeners\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change2);\n }\n if (notify) {\n notifyListeners(this, _change2);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n return true;\n }\n /**\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\n * for callback details\n */;\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n return registerListener(this, callback);\n };\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2;\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n if (notify) {\n notifyListeners(this, change);\n }\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n (_this$pendingKeys_2 = this.pendingKeys_) == null || (_this$pendingKeys_2 = _this$pendingKeys_2.get(key)) == null || _this$pendingKeys_2.set(true);\n // Notify \"keys/entries/values\" observers\n this.keysAtom_.reportChanged();\n };\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n if (process.env.NODE_ENV !== \"production\" && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n if (hasProp(target, $mobx)) {\n if (process.env.NODE_ENV !== \"production\" && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n return target;\n }\n if (process.env.NODE_ENV !== \"production\" && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : process.env.NODE_ENV !== \"production\" ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : \"ObservableObject\";\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n if (process.env.NODE_ENV !== \"production\") {\n adm.appliedAnnotations_[key] = annotation;\n }\n // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null || delete _adm$target_$storedAn[key];\n}\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\n // Configurable, not sealed, not frozen\n // Possibly not needed, just a little better error then the one thrown by engine.\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\n if (__DEV__) {\n const configurable = getDescriptor(adm.target_, key)?.configurable\n const frozen = Object.isFrozen(adm.target_)\n const sealed = Object.isSealed(adm.target_)\n if (!configurable || frozen || sealed) {\n const fieldName = `${adm.name_}.${key.toString()}`\n const requestedAnnotationType = annotation.annotationType_\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\n if (frozen) {\n error += `\\nObject is frozen.`\n }\n if (sealed) {\n error += `\\nObject is sealed.`\n }\n if (!configurable) {\n error += `\\nproperty is not configurable.`\n // Mention only if caused by us to avoid confusion\n if (hasProp(adm.appliedAnnotations!, key)) {\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\n }\n }\n die(error)\n }\n }\n */\n // Not annotated\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\n// Bug in safari 9.* (or iOS 9 safari mobile). See #364\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\nvar safariPrototypeSetterInheritanceBug = /*#__PURE__*/function () {\n var v = false;\n var p = {};\n Object.defineProperty(p, \"0\", {\n set: function set() {\n v = true;\n }\n });\n /*#__PURE__*/Object.create(p)[\"0\"] = 1;\n return v === false;\n}();\n/**\n * This array buffer contains two lists of properties, so that all arrays\n * can recycle their property definitions, which significantly improves performance of creating\n * properties on the fly.\n */\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0;\n// Typescript workaround to make sure ObservableArray extends Array\nvar StubArray = function StubArray() {};\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\ninherit(StubArray, Array.prototype);\n// Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray) {\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n if (owned === void 0) {\n owned = false;\n }\n _this = _StubArray.call(this) || this;\n initObservable(function () {\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _this;\n addHiddenFinalProp(_this, $mobx, adm);\n if (initialValues && initialValues.length) {\n // @ts-ignore\n _this.spliceWithArray(0, 0, initialValues);\n }\n if (safariPrototypeSetterInheritanceBug) {\n // Seems that Safari won't use numeric prototype setter until any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_this, \"0\", ENTRY_0);\n }\n });\n return _this;\n }\n _inheritsLoose(LegacyObservableArray, _StubArray);\n var _proto = LegacyObservableArray.prototype;\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n return Array.prototype.concat.apply(this.slice(),\n //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n _proto[Symbol.iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n return _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: Symbol.toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n}(StubArray);\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n return thing[$mobx].atom_;\n }\n if (isObservableSet(thing)) {\n return thing.atom_;\n }\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n return observable;\n }\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n var _observable = thing[$mobx].values_.get(property);\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n return _observable;\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n return named.name_;\n}\n/**\n * Helper function for initializing observable structures, it applies:\n * 1. allowStateChanges so we don't violate enforceActions.\n * 2. untracked so we don't accidentaly subscribe to anything observable accessed during init in case the observable is created inside derivation.\n * 3. batch to avoid state version updates\n */\nfunction initObservable(cb) {\n var derivation = untrackedStart();\n var allowStateChanges = allowStateChangesStart(true);\n startBatch();\n try {\n return cb();\n } finally {\n endBatch();\n allowStateChangesEnd(allowStateChanges);\n untrackedEnd(derivation);\n }\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n return eq(a, b, depth);\n}\n// Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Modified: \"Deep compare objects\" part to iterate over keys in forward order instead of reverse order.\n//\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) {\n return false;\n }\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) {\n return b !== b;\n }\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n }\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) {\n return false;\n }\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\":\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n }\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n break;\n }\n // Unwrap any wrapped objects.\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n }\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor,\n bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n }\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) {\n return false;\n }\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var _length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (Object.keys(b).length !== _length) {\n return false;\n }\n for (var i = 0; i < _length; i++) {\n // Deep compare each member\n var key = keys[i];\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n return a;\n}\n\nvar _getGlobal$Iterator;\n// safely get iterator prototype if available\nvar maybeIteratorPrototype = ((_getGlobal$Iterator = /*#__PURE__*/getGlobal().Iterator) == null ? void 0 : _getGlobal$Iterator.prototype) || {};\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return Object.assign(Object.create(maybeIteratorPrototype), iterator);\n}\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (\n // Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\n * (c) Michel Weststrate 2015 - 2020\n * MIT Licensed\n *\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\n * this is a good place to start:\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\n *\n * Source folders:\n * ===============\n *\n * - api/ Most of the public static methods exposed by the module can be found here.\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\n * - utils/ Utility stuff.\n *\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\nexport { $mobx, FlowCancellationError, ObservableMap, ObservableSet, Reaction, allowStateChanges as _allowStateChanges, runInAction as _allowStateChangesInsideComputed, allowStateReadsEnd as _allowStateReadsEnd, allowStateReadsStart as _allowStateReadsStart, autoAction as _autoAction, _endAction, getAdministration as _getAdministration, getGlobalState as _getGlobalState, interceptReads as _interceptReads, isComputingDerivation as _isComputingDerivation, resetGlobalState as _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, apiDefineProperty as defineProperty, entries, extendObservable, flow, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isObservableValue as isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, apiOwnKeys as ownKeys, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when };\n//# sourceMappingURL=mobx.esm.js.map\n","import { makeAutoObservable, runInAction } from 'mobx'\nimport { MeowMeowClient } from '../client/MeowMeowClient'\nimport type { MeowMeowClientOptions, Message, User, ConnectionStatus, GetMessagesOptions, DisconnectReason, ClientErrorCode } from '../types'\nimport type { Room } from '../client/Room'\n\nexport type StoreStatus = 'idle' | 'loading' | 'loaded'\n\nexport class MeowMeowStore {\n readonly client: MeowMeowClient\n\n // ─── Observable state ───────────────────────────────────────────────────────\n messages: Message[] = []\n onlineUsers: User[] = []\n connectionStatus: ConnectionStatus = 'disconnected'\n status: StoreStatus = 'idle'\n hasMore = false\n greetingMessage: string | null = null\n isMuted = false\n mutedUntil: string | null = null\n isBanned = false\n cooldownSeconds = 0\n disconnectReason: DisconnectReason | null = null\n currentUser: User | null = null\n room: Room | null = null\n lastError: { code: ClientErrorCode; message: string } | null = null\n\n get isConnected(): boolean {\n return this.connectionStatus === 'connected' || this.connectionStatus === 'joined'\n }\n\n constructor(options: MeowMeowClientOptions) {\n this.client = new MeowMeowClient(options)\n makeAutoObservable(this, { client: false })\n this.wireClientEvents()\n }\n\n // ─── Public API ─────────────────────────────────────────────────────────────\n\n async sendMessage(content: string): Promise<void> {\n if (!this.room) throw new Error('[ MeowMeowStore ] Not joined to a room')\n if (!this.client.currentUser) throw new Error('[ MeowMeowStore ] No current user')\n await this.room.send(content, this.client.currentUser)\n }\n\n async sendSticker(options: { packId: string; code: string }): Promise<void> {\n if (!this.room) throw new Error('[ MeowMeowStore ] Not joined to a room')\n if (!this.client.currentUser) throw new Error('[ MeowMeowStore ] No current user')\n await this.room.sendSticker(options, this.client.currentUser)\n }\n\n async loadMoreMessages(options?: GetMessagesOptions): Promise<void> {\n if (!this.room || !this.hasMore) return\n runInAction(() => { this.status = 'loading' })\n await this.room.loadMoreMessages(options)\n runInAction(() => {\n this.messages = this.room!.messages\n this.hasMore = this.room!.hasMore\n this.status = 'loaded'\n })\n }\n\n async join(): Promise<void> {\n runInAction(() => { this.connectionStatus = 'connecting' })\n const room = await this.client.join()\n\n if (this.room !== room) {\n this.room = room\n this.cooldownSeconds = room.cooldownSeconds\n this.wireRoomEvents(room)\n }\n\n this.fetchInitialMessages()\n }\n\n disconnect(): void {\n this.client.disconnect()\n }\n\n dispose(): void {\n this.client.dispose()\n if (this.room) {\n this.room.removeAllListeners()\n this.room = null\n }\n }\n\n // ─── Client event wiring ────────────────────────────────────────────────────\n\n private wireClientEvents(): void {\n this.client.on('connected', () => runInAction(() => {\n this.connectionStatus = this.client.connectionStatus\n this.currentUser = this.client.currentUser\n this.isMuted = this.client.isMuted\n this.isBanned = this.client.isBanned\n if (this.client.isBanned) this.client.disconnect('banned')\n }))\n\n this.client.on('disconnected', ({ reason }) => runInAction(() => {\n this.connectionStatus = this.client.connectionStatus\n this.status = 'idle'\n this.messages = []\n this.onlineUsers = []\n this.disconnectReason = reason\n if (reason === 'user_banned') this.isBanned = true\n }))\n\n this.client.on('reconnecting', () => runInAction(() => {\n this.connectionStatus = this.client.connectionStatus\n this.status = 'idle'\n this.messages = []\n this.onlineUsers = []\n }))\n\n this.client.on('reconnected', () => runInAction(() => {\n this.connectionStatus = this.client.connectionStatus\n }))\n\n this.client.on('room_joined', (payload) => {\n runInAction(() => {\n this.connectionStatus = this.client.connectionStatus\n this.greetingMessage = payload.greetingMessage ?? null\n this.isMuted = this.client.isMuted\n this.mutedUntil = this.client.mutedUntil\n this.disconnectReason = null\n if (this.room) {\n this.cooldownSeconds = this.room.cooldownSeconds\n this.onlineUsers = this.room.onlineUsers\n }\n })\n if (this.room) this.fetchInitialMessages()\n })\n\n this.client.on('banned', () => runInAction(() => {\n this.isBanned = this.client.isBanned\n this.client.disconnect('banned')\n }))\n\n this.client.on('unbanned', () => runInAction(() => {\n this.isBanned = this.client.isBanned\n this.disconnectReason = null\n }))\n\n this.client.on('error', (payload) => runInAction(() => {\n this.lastError = payload\n }))\n }\n\n // ─── Room event wiring ──────────────────────────────────────────────────────\n\n private wireRoomEvents(room: Room): void {\n room.on('message', () => runInAction(() => {\n this.messages = room.messages\n }))\n\n room.on('presence', () => runInAction(() => {\n this.onlineUsers = room.onlineUsers\n }))\n\n room.on('muted', () => runInAction(() => {\n this.isMuted = this.client.isMuted\n this.mutedUntil = this.client.mutedUntil\n }))\n\n room.on('unmuted', () => runInAction(() => {\n this.isMuted = this.client.isMuted\n this.mutedUntil = this.client.mutedUntil\n }))\n\n room.on('room_updated', () => runInAction(() => {\n this.cooldownSeconds = room.cooldownSeconds\n }))\n }\n\n // ─── Data fetching ───────────────────────────────────────────────────────────\n\n private async fetchInitialMessages(): Promise<void> {\n if (!this.room) return\n runInAction(() => { this.status = 'loading' })\n const result = await this.room.getMessages()\n this.room._initMessages(result.messages, result.hasMore)\n runInAction(() => {\n this.messages = this.room!.messages\n this.hasMore = this.room!.hasMore\n this.status = 'loaded'\n })\n }\n}\n","import { ref, computed, readonly } from 'vue'\nimport type { LocaleData } from '@/ui/i18n/locales/const'\nimport en from '@/ui/i18n/locales/en'\nimport th from '@/ui/i18n/locales/th'\nimport zh from '@/ui/i18n/locales/zh'\nimport id from '@/ui/i18n/locales/id'\nimport ko from '@/ui/i18n/locales/ko'\nimport ja from '@/ui/i18n/locales/ja'\nimport vi from '@/ui/i18n/locales/vi'\nimport fr from '@/ui/i18n/locales/fr'\nimport es from '@/ui/i18n/locales/es'\nimport pt from '@/ui/i18n/locales/pt'\nimport tl from '@/ui/i18n/locales/tl'\n\n// ─── 語系字典 ( 唯一事實來源 ) ──────────────────────────\n// 新增語系時:\n// 1. import 語系檔\n// 2. 在此新增一筆 key-value\n// 3. 請使用 ISO 639-1\n// ( Locale 型別與 SUPPORTED_LOCALES 均自動推導,無需手動維護 )\nconst dictionaries: Record<string, LocaleData> = {\n en, // English ( 預設 )\n th, // ไทย\n zh, // 简体中文\n id, // Bahasa Indonesia\n ko, // 한국어\n ja, // 日本語\n vi, // Tiếng Việt\n fr, // Français\n es, // Español\n pt, // Português ( Brasil )\n tl, // Filipino ( Tagalog )\n}\n\nexport type Locale = keyof typeof dictionaries\nexport const SUPPORTED_LOCALES = [ 'en', 'id', 'vi', 'tl' ] as Locale[]\nexport const DEFAULT_LOCALE: Locale = 'en'\n\n// ─── 狀態 ──────────────────────────────────────────────\n\nconst currentLocale = ref<Locale>( DEFAULT_LOCALE )\nconst localeData = computed<LocaleData>( () => dictionaries[ currentLocale.value ] )\n\n// ─── 公開 API ──────────────────────────────────────────\n\n/**\n * 切換目前語系。\n * 支援的代碼:en / th / zh / id / ko / ja / vi / fr / es / pt / tl。\n * 傳入不支援的代碼或省略時,一律使用預設語系 English。\n */\nexport const setLocale = ( locale: string = '' ) => {\n currentLocale.value = locale in dictionaries ? ( locale as Locale ) : DEFAULT_LOCALE\n}\n\n/**\n * 取得目前語系的翻譯字典。\n *\n * 使用範例:\n * const { i18n, locale } = useI18n()\n * // template: {{ i18n.chatRoom.defaultTitle }}\n * // script: i18n.value.chatRoom.defaultTitle\n */\nexport const useI18n = () => ( {\n locale: readonly( currentLocale ),\n i18n: localeData,\n setLocale,\n} )\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'en',\n common: {\n you: 'YOU'\n },\n chatRoom: {\n toggleAriaLabel: 'Chat room toggle',\n closeAriaLabel: 'Close chat',\n loading: 'LOADING...',\n loadingAriaLabel: 'Loading',\n messageListAriaLabel: 'Message list',\n banned: 'You have been permanently locked out of this room.',\n rules: {\n ariaLabel: 'Chat rules'\n },\n message: {\n sending: 'Sending...',\n failed: 'Failed to send message'\n },\n error: {\n BAD_REQUEST: 'BAD REQUEST',\n TOKEN_INVALID: 'TOKEN INVALID',\n FORBIDDEN: 'FORBIDDEN',\n USER_MUTED: 'USER MUTED',\n USER_BANNED: 'USER BANNED',\n ROOM_NOT_FOUND: 'ROOM NOT FOUND',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'CHAT MESSAGE STORE UNAVAILABLE',\n CHAT_MESSAGE_BLOCKED: 'CHAT MESSAGE BLOCKED',\n INTERNAL_SERVER_ERROR: 'INTERNAL SERVER ERROR',\n INVALID_TYPE: 'INVALID TYPE',\n INVALID_MESSAGE_TYPE: 'INVALID MESSAGE TYPE',\n UNKNOWN_ERROR: 'UNKNOWN ERROR'\n },\n scrollToBottomAriaLabel: 'Scroll to bottom',\n input: {\n placeholder: 'Please enter content',\n muted: '🚫 You have been banned',\n ariaLabel: 'Message input field'\n },\n emojiButton: {\n openAriaLabel: 'Open emoji picker',\n closeAriaLabel: 'Close emoji picker'\n },\n sendAriaLabel: 'Send message'\n },\n chatPreview: {\n clickToChat: 'Click to chat',\n openAriaLabel: 'Open chat'\n },\n emojiPicker: {\n ariaLabel: 'Emoji picker',\n emojiTabAriaLabel: 'Emojis',\n stickerItemAriaLabel: 'Select sticker'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'en',\n common: {\n you: 'คุณ'\n },\n chatRoom: {\n toggleAriaLabel: 'สลับห้องแชท',\n closeAriaLabel: 'ปิดห้องแชท',\n loading: 'กำลังโหลด...',\n loadingAriaLabel: 'กำลังโหลด',\n messageListAriaLabel: 'รายการข้อความ',\n banned: 'คุณถูกระงับการเข้าใช้ห้องนี้อย่างถาวร',\n rules: {\n ariaLabel: 'กฎของห้องแชท'\n },\n message: {\n sending: 'กำลังส่ง...',\n failed: 'ส่งข้อความไม่สำเร็จ'\n },\n error: {\n BAD_REQUEST: 'คำขอไม่ถูกต้อง',\n TOKEN_INVALID: 'โทเค็นไม่ถูกต้อง',\n FORBIDDEN: 'ถูกปฏิเสธการเข้าถึง',\n USER_MUTED: 'ผู้ใช้ถูกปิดเสียง',\n USER_BANNED: 'ผู้ใช้ถูกแบน',\n ROOM_NOT_FOUND: 'ไม่พบห้อง',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'ไม่สามารถเข้าถึงที่จัดเก็บข้อความแชทได้',\n CHAT_MESSAGE_BLOCKED: 'ข้อความแชทถูกบล็อก',\n INTERNAL_SERVER_ERROR: 'ข้อผิดพลาดภายในเซิร์ฟเวอร์',\n INVALID_TYPE: 'ประเภทไม่ถูกต้อง',\n INVALID_MESSAGE_TYPE: 'ประเภทข้อความไม่ถูกต้อง',\n UNKNOWN_ERROR: 'ข้อผิดพลาดที่ไม่ทราบสาเหตุ'\n },\n scrollToBottomAriaLabel: 'เลื่อนลงด้านล่าง',\n input: {\n placeholder: 'โปรดป้อนเนื้อหา',\n muted: '🚫 คุณถูกแบนแล้ว',\n ariaLabel: 'ช่องพิมพ์ข้อความ'\n },\n emojiButton: {\n openAriaLabel: 'เปิดตัวเลือกอีโมจิ',\n closeAriaLabel: 'ปิดตัวเลือกอีโมจิ'\n },\n sendAriaLabel: 'ส่งข้อความ'\n },\n chatPreview: {\n clickToChat: 'คลิกเพื่อแชท',\n openAriaLabel: 'เปิดห้องแชท'\n },\n emojiPicker: {\n ariaLabel: 'ตัวเลือกอีโมจิ',\n emojiTabAriaLabel: 'อีโมจิ',\n stickerItemAriaLabel: 'เลือกสติกเกอร์'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'zh',\n common: {\n you: '我'\n },\n chatRoom: {\n toggleAriaLabel: '聊天室开关',\n closeAriaLabel: '关闭聊天室',\n loading: '加载中...',\n loadingAriaLabel: '加载中',\n messageListAriaLabel: '消息列表',\n banned: '你已被永久禁止进入本聊天室。',\n rules: {\n ariaLabel: '聊天室规则'\n },\n message: {\n sending: '发送中...',\n failed: '消息发送失败'\n },\n error: {\n BAD_REQUEST: '错误的请求',\n TOKEN_INVALID: '令牌无效',\n FORBIDDEN: '禁止访问',\n USER_MUTED: '用户已被禁言',\n USER_BANNED: '用户已被封禁',\n ROOM_NOT_FOUND: '找不到房间',\n CHAT_MESSAGE_STORE_UNAVAILABLE: '聊天消息存储不可用',\n CHAT_MESSAGE_BLOCKED: '聊天消息已被屏蔽',\n INTERNAL_SERVER_ERROR: '服务器内部错误',\n INVALID_TYPE: '类型无效',\n INVALID_MESSAGE_TYPE: '消息类型无效',\n UNKNOWN_ERROR: '未知错误'\n },\n scrollToBottomAriaLabel: '滚动到底部',\n input: {\n placeholder: '请输入内容',\n muted: '🚫 您已被封禁',\n ariaLabel: '消息输入框'\n },\n emojiButton: {\n openAriaLabel: '打开表情选择器',\n closeAriaLabel: '关闭表情选择器'\n },\n sendAriaLabel: '发送消息'\n },\n chatPreview: {\n clickToChat: '点击聊天',\n openAriaLabel: '打开聊天室'\n },\n emojiPicker: {\n ariaLabel: '表情选择器',\n emojiTabAriaLabel: '表情',\n stickerItemAriaLabel: '选择贴图'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'en',\n common: {\n you: 'ANDA'\n },\n chatRoom: {\n toggleAriaLabel: 'Beralih Ruang Obrolan',\n closeAriaLabel: 'Tutup obrolan',\n loading: 'MEMUAT...',\n loadingAriaLabel: 'Memuat',\n messageListAriaLabel: 'Daftar pesan',\n banned: 'Anda telah diblokir secara permanen dari ruangan ini.',\n rules: {\n ariaLabel: 'Aturan obrolan'\n },\n message: {\n sending: 'Mengirim...',\n failed: 'Gagal mengirim pesan'\n },\n error: {\n BAD_REQUEST: 'PERMINTAAN TIDAK VALID',\n TOKEN_INVALID: 'TOKEN TIDAK VALID',\n FORBIDDEN: 'DILARANG',\n USER_MUTED: 'PENGGUNA DIBISUKAN',\n USER_BANNED: 'PENGGUNA DIBLOKIR',\n ROOM_NOT_FOUND: 'RUANGAN TIDAK DITEMUKAN',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'PENYIMPANAN PESAN CHAT TIDAK TERSEDIA',\n CHAT_MESSAGE_BLOCKED: 'PESAN CHAT DIBLOKIR',\n INTERNAL_SERVER_ERROR: 'KESALAHAN SERVER INTERNAL',\n INVALID_TYPE: 'TIPE TIDAK VALID',\n INVALID_MESSAGE_TYPE: 'TIPE PESAN TIDAK VALID',\n UNKNOWN_ERROR: 'KESALAHAN TIDAK DIKETAHUI'\n },\n scrollToBottomAriaLabel: 'Gulir ke bawah',\n input: {\n placeholder: 'Silakan masukkan konten',\n muted: '🚫 Anda telah diblokir',\n ariaLabel: 'Kolom input pesan'\n },\n emojiButton: {\n openAriaLabel: 'Buka pemilih emoji',\n closeAriaLabel: 'Tutup pemilih emoji'\n },\n sendAriaLabel: 'Kirim pesan'\n },\n chatPreview: {\n clickToChat: 'Klik untuk mengobrol',\n openAriaLabel: 'Buka obrolan'\n },\n emojiPicker: {\n ariaLabel: 'Pemilih emoji',\n emojiTabAriaLabel: 'Emoji',\n stickerItemAriaLabel: 'Pilih stiker'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'ko',\n common: {\n you: '나'\n },\n chatRoom: {\n toggleAriaLabel: '채팅방 토글',\n closeAriaLabel: '채팅방 닫기',\n loading: '불러오는 중...',\n loadingAriaLabel: '불러오는 중',\n messageListAriaLabel: '메시지 목록',\n banned: '이 채팅방에서 영구적으로 차단되었습니다.',\n rules: {\n ariaLabel: '채팅방 규칙'\n },\n message: {\n sending: '전송 중...',\n failed: '메시지 전송 실패'\n },\n error: {\n BAD_REQUEST: '잘못된 요청',\n TOKEN_INVALID: '토큰이 유효하지 않음',\n FORBIDDEN: '접근 금지',\n USER_MUTED: '사용자 음소거됨',\n USER_BANNED: '사용자 차단됨',\n ROOM_NOT_FOUND: '방을 찾을 수 없음',\n CHAT_MESSAGE_STORE_UNAVAILABLE: '채팅 메시지 저장소를 사용할 수 없음',\n CHAT_MESSAGE_BLOCKED: '채팅 메시지 차단됨',\n INTERNAL_SERVER_ERROR: '내부 서버 오류',\n INVALID_TYPE: '유효하지 않은 유형',\n INVALID_MESSAGE_TYPE: '유효하지 않은 메시지 유형',\n UNKNOWN_ERROR: '알 수 없는 오류'\n },\n scrollToBottomAriaLabel: '맨 아래로 이동',\n input: {\n placeholder: '내용을 입력해 주세요',\n muted: '🚫 당신은 차단되었습니다',\n ariaLabel: '메시지 입력창'\n },\n emojiButton: {\n openAriaLabel: '이모지 선택기 열기',\n closeAriaLabel: '이모지 선택기 닫기'\n },\n sendAriaLabel: '메시지 보내기'\n },\n chatPreview: {\n clickToChat: '클릭하여 채팅하기',\n openAriaLabel: '채팅방 열기'\n },\n emojiPicker: {\n ariaLabel: '이모지 선택기',\n emojiTabAriaLabel: '이모지',\n stickerItemAriaLabel: '스티커 선택'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'ja',\n common: {\n you: '自分'\n },\n chatRoom: {\n toggleAriaLabel: 'チャットルーム切替',\n closeAriaLabel: 'チャットを閉じる',\n loading: '読み込み中...',\n loadingAriaLabel: '読み込み中',\n messageListAriaLabel: 'メッセージ一覧',\n banned: 'このルームから永久に締め出されました。',\n rules: {\n ariaLabel: 'チャットルームのルール'\n },\n message: {\n sending: '送信中...',\n failed: 'メッセージの送信に失敗しました'\n },\n error: {\n BAD_REQUEST: 'リクエストが不正です',\n TOKEN_INVALID: 'トークンが無効です',\n FORBIDDEN: 'アクセス禁止',\n USER_MUTED: 'ユーザーがミュートされました',\n USER_BANNED: 'ユーザーがBANされました',\n ROOM_NOT_FOUND: 'ルームが見つかりません',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'チャットメッセージストアが利用できません',\n CHAT_MESSAGE_BLOCKED: 'チャットメッセージがブロックされました',\n INTERNAL_SERVER_ERROR: '内部サーバーエラー',\n INVALID_TYPE: '無効なタイプ',\n INVALID_MESSAGE_TYPE: '無効なメッセージタイプ',\n UNKNOWN_ERROR: '不明なエラー'\n },\n scrollToBottomAriaLabel: '一番下へスクロール',\n input: {\n placeholder: '内容を入力してください',\n muted: '🚫 あなたはBANされました',\n ariaLabel: 'メッセージ入力欄'\n },\n emojiButton: {\n openAriaLabel: '絵文字ピッカーを開く',\n closeAriaLabel: '絵文字ピッカーを閉じる'\n },\n sendAriaLabel: 'メッセージを送信'\n },\n chatPreview: {\n clickToChat: 'クリックしてチャット',\n openAriaLabel: 'チャットを開く'\n },\n emojiPicker: {\n ariaLabel: '絵文字ピッカー',\n emojiTabAriaLabel: '絵文字',\n stickerItemAriaLabel: 'スタンプを選択'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'vi',\n common: {\n you: 'BẠN'\n },\n chatRoom: {\n toggleAriaLabel: 'Bật/Tắt Phòng Trò Chuyện',\n closeAriaLabel: 'Đóng phòng trò chuyện',\n loading: 'ĐANG TẢI...',\n loadingAriaLabel: 'Đang tải',\n messageListAriaLabel: 'Danh sách tin nhắn',\n banned: 'Bạn đã bị cấm vĩnh viễn khỏi phòng này.',\n rules: {\n ariaLabel: 'Nội quy phòng'\n },\n message: {\n sending: 'Đang gửi...',\n failed: 'Gửi tin nhắn thất bại'\n },\n error: {\n BAD_REQUEST: 'YÊU CẦU KHÔNG HỢP LỆ',\n TOKEN_INVALID: 'TOKEN KHÔNG HỢP LỆ',\n FORBIDDEN: 'BỊ CẤM',\n USER_MUTED: 'NGƯỜI DÙNG BỊ TẮT TIẾNG',\n USER_BANNED: 'NGƯỜI DÙNG BỊ CẤM',\n ROOM_NOT_FOUND: 'KHÔNG TÌM THẤY PHÒNG',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'KHO LƯU TRỮ TIN NHẮN KHÔNG KHẢ DỤNG',\n CHAT_MESSAGE_BLOCKED: 'TIN NHẮN CHAT BỊ CHẶN',\n INTERNAL_SERVER_ERROR: 'LỖI MÁY CHỦ NỘI BỘ',\n INVALID_TYPE: 'LOẠI KHÔNG HỢP LỆ',\n INVALID_MESSAGE_TYPE: 'LOẠI TIN NHẮN KHÔNG HỢP LỆ',\n UNKNOWN_ERROR: 'LỖI KHÔNG XÁC ĐỊNH'\n },\n scrollToBottomAriaLabel: 'Cuộn xuống cuối',\n input: {\n placeholder: 'Vui lòng nhập nội dung',\n muted: '🚫 Bạn đã bị cấm',\n ariaLabel: 'Ô nhập tin nhắn'\n },\n emojiButton: {\n openAriaLabel: 'Mở bảng chọn biểu tượng cảm xúc',\n closeAriaLabel: 'Đóng bảng chọn biểu tượng cảm xúc'\n },\n sendAriaLabel: 'Gửi tin nhắn'\n },\n chatPreview: {\n clickToChat: 'Nhấp để trò chuyện',\n openAriaLabel: 'Mở phòng trò chuyện'\n },\n emojiPicker: {\n ariaLabel: 'Bảng chọn biểu tượng cảm xúc',\n emojiTabAriaLabel: 'Biểu tượng cảm xúc',\n stickerItemAriaLabel: 'Chọn nhãn dán'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'fr',\n common: {\n you: 'VOUS'\n },\n chatRoom: {\n toggleAriaLabel: 'Basculer le salon de chat',\n closeAriaLabel: 'Fermer le salon',\n loading: 'CHARGEMENT...',\n loadingAriaLabel: 'Chargement',\n messageListAriaLabel: 'Liste des messages',\n banned: 'Vous avez été définitivement banni de ce salon.',\n rules: {\n ariaLabel: 'Règles du salon'\n },\n message: {\n sending: 'Envoi en cours...',\n failed: 'Échec de l’envoi du message'\n },\n error: {\n BAD_REQUEST: 'REQUÊTE INCORRECTE',\n TOKEN_INVALID: 'JETON INVALIDE',\n FORBIDDEN: 'ACCÈS INTERDIT',\n USER_MUTED: 'UTILISATEUR RÉDUIT AU SILENCE',\n USER_BANNED: 'UTILISATEUR BANNI',\n ROOM_NOT_FOUND: 'SALON INTROUVABLE',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'STOCKAGE DES MESSAGES DE CHAT INDISPONIBLE',\n CHAT_MESSAGE_BLOCKED: 'MESSAGE DE CHAT BLOQUÉ',\n INTERNAL_SERVER_ERROR: 'ERREUR INTERNE DU SERVEUR',\n INVALID_TYPE: 'TYPE INVALIDE',\n INVALID_MESSAGE_TYPE: 'TYPE DE MESSAGE INVALIDE',\n UNKNOWN_ERROR: 'ERREUR INCONNUE'\n },\n scrollToBottomAriaLabel: 'Descendre en bas',\n input: {\n placeholder: 'Veuillez saisir du contenu',\n muted: '🚫 Vous avez été banni',\n ariaLabel: 'Champ de saisie de message'\n },\n emojiButton: {\n openAriaLabel: 'Ouvrir le sélecteur d’emoji',\n closeAriaLabel: 'Fermer le sélecteur d’emoji'\n },\n sendAriaLabel: 'Envoyer le message'\n },\n chatPreview: {\n clickToChat: 'Cliquez pour discuter',\n openAriaLabel: 'Ouvrir le salon'\n },\n emojiPicker: {\n ariaLabel: 'Sélecteur d’emoji',\n emojiTabAriaLabel: 'Emojis',\n stickerItemAriaLabel: 'Choisir un autocollant'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'es',\n common: {\n you: 'TÚ'\n },\n chatRoom: {\n toggleAriaLabel: 'Alternar sala de chat',\n closeAriaLabel: 'Cerrar el chat',\n loading: 'CARGANDO...',\n loadingAriaLabel: 'Cargando',\n messageListAriaLabel: 'Lista de mensajes',\n banned: 'Has sido expulsado permanentemente de esta sala.',\n rules: {\n ariaLabel: 'Reglas de la sala'\n },\n message: {\n sending: 'Enviando...',\n failed: 'No se pudo enviar el mensaje'\n },\n error: {\n BAD_REQUEST: 'SOLICITUD INCORRECTA',\n TOKEN_INVALID: 'TOKEN INVÁLIDO',\n FORBIDDEN: 'PROHIBIDO',\n USER_MUTED: 'USUARIO SILENCIADO',\n USER_BANNED: 'USUARIO BLOQUEADO',\n ROOM_NOT_FOUND: 'SALA NO ENCONTRADA',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'ALMACENAMIENTO DE MENSAJES DE CHAT NO DISPONIBLE',\n CHAT_MESSAGE_BLOCKED: 'MENSAJE DE CHAT BLOQUEADO',\n INTERNAL_SERVER_ERROR: 'ERROR INTERNO DEL SERVIDOR',\n INVALID_TYPE: 'TIPO INVÁLIDO',\n INVALID_MESSAGE_TYPE: 'TIPO DE MENSAJE INVÁLIDO',\n UNKNOWN_ERROR: 'ERROR DESCONOCIDO'\n },\n scrollToBottomAriaLabel: 'Desplazarse al final',\n input: {\n placeholder: 'Por favor, ingresa contenido',\n muted: '🚫 Has sido baneado',\n ariaLabel: 'Campo de entrada de mensaje'\n },\n emojiButton: {\n openAriaLabel: 'Abrir selector de emojis',\n closeAriaLabel: 'Cerrar selector de emojis'\n },\n sendAriaLabel: 'Enviar mensaje'\n },\n chatPreview: {\n clickToChat: 'Haz clic para chatear',\n openAriaLabel: 'Abrir el chat'\n },\n emojiPicker: {\n ariaLabel: 'Selector de emojis',\n emojiTabAriaLabel: 'Emojis',\n stickerItemAriaLabel: 'Elegir pegatina'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'pt',\n common: {\n you: 'VOCÊ'\n },\n chatRoom: {\n toggleAriaLabel: 'Alternar sala de bate-papo',\n closeAriaLabel: 'Fechar o bate-papo',\n loading: 'CARREGANDO...',\n loadingAriaLabel: 'Carregando',\n messageListAriaLabel: 'Lista de mensagens',\n banned: 'Você foi banido permanentemente desta sala.',\n rules: {\n ariaLabel: 'Regras da sala'\n },\n message: {\n sending: 'Enviando...',\n failed: 'Falha ao enviar a mensagem'\n },\n error: {\n BAD_REQUEST: 'REQUISIÇÃO INVÁLIDA',\n TOKEN_INVALID: 'TOKEN INVÁLIDO',\n FORBIDDEN: 'PROIBIDO',\n USER_MUTED: 'USUÁRIO SILENCIADO',\n USER_BANNED: 'USUÁRIO BANIDO',\n ROOM_NOT_FOUND: 'SALA NÃO ENCONTRADA',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'ARMAZENAMENTO DE MENSAGENS DE CHAT INDISPONÍVEL',\n CHAT_MESSAGE_BLOCKED: 'MENSAGEM DE CHAT BLOQUEADA',\n INTERNAL_SERVER_ERROR: 'ERRO INTERNO DO SERVIDOR',\n INVALID_TYPE: 'TIPO INVÁLIDO',\n INVALID_MESSAGE_TYPE: 'TIPO DE MENSAGEM INVÁLIDO',\n UNKNOWN_ERROR: 'ERRO DESCONHECIDO'\n },\n scrollToBottomAriaLabel: 'Rolar até o final',\n input: {\n placeholder: 'Por favor, insira o conteúdo',\n muted: '🚫 Você foi banido',\n ariaLabel: 'Campo de entrada de mensagem'\n },\n emojiButton: {\n openAriaLabel: 'Abrir seletor de emoji',\n closeAriaLabel: 'Fechar seletor de emoji'\n },\n sendAriaLabel: 'Enviar mensagem'\n },\n chatPreview: {\n clickToChat: 'Clique para conversar',\n openAriaLabel: 'Abrir o bate-papo'\n },\n emojiPicker: {\n ariaLabel: 'Seletor de emoji',\n emojiTabAriaLabel: 'Emojis',\n stickerItemAriaLabel: 'Escolher figurinha'\n }\n} satisfies LocaleData\n","import type { LocaleData } from '@/ui/i18n/locales/const'\n\nexport default {\n emojiMartLocale: 'en',\n common: {\n you: 'IKAW'\n },\n chatRoom: {\n toggleAriaLabel: 'I-toggle ang chat room',\n closeAriaLabel: 'Isara ang chat',\n loading: 'NAGLO-LOAD...',\n loadingAriaLabel: 'Naglo-load',\n messageListAriaLabel: 'Listahan ng mga mensahe',\n banned: 'Permanente kang na-lock out sa room na ito.',\n rules: {\n ariaLabel: 'Mga panuntunan sa chat'\n },\n message: {\n sending: 'Ipinapadala...',\n failed: 'Hindi naipadala ang mensahe'\n },\n error: {\n BAD_REQUEST: 'MALING KAHILINGAN',\n TOKEN_INVALID: 'HINDI VALID ANG TOKEN',\n FORBIDDEN: 'IPINAGBABAWAL',\n USER_MUTED: 'NA-MUTE ANG USER',\n USER_BANNED: 'NA-BAN ANG USER',\n ROOM_NOT_FOUND: 'HINDI MAHANAP ANG ROOM',\n CHAT_MESSAGE_STORE_UNAVAILABLE: 'HINDI AVAILABLE ANG CHAT MESSAGE STORE',\n CHAT_MESSAGE_BLOCKED: 'NA-BLOCK ANG CHAT MESSAGE',\n INTERNAL_SERVER_ERROR: 'INTERNAL SERVER ERROR',\n INVALID_TYPE: 'HINDI VALID ANG TYPE',\n INVALID_MESSAGE_TYPE: 'HINDI VALID ANG MESSAGE TYPE',\n UNKNOWN_ERROR: 'HINDI KILALANG ERROR'\n },\n scrollToBottomAriaLabel: 'Mag-scroll pababa',\n input: {\n placeholder: 'I-type dito',\n muted: '🚫 Na-ban ka',\n ariaLabel: 'Field para sa pagpasok ng mensahe'\n },\n emojiButton: {\n openAriaLabel: 'Buksan ang emoji picker',\n closeAriaLabel: 'Isara ang emoji picker'\n },\n sendAriaLabel: 'Ipadala ang mensahe'\n },\n chatPreview: {\n clickToChat: 'I-click para mag-chat',\n openAriaLabel: 'Buksan ang chat'\n },\n emojiPicker: {\n ariaLabel: 'Emoji picker',\n emojiTabAriaLabel: 'Mga Emoji',\n stickerItemAriaLabel: 'Pumili ng sticker'\n }\n} satisfies LocaleData\n","/**\n * marked v18.0.2 - a markdown parser\n * Copyright (c) 2018-2026, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction z(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=z();function G(l){T=l}var _={exec:()=>null};function k(l,e=\"\"){let t=typeof l==\"string\"?l:l.source,n={replace:(s,r)=>{let i=typeof r==\"string\"?r:r.source;return i=i.replace(m.caret,\"$1\"),t=t.replace(s,i),n},getRegex:()=>new RegExp(t,e)};return n}var Re=((l=\"\")=>{try{return!!new RegExp(\"(?<=1)(?<!1)\"+l)}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:l=>new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),hrRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),fencesBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:\\`\\`\\`|~~~)`),headingBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}#`),htmlBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}<(?:[a-z].*>|!--)`,\"i\"),blockquoteBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}>`)},Te=/^(?:[ \\t]*(?:\\n|$))+/,Oe=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,we=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,I=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,ye=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,Q=/ {0,3}(?:[*+-]|\\d{1,9}[.)])/,ie=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,oe=k(ie).replace(/bull/g,Q).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),Pe=k(ie).replace(/bull/g,Q).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),j=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,Se=/^[^\\n]+/,F=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,$e=k(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",F).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),Le=k(/^(bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g,Q).getRegex(),v=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",U=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,_e=k(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",U).replace(\"tag\",v).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),ae=k(j).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),Me=k(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",ae).getRegex(),K={blockquote:Me,code:Oe,def:$e,fences:we,heading:ye,hr:I,html:_e,lheading:oe,list:Le,newline:Te,paragraph:ae,table:_,text:Se},re=k(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),ze={...K,lheading:Pe,table:re,paragraph:k(j).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",re).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex()},Ee={...K,html:k(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",U).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:_,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:k(j).replace(\"hr\",I).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",oe).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Ae=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,Ce=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,le=/^( {2,}|\\\\)\\n(?!\\s*$)/,Ie=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,E=/[\\p{P}\\p{S}]/u,H=/[\\s\\p{P}\\p{S}]/u,W=/[^\\s\\p{P}\\p{S}]/u,Be=k(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,H).getRegex(),ue=/(?!~)[\\p{P}\\p{S}]/u,De=/(?!~)[\\s\\p{P}\\p{S}]/u,qe=/(?:[^\\s\\p{P}\\p{S}]|~)/u,ve=k(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",Re?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),pe=/^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/,He=k(pe,\"u\").replace(/punct/g,E).getRegex(),Ze=k(pe,\"u\").replace(/punct/g,ue).getRegex(),ce=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",Ge=k(ce,\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,E).getRegex(),Ne=k(ce,\"gu\").replace(/notPunctSpace/g,qe).replace(/punctSpace/g,De).replace(/punct/g,ue).getRegex(),Qe=k(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,E).getRegex(),je=k(/^~~?(?:((?!~)punct)|[^\\s~])/,\"u\").replace(/punct/g,E).getRegex(),Fe=\"^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)\",Ue=k(Fe,\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,E).getRegex(),Ke=k(/\\\\(punct)/,\"gu\").replace(/punct/g,E).getRegex(),We=k(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Xe=k(U).replace(\"(?:-->|$)\",\"-->\").getRegex(),Je=k(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",Xe).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),q=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/,Ve=k(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/).replace(\"label\",q).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),he=k(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",q).replace(\"ref\",F).getRegex(),ke=k(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",F).getRegex(),Ye=k(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",he).replace(\"nolink\",ke).getRegex(),se=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,X={_backpedal:_,anyPunctuation:Ke,autolink:We,blockSkip:ve,br:le,code:Ce,del:_,delLDelim:_,delRDelim:_,emStrongLDelim:He,emStrongRDelimAst:Ge,emStrongRDelimUnd:Qe,escape:Ae,link:Ve,nolink:ke,punctuation:Be,reflink:he,reflinkSearch:Ye,tag:Je,text:Ie,url:_},et={...X,link:k(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",q).getRegex(),reflink:k(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",q).getRegex()},N={...X,emStrongRDelimAst:Ne,emStrongLDelim:Ze,delLDelim:je,delRDelim:Ue,url:k(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",se).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:k(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",se).getRegex()},tt={...N,br:k(le).replace(\"{2,}\",\"*\").getRegex(),text:k(N.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},B={normal:K,gfm:ze,pedantic:Ee},A={normal:X,gfm:N,breaks:tt,pedantic:et};var nt={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},de=l=>nt[l];function O(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,de)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,de);return l}function J(l){try{l=encodeURI(l).replace(m.percentDecode,\"%\")}catch{return null}return l}function V(l,e){let t=l.replace(m.findPipe,(r,i,o)=>{let u=!1,a=i;for(;--a>=0&&o[a]===\"\\\\\";)u=!u;return u?\"|\":\" |\"}),n=t.split(m.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;s<n.length;s++)n[s]=n[s].trim().replace(m.slashPipe,\"|\");return n}function $(l,e,t){let n=l.length;if(n===0)return\"\";let s=0;for(;s<n;){let r=l.charAt(n-s-1);if(r===e&&!t)s++;else if(r!==e&&t)s++;else break}return l.slice(0,n-s)}function Y(l){let e=l.split(`\n`),t=e.length-1;for(;t>=0&&m.blankLine.test(e[t]);)t--;return e.length-t<=2?l:e.slice(0,t+1).join(`\n`)}function ge(l,e){if(l.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<l.length;n++)if(l[n]===\"\\\\\")n++;else if(l[n]===e[0])t++;else if(l[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function fe(l,e=0){let t=e,n=\"\";for(let s of l)if(s===\"\t\"){let r=4-t%4;n+=\" \".repeat(r),t+=r}else n+=s,t++;return n}function me(l,e,t,n,s){let r=e.href,i=e.title||null,o=l[1].replace(s.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let u={type:l[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:r,title:i,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,u}function rt(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(`\n`).map(r=>{let i=r.match(t.other.beginningSpace);if(i===null)return r;let[o]=i;return o.length>=s.length?r.slice(s.length):r}).join(`\n`)}var w=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:Y(t[0]),s=n.replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:n,codeBlockStyle:\"indented\",text:s}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],s=rt(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let s=$(n,\"#\");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:\"heading\",raw:$(t[0],`\n`),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:$(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=$(t[0],`\n`).split(`\n`),s=\"\",r=\"\",i=[];for(;n.length>0;){let o=!1,u=[],a;for(a=0;a<n.length;a++)if(this.rules.other.blockquoteStart.test(n[a]))u.push(n[a]),o=!0;else if(!o)u.push(n[a]);else break;n=n.slice(a);let c=u.join(`\n`),p=c.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");s=s?`${s}\n${c}`:c,r=r?`${r}\n${p}`:p;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(p,i,!0),this.lexer.state.top=d,n.length===0)break;let h=i.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.blockquote(f);i[i.length-1]=S,s=s.substring(0,s.length-R.raw.length)+S.raw,r=r.substring(0,r.length-R.text.length)+S.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.list(f);i[i.length-1]=S,s=s.substring(0,s.length-h.raw.length)+S.raw,r=r.substring(0,r.length-R.raw.length)+S.raw,n=f.substring(i.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:s,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),s=n.length>1,r={type:\"list\",raw:\"\",ordered:s,start:s?+n.slice(0,-1):\"\",loose:!1,items:[]};n=s?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=s?n:\"[*+-]\");let i=this.rules.other.listItemRegex(n),o=!1;for(;e;){let a=!1,c=\"\",p=\"\";if(!(t=i.exec(e))||this.rules.block.hr.test(e))break;c=t[0],e=e.substring(c.length);let d=fe(t[2].split(`\n`,1)[0],t[1].length),h=e.split(`\n`,1)[0],R=!d.trim(),f=0;if(this.options.pedantic?(f=2,p=d.trimStart()):R?f=t[1].length+1:(f=d.search(this.rules.other.nonSpaceChar),f=f>4?1:f,p=d.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(c+=h+`\n`,e=e.substring(h.length+1),a=!0),!a){let S=this.rules.other.nextBulletRegex(f),ee=this.rules.other.hrRegex(f),te=this.rules.other.fencesBeginRegex(f),ne=this.rules.other.headingBeginRegex(f),xe=this.rules.other.htmlBeginRegex(f),be=this.rules.other.blockquoteBeginRegex(f);for(;e;){let Z=e.split(`\n`,1)[0],C;if(h=Z,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\" \"),C=h):C=h.replace(this.rules.other.tabCharGlobal,\" \"),te.test(h)||ne.test(h)||xe.test(h)||be.test(h)||S.test(h)||ee.test(h))break;if(C.search(this.rules.other.nonSpaceChar)>=f||!h.trim())p+=`\n`+C.slice(f);else{if(R||d.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||te.test(d)||ne.test(d)||ee.test(d))break;p+=`\n`+h}R=!h.trim(),c+=Z+`\n`,e=e.substring(Z.length+1),d=C.slice(f)}}r.loose||(o?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0)),r.items.push({type:\"list_item\",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(p),loose:!1,text:p,tokens:[]}),r.raw+=c}let u=r.items.at(-1);if(u)u.raw=u.raw.trimEnd(),u.text=u.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let a of r.items){if(this.lexer.state.top=!1,a.tokens=this.lexer.blockTokens(a.text,[]),a.task){if(a.text=a.text.replace(this.rules.other.listReplaceTask,\"\"),a.tokens[0]?.type===\"text\"||a.tokens[0]?.type===\"paragraph\"){a.tokens[0].raw=a.tokens[0].raw.replace(this.rules.other.listReplaceTask,\"\"),a.tokens[0].text=a.tokens[0].text.replace(this.rules.other.listReplaceTask,\"\");for(let p=this.lexer.inlineQueue.length-1;p>=0;p--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[p].src)){this.lexer.inlineQueue[p].src=this.lexer.inlineQueue[p].src.replace(this.rules.other.listReplaceTask,\"\");break}}let c=this.rules.other.listTaskCheckbox.exec(a.raw);if(c){let p={type:\"checkbox\",raw:c[0]+\" \",checked:c[0]!==\"[ ]\"};a.checked=p.checked,r.loose?a.tokens[0]&&[\"paragraph\",\"text\"].includes(a.tokens[0].type)&&\"tokens\"in a.tokens[0]&&a.tokens[0].tokens?(a.tokens[0].raw=p.raw+a.tokens[0].raw,a.tokens[0].text=p.raw+a.tokens[0].text,a.tokens[0].tokens.unshift(p)):a.tokens.unshift({type:\"paragraph\",raw:p.raw,text:p.raw,tokens:[p]}):a.tokens.unshift(p)}}if(!r.loose){let c=a.tokens.filter(d=>d.type===\"space\"),p=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));r.loose=p}}if(r.loose)for(let a of r.items){a.loose=!0;for(let c of a.tokens)c.type===\"text\"&&(c.type=\"paragraph\")}return r}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=Y(t[0]);return{type:\"html\",block:!0,raw:n,pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),s=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:$(t[0],`\n`),href:s,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=V(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],i={type:\"table\",raw:$(t[0],`\n`),header:[],align:[],rows:[]};if(n.length===s.length){for(let o of s)this.rules.other.tableAlignRight.test(o)?i.align.push(\"right\"):this.rules.other.tableAlignCenter.test(o)?i.align.push(\"center\"):this.rules.other.tableAlignLeft.test(o)?i.align.push(\"left\"):i.align.push(null);for(let o=0;o<n.length;o++)i.header.push({text:n[o],tokens:this.lexer.inline(n[o]),header:!0,align:i.align[o]});for(let o of r)i.rows.push(V(o,i.header.length).map((u,a)=>({text:u,tokens:this.lexer.inline(u),header:!1,align:i.align[a]})));return i}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:\"heading\",raw:$(t[0],`\n`),depth:t[2].charAt(0)===\"=\"?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let i=$(n.slice(0,-1),\"\\\\\");if((n.length-i.length)%2===0)return}else{let i=ge(t[2],\"()\");if(i===-2)return;if(i>-1){let u=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+i;t[2]=t[2].substring(0,i),t[0]=t[0].substring(0,u).trim(),t[3]=\"\"}}let s=t[2],r=\"\";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(s);i&&(s=i[1],r=i[3])}else r=t[3]?t[3].slice(1,-1):\"\";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),me(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,\"$1\"),title:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[s.toLowerCase()];if(!r){let i=n[0].charAt(0);return{type:\"text\",raw:i,text:i}}return me(n,r,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[3]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=0,p=s[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(p.lastIndex=0,t=t.slice(-1*e.length+i);(s=p.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(u=[...o].length,s[3]||s[4]){a+=u;continue}else if((s[5]||s[6])&&i%3&&!((i+u)%3)){c+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a+c);let d=[...s[0]][0].length,h=e.slice(0,i+s.index+d+u);if(Math.min(i,u)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),s=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&r&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e,t,n=\"\"){let s=this.rules.inline.delLDelim.exec(e);if(!s)return;if(!(s[1]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let i=[...s[0]].length-1,o,u,a=i,c=this.rules.inline.delRDelim;for(c.lastIndex=0,t=t.slice(-1*e.length+i);(s=c.exec(t))!==null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o||(u=[...o].length,u!==i))continue;if(s[3]||s[4]){a+=u;continue}if(a-=u,a>0)continue;u=Math.min(u,u+a);let p=[...s[0]][0].length,d=e.slice(0,i+s.index+p+u),h=d.slice(i,-i);return{type:\"del\",raw:d,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,s;return t[2]===\"@\"?(n=t[1],s=\"mailto:\"+n):(n=t[1],s=n),{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,s;if(t[2]===\"@\")n=t[0],s=\"mailto:\"+n;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(r!==t[0]);n=t[0],t[1]===\"www.\"?s=\"http://\"+t[0]:s=t[0]}return{type:\"link\",raw:t[0],text:n,href:s,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new w,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:B.normal,inline:A.normal};this.options.pedantic?(t.block=B.pedantic,t.inline=A.pedantic):this.options.gfm&&(t.block=B.gfm,this.options.breaks?t.inline=A.breaks:t.inline=A.gfm),this.tokenizer.rules=t}static get rules(){return{block:B,inline:A}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));let s=1/0;for(;e;){if(e.length<s)s=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let r;if(this.options.extensions?.block?.some(o=>(r=o.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let o=t.at(-1);r.raw.length===1&&o!==void 0?o.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"paragraph\"||o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=o.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let o=1/0,u=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},u),typeof a==\"number\"&&a>=0&&(o=Math.min(o,a))}),o<1/0&&o>=0&&(i=e.substring(0,o+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let o=t.at(-1);n&&o?.type===\"paragraph\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let o=t.at(-1);o?.type===\"text\"?(o.raw+=(o.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,o.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e,s=null;if(this.tokens.links){let a=Object.keys(this.tokens.links);if(a.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!==null;)a.includes(s[0].slice(s[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,s.index)+\"[\"+\"a\".repeat(s[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(n))!==null;)n=n.slice(0,s.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r;for(;(s=this.tokenizer.rules.inline.blockSkip.exec(n))!==null;)r=s[2]?s[2].length:0,n=n.slice(0,s.index+r)+\"[\"+\"a\".repeat(s[0].length-r-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let i=!1,o=\"\",u=1/0;for(;e;){if(e.length<u)u=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}i||(o=\"\"),i=!1;let a;if(this.options.extensions?.inline?.some(p=>(a=p.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let p=t.at(-1);a.type===\"text\"&&p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e,n,o)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}let c=e;if(this.options.extensions?.startInline){let p=1/0,d=e.slice(1),h;this.options.extensions.startInline.forEach(R=>{h=R.call({lexer:this},d),typeof h==\"number\"&&h>=0&&(p=Math.min(p,h))}),p<1/0&&p>=0&&(c=e.substring(0,p+1))}if(a=this.tokenizer.inlineText(c)){e=e.substring(a.raw.length),a.raw.slice(-1)!==\"_\"&&(o=a.raw.slice(-1)),i=!0;let p=t.at(-1);p?.type===\"text\"?(p.raw+=a.raw,p.text+=a.text):t.push(a);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=\"Infinite loop on byte: \"+e;if(this.options.silent)console.error(t);else throw new Error(t)}};var y=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let s=(t||\"\").match(m.notSpaceStart)?.[0],r=e.replace(m.endingNewline,\"\")+`\n`;return s?'<pre><code class=\"language-'+O(s)+'\">'+(n?r:O(r,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?r:O(r,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,s=\"\";for(let o=0;o<e.items.length;o++){let u=e.items[o];s+=this.listitem(u)}let r=t?\"ol\":\"ul\",i=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+r+i+`>\n`+s+\"</\"+r+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let r=0;r<e.header.length;r++)n+=this.tablecell(e.header[r]);t+=this.tablerow({text:n});let s=\"\";for(let r=0;r<e.rows.length;r++){let i=e.rows[r];n=\"\";for(let o=0;o<i.length;o++)n+=this.tablecell(i[o]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+s+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${O(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let s=this.parser.parseInline(n),r=J(e);if(r===null)return s;e=r;let i='<a href=\"'+e+'\"';return t&&(i+=' title=\"'+O(t)+'\"'),i+=\">\"+s+\"</a>\",i}image({href:e,title:t,text:n,tokens:s}){s&&(n=this.parser.parseInline(s,this.parser.textRenderer));let r=J(e);if(r===null)return O(n);e=r;let i=`<img src=\"${e}\" alt=\"${O(n)}\"`;return t&&(i+=` title=\"${O(t)}\"`),i+=\">\",i}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:O(e.text)}};var L=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class l{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new L}static parse(e,t){return new l(t).parse(e)}static parseInline(e,t){return new l(t).parseInline(e)}parse(e){this.renderer.parser=this;let t=\"\";for(let n=0;n<e.length;n++){let s=e[n];if(this.options.extensions?.renderers?.[s.type]){let i=s,o=this.options.extensions.renderers[i.type].call({parser:this},i);if(o!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(i.type)){t+=o||\"\";continue}}let r=s;switch(r.type){case\"space\":{t+=this.renderer.space(r);break}case\"hr\":{t+=this.renderer.hr(r);break}case\"heading\":{t+=this.renderer.heading(r);break}case\"code\":{t+=this.renderer.code(r);break}case\"table\":{t+=this.renderer.table(r);break}case\"blockquote\":{t+=this.renderer.blockquote(r);break}case\"list\":{t+=this.renderer.list(r);break}case\"checkbox\":{t+=this.renderer.checkbox(r);break}case\"html\":{t+=this.renderer.html(r);break}case\"def\":{t+=this.renderer.def(r);break}case\"paragraph\":{t+=this.renderer.paragraph(r);break}case\"text\":{t+=this.renderer.text(r);break}default:{let i='Token with \"'+r.type+'\" type was not found.';if(this.options.silent)return console.error(i),\"\";throw new Error(i)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=\"\";for(let s=0;s<e.length;s++){let r=e[s];if(this.options.extensions?.renderers?.[r.type]){let o=this.options.extensions.renderers[r.type].call({parser:this},r);if(o!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(r.type)){n+=o||\"\";continue}}let i=r;switch(i.type){case\"escape\":{n+=t.text(i);break}case\"html\":{n+=t.html(i);break}case\"link\":{n+=t.link(i);break}case\"image\":{n+=t.image(i);break}case\"checkbox\":{n+=t.checkbox(i);break}case\"strong\":{n+=t.strong(i);break}case\"em\":{n+=t.em(i);break}case\"codespan\":{n+=t.codespan(i);break}case\"br\":{n+=t.br(i);break}case\"del\":{n+=t.del(i);break}case\"text\":{n+=t.text(i);break}default:{let o='Token with \"'+i.type+'\" type was not found.';if(this.options.silent)return console.error(o),\"\";throw new Error(o)}}}return n}};var P=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?x.lex:x.lexInline}provideParser(e=this.block){return e?b.parse:b.parseInline}};var D=class{defaults=z();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=L;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let s of e)switch(n=n.concat(t.call(this,s)),s.type){case\"table\":{let r=s;for(let i of r.header)n=n.concat(this.walkTokens(i.tokens,t));for(let i of r.rows)for(let o of i)n=n.concat(this.walkTokens(o.tokens,t));break}case\"list\":{let r=s;n=n.concat(this.walkTokens(r.items,t));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(i=>{let o=r[i].flat(1/0);n=n.concat(this.walkTokens(o,t))}):r.tokens&&(n=n.concat(this.walkTokens(r.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let s={...n};if(s.async=this.defaults.async||s.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error(\"extension name required\");if(\"renderer\"in r){let i=t.renderers[r.name];i?t.renderers[r.name]=function(...o){let u=r.renderer.apply(this,o);return u===!1&&(u=i.apply(this,o)),u}:t.renderers[r.name]=r.renderer}if(\"tokenizer\"in r){if(!r.level||r.level!==\"block\"&&r.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let i=t[r.level];i?i.unshift(r.tokenizer):t[r.level]=[r.tokenizer],r.start&&(r.level===\"block\"?t.startBlock?t.startBlock.push(r.start):t.startBlock=[r.start]:r.level===\"inline\"&&(t.startInline?t.startInline.push(r.start):t.startInline=[r.start]))}\"childTokens\"in r&&r.childTokens&&(t.childTokens[r.name]=r.childTokens)}),s.extensions=t),n.renderer){let r=this.defaults.renderer||new y(this.defaults);for(let i in n.renderer){if(!(i in r))throw new Error(`renderer '${i}' does not exist`);if([\"options\",\"parser\"].includes(i))continue;let o=i,u=n.renderer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p||\"\"}}s.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new w(this.defaults);for(let i in n.tokenizer){if(!(i in r))throw new Error(`tokenizer '${i}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(i))continue;let o=i,u=n.tokenizer[o],a=r[o];r[o]=(...c)=>{let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new P;for(let i in n.hooks){if(!(i in r))throw new Error(`hook '${i}' does not exist`);if([\"options\",\"block\"].includes(i))continue;let o=i,u=n.hooks[o],a=r[o];P.passThroughHooks.has(i)?r[o]=c=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(i))return(async()=>{let d=await u.call(r,c);return a.call(r,d)})();let p=u.call(r,c);return a.call(r,p)}:r[o]=(...c)=>{if(this.defaults.async)return(async()=>{let d=await u.apply(r,c);return d===!1&&(d=await a.apply(r,c)),d})();let p=u.apply(r,c);return p===!1&&(p=a.apply(r,c)),p}}s.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,i=n.walkTokens;s.walkTokens=function(o){let u=[];return u.push(i.call(this,o)),r&&(u=u.concat(r.call(this,o))),u}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,s)=>{let r={...s},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return o(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return o(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let u=i.hooks?await i.hooks.preprocess(n):n,c=await(i.hooks?await i.hooks.provideLexer(e):e?x.lex:x.lexInline)(u,i),p=i.hooks?await i.hooks.processAllTokens(c):c;i.walkTokens&&await Promise.all(this.walkTokens(p,i.walkTokens));let h=await(i.hooks?await i.hooks.provideParser(e):e?b.parse:b.parseInline)(p,i);return i.hooks?await i.hooks.postprocess(h):h})().catch(o);try{i.hooks&&(n=i.hooks.preprocess(n));let a=(i.hooks?i.hooks.provideLexer(e):e?x.lex:x.lexInline)(n,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let p=(i.hooks?i.hooks.provideParser(e):e?b.parse:b.parseInline)(a,i);return i.hooks&&(p=i.hooks.postprocess(p)),p}catch(u){return o(u)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let s=\"<p>An error occurred:</p><pre>\"+O(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}};var M=new D;function g(l,e){return M.parse(l,e)}g.options=g.setOptions=function(l){return M.setOptions(l),g.defaults=M.defaults,G(g.defaults),g};g.getDefaults=z;g.defaults=T;g.use=function(...l){return M.use(...l),g.defaults=M.defaults,G(g.defaults),g};g.walkTokens=function(l,e){return M.walkTokens(l,e)};g.parseInline=M.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y;g.TextRenderer=L;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;var jt=g.options,Ft=g.setOptions,Ut=g.use,Kt=g.walkTokens,Wt=g.parseInline,Xt=g,Jt=b.parse,Vt=x.lex;export{P as Hooks,x as Lexer,D as Marked,b as Parser,y as Renderer,L as TextRenderer,w as Tokenizer,T as defaults,z as getDefaults,Vt as lexer,g as marked,jt as options,Xt as parse,Wt as parseInline,Jt as parser,Ft as setOptions,Ut as use,Kt as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","import type { TextSegment } from '@/ui/types'\n\nexport const EMOJI_RE = /[\\u{1F1E0}-\\u{1F1FF}]{2}|\\p{Extended_Pictographic}(?:\\p{Emoji_Modifier}|️|⃣|\\p{Extended_Pictographic})*/gu\n\nconst SKIN_MODIFIER_MAP: Record<string, number> = {\n // 從 native emoji 字串中提取膚色編號 ( 2 – 6 ),對應 emoji-mart 的 skin 屬性,膚色修飾符:🏻 U+1F3FB=2、🏼 U+1F3FC=3、🏽 U+1F3FD=4、🏾 U+1F3FE=5、🏿 U+1F3FF=6\n '\\u{1F3FB}': 2,\n '\\u{1F3FC}': 3,\n '\\u{1F3FD}': 4,\n '\\u{1F3FE}': 5,\n '\\u{1F3FF}': 6,\n}\n\nexport const getSkinFromNative = ( native: string ): number | undefined => {\n for ( const [ mod, skin ] of Object.entries( SKIN_MODIFIER_MAP ) ) {\n if ( native.includes( mod ) ) return skin\n }\n return undefined\n}\n\nexport const parseSegments = ( text: string ): TextSegment[] => {\n const segments: TextSegment[] = []\n let last = 0\n EMOJI_RE.lastIndex = 0\n for ( const match of text.matchAll( EMOJI_RE ) ) {\n if ( match.index! > last ) segments.push( { type: 'text', value: text.slice( last, match.index ) } )\n segments.push( { type: 'emoji', value: match[ 0 ], skin: getSkinFromNative( match[ 0 ] ) } )\n last = match.index! + match[ 0 ].length\n }\n if ( last < text.length ) segments.push( { type: 'text', value: text.slice( last ) } )\n return segments.length ? segments : [ { type: 'text', value: text } ]\n}\n","import { type InjectionKey, effectScope, ref, nextTick, computed, watch, reactive, readonly, inject } from 'vue'\nimport { type IReactionDisposer, reaction } from 'mobx'\nimport { marked } from 'marked'\nimport type { Message as RawMessage, User, StickerPack as RawSticker, WsErrorCode } from '@/core/types/index'\nimport type { MeowMeowStore } from '@/core/store/MeowMeowStore'\nimport type { Debug, Message, PreviewMessage, Sticker, UIStoreDispatch, UIStore } from '@/ui/types/index'\nimport { useI18n } from '@/ui/i18n'\nimport { parseSegments } from '@/ui/utils/emoji'\n\nexport const UIStoreKey: InjectionKey<UIStore> = Symbol()\n\nconst resolveTitle = ( title: string | Record<string, string> | undefined, locale: string ): string => {\n if ( !title ) return ''\n if ( typeof title === 'string' ) return title\n return title[ locale ] ?? title[ 'en' ] ?? Object.values( title )[ 0 ] ?? ''\n}\n\nexport const createUIStore = ( meowmeowStore: MeowMeowStore, titleOption?: string | Record<string, string> ): UIStore => {\n\n // ─── Constants ─────────────────────────────────────────\n\n const MAX_MESSAGES_LENGTH = 100\n\n // ─── Parameters ────────────────────────────────────────\n\n const debug = ( [ 'true', 'lang', 'false' ].includes( import.meta.env.VITE_DEBUG_MODE ) ? import.meta.env.VITE_DEBUG_MODE : 'false' ) as Debug\n const { i18n, locale } = useI18n()\n const scope = effectScope()\n let dispatcher: UIStoreDispatch = { message: () => {}, sticker: () => {} }\n\n // ─── Refs ──────────────────────────────────────────────\n\n const isDesktop = ref( window.innerWidth >= 500 )\n const isChatVisible = ref( false )\n const isUnread = ref( false )\n const isLoading = ref( false )\n const isMuted = ref( false )\n const isBanned = ref( false )\n const isRulesVisible = ref( true )\n const isUserAtBottom = ref( false )\n const isPickerVisible = ref( false )\n const needCheckScrollPosition = ref( false )\n const needScrollToBottom = ref( false )\n const needClearInput = ref( false )\n const user = ref<User | null>( null )\n const cooldown = ref( 0 )\n const rawRules = ref( '' )\n const rawMessages = ref<RawMessage[]>( [] )\n const rawStickers = ref<RawSticker[]>( [] )\n\n // ─── Methods ───────────────────────────────────────────\n\n const setChatVisible = ( visible?: boolean ) => isChatVisible.value = visible ?? !isChatVisible.value\n const setUnread = ( unread: boolean ) => isUnread.value = unread\n const setUserAtBottom = ( atBottom: boolean ) => isUserAtBottom.value = atBottom\n const setPickerVisible = ( visible?: boolean ) => isPickerVisible.value = visible ?? !isPickerVisible.value\n const ackCheckScrollPosition = () => needCheckScrollPosition.value = false\n const ackScrollToBottom = () => needScrollToBottom.value = false\n const ackClearInput = () => needClearInput.value = false\n const sendMessage = ( text: string ) => {\n if ( state.isDisabled ) return\n text = text.trimEnd()\n if ( !text ) return\n dispatcher.message( text )\n needScrollToBottom.value = true\n needClearInput.value = true\n }\n const sendSticker = ( url: string ) => {\n if ( state.isDisabled ) return\n dispatcher.sticker( url )\n isPickerVisible.value = false\n needScrollToBottom.value = true\n needClearInput.value = true\n }\n const onWindowResize = () => isDesktop.value = window.innerWidth >= 500\n const onChatVisibleChange = async ( value: boolean ) => {\n if ( value ) {\n await nextTick()\n needCheckScrollPosition.value = true\n return\n }\n isRulesVisible.value = false\n }\n const onMessagesChange = ( value: Message[] ) => {\n // 情境 1: 聊天室可見 且 使用者在底部 => 自動滾動到底部\n if ( isChatVisible.value && isUserAtBottom.value ) needScrollToBottom.value = true\n // 情境 2: 有新訊息 且 聊天室不可見 或 使用者不在底部 => 標記為未讀\n if ( value.length > 0 && ( !isChatVisible.value || !isUserAtBottom.value ) ) setUnread( true )\n }\n window.addEventListener( 'resize', onWindowResize )\n\n // ─── Scope ─────────────────────────────────────────────\n\n const { state } = scope.run( () => {\n\n // ─── Computed ────────────────────────────────────────\n\n const isDisabled = computed( () => isLoading.value || isMuted.value || isBanned.value )\n const userID = computed( () => user.value?.id || '' )\n const rules = computed( () => marked( rawRules.value ) )\n const messages = computed<Message[]>( () => {\n return rawMessages.value\n .slice( -MAX_MESSAGES_LENGTH )\n .map( ( { type, id, userName, userId, createdAt, content, metadata, pending, errorCode } ) => {\n // 類型 1: 純文字訊息\n if ( type === 'text' ) {\n return {\n id,\n sender: userName,\n isOwn: userId === userID.value,\n isoTime: createdAt,\n kind: 'text',\n text: content,\n segments: parseSegments( content ),\n pending,\n errorCode\n }\n // 類型 2: 貼圖訊息\n } else if ( type === 'sticker' && metadata?.sticker ) {\n return {\n id,\n sender: userName,\n isOwn: userId === userID.value,\n isoTime: createdAt,\n kind: 'sticker',\n stickerUrl: metadata.sticker.url,\n pending,\n errorCode\n }\n // 類型 3: 系統訊息\n } else if ( type === 'system' ) {\n return {\n id,\n sender: userName,\n isOwn: userId === userID.value,\n isoTime: createdAt,\n kind: 'text',\n text: content,\n segments: parseSegments( content ),\n pending,\n isSystem: true\n }\n // 類型 4: 其他 ( 系統訊息或未知類型 )\n } else {\n return {\n id,\n sender: userName,\n isOwn: userId === userID.value,\n isoTime: createdAt,\n kind: 'text',\n text: content,\n segments: parseSegments( content ),\n pending,\n errorCode\n }\n }\n } )\n } )\n const lastPreview = computed<PreviewMessage | null>( () => messages.value.length > 0 ? messages.value[ messages.value.length - 1 ] : null )\n const lastThreePreviews = computed<PreviewMessage[]>( () => messages.value.slice( -3 ) )\n const stickers = computed<Sticker[]>( () => rawStickers.value.map( pack => ( {\n id: pack.id,\n iconUrl: pack.stickers[ 0 ]?.url || '',\n stickers: pack.stickers.map( s => s.url )\n } ) ) )\n const title = computed<string>( () => resolveTitle( titleOption, locale.value ) )\n\n // ─── Watch ───────────────────────────────────────────\n\n watch( isChatVisible, onChatVisibleChange )\n watch( messages, onMessagesChange )\n\n // ─── Reactive ────────────────────────────────────────\n\n const state = reactive( {\n isDesktop,\n isChatVisible,\n isUnread,\n isLoading,\n isMuted,\n isBanned,\n isDisabled,\n isRulesVisible,\n isUserAtBottom,\n isPickerVisible,\n needCheckScrollPosition,\n needScrollToBottom,\n needClearInput,\n title,\n rules,\n cooldown,\n messages,\n lastPreview,\n lastThreePreviews,\n stickers\n } )\n\n return { state }\n\n } )!\n\n // ─── 模式 1: Debug ─────────────────────────────────────\n\n if ( debug === 'true' ) {\n\n // ─── Constants ( debug only ) ──────────────────────────\n\n const ALL_MESSAGES_ERROR = Object.keys( i18n.value.chatRoom.error )\n const RANDOM_SENDERS = [\n '小木偶99',\n '幻影旅人',\n '✨亮亮媽✨',\n '三寶飯加蛋',\n '隔壁老王',\n 'TechGuy_01',\n '珍珠奶茶半糖',\n '貓咪老師',\n '寂寞不痛',\n '我只是來湊熱鬧的',\n '阿肥',\n 'LazyCat',\n '威利在哪裡',\n '抹茶控🍵',\n '不想上班的小資女',\n '深夜食堂',\n '超級賽亞人',\n '飄渺孤鴻',\n '酷炫狂霸跩',\n 'Jojo立'\n ]\n const RANDOM_TEXTS = [\n '這也太誇張了吧!😱',\n '有人在嗎?',\n '笑死,真的假的啦www',\n '今天晚餐吃什麼好呢?🍛',\n '這張圖好美喔!',\n '哈哈哈哈哈哈哈哈',\n '已讀不回是怎樣啦 💢',\n '明天要開會,想哭...',\n '祝大家週末愉快 🎉',\n '求推薦好看的電影 🎬',\n '這天氣也太冷了吧 🥶',\n '目前的進度大概是 50% 左右',\n '真的假的!恭喜🎉🎉🎉',\n '(訊息已回收)',\n '等一下有人要打排位嗎?🎮',\n '我覺得這件事情還有待商榷 🤔',\n '剛剛地震好大!大家平安嗎?',\n '這是一個秘密,不可以跟別人說 🤫',\n '加油!你是最棒的 💪',\n '收到,感謝您的通知。'\n ]\n\n // ─── Refs ( debug only ) ───────────────────────────────\n\n isMuted.value = false\n user.value = {\n id: 'you',\n name: 'YOU',\n avatar: null\n }\n rawStickers.value = [\n {\n id: 'Shirokuma',\n name: 'Shirokuma',\n stickers: [\n { code: '001', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/001.png' },\n { code: '002', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/002.png' },\n { code: '003', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/003.png' },\n { code: '004', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/004.png' },\n { code: '005', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/005.png' }\n ]\n },\n {\n id: 'Penguin',\n name: 'Penguin',\n stickers: [\n { code: '006', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/006.png' },\n { code: '007', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/007.png' },\n { code: '008', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/008.png' },\n { code: '009', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/009.png' },\n { code: '010', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/010.png' },\n { code: '011', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/011.png' }\n ]\n },\n {\n id: 'Tonkatsu',\n name: 'Tonkatsu',\n stickers: [\n { code: '012', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/012.png' },\n { code: '013', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/013.png' },\n { code: '014', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/014.png' },\n { code: '015', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/015.png' },\n { code: '016', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/016.png' },\n { code: '017', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/017.png' }\n ]\n },\n {\n id: 'Neko',\n name: 'Neko',\n stickers: [\n { code: '018', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/018.png' },\n { code: '019', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/019.png' },\n { code: '020', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/020.png' },\n { code: '021', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/021.png' },\n { code: '022', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/022.png' }\n ]\n },\n {\n id: 'Tokage',\n name: 'Tokage',\n stickers: [\n { code: '023', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/023.png' },\n { code: '024', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/024.png' },\n { code: '025', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/025.png' },\n { code: '026', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/026.png' },\n { code: '027', url: 'https://stickershop.line-scdn.net/sticonshop/v1/sticon/5b07c23d031a671b9c23d1f1/iPhone/027.png' }\n ]\n }\n ]\n rawRules.value = `# Chat Rules\n\n* **Be respectful** - No hate, bullying, or rude language. Keep it friendly.\n* **Stay relevant** - No spam, ads, or unrelated links.\n* **Protect your privacy** - Never share phone numbers, passwords, or personal info.\n\n⚠️ Breaking the rules may lead to warning, mute, or ban.\n`\n\n // ─── Methods ( debug only ) ────────────────────────────\n\n const setLoading = () => isLoading.value = !isLoading.value\n const setMuted = () => isMuted.value = !isMuted.value\n const setBanned = () => isBanned.value = !isBanned.value\n const addMessage = ( id: string, sender: string, text: string, failed = false ) => {\n const now = Date.now()\n rawMessages.value.push( {\n id: now.toString(),\n seq: now,\n subSeq: now,\n type: 'text',\n content: text,\n userId: id,\n userName: sender,\n avatar: null,\n createdAt: new Date().toISOString(),\n metadata: null,\n errorCode: failed ? ALL_MESSAGES_ERROR[ Math.floor( Math.random() * ALL_MESSAGES_ERROR.length ) ] as WsErrorCode : undefined\n } )\n needScrollToBottom.value = true\n }\n const addSticker = ( id: string, sender: string, url: string, failed = false ) => {\n const now = Date.now()\n rawMessages.value.push( {\n id: now.toString(),\n seq: now,\n subSeq: now,\n type: 'sticker',\n content: '',\n userId: id,\n userName: sender,\n avatar: null,\n createdAt: new Date().toISOString(),\n metadata: {\n sticker: {\n packId: 'debug-pack',\n code: 'debug-code',\n url\n }\n },\n errorCode: failed ? ALL_MESSAGES_ERROR[ Math.floor( Math.random() * ALL_MESSAGES_ERROR.length ) ] as WsErrorCode : undefined\n } )\n needScrollToBottom.value = true\n }\n const addRandomMessage = () => {\n const sender = RANDOM_SENDERS[ Math.floor( Math.random() * RANDOM_SENDERS.length ) ]\n const text = RANDOM_TEXTS[ Math.floor( Math.random() * RANDOM_TEXTS.length ) ]\n addMessage( 'debug-user', sender, text )\n }\n dispatcher = {\n message: text => addMessage( 'you', 'YOU', text, true ),\n sticker: url => addSticker( 'you', 'YOU', url, true )\n }\n const dispose = () => {\n window.removeEventListener( 'resize', onWindowResize )\n scope.stop()\n }\n\n return {\n debug,\n state: readonly( state ),\n setChatVisible,\n setUnread,\n setLoading,\n setMuted,\n setBanned,\n setUserAtBottom,\n setPickerVisible,\n ackCheckScrollPosition,\n ackScrollToBottom,\n ackClearInput,\n addRandomMessage,\n sendMessage,\n sendSticker,\n dispose\n }\n }\n\n // ─── 模式 2: Production ────────────────────────────────\n\n if ( !meowmeowStore ) throw new Error( '[ MeowMeow ] meowmeowStore is not found.' )\n\n // ─── MobX ──────────────────────────────────────────────\n\n const disposer: IReactionDisposer[] = []\n const callbackIsConnected = ( value: string ) => isLoading.value = value !== 'loaded'\n const callbackIsMuted = ( value: boolean ) => isMuted.value = value\n const callbackIsBanned = ( value: boolean ) => isBanned.value = value\n const callbackCurrentUser = ( value: User | null ) => user.value = value ?? null\n const callbackRules = ( value: string | null ) => rawRules.value = value ?? ''\n const callbackCooldown = ( value: number ) => cooldown.value = value ?? 0\n const callbackMessages = ( value: RawMessage[] ) => rawMessages.value = value\n disposer.push( reaction( () => meowmeowStore.status, callbackIsConnected, { fireImmediately: true } ) )\n disposer.push( reaction( () => meowmeowStore.isMuted, callbackIsMuted, { fireImmediately: true } ) )\n disposer.push( reaction( () => meowmeowStore.isBanned, callbackIsBanned, { fireImmediately: true } ) )\n disposer.push( reaction( () => meowmeowStore.currentUser, callbackCurrentUser, { fireImmediately: true } ) )\n disposer.push( reaction( () => meowmeowStore.greetingMessage, callbackRules, { fireImmediately: true } ) )\n disposer.push( reaction( () => meowmeowStore.cooldownSeconds, callbackCooldown, { fireImmediately: true } ) )\n disposer.push( reaction( () => meowmeowStore.messages.slice(), callbackMessages, { fireImmediately: true } ) )\n\n // ─── Methods ───────────────────────────────────────────\n\n dispatcher = {\n message: text => meowmeowStore.sendMessage( text ),\n // TODO: UI 目前只傳 url,需對齊 meowmeowStore.sendSticker 的 { packId, code } 介面\n sticker: () => meowmeowStore.sendSticker( { packId: 'debug-pack', code: 'debug-code' } )\n }\n const dispose = () => {\n disposer.forEach( dispose => dispose() )\n disposer.length = 0\n window.removeEventListener( 'resize', onWindowResize )\n scope.stop()\n }\n\n return {\n debug,\n state: readonly( state ),\n setChatVisible,\n setUnread,\n setUserAtBottom,\n setPickerVisible,\n ackCheckScrollPosition,\n ackScrollToBottom,\n ackClearInput,\n sendMessage,\n sendSticker,\n dispose\n }\n}\n\nexport const useUIStore = (): UIStore => {\n const store = inject( UIStoreKey )\n if ( !store ) throw new Error( '[ MeowMeow ] UIStore not provided.' )\n return store\n}\n","<script setup lang='ts'>\nimport { computed } from 'vue'\nimport { useUIStore } from '@/ui/stores/store'\nimport { useI18n } from '@/ui/i18n'\nimport MdiPeopleGroup from '~icons/mdi/people-group'\n\n// ─── Stores ────────────────────────────────────────────────────────────────────\n\nconst { state, setChatVisible } = useUIStore()\nconst { i18n } = useI18n()\n\n// ─── Computed ──────────────────────────────────────────────────────────────────\n\nconst previewOpacity = computed( () => {\n const count = state.lastThreePreviews.length\n if ( count === 1 ) return [ 1 ]\n if ( count === 2 ) return [ 0.5, 1 ]\n return [ 0.2, 0.5, 1 ]\n} )\n</script>\n\n<template>\n <!-- ── Mobile: 底部預覽列 ── -->\n <Transition name=\"slide-fade\">\n <div\n v-if=\"!state.isChatVisible && !state.isDesktop\"\n class=\"mobile-bar\"\n role=\"button\"\n tabindex=\"0\"\n :aria-label=\"i18n.chatPreview.openAriaLabel\"\n @click=\"setChatVisible( true )\"\n @keydown.enter=\"setChatVisible( true )\"\n @keydown.space=\"setChatVisible( true )\"\n >\n <!-- 上下漸層邊框 -->\n <div class=\"mobile-bar__border\" />\n\n <!-- 圖示 -->\n <MdiPeopleGroup\n class=\"mobile-bar__avatar\"\n aria-hidden=\"true\"\n width=\"24\"\n height=\"24\"\n />\n\n <!-- 訊息 -->\n <Transition name=\"preview-mobile\">\n <div v-if=\"state.lastPreview\" class=\"mobile-bar__content\">\n <TransitionGroup\n name=\"preview-mobile\"\n tag=\"div\"\n class=\"mobile-bar__flip-wrap\"\n >\n <div\n :key=\"state.lastPreview.id\"\n class=\"mobile-bar__preview\"\n >\n <span\n class=\"mobile-bar__sender\"\n :class=\"{\n 'mobile-bar__sender--own': state.lastPreview.isOwn,\n 'mobile-bar__sender--others': !state.lastPreview.isOwn\n }\"\n >\n {{ state.lastPreview.isOwn ? i18n.common.you : state.lastPreview.sender }}\n </span>\n <span class=\"mobile-bar__text\">\n <template v-if=\"state.lastPreview.segments\">\n <template v-for=\"( seg, i ) in state.lastPreview.segments\" :key=\"i\">\n <em-emoji\n v-if=\"seg.type === 'emoji'\"\n :native=\"seg.value\"\n :skin=\"seg.skin\"\n set=\"apple\"\n size=\"14px\"\n />\n <span v-else>{{ seg.value }}</span>\n </template>\n </template>\n <template v-else>\n {{ state.lastPreview.text }}\n </template>\n </span>\n </div>\n </TransitionGroup>\n </div>\n </Transition>\n\n <!-- 提示文字 -->\n <div v-if=\"!state.lastPreview\" class=\"mobile-bar__tip\">\n <span>{{ i18n.chatPreview.clickToChat }}</span>\n </div>\n </div>\n </Transition>\n\n <!-- ── Desktop: 三則訊息預覽卡 ── -->\n <Transition name=\"fade\">\n <div\n v-if=\"state.isDesktop && !state.isChatVisible\"\n class=\"desktop-previews\"\n >\n <TransitionGroup name=\"preview-desktop\">\n <div\n v-for=\"( message, i ) in state.lastThreePreviews\" :key=\"message.id\"\n class=\"preview-card\"\n :style=\"{ '--card-opacity': previewOpacity[ i ] }\"\n >\n <span class=\"preview-card__sender\">{{ message.isOwn ? i18n.common.you : message.sender }}</span>\n <p class=\"preview-card__text\">\n <template v-if=\"message.segments\">\n <template v-for=\"( seg, j ) in message.segments\" :key=\"j\">\n <em-emoji\n v-if=\"seg.type === 'emoji'\"\n :native=\"seg.value\"\n :skin=\"seg.skin\"\n set=\"apple\"\n size=\"14px\"\n />\n <span v-else>{{ seg.value }}</span>\n </template>\n </template>\n <template v-else>\n {{ message.text }}\n </template>\n </p>\n </div>\n </TransitionGroup>\n </div>\n </Transition>\n</template>\n","// Emoji-mart 在模組求值時註冊 'em-emoji' / 'em-emoji-picker'。\n// 如果宿主頁面也載入了 emoji-mart ( 它自己的 bundle ),則兩個副本會競爭呼叫以下程式碼:\n// customElements.define → NotSupportedError: already been defined。\n// 將 define 修改為冪等是唯一可靠的 bundle 等級修復方法;\n// 在 EmojiPicker.vue 的 onMounted 中使用 try/catch 太晚了,因為錯誤是在匯入求值期間觸發的。\nif ( typeof customElements !== 'undefined' ) {\n const _origDefine = customElements.define.bind( customElements )\n customElements.define = function (\n name: string,\n ctor: CustomElementConstructor,\n opts?: ElementDefinitionOptions,\n ): void {\n if ( customElements.get( name ) ) return\n _origDefine( name, ctor, opts )\n }\n}\n","function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\nfunction $c770c458706daa72$export$2e2bcd8739ae039(obj, key, value) {\n if (key in obj) Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n else obj[key] = value;\n return obj;\n}\n\n\nvar $fb96b826c0c5f37a$var$n, $fb96b826c0c5f37a$export$41c562ebe57d11e2, $fb96b826c0c5f37a$var$u, $fb96b826c0c5f37a$export$a8257692ac88316c, $fb96b826c0c5f37a$var$t, $fb96b826c0c5f37a$var$r, $fb96b826c0c5f37a$var$o, $fb96b826c0c5f37a$var$f, $fb96b826c0c5f37a$var$e = {}, $fb96b826c0c5f37a$var$c = [], $fb96b826c0c5f37a$var$s = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\nfunction $fb96b826c0c5f37a$var$a(n1, l1) {\n for(var u1 in l1)n1[u1] = l1[u1];\n return n1;\n}\nfunction $fb96b826c0c5f37a$var$h(n2) {\n var l2 = n2.parentNode;\n l2 && l2.removeChild(n2);\n}\nfunction $fb96b826c0c5f37a$export$c8a8987d4410bf2d(l3, u2, i1) {\n var t1, r1, o1, f1 = {};\n for(o1 in u2)\"key\" == o1 ? t1 = u2[o1] : \"ref\" == o1 ? r1 = u2[o1] : f1[o1] = u2[o1];\n if (arguments.length > 2 && (f1.children = arguments.length > 3 ? $fb96b826c0c5f37a$var$n.call(arguments, 2) : i1), \"function\" == typeof l3 && null != l3.defaultProps) for(o1 in l3.defaultProps)void 0 === f1[o1] && (f1[o1] = l3.defaultProps[o1]);\n return $fb96b826c0c5f37a$var$y(l3, f1, t1, r1, null);\n}\nfunction $fb96b826c0c5f37a$var$y(n3, i2, t2, r2, o2) {\n var f2 = {\n type: n3,\n props: i2,\n key: t2,\n ref: r2,\n __k: null,\n __: null,\n __b: 0,\n __e: null,\n __d: void 0,\n __c: null,\n __h: null,\n constructor: void 0,\n __v: null == o2 ? ++$fb96b826c0c5f37a$var$u : o2\n };\n return null == o2 && null != $fb96b826c0c5f37a$export$41c562ebe57d11e2.vnode && $fb96b826c0c5f37a$export$41c562ebe57d11e2.vnode(f2), f2;\n}\nfunction $fb96b826c0c5f37a$export$7d1e3a5e95ceca43() {\n return {\n current: null\n };\n}\nfunction $fb96b826c0c5f37a$export$ffb0004e005737fa(n4) {\n return n4.children;\n}\nfunction $fb96b826c0c5f37a$export$16fa2f45be04daa8(n5, l4) {\n this.props = n5, this.context = l4;\n}\nfunction $fb96b826c0c5f37a$var$k(n6, l5) {\n if (null == l5) return n6.__ ? $fb96b826c0c5f37a$var$k(n6.__, n6.__.__k.indexOf(n6) + 1) : null;\n for(var u3; l5 < n6.__k.length; l5++)if (null != (u3 = n6.__k[l5]) && null != u3.__e) return u3.__e;\n return \"function\" == typeof n6.type ? $fb96b826c0c5f37a$var$k(n6) : null;\n}\nfunction $fb96b826c0c5f37a$var$b(n7) {\n var l6, u4;\n if (null != (n7 = n7.__) && null != n7.__c) {\n for(n7.__e = n7.__c.base = null, l6 = 0; l6 < n7.__k.length; l6++)if (null != (u4 = n7.__k[l6]) && null != u4.__e) {\n n7.__e = n7.__c.base = u4.__e;\n break;\n }\n return $fb96b826c0c5f37a$var$b(n7);\n }\n}\nfunction $fb96b826c0c5f37a$var$m(n8) {\n (!n8.__d && (n8.__d = !0) && $fb96b826c0c5f37a$var$t.push(n8) && !$fb96b826c0c5f37a$var$g.__r++ || $fb96b826c0c5f37a$var$o !== $fb96b826c0c5f37a$export$41c562ebe57d11e2.debounceRendering) && (($fb96b826c0c5f37a$var$o = $fb96b826c0c5f37a$export$41c562ebe57d11e2.debounceRendering) || $fb96b826c0c5f37a$var$r)($fb96b826c0c5f37a$var$g);\n}\nfunction $fb96b826c0c5f37a$var$g() {\n for(var n9; $fb96b826c0c5f37a$var$g.__r = $fb96b826c0c5f37a$var$t.length;)n9 = $fb96b826c0c5f37a$var$t.sort(function(n10, l7) {\n return n10.__v.__b - l7.__v.__b;\n }), $fb96b826c0c5f37a$var$t = [], n9.some(function(n11) {\n var l8, u5, i3, t3, r3, o3;\n n11.__d && (r3 = (t3 = (l8 = n11).__v).__e, (o3 = l8.__P) && (u5 = [], (i3 = $fb96b826c0c5f37a$var$a({}, t3)).__v = t3.__v + 1, $fb96b826c0c5f37a$var$j(o3, t3, i3, l8.__n, void 0 !== o3.ownerSVGElement, null != t3.__h ? [\n r3\n ] : null, u5, null == r3 ? $fb96b826c0c5f37a$var$k(t3) : r3, t3.__h), $fb96b826c0c5f37a$var$z(u5, t3), t3.__e != r3 && $fb96b826c0c5f37a$var$b(t3)));\n });\n}\nfunction $fb96b826c0c5f37a$var$w(n12, l9, u6, i4, t4, r4, o4, f3, s1, a1) {\n var h1, v1, p1, _1, b1, m1, g1, w1 = i4 && i4.__k || $fb96b826c0c5f37a$var$c, A1 = w1.length;\n for(u6.__k = [], h1 = 0; h1 < l9.length; h1++)if (null != (_1 = u6.__k[h1] = null == (_1 = l9[h1]) || \"boolean\" == typeof _1 ? null : \"string\" == typeof _1 || \"number\" == typeof _1 || \"bigint\" == typeof _1 ? $fb96b826c0c5f37a$var$y(null, _1, null, null, _1) : Array.isArray(_1) ? $fb96b826c0c5f37a$var$y($fb96b826c0c5f37a$export$ffb0004e005737fa, {\n children: _1\n }, null, null, null) : _1.__b > 0 ? $fb96b826c0c5f37a$var$y(_1.type, _1.props, _1.key, null, _1.__v) : _1)) {\n if (_1.__ = u6, _1.__b = u6.__b + 1, null === (p1 = w1[h1]) || p1 && _1.key == p1.key && _1.type === p1.type) w1[h1] = void 0;\n else for(v1 = 0; v1 < A1; v1++){\n if ((p1 = w1[v1]) && _1.key == p1.key && _1.type === p1.type) {\n w1[v1] = void 0;\n break;\n }\n p1 = null;\n }\n $fb96b826c0c5f37a$var$j(n12, _1, p1 = p1 || $fb96b826c0c5f37a$var$e, t4, r4, o4, f3, s1, a1), b1 = _1.__e, (v1 = _1.ref) && p1.ref != v1 && (g1 || (g1 = []), p1.ref && g1.push(p1.ref, null, _1), g1.push(v1, _1.__c || b1, _1)), null != b1 ? (null == m1 && (m1 = b1), \"function\" == typeof _1.type && _1.__k === p1.__k ? _1.__d = s1 = $fb96b826c0c5f37a$var$x(_1, s1, n12) : s1 = $fb96b826c0c5f37a$var$P(n12, _1, p1, w1, b1, s1), \"function\" == typeof u6.type && (u6.__d = s1)) : s1 && p1.__e == s1 && s1.parentNode != n12 && (s1 = $fb96b826c0c5f37a$var$k(p1));\n }\n for(u6.__e = m1, h1 = A1; h1--;)null != w1[h1] && (\"function\" == typeof u6.type && null != w1[h1].__e && w1[h1].__e == u6.__d && (u6.__d = $fb96b826c0c5f37a$var$k(i4, h1 + 1)), $fb96b826c0c5f37a$var$N(w1[h1], w1[h1]));\n if (g1) for(h1 = 0; h1 < g1.length; h1++)$fb96b826c0c5f37a$var$M(g1[h1], g1[++h1], g1[++h1]);\n}\nfunction $fb96b826c0c5f37a$var$x(n13, l10, u7) {\n for(var i5, t5 = n13.__k, r5 = 0; t5 && r5 < t5.length; r5++)(i5 = t5[r5]) && (i5.__ = n13, l10 = \"function\" == typeof i5.type ? $fb96b826c0c5f37a$var$x(i5, l10, u7) : $fb96b826c0c5f37a$var$P(u7, i5, i5, t5, i5.__e, l10));\n return l10;\n}\nfunction $fb96b826c0c5f37a$export$47e4c5b300681277(n14, l11) {\n return l11 = l11 || [], null == n14 || \"boolean\" == typeof n14 || (Array.isArray(n14) ? n14.some(function(n15) {\n $fb96b826c0c5f37a$export$47e4c5b300681277(n15, l11);\n }) : l11.push(n14)), l11;\n}\nfunction $fb96b826c0c5f37a$var$P(n16, l12, u8, i6, t6, r6) {\n var o5, f4, e1;\n if (void 0 !== l12.__d) o5 = l12.__d, l12.__d = void 0;\n else if (null == u8 || t6 != r6 || null == t6.parentNode) n: if (null == r6 || r6.parentNode !== n16) n16.appendChild(t6), o5 = null;\n else {\n for(f4 = r6, e1 = 0; (f4 = f4.nextSibling) && e1 < i6.length; e1 += 2)if (f4 == t6) break n;\n n16.insertBefore(t6, r6), o5 = r6;\n }\n return void 0 !== o5 ? o5 : t6.nextSibling;\n}\nfunction $fb96b826c0c5f37a$var$C(n17, l13, u9, i7, t7) {\n var r7;\n for(r7 in u9)\"children\" === r7 || \"key\" === r7 || r7 in l13 || $fb96b826c0c5f37a$var$H(n17, r7, null, u9[r7], i7);\n for(r7 in l13)t7 && \"function\" != typeof l13[r7] || \"children\" === r7 || \"key\" === r7 || \"value\" === r7 || \"checked\" === r7 || u9[r7] === l13[r7] || $fb96b826c0c5f37a$var$H(n17, r7, l13[r7], u9[r7], i7);\n}\nfunction $fb96b826c0c5f37a$var$$(n18, l14, u10) {\n \"-\" === l14[0] ? n18.setProperty(l14, u10) : n18[l14] = null == u10 ? \"\" : \"number\" != typeof u10 || $fb96b826c0c5f37a$var$s.test(l14) ? u10 : u10 + \"px\";\n}\nfunction $fb96b826c0c5f37a$var$H(n19, l15, u11, i8, t8) {\n var r8;\n n: if (\"style\" === l15) {\n if (\"string\" == typeof u11) n19.style.cssText = u11;\n else {\n if (\"string\" == typeof i8 && (n19.style.cssText = i8 = \"\"), i8) for(l15 in i8)u11 && l15 in u11 || $fb96b826c0c5f37a$var$$(n19.style, l15, \"\");\n if (u11) for(l15 in u11)i8 && u11[l15] === i8[l15] || $fb96b826c0c5f37a$var$$(n19.style, l15, u11[l15]);\n }\n } else if (\"o\" === l15[0] && \"n\" === l15[1]) r8 = l15 !== (l15 = l15.replace(/Capture$/, \"\")), l15 = l15.toLowerCase() in n19 ? l15.toLowerCase().slice(2) : l15.slice(2), n19.l || (n19.l = {}), n19.l[l15 + r8] = u11, u11 ? i8 || n19.addEventListener(l15, r8 ? $fb96b826c0c5f37a$var$T : $fb96b826c0c5f37a$var$I, r8) : n19.removeEventListener(l15, r8 ? $fb96b826c0c5f37a$var$T : $fb96b826c0c5f37a$var$I, r8);\n else if (\"dangerouslySetInnerHTML\" !== l15) {\n if (t8) l15 = l15.replace(/xlink[H:h]/, \"h\").replace(/sName$/, \"s\");\n else if (\"href\" !== l15 && \"list\" !== l15 && \"form\" !== l15 && \"tabIndex\" !== l15 && \"download\" !== l15 && l15 in n19) try {\n n19[l15] = null == u11 ? \"\" : u11;\n break n;\n } catch (n) {}\n \"function\" == typeof u11 || (null != u11 && (!1 !== u11 || \"a\" === l15[0] && \"r\" === l15[1]) ? n19.setAttribute(l15, u11) : n19.removeAttribute(l15));\n }\n}\nfunction $fb96b826c0c5f37a$var$I(n20) {\n this.l[n20.type + !1]($fb96b826c0c5f37a$export$41c562ebe57d11e2.event ? $fb96b826c0c5f37a$export$41c562ebe57d11e2.event(n20) : n20);\n}\nfunction $fb96b826c0c5f37a$var$T(n21) {\n this.l[n21.type + !0]($fb96b826c0c5f37a$export$41c562ebe57d11e2.event ? $fb96b826c0c5f37a$export$41c562ebe57d11e2.event(n21) : n21);\n}\nfunction $fb96b826c0c5f37a$var$j(n22, u12, i9, t9, r9, o6, f5, e2, c1) {\n var s2, h2, v2, y1, p2, k1, b2, m2, g2, x1, A2, P1 = u12.type;\n if (void 0 !== u12.constructor) return null;\n null != i9.__h && (c1 = i9.__h, e2 = u12.__e = i9.__e, u12.__h = null, o6 = [\n e2\n ]), (s2 = $fb96b826c0c5f37a$export$41c562ebe57d11e2.__b) && s2(u12);\n try {\n n: if (\"function\" == typeof P1) {\n if (m2 = u12.props, g2 = (s2 = P1.contextType) && t9[s2.__c], x1 = s2 ? g2 ? g2.props.value : s2.__ : t9, i9.__c ? b2 = (h2 = u12.__c = i9.__c).__ = h2.__E : (\"prototype\" in P1 && P1.prototype.render ? u12.__c = h2 = new P1(m2, x1) : (u12.__c = h2 = new $fb96b826c0c5f37a$export$16fa2f45be04daa8(m2, x1), h2.constructor = P1, h2.render = $fb96b826c0c5f37a$var$O), g2 && g2.sub(h2), h2.props = m2, h2.state || (h2.state = {}), h2.context = x1, h2.__n = t9, v2 = h2.__d = !0, h2.__h = []), null == h2.__s && (h2.__s = h2.state), null != P1.getDerivedStateFromProps && (h2.__s == h2.state && (h2.__s = $fb96b826c0c5f37a$var$a({}, h2.__s)), $fb96b826c0c5f37a$var$a(h2.__s, P1.getDerivedStateFromProps(m2, h2.__s))), y1 = h2.props, p2 = h2.state, v2) null == P1.getDerivedStateFromProps && null != h2.componentWillMount && h2.componentWillMount(), null != h2.componentDidMount && h2.__h.push(h2.componentDidMount);\n else {\n if (null == P1.getDerivedStateFromProps && m2 !== y1 && null != h2.componentWillReceiveProps && h2.componentWillReceiveProps(m2, x1), !h2.__e && null != h2.shouldComponentUpdate && !1 === h2.shouldComponentUpdate(m2, h2.__s, x1) || u12.__v === i9.__v) {\n h2.props = m2, h2.state = h2.__s, u12.__v !== i9.__v && (h2.__d = !1), h2.__v = u12, u12.__e = i9.__e, u12.__k = i9.__k, u12.__k.forEach(function(n23) {\n n23 && (n23.__ = u12);\n }), h2.__h.length && f5.push(h2);\n break n;\n }\n null != h2.componentWillUpdate && h2.componentWillUpdate(m2, h2.__s, x1), null != h2.componentDidUpdate && h2.__h.push(function() {\n h2.componentDidUpdate(y1, p2, k1);\n });\n }\n h2.context = x1, h2.props = m2, h2.state = h2.__s, (s2 = $fb96b826c0c5f37a$export$41c562ebe57d11e2.__r) && s2(u12), h2.__d = !1, h2.__v = u12, h2.__P = n22, s2 = h2.render(h2.props, h2.state, h2.context), h2.state = h2.__s, null != h2.getChildContext && (t9 = $fb96b826c0c5f37a$var$a($fb96b826c0c5f37a$var$a({}, t9), h2.getChildContext())), v2 || null == h2.getSnapshotBeforeUpdate || (k1 = h2.getSnapshotBeforeUpdate(y1, p2)), A2 = null != s2 && s2.type === $fb96b826c0c5f37a$export$ffb0004e005737fa && null == s2.key ? s2.props.children : s2, $fb96b826c0c5f37a$var$w(n22, Array.isArray(A2) ? A2 : [\n A2\n ], u12, i9, t9, r9, o6, f5, e2, c1), h2.base = u12.__e, u12.__h = null, h2.__h.length && f5.push(h2), b2 && (h2.__E = h2.__ = null), h2.__e = !1;\n } else null == o6 && u12.__v === i9.__v ? (u12.__k = i9.__k, u12.__e = i9.__e) : u12.__e = $fb96b826c0c5f37a$var$L(i9.__e, u12, i9, t9, r9, o6, f5, c1);\n (s2 = $fb96b826c0c5f37a$export$41c562ebe57d11e2.diffed) && s2(u12);\n } catch (n24) {\n u12.__v = null, (c1 || null != o6) && (u12.__e = e2, u12.__h = !!c1, o6[o6.indexOf(e2)] = null), $fb96b826c0c5f37a$export$41c562ebe57d11e2.__e(n24, u12, i9);\n }\n}\nfunction $fb96b826c0c5f37a$var$z(n25, u13) {\n $fb96b826c0c5f37a$export$41c562ebe57d11e2.__c && $fb96b826c0c5f37a$export$41c562ebe57d11e2.__c(u13, n25), n25.some(function(u14) {\n try {\n n25 = u14.__h, u14.__h = [], n25.some(function(n26) {\n n26.call(u14);\n });\n } catch (n27) {\n $fb96b826c0c5f37a$export$41c562ebe57d11e2.__e(n27, u14.__v);\n }\n });\n}\nfunction $fb96b826c0c5f37a$var$L(l16, u15, i10, t10, r10, o7, f6, c2) {\n var s3, a2, v3, y2 = i10.props, p3 = u15.props, d1 = u15.type, _2 = 0;\n if (\"svg\" === d1 && (r10 = !0), null != o7) {\n for(; _2 < o7.length; _2++)if ((s3 = o7[_2]) && \"setAttribute\" in s3 == !!d1 && (d1 ? s3.localName === d1 : 3 === s3.nodeType)) {\n l16 = s3, o7[_2] = null;\n break;\n }\n }\n if (null == l16) {\n if (null === d1) return document.createTextNode(p3);\n l16 = r10 ? document.createElementNS(\"http://www.w3.org/2000/svg\", d1) : document.createElement(d1, p3.is && p3), o7 = null, c2 = !1;\n }\n if (null === d1) y2 === p3 || c2 && l16.data === p3 || (l16.data = p3);\n else {\n if (o7 = o7 && $fb96b826c0c5f37a$var$n.call(l16.childNodes), a2 = (y2 = i10.props || $fb96b826c0c5f37a$var$e).dangerouslySetInnerHTML, v3 = p3.dangerouslySetInnerHTML, !c2) {\n if (null != o7) for(y2 = {}, _2 = 0; _2 < l16.attributes.length; _2++)y2[l16.attributes[_2].name] = l16.attributes[_2].value;\n (v3 || a2) && (v3 && (a2 && v3.__html == a2.__html || v3.__html === l16.innerHTML) || (l16.innerHTML = v3 && v3.__html || \"\"));\n }\n if ($fb96b826c0c5f37a$var$C(l16, p3, y2, r10, c2), v3) u15.__k = [];\n else if (_2 = u15.props.children, $fb96b826c0c5f37a$var$w(l16, Array.isArray(_2) ? _2 : [\n _2\n ], u15, i10, t10, r10 && \"foreignObject\" !== d1, o7, f6, o7 ? o7[0] : i10.__k && $fb96b826c0c5f37a$var$k(i10, 0), c2), null != o7) for(_2 = o7.length; _2--;)null != o7[_2] && $fb96b826c0c5f37a$var$h(o7[_2]);\n c2 || (\"value\" in p3 && void 0 !== (_2 = p3.value) && (_2 !== y2.value || _2 !== l16.value || \"progress\" === d1 && !_2) && $fb96b826c0c5f37a$var$H(l16, \"value\", _2, y2.value, !1), \"checked\" in p3 && void 0 !== (_2 = p3.checked) && _2 !== l16.checked && $fb96b826c0c5f37a$var$H(l16, \"checked\", _2, y2.checked, !1));\n }\n return l16;\n}\nfunction $fb96b826c0c5f37a$var$M(n28, u16, i11) {\n try {\n \"function\" == typeof n28 ? n28(u16) : n28.current = u16;\n } catch (n29) {\n $fb96b826c0c5f37a$export$41c562ebe57d11e2.__e(n29, i11);\n }\n}\nfunction $fb96b826c0c5f37a$var$N(n30, u17, i12) {\n var t11, r11;\n if ($fb96b826c0c5f37a$export$41c562ebe57d11e2.unmount && $fb96b826c0c5f37a$export$41c562ebe57d11e2.unmount(n30), (t11 = n30.ref) && (t11.current && t11.current !== n30.__e || $fb96b826c0c5f37a$var$M(t11, null, u17)), null != (t11 = n30.__c)) {\n if (t11.componentWillUnmount) try {\n t11.componentWillUnmount();\n } catch (n31) {\n $fb96b826c0c5f37a$export$41c562ebe57d11e2.__e(n31, u17);\n }\n t11.base = t11.__P = null;\n }\n if (t11 = n30.__k) for(r11 = 0; r11 < t11.length; r11++)t11[r11] && $fb96b826c0c5f37a$var$N(t11[r11], u17, \"function\" != typeof n30.type);\n i12 || null == n30.__e || $fb96b826c0c5f37a$var$h(n30.__e), n30.__e = n30.__d = void 0;\n}\nfunction $fb96b826c0c5f37a$var$O(n32, l, u18) {\n return this.constructor(n32, u18);\n}\nfunction $fb96b826c0c5f37a$export$b3890eb0ae9dca99(u19, i13, t12) {\n var r12, o8, f7;\n $fb96b826c0c5f37a$export$41c562ebe57d11e2.__ && $fb96b826c0c5f37a$export$41c562ebe57d11e2.__(u19, i13), o8 = (r12 = \"function\" == typeof t12) ? null : t12 && t12.__k || i13.__k, f7 = [], $fb96b826c0c5f37a$var$j(i13, u19 = (!r12 && t12 || i13).__k = $fb96b826c0c5f37a$export$c8a8987d4410bf2d($fb96b826c0c5f37a$export$ffb0004e005737fa, null, [\n u19\n ]), o8 || $fb96b826c0c5f37a$var$e, $fb96b826c0c5f37a$var$e, void 0 !== i13.ownerSVGElement, !r12 && t12 ? [\n t12\n ] : o8 ? null : i13.firstChild ? $fb96b826c0c5f37a$var$n.call(i13.childNodes) : null, f7, !r12 && t12 ? t12 : o8 ? o8.__e : i13.firstChild, r12), $fb96b826c0c5f37a$var$z(f7, u19);\n}\nfunction $fb96b826c0c5f37a$export$fa8d919ba61d84db(n33, l17) {\n $fb96b826c0c5f37a$export$b3890eb0ae9dca99(n33, l17, $fb96b826c0c5f37a$export$fa8d919ba61d84db);\n}\nfunction $fb96b826c0c5f37a$export$e530037191fcd5d7(l18, u20, i14) {\n var t13, r13, o9, f8 = $fb96b826c0c5f37a$var$a({}, l18.props);\n for(o9 in u20)\"key\" == o9 ? t13 = u20[o9] : \"ref\" == o9 ? r13 = u20[o9] : f8[o9] = u20[o9];\n return arguments.length > 2 && (f8.children = arguments.length > 3 ? $fb96b826c0c5f37a$var$n.call(arguments, 2) : i14), $fb96b826c0c5f37a$var$y(l18.type, f8, t13 || l18.key, r13 || l18.ref, null);\n}\nfunction $fb96b826c0c5f37a$export$fd42f52fd3ae1109(n34, l19) {\n var u21 = {\n __c: l19 = \"__cC\" + $fb96b826c0c5f37a$var$f++,\n __: n34,\n Consumer: function(n35, l20) {\n return n35.children(l20);\n },\n Provider: function(n36) {\n var u22, i15;\n return this.getChildContext || (u22 = [], (i15 = {})[l19] = this, this.getChildContext = function() {\n return i15;\n }, this.shouldComponentUpdate = function(n37) {\n this.props.value !== n37.value && u22.some($fb96b826c0c5f37a$var$m);\n }, this.sub = function(n38) {\n u22.push(n38);\n var l21 = n38.componentWillUnmount;\n n38.componentWillUnmount = function() {\n u22.splice(u22.indexOf(n38), 1), l21 && l21.call(n38);\n };\n }), n36.children;\n }\n };\n return u21.Provider.__ = u21.Consumer.contextType = u21;\n}\n$fb96b826c0c5f37a$var$n = $fb96b826c0c5f37a$var$c.slice, $fb96b826c0c5f37a$export$41c562ebe57d11e2 = {\n __e: function(n39, l22) {\n for(var u23, i16, t14; l22 = l22.__;)if ((u23 = l22.__c) && !u23.__) try {\n if ((i16 = u23.constructor) && null != i16.getDerivedStateFromError && (u23.setState(i16.getDerivedStateFromError(n39)), t14 = u23.__d), null != u23.componentDidCatch && (u23.componentDidCatch(n39), t14 = u23.__d), t14) return u23.__E = u23;\n } catch (l23) {\n n39 = l23;\n }\n throw n39;\n }\n}, $fb96b826c0c5f37a$var$u = 0, $fb96b826c0c5f37a$export$a8257692ac88316c = function(n40) {\n return null != n40 && void 0 === n40.constructor;\n}, $fb96b826c0c5f37a$export$16fa2f45be04daa8.prototype.setState = function(n41, l24) {\n var u24;\n u24 = null != this.__s && this.__s !== this.state ? this.__s : this.__s = $fb96b826c0c5f37a$var$a({}, this.state), \"function\" == typeof n41 && (n41 = n41($fb96b826c0c5f37a$var$a({}, u24), this.props)), n41 && $fb96b826c0c5f37a$var$a(u24, n41), null != n41 && this.__v && (l24 && this.__h.push(l24), $fb96b826c0c5f37a$var$m(this));\n}, $fb96b826c0c5f37a$export$16fa2f45be04daa8.prototype.forceUpdate = function(n42) {\n this.__v && (this.__e = !0, n42 && this.__h.push(n42), $fb96b826c0c5f37a$var$m(this));\n}, $fb96b826c0c5f37a$export$16fa2f45be04daa8.prototype.render = $fb96b826c0c5f37a$export$ffb0004e005737fa, $fb96b826c0c5f37a$var$t = [], $fb96b826c0c5f37a$var$r = \"function\" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, $fb96b826c0c5f37a$var$g.__r = 0, $fb96b826c0c5f37a$var$f = 0;\n\n\n\nvar $bd9dd35321b03dd4$var$o = 0;\nfunction $bd9dd35321b03dd4$export$34b9dba7ce09269b(_1, e1, n, t, f) {\n var l, s, u = {};\n for(s in e1)\"ref\" == s ? l = e1[s] : u[s] = e1[s];\n var a = {\n type: _1,\n props: u,\n key: n,\n ref: l,\n __k: null,\n __: null,\n __b: 0,\n __e: null,\n __d: void 0,\n __c: null,\n __h: null,\n constructor: void 0,\n __v: --$bd9dd35321b03dd4$var$o,\n __source: t,\n __self: f\n };\n if (\"function\" == typeof _1 && (l = _1.defaultProps)) for(s in l)void 0 === u[s] && (u[s] = l[s]);\n return (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).vnode && (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).vnode(a), a;\n}\n\n\n\nfunction $f72b75cf796873c7$var$set(key, value) {\n try {\n window.localStorage[`emoji-mart.${key}`] = JSON.stringify(value);\n } catch (error) {}\n}\nfunction $f72b75cf796873c7$var$get(key) {\n try {\n const value = window.localStorage[`emoji-mart.${key}`];\n if (value) return JSON.parse(value);\n } catch (error) {}\n}\nvar $f72b75cf796873c7$export$2e2bcd8739ae039 = {\n set: $f72b75cf796873c7$var$set,\n get: $f72b75cf796873c7$var$get\n};\n\n\nconst $c84d045dcc34faf5$var$CACHE = new Map();\nconst $c84d045dcc34faf5$var$VERSIONS = [\n {\n v: 15,\n emoji: \"\\uD83E\\uDEE8\"\n },\n {\n v: 14,\n emoji: \"\\uD83E\\uDEE0\"\n },\n {\n v: 13.1,\n emoji: \"\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B\\uFE0F\"\n },\n {\n v: 13,\n emoji: \"\\uD83E\\uDD78\"\n },\n {\n v: 12.1,\n emoji: \"\\uD83E\\uDDD1\\u200D\\uD83E\\uDDB0\"\n },\n {\n v: 12,\n emoji: \"\\uD83E\\uDD71\"\n },\n {\n v: 11,\n emoji: \"\\uD83E\\uDD70\"\n },\n {\n v: 5,\n emoji: \"\\uD83E\\uDD29\"\n },\n {\n v: 4,\n emoji: \"\\uD83D\\uDC71\\u200D\\u2640\\uFE0F\"\n },\n {\n v: 3,\n emoji: \"\\uD83E\\uDD23\"\n },\n {\n v: 2,\n emoji: \"\\uD83D\\uDC4B\\uD83C\\uDFFB\"\n },\n {\n v: 1,\n emoji: \"\\uD83D\\uDE43\"\n }, \n];\nfunction $c84d045dcc34faf5$var$latestVersion() {\n for (const { v: v , emoji: emoji } of $c84d045dcc34faf5$var$VERSIONS){\n if ($c84d045dcc34faf5$var$isSupported(emoji)) return v;\n }\n}\nfunction $c84d045dcc34faf5$var$noCountryFlags() {\n if ($c84d045dcc34faf5$var$isSupported(\"\\uD83C\\uDDE8\\uD83C\\uDDE6\")) return false;\n return true;\n}\nfunction $c84d045dcc34faf5$var$isSupported(emoji) {\n if ($c84d045dcc34faf5$var$CACHE.has(emoji)) return $c84d045dcc34faf5$var$CACHE.get(emoji);\n const supported = $c84d045dcc34faf5$var$isEmojiSupported(emoji);\n $c84d045dcc34faf5$var$CACHE.set(emoji, supported);\n return supported;\n}\n// https://github.com/koala-interactive/is-emoji-supported\nconst $c84d045dcc34faf5$var$isEmojiSupported = (()=>{\n let ctx = null;\n try {\n if (!navigator.userAgent.includes(\"jsdom\")) ctx = document.createElement(\"canvas\").getContext(\"2d\", {\n willReadFrequently: true\n });\n } catch {}\n // Not in browser env\n if (!ctx) return ()=>false;\n const CANVAS_HEIGHT = 25;\n const CANVAS_WIDTH = 20;\n const textSize = Math.floor(CANVAS_HEIGHT / 2);\n // Initialize convas context\n ctx.font = textSize + \"px Arial, Sans-Serif\";\n ctx.textBaseline = \"top\";\n ctx.canvas.width = CANVAS_WIDTH * 2;\n ctx.canvas.height = CANVAS_HEIGHT;\n return (unicode)=>{\n ctx.clearRect(0, 0, CANVAS_WIDTH * 2, CANVAS_HEIGHT);\n // Draw in red on the left\n ctx.fillStyle = \"#FF0000\";\n ctx.fillText(unicode, 0, 22);\n // Draw in blue on right\n ctx.fillStyle = \"#0000FF\";\n ctx.fillText(unicode, CANVAS_WIDTH, 22);\n const a = ctx.getImageData(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT).data;\n const count = a.length;\n let i = 0;\n // Search the first visible pixel\n for(; i < count && !a[i + 3]; i += 4);\n // No visible pixel\n if (i >= count) return false;\n // Emoji has immutable color, so we check the color of the emoji in two different colors\n // the result show be the same.\n const x = CANVAS_WIDTH + i / 4 % CANVAS_WIDTH;\n const y = Math.floor(i / 4 / CANVAS_WIDTH);\n const b = ctx.getImageData(x, y, 1, 1).data;\n if (a[i] !== b[0] || a[i + 2] !== b[2]) return false;\n // Some emojis are a contraction of different ones, so if it's not\n // supported, it will show multiple characters\n if (ctx.measureText(unicode).width >= CANVAS_WIDTH) return false;\n // Supported\n return true;\n };\n})();\nvar $c84d045dcc34faf5$export$2e2bcd8739ae039 = {\n latestVersion: $c84d045dcc34faf5$var$latestVersion,\n noCountryFlags: $c84d045dcc34faf5$var$noCountryFlags\n};\n\n\n\nconst $b22cfd0a55410b4f$var$DEFAULTS = [\n \"+1\",\n \"grinning\",\n \"kissing_heart\",\n \"heart_eyes\",\n \"laughing\",\n \"stuck_out_tongue_winking_eye\",\n \"sweat_smile\",\n \"joy\",\n \"scream\",\n \"disappointed\",\n \"unamused\",\n \"weary\",\n \"sob\",\n \"sunglasses\",\n \"heart\", \n];\nlet $b22cfd0a55410b4f$var$Index = null;\nfunction $b22cfd0a55410b4f$var$add(emoji) {\n $b22cfd0a55410b4f$var$Index || ($b22cfd0a55410b4f$var$Index = (0, $f72b75cf796873c7$export$2e2bcd8739ae039).get(\"frequently\") || {});\n const emojiId = emoji.id || emoji;\n if (!emojiId) return;\n $b22cfd0a55410b4f$var$Index[emojiId] || ($b22cfd0a55410b4f$var$Index[emojiId] = 0);\n $b22cfd0a55410b4f$var$Index[emojiId] += 1;\n (0, $f72b75cf796873c7$export$2e2bcd8739ae039).set(\"last\", emojiId);\n (0, $f72b75cf796873c7$export$2e2bcd8739ae039).set(\"frequently\", $b22cfd0a55410b4f$var$Index);\n}\nfunction $b22cfd0a55410b4f$var$get({ maxFrequentRows: maxFrequentRows , perLine: perLine }) {\n if (!maxFrequentRows) return [];\n $b22cfd0a55410b4f$var$Index || ($b22cfd0a55410b4f$var$Index = (0, $f72b75cf796873c7$export$2e2bcd8739ae039).get(\"frequently\"));\n let emojiIds = [];\n if (!$b22cfd0a55410b4f$var$Index) {\n $b22cfd0a55410b4f$var$Index = {};\n for(let i in $b22cfd0a55410b4f$var$DEFAULTS.slice(0, perLine)){\n const emojiId = $b22cfd0a55410b4f$var$DEFAULTS[i];\n $b22cfd0a55410b4f$var$Index[emojiId] = perLine - i;\n emojiIds.push(emojiId);\n }\n return emojiIds;\n }\n const max = maxFrequentRows * perLine;\n const last = (0, $f72b75cf796873c7$export$2e2bcd8739ae039).get(\"last\");\n for(let emojiId in $b22cfd0a55410b4f$var$Index)emojiIds.push(emojiId);\n emojiIds.sort((a, b)=>{\n const aScore = $b22cfd0a55410b4f$var$Index[b];\n const bScore = $b22cfd0a55410b4f$var$Index[a];\n if (aScore == bScore) return a.localeCompare(b);\n return aScore - bScore;\n });\n if (emojiIds.length > max) {\n const removedIds = emojiIds.slice(max);\n emojiIds = emojiIds.slice(0, max);\n for (let removedId of removedIds){\n if (removedId == last) continue;\n delete $b22cfd0a55410b4f$var$Index[removedId];\n }\n if (last && emojiIds.indexOf(last) == -1) {\n delete $b22cfd0a55410b4f$var$Index[emojiIds[emojiIds.length - 1]];\n emojiIds.splice(-1, 1, last);\n }\n (0, $f72b75cf796873c7$export$2e2bcd8739ae039).set(\"frequently\", $b22cfd0a55410b4f$var$Index);\n }\n return emojiIds;\n}\nvar $b22cfd0a55410b4f$export$2e2bcd8739ae039 = {\n add: $b22cfd0a55410b4f$var$add,\n get: $b22cfd0a55410b4f$var$get,\n DEFAULTS: $b22cfd0a55410b4f$var$DEFAULTS\n};\n\n\nvar $8d50d93417ef682a$exports = {};\n$8d50d93417ef682a$exports = JSON.parse('{\"search\":\"Search\",\"search_no_results_1\":\"Oh no!\",\"search_no_results_2\":\"That emoji couldn\\u2019t be found\",\"pick\":\"Pick an emoji\\u2026\",\"add_custom\":\"Add custom emoji\",\"categories\":{\"activity\":\"Activity\",\"custom\":\"Custom\",\"flags\":\"Flags\",\"foods\":\"Food & Drink\",\"frequent\":\"Frequently used\",\"nature\":\"Animals & Nature\",\"objects\":\"Objects\",\"people\":\"Smileys & People\",\"places\":\"Travel & Places\",\"search\":\"Search Results\",\"symbols\":\"Symbols\"},\"skins\":{\"1\":\"Default\",\"2\":\"Light\",\"3\":\"Medium-Light\",\"4\":\"Medium\",\"5\":\"Medium-Dark\",\"6\":\"Dark\",\"choose\":\"Choose default skin tone\"}}');\n\n\nvar $b247ea80b67298d5$export$2e2bcd8739ae039 = {\n autoFocus: {\n value: false\n },\n dynamicWidth: {\n value: false\n },\n emojiButtonColors: {\n value: null\n },\n emojiButtonRadius: {\n value: \"100%\"\n },\n emojiButtonSize: {\n value: 36\n },\n emojiSize: {\n value: 24\n },\n emojiVersion: {\n value: 15,\n choices: [\n 1,\n 2,\n 3,\n 4,\n 5,\n 11,\n 12,\n 12.1,\n 13,\n 13.1,\n 14,\n 15\n ]\n },\n exceptEmojis: {\n value: []\n },\n icons: {\n value: \"auto\",\n choices: [\n \"auto\",\n \"outline\",\n \"solid\"\n ]\n },\n locale: {\n value: \"en\",\n choices: [\n \"en\",\n \"ar\",\n \"be\",\n \"cs\",\n \"de\",\n \"es\",\n \"fa\",\n \"fi\",\n \"fr\",\n \"hi\",\n \"it\",\n \"ja\",\n \"ko\",\n \"nl\",\n \"pl\",\n \"pt\",\n \"ru\",\n \"sa\",\n \"tr\",\n \"uk\",\n \"vi\",\n \"zh\", \n ]\n },\n maxFrequentRows: {\n value: 4\n },\n navPosition: {\n value: \"top\",\n choices: [\n \"top\",\n \"bottom\",\n \"none\"\n ]\n },\n noCountryFlags: {\n value: false\n },\n noResultsEmoji: {\n value: null\n },\n perLine: {\n value: 9\n },\n previewEmoji: {\n value: null\n },\n previewPosition: {\n value: \"bottom\",\n choices: [\n \"top\",\n \"bottom\",\n \"none\"\n ]\n },\n searchPosition: {\n value: \"sticky\",\n choices: [\n \"sticky\",\n \"static\",\n \"none\"\n ]\n },\n set: {\n value: \"native\",\n choices: [\n \"native\",\n \"apple\",\n \"facebook\",\n \"google\",\n \"twitter\"\n ]\n },\n skin: {\n value: 1,\n choices: [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ]\n },\n skinTonePosition: {\n value: \"preview\",\n choices: [\n \"preview\",\n \"search\",\n \"none\"\n ]\n },\n theme: {\n value: \"auto\",\n choices: [\n \"auto\",\n \"light\",\n \"dark\"\n ]\n },\n // Data\n categories: null,\n categoryIcons: null,\n custom: null,\n data: null,\n i18n: null,\n // Callbacks\n getImageURL: null,\n getSpritesheetURL: null,\n onAddCustomEmoji: null,\n onClickOutside: null,\n onEmojiSelect: null,\n // Deprecated\n stickySearch: {\n deprecated: true,\n value: true\n }\n};\n\n\n\nlet $7adb23b0109cc36a$export$dbe3113d60765c1a = null;\nlet $7adb23b0109cc36a$export$2d0294657ab35f1b = null;\nconst $7adb23b0109cc36a$var$fetchCache = {};\nasync function $7adb23b0109cc36a$var$fetchJSON(src) {\n if ($7adb23b0109cc36a$var$fetchCache[src]) return $7adb23b0109cc36a$var$fetchCache[src];\n const response = await fetch(src);\n const json = await response.json();\n $7adb23b0109cc36a$var$fetchCache[src] = json;\n return json;\n}\nlet $7adb23b0109cc36a$var$promise = null;\nlet $7adb23b0109cc36a$var$initiated = false;\nlet $7adb23b0109cc36a$var$initCallback = null;\nlet $7adb23b0109cc36a$var$initialized = false;\nfunction $7adb23b0109cc36a$export$2cd8252107eb640b(options, { caller: caller } = {}) {\n $7adb23b0109cc36a$var$promise || ($7adb23b0109cc36a$var$promise = new Promise((resolve)=>{\n $7adb23b0109cc36a$var$initCallback = resolve;\n }));\n if (options) $7adb23b0109cc36a$var$_init(options);\n else if (caller && !$7adb23b0109cc36a$var$initialized) console.warn(`\\`${caller}\\` requires data to be initialized first. Promise will be pending until \\`init\\` is called.`);\n return $7adb23b0109cc36a$var$promise;\n}\nasync function $7adb23b0109cc36a$var$_init(props) {\n $7adb23b0109cc36a$var$initialized = true;\n let { emojiVersion: emojiVersion , set: set , locale: locale } = props;\n emojiVersion || (emojiVersion = (0, $b247ea80b67298d5$export$2e2bcd8739ae039).emojiVersion.value);\n set || (set = (0, $b247ea80b67298d5$export$2e2bcd8739ae039).set.value);\n locale || (locale = (0, $b247ea80b67298d5$export$2e2bcd8739ae039).locale.value);\n if (!$7adb23b0109cc36a$export$2d0294657ab35f1b) {\n $7adb23b0109cc36a$export$2d0294657ab35f1b = (typeof props.data === \"function\" ? await props.data() : props.data) || await $7adb23b0109cc36a$var$fetchJSON(`https://cdn.jsdelivr.net/npm/@emoji-mart/data@latest/sets/${emojiVersion}/${set}.json`);\n $7adb23b0109cc36a$export$2d0294657ab35f1b.emoticons = {};\n $7adb23b0109cc36a$export$2d0294657ab35f1b.natives = {};\n $7adb23b0109cc36a$export$2d0294657ab35f1b.categories.unshift({\n id: \"frequent\",\n emojis: []\n });\n for(const alias in $7adb23b0109cc36a$export$2d0294657ab35f1b.aliases){\n const emojiId = $7adb23b0109cc36a$export$2d0294657ab35f1b.aliases[alias];\n const emoji = $7adb23b0109cc36a$export$2d0294657ab35f1b.emojis[emojiId];\n if (!emoji) continue;\n emoji.aliases || (emoji.aliases = []);\n emoji.aliases.push(alias);\n }\n $7adb23b0109cc36a$export$2d0294657ab35f1b.originalCategories = $7adb23b0109cc36a$export$2d0294657ab35f1b.categories;\n } else $7adb23b0109cc36a$export$2d0294657ab35f1b.categories = $7adb23b0109cc36a$export$2d0294657ab35f1b.categories.filter((c)=>{\n const isCustom = !!c.name;\n if (!isCustom) return true;\n return false;\n });\n $7adb23b0109cc36a$export$dbe3113d60765c1a = (typeof props.i18n === \"function\" ? await props.i18n() : props.i18n) || (locale == \"en\" ? (0, (/*@__PURE__*/$parcel$interopDefault($8d50d93417ef682a$exports))) : await $7adb23b0109cc36a$var$fetchJSON(`https://cdn.jsdelivr.net/npm/@emoji-mart/data@latest/i18n/${locale}.json`));\n if (props.custom) for(let i in props.custom){\n i = parseInt(i);\n const category = props.custom[i];\n const prevCategory = props.custom[i - 1];\n if (!category.emojis || !category.emojis.length) continue;\n category.id || (category.id = `custom_${i + 1}`);\n category.name || (category.name = $7adb23b0109cc36a$export$dbe3113d60765c1a.categories.custom);\n if (prevCategory && !category.icon) category.target = prevCategory.target || prevCategory;\n $7adb23b0109cc36a$export$2d0294657ab35f1b.categories.push(category);\n for (const emoji of category.emojis)$7adb23b0109cc36a$export$2d0294657ab35f1b.emojis[emoji.id] = emoji;\n }\n if (props.categories) $7adb23b0109cc36a$export$2d0294657ab35f1b.categories = $7adb23b0109cc36a$export$2d0294657ab35f1b.originalCategories.filter((c)=>{\n return props.categories.indexOf(c.id) != -1;\n }).sort((c1, c2)=>{\n const i1 = props.categories.indexOf(c1.id);\n const i2 = props.categories.indexOf(c2.id);\n return i1 - i2;\n });\n let latestVersionSupport = null;\n let noCountryFlags = null;\n if (set == \"native\") {\n latestVersionSupport = (0, $c84d045dcc34faf5$export$2e2bcd8739ae039).latestVersion();\n noCountryFlags = props.noCountryFlags || (0, $c84d045dcc34faf5$export$2e2bcd8739ae039).noCountryFlags();\n }\n let categoryIndex = $7adb23b0109cc36a$export$2d0294657ab35f1b.categories.length;\n let resetSearchIndex = false;\n while(categoryIndex--){\n const category = $7adb23b0109cc36a$export$2d0294657ab35f1b.categories[categoryIndex];\n if (category.id == \"frequent\") {\n let { maxFrequentRows: maxFrequentRows , perLine: perLine } = props;\n maxFrequentRows = maxFrequentRows >= 0 ? maxFrequentRows : (0, $b247ea80b67298d5$export$2e2bcd8739ae039).maxFrequentRows.value;\n perLine || (perLine = (0, $b247ea80b67298d5$export$2e2bcd8739ae039).perLine.value);\n category.emojis = (0, $b22cfd0a55410b4f$export$2e2bcd8739ae039).get({\n maxFrequentRows: maxFrequentRows,\n perLine: perLine\n });\n }\n if (!category.emojis || !category.emojis.length) {\n $7adb23b0109cc36a$export$2d0294657ab35f1b.categories.splice(categoryIndex, 1);\n continue;\n }\n const { categoryIcons: categoryIcons } = props;\n if (categoryIcons) {\n const icon = categoryIcons[category.id];\n if (icon && !category.icon) category.icon = icon;\n }\n let emojiIndex = category.emojis.length;\n while(emojiIndex--){\n const emojiId = category.emojis[emojiIndex];\n const emoji = emojiId.id ? emojiId : $7adb23b0109cc36a$export$2d0294657ab35f1b.emojis[emojiId];\n const ignore = ()=>{\n category.emojis.splice(emojiIndex, 1);\n };\n if (!emoji || props.exceptEmojis && props.exceptEmojis.includes(emoji.id)) {\n ignore();\n continue;\n }\n if (latestVersionSupport && emoji.version > latestVersionSupport) {\n ignore();\n continue;\n }\n if (noCountryFlags && category.id == \"flags\") {\n if (!(0, $e6eae5155b87f591$export$bcb25aa587e9cb13).includes(emoji.id)) {\n ignore();\n continue;\n }\n }\n if (!emoji.search) {\n resetSearchIndex = true;\n emoji.search = \",\" + [\n [\n emoji.id,\n false\n ],\n [\n emoji.name,\n true\n ],\n [\n emoji.keywords,\n false\n ],\n [\n emoji.emoticons,\n false\n ], \n ].map(([strings, split])=>{\n if (!strings) return;\n return (Array.isArray(strings) ? strings : [\n strings\n ]).map((string)=>{\n return (split ? string.split(/[-|_|\\s]+/) : [\n string\n ]).map((s)=>s.toLowerCase());\n }).flat();\n }).flat().filter((a)=>a && a.trim()).join(\",\");\n if (emoji.emoticons) for (const emoticon of emoji.emoticons){\n if ($7adb23b0109cc36a$export$2d0294657ab35f1b.emoticons[emoticon]) continue;\n $7adb23b0109cc36a$export$2d0294657ab35f1b.emoticons[emoticon] = emoji.id;\n }\n let skinIndex = 0;\n for (const skin of emoji.skins){\n if (!skin) continue;\n skinIndex++;\n const { native: native } = skin;\n if (native) {\n $7adb23b0109cc36a$export$2d0294657ab35f1b.natives[native] = emoji.id;\n emoji.search += `,${native}`;\n }\n const skinShortcodes = skinIndex == 1 ? \"\" : `:skin-tone-${skinIndex}:`;\n skin.shortcodes = `:${emoji.id}:${skinShortcodes}`;\n }\n }\n }\n }\n if (resetSearchIndex) (0, $c4d155af13ad4d4b$export$2e2bcd8739ae039).reset();\n $7adb23b0109cc36a$var$initCallback();\n}\nfunction $7adb23b0109cc36a$export$75fe5f91d452f94b(props, defaultProps, element) {\n props || (props = {});\n const _props = {};\n for(let k in defaultProps)_props[k] = $7adb23b0109cc36a$export$88c9ddb45cea7241(k, props, defaultProps, element);\n return _props;\n}\nfunction $7adb23b0109cc36a$export$88c9ddb45cea7241(propName, props, defaultProps, element) {\n const defaults = defaultProps[propName];\n let value = element && element.getAttribute(propName) || (props[propName] != null && props[propName] != undefined ? props[propName] : null);\n if (!defaults) return value;\n if (value != null && defaults.value && typeof defaults.value != typeof value) {\n if (typeof defaults.value == \"boolean\") value = value == \"false\" ? false : true;\n else value = defaults.value.constructor(value);\n }\n if (defaults.transform && value) value = defaults.transform(value);\n if (value == null || defaults.choices && defaults.choices.indexOf(value) == -1) value = defaults.value;\n return value;\n}\n\n\nconst $c4d155af13ad4d4b$var$SHORTCODES_REGEX = /^(?:\\:([^\\:]+)\\:)(?:\\:skin-tone-(\\d)\\:)?$/;\nlet $c4d155af13ad4d4b$var$Pool = null;\nfunction $c4d155af13ad4d4b$var$get(emojiId) {\n if (emojiId.id) return emojiId;\n return (0, $7adb23b0109cc36a$export$2d0294657ab35f1b).emojis[emojiId] || (0, $7adb23b0109cc36a$export$2d0294657ab35f1b).emojis[(0, $7adb23b0109cc36a$export$2d0294657ab35f1b).aliases[emojiId]] || (0, $7adb23b0109cc36a$export$2d0294657ab35f1b).emojis[(0, $7adb23b0109cc36a$export$2d0294657ab35f1b).natives[emojiId]];\n}\nfunction $c4d155af13ad4d4b$var$reset() {\n $c4d155af13ad4d4b$var$Pool = null;\n}\nasync function $c4d155af13ad4d4b$var$search(value, { maxResults: maxResults , caller: caller } = {}) {\n if (!value || !value.trim().length) return null;\n maxResults || (maxResults = 90);\n await (0, $7adb23b0109cc36a$export$2cd8252107eb640b)(null, {\n caller: caller || \"SearchIndex.search\"\n });\n const values = value.toLowerCase().replace(/(\\w)-/, \"$1 \").split(/[\\s|,]+/).filter((word, i, words)=>{\n return word.trim() && words.indexOf(word) == i;\n });\n if (!values.length) return;\n let pool = $c4d155af13ad4d4b$var$Pool || ($c4d155af13ad4d4b$var$Pool = Object.values((0, $7adb23b0109cc36a$export$2d0294657ab35f1b).emojis));\n let results, scores;\n for (const value1 of values){\n if (!pool.length) break;\n results = [];\n scores = {};\n for (const emoji of pool){\n if (!emoji.search) continue;\n const score = emoji.search.indexOf(`,${value1}`);\n if (score == -1) continue;\n results.push(emoji);\n scores[emoji.id] || (scores[emoji.id] = 0);\n scores[emoji.id] += emoji.id == value1 ? 0 : score + 1;\n }\n pool = results;\n }\n if (results.length < 2) return results;\n results.sort((a, b)=>{\n const aScore = scores[a.id];\n const bScore = scores[b.id];\n if (aScore == bScore) return a.id.localeCompare(b.id);\n return aScore - bScore;\n });\n if (results.length > maxResults) results = results.slice(0, maxResults);\n return results;\n}\nvar $c4d155af13ad4d4b$export$2e2bcd8739ae039 = {\n search: $c4d155af13ad4d4b$var$search,\n get: $c4d155af13ad4d4b$var$get,\n reset: $c4d155af13ad4d4b$var$reset,\n SHORTCODES_REGEX: $c4d155af13ad4d4b$var$SHORTCODES_REGEX\n};\n\n\nconst $e6eae5155b87f591$export$bcb25aa587e9cb13 = [\n \"checkered_flag\",\n \"crossed_flags\",\n \"pirate_flag\",\n \"rainbow-flag\",\n \"transgender_flag\",\n \"triangular_flag_on_post\",\n \"waving_black_flag\",\n \"waving_white_flag\", \n];\n\n\nfunction $693b183b0a78708f$export$9cb4719e2e525b7a(a, b) {\n return Array.isArray(a) && Array.isArray(b) && a.length === b.length && a.every((val, index)=>val == b[index]);\n}\nasync function $693b183b0a78708f$export$e772c8ff12451969(frames = 1) {\n for(let _ in [\n ...Array(frames).keys()\n ])await new Promise(requestAnimationFrame);\n}\nfunction $693b183b0a78708f$export$d10ac59fbe52a745(emoji, { skinIndex: skinIndex = 0 } = {}) {\n const skin = emoji.skins[skinIndex] || (()=>{\n skinIndex = 0;\n return emoji.skins[skinIndex];\n })();\n const emojiData = {\n id: emoji.id,\n name: emoji.name,\n native: skin.native,\n unified: skin.unified,\n keywords: emoji.keywords,\n shortcodes: skin.shortcodes || emoji.shortcodes\n };\n if (emoji.skins.length > 1) emojiData.skin = skinIndex + 1;\n if (skin.src) emojiData.src = skin.src;\n if (emoji.aliases && emoji.aliases.length) emojiData.aliases = emoji.aliases;\n if (emoji.emoticons && emoji.emoticons.length) emojiData.emoticons = emoji.emoticons;\n return emojiData;\n}\nasync function $693b183b0a78708f$export$5ef5574deca44bc0(nativeString) {\n const results = await (0, $c4d155af13ad4d4b$export$2e2bcd8739ae039).search(nativeString, {\n maxResults: 1,\n caller: \"getEmojiDataFromNative\"\n });\n if (!results || !results.length) return null;\n const emoji = results[0];\n let skinIndex = 0;\n for (let skin of emoji.skins){\n if (skin.native == nativeString) break;\n skinIndex++;\n }\n return $693b183b0a78708f$export$d10ac59fbe52a745(emoji, {\n skinIndex: skinIndex\n });\n}\n\n\n\n\n\nconst $fcccfb36ed0cde68$var$categories = {\n activity: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12 6.628 0 12-5.373 12-12 0-6.628-5.372-12-12-12m9.949 11H17.05c.224-2.527 1.232-4.773 1.968-6.113A9.966 9.966 0 0 1 21.949 11M13 11V2.051a9.945 9.945 0 0 1 4.432 1.564c-.858 1.491-2.156 4.22-2.392 7.385H13zm-2 0H8.961c-.238-3.165-1.536-5.894-2.393-7.385A9.95 9.95 0 0 1 11 2.051V11zm0 2v8.949a9.937 9.937 0 0 1-4.432-1.564c.857-1.492 2.155-4.221 2.393-7.385H11zm4.04 0c.236 3.164 1.534 5.893 2.392 7.385A9.92 9.92 0 0 1 13 21.949V13h2.04zM4.982 4.887C5.718 6.227 6.726 8.473 6.951 11h-4.9a9.977 9.977 0 0 1 2.931-6.113M2.051 13h4.9c-.226 2.527-1.233 4.771-1.969 6.113A9.972 9.972 0 0 1 2.051 13m16.967 6.113c-.735-1.342-1.744-3.586-1.968-6.113h4.899a9.961 9.961 0 0 1-2.931 6.113\"\n })\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M16.17 337.5c0 44.98 7.565 83.54 13.98 107.9C35.22 464.3 50.46 496 174.9 496c9.566 0 19.59-.4707 29.84-1.271L17.33 307.3C16.53 317.6 16.17 327.7 16.17 337.5zM495.8 174.5c0-44.98-7.565-83.53-13.98-107.9c-4.688-17.54-18.34-31.23-36.04-35.95C435.5 27.91 392.9 16 337 16c-9.564 0-19.59 .4707-29.84 1.271l187.5 187.5C495.5 194.4 495.8 184.3 495.8 174.5zM26.77 248.8l236.3 236.3c142-36.1 203.9-150.4 222.2-221.1L248.9 26.87C106.9 62.96 45.07 177.2 26.77 248.8zM256 335.1c0 9.141-7.474 16-16 16c-4.094 0-8.188-1.564-11.31-4.689L164.7 283.3C161.6 280.2 160 276.1 160 271.1c0-8.529 6.865-16 16-16c4.095 0 8.189 1.562 11.31 4.688l64.01 64C254.4 327.8 256 331.9 256 335.1zM304 287.1c0 9.141-7.474 16-16 16c-4.094 0-8.188-1.564-11.31-4.689L212.7 235.3C209.6 232.2 208 228.1 208 223.1c0-9.141 7.473-16 16-16c4.094 0 8.188 1.562 11.31 4.688l64.01 64.01C302.5 279.8 304 283.9 304 287.1zM256 175.1c0-9.141 7.473-16 16-16c4.094 0 8.188 1.562 11.31 4.688l64.01 64.01c3.125 3.125 4.688 7.219 4.688 11.31c0 9.133-7.468 16-16 16c-4.094 0-8.189-1.562-11.31-4.688l-64.01-64.01C257.6 184.2 256 180.1 256 175.1z\"\n })\n })\n },\n custom: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 448 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M417.1 368c-5.937 10.27-16.69 16-27.75 16c-5.422 0-10.92-1.375-15.97-4.281L256 311.4V448c0 17.67-14.33 32-31.1 32S192 465.7 192 448V311.4l-118.3 68.29C68.67 382.6 63.17 384 57.75 384c-11.06 0-21.81-5.734-27.75-16c-8.828-15.31-3.594-34.88 11.72-43.72L159.1 256L41.72 187.7C26.41 178.9 21.17 159.3 29.1 144C36.63 132.5 49.26 126.7 61.65 128.2C65.78 128.7 69.88 130.1 73.72 132.3L192 200.6V64c0-17.67 14.33-32 32-32S256 46.33 256 64v136.6l118.3-68.29c3.838-2.213 7.939-3.539 12.07-4.051C398.7 126.7 411.4 132.5 417.1 144c8.828 15.31 3.594 34.88-11.72 43.72L288 256l118.3 68.28C421.6 333.1 426.8 352.7 417.1 368z\"\n })\n }),\n flags: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M0 0l6.084 24H8L1.916 0zM21 5h-4l-1-4H4l3 12h3l1 4h13L21 5zM6.563 3h7.875l2 8H8.563l-2-8zm8.832 10l-2.856 1.904L12.063 13h3.332zM19 13l-1.5-6h1.938l2 8H16l3-2z\"\n })\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M64 496C64 504.8 56.75 512 48 512h-32C7.25 512 0 504.8 0 496V32c0-17.75 14.25-32 32-32s32 14.25 32 32V496zM476.3 0c-6.365 0-13.01 1.35-19.34 4.233c-45.69 20.86-79.56 27.94-107.8 27.94c-59.96 0-94.81-31.86-163.9-31.87C160.9 .3055 131.6 4.867 96 15.75v350.5c32-9.984 59.87-14.1 84.85-14.1c73.63 0 124.9 31.78 198.6 31.78c31.91 0 68.02-5.971 111.1-23.09C504.1 355.9 512 344.4 512 332.1V30.73C512 11.1 495.3 0 476.3 0z\"\n })\n })\n },\n foods: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M17 4.978c-1.838 0-2.876.396-3.68.934.513-1.172 1.768-2.934 4.68-2.934a1 1 0 0 0 0-2c-2.921 0-4.629 1.365-5.547 2.512-.064.078-.119.162-.18.244C11.73 1.838 10.798.023 9.207.023 8.579.022 7.85.306 7 .978 5.027 2.54 5.329 3.902 6.492 4.999 3.609 5.222 0 7.352 0 12.969c0 4.582 4.961 11.009 9 11.009 1.975 0 2.371-.486 3-1 .629.514 1.025 1 3 1 4.039 0 9-6.418 9-11 0-5.953-4.055-8-7-8M8.242 2.546c.641-.508.943-.523.965-.523.426.169.975 1.405 1.357 3.055-1.527-.629-2.741-1.352-2.98-1.846.059-.112.241-.356.658-.686M15 21.978c-1.08 0-1.21-.109-1.559-.402l-.176-.146c-.367-.302-.816-.452-1.266-.452s-.898.15-1.266.452l-.176.146c-.347.292-.477.402-1.557.402-2.813 0-7-5.389-7-9.009 0-5.823 4.488-5.991 5-5.991 1.939 0 2.484.471 3.387 1.251l.323.276a1.995 1.995 0 0 0 2.58 0l.323-.276c.902-.78 1.447-1.251 3.387-1.251.512 0 5 .168 5 6 0 3.617-4.187 9-7 9\"\n })\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M481.9 270.1C490.9 279.1 496 291.3 496 304C496 316.7 490.9 328.9 481.9 337.9C472.9 346.9 460.7 352 448 352H64C51.27 352 39.06 346.9 30.06 337.9C21.06 328.9 16 316.7 16 304C16 291.3 21.06 279.1 30.06 270.1C39.06 261.1 51.27 256 64 256H448C460.7 256 472.9 261.1 481.9 270.1zM475.3 388.7C478.3 391.7 480 395.8 480 400V416C480 432.1 473.3 449.3 461.3 461.3C449.3 473.3 432.1 480 416 480H96C79.03 480 62.75 473.3 50.75 461.3C38.74 449.3 32 432.1 32 416V400C32 395.8 33.69 391.7 36.69 388.7C39.69 385.7 43.76 384 48 384H464C468.2 384 472.3 385.7 475.3 388.7zM50.39 220.8C45.93 218.6 42.03 215.5 38.97 211.6C35.91 207.7 33.79 203.2 32.75 198.4C31.71 193.5 31.8 188.5 32.99 183.7C54.98 97.02 146.5 32 256 32C365.5 32 457 97.02 479 183.7C480.2 188.5 480.3 193.5 479.2 198.4C478.2 203.2 476.1 207.7 473 211.6C469.1 215.5 466.1 218.6 461.6 220.8C457.2 222.9 452.3 224 447.3 224H64.67C59.73 224 54.84 222.9 50.39 220.8zM372.7 116.7C369.7 119.7 368 123.8 368 128C368 131.2 368.9 134.3 370.7 136.9C372.5 139.5 374.1 141.6 377.9 142.8C380.8 143.1 384 144.3 387.1 143.7C390.2 143.1 393.1 141.6 395.3 139.3C397.6 137.1 399.1 134.2 399.7 131.1C400.3 128 399.1 124.8 398.8 121.9C397.6 118.1 395.5 116.5 392.9 114.7C390.3 112.9 387.2 111.1 384 111.1C379.8 111.1 375.7 113.7 372.7 116.7V116.7zM244.7 84.69C241.7 87.69 240 91.76 240 96C240 99.16 240.9 102.3 242.7 104.9C244.5 107.5 246.1 109.6 249.9 110.8C252.8 111.1 256 112.3 259.1 111.7C262.2 111.1 265.1 109.6 267.3 107.3C269.6 105.1 271.1 102.2 271.7 99.12C272.3 96.02 271.1 92.8 270.8 89.88C269.6 86.95 267.5 84.45 264.9 82.7C262.3 80.94 259.2 79.1 256 79.1C251.8 79.1 247.7 81.69 244.7 84.69V84.69zM116.7 116.7C113.7 119.7 112 123.8 112 128C112 131.2 112.9 134.3 114.7 136.9C116.5 139.5 118.1 141.6 121.9 142.8C124.8 143.1 128 144.3 131.1 143.7C134.2 143.1 137.1 141.6 139.3 139.3C141.6 137.1 143.1 134.2 143.7 131.1C144.3 128 143.1 124.8 142.8 121.9C141.6 118.1 139.5 116.5 136.9 114.7C134.3 112.9 131.2 111.1 128 111.1C123.8 111.1 119.7 113.7 116.7 116.7L116.7 116.7z\"\n })\n })\n },\n frequent: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M13 4h-2l-.001 7H9v2h2v2h2v-2h4v-2h-4z\"\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"\n })\n ]\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512zM232 256C232 264 236 271.5 242.7 275.1L338.7 339.1C349.7 347.3 364.6 344.3 371.1 333.3C379.3 322.3 376.3 307.4 365.3 300L280 243.2V120C280 106.7 269.3 96 255.1 96C242.7 96 231.1 106.7 231.1 120L232 256z\"\n })\n })\n },\n nature: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M15.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 15.5 8M8.5 8a1.5 1.5 0 1 0 .001 3.001A1.5 1.5 0 0 0 8.5 8\"\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M18.933 0h-.027c-.97 0-2.138.787-3.018 1.497-1.274-.374-2.612-.51-3.887-.51-1.285 0-2.616.133-3.874.517C7.245.79 6.069 0 5.093 0h-.027C3.352 0 .07 2.67.002 7.026c-.039 2.479.276 4.238 1.04 5.013.254.258.882.677 1.295.882.191 3.177.922 5.238 2.536 6.38.897.637 2.187.949 3.2 1.102C8.04 20.6 8 20.795 8 21c0 1.773 2.35 3 4 3 1.648 0 4-1.227 4-3 0-.201-.038-.393-.072-.586 2.573-.385 5.435-1.877 5.925-7.587.396-.22.887-.568 1.104-.788.763-.774 1.079-2.534 1.04-5.013C23.929 2.67 20.646 0 18.933 0M3.223 9.135c-.237.281-.837 1.155-.884 1.238-.15-.41-.368-1.349-.337-3.291.051-3.281 2.478-4.972 3.091-5.031.256.015.731.27 1.265.646-1.11 1.171-2.275 2.915-2.352 5.125-.133.546-.398.858-.783 1.313M12 22c-.901 0-1.954-.693-2-1 0-.654.475-1.236 1-1.602V20a1 1 0 1 0 2 0v-.602c.524.365 1 .947 1 1.602-.046.307-1.099 1-2 1m3-3.48v.02a4.752 4.752 0 0 0-1.262-1.02c1.092-.516 2.239-1.334 2.239-2.217 0-1.842-1.781-2.195-3.977-2.195-2.196 0-3.978.354-3.978 2.195 0 .883 1.148 1.701 2.238 2.217A4.8 4.8 0 0 0 9 18.539v-.025c-1-.076-2.182-.281-2.973-.842-1.301-.92-1.838-3.045-1.853-6.478l.023-.041c.496-.826 1.49-1.45 1.804-3.102 0-2.047 1.357-3.631 2.362-4.522C9.37 3.178 10.555 3 11.948 3c1.447 0 2.685.192 3.733.57 1 .9 2.316 2.465 2.316 4.48.313 1.651 1.307 2.275 1.803 3.102.035.058.068.117.102.178-.059 5.967-1.949 7.01-4.902 7.19m6.628-8.202c-.037-.065-.074-.13-.113-.195a7.587 7.587 0 0 0-.739-.987c-.385-.455-.648-.768-.782-1.313-.076-2.209-1.241-3.954-2.353-5.124.531-.376 1.004-.63 1.261-.647.636.071 3.044 1.764 3.096 5.031.027 1.81-.347 3.218-.37 3.235\"\n })\n ]\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 576 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M332.7 19.85C334.6 8.395 344.5 0 356.1 0C363.6 0 370.6 3.52 375.1 9.502L392 32H444.1C456.8 32 469.1 37.06 478.1 46.06L496 64H552C565.3 64 576 74.75 576 88V112C576 156.2 540.2 192 496 192H426.7L421.6 222.5L309.6 158.5L332.7 19.85zM448 64C439.2 64 432 71.16 432 80C432 88.84 439.2 96 448 96C456.8 96 464 88.84 464 80C464 71.16 456.8 64 448 64zM416 256.1V480C416 497.7 401.7 512 384 512H352C334.3 512 320 497.7 320 480V364.8C295.1 377.1 268.8 384 240 384C211.2 384 184 377.1 160 364.8V480C160 497.7 145.7 512 128 512H96C78.33 512 64 497.7 64 480V249.8C35.23 238.9 12.64 214.5 4.836 183.3L.9558 167.8C-3.331 150.6 7.094 133.2 24.24 128.1C41.38 124.7 58.76 135.1 63.05 152.2L66.93 167.8C70.49 182 83.29 191.1 97.97 191.1H303.8L416 256.1z\"\n })\n })\n },\n objects: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M12 0a9 9 0 0 0-5 16.482V21s2.035 3 5 3 5-3 5-3v-4.518A9 9 0 0 0 12 0zm0 2c3.86 0 7 3.141 7 7s-3.14 7-7 7-7-3.141-7-7 3.14-7 7-7zM9 17.477c.94.332 1.946.523 3 .523s2.06-.19 3-.523v.834c-.91.436-1.925.689-3 .689a6.924 6.924 0 0 1-3-.69v-.833zm.236 3.07A8.854 8.854 0 0 0 12 21c.965 0 1.888-.167 2.758-.451C14.155 21.173 13.153 22 12 22c-1.102 0-2.117-.789-2.764-1.453z\"\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M14.745 12.449h-.004c-.852-.024-1.188-.858-1.577-1.824-.421-1.061-.703-1.561-1.182-1.566h-.009c-.481 0-.783.497-1.235 1.537-.436.982-.801 1.811-1.636 1.791l-.276-.043c-.565-.171-.853-.691-1.284-1.794-.125-.313-.202-.632-.27-.913-.051-.213-.127-.53-.195-.634C7.067 9.004 7.039 9 6.99 9A1 1 0 0 1 7 7h.01c1.662.017 2.015 1.373 2.198 2.134.486-.981 1.304-2.058 2.797-2.075 1.531.018 2.28 1.153 2.731 2.141l.002-.008C14.944 8.424 15.327 7 16.979 7h.032A1 1 0 1 1 17 9h-.011c-.149.076-.256.474-.319.709a6.484 6.484 0 0 1-.311.951c-.429.973-.79 1.789-1.614 1.789\"\n })\n ]\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 384 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z\"\n })\n })\n },\n people: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m0 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10\"\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M8 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 8 7M16 7a2 2 0 1 0-.001 3.999A2 2 0 0 0 16 7M15.232 15c-.693 1.195-1.87 2-3.349 2-1.477 0-2.655-.805-3.347-2H15m3-2H6a6 6 0 1 0 12 0\"\n })\n ]\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 432C332.1 432 396.2 382 415.2 314.1C419.1 300.4 407.8 288 393.6 288H118.4C104.2 288 92.92 300.4 96.76 314.1C115.8 382 179.9 432 256 432V432zM176.4 160C158.7 160 144.4 174.3 144.4 192C144.4 209.7 158.7 224 176.4 224C194 224 208.4 209.7 208.4 192C208.4 174.3 194 160 176.4 160zM336.4 224C354 224 368.4 209.7 368.4 192C368.4 174.3 354 160 336.4 160C318.7 160 304.4 174.3 304.4 192C304.4 209.7 318.7 224 336.4 224z\"\n })\n })\n },\n places: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M6.5 12C5.122 12 4 13.121 4 14.5S5.122 17 6.5 17 9 15.879 9 14.5 7.878 12 6.5 12m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5M17.5 12c-1.378 0-2.5 1.121-2.5 2.5s1.122 2.5 2.5 2.5 2.5-1.121 2.5-2.5-1.122-2.5-2.5-2.5m0 3c-.275 0-.5-.225-.5-.5s.225-.5.5-.5.5.225.5.5-.225.5-.5.5\"\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M22.482 9.494l-1.039-.346L21.4 9h.6c.552 0 1-.439 1-.992 0-.006-.003-.008-.003-.008H23c0-1-.889-2-1.984-2h-.642l-.731-1.717C19.262 3.012 18.091 2 16.764 2H7.236C5.909 2 4.738 3.012 4.357 4.283L3.626 6h-.642C1.889 6 1 7 1 8h.003S1 8.002 1 8.008C1 8.561 1.448 9 2 9h.6l-.043.148-1.039.346a2.001 2.001 0 0 0-1.359 2.097l.751 7.508a1 1 0 0 0 .994.901H3v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h6v1c0 1.103.896 2 2 2h2c1.104 0 2-.897 2-2v-1h1.096a.999.999 0 0 0 .994-.901l.751-7.508a2.001 2.001 0 0 0-1.359-2.097M6.273 4.857C6.402 4.43 6.788 4 7.236 4h9.527c.448 0 .834.43.963.857L19.313 9H4.688l1.585-4.143zM7 21H5v-1h2v1zm12 0h-2v-1h2v1zm2.189-3H2.811l-.662-6.607L3 11h18l.852.393L21.189 18z\"\n })\n ]\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M39.61 196.8L74.8 96.29C88.27 57.78 124.6 32 165.4 32H346.6C387.4 32 423.7 57.78 437.2 96.29L472.4 196.8C495.6 206.4 512 229.3 512 256V448C512 465.7 497.7 480 480 480H448C430.3 480 416 465.7 416 448V400H96V448C96 465.7 81.67 480 64 480H32C14.33 480 0 465.7 0 448V256C0 229.3 16.36 206.4 39.61 196.8V196.8zM109.1 192H402.9L376.8 117.4C372.3 104.6 360.2 96 346.6 96H165.4C151.8 96 139.7 104.6 135.2 117.4L109.1 192zM96 256C78.33 256 64 270.3 64 288C64 305.7 78.33 320 96 320C113.7 320 128 305.7 128 288C128 270.3 113.7 256 96 256zM416 320C433.7 320 448 305.7 448 288C448 270.3 433.7 256 416 256C398.3 256 384 270.3 384 288C384 305.7 398.3 320 416 320z\"\n })\n })\n },\n symbols: {\n outline: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M0 0h11v2H0zM4 11h3V6h4V4H0v2h4zM15.5 17c1.381 0 2.5-1.116 2.5-2.493s-1.119-2.493-2.5-2.493S13 13.13 13 14.507 14.119 17 15.5 17m0-2.986c.276 0 .5.222.5.493 0 .272-.224.493-.5.493s-.5-.221-.5-.493.224-.493.5-.493M21.5 19.014c-1.381 0-2.5 1.116-2.5 2.493S20.119 24 21.5 24s2.5-1.116 2.5-2.493-1.119-2.493-2.5-2.493m0 2.986a.497.497 0 0 1-.5-.493c0-.271.224-.493.5-.493s.5.222.5.493a.497.497 0 0 1-.5.493M22 13l-9 9 1.513 1.5 8.99-9.009zM17 11c2.209 0 4-1.119 4-2.5V2s.985-.161 1.498.949C23.01 4.055 23 6 23 6s1-1.119 1-3.135C24-.02 21 0 21 0h-2v6.347A5.853 5.853 0 0 0 17 6c-2.209 0-4 1.119-4 2.5s1.791 2.5 4 2.5M10.297 20.482l-1.475-1.585a47.54 47.54 0 0 1-1.442 1.129c-.307-.288-.989-1.016-2.045-2.183.902-.836 1.479-1.466 1.729-1.892s.376-.871.376-1.336c0-.592-.273-1.178-.818-1.759-.546-.581-1.329-.871-2.349-.871-1.008 0-1.79.293-2.344.879-.556.587-.832 1.181-.832 1.784 0 .813.419 1.748 1.256 2.805-.847.614-1.444 1.208-1.794 1.784a3.465 3.465 0 0 0-.523 1.833c0 .857.308 1.56.924 2.107.616.549 1.423.823 2.42.823 1.173 0 2.444-.379 3.813-1.137L8.235 24h2.819l-2.09-2.383 1.333-1.135zm-6.736-6.389a1.02 1.02 0 0 1 .73-.286c.31 0 .559.085.747.254a.849.849 0 0 1 .283.659c0 .518-.419 1.112-1.257 1.784-.536-.651-.805-1.231-.805-1.742a.901.901 0 0 1 .302-.669M3.74 22c-.427 0-.778-.116-1.057-.349-.279-.232-.418-.487-.418-.766 0-.594.509-1.288 1.527-2.083.968 1.134 1.717 1.946 2.248 2.438-.921.507-1.686.76-2.3.76\"\n })\n }),\n solid: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 512 512\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M500.3 7.251C507.7 13.33 512 22.41 512 31.1V175.1C512 202.5 483.3 223.1 447.1 223.1C412.7 223.1 383.1 202.5 383.1 175.1C383.1 149.5 412.7 127.1 447.1 127.1V71.03L351.1 90.23V207.1C351.1 234.5 323.3 255.1 287.1 255.1C252.7 255.1 223.1 234.5 223.1 207.1C223.1 181.5 252.7 159.1 287.1 159.1V63.1C287.1 48.74 298.8 35.61 313.7 32.62L473.7 .6198C483.1-1.261 492.9 1.173 500.3 7.251H500.3zM74.66 303.1L86.5 286.2C92.43 277.3 102.4 271.1 113.1 271.1H174.9C185.6 271.1 195.6 277.3 201.5 286.2L213.3 303.1H239.1C266.5 303.1 287.1 325.5 287.1 351.1V463.1C287.1 490.5 266.5 511.1 239.1 511.1H47.1C21.49 511.1-.0019 490.5-.0019 463.1V351.1C-.0019 325.5 21.49 303.1 47.1 303.1H74.66zM143.1 359.1C117.5 359.1 95.1 381.5 95.1 407.1C95.1 434.5 117.5 455.1 143.1 455.1C170.5 455.1 191.1 434.5 191.1 407.1C191.1 381.5 170.5 359.1 143.1 359.1zM440.3 367.1H496C502.7 367.1 508.6 372.1 510.1 378.4C513.3 384.6 511.6 391.7 506.5 396L378.5 508C372.9 512.1 364.6 513.3 358.6 508.9C352.6 504.6 350.3 496.6 353.3 489.7L391.7 399.1H336C329.3 399.1 323.4 395.9 321 389.6C318.7 383.4 320.4 376.3 325.5 371.1L453.5 259.1C459.1 255 467.4 254.7 473.4 259.1C479.4 263.4 481.6 271.4 478.7 278.3L440.3 367.1zM116.7 219.1L19.85 119.2C-8.112 90.26-6.614 42.31 24.85 15.34C51.82-8.137 93.26-3.642 118.2 21.83L128.2 32.32L137.7 21.83C162.7-3.642 203.6-8.137 231.6 15.34C262.6 42.31 264.1 90.26 236.1 119.2L139.7 219.1C133.2 225.6 122.7 225.6 116.7 219.1H116.7z\"\n })\n })\n }\n};\nconst $fcccfb36ed0cde68$var$search = {\n loupe: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M12.9 14.32a8 8 0 1 1 1.41-1.41l5.35 5.33-1.42 1.42-5.33-5.34zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z\"\n })\n }),\n delete: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"path\", {\n d: \"M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z\"\n })\n })\n};\nvar $fcccfb36ed0cde68$export$2e2bcd8739ae039 = {\n categories: $fcccfb36ed0cde68$var$categories,\n search: $fcccfb36ed0cde68$var$search\n};\n\n\n\n\n\nfunction $254755d3f438722f$export$2e2bcd8739ae039(props) {\n let { id: id , skin: skin , emoji: emoji } = props;\n if (props.shortcodes) {\n const matches = props.shortcodes.match((0, $c4d155af13ad4d4b$export$2e2bcd8739ae039).SHORTCODES_REGEX);\n if (matches) {\n id = matches[1];\n if (matches[2]) skin = matches[2];\n }\n }\n emoji || (emoji = (0, $c4d155af13ad4d4b$export$2e2bcd8739ae039).get(id || props.native));\n if (!emoji) return props.fallback;\n const emojiSkin = emoji.skins[skin - 1] || emoji.skins[0];\n const imageSrc = emojiSkin.src || (props.set != \"native\" && !props.spritesheet ? typeof props.getImageURL === \"function\" ? props.getImageURL(props.set, emojiSkin.unified) : `https://cdn.jsdelivr.net/npm/emoji-datasource-${props.set}@15.0.1/img/${props.set}/64/${emojiSkin.unified}.png` : undefined);\n const spritesheetSrc = typeof props.getSpritesheetURL === \"function\" ? props.getSpritesheetURL(props.set) : `https://cdn.jsdelivr.net/npm/emoji-datasource-${props.set}@15.0.1/img/${props.set}/sheets-256/64.png`;\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"span\", {\n class: \"emoji-mart-emoji\",\n \"data-emoji-set\": props.set,\n children: imageSrc ? /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"img\", {\n style: {\n maxWidth: props.size || \"1em\",\n maxHeight: props.size || \"1em\",\n display: \"inline-block\"\n },\n alt: emojiSkin.native || emojiSkin.shortcodes,\n src: imageSrc\n }) : props.set == \"native\" ? /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"span\", {\n style: {\n fontSize: props.size,\n fontFamily: '\"EmojiMart\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Segoe UI\", \"Apple Color Emoji\", \"Twemoji Mozilla\", \"Noto Color Emoji\", \"Android Emoji\"'\n },\n children: emojiSkin.native\n }) : /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"span\", {\n style: {\n display: \"block\",\n width: props.size,\n height: props.size,\n backgroundImage: `url(${spritesheetSrc})`,\n backgroundSize: `${100 * (0, $7adb23b0109cc36a$export$2d0294657ab35f1b).sheet.cols}% ${100 * (0, $7adb23b0109cc36a$export$2d0294657ab35f1b).sheet.rows}%`,\n backgroundPosition: `${100 / ((0, $7adb23b0109cc36a$export$2d0294657ab35f1b).sheet.cols - 1) * emojiSkin.x}% ${100 / ((0, $7adb23b0109cc36a$export$2d0294657ab35f1b).sheet.rows - 1) * emojiSkin.y}%`\n }\n })\n });\n}\n\n\n\n\n\n\n\nconst $6f57cc9cd54c5aaa$var$WindowHTMLElement = typeof window !== \"undefined\" && window.HTMLElement ? window.HTMLElement : Object;\nclass $6f57cc9cd54c5aaa$export$2e2bcd8739ae039 extends $6f57cc9cd54c5aaa$var$WindowHTMLElement {\n static get observedAttributes() {\n return Object.keys(this.Props);\n }\n update(props = {}) {\n for(let k in props)this.attributeChangedCallback(k, null, props[k]);\n }\n attributeChangedCallback(attr, _, newValue) {\n if (!this.component) return;\n const value = (0, $7adb23b0109cc36a$export$88c9ddb45cea7241)(attr, {\n [attr]: newValue\n }, this.constructor.Props, this);\n if (this.component.componentWillReceiveProps) this.component.componentWillReceiveProps({\n [attr]: value\n });\n else {\n this.component.props[attr] = value;\n this.component.forceUpdate();\n }\n }\n disconnectedCallback() {\n this.disconnected = true;\n if (this.component && this.component.unregister) this.component.unregister();\n }\n constructor(props = {}){\n super();\n this.props = props;\n if (props.parent || props.ref) {\n let ref = null;\n const parent = props.parent || (ref = props.ref && props.ref.current);\n if (ref) ref.innerHTML = \"\";\n if (parent) parent.appendChild(this);\n }\n }\n}\n\n\n\nclass $26f27c338a96b1a6$export$2e2bcd8739ae039 extends (0, $6f57cc9cd54c5aaa$export$2e2bcd8739ae039) {\n setShadow() {\n this.attachShadow({\n mode: \"open\"\n });\n }\n injectStyles(styles) {\n if (!styles) return;\n const style = document.createElement(\"style\");\n style.textContent = styles;\n this.shadowRoot.insertBefore(style, this.shadowRoot.firstChild);\n }\n constructor(props, { styles: styles } = {}){\n super(props);\n this.setShadow();\n this.injectStyles(styles);\n }\n}\n\n\n\n\n\n\nvar $3d90f6e46fb2dd47$export$2e2bcd8739ae039 = {\n fallback: \"\",\n id: \"\",\n native: \"\",\n shortcodes: \"\",\n size: {\n value: \"\",\n transform: (value)=>{\n // If the value is a number, then we assume it’s a pixel value.\n if (!/\\D/.test(value)) return `${value}px`;\n return value;\n }\n },\n // Shared\n set: (0, $b247ea80b67298d5$export$2e2bcd8739ae039).set,\n skin: (0, $b247ea80b67298d5$export$2e2bcd8739ae039).skin\n};\n\n\nclass $331b4160623139bf$export$2e2bcd8739ae039 extends (0, $6f57cc9cd54c5aaa$export$2e2bcd8739ae039) {\n async connectedCallback() {\n const props = (0, $7adb23b0109cc36a$export$75fe5f91d452f94b)(this.props, (0, $3d90f6e46fb2dd47$export$2e2bcd8739ae039), this);\n props.element = this;\n props.ref = (component)=>{\n this.component = component;\n };\n await (0, $7adb23b0109cc36a$export$2cd8252107eb640b)();\n if (this.disconnected) return;\n (0, $fb96b826c0c5f37a$export$b3890eb0ae9dca99)(/*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)((0, $254755d3f438722f$export$2e2bcd8739ae039), {\n ...props\n }), this);\n }\n constructor(props){\n super(props);\n }\n}\n(0, $c770c458706daa72$export$2e2bcd8739ae039)($331b4160623139bf$export$2e2bcd8739ae039, \"Props\", (0, $3d90f6e46fb2dd47$export$2e2bcd8739ae039));\nif (typeof customElements !== \"undefined\" && !customElements.get(\"em-emoji\")) customElements.define(\"em-emoji\", $331b4160623139bf$export$2e2bcd8739ae039);\n\n\n\n\n\n\nvar $1a9a8ef576b7773d$var$t, $1a9a8ef576b7773d$var$u, $1a9a8ef576b7773d$var$r, $1a9a8ef576b7773d$var$o = 0, $1a9a8ef576b7773d$var$i = [], $1a9a8ef576b7773d$var$c = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__b, $1a9a8ef576b7773d$var$f = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__r, $1a9a8ef576b7773d$var$e = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).diffed, $1a9a8ef576b7773d$var$a = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__c, $1a9a8ef576b7773d$var$v = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).unmount;\nfunction $1a9a8ef576b7773d$var$m(t1, r1) {\n (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__h && (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__h($1a9a8ef576b7773d$var$u, t1, $1a9a8ef576b7773d$var$o || r1), $1a9a8ef576b7773d$var$o = 0;\n var i1 = $1a9a8ef576b7773d$var$u.__H || ($1a9a8ef576b7773d$var$u.__H = {\n __: [],\n __h: []\n });\n return t1 >= i1.__.length && i1.__.push({}), i1.__[t1];\n}\nfunction $1a9a8ef576b7773d$export$60241385465d0a34(n1) {\n return $1a9a8ef576b7773d$var$o = 1, $1a9a8ef576b7773d$export$13e3392192263954($1a9a8ef576b7773d$var$w, n1);\n}\nfunction $1a9a8ef576b7773d$export$13e3392192263954(n2, r2, o1) {\n var i2 = $1a9a8ef576b7773d$var$m($1a9a8ef576b7773d$var$t++, 2);\n return i2.t = n2, i2.__c || (i2.__ = [\n o1 ? o1(r2) : $1a9a8ef576b7773d$var$w(void 0, r2),\n function(n3) {\n var t2 = i2.t(i2.__[0], n3);\n i2.__[0] !== t2 && (i2.__ = [\n t2,\n i2.__[1]\n ], i2.__c.setState({}));\n }\n ], i2.__c = $1a9a8ef576b7773d$var$u), i2.__;\n}\nfunction $1a9a8ef576b7773d$export$6d9c69b0de29b591(r3, o2) {\n var i3 = $1a9a8ef576b7773d$var$m($1a9a8ef576b7773d$var$t++, 3);\n !(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__s && $1a9a8ef576b7773d$var$k(i3.__H, o2) && (i3.__ = r3, i3.__H = o2, $1a9a8ef576b7773d$var$u.__H.__h.push(i3));\n}\nfunction $1a9a8ef576b7773d$export$e5c5a5f917a5871c(r4, o3) {\n var i4 = $1a9a8ef576b7773d$var$m($1a9a8ef576b7773d$var$t++, 4);\n !(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__s && $1a9a8ef576b7773d$var$k(i4.__H, o3) && (i4.__ = r4, i4.__H = o3, $1a9a8ef576b7773d$var$u.__h.push(i4));\n}\nfunction $1a9a8ef576b7773d$export$b8f5890fc79d6aca(n4) {\n return $1a9a8ef576b7773d$var$o = 5, $1a9a8ef576b7773d$export$1538c33de8887b59(function() {\n return {\n current: n4\n };\n }, []);\n}\nfunction $1a9a8ef576b7773d$export$d5a552a76deda3c2(n5, t3, u1) {\n $1a9a8ef576b7773d$var$o = 6, $1a9a8ef576b7773d$export$e5c5a5f917a5871c(function() {\n \"function\" == typeof n5 ? n5(t3()) : n5 && (n5.current = t3());\n }, null == u1 ? u1 : u1.concat(n5));\n}\nfunction $1a9a8ef576b7773d$export$1538c33de8887b59(n6, u2) {\n var r5 = $1a9a8ef576b7773d$var$m($1a9a8ef576b7773d$var$t++, 7);\n return $1a9a8ef576b7773d$var$k(r5.__H, u2) && (r5.__ = n6(), r5.__H = u2, r5.__h = n6), r5.__;\n}\nfunction $1a9a8ef576b7773d$export$35808ee640e87ca7(n7, t4) {\n return $1a9a8ef576b7773d$var$o = 8, $1a9a8ef576b7773d$export$1538c33de8887b59(function() {\n return n7;\n }, t4);\n}\nfunction $1a9a8ef576b7773d$export$fae74005e78b1a27(n8) {\n var r6 = $1a9a8ef576b7773d$var$u.context[n8.__c], o4 = $1a9a8ef576b7773d$var$m($1a9a8ef576b7773d$var$t++, 9);\n return o4.c = n8, r6 ? (null == o4.__ && (o4.__ = !0, r6.sub($1a9a8ef576b7773d$var$u)), r6.props.value) : n8.__;\n}\nfunction $1a9a8ef576b7773d$export$dc8fbce3eb94dc1e(t5, u3) {\n (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).useDebugValue && (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).useDebugValue(u3 ? u3(t5) : t5);\n}\nfunction $1a9a8ef576b7773d$export$c052f6604b7d51fe(n9) {\n var r7 = $1a9a8ef576b7773d$var$m($1a9a8ef576b7773d$var$t++, 10), o5 = $1a9a8ef576b7773d$export$60241385465d0a34();\n return r7.__ = n9, $1a9a8ef576b7773d$var$u.componentDidCatch || ($1a9a8ef576b7773d$var$u.componentDidCatch = function(n10) {\n r7.__ && r7.__(n10), o5[1](n10);\n }), [\n o5[0],\n function() {\n o5[1](void 0);\n }\n ];\n}\nfunction $1a9a8ef576b7773d$var$x() {\n var t6;\n for($1a9a8ef576b7773d$var$i.sort(function(n11, t7) {\n return n11.__v.__b - t7.__v.__b;\n }); t6 = $1a9a8ef576b7773d$var$i.pop();)if (t6.__P) try {\n t6.__H.__h.forEach($1a9a8ef576b7773d$var$g), t6.__H.__h.forEach($1a9a8ef576b7773d$var$j), t6.__H.__h = [];\n } catch (u4) {\n t6.__H.__h = [], (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__e(u4, t6.__v);\n }\n}\n(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__b = function(n12) {\n $1a9a8ef576b7773d$var$u = null, $1a9a8ef576b7773d$var$c && $1a9a8ef576b7773d$var$c(n12);\n}, (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__r = function(n13) {\n $1a9a8ef576b7773d$var$f && $1a9a8ef576b7773d$var$f(n13), $1a9a8ef576b7773d$var$t = 0;\n var r8 = ($1a9a8ef576b7773d$var$u = n13.__c).__H;\n r8 && (r8.__h.forEach($1a9a8ef576b7773d$var$g), r8.__h.forEach($1a9a8ef576b7773d$var$j), r8.__h = []);\n}, (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).diffed = function(t8) {\n $1a9a8ef576b7773d$var$e && $1a9a8ef576b7773d$var$e(t8);\n var o6 = t8.__c;\n o6 && o6.__H && o6.__H.__h.length && (1 !== $1a9a8ef576b7773d$var$i.push(o6) && $1a9a8ef576b7773d$var$r === (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).requestAnimationFrame || (($1a9a8ef576b7773d$var$r = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).requestAnimationFrame) || function(n14) {\n var t9, u5 = function() {\n clearTimeout(r9), $1a9a8ef576b7773d$var$b && cancelAnimationFrame(t9), setTimeout(n14);\n }, r9 = setTimeout(u5, 100);\n $1a9a8ef576b7773d$var$b && (t9 = requestAnimationFrame(u5));\n })($1a9a8ef576b7773d$var$x)), $1a9a8ef576b7773d$var$u = null;\n}, (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__c = function(t10, u6) {\n u6.some(function(t11) {\n try {\n t11.__h.forEach($1a9a8ef576b7773d$var$g), t11.__h = t11.__h.filter(function(n15) {\n return !n15.__ || $1a9a8ef576b7773d$var$j(n15);\n });\n } catch (r10) {\n u6.some(function(n16) {\n n16.__h && (n16.__h = []);\n }), u6 = [], (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__e(r10, t11.__v);\n }\n }), $1a9a8ef576b7773d$var$a && $1a9a8ef576b7773d$var$a(t10, u6);\n}, (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).unmount = function(t12) {\n $1a9a8ef576b7773d$var$v && $1a9a8ef576b7773d$var$v(t12);\n var u7, r11 = t12.__c;\n r11 && r11.__H && (r11.__H.__.forEach(function(n17) {\n try {\n $1a9a8ef576b7773d$var$g(n17);\n } catch (n18) {\n u7 = n18;\n }\n }), u7 && (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__e(u7, r11.__v));\n};\nvar $1a9a8ef576b7773d$var$b = \"function\" == typeof requestAnimationFrame;\nfunction $1a9a8ef576b7773d$var$g(n19) {\n var t13 = $1a9a8ef576b7773d$var$u, r12 = n19.__c;\n \"function\" == typeof r12 && (n19.__c = void 0, r12()), $1a9a8ef576b7773d$var$u = t13;\n}\nfunction $1a9a8ef576b7773d$var$j(n20) {\n var t14 = $1a9a8ef576b7773d$var$u;\n n20.__c = n20.__(), $1a9a8ef576b7773d$var$u = t14;\n}\nfunction $1a9a8ef576b7773d$var$k(n21, t15) {\n return !n21 || n21.length !== t15.length || t15.some(function(t16, u8) {\n return t16 !== n21[u8];\n });\n}\nfunction $1a9a8ef576b7773d$var$w(n22, t17) {\n return \"function\" == typeof t17 ? t17(n22) : t17;\n}\n\n\n\n\n\nfunction $dc040a17866866fa$var$S(n1, t1) {\n for(var e1 in t1)n1[e1] = t1[e1];\n return n1;\n}\nfunction $dc040a17866866fa$var$C(n2, t2) {\n for(var e2 in n2)if (\"__source\" !== e2 && !(e2 in t2)) return !0;\n for(var r1 in t2)if (\"__source\" !== r1 && n2[r1] !== t2[r1]) return !0;\n return !1;\n}\nfunction $dc040a17866866fa$export$221d75b3f55bb0bd(n3) {\n this.props = n3;\n}\nfunction $dc040a17866866fa$export$7c73462e0d25e514(n4, t3) {\n function e3(n5) {\n var e4 = this.props.ref, r3 = e4 == n5.ref;\n return !r3 && e4 && (e4.call ? e4(null) : e4.current = null), t3 ? !t3(this.props, n5) || !r3 : $dc040a17866866fa$var$C(this.props, n5);\n }\n function r2(t4) {\n return this.shouldComponentUpdate = e3, (0, $fb96b826c0c5f37a$export$c8a8987d4410bf2d)(n4, t4);\n }\n return r2.displayName = \"Memo(\" + (n4.displayName || n4.name) + \")\", r2.prototype.isReactComponent = !0, r2.__f = !0, r2;\n}\n($dc040a17866866fa$export$221d75b3f55bb0bd.prototype = new (0, $fb96b826c0c5f37a$export$16fa2f45be04daa8)).isPureReactComponent = !0, $dc040a17866866fa$export$221d75b3f55bb0bd.prototype.shouldComponentUpdate = function(n6, t5) {\n return $dc040a17866866fa$var$C(this.props, n6) || $dc040a17866866fa$var$C(this.state, t5);\n};\nvar $dc040a17866866fa$var$w = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__b;\n(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__b = function(n7) {\n n7.type && n7.type.__f && n7.ref && (n7.props.ref = n7.ref, n7.ref = null), $dc040a17866866fa$var$w && $dc040a17866866fa$var$w(n7);\n};\nvar $dc040a17866866fa$var$R = \"undefined\" != typeof Symbol && Symbol.for && Symbol.for(\"react.forward_ref\") || 3911;\nfunction $dc040a17866866fa$export$257a8862b851cb5b(n8) {\n function t6(t7, e5) {\n var r4 = $dc040a17866866fa$var$S({}, t7);\n return delete r4.ref, n8(r4, (e5 = t7.ref || e5) && (\"object\" != typeof e5 || \"current\" in e5) ? e5 : null);\n }\n return t6.$$typeof = $dc040a17866866fa$var$R, t6.render = t6, t6.prototype.isReactComponent = t6.__f = !0, t6.displayName = \"ForwardRef(\" + (n8.displayName || n8.name) + \")\", t6;\n}\nvar $dc040a17866866fa$var$N = function(n9, t8) {\n return null == n9 ? null : (0, $fb96b826c0c5f37a$export$47e4c5b300681277)((0, $fb96b826c0c5f37a$export$47e4c5b300681277)(n9).map(t8));\n}, $dc040a17866866fa$export$dca3b0875bd9a954 = {\n map: $dc040a17866866fa$var$N,\n forEach: $dc040a17866866fa$var$N,\n count: function(n10) {\n return n10 ? (0, $fb96b826c0c5f37a$export$47e4c5b300681277)(n10).length : 0;\n },\n only: function(n11) {\n var t9 = (0, $fb96b826c0c5f37a$export$47e4c5b300681277)(n11);\n if (1 !== t9.length) throw \"Children.only\";\n return t9[0];\n },\n toArray: (0, $fb96b826c0c5f37a$export$47e4c5b300681277)\n}, $dc040a17866866fa$var$A = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__e;\n(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__e = function(n12, t10, e6) {\n if (n12.then) {\n for(var r5, u1 = t10; u1 = u1.__;)if ((r5 = u1.__c) && r5.__c) return null == t10.__e && (t10.__e = e6.__e, t10.__k = e6.__k), r5.__c(n12, t10);\n }\n $dc040a17866866fa$var$A(n12, t10, e6);\n};\nvar $dc040a17866866fa$var$O = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).unmount;\nfunction $dc040a17866866fa$export$74bf444e3cd11ea5() {\n this.__u = 0, this.t = null, this.__b = null;\n}\nfunction $dc040a17866866fa$var$U(n13) {\n var t11 = n13.__.__c;\n return t11 && t11.__e && t11.__e(n13);\n}\nfunction $dc040a17866866fa$export$488013bae63b21da(n14) {\n var t12, e7, r6;\n function u2(u3) {\n if (t12 || (t12 = n14()).then(function(n15) {\n e7 = n15.default || n15;\n }, function(n16) {\n r6 = n16;\n }), r6) throw r6;\n if (!e7) throw t12;\n return (0, $fb96b826c0c5f37a$export$c8a8987d4410bf2d)(e7, u3);\n }\n return u2.displayName = \"Lazy\", u2.__f = !0, u2;\n}\nfunction $dc040a17866866fa$export$998bcd577473dd93() {\n this.u = null, this.o = null;\n}\n(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).unmount = function(n17) {\n var t13 = n17.__c;\n t13 && t13.__R && t13.__R(), t13 && !0 === n17.__h && (n17.type = null), $dc040a17866866fa$var$O && $dc040a17866866fa$var$O(n17);\n}, ($dc040a17866866fa$export$74bf444e3cd11ea5.prototype = new (0, $fb96b826c0c5f37a$export$16fa2f45be04daa8)).__c = function(n18, t14) {\n var e8 = t14.__c, r7 = this;\n null == r7.t && (r7.t = []), r7.t.push(e8);\n var u4 = $dc040a17866866fa$var$U(r7.__v), o1 = !1, i1 = function() {\n o1 || (o1 = !0, e8.__R = null, u4 ? u4(l1) : l1());\n };\n e8.__R = i1;\n var l1 = function() {\n if (!--r7.__u) {\n if (r7.state.__e) {\n var n19 = r7.state.__e;\n r7.__v.__k[0] = function n22(t17, e9, r8) {\n return t17 && (t17.__v = null, t17.__k = t17.__k && t17.__k.map(function(t18) {\n return n22(t18, e9, r8);\n }), t17.__c && t17.__c.__P === e9 && (t17.__e && r8.insertBefore(t17.__e, t17.__d), t17.__c.__e = !0, t17.__c.__P = r8)), t17;\n }(n19, n19.__c.__P, n19.__c.__O);\n }\n var t15;\n for(r7.setState({\n __e: r7.__b = null\n }); t15 = r7.t.pop();)t15.forceUpdate();\n }\n }, c1 = !0 === t14.__h;\n (r7.__u++) || c1 || r7.setState({\n __e: r7.__b = r7.__v.__k[0]\n }), n18.then(i1, i1);\n}, $dc040a17866866fa$export$74bf444e3cd11ea5.prototype.componentWillUnmount = function() {\n this.t = [];\n}, $dc040a17866866fa$export$74bf444e3cd11ea5.prototype.render = function(n23, t19) {\n if (this.__b) {\n if (this.__v.__k) {\n var e10 = document.createElement(\"div\"), r9 = this.__v.__k[0].__c;\n this.__v.__k[0] = function n24(t20, e13, r12) {\n return t20 && (t20.__c && t20.__c.__H && (t20.__c.__H.__.forEach(function(n25) {\n \"function\" == typeof n25.__c && n25.__c();\n }), t20.__c.__H = null), null != (t20 = $dc040a17866866fa$var$S({}, t20)).__c && (t20.__c.__P === r12 && (t20.__c.__P = e13), t20.__c = null), t20.__k = t20.__k && t20.__k.map(function(t21) {\n return n24(t21, e13, r12);\n })), t20;\n }(this.__b, e10, r9.__O = r9.__P);\n }\n this.__b = null;\n }\n var u5 = t19.__e && (0, $fb96b826c0c5f37a$export$c8a8987d4410bf2d)((0, $fb96b826c0c5f37a$export$ffb0004e005737fa), null, n23.fallback);\n return u5 && (u5.__h = null), [\n (0, $fb96b826c0c5f37a$export$c8a8987d4410bf2d)((0, $fb96b826c0c5f37a$export$ffb0004e005737fa), null, t19.__e ? null : n23.children),\n u5\n ];\n};\nvar $dc040a17866866fa$var$T = function(n26, t22, e14) {\n if (++e14[1] === e14[0] && n26.o.delete(t22), n26.props.revealOrder && (\"t\" !== n26.props.revealOrder[0] || !n26.o.size)) for(e14 = n26.u; e14;){\n for(; e14.length > 3;)e14.pop()();\n if (e14[1] < e14[0]) break;\n n26.u = e14 = e14[2];\n }\n};\nfunction $dc040a17866866fa$var$D(n27) {\n return this.getChildContext = function() {\n return n27.context;\n }, n27.children;\n}\nfunction $dc040a17866866fa$var$I(n28) {\n var t23 = this, e15 = n28.i;\n t23.componentWillUnmount = function() {\n (0, $fb96b826c0c5f37a$export$b3890eb0ae9dca99)(null, t23.l), t23.l = null, t23.i = null;\n }, t23.i && t23.i !== e15 && t23.componentWillUnmount(), n28.__v ? (t23.l || (t23.i = e15, t23.l = {\n nodeType: 1,\n parentNode: e15,\n childNodes: [],\n appendChild: function(n29) {\n this.childNodes.push(n29), t23.i.appendChild(n29);\n },\n insertBefore: function(n30, e) {\n this.childNodes.push(n30), t23.i.appendChild(n30);\n },\n removeChild: function(n31) {\n this.childNodes.splice(this.childNodes.indexOf(n31) >>> 1, 1), t23.i.removeChild(n31);\n }\n }), (0, $fb96b826c0c5f37a$export$b3890eb0ae9dca99)((0, $fb96b826c0c5f37a$export$c8a8987d4410bf2d)($dc040a17866866fa$var$D, {\n context: t23.context\n }, n28.__v), t23.l)) : t23.l && t23.componentWillUnmount();\n}\nfunction $dc040a17866866fa$export$d39a5bbd09211389(n32, t24) {\n return (0, $fb96b826c0c5f37a$export$c8a8987d4410bf2d)($dc040a17866866fa$var$I, {\n __v: n32,\n i: t24\n });\n}\n($dc040a17866866fa$export$998bcd577473dd93.prototype = new (0, $fb96b826c0c5f37a$export$16fa2f45be04daa8)).__e = function(n33) {\n var t25 = this, e16 = $dc040a17866866fa$var$U(t25.__v), r13 = t25.o.get(n33);\n return r13[0]++, function(u6) {\n var o2 = function() {\n t25.props.revealOrder ? (r13.push(u6), $dc040a17866866fa$var$T(t25, n33, r13)) : u6();\n };\n e16 ? e16(o2) : o2();\n };\n}, $dc040a17866866fa$export$998bcd577473dd93.prototype.render = function(n34) {\n this.u = null, this.o = new Map;\n var t26 = (0, $fb96b826c0c5f37a$export$47e4c5b300681277)(n34.children);\n n34.revealOrder && \"b\" === n34.revealOrder[0] && t26.reverse();\n for(var e17 = t26.length; e17--;)this.o.set(t26[e17], this.u = [\n 1,\n 0,\n this.u\n ]);\n return n34.children;\n}, $dc040a17866866fa$export$998bcd577473dd93.prototype.componentDidUpdate = $dc040a17866866fa$export$998bcd577473dd93.prototype.componentDidMount = function() {\n var n35 = this;\n this.o.forEach(function(t27, e18) {\n $dc040a17866866fa$var$T(n35, e18, t27);\n });\n};\nvar $dc040a17866866fa$var$j = \"undefined\" != typeof Symbol && Symbol.for && Symbol.for(\"react.element\") || 60103, $dc040a17866866fa$var$P = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, $dc040a17866866fa$var$V = \"undefined\" != typeof document, $dc040a17866866fa$var$z = function(n36) {\n return (\"undefined\" != typeof Symbol && \"symbol\" == typeof Symbol() ? /fil|che|rad/i : /fil|che|ra/i).test(n36);\n};\nfunction $dc040a17866866fa$export$b3890eb0ae9dca99(n37, t28, e19) {\n return null == t28.__k && (t28.textContent = \"\"), (0, $fb96b826c0c5f37a$export$b3890eb0ae9dca99)(n37, t28), \"function\" == typeof e19 && e19(), n37 ? n37.__c : null;\n}\nfunction $dc040a17866866fa$export$fa8d919ba61d84db(n38, t29, e20) {\n return (0, $fb96b826c0c5f37a$export$fa8d919ba61d84db)(n38, t29), \"function\" == typeof e20 && e20(), n38 ? n38.__c : null;\n}\n(0, $fb96b826c0c5f37a$export$16fa2f45be04daa8).prototype.isReactComponent = {}, [\n \"componentWillMount\",\n \"componentWillReceiveProps\",\n \"componentWillUpdate\"\n].forEach(function(n39) {\n Object.defineProperty((0, $fb96b826c0c5f37a$export$16fa2f45be04daa8).prototype, n39, {\n configurable: !0,\n get: function() {\n return this[\"UNSAFE_\" + n39];\n },\n set: function(t30) {\n Object.defineProperty(this, n39, {\n configurable: !0,\n writable: !0,\n value: t30\n });\n }\n });\n});\nvar $dc040a17866866fa$var$H = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).event;\nfunction $dc040a17866866fa$var$Z() {}\nfunction $dc040a17866866fa$var$Y() {\n return this.cancelBubble;\n}\nfunction $dc040a17866866fa$var$q() {\n return this.defaultPrevented;\n}\n(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).event = function(n40) {\n return $dc040a17866866fa$var$H && (n40 = $dc040a17866866fa$var$H(n40)), n40.persist = $dc040a17866866fa$var$Z, n40.isPropagationStopped = $dc040a17866866fa$var$Y, n40.isDefaultPrevented = $dc040a17866866fa$var$q, n40.nativeEvent = n40;\n};\nvar $dc040a17866866fa$var$G, $dc040a17866866fa$var$J = {\n configurable: !0,\n get: function() {\n return this.class;\n }\n}, $dc040a17866866fa$var$K = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).vnode;\n(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).vnode = function(n41) {\n var t31 = n41.type, e21 = n41.props, r14 = e21;\n if (\"string\" == typeof t31) {\n var u7 = -1 === t31.indexOf(\"-\");\n for(var o3 in r14 = {}, e21){\n var i2 = e21[o3];\n $dc040a17866866fa$var$V && \"children\" === o3 && \"noscript\" === t31 || \"value\" === o3 && \"defaultValue\" in e21 && null == i2 || (\"defaultValue\" === o3 && \"value\" in e21 && null == e21.value ? o3 = \"value\" : \"download\" === o3 && !0 === i2 ? i2 = \"\" : /ondoubleclick/i.test(o3) ? o3 = \"ondblclick\" : /^onchange(textarea|input)/i.test(o3 + t31) && !$dc040a17866866fa$var$z(e21.type) ? o3 = \"oninput\" : /^onfocus$/i.test(o3) ? o3 = \"onfocusin\" : /^onblur$/i.test(o3) ? o3 = \"onfocusout\" : /^on(Ani|Tra|Tou|BeforeInp)/.test(o3) ? o3 = o3.toLowerCase() : u7 && $dc040a17866866fa$var$P.test(o3) ? o3 = o3.replace(/[A-Z0-9]/, \"-$&\").toLowerCase() : null === i2 && (i2 = void 0), r14[o3] = i2);\n }\n \"select\" == t31 && r14.multiple && Array.isArray(r14.value) && (r14.value = (0, $fb96b826c0c5f37a$export$47e4c5b300681277)(e21.children).forEach(function(n42) {\n n42.props.selected = -1 != r14.value.indexOf(n42.props.value);\n })), \"select\" == t31 && null != r14.defaultValue && (r14.value = (0, $fb96b826c0c5f37a$export$47e4c5b300681277)(e21.children).forEach(function(n43) {\n n43.props.selected = r14.multiple ? -1 != r14.defaultValue.indexOf(n43.props.value) : r14.defaultValue == n43.props.value;\n })), n41.props = r14, e21.class != e21.className && ($dc040a17866866fa$var$J.enumerable = \"className\" in e21, null != e21.className && (r14.class = e21.className), Object.defineProperty(r14, \"className\", $dc040a17866866fa$var$J));\n }\n n41.$$typeof = $dc040a17866866fa$var$j, $dc040a17866866fa$var$K && $dc040a17866866fa$var$K(n41);\n};\nvar $dc040a17866866fa$var$Q = (0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__r;\n(0, $fb96b826c0c5f37a$export$41c562ebe57d11e2).__r = function(n44) {\n $dc040a17866866fa$var$Q && $dc040a17866866fa$var$Q(n44), $dc040a17866866fa$var$G = n44.__c;\n};\nvar $dc040a17866866fa$export$ae55be85d98224ed = {\n ReactCurrentDispatcher: {\n current: {\n readContext: function(n45) {\n return $dc040a17866866fa$var$G.__n[n45.__c].props.value;\n }\n }\n }\n}, $dc040a17866866fa$export$83d89fbfd8236492 = \"17.0.2\";\nfunction $dc040a17866866fa$export$d38cd72104c1f0e9(n46) {\n return (0, $fb96b826c0c5f37a$export$c8a8987d4410bf2d).bind(null, n46);\n}\nfunction $dc040a17866866fa$export$a8257692ac88316c(n47) {\n return !!n47 && n47.$$typeof === $dc040a17866866fa$var$j;\n}\nfunction $dc040a17866866fa$export$e530037191fcd5d7(n48) {\n return $dc040a17866866fa$export$a8257692ac88316c(n48) ? (0, $fb96b826c0c5f37a$export$e530037191fcd5d7).apply(null, arguments) : n48;\n}\nfunction $dc040a17866866fa$export$502457920280e6be(n49) {\n return !!n49.__k && ((0, $fb96b826c0c5f37a$export$b3890eb0ae9dca99)(null, n49), !0);\n}\nfunction $dc040a17866866fa$export$466bfc07425424d5(n50) {\n return n50 && (n50.base || 1 === n50.nodeType && n50) || null;\n}\nvar $dc040a17866866fa$export$c78a37762a8d58e1 = function(n51, t32) {\n return n51(t32);\n}, $dc040a17866866fa$export$cd75ccfd720a3cd4 = function(n52, t33) {\n return n52(t33);\n}, $dc040a17866866fa$export$5f8d39834fd61797 = (0, $fb96b826c0c5f37a$export$ffb0004e005737fa);\nvar $dc040a17866866fa$export$2e2bcd8739ae039 = {\n useState: (0, $1a9a8ef576b7773d$export$60241385465d0a34),\n useReducer: (0, $1a9a8ef576b7773d$export$13e3392192263954),\n useEffect: (0, $1a9a8ef576b7773d$export$6d9c69b0de29b591),\n useLayoutEffect: (0, $1a9a8ef576b7773d$export$e5c5a5f917a5871c),\n useRef: (0, $1a9a8ef576b7773d$export$b8f5890fc79d6aca),\n useImperativeHandle: (0, $1a9a8ef576b7773d$export$d5a552a76deda3c2),\n useMemo: (0, $1a9a8ef576b7773d$export$1538c33de8887b59),\n useCallback: (0, $1a9a8ef576b7773d$export$35808ee640e87ca7),\n useContext: (0, $1a9a8ef576b7773d$export$fae74005e78b1a27),\n useDebugValue: (0, $1a9a8ef576b7773d$export$dc8fbce3eb94dc1e),\n version: \"17.0.2\",\n Children: $dc040a17866866fa$export$dca3b0875bd9a954,\n render: $dc040a17866866fa$export$b3890eb0ae9dca99,\n hydrate: $dc040a17866866fa$export$fa8d919ba61d84db,\n unmountComponentAtNode: $dc040a17866866fa$export$502457920280e6be,\n createPortal: $dc040a17866866fa$export$d39a5bbd09211389,\n createElement: (0, $fb96b826c0c5f37a$export$c8a8987d4410bf2d),\n createContext: (0, $fb96b826c0c5f37a$export$fd42f52fd3ae1109),\n createFactory: $dc040a17866866fa$export$d38cd72104c1f0e9,\n cloneElement: $dc040a17866866fa$export$e530037191fcd5d7,\n createRef: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43),\n Fragment: (0, $fb96b826c0c5f37a$export$ffb0004e005737fa),\n isValidElement: $dc040a17866866fa$export$a8257692ac88316c,\n findDOMNode: $dc040a17866866fa$export$466bfc07425424d5,\n Component: (0, $fb96b826c0c5f37a$export$16fa2f45be04daa8),\n PureComponent: $dc040a17866866fa$export$221d75b3f55bb0bd,\n memo: $dc040a17866866fa$export$7c73462e0d25e514,\n forwardRef: $dc040a17866866fa$export$257a8862b851cb5b,\n flushSync: $dc040a17866866fa$export$cd75ccfd720a3cd4,\n unstable_batchedUpdates: $dc040a17866866fa$export$c78a37762a8d58e1,\n StrictMode: (0, $fb96b826c0c5f37a$export$ffb0004e005737fa),\n Suspense: $dc040a17866866fa$export$74bf444e3cd11ea5,\n SuspenseList: $dc040a17866866fa$export$998bcd577473dd93,\n lazy: $dc040a17866866fa$export$488013bae63b21da,\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: $dc040a17866866fa$export$ae55be85d98224ed\n};\n\n\n\n\nconst $ec8c39fdad15601a$var$THEME_ICONS = {\n light: \"outline\",\n dark: \"solid\"\n};\nclass $ec8c39fdad15601a$export$2e2bcd8739ae039 extends (0, $dc040a17866866fa$export$221d75b3f55bb0bd) {\n renderIcon(category) {\n const { icon: icon } = category;\n if (icon) {\n if (icon.svg) return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"span\", {\n class: \"flex\",\n dangerouslySetInnerHTML: {\n __html: icon.svg\n }\n });\n if (icon.src) return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"img\", {\n src: icon.src\n });\n }\n const categoryIcons = (0, $fcccfb36ed0cde68$export$2e2bcd8739ae039).categories[category.id] || (0, $fcccfb36ed0cde68$export$2e2bcd8739ae039).categories.custom;\n const style = this.props.icons == \"auto\" ? $ec8c39fdad15601a$var$THEME_ICONS[this.props.theme] : this.props.icons;\n return categoryIcons[style] || categoryIcons;\n }\n render() {\n let selectedCategoryIndex = null;\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"nav\", {\n id: \"nav\",\n class: \"padding\",\n \"data-position\": this.props.position,\n dir: this.props.dir,\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"flex relative\",\n children: [\n this.categories.map((category, i)=>{\n const title = category.name || (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).categories[category.id];\n const selected = !this.props.unfocused && category.id == this.state.categoryId;\n if (selected) selectedCategoryIndex = i;\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"button\", {\n \"aria-label\": title,\n \"aria-selected\": selected || undefined,\n title: title,\n type: \"button\",\n class: \"flex flex-grow flex-center\",\n onMouseDown: (e)=>e.preventDefault(),\n onClick: ()=>{\n this.props.onClick({\n category: category,\n i: i\n });\n },\n children: this.renderIcon(category)\n });\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"bar\",\n style: {\n width: `${100 / this.categories.length}%`,\n opacity: selectedCategoryIndex == null ? 0 : 1,\n transform: this.props.dir === \"rtl\" ? `scaleX(-1) translateX(${selectedCategoryIndex * 100}%)` : `translateX(${selectedCategoryIndex * 100}%)`\n }\n })\n ]\n })\n });\n }\n constructor(){\n super();\n this.categories = (0, $7adb23b0109cc36a$export$2d0294657ab35f1b).categories.filter((category)=>{\n return !category.target;\n });\n this.state = {\n categoryId: this.categories[0].id\n };\n }\n}\n\n\n\n\n\nclass $e0d4dda61265ff1e$export$2e2bcd8739ae039 extends (0, $dc040a17866866fa$export$221d75b3f55bb0bd) {\n shouldComponentUpdate(nextProps) {\n for(let k in nextProps){\n if (k == \"children\") continue;\n if (nextProps[k] != this.props[k]) return true;\n }\n return false;\n }\n render() {\n return this.props.children;\n }\n}\n\n\n\n\nconst $89bd6bb200cc8fef$var$Performance = {\n rowsPerRender: 10\n};\nclass $89bd6bb200cc8fef$export$2e2bcd8739ae039 extends (0, $fb96b826c0c5f37a$export$16fa2f45be04daa8) {\n getInitialState(props = this.props) {\n return {\n skin: (0, $f72b75cf796873c7$export$2e2bcd8739ae039).get(\"skin\") || props.skin,\n theme: this.initTheme(props.theme)\n };\n }\n componentWillMount() {\n this.dir = (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).rtl ? \"rtl\" : \"ltr\";\n this.refs = {\n menu: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)(),\n navigation: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)(),\n scroll: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)(),\n search: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)(),\n searchInput: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)(),\n skinToneButton: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)(),\n skinToneRadio: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)()\n };\n this.initGrid();\n if (this.props.stickySearch == false && this.props.searchPosition == \"sticky\") {\n console.warn(\"[EmojiMart] Deprecation warning: `stickySearch` has been renamed `searchPosition`.\");\n this.props.searchPosition = \"static\";\n }\n }\n componentDidMount() {\n this.register();\n this.shadowRoot = this.base.parentNode;\n if (this.props.autoFocus) {\n const { searchInput: searchInput } = this.refs;\n if (searchInput.current) searchInput.current.focus();\n }\n }\n componentWillReceiveProps(nextProps) {\n this.nextState || (this.nextState = {});\n for(const k1 in nextProps)this.nextState[k1] = nextProps[k1];\n clearTimeout(this.nextStateTimer);\n this.nextStateTimer = setTimeout(()=>{\n let requiresGridReset = false;\n for(const k in this.nextState){\n this.props[k] = this.nextState[k];\n if (k === \"custom\" || k === \"categories\") requiresGridReset = true;\n }\n delete this.nextState;\n const nextState = this.getInitialState();\n if (requiresGridReset) return this.reset(nextState);\n this.setState(nextState);\n });\n }\n componentWillUnmount() {\n this.unregister();\n }\n async reset(nextState = {}) {\n await (0, $7adb23b0109cc36a$export$2cd8252107eb640b)(this.props);\n this.initGrid();\n this.unobserve();\n this.setState(nextState, ()=>{\n this.observeCategories();\n this.observeRows();\n });\n }\n register() {\n document.addEventListener(\"click\", this.handleClickOutside);\n this.observe();\n }\n unregister() {\n document.removeEventListener(\"click\", this.handleClickOutside);\n this.darkMedia?.removeEventListener(\"change\", this.darkMediaCallback);\n this.unobserve();\n }\n observe() {\n this.observeCategories();\n this.observeRows();\n }\n unobserve({ except: except = [] } = {}) {\n if (!Array.isArray(except)) except = [\n except\n ];\n for (const observer of this.observers){\n if (except.includes(observer)) continue;\n observer.disconnect();\n }\n this.observers = [].concat(except);\n }\n initGrid() {\n const { categories: categories } = (0, $7adb23b0109cc36a$export$2d0294657ab35f1b);\n this.refs.categories = new Map();\n const navKey = (0, $7adb23b0109cc36a$export$2d0294657ab35f1b).categories.map((category)=>category.id).join(\",\");\n if (this.navKey && this.navKey != navKey) this.refs.scroll.current && (this.refs.scroll.current.scrollTop = 0);\n this.navKey = navKey;\n this.grid = [];\n this.grid.setsize = 0;\n const addRow = (rows, category)=>{\n const row = [];\n row.__categoryId = category.id;\n row.__index = rows.length;\n this.grid.push(row);\n const rowIndex = this.grid.length - 1;\n const rowRef = rowIndex % $89bd6bb200cc8fef$var$Performance.rowsPerRender ? {} : (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)();\n rowRef.index = rowIndex;\n rowRef.posinset = this.grid.setsize + 1;\n rows.push(rowRef);\n return row;\n };\n for (let category1 of categories){\n const rows = [];\n let row = addRow(rows, category1);\n for (let emoji of category1.emojis){\n if (row.length == this.getPerLine()) row = addRow(rows, category1);\n this.grid.setsize += 1;\n row.push(emoji);\n }\n this.refs.categories.set(category1.id, {\n root: (0, $fb96b826c0c5f37a$export$7d1e3a5e95ceca43)(),\n rows: rows\n });\n }\n }\n initTheme(theme) {\n if (theme != \"auto\") return theme;\n if (!this.darkMedia) {\n this.darkMedia = matchMedia(\"(prefers-color-scheme: dark)\");\n if (this.darkMedia.media.match(/^not/)) return \"light\";\n this.darkMedia.addEventListener(\"change\", this.darkMediaCallback);\n }\n return this.darkMedia.matches ? \"dark\" : \"light\";\n }\n initDynamicPerLine(props = this.props) {\n if (!props.dynamicWidth) return;\n const { element: element , emojiButtonSize: emojiButtonSize } = props;\n const calculatePerLine = ()=>{\n const { width: width } = element.getBoundingClientRect();\n return Math.floor(width / emojiButtonSize);\n };\n const observer = new ResizeObserver(()=>{\n this.unobserve({\n except: observer\n });\n this.setState({\n perLine: calculatePerLine()\n }, ()=>{\n this.initGrid();\n this.forceUpdate(()=>{\n this.observeCategories();\n this.observeRows();\n });\n });\n });\n observer.observe(element);\n this.observers.push(observer);\n return calculatePerLine();\n }\n getPerLine() {\n return this.state.perLine || this.props.perLine;\n }\n getEmojiByPos([p1, p2]) {\n const grid = this.state.searchResults || this.grid;\n const emoji = grid[p1] && grid[p1][p2];\n if (!emoji) return;\n return (0, $c4d155af13ad4d4b$export$2e2bcd8739ae039).get(emoji);\n }\n observeCategories() {\n const navigation = this.refs.navigation.current;\n if (!navigation) return;\n const visibleCategories = new Map();\n const setFocusedCategory = (categoryId)=>{\n if (categoryId != navigation.state.categoryId) navigation.setState({\n categoryId: categoryId\n });\n };\n const observerOptions = {\n root: this.refs.scroll.current,\n threshold: [\n 0.0,\n 1.0\n ]\n };\n const observer = new IntersectionObserver((entries)=>{\n for (const entry of entries){\n const id = entry.target.dataset.id;\n visibleCategories.set(id, entry.intersectionRatio);\n }\n const ratios = [\n ...visibleCategories\n ];\n for (const [id, ratio] of ratios)if (ratio) {\n setFocusedCategory(id);\n break;\n }\n }, observerOptions);\n for (const { root: root } of this.refs.categories.values())observer.observe(root.current);\n this.observers.push(observer);\n }\n observeRows() {\n const visibleRows = {\n ...this.state.visibleRows\n };\n const observer = new IntersectionObserver((entries)=>{\n for (const entry of entries){\n const index = parseInt(entry.target.dataset.index);\n if (entry.isIntersecting) visibleRows[index] = true;\n else delete visibleRows[index];\n }\n this.setState({\n visibleRows: visibleRows\n });\n }, {\n root: this.refs.scroll.current,\n rootMargin: `${this.props.emojiButtonSize * ($89bd6bb200cc8fef$var$Performance.rowsPerRender + 5)}px 0px ${this.props.emojiButtonSize * $89bd6bb200cc8fef$var$Performance.rowsPerRender}px`\n });\n for (const { rows: rows } of this.refs.categories.values()){\n for (const row of rows)if (row.current) observer.observe(row.current);\n }\n this.observers.push(observer);\n }\n preventDefault(e) {\n e.preventDefault();\n }\n unfocusSearch() {\n const input = this.refs.searchInput.current;\n if (!input) return;\n input.blur();\n }\n navigate({ e: e , input: input , left: left , right: right , up: up , down: down }) {\n const grid = this.state.searchResults || this.grid;\n if (!grid.length) return;\n let [p1, p2] = this.state.pos;\n const pos = (()=>{\n if (p1 == 0) {\n if (p2 == 0 && !e.repeat && (left || up)) return null;\n }\n if (p1 == -1) {\n if (!e.repeat && (right || down) && input.selectionStart == input.value.length) return [\n 0,\n 0\n ];\n return null;\n }\n if (left || right) {\n let row = grid[p1];\n const increment = left ? -1 : 1;\n p2 += increment;\n if (!row[p2]) {\n p1 += increment;\n row = grid[p1];\n if (!row) {\n p1 = left ? 0 : grid.length - 1;\n p2 = left ? 0 : grid[p1].length - 1;\n return [\n p1,\n p2\n ];\n }\n p2 = left ? row.length - 1 : 0;\n }\n return [\n p1,\n p2\n ];\n }\n if (up || down) {\n p1 += up ? -1 : 1;\n const row = grid[p1];\n if (!row) {\n p1 = up ? 0 : grid.length - 1;\n p2 = up ? 0 : grid[p1].length - 1;\n return [\n p1,\n p2\n ];\n }\n if (!row[p2]) p2 = row.length - 1;\n return [\n p1,\n p2\n ];\n }\n })();\n if (pos) e.preventDefault();\n else {\n if (this.state.pos[0] > -1) this.setState({\n pos: [\n -1,\n -1\n ]\n });\n return;\n }\n this.setState({\n pos: pos,\n keyboard: true\n }, ()=>{\n this.scrollTo({\n row: pos[0]\n });\n });\n }\n scrollTo({ categoryId: categoryId , row: row }) {\n const grid = this.state.searchResults || this.grid;\n if (!grid.length) return;\n const scroll = this.refs.scroll.current;\n const scrollRect = scroll.getBoundingClientRect();\n let scrollTop = 0;\n if (row >= 0) categoryId = grid[row].__categoryId;\n if (categoryId) {\n const ref = this.refs[categoryId] || this.refs.categories.get(categoryId).root;\n const categoryRect = ref.current.getBoundingClientRect();\n scrollTop = categoryRect.top - (scrollRect.top - scroll.scrollTop) + 1;\n }\n if (row >= 0) {\n if (!row) scrollTop = 0;\n else {\n const rowIndex = grid[row].__index;\n const rowTop = scrollTop + rowIndex * this.props.emojiButtonSize;\n const rowBot = rowTop + this.props.emojiButtonSize + this.props.emojiButtonSize * 0.88;\n if (rowTop < scroll.scrollTop) scrollTop = rowTop;\n else if (rowBot > scroll.scrollTop + scrollRect.height) scrollTop = rowBot - scrollRect.height;\n else return;\n }\n }\n this.ignoreMouse();\n scroll.scrollTop = scrollTop;\n }\n ignoreMouse() {\n this.mouseIsIgnored = true;\n clearTimeout(this.ignoreMouseTimer);\n this.ignoreMouseTimer = setTimeout(()=>{\n delete this.mouseIsIgnored;\n }, 100);\n }\n handleEmojiOver(pos) {\n if (this.mouseIsIgnored || this.state.showSkins) return;\n this.setState({\n pos: pos || [\n -1,\n -1\n ],\n keyboard: false\n });\n }\n handleEmojiClick({ e: e , emoji: emoji , pos: pos }) {\n if (!this.props.onEmojiSelect) return;\n if (!emoji && pos) emoji = this.getEmojiByPos(pos);\n if (emoji) {\n const emojiData = (0, $693b183b0a78708f$export$d10ac59fbe52a745)(emoji, {\n skinIndex: this.state.skin - 1\n });\n if (this.props.maxFrequentRows) (0, $b22cfd0a55410b4f$export$2e2bcd8739ae039).add(emojiData, this.props);\n this.props.onEmojiSelect(emojiData, e);\n }\n }\n closeSkins() {\n if (!this.state.showSkins) return;\n this.setState({\n showSkins: null,\n tempSkin: null\n });\n this.base.removeEventListener(\"click\", this.handleBaseClick);\n this.base.removeEventListener(\"keydown\", this.handleBaseKeydown);\n }\n handleSkinMouseOver(tempSkin) {\n this.setState({\n tempSkin: tempSkin\n });\n }\n handleSkinClick(skin) {\n this.ignoreMouse();\n this.closeSkins();\n this.setState({\n skin: skin,\n tempSkin: null\n });\n (0, $f72b75cf796873c7$export$2e2bcd8739ae039).set(\"skin\", skin);\n }\n renderNav() {\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)((0, $ec8c39fdad15601a$export$2e2bcd8739ae039), {\n ref: this.refs.navigation,\n icons: this.props.icons,\n theme: this.state.theme,\n dir: this.dir,\n unfocused: !!this.state.searchResults,\n position: this.props.navPosition,\n onClick: this.handleCategoryClick\n }, this.navKey);\n }\n renderPreview() {\n const emoji = this.getEmojiByPos(this.state.pos);\n const noSearchResults = this.state.searchResults && !this.state.searchResults.length;\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n id: \"preview\",\n class: \"flex flex-middle\",\n dir: this.dir,\n \"data-position\": this.props.previewPosition,\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"flex flex-middle flex-grow\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"flex flex-auto flex-middle flex-center\",\n style: {\n height: this.props.emojiButtonSize,\n fontSize: this.props.emojiButtonSize\n },\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)((0, $254755d3f438722f$export$2e2bcd8739ae039), {\n emoji: emoji,\n id: noSearchResults ? this.props.noResultsEmoji || \"cry\" : this.props.previewEmoji || (this.props.previewPosition == \"top\" ? \"point_down\" : \"point_up\"),\n set: this.props.set,\n size: this.props.emojiButtonSize,\n skin: this.state.tempSkin || this.state.skin,\n spritesheet: true,\n getSpritesheetURL: this.props.getSpritesheetURL\n })\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: `margin-${this.dir[0]}`,\n children: emoji || noSearchResults ? /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: `padding-${this.dir[2]} align-${this.dir[0]}`,\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"preview-title ellipsis\",\n children: emoji ? emoji.name : (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).search_no_results_1\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"preview-subtitle ellipsis color-c\",\n children: emoji ? emoji.skins[0].shortcodes : (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).search_no_results_2\n })\n ]\n }) : /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"preview-placeholder color-c\",\n children: (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).pick\n })\n })\n ]\n }),\n !emoji && this.props.skinTonePosition == \"preview\" && this.renderSkinToneButton()\n ]\n });\n }\n renderEmojiButton(emoji, { pos: pos , posinset: posinset , grid: grid }) {\n const size = this.props.emojiButtonSize;\n const skin = this.state.tempSkin || this.state.skin;\n const emojiSkin = emoji.skins[skin - 1] || emoji.skins[0];\n const native = emojiSkin.native;\n const selected = (0, $693b183b0a78708f$export$9cb4719e2e525b7a)(this.state.pos, pos);\n const key = pos.concat(emoji.id).join(\"\");\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)((0, $e0d4dda61265ff1e$export$2e2bcd8739ae039), {\n selected: selected,\n skin: skin,\n size: size,\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"button\", {\n \"aria-label\": native,\n \"aria-selected\": selected || undefined,\n \"aria-posinset\": posinset,\n \"aria-setsize\": grid.setsize,\n \"data-keyboard\": this.state.keyboard,\n title: this.props.previewPosition == \"none\" ? emoji.name : undefined,\n type: \"button\",\n class: \"flex flex-center flex-middle\",\n tabindex: \"-1\",\n onClick: (e)=>this.handleEmojiClick({\n e: e,\n emoji: emoji\n }),\n onMouseEnter: ()=>this.handleEmojiOver(pos),\n onMouseLeave: ()=>this.handleEmojiOver(),\n style: {\n width: this.props.emojiButtonSize,\n height: this.props.emojiButtonSize,\n fontSize: this.props.emojiSize,\n lineHeight: 0\n },\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n \"aria-hidden\": \"true\",\n class: \"background\",\n style: {\n borderRadius: this.props.emojiButtonRadius,\n backgroundColor: this.props.emojiButtonColors ? this.props.emojiButtonColors[(posinset - 1) % this.props.emojiButtonColors.length] : undefined\n }\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)((0, $254755d3f438722f$export$2e2bcd8739ae039), {\n emoji: emoji,\n set: this.props.set,\n size: this.props.emojiSize,\n skin: skin,\n spritesheet: true,\n getSpritesheetURL: this.props.getSpritesheetURL\n })\n ]\n })\n }, key);\n }\n renderSearch() {\n const renderSkinTone = this.props.previewPosition == \"none\" || this.props.skinTonePosition == \"search\";\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"spacer\"\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"flex flex-middle\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"search relative flex-grow\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"input\", {\n type: \"search\",\n ref: this.refs.searchInput,\n placeholder: (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).search,\n onClick: this.handleSearchClick,\n onInput: this.handleSearchInput,\n onKeyDown: this.handleSearchKeyDown,\n autoComplete: \"off\"\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"span\", {\n class: \"icon loupe flex\",\n children: (0, $fcccfb36ed0cde68$export$2e2bcd8739ae039).search.loupe\n }),\n this.state.searchResults && /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"button\", {\n title: \"Clear\",\n \"aria-label\": \"Clear\",\n type: \"button\",\n class: \"icon delete flex\",\n onClick: this.clearSearch,\n onMouseDown: this.preventDefault,\n children: (0, $fcccfb36ed0cde68$export$2e2bcd8739ae039).search.delete\n })\n ]\n }),\n renderSkinTone && this.renderSkinToneButton()\n ]\n })\n ]\n });\n }\n renderSearchResults() {\n const { searchResults: searchResults } = this.state;\n if (!searchResults) return null;\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"category\",\n ref: this.refs.search,\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: `sticky padding-small align-${this.dir[0]}`,\n children: (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).categories.search\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n children: !searchResults.length ? /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: `padding-small align-${this.dir[0]}`,\n children: this.props.onAddCustomEmoji && /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"a\", {\n onClick: this.props.onAddCustomEmoji,\n children: (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).add_custom\n })\n }) : searchResults.map((row, i)=>{\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"flex\",\n children: row.map((emoji, ii)=>{\n return this.renderEmojiButton(emoji, {\n pos: [\n i,\n ii\n ],\n posinset: i * this.props.perLine + ii + 1,\n grid: searchResults\n });\n })\n });\n })\n })\n ]\n });\n }\n renderCategories() {\n const { categories: categories } = (0, $7adb23b0109cc36a$export$2d0294657ab35f1b);\n const hidden = !!this.state.searchResults;\n const perLine = this.getPerLine();\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n style: {\n visibility: hidden ? \"hidden\" : undefined,\n display: hidden ? \"none\" : undefined,\n height: \"100%\"\n },\n children: categories.map((category)=>{\n const { root: root , rows: rows } = this.refs.categories.get(category.id);\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n \"data-id\": category.target ? category.target.id : category.id,\n class: \"category\",\n ref: root,\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: `sticky padding-small align-${this.dir[0]}`,\n children: category.name || (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).categories[category.id]\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"relative\",\n style: {\n height: rows.length * this.props.emojiButtonSize\n },\n children: rows.map((row, i)=>{\n const targetRow = row.index - row.index % $89bd6bb200cc8fef$var$Performance.rowsPerRender;\n const visible = this.state.visibleRows[targetRow];\n const ref = \"current\" in row ? row : undefined;\n if (!visible && !ref) return null;\n const start = i * perLine;\n const end = start + perLine;\n const emojiIds = category.emojis.slice(start, end);\n if (emojiIds.length < perLine) emojiIds.push(...new Array(perLine - emojiIds.length));\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n \"data-index\": row.index,\n ref: ref,\n class: \"flex row\",\n style: {\n top: i * this.props.emojiButtonSize\n },\n children: visible && emojiIds.map((emojiId, ii)=>{\n if (!emojiId) return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n style: {\n width: this.props.emojiButtonSize,\n height: this.props.emojiButtonSize\n }\n });\n const emoji = (0, $c4d155af13ad4d4b$export$2e2bcd8739ae039).get(emojiId);\n return this.renderEmojiButton(emoji, {\n pos: [\n row.index,\n ii\n ],\n posinset: row.posinset + ii,\n grid: this.grid\n });\n })\n }, row.index);\n })\n })\n ]\n });\n })\n });\n }\n renderSkinToneButton() {\n if (this.props.skinTonePosition == \"none\") return null;\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"flex flex-auto flex-center flex-middle\",\n style: {\n position: \"relative\",\n width: this.props.emojiButtonSize,\n height: this.props.emojiButtonSize\n },\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"button\", {\n type: \"button\",\n ref: this.refs.skinToneButton,\n class: \"skin-tone-button flex flex-auto flex-center flex-middle\",\n \"aria-selected\": this.state.showSkins ? \"\" : undefined,\n \"aria-label\": (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).skins.choose,\n title: (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).skins.choose,\n onClick: this.openSkins,\n style: {\n width: this.props.emojiSize,\n height: this.props.emojiSize\n },\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"span\", {\n class: `skin-tone skin-tone-${this.state.skin}`\n })\n })\n });\n }\n renderLiveRegion() {\n const emoji = this.getEmojiByPos(this.state.pos);\n const contents = emoji ? emoji.name : \"\";\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n \"aria-live\": \"polite\",\n class: \"sr-only\",\n children: contents\n });\n }\n renderSkins() {\n const skinToneButton = this.refs.skinToneButton.current;\n const skinToneButtonRect = skinToneButton.getBoundingClientRect();\n const baseRect = this.base.getBoundingClientRect();\n const position = {};\n if (this.dir == \"ltr\") position.right = baseRect.right - skinToneButtonRect.right - 3;\n else position.left = skinToneButtonRect.left - baseRect.left - 3;\n if (this.props.previewPosition == \"bottom\" && this.props.skinTonePosition == \"preview\") position.bottom = baseRect.bottom - skinToneButtonRect.top + 6;\n else {\n position.top = skinToneButtonRect.bottom - baseRect.top + 3;\n position.bottom = \"auto\";\n }\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n ref: this.refs.menu,\n role: \"radiogroup\",\n dir: this.dir,\n \"aria-label\": (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).skins.choose,\n class: \"menu hidden\",\n \"data-position\": position.top ? \"top\" : \"bottom\",\n style: position,\n children: [\n ...Array(6).keys()\n ].map((i)=>{\n const skin = i + 1;\n const checked = this.state.skin == skin;\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"input\", {\n type: \"radio\",\n name: \"skin-tone\",\n value: skin,\n \"aria-label\": (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).skins[skin],\n ref: checked ? this.refs.skinToneRadio : null,\n defaultChecked: checked,\n onChange: ()=>this.handleSkinMouseOver(skin),\n onKeyDown: (e)=>{\n if (e.code == \"Enter\" || e.code == \"Space\" || e.code == \"Tab\") {\n e.preventDefault();\n this.handleSkinClick(skin);\n }\n }\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"button\", {\n \"aria-hidden\": \"true\",\n tabindex: \"-1\",\n onClick: ()=>this.handleSkinClick(skin),\n onMouseEnter: ()=>this.handleSkinMouseOver(skin),\n onMouseLeave: ()=>this.handleSkinMouseOver(),\n class: \"option flex flex-grow flex-middle\",\n children: [\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"span\", {\n class: `skin-tone skin-tone-${skin}`\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"span\", {\n class: \"margin-small-lr\",\n children: (0, $7adb23b0109cc36a$export$dbe3113d60765c1a).skins[skin]\n })\n ]\n })\n ]\n });\n })\n });\n }\n render() {\n const lineWidth = this.props.perLine * this.props.emojiButtonSize;\n return /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"section\", {\n id: \"root\",\n class: \"flex flex-column\",\n dir: this.dir,\n style: {\n width: this.props.dynamicWidth ? \"100%\" : `calc(${lineWidth}px + (var(--padding) + var(--sidebar-width)))`\n },\n \"data-emoji-set\": this.props.set,\n \"data-theme\": this.state.theme,\n \"data-menu\": this.state.showSkins ? \"\" : undefined,\n children: [\n this.props.previewPosition == \"top\" && this.renderPreview(),\n this.props.navPosition == \"top\" && this.renderNav(),\n this.props.searchPosition == \"sticky\" && /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n class: \"padding-lr\",\n children: this.renderSearch()\n }),\n /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n ref: this.refs.scroll,\n class: \"scroll flex-grow padding-lr\",\n children: /*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)(\"div\", {\n style: {\n width: this.props.dynamicWidth ? \"100%\" : lineWidth,\n height: \"100%\"\n },\n children: [\n this.props.searchPosition == \"static\" && this.renderSearch(),\n this.renderSearchResults(),\n this.renderCategories()\n ]\n })\n }),\n this.props.navPosition == \"bottom\" && this.renderNav(),\n this.props.previewPosition == \"bottom\" && this.renderPreview(),\n this.state.showSkins && this.renderSkins(),\n this.renderLiveRegion()\n ]\n });\n }\n constructor(props){\n super();\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"darkMediaCallback\", ()=>{\n if (this.props.theme != \"auto\") return;\n this.setState({\n theme: this.darkMedia.matches ? \"dark\" : \"light\"\n });\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"handleClickOutside\", (e)=>{\n const { element: element } = this.props;\n if (e.target != element) {\n if (this.state.showSkins) this.closeSkins();\n if (this.props.onClickOutside) this.props.onClickOutside(e);\n }\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"handleBaseClick\", (e)=>{\n if (!this.state.showSkins) return;\n if (!e.target.closest(\".menu\")) {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.closeSkins();\n }\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"handleBaseKeydown\", (e)=>{\n if (!this.state.showSkins) return;\n if (e.key == \"Escape\") {\n e.preventDefault();\n e.stopImmediatePropagation();\n this.closeSkins();\n }\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"handleSearchClick\", ()=>{\n const emoji = this.getEmojiByPos(this.state.pos);\n if (!emoji) return;\n this.setState({\n pos: [\n -1,\n -1\n ]\n });\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"handleSearchInput\", async ()=>{\n const input = this.refs.searchInput.current;\n if (!input) return;\n const { value: value } = input;\n const searchResults = await (0, $c4d155af13ad4d4b$export$2e2bcd8739ae039).search(value);\n const afterRender = ()=>{\n if (!this.refs.scroll.current) return;\n this.refs.scroll.current.scrollTop = 0;\n };\n if (!searchResults) return this.setState({\n searchResults: searchResults,\n pos: [\n -1,\n -1\n ]\n }, afterRender);\n const pos = input.selectionStart == input.value.length ? [\n 0,\n 0\n ] : [\n -1,\n -1\n ];\n const grid = [];\n grid.setsize = searchResults.length;\n let row = null;\n for (let emoji of searchResults){\n if (!grid.length || row.length == this.getPerLine()) {\n row = [];\n row.__categoryId = \"search\";\n row.__index = grid.length;\n grid.push(row);\n }\n row.push(emoji);\n }\n this.ignoreMouse();\n this.setState({\n searchResults: grid,\n pos: pos\n }, afterRender);\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"handleSearchKeyDown\", (e)=>{\n // const specialKey = e.altKey || e.ctrlKey || e.metaKey\n const input = e.currentTarget;\n e.stopImmediatePropagation();\n switch(e.key){\n case \"ArrowLeft\":\n // if (specialKey) return\n // e.preventDefault()\n this.navigate({\n e: e,\n input: input,\n left: true\n });\n break;\n case \"ArrowRight\":\n // if (specialKey) return\n // e.preventDefault()\n this.navigate({\n e: e,\n input: input,\n right: true\n });\n break;\n case \"ArrowUp\":\n // if (specialKey) return\n // e.preventDefault()\n this.navigate({\n e: e,\n input: input,\n up: true\n });\n break;\n case \"ArrowDown\":\n // if (specialKey) return\n // e.preventDefault()\n this.navigate({\n e: e,\n input: input,\n down: true\n });\n break;\n case \"Enter\":\n e.preventDefault();\n this.handleEmojiClick({\n e: e,\n pos: this.state.pos\n });\n break;\n case \"Escape\":\n e.preventDefault();\n if (this.state.searchResults) this.clearSearch();\n else this.unfocusSearch();\n break;\n default:\n break;\n }\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"clearSearch\", ()=>{\n const input = this.refs.searchInput.current;\n if (!input) return;\n input.value = \"\";\n input.focus();\n this.handleSearchInput();\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"handleCategoryClick\", ({ category: category , i: i })=>{\n this.scrollTo(i == 0 ? {\n row: -1\n } : {\n categoryId: category.id\n });\n });\n (0, $c770c458706daa72$export$2e2bcd8739ae039)(this, \"openSkins\", (e)=>{\n const { currentTarget: currentTarget } = e;\n const rect = currentTarget.getBoundingClientRect();\n this.setState({\n showSkins: rect\n }, async ()=>{\n // Firefox requires 2 frames for the transition to consistenly work\n await (0, $693b183b0a78708f$export$e772c8ff12451969)(2);\n const menu = this.refs.menu.current;\n if (!menu) return;\n menu.classList.remove(\"hidden\");\n this.refs.skinToneRadio.current.focus();\n this.base.addEventListener(\"click\", this.handleBaseClick, true);\n this.base.addEventListener(\"keydown\", this.handleBaseKeydown, true);\n });\n });\n this.observers = [];\n this.state = {\n pos: [\n -1,\n -1\n ],\n perLine: this.initDynamicPerLine(props),\n visibleRows: {\n 0: true\n },\n ...this.getInitialState(props)\n };\n }\n}\n\n\n\n\n\n\n\n\n\nclass $efa000751917694d$export$2e2bcd8739ae039 extends (0, $26f27c338a96b1a6$export$2e2bcd8739ae039) {\n async connectedCallback() {\n const props = (0, $7adb23b0109cc36a$export$75fe5f91d452f94b)(this.props, (0, $b247ea80b67298d5$export$2e2bcd8739ae039), this);\n props.element = this;\n props.ref = (component)=>{\n this.component = component;\n };\n await (0, $7adb23b0109cc36a$export$2cd8252107eb640b)(props);\n if (this.disconnected) return;\n (0, $fb96b826c0c5f37a$export$b3890eb0ae9dca99)(/*#__PURE__*/ (0, $bd9dd35321b03dd4$export$34b9dba7ce09269b)((0, $89bd6bb200cc8fef$export$2e2bcd8739ae039), {\n ...props\n }), this.shadowRoot);\n }\n constructor(props){\n super(props, {\n styles: (0, (/*@__PURE__*/$parcel$interopDefault($329d53ba9fd7125f$exports)))\n });\n }\n}\n(0, $c770c458706daa72$export$2e2bcd8739ae039)($efa000751917694d$export$2e2bcd8739ae039, \"Props\", (0, $b247ea80b67298d5$export$2e2bcd8739ae039));\nif (typeof customElements !== \"undefined\" && !customElements.get(\"em-emoji-picker\")) customElements.define(\"em-emoji-picker\", $efa000751917694d$export$2e2bcd8739ae039);\n\n\nvar $329d53ba9fd7125f$exports = {};\n$329d53ba9fd7125f$exports = \":host {\\n width: min-content;\\n height: 435px;\\n min-height: 230px;\\n border-radius: var(--border-radius);\\n box-shadow: var(--shadow);\\n --border-radius: 10px;\\n --category-icon-size: 18px;\\n --font-family: -apple-system, BlinkMacSystemFont, \\\"Helvetica Neue\\\", sans-serif;\\n --font-size: 15px;\\n --preview-placeholder-size: 21px;\\n --preview-title-size: 1.1em;\\n --preview-subtitle-size: .9em;\\n --shadow-color: 0deg 0% 0%;\\n --shadow: .3px .5px 2.7px hsl(var(--shadow-color) / .14), .4px .8px 1px -3.2px hsl(var(--shadow-color) / .14), 1px 2px 2.5px -4.5px hsl(var(--shadow-color) / .14);\\n display: flex;\\n}\\n\\n[data-theme=\\\"light\\\"] {\\n --em-rgb-color: var(--rgb-color, 34, 36, 39);\\n --em-rgb-accent: var(--rgb-accent, 34, 102, 237);\\n --em-rgb-background: var(--rgb-background, 255, 255, 255);\\n --em-rgb-input: var(--rgb-input, 255, 255, 255);\\n --em-color-border: var(--color-border, rgba(0, 0, 0, .05));\\n --em-color-border-over: var(--color-border-over, rgba(0, 0, 0, .1));\\n}\\n\\n[data-theme=\\\"dark\\\"] {\\n --em-rgb-color: var(--rgb-color, 222, 222, 221);\\n --em-rgb-accent: var(--rgb-accent, 58, 130, 247);\\n --em-rgb-background: var(--rgb-background, 21, 22, 23);\\n --em-rgb-input: var(--rgb-input, 0, 0, 0);\\n --em-color-border: var(--color-border, rgba(255, 255, 255, .1));\\n --em-color-border-over: var(--color-border-over, rgba(255, 255, 255, .2));\\n}\\n\\n#root {\\n --color-a: rgb(var(--em-rgb-color));\\n --color-b: rgba(var(--em-rgb-color), .65);\\n --color-c: rgba(var(--em-rgb-color), .45);\\n --padding: 12px;\\n --padding-small: calc(var(--padding) / 2);\\n --sidebar-width: 16px;\\n --duration: 225ms;\\n --duration-fast: 125ms;\\n --duration-instant: 50ms;\\n --easing: cubic-bezier(.4, 0, .2, 1);\\n width: 100%;\\n text-align: left;\\n border-radius: var(--border-radius);\\n background-color: rgb(var(--em-rgb-background));\\n position: relative;\\n}\\n\\n@media (prefers-reduced-motion) {\\n #root {\\n --duration: 0;\\n --duration-fast: 0;\\n --duration-instant: 0;\\n }\\n}\\n\\n#root[data-menu] button {\\n cursor: auto;\\n}\\n\\n#root[data-menu] .menu button {\\n cursor: pointer;\\n}\\n\\n:host, #root, input, button {\\n color: rgb(var(--em-rgb-color));\\n font-family: var(--font-family);\\n font-size: var(--font-size);\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n line-height: normal;\\n}\\n\\n*, :before, :after {\\n box-sizing: border-box;\\n min-width: 0;\\n margin: 0;\\n padding: 0;\\n}\\n\\n.relative {\\n position: relative;\\n}\\n\\n.flex {\\n display: flex;\\n}\\n\\n.flex-auto {\\n flex: none;\\n}\\n\\n.flex-center {\\n justify-content: center;\\n}\\n\\n.flex-column {\\n flex-direction: column;\\n}\\n\\n.flex-grow {\\n flex: auto;\\n}\\n\\n.flex-middle {\\n align-items: center;\\n}\\n\\n.flex-wrap {\\n flex-wrap: wrap;\\n}\\n\\n.padding {\\n padding: var(--padding);\\n}\\n\\n.padding-t {\\n padding-top: var(--padding);\\n}\\n\\n.padding-lr {\\n padding-left: var(--padding);\\n padding-right: var(--padding);\\n}\\n\\n.padding-r {\\n padding-right: var(--padding);\\n}\\n\\n.padding-small {\\n padding: var(--padding-small);\\n}\\n\\n.padding-small-b {\\n padding-bottom: var(--padding-small);\\n}\\n\\n.padding-small-lr {\\n padding-left: var(--padding-small);\\n padding-right: var(--padding-small);\\n}\\n\\n.margin {\\n margin: var(--padding);\\n}\\n\\n.margin-r {\\n margin-right: var(--padding);\\n}\\n\\n.margin-l {\\n margin-left: var(--padding);\\n}\\n\\n.margin-small-l {\\n margin-left: var(--padding-small);\\n}\\n\\n.margin-small-lr {\\n margin-left: var(--padding-small);\\n margin-right: var(--padding-small);\\n}\\n\\n.align-l {\\n text-align: left;\\n}\\n\\n.align-r {\\n text-align: right;\\n}\\n\\n.color-a {\\n color: var(--color-a);\\n}\\n\\n.color-b {\\n color: var(--color-b);\\n}\\n\\n.color-c {\\n color: var(--color-c);\\n}\\n\\n.ellipsis {\\n white-space: nowrap;\\n max-width: 100%;\\n width: auto;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n}\\n\\n.sr-only {\\n width: 1px;\\n height: 1px;\\n position: absolute;\\n top: auto;\\n left: -10000px;\\n overflow: hidden;\\n}\\n\\na {\\n cursor: pointer;\\n color: rgb(var(--em-rgb-accent));\\n}\\n\\na:hover {\\n text-decoration: underline;\\n}\\n\\n.spacer {\\n height: 10px;\\n}\\n\\n[dir=\\\"rtl\\\"] .scroll {\\n padding-left: 0;\\n padding-right: var(--padding);\\n}\\n\\n.scroll {\\n padding-right: 0;\\n overflow-x: hidden;\\n overflow-y: auto;\\n}\\n\\n.scroll::-webkit-scrollbar {\\n width: var(--sidebar-width);\\n height: var(--sidebar-width);\\n}\\n\\n.scroll::-webkit-scrollbar-track {\\n border: 0;\\n}\\n\\n.scroll::-webkit-scrollbar-button {\\n width: 0;\\n height: 0;\\n display: none;\\n}\\n\\n.scroll::-webkit-scrollbar-corner {\\n background-color: rgba(0, 0, 0, 0);\\n}\\n\\n.scroll::-webkit-scrollbar-thumb {\\n min-height: 20%;\\n min-height: 65px;\\n border: 4px solid rgb(var(--em-rgb-background));\\n border-radius: 8px;\\n}\\n\\n.scroll::-webkit-scrollbar-thumb:hover {\\n background-color: var(--em-color-border-over) !important;\\n}\\n\\n.scroll:hover::-webkit-scrollbar-thumb {\\n background-color: var(--em-color-border);\\n}\\n\\n.sticky {\\n z-index: 1;\\n background-color: rgba(var(--em-rgb-background), .9);\\n -webkit-backdrop-filter: blur(4px);\\n backdrop-filter: blur(4px);\\n font-weight: 500;\\n position: sticky;\\n top: -1px;\\n}\\n\\n[dir=\\\"rtl\\\"] .search input[type=\\\"search\\\"] {\\n padding: 10px 2.2em 10px 2em;\\n}\\n\\n[dir=\\\"rtl\\\"] .search .loupe {\\n left: auto;\\n right: .7em;\\n}\\n\\n[dir=\\\"rtl\\\"] .search .delete {\\n left: .7em;\\n right: auto;\\n}\\n\\n.search {\\n z-index: 2;\\n position: relative;\\n}\\n\\n.search input, .search button {\\n font-size: calc(var(--font-size) - 1px);\\n}\\n\\n.search input[type=\\\"search\\\"] {\\n width: 100%;\\n background-color: var(--em-color-border);\\n transition-duration: var(--duration);\\n transition-property: background-color, box-shadow;\\n transition-timing-function: var(--easing);\\n border: 0;\\n border-radius: 10px;\\n outline: 0;\\n padding: 10px 2em 10px 2.2em;\\n display: block;\\n}\\n\\n.search input[type=\\\"search\\\"]::-ms-input-placeholder {\\n color: inherit;\\n opacity: .6;\\n}\\n\\n.search input[type=\\\"search\\\"]::placeholder {\\n color: inherit;\\n opacity: .6;\\n}\\n\\n.search input[type=\\\"search\\\"], .search input[type=\\\"search\\\"]::-webkit-search-decoration, .search input[type=\\\"search\\\"]::-webkit-search-cancel-button, .search input[type=\\\"search\\\"]::-webkit-search-results-button, .search input[type=\\\"search\\\"]::-webkit-search-results-decoration {\\n -webkit-appearance: none;\\n -ms-appearance: none;\\n appearance: none;\\n}\\n\\n.search input[type=\\\"search\\\"]:focus {\\n background-color: rgb(var(--em-rgb-input));\\n box-shadow: inset 0 0 0 1px rgb(var(--em-rgb-accent)), 0 1px 3px rgba(65, 69, 73, .2);\\n}\\n\\n.search .icon {\\n z-index: 1;\\n color: rgba(var(--em-rgb-color), .7);\\n position: absolute;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n.search .loupe {\\n pointer-events: none;\\n left: .7em;\\n}\\n\\n.search .delete {\\n right: .7em;\\n}\\n\\nsvg {\\n fill: currentColor;\\n width: 1em;\\n height: 1em;\\n}\\n\\nbutton {\\n -webkit-appearance: none;\\n -ms-appearance: none;\\n appearance: none;\\n cursor: pointer;\\n color: currentColor;\\n background-color: rgba(0, 0, 0, 0);\\n border: 0;\\n}\\n\\n#nav {\\n z-index: 2;\\n padding-top: 12px;\\n padding-bottom: 12px;\\n padding-right: var(--sidebar-width);\\n position: relative;\\n}\\n\\n#nav button {\\n color: var(--color-b);\\n transition: color var(--duration) var(--easing);\\n}\\n\\n#nav button:hover {\\n color: var(--color-a);\\n}\\n\\n#nav svg, #nav img {\\n width: var(--category-icon-size);\\n height: var(--category-icon-size);\\n}\\n\\n#nav[dir=\\\"rtl\\\"] .bar {\\n left: auto;\\n right: 0;\\n}\\n\\n#nav .bar {\\n width: 100%;\\n height: 3px;\\n background-color: rgb(var(--em-rgb-accent));\\n transition: transform var(--duration) var(--easing);\\n border-radius: 3px 3px 0 0;\\n position: absolute;\\n bottom: -12px;\\n left: 0;\\n}\\n\\n#nav button[aria-selected] {\\n color: rgb(var(--em-rgb-accent));\\n}\\n\\n#preview {\\n z-index: 2;\\n padding: calc(var(--padding) + 4px) var(--padding);\\n padding-right: var(--sidebar-width);\\n position: relative;\\n}\\n\\n#preview .preview-placeholder {\\n font-size: var(--preview-placeholder-size);\\n}\\n\\n#preview .preview-title {\\n font-size: var(--preview-title-size);\\n}\\n\\n#preview .preview-subtitle {\\n font-size: var(--preview-subtitle-size);\\n}\\n\\n#nav:before, #preview:before {\\n content: \\\"\\\";\\n height: 2px;\\n position: absolute;\\n left: 0;\\n right: 0;\\n}\\n\\n#nav[data-position=\\\"top\\\"]:before, #preview[data-position=\\\"top\\\"]:before {\\n background: linear-gradient(to bottom, var(--em-color-border), transparent);\\n top: 100%;\\n}\\n\\n#nav[data-position=\\\"bottom\\\"]:before, #preview[data-position=\\\"bottom\\\"]:before {\\n background: linear-gradient(to top, var(--em-color-border), transparent);\\n bottom: 100%;\\n}\\n\\n.category:last-child {\\n min-height: calc(100% + 1px);\\n}\\n\\n.category button {\\n font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, sans-serif;\\n position: relative;\\n}\\n\\n.category button > * {\\n position: relative;\\n}\\n\\n.category button .background {\\n opacity: 0;\\n background-color: var(--em-color-border);\\n transition: opacity var(--duration-fast) var(--easing) var(--duration-instant);\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.category button:hover .background {\\n transition-duration: var(--duration-instant);\\n transition-delay: 0s;\\n}\\n\\n.category button[aria-selected] .background {\\n opacity: 1;\\n}\\n\\n.category button[data-keyboard] .background {\\n transition: none;\\n}\\n\\n.row {\\n width: 100%;\\n position: absolute;\\n top: 0;\\n left: 0;\\n}\\n\\n.skin-tone-button {\\n border: 1px solid rgba(0, 0, 0, 0);\\n border-radius: 100%;\\n}\\n\\n.skin-tone-button:hover {\\n border-color: var(--em-color-border);\\n}\\n\\n.skin-tone-button:active .skin-tone {\\n transform: scale(.85) !important;\\n}\\n\\n.skin-tone-button .skin-tone {\\n transition: transform var(--duration) var(--easing);\\n}\\n\\n.skin-tone-button[aria-selected] {\\n background-color: var(--em-color-border);\\n border-top-color: rgba(0, 0, 0, .05);\\n border-bottom-color: rgba(0, 0, 0, 0);\\n border-left-width: 0;\\n border-right-width: 0;\\n}\\n\\n.skin-tone-button[aria-selected] .skin-tone {\\n transform: scale(.9);\\n}\\n\\n.menu {\\n z-index: 2;\\n white-space: nowrap;\\n border: 1px solid var(--em-color-border);\\n background-color: rgba(var(--em-rgb-background), .9);\\n -webkit-backdrop-filter: blur(4px);\\n backdrop-filter: blur(4px);\\n transition-property: opacity, transform;\\n transition-duration: var(--duration);\\n transition-timing-function: var(--easing);\\n border-radius: 10px;\\n padding: 4px;\\n position: absolute;\\n box-shadow: 1px 1px 5px rgba(0, 0, 0, .05);\\n}\\n\\n.menu.hidden {\\n opacity: 0;\\n}\\n\\n.menu[data-position=\\\"bottom\\\"] {\\n transform-origin: 100% 100%;\\n}\\n\\n.menu[data-position=\\\"bottom\\\"].hidden {\\n transform: scale(.9)rotate(-3deg)translateY(5%);\\n}\\n\\n.menu[data-position=\\\"top\\\"] {\\n transform-origin: 100% 0;\\n}\\n\\n.menu[data-position=\\\"top\\\"].hidden {\\n transform: scale(.9)rotate(3deg)translateY(-5%);\\n}\\n\\n.menu input[type=\\\"radio\\\"] {\\n clip: rect(0 0 0 0);\\n width: 1px;\\n height: 1px;\\n border: 0;\\n margin: 0;\\n padding: 0;\\n position: absolute;\\n overflow: hidden;\\n}\\n\\n.menu input[type=\\\"radio\\\"]:checked + .option {\\n box-shadow: 0 0 0 2px rgb(var(--em-rgb-accent));\\n}\\n\\n.option {\\n width: 100%;\\n border-radius: 6px;\\n padding: 4px 6px;\\n}\\n\\n.option:hover {\\n color: #fff;\\n background-color: rgb(var(--em-rgb-accent));\\n}\\n\\n.skin-tone {\\n width: 16px;\\n height: 16px;\\n border-radius: 100%;\\n display: inline-block;\\n position: relative;\\n overflow: hidden;\\n}\\n\\n.skin-tone:after {\\n content: \\\"\\\";\\n mix-blend-mode: overlay;\\n background: linear-gradient(rgba(255, 255, 255, .2), rgba(0, 0, 0, 0));\\n border: 1px solid rgba(0, 0, 0, .8);\\n border-radius: 100%;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n box-shadow: inset 0 -2px 3px #000, inset 0 1px 2px #fff;\\n}\\n\\n.skin-tone-1 {\\n background-color: #ffc93a;\\n}\\n\\n.skin-tone-2 {\\n background-color: #ffdab7;\\n}\\n\\n.skin-tone-3 {\\n background-color: #e7b98f;\\n}\\n\\n.skin-tone-4 {\\n background-color: #c88c61;\\n}\\n\\n.skin-tone-5 {\\n background-color: #a46134;\\n}\\n\\n.skin-tone-6 {\\n background-color: #5d4437;\\n}\\n\\n[data-index] {\\n justify-content: space-between;\\n}\\n\\n[data-emoji-set=\\\"twitter\\\"] .skin-tone:after {\\n box-shadow: none;\\n border-color: rgba(0, 0, 0, .5);\\n}\\n\\n[data-emoji-set=\\\"twitter\\\"] .skin-tone-1 {\\n background-color: #fade72;\\n}\\n\\n[data-emoji-set=\\\"twitter\\\"] .skin-tone-2 {\\n background-color: #f3dfd0;\\n}\\n\\n[data-emoji-set=\\\"twitter\\\"] .skin-tone-3 {\\n background-color: #eed3a8;\\n}\\n\\n[data-emoji-set=\\\"twitter\\\"] .skin-tone-4 {\\n background-color: #cfad8d;\\n}\\n\\n[data-emoji-set=\\\"twitter\\\"] .skin-tone-5 {\\n background-color: #a8805d;\\n}\\n\\n[data-emoji-set=\\\"twitter\\\"] .skin-tone-6 {\\n background-color: #765542;\\n}\\n\\n[data-emoji-set=\\\"google\\\"] .skin-tone:after {\\n box-shadow: inset 0 0 2px 2px rgba(0, 0, 0, .4);\\n}\\n\\n[data-emoji-set=\\\"google\\\"] .skin-tone-1 {\\n background-color: #f5c748;\\n}\\n\\n[data-emoji-set=\\\"google\\\"] .skin-tone-2 {\\n background-color: #f1d5aa;\\n}\\n\\n[data-emoji-set=\\\"google\\\"] .skin-tone-3 {\\n background-color: #d4b48d;\\n}\\n\\n[data-emoji-set=\\\"google\\\"] .skin-tone-4 {\\n background-color: #aa876b;\\n}\\n\\n[data-emoji-set=\\\"google\\\"] .skin-tone-5 {\\n background-color: #916544;\\n}\\n\\n[data-emoji-set=\\\"google\\\"] .skin-tone-6 {\\n background-color: #61493f;\\n}\\n\\n[data-emoji-set=\\\"facebook\\\"] .skin-tone:after {\\n border-color: rgba(0, 0, 0, .4);\\n box-shadow: inset 0 -2px 3px #000, inset 0 1px 4px #fff;\\n}\\n\\n[data-emoji-set=\\\"facebook\\\"] .skin-tone-1 {\\n background-color: #f5c748;\\n}\\n\\n[data-emoji-set=\\\"facebook\\\"] .skin-tone-2 {\\n background-color: #f1d5aa;\\n}\\n\\n[data-emoji-set=\\\"facebook\\\"] .skin-tone-3 {\\n background-color: #d4b48d;\\n}\\n\\n[data-emoji-set=\\\"facebook\\\"] .skin-tone-4 {\\n background-color: #aa876b;\\n}\\n\\n[data-emoji-set=\\\"facebook\\\"] .skin-tone-5 {\\n background-color: #916544;\\n}\\n\\n[data-emoji-set=\\\"facebook\\\"] .skin-tone-6 {\\n background-color: #61493f;\\n}\\n\\n\";\n\n\n\n\n\n\n\n\n\n\nexport {$efa000751917694d$export$2e2bcd8739ae039 as Picker, $331b4160623139bf$export$2e2bcd8739ae039 as Emoji, $b22cfd0a55410b4f$export$2e2bcd8739ae039 as FrequentlyUsed, $e6eae5155b87f591$export$bcb25aa587e9cb13 as SafeFlags, $c4d155af13ad4d4b$export$2e2bcd8739ae039 as SearchIndex, $f72b75cf796873c7$export$2e2bcd8739ae039 as Store, $7adb23b0109cc36a$export$2cd8252107eb640b as init, $7adb23b0109cc36a$export$2d0294657ab35f1b as Data, $7adb23b0109cc36a$export$dbe3113d60765c1a as I18n, $693b183b0a78708f$export$5ef5574deca44bc0 as getEmojiDataFromNative};\n//# sourceMappingURL=module.js.map\n","<script setup lang='ts'>\nimport '@/ui/utils/guard-custom-elements'\nimport { ref, nextTick, watch, onMounted } from 'vue'\nimport { Picker, init } from 'emoji-mart'\nimport { useUIStore } from '@/ui/stores/store'\nimport { useI18n } from '@/ui/i18n'\nimport data from '@emoji-mart/data/sets/15/apple.json'\nimport en from '@emoji-mart/data/i18n/en.json'\n// import th from '@emoji-mart/data/i18n/th.json' /* emoji-mart 沒有泰文翻譯 */\nimport zh from '@emoji-mart/data/i18n/zh.json'\n// import id from '@emoji-mart/data/i18n/id.json' /* emoji-mart 沒有印尼文翻譯 */\nimport ko from '@emoji-mart/data/i18n/ko.json'\nimport ja from '@emoji-mart/data/i18n/ja.json'\nimport vi from '@emoji-mart/data/i18n/vi.json'\nimport fr from '@emoji-mart/data/i18n/fr.json'\nimport es from '@emoji-mart/data/i18n/es.json'\nimport pt from '@emoji-mart/data/i18n/pt.json'\nimport MdiSmileyOutline from '~icons/mdi/smiley-outline'\n\nconst props = defineProps( {\n elementEmoji: {\n type: [ HTMLButtonElement, null ],\n required: true\n }\n} )\nconst emit = defineEmits<{ insertEmoji: [ emoji: string, skinTone?: number ] }>()\n\n// ─── Stores ────────────────────────────────────────────────────────────────────\n\nconst { state, setPickerVisible, sendSticker } = useUIStore()\nconst { i18n } = useI18n()\n\n// ─── Parameters ────────────────────────────────────────────────────────────────\n\nlet pickerInstance: Picker | null = null\n// 本地 i18n 資料,避免 emoji-mart 從 CDN fetch ( fetch 失敗會導致 DOM 結構不完整進而引發錯誤 )\nconst emojiI18nMap: Record<string, unknown> = { en, zh, ko, ja, vi, fr, es, pt }\n\n// ─── Refs ──────────────────────────────────────────────────────────────────────\n\nconst isEmojiReady = ref( false )\nconst activeTab = ref<string>( 'emoji' )\nconst stickerLoadedMap = ref<Record<string, boolean>>( {} )\nconst elementContainer = ref<HTMLDivElement | null>( null )\nconst elementMount = ref<HTMLDivElement | null>( null )\n\n// ─── Methods ───────────────────────────────────────────────────────────────────\n\nconst onEmojiSelect = ( emoji: { native: string; skin?: number } ) => emit( 'insertEmoji', emoji.native, emoji.skin )\nconst onClickOutside = ( e: PointerEvent ) => {\n if ( !state.isPickerVisible ) return\n const path = e.composedPath()\n if ( path.length === 0 ) return\n const inContainer = elementContainer.value ? path.includes( elementContainer.value ) : false\n const inButton = props.elementEmoji ? path.includes( props.elementEmoji ) : false\n if ( !inContainer && !inButton ) setPickerVisible( false )\n}\nconst injectShadowStyles = () => {\n const pickerElement = elementMount.value?.querySelector( 'em-emoji-picker' )\n const rootElement = pickerElement?.shadowRoot\n if ( !rootElement ) return\n const sheet = new CSSStyleSheet()\n /* emoji-mart 無 ::part() 且無對應 CSS 變數,改以 adoptedStyleSheets 注入一次 rule\n text-transform: uppercase 覆蓋 emoji-mart 預設的 capitalize */\n sheet.replaceSync( `.sticky { color: #707174; font-size: 12px; line-height: 1; user-select: none; text-transform: uppercase; }` )\n rootElement.adoptedStyleSheets = [ ...rootElement.adoptedStyleSheets, sheet ]\n}\nconst waitForBackground = async ( element: Element ): Promise<void> => {\n // 瀏覽器會快取圖片,建立同一個 src 的 Image 物件時,若圖片已在快取中,onload 會立刻觸發\n return new Promise( ( resolve, reject ) => {\n const style = window.getComputedStyle( element )\n const bgImage = style.backgroundImage\n // 取出 url(...) 裡的網址\n const match = bgImage.match( /url\\([\"']?(.+?)[\"']?\\)/ )\n if ( !match ) return reject()\n const img = new Image()\n img.onload = () => resolve()\n img.onerror = () => reject()\n img.src = match[ 1 ]\n } )\n}\nconst waitForEmojisOnLoad = async () => {\n if ( isEmojiReady.value ) return\n const pickerElement = elementMount.value?.querySelector( 'em-emoji-picker' )\n const rootElement = pickerElement?.shadowRoot\n if ( !rootElement ) {\n console.error( '[ MeowMeow ] Shadow root for <em-emoji-picker> cannot be found.' )\n return\n }\n let attempts = 0\n while ( rootElement.querySelectorAll( 'span[data-emoji-set] > span' ).length === 0 && attempts < 10 ) {\n attempts++\n await new Promise( r => setTimeout( r, 100 ) )\n }\n const imageElements = rootElement.querySelectorAll( 'span[data-emoji-set] > span' )\n Promise.all( Array.from( imageElements ).map( element => waitForBackground( element ) ) )\n .then( () => isEmojiReady.value = true )\n .catch( () => console.error( '[ MeowMeow ] The image URL for the emoji cannot be found' ) )\n}\nconst recreatePicker = () => {\n isEmojiReady.value = false\n elementMount.value?.querySelector( 'em-emoji-picker' )?.remove()\n pickerInstance = new Picker( {\n data,\n set: 'apple',\n i18n: emojiI18nMap[ i18n.value.emojiMartLocale ] ?? emojiI18nMap.en,\n theme: 'dark',\n navPosition: 'top',\n searchPosition: 'sticky',\n skinTonePosition: 'none',\n previewPosition: 'none',\n maxFrequentRows: 0,\n perLine: 8,\n onEmojiSelect,\n onClickOutside: state.isPickerVisible ? onClickOutside : null,\n parent: elementMount.value\n } )\n nextTick( injectShadowStyles )\n}\nconst initEmojiPicker = ( forceRecreate = false ) => {\n // locale 變更時必須 destroy + recreate,update() 不會重新載入 i18n 資料\n if ( !pickerInstance || forceRecreate ) recreatePicker()\n if ( !state.isPickerVisible ) {\n pickerInstance!.update( { onClickOutside: null } )\n return\n }\n pickerInstance!.update( { onClickOutside } )\n if ( activeTab.value !== 'emoji' ) return\n nextTick( waitForEmojisOnLoad )\n}\n\n// ─── Watch ─────────────────────────────────────────────────────────────────────\n\nwatch( () => state.isPickerVisible, () => initEmojiPicker() )\nwatch( activeTab, () => initEmojiPicker() )\nwatch( i18n, () => initEmojiPicker( true ) )\n\n// ─── Lifecycle ─────────────────────────────────────────────────────────────────\n\nonMounted( async () => {\n await init( { data, set: 'apple' } as Parameters<typeof init>[ 0 ] )\n initEmojiPicker()\n} )\n</script>\n\n<template>\n <div\n v-show=\"state.isPickerVisible\"\n ref=\"elementContainer\"\n class=\"picker-wrapper\"\n role=\"dialog\"\n :aria-label=\"i18n.emojiPicker.ariaLabel\"\n >\n <!-- 導覽列 -->\n <div class=\"picker-tabs\" role=\"tablist\">\n <!-- Emoji 分頁 -->\n <button\n class=\"picker-tab\"\n :class=\"{ 'picker-tab--active': activeTab === 'emoji' }\"\n role=\"tab\"\n :aria-selected=\"activeTab === 'emoji'\"\n :aria-label=\"i18n.emojiPicker.emojiTabAriaLabel\"\n @click=\"activeTab = 'emoji'\"\n >\n <MdiSmileyOutline aria-hidden=\"true\" width=\"22\" height=\"22\" />\n </button>\n\n <!-- Sticker 分頁 -->\n <button\n v-for=\"cat in state.stickers\" :key=\"cat.id\"\n class=\"picker-tab\"\n :class=\"{ 'picker-tab--active': activeTab === cat.id }\"\n role=\"tab\"\n :aria-selected=\"activeTab === cat.id\"\n :aria-label=\"cat.id\"\n @click=\"activeTab = cat.id\"\n >\n <img\n :src=\"cat.iconUrl\"\n :alt=\"cat.id\"\n width=\"20\"\n height=\"20\"\n loading=\"lazy\"\n >\n </button>\n </div>\n\n <!-- Emoji 內容 -->\n <div v-show=\"activeTab === 'emoji'\" class=\"picker-content\">\n <!-- emoji-mart 掛載點 ( 始終在 DOM 中,供 Picker 初始化 ) -->\n <div\n ref=\"elementMount\"\n class=\"picker-mount\"\n :style=\"{ visibility: isEmojiReady ? 'visible' : 'hidden' }\"\n />\n <!-- Skeleton: emoji 資料載入中 -->\n <div v-show=\"!isEmojiReady\" class=\"picker-skeleton\" aria-hidden=\"true\">\n <div v-for=\"i in 80\" :key=\"i\" class=\"picker-skeleton__item\" />\n </div>\n </div>\n\n <!-- Sticker 內容 -->\n <div\n v-for=\"sticker in state.stickers\"\n v-show=\"activeTab === sticker.id\"\n :key=\"sticker.id\"\n class=\"picker-content picker-content--sticker\"\n >\n <div class=\"sticker-grid\">\n <div\n v-for=\"url in sticker.stickers\"\n :key=\"url\"\n class=\"sticker-item\"\n role=\"button\"\n tabindex=\"0\"\n :aria-label=\"i18n.emojiPicker.stickerItemAriaLabel\"\n @click=\"sendSticker( url )\"\n >\n <img\n v-show=\"stickerLoadedMap[url]\"\n :src=\"url\"\n alt=\"\"\n draggable=\"false\"\n @load=\"stickerLoadedMap[url] = true\"\n >\n\n <!-- Skeleton: 圖片尚未載入 -->\n <div v-show=\"!stickerLoadedMap[url]\" class=\"sticker-skeleton\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, nextTick, watch, onBeforeUnmount } from 'vue'\nimport { useUIStore } from '@/ui/stores/store'\nimport { useI18n } from '@/ui/i18n'\nimport { EMOJI_RE, parseSegments, getSkinFromNative } from '@/ui/utils/emoji'\nimport EmojiPicker from '@/ui/components/EmojiPicker.vue'\nimport MdiClose from '~icons/mdi/close'\nimport MdiBan from '~icons/mdi/ban'\nimport MdiWarningCircle from '~icons/mdi/warning-circle'\nimport MdiClockOutline from '~icons/mdi/clock-outline'\nimport MdiSmiley from '~icons/mdi/smiley'\nimport MdiSend from '~icons/mdi/send'\nimport MdiArrowDownBold from '~icons/mdi/arrow-down-bold'\n\n// ─── Stores ────────────────────────────────────────────────────────────────────\n\nconst { state, setChatVisible, setUnread, setUserAtBottom, setPickerVisible, ackCheckScrollPosition, ackScrollToBottom, ackClearInput, sendMessage } = useUIStore()\nconst { i18n } = useI18n()\n\n// ─── Constants ─────────────────────────────────────────────────────────────────\n\nconst MAX_CHARS = 120\nconst SCROLL_THRESHOLD = 64\n\n// ─── Parameters ──────────────────────────────────────────────────────────────────────\n\nlet savedRange: Range | null = null /* 點擊 emoji 按鈕前,在 blur 事件中儲存游標 Range,確保插入 emoji 時能還原到正確位置 */\nlet rafId: number | null = null\nlet preComposeHTML = ''\nlet preComposeCursorOffset = -1\nlet resizeObserver: ResizeObserver | null = null\nlet lastContentHeight = 0\nlet cooldownTimerId: ReturnType<typeof setInterval> | null = null\nlet cooldownEndTime = 0\n\n// ─── Refs ──────────────────────────────────────────────────────────────────────\n\nconst hasContent = ref( false )\nconst isComposing = ref( false )\nconst isMultiLine = ref( false )\nconst charCount = ref( 0 )\nconst cooldownRemaining = ref( 0 )\nconst elementMessages = ref<HTMLElement | null>( null )\nconst elementMessagesInner = ref<HTMLDivElement | null>( null )\nconst elementInput = ref<HTMLDivElement | null>( null )\nconst elementEmoji = ref<HTMLButtonElement | null>( null )\n\n// ─── Methods ──────────────────────────────────────────────────────────────\n\nconst scrollToBottom = async ( instant = false ) => {\n ackScrollToBottom()\n await nextTick()\n const el = elementMessages.value\n if ( !el ) return\n const target = el.scrollHeight - el.clientHeight\n if ( instant || target <= el.scrollTop ) {\n el.scrollTop = target\n return\n }\n const start = el.scrollTop\n const distance = target - start\n const duration = Math.min( 300, Math.max( 80, distance * 0.3 ) )\n const startTime = performance.now()\n const step = ( now: number ) => {\n const elapsed = now - startTime\n const progress = Math.min( elapsed / duration, 1 )\n const ease = 1 - Math.pow( 1 - progress, 3 )\n el.scrollTop = start + distance * ease\n if ( progress < 1 ) rafId = requestAnimationFrame( step )\n else rafId = null\n }\n if ( rafId !== null ) cancelAnimationFrame( rafId )\n rafId = requestAnimationFrame( step )\n}\nconst handleMessagesScroll = () => {\n const el = elementMessages.value\n if ( !el ) return\n const distFromBottom = el.scrollHeight - el.scrollTop - el.clientHeight\n const isUserAtBottom = distFromBottom <= SCROLL_THRESHOLD\n setUserAtBottom( distFromBottom <= SCROLL_THRESHOLD )\n if ( isUserAtBottom ) setUnread( false )\n}\nconst checkScrollPosition = () => {\n ackCheckScrollPosition()\n handleMessagesScroll()\n}\nconst createEmojiEl = ( native: string, skin?: number ): HTMLElement => {\n // 建立 <em-emoji> 元素\n // contentEditable='false' 使其在 contenteditable 中作為原子單元\n const el = document.createElement( 'em-emoji' )\n el.setAttribute( 'native', native )\n el.setAttribute( 'set', 'apple' )\n el.setAttribute( 'size', '16px' )\n if ( skin !== undefined ) el.setAttribute( 'skin', String( skin ) )\n el.contentEditable = 'false'\n return el\n}\nconst getShadowAwareSelection = ( node: Node ): Selection | null => {\n // 元件被掛在 Shadow DOM,window.getSelection() 無法穿透 shadow 邊界;改從 ShadowRoot 取\n const root = node.getRootNode()\n if ( root instanceof ShadowRoot && typeof ( root as ShadowRoot & { getSelection?: () => Selection | null } ).getSelection === 'function' ) {\n return ( root as ShadowRoot & { getSelection: () => Selection | null } ).getSelection()\n }\n return window.getSelection()\n}\nconst trackSelection = () => {\n // 持續追蹤游標 Range,只在仍落於輸入框內時覆寫,確保失焦後 savedRange 還保有最後一個有效位置\n const div = elementInput.value\n if ( !div ) return\n const sel = getShadowAwareSelection( div )\n if ( !sel || sel.rangeCount === 0 ) return\n const range = sel.getRangeAt( 0 )\n if ( !div.contains( range.commonAncestorContainer ) ) return\n savedRange = range.cloneRange()\n}\nconst getInputText = (): string => {\n // 從 contenteditable 提取純文字,em-emoji 取其 native 屬性,<br> 略過\n const div = elementInput.value\n if ( !div ) return ''\n let text = ''\n for ( const node of Array.from( div.childNodes ) ) {\n if ( node.nodeType === Node.TEXT_NODE ) {\n text += node.textContent ?? ''\n } else if ( node instanceof Element ) {\n const tag = node.tagName.toLowerCase()\n if ( tag === 'em-emoji' ) {\n text += node.getAttribute( 'native' ) ?? ''\n } else if ( tag !== 'br' ) {\n text += node.textContent ?? ''\n }\n }\n }\n return text\n}\nconst updateMultiLine = () => {\n if ( !elementInput.value ) {\n isMultiLine.value = false\n return\n }\n const el = elementInput.value\n const style = getComputedStyle( el )\n const lineHeight = parseFloat( style.lineHeight ) || 18\n const paddingTop = parseFloat( style.paddingTop ) || 0\n const paddingBottom = parseFloat( style.paddingBottom ) || 0\n isMultiLine.value = el.scrollHeight > lineHeight + paddingTop + paddingBottom\n}\nconst clearInput = () => {\n ackClearInput()\n if ( elementInput.value ) {\n elementInput.value.innerHTML = ''\n hasContent.value = false\n charCount.value = 0\n isMultiLine.value = false\n savedRange = null\n }\n}\nconst getCursorTextOffset = ( div: HTMLDivElement ): number => {\n // 計算游標在 div 文字內容中的字元偏移 ( 以 UTF-16 code unit 計 ),em-emoji 的寬度 = native 屬性的字元長度\n const sel = getShadowAwareSelection( div )\n if ( !sel || sel.rangeCount === 0 ) return -1\n\n const range = sel.getRangeAt( 0 )\n const cursorNode = range.startContainer\n\n const childTextLen = ( child: Node ): number => {\n if ( child.nodeType === Node.TEXT_NODE ) return child.textContent?.length ?? 0\n if ( child instanceof Element ) {\n if ( child.tagName.toLowerCase() === 'em-emoji' ) return ( child.getAttribute( 'native' ) ?? '' ).length\n return child.textContent?.length ?? 0\n }\n return 0\n }\n\n // 游標落在 div 本身(兩個子節點之間),startOffset 代表子節點的索引\n if ( cursorNode === div ) {\n let offset = 0\n for ( let i = 0; i < range.startOffset; i++ ) offset += childTextLen( div.childNodes[ i ] )\n return offset\n }\n\n let offset = 0\n for ( const child of Array.from( div.childNodes ) ) {\n if ( child === cursorNode ) return offset + range.startOffset\n offset += childTextLen( child )\n }\n return offset\n}\nconst restoreCursorAt = ( div: HTMLDivElement, targetOffset: number ) => {\n // 將游標設回指定字元偏移\n const sel = getShadowAwareSelection( div )\n let offset = 0\n\n for ( const child of Array.from( div.childNodes ) ) {\n if ( child.nodeType === Node.TEXT_NODE ) {\n const len = child.textContent?.length ?? 0\n if ( offset + len >= targetOffset ) {\n const range = document.createRange()\n range.setStart( child, targetOffset - offset )\n range.collapse( true )\n sel?.removeAllRanges()\n sel?.addRange( range )\n return\n }\n offset += len\n } else if ( child instanceof Element && child.tagName.toLowerCase() === 'em-emoji' ) {\n // targetOffset 落在 emoji 之前:游標置於 emoji 前\n if ( targetOffset <= offset ) {\n const range = document.createRange()\n range.setStartBefore( child )\n range.collapse( true )\n sel?.removeAllRanges()\n sel?.addRange( range )\n return\n }\n offset += ( child.getAttribute( 'native' ) ?? '' ).length\n // targetOffset 落在 emoji 範圍內或緊接其後:游標置於 emoji 後\n if ( offset >= targetOffset ) {\n const range = document.createRange()\n range.setStartAfter( child )\n range.collapse( true )\n sel?.removeAllRanges()\n sel?.addRange( range )\n return\n }\n }\n }\n\n // 超過範圍 → 游標置末\n const range = document.createRange()\n range.selectNodeContents( div )\n range.collapse( false )\n sel?.removeAllRanges()\n sel?.addRange( range )\n}\nconst convertTextEmoji = () => {\n // 掃描 contenteditable 頂層的文字節點,將 emoji Unicode 字元轉換為 <em-emoji> 元素\n const div = elementInput.value\n if ( !div ) return\n const cursorOffset = getCursorTextOffset( div )\n let didConvert = false\n const topChildren = Array.from( div.childNodes )\n for ( const node of topChildren ) {\n if ( node.nodeType !== Node.TEXT_NODE || !node.textContent ) continue\n EMOJI_RE.lastIndex = 0\n if ( !EMOJI_RE.test( node.textContent ) ) continue\n didConvert = true\n const segs = parseSegments( node.textContent )\n const frag = document.createDocumentFragment()\n for ( const seg of segs ) {\n const el = seg.type === 'emoji' ? createEmojiEl( seg.value, getSkinFromNative( seg.value ) ) : document.createTextNode( seg.value )\n frag.appendChild( el )\n }\n node.parentNode?.replaceChild( frag, node )\n }\n if ( didConvert && cursorOffset >= 0 ) restoreCursorAt( div, cursorOffset )\n}\nconst handleInput = ( e: InputEvent ) => {\n if ( e.isComposing ) return\n convertTextEmoji()\n const text = getInputText()\n charCount.value = text.length\n hasContent.value = !!text.trim() && charCount.value <= MAX_CHARS\n updateMultiLine()\n}\nconst handleCompositionStart = () => {\n isComposing.value = true\n const div = elementInput.value\n if ( !div ) return\n preComposeHTML = div.innerHTML\n preComposeCursorOffset = getCursorTextOffset( div )\n}\nconst handleCompositionEnd = () => {\n isComposing.value = false\n convertTextEmoji()\n const text = getInputText()\n if ( text.length > MAX_CHARS ) {\n // 超過上限:完整還原 composition 前的內容和游標位置\n const div = elementInput.value!\n div.innerHTML = preComposeHTML\n if ( preComposeCursorOffset >= 0 ) restoreCursorAt( div, preComposeCursorOffset )\n const restored = getInputText()\n charCount.value = restored.length\n hasContent.value = !!restored.trim()\n updateMultiLine()\n return\n }\n charCount.value = text.length\n hasContent.value = !!text.trim() && charCount.value <= MAX_CHARS\n updateMultiLine()\n}\nconst handlePaste = ( e: ClipboardEvent ) => {\n // 貼上時只取純文字,捨棄所有 HTML 樣式\n e.preventDefault()\n const div = elementInput.value\n if ( !div ) return\n\n const plain = e.clipboardData?.getData( 'text/plain' ) ?? ''\n if ( !plain ) return\n\n // 計算還可以插入多少字元\n const remaining = MAX_CHARS - charCount.value\n if ( remaining <= 0 ) return\n const text = plain.slice( 0, remaining )\n\n // 確保焦點在輸入框,並取得有效的選取範圍\n div.focus()\n const sel = getShadowAwareSelection( div )\n let range: Range\n\n if ( sel && sel.rangeCount > 0 && div.contains( sel.getRangeAt( 0 ).commonAncestorContainer ) ) {\n // 選取範圍確實在輸入框內\n range = sel.getRangeAt( 0 )\n } else if ( savedRange && div.contains( savedRange.commonAncestorContainer ) ) {\n // 用之前儲存的游標位置\n range = savedRange.cloneRange()\n sel?.removeAllRanges()\n sel?.addRange( range )\n } else {\n // fallback:游標置末\n range = document.createRange()\n range.selectNodeContents( div )\n range.collapse( false )\n sel?.removeAllRanges()\n sel?.addRange( range )\n }\n\n // 插入純文字節點\n range.deleteContents()\n const textNode = document.createTextNode( text )\n range.insertNode( textNode )\n range.setStartAfter( textNode )\n range.collapse( true )\n sel?.removeAllRanges()\n sel?.addRange( range )\n\n // 將貼上文字中的 emoji 轉換為 <em-emoji>,並更新計數\n convertTextEmoji()\n const newText = getInputText()\n charCount.value = newText.length\n hasContent.value = !!newText.trim() && charCount.value <= MAX_CHARS\n updateMultiLine()\n}\nconst startCooldown = () => {\n cooldownEndTime = Date.now() + state.cooldown * 1000\n cooldownRemaining.value = state.cooldown\n if ( cooldownTimerId !== null ) clearInterval( cooldownTimerId )\n cooldownTimerId = setInterval( () => {\n const remaining = ( cooldownEndTime - Date.now() ) / 1000\n if ( remaining <= 0 ) {\n cooldownRemaining.value = 0\n clearInterval( cooldownTimerId! )\n cooldownTimerId = null\n } else {\n cooldownRemaining.value = remaining\n }\n }, 100 )\n}\nconst handleSend = () => {\n if ( cooldownRemaining.value > 0 ) return\n sendMessage( getInputText() )\n startCooldown()\n}\nconst handleKeydown = ( e: KeyboardEvent ) => {\n // 按下 Enter 送出訊息;超過字數上限或冷卻中時阻止繼續輸入 ( 保留功能鍵 )\n if ( e.key === 'Enter' && !e.isComposing ) {\n e.preventDefault()\n handleSend()\n return\n }\n const isFunctionKey = [ 'Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End', 'Tab' ].includes( e.key ) || e.ctrlKey || e.metaKey\n if ( charCount.value >= MAX_CHARS && !isFunctionKey ) e.preventDefault()\n}\nconst insertEmoji = ( native: string, skin?: number ) => {\n // 在游標位置 ( 或末尾 ) 插入 <em-emoji> 元素\n const div = elementInput.value\n if ( !div ) return\n if ( charCount.value >= MAX_CHARS ) return\n const el = createEmojiEl( native, skin )\n const sel = getShadowAwareSelection( div )\n if ( savedRange && div.contains( savedRange.commonAncestorContainer ) ) {\n savedRange.deleteContents()\n savedRange.insertNode( el )\n savedRange.setStartAfter( el )\n savedRange.collapse( true )\n sel?.removeAllRanges()\n sel?.addRange( savedRange )\n } else {\n div.appendChild( el )\n const range = document.createRange()\n range.setStartAfter( el )\n range.collapse( true )\n sel?.removeAllRanges()\n sel?.addRange( range )\n }\n div.focus()\n const currentSel = getShadowAwareSelection( div )\n savedRange = currentSel && currentSel.rangeCount > 0 ? currentSel.getRangeAt( 0 ).cloneRange() : null\n const text = getInputText()\n charCount.value = text.length\n hasContent.value = true\n nextTick( updateMultiLine )\n}\nconst addSelectionEventListener = () => document.addEventListener( 'selectionchange', trackSelection )\nconst removeSelectionEventListener = () => document.removeEventListener( 'selectionchange', trackSelection )\nconst onMessagesInnerResize = ( target: HTMLDivElement | null ) => {\n // 內容高度成長 ( 例如 <em-emoji> 非同步渲染後撐高氣泡 ) 時,若使用者本來貼底或正在滾動到底,補滾至底部,避免「差一點點才到底」\n resizeObserver?.disconnect()\n resizeObserver = null\n if ( !target ) return\n lastContentHeight = target.getBoundingClientRect().height\n resizeObserver = new ResizeObserver( entries => {\n const entry = entries[ 0 ]\n if ( !entry ) return\n const newHeight = entry.contentRect.height\n if ( newHeight <= lastContentHeight ) {\n lastContentHeight = newHeight\n return\n }\n lastContentHeight = newHeight\n if ( state.isUserAtBottom || rafId !== null ) scrollToBottom()\n } )\n resizeObserver.observe( target )\n}\n\n// ─── Watch ────────────────────────────────────────────────────────────────\n\nwatch( () => state.isUserAtBottom, value => value && setUnread( false ) )\nwatch( () => state.needCheckScrollPosition, value => value && checkScrollPosition(), { immediate: true } )\nwatch( () => state.needScrollToBottom, value => value && scrollToBottom(), { immediate: true } )\nwatch( () => state.needClearInput, value => value && clearInput(), { immediate: true } )\nwatch( elementMessagesInner, onMessagesInnerResize, { immediate: true } )\n\n// ─── Lifecycle ────────────────────────────────────────────────────────────\n\nonBeforeUnmount( () => {\n if ( rafId !== null ) cancelAnimationFrame( rafId )\n if ( cooldownTimerId !== null ) clearInterval( cooldownTimerId )\n resizeObserver?.disconnect()\n removeSelectionEventListener()\n} )\n\nconst getErrorText = ( errorCode: string | undefined ): string => {\n const errors = i18n.value.chatRoom.error\n if ( errorCode && errorCode in errors ) {\n return errors[ errorCode as keyof typeof errors ]\n }\n return errors.UNKNOWN_ERROR\n}\n</script>\n\n<template>\n <div class=\"chat-room\">\n <!-- ── 標頭 ── -->\n <header class=\"chat-header\">\n <span class=\"chat-header__title\">{{ state.title }}</span>\n <button\n class=\"chat-header__close\"\n :aria-label=\"i18n.chatRoom.closeAriaLabel\"\n @click=\"setChatVisible( false )\"\n >\n <MdiClose aria-hidden=\"true\" width=\"20\" height=\"20\" />\n </button>\n </header>\n\n <!-- ── 封禁畫面 ── -->\n <div v-if=\"state.isBanned\" class=\"ban-screen\" role=\"alert\">\n <MdiBan\n class=\"ban-screen__icon\"\n aria-hidden=\"true\"\n width=\"36\"\n height=\"36\"\n />\n <p class=\"ban-screen__text\">\n {{ i18n.chatRoom.banned }}\n </p>\n </div>\n\n <!-- ── 訊息 ── -->\n <div v-else class=\"chat-messages-outer\">\n <main\n ref=\"elementMessages\"\n class=\"chat-messages\"\n :aria-label=\"i18n.chatRoom.messageListAriaLabel\"\n aria-live=\"polite\"\n @scroll=\"handleMessagesScroll\"\n >\n <div ref=\"elementMessagesInner\" class=\"chat-messages__inner\">\n <!-- 載入中 -->\n <div\n v-if=\"state.isLoading\"\n class=\"chat-loading\"\n role=\"status\"\n :aria-label=\"i18n.chatRoom.loadingAriaLabel\"\n >\n <div class=\"chat-loading__spinner\" aria-hidden=\"true\" />\n <span class=\"chat-loading__text\">{{ i18n.chatRoom.loading }}</span>\n </div>\n\n <template v-else>\n <!-- 聊天室規則 -->\n <div\n v-if=\"state.rules && state.isRulesVisible\"\n class=\"rules-card\"\n role=\"complementary\"\n :aria-label=\"i18n.chatRoom.rules.ariaLabel\"\n >\n <!-- eslint-disable-next-line vue/no-v-html -->\n <div class=\"rules-card__content\" v-html=\"state.rules\" />\n </div>\n\n <!-- 訊息列表 -->\n <div v-for=\"message in state.messages\" :key=\"message.id\" class=\"message-item\">\n <div\n v-if=\"!message.isSystem\"\n class=\"message-row\"\n :class=\"{\n 'message-row--own': message.isOwn,\n 'message-row--other': !message.isOwn\n }\"\n >\n <div class=\"message-group\">\n <!-- 發送者 -->\n <span class=\"message-sender\" :class=\"message.isOwn ? 'message-sender--own' : ''\">\n {{ message.isOwn ? i18n.common.you : message.sender }}\n </span>\n\n <!-- 貼圖 ( 圖片,無氣泡 ) -->\n <img\n v-if=\"message.kind === 'sticker'\"\n class=\"message-sticker\"\n alt=\"\"\n draggable=\"false\"\n :src=\"message.stickerUrl\"\n :aria-label=\"`${ message.isOwn ? i18n.common.you : message.sender }: sticker`\"\n >\n\n <!-- 文字氣泡 -->\n <div\n v-else-if=\"message.kind === 'text'\"\n role=\"article\"\n class=\"message-bubble\"\n :class=\"{\n 'message-bubble__own': message.isOwn,\n 'message-bubble__other': !message.isOwn\n }\"\n >\n <template v-for=\"( seg, i ) in message.segments\" :key=\"i\">\n <em-emoji\n v-if=\"seg.type === 'emoji'\"\n class=\"message-em-emoji\"\n :native=\"seg.value\"\n :skin=\"seg.skin\"\n set=\"apple\"\n size=\"20px\"\n />\n <span v-else>{{ seg.value }}</span>\n </template>\n </div>\n\n <!-- 訊息傳送中提示 -->\n <div v-if=\"message.pending\" class=\"message-sending\">\n <span>{{ i18n.chatRoom.message.sending }}</span>\n <MdiClockOutline\n aria-hidden=\"true\"\n width=\"14\"\n height=\"14\"\n />\n </div>\n\n <!-- 訊息傳送失敗提示 -->\n <div v-if=\"message.errorCode\" class=\"message-error\">\n <span>\n {{ i18n.chatRoom.message.failed }}\n </span>\n <MdiWarningCircle\n aria-hidden=\"true\"\n width=\"16\"\n height=\"16\"\n />\n </div>\n </div>\n </div>\n\n <!-- 錯誤詳細通知面板 / 系統訊息 ( 全寬,位於訊息列下方 ) -->\n <div v-if=\"message.errorCode || message.isSystem\" class=\"message-error-detail\" role=\"alert\">\n {{ message.isSystem && 'text' in message ? message.text : getErrorText( message.errorCode ) }}\n </div>\n </div>\n </template>\n </div>\n </main>\n\n <!-- ── 滾動至底部按鈕 ── -->\n <Transition name=\"fade\">\n <button\n v-if=\"!state.isUserAtBottom\"\n class=\"scroll-to-bottom-btn\"\n :aria-label=\"i18n.chatRoom.scrollToBottomAriaLabel\"\n @click=\"scrollToBottom()\"\n >\n <MdiArrowDownBold aria-hidden=\"true\" width=\"18\" height=\"18\" />\n </button>\n </Transition>\n </div>\n\n <!-- ── Emoji / Sticker 選擇器 ── -->\n <Transition name=\"picker\">\n <EmojiPicker\n v-show=\"state.isPickerVisible\"\n :element-emoji=\"elementEmoji\"\n @insert-emoji=\"insertEmoji\"\n />\n </Transition>\n\n <!-- ── 底部 ── -->\n <footer v-if=\"!state.isBanned\" class=\"chat-footer\">\n <!-- 輸入框 -->\n <div\n ref=\"elementInput\"\n class=\"chat-footer__input\"\n role=\"textbox\"\n aria-multiline\n :aria-label=\"i18n.chatRoom.input.ariaLabel\"\n :contenteditable=\"state.isDisabled ? 'false' : 'true'\"\n :data-empty=\"!hasContent && !isComposing\"\n :data-muted=\"state.isMuted\"\n :data-text__placeholder=\"i18n.chatRoom.input.placeholder\"\n :data-text__muted=\"i18n.chatRoom.input.muted\"\n @input=\"handleInput\"\n @focus=\"addSelectionEventListener\"\n @blur=\"removeSelectionEventListener\"\n @compositionstart=\"handleCompositionStart\"\n @compositionend=\"handleCompositionEnd\"\n @keydown=\"handleKeydown\"\n @paste=\"handlePaste\"\n />\n\n <!-- 其他功能 -->\n <div class=\"chat-footer__others\">\n <div v-if=\"isMultiLine\" class=\"chat-footer__right-top\">\n <!-- 文字計數 -->\n <span class=\"chat-footer__count\">{{ charCount }}/{{ MAX_CHARS }}</span>\n </div>\n\n <div class=\"chat-footer__right-bottom\">\n <!-- 表情符號 -->\n <button\n ref=\"elementEmoji\"\n class=\"chat-footer__btn chat-footer__emoji\"\n :disabled=\"state.isDisabled\"\n :aria-label=\"state.isPickerVisible ? i18n.chatRoom.emojiButton.closeAriaLabel : i18n.chatRoom.emojiButton.openAriaLabel\"\n :aria-expanded=\"state.isPickerVisible\"\n @click=\"setPickerVisible( !state.isPickerVisible )\"\n >\n <MdiSmiley aria-hidden=\"true\" width=\"20\" height=\"20\" />\n </button>\n\n <!-- 傳送訊息 -->\n <button\n class=\"chat-footer__btn chat-footer__send\"\n :disabled=\"!hasContent || state.isDisabled || cooldownRemaining > 0\"\n :aria-label=\"i18n.chatRoom.sendAriaLabel\"\n @click=\"handleSend()\"\n >\n <span v-if=\"cooldownRemaining > 0\" class=\"chat-footer__cooldown\">{{ Math.ceil( cooldownRemaining ) }}s</span>\n <MdiSend\n v-else\n aria-hidden=\"true\"\n width=\"20\"\n height=\"20\"\n />\n </button>\n </div>\n </div>\n </footer>\n </div>\n</template>\n","<script setup lang='ts'>\nimport { useUIStore } from '@/ui/stores/store'\nconst { state, setLoading, setMuted, setBanned, addRandomMessage } = useUIStore()\n</script>\n\n<template>\n <!-- 聊天室按鈕 -->\n <div class=\"debug-chat-buttons\">\n <button @click=\"addRandomMessage\">\n 💬\n </button>\n <button @click=\"setLoading\">\n {{ state.isLoading ? '⏳' : '⏹' }}\n </button>\n <button @click=\"setMuted\">\n {{ state.isMuted ? '✅' : '🔇' }}\n </button>\n <button @click=\"setBanned\">\n {{ state.isBanned ? '✅' : '🚫' }}\n </button>\n </div>\n\n <!-- 文字 -->\n <div class=\"debug-labels\">\n <div v-for=\"( [ key, value ] ) in Object.entries( state ).filter( ( [ key ] ) => key !== 'rules' && key !== 'messages' && key !== 'lastPreview' && key !== 'lastThreePreviews' && key !== 'stickers' )\" :key=\"key\">\n {{ key }}: <span>{{ value }}</span>\n </div>\n </div>\n</template>\n","<script setup lang='ts'>\nimport { useI18n, SUPPORTED_LOCALES } from '@/ui/i18n'\nconst { locale, setLocale } = useI18n()\nconst remapLanguage = ( locale: string ) => {\n switch ( locale ) {\n case 'en':\n return '英語'\n case 'id':\n return '印尼語'\n case 'vi':\n return '越南語'\n case 'tl':\n return '菲律賓語'\n default:\n return locale\n }\n}\n</script>\n\n<template>\n <!-- 語系按鈕 -->\n <div class=\"debug-lang-buttons\">\n <button\n v-for=\"lang in SUPPORTED_LOCALES\"\n :key=\"lang\"\n :class=\"{ active: locale === lang }\"\n @click=\"setLocale( lang )\"\n >\n {{ remapLanguage( lang ) }}\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useI18n } from '@/ui/i18n'\nimport { useUIStore } from '@/ui/stores/store'\nimport ChatPreview from '@/ui/components/ChatPreview.vue'\nimport ChatRoom from '@/ui/components/ChatRoom.vue'\nimport DebugPanel from '@/ui/components/DebugPanel.vue'\nimport DebugLanguage from '@/ui/components/DebugLanguage.vue'\nconst { i18n } = useI18n()\nconst { debug, state, setChatVisible } = useUIStore()\n</script>\n\n<template>\n <div class=\"app\">\n <!-- ── 聊天訊息預覽 ── -->\n <ChatPreview />\n\n <!-- ── Desktop: 聊天室開關按鈕 ── -->\n <Transition name=\"fade\">\n <button\n v-if=\"state.isDesktop\"\n class=\"chat-toggle\"\n :aria-label=\"i18n.chatRoom.toggleAriaLabel\"\n @click=\"setChatVisible( !state.isChatVisible )\"\n >\n <!-- 文字圖示 -->\n <div\n class=\"chat-toggle__icon\"\n :class=\"{\n 'chat-toggle__icon--normal': !state.isChatVisible,\n 'chat-toggle__icon--active': state.isChatVisible\n }\"\n />\n\n <!-- 未讀紅點提醒 -->\n <div v-if=\"state.isUnread\" class=\"chat-toggle__dot\" />\n </button>\n </Transition>\n\n <!-- ── Mobile: 點擊聊天室外關閉的遮罩 ── -->\n <Transition name=\"fade\">\n <div\n v-if=\"!state.isDesktop && state.isChatVisible\"\n class=\"mobile-overlay\"\n aria-hidden=\"true\"\n @click=\"setChatVisible( false )\"\n />\n </Transition>\n\n <!-- ── 聊天室 ── -->\n <Transition :name=\"!state.isDesktop ? 'slide-fade' : 'popup-fade'\">\n <ChatRoom v-show=\"state.isChatVisible\" ref=\"elementChatRoom\" />\n </Transition>\n\n <DebugPanel v-if=\"debug === 'true'\" />\n\n <DebugLanguage v-if=\"debug === 'true' || debug === 'lang'\" />\n </div>\n</template>\n","import { createApp, type App as AppType } from 'vue'\nimport { EventEmitter } from '@/core/events/EventEmitter'\nimport { MeowMeowClient } from '@/core/client/MeowMeowClient'\nimport { MeowMeowStore } from '@/core/store/MeowMeowStore'\nimport type { MeowMeowOptions, UIStore } from '@/ui/types/index'\nimport { setLocale } from '@/ui/i18n'\nimport { UIStoreKey, createUIStore } from '@/ui/stores/store'\nimport App from '@/ui/App.vue'\nimport appStyles from '@/ui/styles/app.scss?inline'\nimport chatpreviewStyles from '@/ui/styles/chatpreview.scss?inline'\nimport chatroomStyles from '@/ui/styles/chatroom.scss?inline'\nimport emojipickerStyles from '@/ui/styles/emojipicker.scss?inline'\nimport debugpanelStyles from '@/ui/styles/debugpanel.scss?inline'\nimport debuglanguageStyles from '@/ui/styles/debuglanguage.scss?inline'\n\n/**\n * MeowMeow 聊天室 UI Widget。\n * 掛載後在頁面上顯示完整的聊天室介面(預覽泡泡 + 聊天室視窗)。\n *\n * @example\n * ```ts\n * const chat = new MeowMeow({ token: '...', room: 'room-1', locale: 'zh' })\n * await chat.mount()\n * chat.show()\n * ```\n */\nexport class MeowMeow extends EventEmitter {\n private readonly options: MeowMeowOptions\n private readonly client: MeowMeowClient\n private vueApp: AppType | null = null\n private hostElement: HTMLElement | null = null\n private meowmeowStore: MeowMeowStore | null = null\n private uiStore: UIStore | null = null\n private localeSet = {\n id: new Set( [ 'id', 'idn', 'ind', 'id-id', 'id_id' ] ),\n vi: new Set( [ 'vi', 'vie', 'vn', 'vnm', 'vi-vn', 'vi_vn' ] ),\n tl: new Set( [ 'ph', 'phl', 'fil', 'tl', 'phi', 'fil-ph', 'fil_ph', 'tl-ph', 'tl_ph' ] )\n }\n\n constructor ( options: MeowMeowOptions ) {\n super()\n console.log( `[ MeowMeow ] v${ __SDK_VERSION__ }` )\n this.options = options\n this.client = new MeowMeowClient( {\n token: options.token,\n roomId: options.room || '',\n onTokenRefresh: options.onTokenRefresh\n } )\n }\n\n /** 顯示 MeowMeow */\n show () {\n if ( !this.hostElement ) {\n console.error( '[ MeowMeow ] Not mounted yet, please call mount() first.' )\n return\n }\n this.hostElement.style.visibility = 'visible'\n }\n\n /** 隱藏 MeowMeow */\n hide () {\n if ( !this.hostElement ) {\n console.error( '[ MeowMeow ] Not mounted yet, please call mount() first.' )\n return\n }\n this.hostElement.style.visibility = 'hidden'\n }\n\n /**\n * 動態設定語系\n * @param locale 目前僅支援 en / id / vi / tl\n */\n setLocale ( locale: string ) {\n if ( !this.hostElement ) {\n console.error( '[ MeowMeow ] Not mounted yet, please call mount() first.' )\n return\n }\n if ( this.localeSet.id.has( locale.toLowerCase() ) ) locale = 'id'\n else if ( this.localeSet.vi.has( locale.toLowerCase() ) ) locale = 'vi'\n else if ( this.localeSet.tl.has( locale.toLowerCase() ) ) locale = 'tl'\n else {\n console.error( `[ MeowMeow ] Invalid locale '${ locale }', applied default locale 'en' instead.` )\n locale = 'en'\n }\n setLocale( locale )\n }\n\n /**\n * 建立 Shadow DOM、初始化 Vue 應用並掛載到 `document.body`。\n * 掛載後聊天室預設為隱藏,需呼叫 {@link show} 顯示。\n */\n async mount () {\n // 防護重複呼叫\n if ( this.vueApp ) {\n console.error( '[ MeowMeow ] Has been mounted already, please call unmount() first.' )\n return\n }\n\n // 套用 i18n 語系 ( 找不到對應語系時會自動回退到預設英文 )\n setLocale( this.options.locale )\n\n // 1. 準備 Host 元素 ( Shadow DOM 的宿主 )\n const host = document.createElement( 'div' )\n host.id = 'meowmeow-chat-host'\n host.style.cssText = 'position:fixed;inset:0;visibility:hidden;pointer-events:none;'\n host.style.zIndex = String( this.options.zIndex ?? 'auto' )\n\n // 2. 建立 Shadow Root\n const shadowRoot = host.attachShadow( { mode: 'open' } )\n\n // 3. 注入 CSS 到 Shadow Root ( document.head 的樣式無法穿透 Shadow DOM )\n const appStyleTag = document.createElement( 'style' )\n appStyleTag.textContent = appStyles as unknown as string\n shadowRoot.appendChild( appStyleTag )\n const chatpreviewStyleTag = document.createElement( 'style' )\n chatpreviewStyleTag.textContent = chatpreviewStyles as unknown as string\n shadowRoot.appendChild( chatpreviewStyleTag )\n const chatroomStyleTag = document.createElement( 'style' )\n chatroomStyleTag.textContent = chatroomStyles as unknown as string\n shadowRoot.appendChild( chatroomStyleTag )\n const emojipickerStyleTag = document.createElement( 'style' )\n emojipickerStyleTag.textContent = emojipickerStyles as unknown as string\n shadowRoot.appendChild( emojipickerStyleTag )\n const debugpanelStyleTag = document.createElement( 'style' )\n debugpanelStyleTag.textContent = debugpanelStyles as unknown as string\n shadowRoot.appendChild( debugpanelStyleTag )\n const debuglanguageStyleTag = document.createElement( 'style' )\n debuglanguageStyleTag.textContent = debuglanguageStyles as unknown as string\n shadowRoot.appendChild( debuglanguageStyleTag )\n\n // 4. 建立真正的 Vue Mount Point\n const mountPoint = document.createElement( 'div' )\n mountPoint.id = 'meowmeow-vue-root'\n mountPoint.style.cssText = 'width:100%;height:100%;pointer-events:none;'\n shadowRoot.appendChild( mountPoint )\n\n // 5. 將 Vue 掛載到內部的 mountPoint 上\n this.vueApp = createApp( App, {\n // 可以透過 props 將 Client 實例往下傳\n client: this.client\n } )\n\n // 注入 MobX Store 實例\n const meowmeowStore = new MeowMeowStore( { token: this.options.token, roomId: this.options.room } )\n console.log( '[ MeowMeow ] MeowMeowStore: ', meowmeowStore )\n meowmeowStore.client.on( 'connected', payload => console.log( '[ store ] connected', payload ) )\n meowmeowStore.client.on( 'room_joined', payload => console.log( '[ store ] room_joined', payload ) )\n meowmeowStore.client.on( 'error', err => console.error( '[ store ] error', err ) )\n try {\n await meowmeowStore.join()\n } catch {\n // join 失敗時 store 狀態已由 disconnected 事件更新,繼續掛載讓 UI 呈現對應畫面\n }\n this.meowmeowStore = meowmeowStore\n\n // 注入 UI Store 實例\n const uiStore = createUIStore( meowmeowStore, this.options.title )\n this.vueApp.provide( UIStoreKey, uiStore )\n this.uiStore = uiStore\n\n this.vueApp.mount( mountPoint )\n\n // 6. 將整個 Host 塞進商戶的 body 中\n this.hostElement = host\n document.body.appendChild( host )\n\n // 字型屬於 document 層級資源,無法從 Shadow DOM 內載入;注入 <link> 到 document.head\n // crossOrigin 必須加在 preconnect 與 stylesheet link 上,否則瀏覽器不會重用已建立的連線。\n // 注意:Google Fonts CSS 為動態回應 ( 依 User-Agent 變化 ),無法加 SRI integrity hash。\n // 若宿主頁有嚴格 CSP font-src 'self',建議改用本機打包字型 ( @font-face + WOFF2 )。\n if ( !document.head.querySelector( '#meowmeow-noto-sans' ) ) {\n const preconnect = document.createElement( 'link' )\n preconnect.rel = 'preconnect'\n preconnect.href = 'https://fonts.googleapis.com'\n preconnect.crossOrigin = 'anonymous'\n document.head.appendChild( preconnect )\n\n const preconnectCross = document.createElement( 'link' )\n preconnectCross.rel = 'preconnect'\n preconnectCross.href = 'https://fonts.gstatic.com'\n preconnectCross.crossOrigin = 'anonymous'\n document.head.appendChild( preconnectCross )\n\n const fontLink = document.createElement( 'link' )\n fontLink.id = 'meowmeow-noto-sans'\n fontLink.rel = 'stylesheet'\n fontLink.href = 'https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap'\n fontLink.crossOrigin = 'anonymous'\n document.head.appendChild( fontLink )\n }\n\n this.emit( 'ready', {} )\n }\n\n /** 卸載 Vue 應用、移除 DOM 元素並釋放所有資源。 */\n unmount () {\n // 清理記憶體,標準的 Vue 卸載流程\n if ( this.vueApp ) {\n this.vueApp.unmount()\n this.vueApp = null\n }\n this.hostElement?.remove()\n this.hostElement = null\n // 移除 <head> 注入資源\n document.getElementById( 'meowmeow-noto-sans' )?.remove()\n this.removeAllListeners()\n // 清理 MeowMeow Store 的連線\n this.meowmeowStore?.disconnect()\n this.meowmeowStore = null\n // 清理 UI Store 的 window 監聽、MobX 監聽,避免記憶體洩漏\n this.uiStore?.dispose()\n this.uiStore = null\n }\n}\n"],"names":["makeMap","str","map","key","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","n","toNumber","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","activeEffectScope","EffectScope","detached","l","currentEffectScope","fromParent","last","effectScope","getCurrentScope","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","e","next","error","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","reactiveReadArray","array","raw","toReactive","shallowReadArray","toRaw","toWrapped","isReadonly","toReadonly","isReactive","arrayInstrumentations","iterator","args","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","isShallow","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","wrapInitialAccumulator","acc","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","readonly","MutableReactiveHandler","isArrayWithIntegerKey","isOldValueReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","proto","rawValue","valueToAdd","get","hadItems","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","reactive","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","targetType","existingProxy","proxy","isProxy","markRaw","r","ref","createRef","RefImpl","useDirectValue","unref","ref2","shallowUnwrapHandlers","proxyRefs","objectWithRefs","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","failSilently","owner","cleanups","watch","source","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","stack","isWarning","warn$1","msg","instance","appWarnHandler","trace","getComponentTrace","callWithErrorHandling","_b","vnode","formatComponentName","warnArgs","formatTrace","currentVNode","normalizedStack","parentInstance","logs","entry","formatTraceEntry","recurseCount","postfix","isRoot","open","close","formatProps","props","keys","formatProp","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","withDirectives","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","provide","currentInstance","provides","parentProvides","inject","defaultValue","treatDefaultAsFactory","getCurrentInstance","currentApp","ssrContextKey","useSSRContext","doWatch","flush","baseWatchOptions","runsImmediately","ssrCleanup","isInSSRComponentSetup","watchStopHandle","isPre","queuePostRenderEffect","isFirstRun","watch$1","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","TeleportEndKey","isTeleport","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","slots","children","getTransitionRawChildren","child","findNonCommentChild","rawProps","mode","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","Comment","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","vnode2","hooks2","isKeepAlive","cloneVNode","shapeFlag","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","markAsyncBoundary","isTemplateRefKey","refs","desc","pendingSetRefMap","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","canSetRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","newVal","pendingSetRef","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","createHook","lifecycle","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","NULL_DYNAMIC_COMPONENT","renderList","renderItem","cached","sourceIsArray","sourceIsReactiveArray","isReadonlySource","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","PublicInstanceProxyHandlers","data","accessCache","appContext","shouldCacheAccess","publicGetter","cssModule","globalProperties","cssModules","descriptor","normalizePropsOrEmits","applyOptions","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","resolveInjections","methodHandler","opt","set","createWatcher","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","h","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","component","directive","rootContainer","isHydrate","namespace","createVNode","lastApp","getModelModifiers","modelName","emit","event","rawArgs","handlerName","onceHandler","mixinEmitsCache","normalizeEmitsOptions","comp","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","markAttrsAccessed","renderComponentRoot","Component","withProxy","propsOptions","attrs","renderCache","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","root","filterModelListeners","shouldUpdateComponent","nextVNode","optimized","prevProps","prevChildren","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","hasPropValueChanged","emitsOptions","nextKeys","nextProp","prevProp","updateHOCHostEl","parent","suspense","internalObjectProto","createInternalObject","isInternalObject","initProps","isStateful","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","nextSibling","removeStaticNode","mountElement","customElement","patchElement","vnodeHook","transition","dirs","mountChildren","resolveChildrenNamespace","setScopeId","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","isSuspense","parentVNode","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","update","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","scopedInitialVNode","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","anchorVNode","resolveAsyncComponentPlaceholder","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","doRemove","cacheIndex","memo","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","shouldInvalidateMemo","removeFragment","performRemove","bum","um","invalidateMount","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","anchorVnode","currentBlock","openBlock","disableTracking","closeBlock","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","createBlock","isVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","style","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slot","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","createSetupContext","isAsyncSetup","resolvedResult","handleSetupResult","finishComponentSetup","skipOptions","attrsProxyHandlers","classifyRE","classify","getComponentName","includeInferred","match","inferFromRegistry","registry","computed$1","propsOrChildren","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","node","selector","content","before","template","wrapper","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","TransitionPropsValidators","Transition","t","resolveTransitionProps","h2","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","removeTransitionClass","finishLeave","makeEnterHook","resolve","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","vShow","setDisplay","CSS_VAR_TEXT","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","attrName","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","isNativeOn","patchProp","shouldSetAsProp","shouldSetAsPropForVueCE","camelize$1","positionMap","newPositionMap","moveCbKey","TransitionGroup","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","cssTransitionProps","getPosition","oldPos","newPos","dx","dy","rect","scaleX","scaleY","clone","keyNames","withKeys","cacheKey","eventKey","k","rendererOptions","renderer","ensureRenderer","createApp","mount","containerOrSelector","normalizeContainer","resolveRootNamespace","EventEmitter","__publicField","listeners","payload","WsRequestError","code","message","seq","Room","connectionApi","sender","clientRef","pending","failed","metadata","users","seconds","messages","hasMore","errorCode","msgs","lo","hi","mid","token","singleMatcher","multiMatcher","decodeComponents","split","left","right","decode","input","tokens","customDecodeURIComponent","replaceMap","decodeUriComponent","encodedURI","includeKeys","object","predicate","splitOnFirst","string","separatorIndex","isNullOrUndefined","strictUriEncode","encodeFragmentIdentifier","encoderForArrayFormat","encode","keyValueSeparator","parserForArrayFormat","accumulator","arrayValue","validateArrayFormatSeparator","decodeComponent","keysSorter","removeHash","hashStart","getHash","url","hash","parseValue","extract","queryStart","parse","query","formatter","returnValue","parameter","parameter_","value2","typeOption","stringify","shouldFilter","objectCopy","processedArray","parseUrl","url_","stringifyUrl","queryFromUrl","queryString","urlObjectForFragmentEncode","pick","filter","fragmentIdentifier","exclude","exclusionFilter","queryObject","logLevel","Logger","log","isLocalhost","pkgName","pullAdmin","symbol","definePullMapKey","description","PULL_MAP_ADMIN","pullMap","admin","decorateWith","wrapFactory","propertyKey","_wrapperType","original","resolveWith","resolver","onWrapped","SINGLE_CONTEXT_MAP_SYMBOL","single","resolveContext","host","contextMap","REQUEST_TIMEOUT_MS","PING_INTERVAL_MS","MAX_RECONNECT_DELAY_MS","TOKEN_EXPIRY_BUFFER_S","parseJwtPayload","base64","isTokenExpired","exp","toMessage","subSeq","WebSocketConnection","client","iss","serverHost","roomId","failReason","reason","responseSeq","ref8","reject","timer","isReconnect","ticket","fetched","wsBase","params","wsUrl","ws","settled","envelope","willReconnect","delay","currentWs","now","retried","route","body","__decorateClass","OrderGuard","group","itemMap","order","updater","OriginOrderGuard","JOIN_TIMEOUT_MS","MeowMeowClient","room","status","user","cleanPayload","die","_len","mockGlobal","getGlobal","assign","getDescriptor","defineProperty","objectPrototype","EMPTY_ARRAY","EMPTY_OBJECT","hasProxy","plainObjectString","assertProxies","func","invoked","noop","isStringish","protoConstructor","isGenerator","constructor","addHiddenProp","propName","addHiddenFinalProp","createInstanceofPredicate","theClass","isES6Map","thing","isPlainES6Map","mapProto","objectProto","nullProto","isES6Set","hasGetOwnPropertySymbols","getPlainObjectKeys","symbols","ownKeys","toPrimitive","hasProp","getOwnPropertyDescriptors","getFlag","flags","mask","setFlag","_arrayLikeToArray","_defineProperties","o","_toPropertyKey","_createClass","_createForOfIteratorHelperLoose","_unsupportedIterableToArray","_extends","_inheritsLoose","_setPrototypeOf","_toPrimitive","storedAnnotationsSymbol","createDecoratorAnnotation","annotation","decorator","property","is20223Decorator","storeAnnotation","prototype","isOverride","$mobx","Atom","name_","IDerivationState_","_proto","listener","reportObserved","propagateChanged","isAtom","createAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","atom","onBecomeObserved","onBecomeUnobserved","structuralComparer","deepEqual","defaultComparer","deepEnhancer","_","isObservable","observable","isAction","isFlow","flow","autoAction","shallowEnhancer","isObservableObject","isObservableArray","isObservableMap","isObservableSet","referenceEnhancer","refStructEnhancer","OVERRIDE","createActionAnnotation","make_$1","extend_$1","decorate_20223_$1","adm","_this$options_","actionDescriptor","createActionDescriptor","proxyTrap","mthd","kind","addInitializer","ann","_createAction","_ann$options_$name","_ann$options_","_ann$options_$autoAct","_ann$options_2","createAction","initMthd","_ann$options_3","_this$options_2","bound","assertActionDescriptor","_ref","_ref2","safeDescriptors","_annotation$options_","_annotation$options_$","_annotation$options_2","_annotation$options_$2","_annotation$options_3","_annotation$options_4","_adm$proxy_2","globalState","_adm$proxy_","createFlowAnnotation","make_$2","extend_$2","decorate_20223_$2","flowDescriptor","createFlowDescriptor","_this$options_3","assertFlowDescriptor","createComputedAnnotation","make_$3","extend_$3","decorate_20223_$3","assertComputedDescriptor","asObservableObject","ComputedValue","createObservableAnnotation","make_$4","extend_$4","decorate_20223_$4","_this$options_$enhanc","assertObservableDescriptor","initializedObjects","initializeObservable","_ann$options_$enhance","ObservableValue","AUTO","autoAnnotation","createAutoAnnotation","make_$5","extend_$5","decorate_20223_$5","_this$options_4","flowAnnotation","actionAnnotation","observableAnnotation","_this$options_5","_this$options_6","OBSERVABLE","OBSERVABLE_REF","OBSERVABLE_SHALLOW","OBSERVABLE_STRUCT","defaultCreateObservableOptions","asCreateObservableOptions","observableRefAnnotation","observableShallowAnnotation","observableStructAnnotation","observableDecoratorAnnotation","getEnhancerFromOptions","getEnhancerFromAnnotation","getAnnotationFromOptions","_options$defaultDecor","createObservable","arg2","arg3","observableFactories","initialValues","createLegacyArray","createObservableArray","ObservableMap","ObservableSet","decorators","initObservable","extendObservable","asDynamicObservableObject","COMPUTED","COMPUTED_STRUCT","computedAnnotation","computedStructAnnotation","arg1","opts","_getDescriptor$config","_getDescriptor","currentActionId","nextActionId","isFunctionNameConfigurable","tmpNameDescriptor","actionName","executeAction","canRunAsDerivation","runInfo","_startAction","_endAction","notifySpy_","startTime_","prevDerivation_","runAsAction","prevAllowStateChanges_","untrackedStart","allowStateChangesStart","prevAllowStateReads_","allowStateReadsStart","allowStateChangesEnd","allowStateReadsEnd","untrackedEnd","allowStateChanges","_Atom","enhancer","notifySpy","equals","_this","hasInterceptors","change","interceptChange","UPDATE","hasListeners","notifyListeners","registerInterceptor","fireImmediately","registerListener","CaughtException","TraceMode","propagateMaybeChanged","shouldCompute","prevTrackingContext","propagateChangeConfirmed","isCaughtException","wasSuspended","changed","trackDerivedFunction","clearObserving","firstTime","autorun","prevU","isComputedValue","cause","derivation","prevAllowStateReads","prevUntracked","obs","changeDependenciesStateTo0","checkIfStateModificationsAreAllowed","f","prevTracking","bindDependencies","prevObserving","observing","lowestNewObservingDerivationState","i0","_dep","removeObserver","_dep2","addObserver","untracked","action","allowStateReads","MobXGlobals","canMergeGlobalState","global","queueForUnobservation","runReactions","list","Reaction","onInvalidate_","errorHandler_","requiresObservable_","prevReaction","abortSignal","_this2","dispose","enterBreakPoint","MAX_REACTION_ITERATIONS","reactionScheduler","runReactionsHelper","allReactions","iterations","remainingReactions","isReaction","isSpyEnabled","spyReport","spyReportStart","spyReportEnd","spy","ACTION","ACTION_BOUND","AUTOACTION","AUTOACTION_BOUND","DEFAULT_ACTION_NAME","actionBoundAnnotation","autoActionAnnotation","autoActionBoundAnnotation","createActionFactory","runInAction","view","_opts$name","_opts","_opts2","_opts3","runSync","reaction","reactionRunner","createSchedulerFromOptions","isScheduled","expression","_opts$name2","_opts4","_opts5","effectAction","wrapErrorHandler","baseFn","ON_BECOME_OBSERVED","ON_BECOME_UNOBSERVED","interceptHook","getAtom","listenersKey","hookListeners","properties","annotations","descriptors","generatorId","FlowCancellationError","flowBoundAnnotation","generator","runId","gen","rejector","pendingPromise","promise","stepId","onFulfilled","onRejected","cancelPromise","_res","yieldedPromise","_isObservable","transaction","getAdm","objectProxyTraps","_getAdm$set_","_getAdm$delete_","_getAdm$definePropert","_target$$mobx","_target$$mobx$proxy_","interceptable","interceptors","idx","listenable","keysSymbol","makeAutoObservable","overrides","SPLICE","MAX_SPLICE_SIZE","arrayTraps","arrayExtensions","ObservableArrayAdministration","owned_","legacyMode_","newV","oldV","currentLength","newItems","delta","reserveArrayBuffer","deleteCount","length","lengthDelta","_this$values_","oldItems","_i","notify","added","removed","owned","_len2","items","_key2","_len3","_key3","copy","addArrayExtension","simpleFunc","mapLikeFunc","reduceLikeFunc","funcName","funcFactory","dehancedValues","element","_this3","currentValue","isObservableArrayAdministration","ObservableMapMarker","ADD","DELETE","initialData","enhancer_","newEntry","hasKey","_change","_this3$hasMap_$get","_this4","_this4$hasMap_$get","makeIterableForMap","_keys$next","_keys$next2","_iterator","_step","_step$value","other","_this5","_this6","_iterator2","_step2","_this7","replacementMap","convertToMap","orderedData","keysReportChangedCalled","_iterator3","_step3","deleted","_iterator4","_step4","_step4$value","_value","keyExisted","_value2","iter1","iter2","next1","next2","makeIterable","dataStructure","ObservableSetMarker","callbackFn","_change2","makeIterableForSet","_values$next","_values$next2","otherSet","dehancedSet","descriptorCache","REMOVE","ObservableObjectAdministration","target_","values_","defaultAnnotation_","_this$target_$storedA","outcome","recordAnnotationApplied","deleteOutcome","cachedDescriptor","getCachedObservablePropDescriptor","_this$pendingKeys_","_this$pendingKeys_2","_options$name","isObservableObjectAdministration","_adm$target_$storedAn","ENTRY_0","safariPrototypeSetterInheritanceBug","OBSERVABLE_ARRAY_BUFFER_SIZE","StubArray","inherit","ctor","LegacyObservableArray","_StubArray","arrays","createArrayEntryDescriptor","createArrayBufferItem","max","getDebugName","_observable","getAdministration","named","toString","eq","aStack","bStack","className","unwrap","areArrays","aCtor","bCtor","_length","_getGlobal$Iterator","maybeIteratorPrototype","getSelf","MeowMeowStore","dictionaries","SUPPORTED_LOCALES","DEFAULT_LOCALE","currentLocale","localeData","setLocale","locale","useI18n","z","T","G","Re","Te","Oe","we","I","ye","Q","ie","oe","Pe","Se","F","$e","Le","U","_e","ae","Me","K","re","ze","Ee","Ae","Ce","le","Ie","E","H","W","Be","ue","De","qe","ve","pe","He","Ze","ce","Ge","Ne","Qe","je","Fe","Ue","Ke","We","Xe","Je","q","Ve","he","ke","Ye","se","X","et","N","B","A","nt","de","O","J","V","$","Y","ge","fe","me","rt","w","R","S","ee","te","ne","xe","be","Z","C","_c","_d","y","L","P","D","M","EMOJI_RE","SKIN_MODIFIER_MAP","getSkinFromNative","native","mod","skin","parseSegments","UIStoreKey","resolveTitle","title","createUIStore","meowmeowStore","titleOption","debug","i18n","dispatcher","isDesktop","isChatVisible","isUnread","isLoading","isMuted","isBanned","isRulesVisible","isUserAtBottom","isPickerVisible","needCheckScrollPosition","needScrollToBottom","needClearInput","cooldown","rawRules","rawMessages","rawStickers","setChatVisible","visible","setUnread","unread","setUserAtBottom","atBottom","setPickerVisible","ackCheckScrollPosition","ackScrollToBottom","ackClearInput","sendMessage","sendSticker","onWindowResize","onChatVisibleChange","onMessagesChange","isDisabled","userID","rules","marked","userName","userId","createdAt","lastPreview","lastThreePreviews","stickers","pack","ALL_MESSAGES_ERROR","RANDOM_SENDERS","RANDOM_TEXTS","setLoading","setMuted","setBanned","addMessage","addSticker","addRandomMessage","disposer","callbackIsConnected","callbackIsMuted","callbackIsBanned","callbackCurrentUser","callbackRules","callbackCooldown","callbackMessages","useUIStore","store","previewOpacity","count","_Transition","_unref","_createElementBlock","_createElementVNode","MdiPeopleGroup","_openBlock","_hoisted_2","_TransitionGroup","_toDisplayString","_hoisted_3","_Fragment","_renderList","seg","_hoisted_5","_hoisted_6","_hoisted_7","_normalizeStyle","_hoisted_8","_hoisted_9","_hoisted_11","_createTextVNode","_origDefine","$parcel$interopDefault","$c770c458706daa72$export$2e2bcd8739ae039","$fb96b826c0c5f37a$var$n","$fb96b826c0c5f37a$export$41c562ebe57d11e2","$fb96b826c0c5f37a$var$u","$fb96b826c0c5f37a$var$t","$fb96b826c0c5f37a$var$r","$fb96b826c0c5f37a$var$o","$fb96b826c0c5f37a$var$e","$fb96b826c0c5f37a$var$c","$fb96b826c0c5f37a$var$s","$fb96b826c0c5f37a$var$a","l1","u1","$fb96b826c0c5f37a$var$h","$fb96b826c0c5f37a$export$c8a8987d4410bf2d","l3","u2","i1","t1","r1","o1","f1","$fb96b826c0c5f37a$var$y","n3","i2","t2","r2","o2","f2","$fb96b826c0c5f37a$export$7d1e3a5e95ceca43","$fb96b826c0c5f37a$export$ffb0004e005737fa","n4","$fb96b826c0c5f37a$export$16fa2f45be04daa8","n5","l4","$fb96b826c0c5f37a$var$k","n6","l5","u3","$fb96b826c0c5f37a$var$b","n7","l6","u4","$fb96b826c0c5f37a$var$m","n8","$fb96b826c0c5f37a$var$g","n9","n10","l7","n11","l8","u5","i3","t3","r3","o3","$fb96b826c0c5f37a$var$j","$fb96b826c0c5f37a$var$z","$fb96b826c0c5f37a$var$w","n12","l9","u6","i4","t4","r4","o4","f3","a1","h1","v1","p1","_1","b1","m1","g1","w1","A1","$fb96b826c0c5f37a$var$x","$fb96b826c0c5f37a$var$P","$fb96b826c0c5f37a$var$N","$fb96b826c0c5f37a$var$M","n13","l10","u7","i5","t5","r5","$fb96b826c0c5f37a$export$47e4c5b300681277","n14","l11","n15","n16","l12","u8","i6","t6","r6","o5","f4","$fb96b826c0c5f37a$var$C","n17","l13","u9","i7","t7","r7","$fb96b826c0c5f37a$var$H","$fb96b826c0c5f37a$var$$","n18","l14","u10","n19","l15","u11","i8","t8","r8","$fb96b826c0c5f37a$var$T","$fb96b826c0c5f37a$var$I","n20","n21","n22","u12","i9","t9","r9","o6","f5","v2","y1","p2","k1","b2","m2","g2","x1","A2","P1","$fb96b826c0c5f37a$var$O","n23","$fb96b826c0c5f37a$var$L","n24","n25","u13","u14","n26","n27","l16","u15","i10","t10","r10","o7","f6","s3","a2","v3","y2","p3","d1","_2","n28","u16","i11","n29","n30","u17","i12","t11","r11","n31","n32","u18","$fb96b826c0c5f37a$export$b3890eb0ae9dca99","u19","i13","t12","r12","o8","f7","n39","l22","u23","i16","t14","l23","n41","l24","u24","n42","$bd9dd35321b03dd4$var$o","$bd9dd35321b03dd4$export$34b9dba7ce09269b","$f72b75cf796873c7$var$set","$f72b75cf796873c7$var$get","$f72b75cf796873c7$export$2e2bcd8739ae039","$c84d045dcc34faf5$var$CACHE","$c84d045dcc34faf5$var$VERSIONS","$c84d045dcc34faf5$var$latestVersion","emoji","$c84d045dcc34faf5$var$isSupported","$c84d045dcc34faf5$var$noCountryFlags","supported","$c84d045dcc34faf5$var$isEmojiSupported","CANVAS_HEIGHT","CANVAS_WIDTH","textSize","unicode","$c84d045dcc34faf5$export$2e2bcd8739ae039","$b22cfd0a55410b4f$var$DEFAULTS","$b22cfd0a55410b4f$var$Index","$b22cfd0a55410b4f$var$add","emojiId","$b22cfd0a55410b4f$var$get","maxFrequentRows","perLine","emojiIds","aScore","bScore","removedIds","removedId","$b22cfd0a55410b4f$export$2e2bcd8739ae039","$8d50d93417ef682a$exports","$b247ea80b67298d5$export$2e2bcd8739ae039","$7adb23b0109cc36a$export$dbe3113d60765c1a","$7adb23b0109cc36a$export$2d0294657ab35f1b","$7adb23b0109cc36a$var$fetchCache","$7adb23b0109cc36a$var$fetchJSON","src","json","$7adb23b0109cc36a$var$promise","$7adb23b0109cc36a$var$initCallback","$7adb23b0109cc36a$var$initialized","$7adb23b0109cc36a$export$2cd8252107eb640b","caller","$7adb23b0109cc36a$var$_init","emojiVersion","alias","category","prevCategory","latestVersionSupport","noCountryFlags","categoryIndex","resetSearchIndex","categoryIcons","icon","emojiIndex","ignore","$e6eae5155b87f591$export$bcb25aa587e9cb13","strings","emoticon","skinIndex","skinShortcodes","$c4d155af13ad4d4b$export$2e2bcd8739ae039","$7adb23b0109cc36a$export$75fe5f91d452f94b","defaultProps","_props","$7adb23b0109cc36a$export$88c9ddb45cea7241","defaults","$c4d155af13ad4d4b$var$SHORTCODES_REGEX","$c4d155af13ad4d4b$var$Pool","$c4d155af13ad4d4b$var$get","$c4d155af13ad4d4b$var$reset","$c4d155af13ad4d4b$var$search","maxResults","word","words","pool","results","scores","value1","score","$693b183b0a78708f$export$9cb4719e2e525b7a","$693b183b0a78708f$export$e772c8ff12451969","frames","$693b183b0a78708f$export$d10ac59fbe52a745","emojiData","$fcccfb36ed0cde68$export$2e2bcd8739ae039","$254755d3f438722f$export$2e2bcd8739ae039","matches","emojiSkin","imageSrc","spritesheetSrc","$6f57cc9cd54c5aaa$var$WindowHTMLElement","$6f57cc9cd54c5aaa$export$2e2bcd8739ae039","attr","$26f27c338a96b1a6$export$2e2bcd8739ae039","$3d90f6e46fb2dd47$export$2e2bcd8739ae039","$331b4160623139bf$export$2e2bcd8739ae039","$1a9a8ef576b7773d$var$r","$1a9a8ef576b7773d$var$i","$1a9a8ef576b7773d$var$c","$1a9a8ef576b7773d$var$f","$1a9a8ef576b7773d$var$e","$1a9a8ef576b7773d$var$a","$1a9a8ef576b7773d$var$v","$1a9a8ef576b7773d$var$x","$1a9a8ef576b7773d$var$g","$1a9a8ef576b7773d$var$j","$1a9a8ef576b7773d$var$b","$dc040a17866866fa$var$S","$dc040a17866866fa$var$C","$dc040a17866866fa$export$221d75b3f55bb0bd","$dc040a17866866fa$var$w","$dc040a17866866fa$var$A","e6","$dc040a17866866fa$var$O","$dc040a17866866fa$export$74bf444e3cd11ea5","$dc040a17866866fa$var$U","$dc040a17866866fa$export$998bcd577473dd93","t13","e8","t17","e9","t18","t15","t19","e10","t20","e13","t21","$dc040a17866866fa$var$T","t22","e14","n33","t25","e16","r13","n34","t26","e17","n35","t27","e18","$dc040a17866866fa$var$j","$dc040a17866866fa$var$P","$dc040a17866866fa$var$V","$dc040a17866866fa$var$z","n36","t30","$dc040a17866866fa$var$H","$dc040a17866866fa$var$Z","$dc040a17866866fa$var$Y","$dc040a17866866fa$var$q","n40","$dc040a17866866fa$var$J","$dc040a17866866fa$var$K","t31","e21","r14","n43","$dc040a17866866fa$var$Q","n44","$ec8c39fdad15601a$var$THEME_ICONS","$ec8c39fdad15601a$export$2e2bcd8739ae039","selectedCategoryIndex","selected","$e0d4dda61265ff1e$export$2e2bcd8739ae039","$89bd6bb200cc8fef$var$Performance","$89bd6bb200cc8fef$export$2e2bcd8739ae039","searchInput","requiresGridReset","nextState","except","observer","categories","navKey","addRow","rows","row","rowIndex","rowRef","category1","theme","emojiButtonSize","calculatePerLine","width","grid","navigation","visibleCategories","setFocusedCategory","categoryId","observerOptions","ratios","ratio","visibleRows","up","down","pos","increment","scroll","scrollRect","scrollTop","rowTop","rowBot","tempSkin","noSearchResults","posinset","size","renderSkinTone","searchResults","ii","hidden","targetRow","contents","skinToneButtonRect","baseRect","position","checked","lineWidth","afterRender","currentTarget","menu","$efa000751917694d$export$2e2bcd8739ae039","$329d53ba9fd7125f$exports","__props","__emit","pickerInstance","emojiI18nMap","en","zh","ko","ja","vi","fr","es","pt","isEmojiReady","activeTab","stickerLoadedMap","elementContainer","elementMount","onEmojiSelect","onClickOutside","inContainer","inButton","injectShadowStyles","pickerElement","rootElement","sheet","waitForBackground","img","waitForEmojisOnLoad","attempts","imageElements","recreatePicker","Picker","initEmojiPicker","forceRecreate","init","_normalizeClass","MdiSmileyOutline","cat","$event","_withDirectives","sticker","_vShow","MAX_CHARS","SCROLL_THRESHOLD","savedRange","rafId","preComposeHTML","preComposeCursorOffset","resizeObserver","lastContentHeight","cooldownTimerId","cooldownEndTime","hasContent","isComposing","isMultiLine","charCount","cooldownRemaining","elementMessages","elementMessagesInner","elementInput","elementEmoji","scrollToBottom","instant","distance","startTime","step","elapsed","progress","ease","handleMessagesScroll","distFromBottom","checkScrollPosition","createEmojiEl","getShadowAwareSelection","trackSelection","div","sel","range","getInputText","updateMultiLine","lineHeight","paddingTop","paddingBottom","clearInput","getCursorTextOffset","cursorNode","childTextLen","offset","restoreCursorAt","targetOffset","convertTextEmoji","cursorOffset","didConvert","topChildren","segs","frag","handleInput","handleCompositionStart","handleCompositionEnd","restored","handlePaste","plain","remaining","textNode","newText","startCooldown","handleSend","handleKeydown","isFunctionKey","insertEmoji","currentSel","addSelectionEventListener","removeSelectionEventListener","onMessagesInnerResize","newHeight","getErrorText","errors","_hoisted_1","MdiClose","MdiBan","_hoisted_10","_hoisted_13","_hoisted_16","_hoisted_17","MdiClockOutline","_hoisted_18","MdiWarningCircle","_hoisted_19","MdiArrowDownBold","EmojiPicker","_hoisted_21","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_cache","MdiSmiley","_hoisted_29","_createBlock","MdiSend","remapLanguage","lang","ChatPreview","ChatRoom","DebugPanel","DebugLanguage","MeowMeow","shadowRoot","appStyleTag","appStyles","chatpreviewStyleTag","chatpreviewStyles","chatroomStyleTag","chatroomStyles","emojipickerStyleTag","emojipickerStyles","debugpanelStyleTag","debugpanelStyles","debuglanguageStyleTag","debuglanguageStyles","mountPoint","App","uiStore","preconnect","preconnectCross","fontLink"],"mappings":"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OAAS,CAAC,CAAC,EAChEA,EAAS,OAAO,GAAI,EAAG/jE,CAAI,GAE3B0iE,GAA0C,IAAI,aAAce,EAA2B,CAC/F,CACA,OAAOM,CACX,CACA,IAAIK,GAA2C,CAC3C,IAAKV,GACL,IAAKE,GACL,SAAUJ,EACd,EAGIa,GAA4B,CAAA,EAChCA,GAA4B,KAAK,MAAM,sjBAAgkB,EAGvmB,IAAIC,GAA2C,CAC3C,UAAW,CACP,MAAO,EACf,EACI,aAAc,CACV,MAAO,EACf,EACI,kBAAmB,CACf,MAAO,IACf,EACI,kBAAmB,CACf,MAAO,MACf,EACI,gBAAiB,CACb,MAAO,EACf,EACI,UAAW,CACP,MAAO,EACf,EACI,aAAc,CACV,MAAO,GACP,QAAS,CACL,EACA,EACA,EACA,EACA,EACA,GACA,GACA,KACA,GACA,KACA,GACA,EACZ,CACA,EACI,aAAc,CACV,MAAO,CAAA,CACf,EACI,MAAO,CACH,MAAO,OACP,QAAS,CACL,OACA,UACA,OACZ,CACA,EACI,OAAQ,CACJ,MAAO,KACP,QAAS,CACL,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACZ,CACA,EACI,gBAAiB,CACb,MAAO,CACf,EACI,YAAa,CACT,MAAO,MACP,QAAS,CACL,MACA,SACA,MACZ,CACA,EACI,eAAgB,CACZ,MAAO,EACf,EACI,eAAgB,CACZ,MAAO,IACf,EACI,QAAS,CACL,MAAO,CACf,EACI,aAAc,CACV,MAAO,IACf,EACI,gBAAiB,CACb,MAAO,SACP,QAAS,CACL,MACA,SACA,MACZ,CACA,EACI,eAAgB,CACZ,MAAO,SACP,QAAS,CACL,SACA,SACA,MACZ,CACA,EACI,IAAK,CACD,MAAO,SACP,QAAS,CACL,SACA,QACA,WACA,SACA,SACZ,CACA,EACI,KAAM,CACF,MAAO,EACP,QAAS,CACL,EACA,EACA,EACA,EACA,EACA,CACZ,CACA,EACI,iBAAkB,CACd,MAAO,UACP,QAAS,CACL,UACA,SACA,M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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,k7ucC12F5B,MAAMhhE,EAAQihE,EAMRvtD,EAAOwtD,EAIP,CAAE,MAAAl7D,EAAO,iBAAAm9C,EAAkB,YAAAK,CAAA,EAAgBgC,GAAA,EAC3C,CAAE,KAAA7D,CAAA,EAASzG,GAAA,EAIjB,IAAIimB,EAAgC,KAEpC,MAAMC,EAAwC,CAAE,GAAAC,GAAI,GAAAC,GAAI,GAAAC,GAAI,GAAAC,GAAI,GAAAC,GAAI,GAAAC,GAAI,GAAAC,GAAI,GAAAC,EAAA,EAItEC,EAAe3mE,GAAK,EAAM,EAC1B4mE,EAAY5mE,GAAa,OAAQ,EACjC6mE,EAAmB7mE,GAA8B,EAAG,EACpD8mE,EAAmB9mE,GAA4B,IAAK,EACpD+mE,EAAe/mE,GAA4B,IAAK,EAIhDgnE,EAAkBzO,GAA8C//C,EAAM,cAAe+/C,EAAM,OAAQA,EAAM,IAAK,EAC9G0O,EAAmBjwE,GAAqB,CAC5C,GAAK,CAAC8T,EAAM,gBAAkB,OAC9B,MAAMP,EAAOvT,EAAE,aAAA,EACf,GAAKuT,EAAK,SAAW,EAAI,OACzB,MAAM28D,EAAcJ,EAAiB,MAAQv8D,EAAK,SAAUu8D,EAAiB,KAAM,EAAI,GACjFK,EAAWriE,EAAM,aAAeyF,EAAK,SAAUzF,EAAM,YAAa,EAAI,GACvE,CAACoiE,GAAe,CAACC,KAA6B,EAAM,CAC3D,EACMC,EAAqB,IAAM,OAC/B,MAAMC,GAAgBnyE,EAAA6xE,EAAa,QAAb,YAAA7xE,EAAoB,cAAe,mBACnDoyE,EAAcD,GAAA,YAAAA,EAAe,WACnC,GAAK,CAACC,EAAc,OACpB,MAAMC,EAAQ,IAAI,cAGlBA,EAAM,YAAa,4GAA6G,EAChID,EAAY,mBAAqB,CAAE,GAAGA,EAAY,mBAAoBC,CAAM,CAC9E,EACMC,EAAoB,MAAQpuB,GAEzB,IAAI,QAAS,CAAE5qB,EAASqP,IAAY,CAIzC,MAAMzS,GAHQ,OAAO,iBAAkBguB,CAAQ,EACzB,gBAEA,MAAO,wBAAyB,EACtD,GAAK,CAAChuB,GAAQ,OAAOyS,EAAA,EACrB,MAAM4pC,EAAM,IAAI,MAChBA,EAAI,OAAS,IAAMj5C,EAAA,EACnBi5C,EAAI,QAAU,IAAM5pC,EAAA,EACpB4pC,EAAI,IAAMr8C,GAAO,CAAE,CACrB,CAAE,EAEEs8C,EAAsB,SAAY,OACtC,GAAKf,EAAa,MAAQ,OAC1B,MAAMU,GAAgBnyE,EAAA6xE,EAAa,QAAb,YAAA7xE,EAAoB,cAAe,mBACnDoyE,EAAcD,GAAA,YAAAA,EAAe,WACnC,GAAK,CAACC,EAAc,CAClB,QAAQ,MAAO,iEAAkE,EACjF,MACF,CACA,IAAIK,EAAW,EACf,KAAQL,EAAY,iBAAkB,6BAA8B,EAAE,SAAW,GAAKK,EAAW,IAC/FA,IACA,MAAM,IAAI,QAAS5nE,IAAK,WAAYA,GAAG,GAAI,CAAE,EAE/C,MAAM6nE,EAAgBN,EAAY,iBAAkB,6BAA8B,EAClF,QAAQ,IAAK,MAAM,KAAMM,CAAc,EAAE,IAAKxuB,IAAWouB,EAAmBpuB,EAAQ,CAAE,CAAE,EACrF,KAAM,IAAMutB,EAAa,MAAQ,EAAK,EACtC,MAAO,IAAM,QAAQ,MAAO,0DAA2D,CAAE,CAC9F,EACMkB,EAAiB,IAAM,SAC3BlB,EAAa,MAAQ,IACrB9iE,GAAA3O,EAAA6xE,EAAa,QAAb,YAAA7xE,EAAoB,cAAe,qBAAnC,MAAA2O,EAAwD,SACxDoiE,EAAiB,IAAI6B,GAAQ,CAC3B,KAAAp1D,GACA,IAAK,QACL,KAAMwzD,EAAczf,EAAK,MAAM,eAAgB,GAAKyf,EAAa,GACjE,MAAO,OACP,YAAa,MACb,eAAgB,SAChB,iBAAkB,OAClB,gBAAiB,OACjB,gBAAiB,EACjB,QAAS,EACT,cAAAc,EACA,eAAgBl8D,EAAM,gBAAkBm8D,EAAiB,KACzD,OAAQF,EAAa,KAAA,CACrB,EACF1gE,GAAU+gE,CAAmB,CAC/B,EACMW,EAAkB,CAAEC,EAAgB,KAAW,CAGnD,IADK,CAAC/B,GAAkB+B,IAAgBH,EAAA,EACnC,CAAC/8D,EAAM,gBAAkB,CAC5Bm7D,EAAgB,OAAQ,CAAE,eAAgB,IAAA,CAAO,EACjD,MACF,CACAA,EAAgB,OAAQ,CAAE,eAAAgB,EAAiB,EACtCL,EAAU,QAAU,SACzBvgE,GAAUqhE,CAAoB,CAChC,EAIA,OAAAnmE,GAAO,IAAMuJ,EAAM,gBAAiB,IAAMi9D,GAAkB,EAC5DxmE,GAAOqlE,EAAW,IAAMmB,GAAkB,EAC1CxmE,GAAOklD,EAAM,IAAMshB,EAAiB,EAAK,CAAE,EAI3Ch9D,GAAW,SAAY,CACrB,MAAMk9D,GAAM,CAAE,KAAAv1D,GAAM,IAAK,QAA0C,EACnEq1D,EAAA,CACF,CAAE,iBAIAnd,EAqFM,MAAA,SAnFA,mBAAJ,IAAIkc,EACJ,MAAM,iBACN,KAAK,SACJ,aAAYnc,EAAAlE,CAAA,EAAK,YAAY,SAAA,GAG9BoE,EA+BM,MA/BNG,GA+BM,CA7BJH,EASS,SAAA,CARP,MAAKqd,GAAA,CAAC,aAAY,CAAA,qBACctB,EAAA,QAAS,OAAA,CAAA,CAAA,EACzC,KAAK,MACJ,gBAAeA,EAAA,QAAS,QACxB,aAAYjc,EAAAlE,CAAA,EAAK,YAAY,kBAC7B,uBAAOmgB,EAAA,MAAS,QAAA,GAEjBn+C,GAA8DkiC,EAAAwd,EAAA,EAAA,CAA5C,cAAY,OAAO,MAAM,KAAK,OAAO,IAAA,YAIzDpd,EAAA,EAAA,EAAAH,EAgBSQ,GAAA,KAAAC,GAfOV,EAAA7/C,CAAA,EAAM,SAAbs9D,QADTxd,EAgBS,SAAA,CAfwB,IAAKwd,EAAI,GACxC,UAAM,aAAY,CAAA,qBACcxB,UAAcwB,EAAI,EAAA,CAAE,CAAA,EACpD,KAAK,MACJ,gBAAexB,EAAA,QAAcwB,EAAI,GACjC,aAAYA,EAAI,GAChB,QAAKC,GAAEzB,EAAA,MAAYwB,EAAI,EAAA,GAExBvd,EAMC,MAAA,CALE,IAAKud,EAAI,QACT,IAAKA,EAAI,GACV,MAAM,KACN,OAAO,KACP,QAAQ,MAAA,+BAMdE,GAAAzd,EAWM,MAXNW,GAWM,CATJX,EAIE,MAAA,SAHI,eAAJ,IAAIkc,EACJ,MAAM,eACL,qBAAqBJ,EAAA,MAAY,UAAA,SAAA,CAAA,UAGpC2B,GAAAzd,EAEM,MAFNY,GAEM,MADJb,EAA8DQ,GAAA,KAAAC,GAA7C,GAAL/6D,GAAZu6D,EAA8D,MAAA,CAAxC,IAAKv6D,EAAG,MAAM,uBAAA,qBADxBq2E,EAAA,KAAY,CAAA,cARfC,EAAA,QAAS,OAAA,CAAA,IActB7b,EAAA,EAAA,EAAAH,EA4BMQ,GAAA,KAAAC,GA3BcV,EAAA7/C,CAAA,EAAM,SAAjBy9D,WADT3d,EA4BM,MAAA,CAzBH,IAAK2d,EAAQ,GACd,MAAM,wCAAA,GAEN1d,EAqBM,MArBNc,GAqBM,EApBJZ,EAAA,EAAA,EAAAH,EAmBMQ,GAAA,KAAAC,GAlBUkd,EAAQ,SAAfnvC,QADTwxB,EAmBM,MAAA,CAjBH,IAAKxxB,EACN,MAAM,eACN,KAAK,SACL,SAAS,IACR,aAAYuxB,EAAAlE,CAAA,EAAK,YAAY,qBAC7B,QAAK4hB,GAAE1d,EAAArC,CAAA,EAAalvB,CAAG,CAAA,MAExByxB,EAMC,MAAA,CAJE,IAAKzxB,EACN,IAAI,GACJ,UAAU,QACT,OAAIivC,GAAExB,EAAA,MAAiBztC,CAAG,EAAA,EAAA,eAJnB,CAAAovC,GAAA3B,EAAA,MAAiBztC,CAAG,CAAA,CAAA,GAQ9BkvC,GAAAzd,EAAgE,MAAhEgB,GAAgE,KAAA,GAAA,EAAA,CAAlD,CAAA2c,GAAA,CAAA3B,EAAA,MAAiBztC,CAAG,CAAA,CAAA,4BAvB9BwtC,EAAA,QAAc2B,EAAQ,EAAE,CAAA,mBAzD1B,CAAAC,GAAA7d,EAAA7/C,CAAA,EAAM,eAAe,CAAA,+wGC9H3B29D,GAAY,IACZC,GAAmB,qCANzB,KAAM,CAAE,MAAA59D,EAAO,eAAA68C,EAAgB,UAAAE,EAAW,gBAAAE,EAAiB,iBAAAE,EAAkB,uBAAAC,EAAwB,kBAAAC,EAAmB,cAAAC,EAAe,YAAAC,CAAA,EAAgBiC,GAAA,EACjJ,CAAE,KAAA7D,CAAA,EAASzG,GAAA,EASjB,IAAI2oB,EAA2B,KAC3BC,EAAuB,KACvBC,EAAiB,GACjBC,EAAyB,GACzBC,EAAwC,KACxCC,EAAoB,EACpBC,EAAyD,KACzDC,EAAkB,EAItB,MAAMC,EAAanpE,GAAK,EAAM,EACxBopE,EAAcppE,GAAK,EAAM,EACzBqpE,EAAcrpE,GAAK,EAAM,EACzBspE,EAAYtpE,GAAK,CAAE,EACnBupE,EAAoBvpE,GAAK,CAAE,EAC3BwpE,EAAkBxpE,GAAyB,IAAK,EAChDypE,EAAuBzpE,GAA4B,IAAK,EACxD0pE,EAAe1pE,GAA4B,IAAK,EAChD2pE,GAAe3pE,GAA+B,IAAK,EAInD4pE,EAAiB,MAAQC,EAAU,KAAW,CAClD1hB,EAAA,EACA,MAAM9hD,GAAA,EACN,MAAMhW,EAAKm5E,EAAgB,MAC3B,GAAK,CAACn5E,EAAK,OACX,MAAM0I,EAAS1I,EAAG,aAAeA,EAAG,aACpC,GAAKw5E,GAAW9wE,GAAU1I,EAAG,UAAY,CACvCA,EAAG,UAAY0I,EACf,MACF,CACA,MAAM0N,EAAQpW,EAAG,UACXy5E,EAAW/wE,EAAS0N,EACpB2mB,EAAW,KAAK,IAAK,IAAK,KAAK,IAAK,GAAI08C,EAAW,EAAI,CAAE,EACzDC,EAAY,YAAY,IAAA,EACxBC,EAASrrC,GAAiB,CAC9B,MAAMsrC,EAAUtrC,EAAMorC,EAChBG,GAAW,KAAK,IAAKD,EAAU78C,EAAU,CAAE,EAC3C+8C,GAAO,EAAI,KAAK,IAAK,EAAID,GAAU,CAAE,EAC3C75E,EAAG,UAAYoW,EAAQqjE,EAAWK,GAC7BD,GAAW,EAAItB,EAAQ,sBAAuBoB,CAAK,EACnDpB,EAAQ,IACf,EACKA,IAAU,MAAO,qBAAsBA,CAAM,EAClDA,EAAQ,sBAAuBoB,CAAK,CACtC,EACMI,GAAuB,IAAM,CACjC,MAAM/5E,EAAKm5E,EAAgB,MAC3B,GAAK,CAACn5E,EAAK,OACX,MAAMg6E,EAAiBh6E,EAAG,aAAeA,EAAG,UAAYA,EAAG,aACrD62D,EAAiBmjB,GAAkB3B,GACzC3gB,EAAiBsiB,GAAkB3B,EAAiB,EAC/CxhB,KAA4B,EAAM,CACzC,EACMojB,GAAsB,IAAM,CAChCpiB,EAAA,EACAkiB,GAAA,CACF,EACMG,GAAgB,CAAEzkB,EAAgBE,IAAgC,CAGtE,MAAM31D,EAAK,SAAS,cAAe,UAAW,EAC9C,OAAAA,EAAG,aAAc,SAAUy1D,CAAO,EAClCz1D,EAAG,aAAc,MAAO,OAAQ,EAChCA,EAAG,aAAc,OAAQ,MAAO,EAC3B21D,IAAS,QAAY31D,EAAG,aAAc,OAAQ,OAAQ21D,CAAK,CAAE,EAClE31D,EAAG,gBAAkB,QACdA,CACT,EACMm6E,GAA4Br+C,GAAkC,CAElE,MAAMhS,EAAOgS,EAAK,YAAA,EAClB,OAAKhS,aAAgB,YAAc,OAASA,EAAiE,cAAiB,WACnHA,EAAgE,aAAA,EAEpE,OAAO,aAAA,CAChB,EACMswD,GAAiB,IAAM,CAE3B,MAAMC,EAAMhB,EAAa,MACzB,GAAK,CAACgB,EAAM,OACZ,MAAMC,EAAMH,GAAyBE,CAAI,EACzC,GAAK,CAACC,GAAOA,EAAI,aAAe,EAAI,OACpC,MAAMC,EAAQD,EAAI,WAAY,CAAE,EAC1BD,EAAI,SAAUE,EAAM,uBAAwB,IAClDjC,EAAaiC,EAAM,WAAA,EACrB,EACMC,GAAe,IAAc,CAEjC,MAAMH,EAAMhB,EAAa,MACzB,GAAK,CAACgB,EAAM,MAAO,GACnB,IAAIrhD,EAAO,GACX,UAAY8C,KAAQ,MAAM,KAAMu+C,EAAI,UAAW,EAC7C,GAAKv+C,EAAK,WAAa,KAAK,UAC1B9C,GAAQ8C,EAAK,aAAe,WAClBA,aAAgB,QAAU,CACpC,MAAMF,EAAME,EAAK,QAAQ,YAAA,EACpBF,IAAQ,WACX5C,GAAQ8C,EAAK,aAAc,QAAS,GAAK,GAC/BF,IAAQ,OAClB5C,GAAQ8C,EAAK,aAAe,GAEhC,CAEF,OAAO9C,CACT,EACMyhD,GAAkB,IAAM,CAC5B,GAAK,CAACpB,EAAa,MAAQ,CACzBL,EAAY,MAAQ,GACpB,MACF,CACA,MAAMh5E,EAAKq5E,EAAa,MAClB5gD,EAAQ,iBAAkBz4B,CAAG,EAC7B06E,EAAa,WAAYjiD,EAAM,UAAW,GAAK,GAC/CkiD,EAAa,WAAYliD,EAAM,UAAW,GAAK,EAC/CmiD,EAAgB,WAAYniD,EAAM,aAAc,GAAK,EAC3DugD,EAAY,MAAQh5E,EAAG,aAAe06E,EAAaC,EAAaC,CAClE,EACMC,GAAa,IAAM,CACvB9iB,EAAA,EACKshB,EAAa,QAChBA,EAAa,MAAM,UAAY,GAC/BP,EAAW,MAAQ,GACnBG,EAAU,MAAQ,EAClBD,EAAY,MAAQ,GACpBV,EAAa,KAEjB,EACMwC,GAAwBT,GAAiC,CAE7D,MAAMC,EAAMH,GAAyBE,CAAI,EACzC,GAAK,CAACC,GAAOA,EAAI,aAAe,EAAI,MAAO,GAE3C,MAAMC,EAAQD,EAAI,WAAY,CAAE,EAC1BS,EAAaR,EAAM,eAEnBS,EAAiB5/D,GAAyB,SAC9C,OAAKA,EAAM,WAAa,KAAK,YAAmBvW,EAAAuW,EAAM,cAAN,YAAAvW,EAAmB,SAAU,EACxEuW,aAAiB,QACfA,EAAM,QAAQ,YAAA,IAAkB,YAAsBA,EAAM,aAAc,QAAS,GAAK,IAAK,SAC3F5H,EAAA4H,EAAM,cAAN,YAAA5H,EAAmB,SAAU,EAE/B,CACT,EAGA,GAAKunE,IAAeV,EAAM,CACxB,IAAIY,EAAS,EACb,QAAUh7E,EAAI,EAAGA,EAAIs6E,EAAM,YAAat6E,IAAMg7E,GAAUD,EAAcX,EAAI,WAAYp6E,CAAE,CAAE,EAC1F,OAAOg7E,CACT,CAEA,IAAIA,EAAS,EACb,UAAY7/D,KAAS,MAAM,KAAMi/D,EAAI,UAAW,EAAI,CAClD,GAAKj/D,IAAU2/D,EAAa,OAAOE,EAASV,EAAM,YAClDU,GAAUD,EAAc5/D,CAAM,CAChC,CACA,OAAO6/D,CACT,EACMC,GAAkB,CAAEb,EAAqBc,IAA0B,OAEvE,MAAMb,EAAMH,GAAyBE,CAAI,EACzC,IAAIY,EAAS,EAEb,UAAY7/D,KAAS,MAAM,KAAMi/D,EAAI,UAAW,EAC9C,GAAKj/D,EAAM,WAAa,KAAK,UAAY,CACvC,MAAM0b,IAAMjyB,EAAAuW,EAAM,cAAN,YAAAvW,EAAmB,SAAU,EACzC,GAAKo2E,EAASnkD,GAAOqkD,EAAe,CAClC,MAAMZ,EAAQ,SAAS,YAAA,EACvBA,EAAM,SAAUn/D,EAAO+/D,EAAeF,CAAO,EAC7CV,EAAM,SAAU,EAAK,EACrBD,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUC,GACf,MACF,CACAU,GAAUnkD,CACZ,SAAY1b,aAAiB,SAAWA,EAAM,QAAQ,YAAA,IAAkB,WAAa,CAEnF,GAAK+/D,GAAgBF,EAAS,CAC5B,MAAMV,EAAQ,SAAS,YAAA,EACvBA,EAAM,eAAgBn/D,CAAM,EAC5Bm/D,EAAM,SAAU,EAAK,EACrBD,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUC,GACf,MACF,CAGA,GAFAU,IAAY7/D,EAAM,aAAc,QAAS,GAAK,IAAK,OAE9C6/D,GAAUE,EAAe,CAC5B,MAAMZ,EAAQ,SAAS,YAAA,EACvBA,EAAM,cAAen/D,CAAM,EAC3Bm/D,EAAM,SAAU,EAAK,EACrBD,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUC,GACf,MACF,CACF,CAIF,MAAMA,EAAQ,SAAS,YAAA,EACvBA,EAAM,mBAAoBF,CAAI,EAC9BE,EAAM,SAAU,EAAM,EACtBD,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUC,EACjB,EACMa,GAAmB,IAAM,OAE7B,MAAMf,EAAMhB,EAAa,MACzB,GAAK,CAACgB,EAAM,OACZ,MAAMgB,EAAeP,GAAqBT,CAAI,EAC9C,IAAIiB,EAAa,GACjB,MAAMC,EAAc,MAAM,KAAMlB,EAAI,UAAW,EAC/C,UAAYv+C,KAAQy/C,EAAc,CAGhC,GAFKz/C,EAAK,WAAa,KAAK,WAAa,CAACA,EAAK,cAC/Cw5B,GAAS,UAAY,EAChB,CAACA,GAAS,KAAMx5B,EAAK,WAAY,GAAI,SAC1Cw/C,EAAa,GACb,MAAME,EAAO5lB,GAAe95B,EAAK,WAAY,EACvC2/C,EAAO,SAAS,uBAAA,EACtB,UAAYxgB,KAAOugB,EAAO,CACxB,MAAMx7E,EAAKi7D,EAAI,OAAS,QAAUif,GAAejf,EAAI,MAAOzF,GAAmByF,EAAI,KAAM,CAAE,EAAI,SAAS,eAAgBA,EAAI,KAAM,EAClIwgB,EAAK,YAAaz7E,CAAG,CACvB,EACA6E,EAAAi3B,EAAK,aAAL,MAAAj3B,EAAiB,aAAc42E,EAAM3/C,EACvC,CACKw/C,GAAcD,GAAgB,GAAIH,GAAiBb,EAAKgB,CAAa,CAC5E,EACMK,GAAgB/0E,GAAmB,CACvC,GAAKA,EAAE,YAAc,OACrBy0E,GAAA,EACA,MAAMpiD,EAAOwhD,GAAA,EACbvB,EAAU,MAAQjgD,EAAK,OACvB8/C,EAAW,MAAQ,CAAC,CAAC9/C,EAAK,QAAUigD,EAAU,OAASb,GACvDqC,GAAA,CACF,EACMkB,GAAyB,IAAM,CACnC5C,EAAY,MAAQ,GACpB,MAAMsB,EAAMhB,EAAa,MACnBgB,IACN7B,EAAiB6B,EAAI,UACrB5B,EAAyBqC,GAAqBT,CAAI,EACpD,EACMuB,GAAuB,IAAM,CACjC7C,EAAY,MAAQ,GACpBqC,GAAA,EACA,MAAMpiD,EAAOwhD,GAAA,EACb,GAAKxhD,EAAK,OAASo/C,GAAY,CAE7B,MAAMiC,EAAMhB,EAAa,MACzBgB,EAAI,UAAY7B,EACXC,GAA0B,GAAIyC,GAAiBb,EAAK5B,CAAuB,EAChF,MAAMoD,EAAWrB,GAAA,EACjBvB,EAAU,MAAQ4C,EAAS,OAC3B/C,EAAW,MAAQ,CAAC,CAAC+C,EAAS,KAAA,EAC9BpB,GAAA,EACA,MACF,CACAxB,EAAU,MAAQjgD,EAAK,OACvB8/C,EAAW,MAAQ,CAAC,CAAC9/C,EAAK,QAAUigD,EAAU,OAASb,GACvDqC,GAAA,CACF,EACMqB,GAAgBn1E,GAAuB,OAE3CA,EAAE,eAAA,EACF,MAAM0zE,EAAMhB,EAAa,MACzB,GAAK,CAACgB,EAAM,OAEZ,MAAM0B,IAAQl3E,EAAA8B,EAAE,gBAAF,YAAA9B,EAAiB,QAAS,gBAAkB,GAC1D,GAAK,CAACk3E,EAAQ,OAGd,MAAMC,EAAY5D,GAAYa,EAAU,MACxC,GAAK+C,GAAa,EAAI,OACtB,MAAMhjD,EAAO+iD,EAAM,MAAO,EAAGC,CAAU,EAGvC3B,EAAI,MAAA,EACJ,MAAMC,EAAMH,GAAyBE,CAAI,EACzC,IAAIE,EAECD,GAAOA,EAAI,WAAa,GAAKD,EAAI,SAAUC,EAAI,WAAY,CAAE,EAAE,uBAAwB,EAE1FC,EAAQD,EAAI,WAAY,CAAE,EAChBhC,GAAc+B,EAAI,SAAU/B,EAAW,uBAAwB,GAEzEiC,EAAQjC,EAAW,WAAA,EACnBgC,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUC,KAGfA,EAAQ,SAAS,YAAA,EACjBA,EAAM,mBAAoBF,CAAI,EAC9BE,EAAM,SAAU,EAAM,EACtBD,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUC,IAIjBA,EAAM,eAAA,EACN,MAAM0B,EAAW,SAAS,eAAgBjjD,CAAK,EAC/CuhD,EAAM,WAAY0B,CAAS,EAC3B1B,EAAM,cAAe0B,CAAS,EAC9B1B,EAAM,SAAU,EAAK,EACrBD,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUC,GAGfa,GAAA,EACA,MAAMc,EAAU1B,GAAA,EAChBvB,EAAU,MAAQiD,EAAQ,OAC1BpD,EAAW,MAAQ,CAAC,CAACoD,EAAQ,QAAUjD,EAAU,OAASb,GAC1DqC,GAAA,CACF,EACM0B,GAAgB,IAAM,CAC1BtD,EAAkB,KAAK,IAAA,EAAQp+D,EAAM,SAAW,IAChDy+D,EAAkB,MAAQz+D,EAAM,SAC3Bm+D,IAAoB,MAAO,cAAeA,CAAgB,EAC/DA,EAAkB,YAAa,IAAM,CACnC,MAAMoD,GAAcnD,EAAkB,KAAK,IAAA,GAAU,IAChDmD,GAAa,GAChB9C,EAAkB,MAAQ,EAC1B,cAAeN,CAAiB,EAChCA,EAAkB,MAElBM,EAAkB,MAAQ8C,CAE9B,EAAG,GAAI,CACT,EACMI,GAAa,IAAM,CAClBlD,EAAkB,MAAQ,IAC/BlhB,EAAawiB,IAAe,EAC5B2B,GAAA,EACF,EACME,EAAkB11E,GAAsB,CAE5C,GAAKA,EAAE,MAAQ,SAAW,CAACA,EAAE,YAAc,CACzCA,EAAE,eAAA,EACFy1E,GAAA,EACA,MACF,CACA,MAAME,EAAgB,CAAE,YAAa,SAAU,YAAa,aAAc,UAAW,YAAa,OAAQ,MAAO,KAAM,EAAE,SAAU31E,EAAE,GAAI,GAAKA,EAAE,SAAWA,EAAE,QACxJsyE,EAAU,OAASb,IAAa,CAACkE,KAAkB,eAAA,CAC1D,EACMC,GAAc,CAAE9mB,EAAgBE,IAAmB,CAEvD,MAAM0kB,EAAMhB,EAAa,MAEzB,GADK,CAACgB,GACDpB,EAAU,OAASb,GAAY,OACpC,MAAMp4E,EAAKk6E,GAAezkB,EAAQE,CAAK,EACjC2kB,EAAMH,GAAyBE,CAAI,EACzC,GAAK/B,GAAc+B,EAAI,SAAU/B,EAAW,uBAAwB,EAClEA,EAAW,eAAA,EACXA,EAAW,WAAYt4E,CAAG,EAC1Bs4E,EAAW,cAAet4E,CAAG,EAC7Bs4E,EAAW,SAAU,EAAK,EAC1BgC,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUhC,OACV,CACL+B,EAAI,YAAar6E,CAAG,EACpB,MAAMu6E,EAAQ,SAAS,YAAA,EACvBA,EAAM,cAAev6E,CAAG,EACxBu6E,EAAM,SAAU,EAAK,EACrBD,GAAA,MAAAA,EAAK,kBACLA,GAAA,MAAAA,EAAK,SAAUC,EACjB,CACAF,EAAI,MAAA,EACJ,MAAMmC,EAAarC,GAAyBE,CAAI,EAChD/B,EAAakE,GAAcA,EAAW,WAAa,EAAIA,EAAW,WAAY,CAAE,EAAE,WAAA,EAAe,KACjG,MAAMxjD,EAAOwhD,GAAA,EACbvB,EAAU,MAAQjgD,EAAK,OACvB8/C,EAAW,MAAQ,GACnB9iE,GAAUykE,EAAgB,CAC5B,EACMgC,EAA4B,IAAM,SAAS,iBAAkB,kBAAmBrC,EAAe,EAC/FsC,EAA+B,IAAM,SAAS,oBAAqB,kBAAmBtC,EAAe,EACrGuC,EAA0Bj0E,GAAmC,CAEjEgwE,GAAA,MAAAA,EAAgB,aAChBA,EAAiB,KACXhwE,IACNiwE,EAAoBjwE,EAAO,wBAAwB,OACnDgwE,EAAiB,IAAI,eAAgBj0E,GAAW,CAC9C,MAAMwP,EAAQxP,EAAS,CAAE,EACzB,GAAK,CAACwP,EAAQ,OACd,MAAM2oE,EAAY3oE,EAAM,YAAY,OACpC,GAAK2oE,GAAajE,EAAoB,CACpCA,EAAoBiE,EACpB,MACF,CACAjE,EAAoBiE,GACfniE,EAAM,gBAAkB89D,IAAU,OAAOgB,EAAA,CAChD,CAAE,EACFb,EAAe,QAAShwE,CAAO,EACjC,EAIAwI,GAAO,IAAMuJ,EAAM,kBAAyB1Z,GAASy2D,EAAW,EAAM,CAAE,EACxEtmD,GAAO,IAAMuJ,EAAM,wBAAyB1Z,GAASA,GAASk5E,KAAuB,CAAE,UAAW,GAAO,EACzG/oE,GAAO,IAAMuJ,EAAM,mBAAoB1Z,GAASA,GAASw4E,IAAkB,CAAE,UAAW,GAAO,EAC/FroE,GAAO,IAAMuJ,EAAM,eAAgB1Z,GAASA,GAAS85E,KAAc,CAAE,UAAW,GAAO,EACvF3pE,GAAOkoE,EAAsBuD,EAAuB,CAAE,UAAW,GAAO,EAIxEhiE,GAAiB,IAAM,CAChB49D,IAAU,MAAO,qBAAsBA,CAAM,EAC7CK,IAAoB,MAAO,cAAeA,CAAgB,EAC/DF,GAAA,MAAAA,EAAgB,aAChBgE,EAAA,CACF,CAAE,EAEF,MAAMG,EAAiBt2C,GAA2C,CAChE,MAAMu2C,EAAS1mB,EAAK,MAAM,SAAS,MACnC,OAAK7vB,GAAaA,KAAau2C,EACtBA,EAAQv2C,CAAiC,EAE3Cu2C,EAAO,aAChB,gBAIEpiB,EAAA,EAAAH,EAgOM,MAhONwiB,GAgOM,CA9NJviB,EASS,SATTG,GASS,CARPH,EAAyD,OAAzDM,GAAyDD,GAArBP,EAAA7/C,CAAA,EAAM,KAAK,EAAA,CAAA,EAC/C+/C,EAMS,SAAA,CALP,MAAM,qBACL,aAAYF,EAAAlE,CAAA,EAAK,SAAS,eAC1B,uBAAOkE,EAAAhD,CAAA,EAAc,EAAA,EAAA,GAEtBl/B,GAAsDkiC,EAAA0iB,EAAA,EAAA,CAA5C,cAAY,OAAO,MAAM,KAAK,OAAO,IAAA,YAKxC1iB,EAAA7/C,CAAA,EAAM,UAAjBigD,IAAAH,EAUM,MAVNW,GAUM,CATJ9iC,GAKEkiC,EAAA2iB,EAAA,EAAA,CAJA,MAAM,mBACN,cAAY,OACZ,MAAM,KACN,OAAO,IAAA,GAETziB,EAEI,IAFJW,GAEIN,GADCP,KAAK,SAAS,MAAM,EAAA,CAAA,CAAA,KAK3BI,EAAA,EAAAH,EA6HM,MA7HNa,GA6HM,CA5HJZ,EA+GO,OAAA,SA9GD,kBAAJ,IAAI2e,EACJ,MAAM,gBACL,aAAY7e,EAAAlE,CAAA,EAAK,SAAS,qBAC3B,YAAU,SACT,SAAQ2jB,EAAA,GAETvf,EAuGM,MAAA,SAvGG,uBAAJ,IAAI4e,EAAuB,MAAM,sBAAA,GAG5B9e,EAAA7/C,CAAA,EAAM,eADd8/C,EAQM,MAAA,OANJ,MAAM,eACN,KAAK,SACJ,aAAYD,EAAAlE,CAAA,EAAK,SAAS,gBAAA,eAE3BoE,EAAwD,MAAA,CAAnD,MAAM,wBAAwB,cAAY,MAAA,YAC/CA,EAAmE,OAAnE0iB,GAAmEriB,GAA/BP,KAAK,SAAS,OAAO,EAAA,CAAA,CAAA,cAG3DC,EA0FWQ,GAAA,CAAA,IAAA,GAAA,CAvFDT,EAAA7/C,CAAA,EAAM,OAAS6/C,EAAA7/C,CAAA,EAAM,oBAD7B8/C,EAQM,MAAA,OANJ,MAAM,aACN,KAAK,gBACJ,aAAYD,EAAAlE,CAAA,EAAK,SAAS,MAAM,SAAA,GAGjCoE,EAAwD,MAAA,CAAnD,MAAM,sBAAsB,UAAQF,EAAA7/C,CAAA,EAAM,KAAA,gCAIjDigD,EAAA,EAAA,EAAAH,EA4EMQ,GAAA,KAAAC,GA5EiBV,EAAA7/C,CAAA,EAAM,SAAjBirB,QAAZ60B,EA4EM,MAAA,CA5EkC,IAAK70B,EAAQ,GAAI,MAAM,cAAA,GAEpDA,EAAQ,wBADjB60B,EAqEM,MAAA,OAnEJ,UAAM,cAAa,CAC6B,mBAAA70B,EAAQ,MAAgD,qBAAA,CAAAA,EAAQ,KAAA,MAKhH80B,EA4DM,MA5DN2iB,GA4DM,CA1DJ3iB,EAEO,OAAA,CAFD,MAAKqd,GAAA,CAAC,iBAAyBnyC,EAAQ,MAAK,sBAAA,EAAA,CAAA,CAAA,KAC7CA,EAAQ,MAAQ40B,EAAAlE,CAAA,EAAK,OAAO,IAAM1wB,EAAQ,MAAM,EAAA,CAAA,EAK7CA,EAAQ,OAAI,eADpB60B,EAOC,MAAA,OALC,MAAM,kBACN,IAAI,GACJ,UAAU,QACT,IAAK70B,EAAQ,WACb,aAAU,GAAMA,EAAQ,MAAQ40B,EAAAlE,CAAA,EAAK,OAAO,IAAM1wB,EAAQ,MAAM,WAAA,cAKtDA,EAAQ,OAAI,YADzB60B,EAoBM,MAAA,OAlBJ,KAAK,UACL,UAAM,iBAAgB,CACiC,sBAAA70B,EAAQ,MAAuD,wBAAA,CAAAA,EAAQ,KAAA,OAK9Hg1B,EAAA,EAAA,EAAAH,EAUWQ,WAVoBr1B,EAAQ,SAAQ,CAA5Bu1B,EAAKh7D,mBAA+BA,GAAC,CAE9Cg7D,EAAI,OAAI,aADhBV,EAOE,WAAA,OALA,MAAM,mBACL,OAAQU,EAAI,MACZ,KAAMA,EAAI,KACX,IAAI,QACJ,KAAK,MAAA,mBAEPV,EAAmC,OAAA6iB,GAAAviB,GAAnBI,EAAI,KAAK,EAAA,CAAA,EAAA,6BAKlBv1B,EAAQ,SAAnBg1B,EAAA,EAAAH,EAOM,MAPN8iB,GAOM,CANJ7iB,EAAgD,eAAvCF,EAAAlE,CAAA,EAAK,SAAS,QAAQ,OAAO,EAAA,CAAA,EACtCh+B,GAIEkiC,EAAAgjB,EAAA,EAAA,CAHA,cAAY,OACZ,MAAM,KACN,OAAO,IAAA,gBAKA53C,EAAQ,WAAnBg1B,EAAA,EAAAH,EASM,MATNgjB,GASM,CARJ/iB,EAEO,eADFF,EAAAlE,CAAA,EAAK,SAAS,QAAQ,MAAM,EAAA,CAAA,EAEjCh+B,GAIEkiC,EAAAkjB,EAAA,EAAA,CAHA,cAAY,OACZ,MAAM,KACN,OAAO,IAAA,uBAOJ93C,EAAQ,WAAaA,EAAQ,UAAxCg1B,EAAA,EAAAH,EAEM,MAFNkjB,GAEM5iB,GADDn1B,EAAQ,UAAQ,SAAcA,EAAUA,EAAQ,KAAOm3C,EAAcn3C,EAAQ,SAAS,CAAA,EAAA,CAAA,2CAQnGtN,GASaiiC,GAAA,CATD,KAAK,QAAM,YACrB,IAOS,CANAC,EAAA7/C,CAAA,EAAM,8BADf8/C,EAOS,SAAA,OALP,MAAM,uBACL,aAAYD,EAAAlE,CAAA,EAAK,SAAS,wBAC1B,uBAAOmjB,EAAA,EAAc,GAEtBnhD,GAA8DkiC,EAAAojB,EAAA,EAAA,CAA5C,cAAY,OAAO,MAAM,KAAK,OAAO,IAAA,sBAM7DtlD,GAMaiiC,GAAA,CAND,KAAK,UAAQ,YACvB,IAIE,IAJFjiC,GAIEulD,GAAA,CAFC,gBAAerE,GAAA,MACf,cAAciD,EAAA,6BAFP,CAAApE,GAAA7d,EAAA7/C,CAAA,EAAM,eAAe,CAAA,WAOlB6/C,EAAA7/C,CAAA,EAAM,oBAArBigD,EAAA,EAAAH,EA2DS,SA3DTqjB,GA2DS,CAzDPpjB,EAkBE,MAAA,SAjBI,eAAJ,IAAI6e,EACJ,MAAM,qBACN,KAAK,UACL,iBAAA,GACC,aAAY/e,EAAAlE,CAAA,EAAK,SAAS,MAAM,UAChC,gBAAiBkE,EAAA7/C,CAAA,EAAM,WAAU,QAAA,OACjC,aAAU,CAAGq+D,EAAA,OAAU,CAAKC,EAAA,MAC5B,aAAYze,EAAA7/C,CAAA,EAAM,QAClB,yBAAwB6/C,EAAAlE,CAAA,EAAK,SAAS,MAAM,YAC5C,mBAAkBkE,EAAAlE,CAAA,EAAK,SAAS,MAAM,MACtC,QAAOslB,GACP,QAAOe,EACP,OAAMC,EACN,mBAAkBf,GAClB,iBAAgBC,GAChB,UAASS,EACT,QAAOP,EAAA,cAIVthB,EAmCM,MAnCNqjB,GAmCM,CAlCO7E,EAAA,OAAXte,EAAA,EAAAH,EAGM,MAHNujB,GAGM,CADJtjB,EAAuE,OAAvEujB,GAAuEljB,GAAnCoe,OAAS,EAAG,OAAIb,EAAS,EAAA,CAAA,CAAA,cAG/D5d,EA4BM,MA5BNwjB,GA4BM,CA1BJxjB,EASS,SAAA,SARH,eAAJ,IAAI8e,GACJ,MAAM,sCACL,SAAUhf,EAAA7/C,CAAA,EAAM,WAChB,aAAY6/C,EAAA7/C,CAAA,EAAM,gBAAkB6/C,EAAAlE,CAAA,EAAK,SAAS,YAAY,eAAiBkE,EAAAlE,CAAA,EAAK,SAAS,YAAY,cACzG,gBAAekE,EAAA7/C,CAAA,EAAM,gBACrB,QAAKwjE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAjG,GAAE1d,EAAA1C,CAAA,EAAgB,CAAG0C,EAAA7/C,CAAA,EAAM,eAAe,EAAA,GAEhD2d,GAAuDkiC,EAAA4jB,EAAA,EAAA,CAA5C,cAAY,OAAO,MAAM,KAAK,OAAO,IAAA,UAIlD1jB,EAaS,SAAA,CAZP,MAAM,qCACL,UAAWse,EAAA,OAAcxe,KAAM,YAAc4e,EAAA,MAAiB,EAC9D,aAAY5e,EAAAlE,CAAA,EAAK,SAAS,cAC1B,uBAAOgmB,GAAA,EAAU,GAENlD,EAAA,MAAiB,OAA7B3e,EAA6G,OAA7G4jB,GAA6GtjB,GAAzC,KAAK,KAAMqe,EAAA,KAAiB,CAAA,EAAK,IAAC,CAAA,QACtGkF,GAKE9jB,EAAA+jB,EAAA,EAAA,OAHA,cAAY,OACZ,MAAM,KACN,OAAO,IAAA,sHC3pBrB,KAAM,CAAE,MAAA5jE,EAAO,WAAA0+C,EAAY,SAAAC,EAAU,UAAAC,EAAW,iBAAAG,CAAA,EAAqBS,GAAA,+BAKnEO,EAaM,MAbNuiB,GAaM,CAZJviB,EAES,SAAA,CAFA,QAAKyjB,EAAA,CAAA,IAAAA,EAAA,CAAA,UAAE3jB,EAAAd,CAAA,GAAAc,EAAAd,CAAA,EAAA,GAAAvvD,CAAA,EAAA,EAAkB,MAElC,EACAuwD,EAES,SAAA,CAFA,QAAKyjB,EAAA,CAAA,IAAAA,EAAA,CAAA,UAAE3jB,EAAAnB,CAAA,GAAAmB,EAAAnB,CAAA,EAAA,GAAAlvD,CAAA,EAAA,EACX4wD,GAAAP,EAAA7/C,CAAA,EAAM,UAAS,IAAA,GAAA,EAAA,CAAA,EAEpB+/C,EAES,SAAA,CAFA,QAAKyjB,EAAA,CAAA,IAAAA,EAAA,CAAA,UAAE3jB,EAAAlB,CAAA,GAAAkB,EAAAlB,CAAA,EAAA,GAAAnvD,CAAA,EAAA,EACX4wD,GAAAP,EAAA7/C,CAAA,EAAM,QAAO,IAAA,IAAA,EAAA,CAAA,EAElB+/C,EAES,SAAA,CAFA,QAAKyjB,EAAA,CAAA,IAAAA,EAAA,CAAA,UAAE3jB,EAAAjB,CAAA,GAAAiB,EAAAjB,CAAA,EAAA,GAAApvD,CAAA,EAAA,EACX4wD,GAAAP,EAAA7/C,CAAA,EAAM,SAAQ,IAAA,IAAA,EAAA,CAAA,CAAA,GAKrB+/C,EAIM,MAJNG,GAIM,QAHJJ,EAEMQ,GAAA,KAAAC,GAF4B,OAAO,QAASV,EAAA7/C,CAAA,CAAK,EAAG,OAAM,CAAA,CAAMpb,CAAG,IAAQA,IAAG,SAAgBA,IAAG,YAAmBA,IAAG,eAAsBA,yBAA+BA,IAAG,UAAA,EAAA,CAAA,CAArKA,EAAK0B,CAAK,SAA1Bw5D,EAEM,MAAA,CAFmM,IAAAl7D,GAAQ,CAC5Mo8D,GAAAZ,GAAAx7D,CAAG,EAAG,KAAE,CAAA,EAAAm7D,EAAwB,eAAfz5D,CAAK,EAAA,CAAA,CAAA,4GCvB/B,KAAM,CAAE,OAAA2uD,EAAQ,UAAAD,CAAA,EAAcE,GAAA,EACxB2uB,EAAkB5uB,GAAoB,CAC1C,OAASA,EAAAA,CACP,IAAK,KACH,MAAO,KACT,IAAK,KACH,MAAO,MACT,IAAK,KACH,MAAO,MACT,IAAK,KACH,MAAO,OACT,QACE,OAAOA,CAAA,CAEb,gBAKEgL,EAAA,EAAAH,EASM,MATNwiB,GASM,QARJxiB,EAOSQ,GAAA,KAAAC,GANQV,EAAAjL,EAAA,EAARkvB,QADThkB,EAOS,SAAA,CALN,IAAKgkB,EACL,MAAK1G,GAAA,CAAA,OAAYvd,EAAA5K,CAAA,IAAW6uB,EAAI,EAChC,QAAKvG,GAAE1d,EAAA7K,CAAA,EAAW8uB,CAAI,CAAA,EAEpB1jB,GAAAyjB,EAAeC,CAAI,CAAA,EAAA,GAAA5jB,EAAA,oHCrB5B,KAAM,CAAE,KAAAvE,CAAA,EAASzG,GAAA,EACX,CAAE,MAAAwG,EAAO,MAAA17C,EAAO,eAAA68C,CAAA,EAAmB2C,GAAA,gBAIvCS,EAAA,EAAAH,EA4CM,MA5CNwiB,GA4CM,CA1CJ3kD,GAAeomD,EAAA,EAGfpmD,GAmBaiiC,GAAA,CAnBD,KAAK,QAAM,YACrB,IAiBS,CAhBDC,EAAA7/C,CAAA,EAAM,eADd8/C,EAiBS,SAAA,OAfP,MAAM,cACL,aAAYD,EAAAlE,CAAA,EAAK,SAAS,gBAC1B,QAAK6nB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAjG,GAAE1d,EAAAhD,CAAA,EAAc,CAAGgD,EAAA7/C,CAAA,EAAM,aAAa,EAAA,GAG5C+/C,EAME,MAAA,CALA,UAAM,oBAAmB,CAC2B,4BAAA,CAAAF,EAAA7/C,CAAA,EAAM,cAAwD,4BAAA6/C,EAAA7/C,CAAA,EAAM,aAAA,aAO/G6/C,EAAA7/C,CAAA,EAAM,UAAjBigD,EAAA,EAAAH,EAAsD,MAAtDO,EAAsD,uCAK1D1iC,GAOaiiC,GAAA,CAPD,KAAK,QAAM,YACrB,IAKE,CAJO,CAAAC,EAAA7/C,CAAA,EAAM,WAAa6/C,EAAA7/C,CAAA,EAAM,mBADlC8/C,EAKE,MAAA,OAHA,MAAM,iBACN,cAAY,OACX,uBAAOD,EAAAhD,CAAA,EAAc,EAAA,EAAA,sBAK1Bl/B,GAEaiiC,GAAA,CAFA,KAAOC,EAAA7/C,CAAA,EAAM,UAAS,aAAA,YAAA,cACjC,IAA+D,IAA/D2d,GAA+DqmD,GAAA,CAAxB,IAAI,mBAAiB,KAAA,GAAA,EAAA,CAA1C,CAAAtG,GAAA7d,EAAA7/C,CAAA,EAAM,aAAa,CAAA,sBAGrB6/C,EAAAnE,CAAA,IAAK,YAAvBioB,GAAsCM,GAAA,CAAA,IAAA,CAAA,CAAA,aAEjBpkB,EAAAnE,CAAA,YAAoBmE,EAAAnE,CAAA,IAAK,YAA9CioB,GAA6DO,GAAA,CAAA,IAAA,CAAA,CAAA,gkgBC7B1D,MAAMC,WAAiBx5C,EAAa,CAazC,YAAc/zB,EAA2B,CACvC,MAAA,EAbeg0B,EAAA,gBACAA,EAAA,eACTA,EAAA,cAAyB,MACzBA,EAAA,mBAAkC,MAClCA,EAAA,qBAAsC,MACtCA,EAAA,eAA0B,MAC1BA,EAAA,iBAAY,CAClB,OAAQ,IAAK,CAAE,KAAM,MAAO,MAAO,QAAS,OAAQ,CAAE,EACtD,GAAI,IAAI,IAAK,CAAE,KAAM,MAAO,KAAM,MAAO,QAAS,OAAQ,CAAE,EAC5D,GAAI,IAAI,IAAK,CAAE,KAAM,MAAO,MAAO,KAAM,MAAO,SAAU,SAAU,QAAS,OAAQ,CAAE,CAAA,GAKvF,QAAQ,IAAK,gCAAqC,EAClD,KAAK,QAAUh0B,EACf,KAAK,OAAS,IAAI69B,GAAgB,CAChC,MAAO79B,EAAQ,MACf,OAAQA,EAAQ,MAAQ,GACxB,eAAgBA,EAAQ,cAAA,CACxB,CACJ,CAGA,MAAQ,CACN,GAAK,CAAC,KAAK,YAAc,CACvB,QAAQ,MAAO,0DAA2D,EAC1E,MACF,CACA,KAAK,YAAY,MAAM,WAAa,SACtC,CAGA,MAAQ,CACN,GAAK,CAAC,KAAK,YAAc,CACvB,QAAQ,MAAO,0DAA2D,EAC1E,MACF,CACA,KAAK,YAAY,MAAM,WAAa,QACtC,CAMA,UAAYq+C,EAAiB,CAC3B,GAAK,CAAC,KAAK,YAAc,CACvB,QAAQ,MAAO,0DAA2D,EAC1E,MACF,CACK,KAAK,UAAU,GAAG,IAAKA,EAAO,YAAA,CAAc,EAAIA,EAAS,KACpD,KAAK,UAAU,GAAG,IAAKA,EAAO,YAAA,CAAc,EAAIA,EAAS,KACzD,KAAK,UAAU,GAAG,IAAKA,EAAO,YAAA,CAAc,EAAIA,EAAS,MAEjE,QAAQ,MAAO,gCAAiCA,CAAO,yCAA0C,EACjGA,EAAS,MAEXD,GAAWC,CAAO,CACpB,CAMA,MAAM,OAAS,CAEb,GAAK,KAAK,OAAS,CACjB,QAAQ,MAAO,qEAAsE,EACrF,MACF,CAGAD,GAAW,KAAK,QAAQ,MAAO,EAG/B,MAAMtjB,EAAO,SAAS,cAAe,KAAM,EAC3CA,EAAK,GAAK,qBACVA,EAAK,MAAM,QAAU,gEACrBA,EAAK,MAAM,OAAS,OAAQ,KAAK,QAAQ,QAAU,MAAO,EAG1D,MAAM0yC,EAAa1yC,EAAK,aAAc,CAAE,KAAM,OAAS,EAGjD2yC,EAAc,SAAS,cAAe,OAAQ,EACpDA,EAAY,YAAcC,GAC1BF,EAAW,YAAaC,CAAY,EACpC,MAAME,EAAsB,SAAS,cAAe,OAAQ,EAC5DA,EAAoB,YAAcC,GAClCJ,EAAW,YAAaG,CAAoB,EAC5C,MAAME,EAAmB,SAAS,cAAe,OAAQ,EACzDA,EAAiB,YAAcC,GAC/BN,EAAW,YAAaK,CAAiB,EACzC,MAAME,EAAsB,SAAS,cAAe,OAAQ,EAC5DA,EAAoB,YAAcC,GAClCR,EAAW,YAAaO,CAAoB,EAC5C,MAAME,EAAqB,SAAS,cAAe,OAAQ,EAC3DA,EAAmB,YAAcC,GACjCV,EAAW,YAAaS,CAAmB,EAC3C,MAAME,EAAwB,SAAS,cAAe,OAAQ,EAC9DA,EAAsB,YAAcC,GACpCZ,EAAW,YAAaW,CAAsB,EAG9C,MAAME,EAAa,SAAS,cAAe,KAAM,EACjDA,EAAW,GAAK,oBAChBA,EAAW,MAAM,QAAU,8CAC3Bb,EAAW,YAAaa,CAAW,EAGnC,KAAK,OAAS36C,GAAW46C,GAAK,CAE5B,OAAQ,KAAK,MAAA,CACb,EAGF,MAAM1pB,EAAgB,IAAI9G,GAAe,CAAE,MAAO,KAAK,QAAQ,MAAO,OAAQ,KAAK,QAAQ,IAAA,CAAO,EAClG,QAAQ,IAAK,+BAAgC8G,CAAc,EAC3DA,EAAc,OAAO,GAAI,YAAa1wB,GAAW,QAAQ,IAAK,sBAAuBA,CAAQ,CAAE,EAC/F0wB,EAAc,OAAO,GAAI,cAAe1wB,GAAW,QAAQ,IAAK,wBAAyBA,CAAQ,CAAE,EACnG0wB,EAAc,OAAO,GAAI,QAASnvD,GAAO,QAAQ,MAAO,kBAAmBA,CAAI,CAAE,EACjF,GAAI,CACF,MAAMmvD,EAAc,KAAA,CACtB,MAAQ,CAER,CACA,KAAK,cAAgBA,EAGrB,MAAM2pB,EAAU5pB,GAAeC,EAAe,KAAK,QAAQ,KAAM,EAcjE,GAbA,KAAK,OAAO,QAASJ,GAAY+pB,CAAQ,EACzC,KAAK,QAAUA,EAEf,KAAK,OAAO,MAAOF,CAAW,EAG9B,KAAK,YAAcvzC,EACnB,SAAS,KAAK,YAAaA,CAAK,EAM3B,CAAC,SAAS,KAAK,cAAe,qBAAsB,EAAI,CAC3D,MAAM0zC,EAAa,SAAS,cAAe,MAAO,EAClDA,EAAW,IAAM,aACjBA,EAAW,KAAO,+BAClBA,EAAW,YAAc,YACzB,SAAS,KAAK,YAAaA,CAAW,EAEtC,MAAMC,EAAkB,SAAS,cAAe,MAAO,EACvDA,EAAgB,IAAM,aACtBA,EAAgB,KAAO,4BACvBA,EAAgB,YAAc,YAC9B,SAAS,KAAK,YAAaA,CAAgB,EAE3C,MAAMC,EAAW,SAAS,cAAe,MAAO,EAChDA,EAAS,GAAK,qBACdA,EAAS,IAAM,aACfA,EAAS,KAAO,kGAChBA,EAAS,YAAc,YACvB,SAAS,KAAK,YAAaA,CAAS,CACtC,CAEA,KAAK,KAAM,QAAS,EAAG,CACzB,CAGA,SAAW,aAEJ,KAAK,SACR,KAAK,OAAO,QAAA,EACZ,KAAK,OAAS,OAEhBl7E,EAAA,KAAK,cAAL,MAAAA,EAAkB,SAClB,KAAK,YAAc,MAEnB2O,EAAA,SAAS,eAAgB,oBAAqB,IAA9C,MAAAA,EAAiD,SACjD,KAAK,mBAAA,GAELuhD,EAAA,KAAK,gBAAL,MAAAA,EAAoB,aACpB,KAAK,cAAgB,MAErBC,EAAA,KAAK,UAAL,MAAAA,EAAc,UACd,KAAK,QAAU,IACjB,CACF","x_google_ignoreList":[0,1,2,3,7,8,9,10,22,36,41]}
|