diff --git a/404.html b/404.html new file mode 100644 index 0000000..531051e --- /dev/null +++ b/404.html @@ -0,0 +1,43 @@ + + + + + + + + + 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +

404

Looks like we've got some broken links.
Take me home
+ + + diff --git a/assets/404.html-D5oRPDK3.js b/assets/404.html-D5oRPDK3.js new file mode 100644 index 0000000..b10587d --- /dev/null +++ b/assets/404.html-D5oRPDK3.js @@ -0,0 +1 @@ +import{_ as e,c as o,a,o as l}from"./app-drHkZhxR.js";const n={};function r(s,t){return l(),o("div",null,t[0]||(t[0]=[a("p",null,"404 Not Found",-1)]))}const _=e(n,[["render",r],["__file","404.html.vue"]]),i=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null}');export{_ as comp,i as data}; diff --git a/assets/account.html-CDjmPYLs.js b/assets/account.html-CDjmPYLs.js new file mode 100644 index 0000000..40351c7 --- /dev/null +++ b/assets/account.html-CDjmPYLs.js @@ -0,0 +1,36 @@ +import{_ as e,c as p,e as a,a as c,b as s,d as l,f as o,r as i,o as u}from"./app-drHkZhxR.js";const r={};function k(d,n){const t=i("RouteLink");return u(),p("div",null,[n[3]||(n[3]=a(`

账号管理

导入单个账号

本接口用于将 App 自有账号导入即时通信 IM 账号系统,为该账号创建一个对应的内部 ID,使该账号能够使用即时通信 IM 服务。

说明

同一个账号重复导入仅会创建 1 个内部 ID。

使用示例:

AccountImportRequest request = AccountImportRequest.builder()
+        .userId("admin")
+        .faceUrl("https://avatars.githubusercontent.com/u/43716716?s=200&v=4")
+        .nick("doocs")
+        .build();
+
+AccountImportResult result = client.account.accountImport(request);
+

导入多个账号

本接口用于批量将 App 自有账号导入即时通信 IM 账号系统,为该账号创建一个对应的内部 ID,使该账号能够使用即时通信 IM 服务。

`,8)),c("p",null,[n[1]||(n[1]=s("注意: 本接口单次最多支持导入 100 个账号,且不支持导入账号的昵称和头像信息。请使用 ")),l(t,{to:"/guide/profile.html#%E8%AE%BE%E7%BD%AE%E8%B5%84%E6%96%99"},{default:o(()=>n[0]||(n[0]=[s("资料管理-设置资料")])),_:1}),n[2]||(n[2]=s(" 设置其他信息。"))]),n[4]||(n[4]=a(`

使用示例:

List<String> accounts = new ArrayList<>();
+accounts.add("user1");
+accounts.add("user2");
+MultiAccountImportRequest request = new MultiAccountImportRequest(accounts);
+
+MultiAccountImportResult result = client.account.multiAccountImport(request);
+

删除账号

使用示例:

AccountDeleteItem item1 = AccountDeleteItem.builder().userId("user1").build();
+AccountDeleteItem item2 = AccountDeleteItem.builder().userId("user2").build();
+List<AccountDeleteItem> deleteItems = Arrays.asList(item1, item2);
+AccountDeleteRequest request = new AccountDeleteRequest(deleteItems);
+
+AccountDeleteResult result = client.account.accountDelete(request);
+

查询账号

用于查询自有账号是否已导入即时通信 IM, 支持批量查询。

使用示例:

AccountCheckItem item1 = new AccountCheckItem("user1");
+AccountCheckItem item2 = new AccountCheckItem("user2");
+List<AccountCheckItem> checkItems = Arrays.asList(item1, item2);
+AccountCheckRequest request = new AccountCheckRequest(checkItems);
+
+AccountCheckResult result = client.account.accountCheck(request);
+

失效账号登录状态

本接口适用于将 App 用户账号的登录状态(例如 UserSig)失效。

例如,开发者判断一个用户为恶意账号后,可以调用本接口将该用户当前的登录状态失效,这样用户使用历史 UserSig 登录即时通信 IM 会失败。

注意

支持一次失效一个账号,用户可以使用重新生成的 UserSig 登录即时通信 IM

使用示例:

KickRequest request = new KickRequest("user2");
+
+KickResult result = client.account.kick(request);
+

查询账号在线状态

获取用户当前的登录状态。

使用示例:

List<String> toAccount = Arrays.asList("user1", "user2");
+QueryOnlineStatusRequest request = QueryOnlineStatusRequest.builder()
+        .toAccount(toAccount)
+        .isNeedDetail(IsNeedDetail.YES)
+        .build();
+
+QueryOnlineStatusResult result = client.account.queryOnlineStatus(request);
+
`,20))])}const v=e(r,[["render",k],["__file","account.html.vue"]]),h=JSON.parse('{"path":"/guide/account.html","title":"账号管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"导入单个账号","slug":"导入单个账号","link":"#导入单个账号","children":[]},{"level":2,"title":"导入多个账号","slug":"导入多个账号","link":"#导入多个账号","children":[]},{"level":2,"title":"删除账号","slug":"删除账号","link":"#删除账号","children":[]},{"level":2,"title":"查询账号","slug":"查询账号","link":"#查询账号","children":[]},{"level":2,"title":"失效账号登录状态","slug":"失效账号登录状态","link":"#失效账号登录状态","children":[]},{"level":2,"title":"查询账号在线状态","slug":"查询账号在线状态","link":"#查询账号在线状态","children":[]}],"git":{"updatedTime":1696847753000,"contributors":[{"name":"acbin","email":"44314231+acbin@users.noreply.github.com","commits":1,"url":"https://github.com/acbin"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":4,"url":"https://github.com/Yang Libin"},{"name":"怡蘅","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/怡蘅"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"}]},"filePathRelative":"guide/account.md"}');export{v as comp,h as data}; diff --git a/assets/app-drHkZhxR.js b/assets/app-drHkZhxR.js new file mode 100644 index 0000000..1c29782 --- /dev/null +++ b/assets/app-drHkZhxR.js @@ -0,0 +1,42 @@ +const Jf="modulepreload",Qf=function(e){return"/qcloud-im-server-sdk-java/"+e},Bi={},je=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=(i==null?void 0:i.nonce)||(i==null?void 0:i.getAttribute("nonce"));o=Promise.allSettled(n.map(a=>{if(a=Qf(a),a in Bi)return;Bi[a]=!0;const u=a.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${f}`))return;const c=document.createElement("link");if(c.rel=u?"stylesheet":Jf,u||(c.as="script"),c.crossOrigin="",c.href=a,l&&c.setAttribute("nonce",l),document.head.appendChild(c),u)return new Promise((d,h)=>{c.addEventListener("load",d),c.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${a}`)))})}))}function s(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return o.then(i=>{for(const l of i||[])l.status==="rejected"&&s(l.reason);return t().catch(s)})};/** +* @vue/shared v3.5.12 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function Yn(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Se={},Ln=[],xt=()=>{},ed=()=>!1,Fr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),qs=e=>e.startsWith("onUpdate:"),Ne=Object.assign,Gs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},td=Object.prototype.hasOwnProperty,me=(e,t)=>td.call(e,t),re=Array.isArray,Rn=e=>Co(e)==="[object Map]",su=e=>Co(e)==="[object Set]",oe=e=>typeof e=="function",Te=e=>typeof e=="string",Bt=e=>typeof e=="symbol",we=e=>e!==null&&typeof e=="object",iu=e=>(we(e)||oe(e))&&oe(e.then)&&oe(e.catch),lu=Object.prototype.toString,Co=e=>lu.call(e),nd=e=>Co(e).slice(8,-1),au=e=>Co(e)==="[object Object]",Ys=e=>Te(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Dn=Yn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),wo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},rd=/-(\w)/g,ot=wo(e=>e.replace(rd,(t,n)=>n?n.toUpperCase():"")),od=/\B([A-Z])/g,$t=wo(e=>e.replace(od,"-$1").toLowerCase()),Hr=wo(e=>e.charAt(0).toUpperCase()+e.slice(1)),qo=wo(e=>e?`on${Hr(e)}`:""),tn=(e,t)=>!Object.is(e,t),Go=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},sd=e=>{const t=parseFloat(e);return isNaN(t)?e:t},id=e=>{const t=Te(e)?Number(e):NaN;return isNaN(t)?e:t};let $i;const To=()=>$i||($i=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Xn(e){if(re(e)){const t={};for(let n=0;n{if(n){const r=n.split(ad);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function fd(e){let t="";if(!e||Te(e))return t;for(const n in e){const r=e[n];if(Te(r)||typeof r=="number"){const o=n.startsWith("--")?n:$t(n);t+=`${o}:${r};`}}return t}function rt(e){let t="";if(Te(e))t=e;else if(re(e))for(let n=0;n?@[\\\]^`{|}~]/g;function vd(e,t){return e.replace(md,n=>`\\${n}`)}const cu=e=>!!(e&&e.__v_isRef===!0),Ie=e=>Te(e)?e:e==null?"":re(e)||we(e)&&(e.toString===lu||!oe(e.toString))?cu(e)?Ie(e.value):JSON.stringify(e,fu,2):String(e),fu=(e,t)=>cu(t)?fu(e,t.value):Rn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,o],s)=>(n[Yo(r,s)+" =>"]=o,n),{})}:su(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Yo(n))}:Bt(t)?Yo(t):we(t)&&!re(t)&&!au(t)?String(t):t,Yo=(e,t="")=>{var n;return Bt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.12 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ze;class _d{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ze,!t&&Ze&&(this.index=(Ze.scopes||(Ze.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;if(vr){let t=vr;for(vr=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;mr;){let t=mr;for(mr=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function mu(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function vu(e){let t,n=e.depsTail,r=n;for(;r;){const o=r.prevDep;r.version===-1?(r===n&&(n=o),Qs(r),bd(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=o}e.deps=t,e.depsTail=n}function _s(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(_u(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function _u(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Ar))return;e.globalVersion=Ar;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!_s(e)){e.flags&=-3;return}const n=Ae,r=bt;Ae=e,bt=!0;try{mu(e);const o=e.fn(e._value);(t.version===0||tn(o,e._value))&&(e._value=o,t.version++)}catch(o){throw t.version++,o}finally{Ae=n,bt=r,vu(e),e.flags&=-3}}function Qs(e,t=!1){const{dep:n,prevSub:r,nextSub:o}=e;if(r&&(r.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)Qs(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function bd(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let bt=!0;const yu=[];function Ut(){yu.push(bt),bt=!1}function jt(){const e=yu.pop();bt=e===void 0?!0:e}function ji(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ae;Ae=void 0;try{t()}finally{Ae=n}}}let Ar=0;class Ed{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Oo{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!Ae||!bt||Ae===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ae)n=this.activeLink=new Ed(Ae,this),Ae.deps?(n.prevDep=Ae.depsTail,Ae.depsTail.nextDep=n,Ae.depsTail=n):Ae.deps=Ae.depsTail=n,bu(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Ae.depsTail,n.nextDep=void 0,Ae.depsTail.nextDep=n,Ae.depsTail=n,Ae.deps===n&&(Ae.deps=r)}return n}trigger(t){this.version++,Ar++,this.notify(t)}notify(t){Zs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Js()}}}function bu(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)bu(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ho=new WeakMap,Sn=Symbol(""),ys=Symbol(""),Cr=Symbol("");function We(e,t,n){if(bt&&Ae){let r=ho.get(e);r||ho.set(e,r=new Map);let o=r.get(n);o||(r.set(n,o=new Oo),o.map=r,o.key=n),o.track()}}function Ft(e,t,n,r,o,s){const i=ho.get(e);if(!i){Ar++;return}const l=a=>{a&&a.trigger()};if(Zs(),t==="clear")i.forEach(l);else{const a=re(e),u=a&&Ys(n);if(a&&n==="length"){const f=Number(r);i.forEach((c,d)=>{(d==="length"||d===Cr||!Bt(d)&&d>=f)&&l(c)})}else switch((n!==void 0||i.has(void 0))&&l(i.get(n)),u&&l(i.get(Cr)),t){case"add":a?u&&l(i.get("length")):(l(i.get(Sn)),Rn(e)&&l(i.get(ys)));break;case"delete":a||(l(i.get(Sn)),Rn(e)&&l(i.get(ys)));break;case"set":Rn(e)&&l(i.get(Sn));break}}Js()}function Sd(e,t){const n=ho.get(e);return n&&n.get(t)}function Tn(e){const t=fe(e);return t===e?t:(We(t,"iterate",Cr),mt(e)?t:t.map(qe))}function xo(e){return We(e=fe(e),"iterate",Cr),e}const kd={__proto__:null,[Symbol.iterator](){return Zo(this,Symbol.iterator,qe)},concat(...e){return Tn(this).concat(...e.map(t=>re(t)?Tn(t):t))},entries(){return Zo(this,"entries",e=>(e[1]=qe(e[1]),e))},every(e,t){return Lt(this,"every",e,t,void 0,arguments)},filter(e,t){return Lt(this,"filter",e,t,n=>n.map(qe),arguments)},find(e,t){return Lt(this,"find",e,t,qe,arguments)},findIndex(e,t){return Lt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Lt(this,"findLast",e,t,qe,arguments)},findLastIndex(e,t){return Lt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Lt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Jo(this,"includes",e)},indexOf(...e){return Jo(this,"indexOf",e)},join(e){return Tn(this).join(e)},lastIndexOf(...e){return Jo(this,"lastIndexOf",e)},map(e,t){return Lt(this,"map",e,t,void 0,arguments)},pop(){return sr(this,"pop")},push(...e){return sr(this,"push",e)},reduce(e,...t){return zi(this,"reduce",e,t)},reduceRight(e,...t){return zi(this,"reduceRight",e,t)},shift(){return sr(this,"shift")},some(e,t){return Lt(this,"some",e,t,void 0,arguments)},splice(...e){return sr(this,"splice",e)},toReversed(){return Tn(this).toReversed()},toSorted(e){return Tn(this).toSorted(e)},toSpliced(...e){return Tn(this).toSpliced(...e)},unshift(...e){return sr(this,"unshift",e)},values(){return Zo(this,"values",qe)}};function Zo(e,t,n){const r=xo(e),o=r[t]();return r!==e&&!mt(e)&&(o._next=o.next,o.next=()=>{const s=o._next();return s.value&&(s.value=n(s.value)),s}),o}const Ad=Array.prototype;function Lt(e,t,n,r,o,s){const i=xo(e),l=i!==e&&!mt(e),a=i[t];if(a!==Ad[t]){const c=a.apply(e,s);return l?qe(c):c}let u=n;i!==e&&(l?u=function(c,d){return n.call(this,qe(c),d,e)}:n.length>2&&(u=function(c,d){return n.call(this,c,d,e)}));const f=a.call(i,u,r);return l&&o?o(f):f}function zi(e,t,n,r){const o=xo(e);let s=n;return o!==e&&(mt(e)?n.length>3&&(s=function(i,l,a){return n.call(this,i,l,a,e)}):s=function(i,l,a){return n.call(this,i,qe(l),a,e)}),o[t](s,...r)}function Jo(e,t,n){const r=fe(e);We(r,"iterate",Cr);const o=r[t](...n);return(o===-1||o===!1)&&ni(n[0])?(n[0]=fe(n[0]),r[t](...n)):o}function sr(e,t,n=[]){Ut(),Zs();const r=fe(e)[t].apply(e,n);return Js(),jt(),r}const Cd=Yn("__proto__,__v_isRef,__isVue"),Eu=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Bt));function wd(e){Bt(e)||(e=String(e));const t=fe(this);return We(t,"has",e),t.hasOwnProperty(e)}class Su{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const o=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(o?s?Vd:wu:s?Cu:Au).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=re(t);if(!o){let a;if(i&&(a=kd[n]))return a;if(n==="hasOwnProperty")return wd}const l=Reflect.get(t,n,De(t)?t:r);return(Bt(n)?Eu.has(n):Cd(n))||(o||We(t,"get",n),s)?l:De(l)?i&&Ys(n)?l:l.value:we(l)?o?Po(l):Br(l):l}}class ku extends Su{constructor(t=!1){super(!1,t)}set(t,n,r,o){let s=t[n];if(!this._isShallow){const a=Cn(s);if(!mt(r)&&!Cn(r)&&(s=fe(s),r=fe(r)),!re(t)&&De(s)&&!De(r))return a?!1:(s.value=r,!0)}const i=re(t)&&Ys(n)?Number(n)e,qr=e=>Reflect.getPrototypeOf(e);function Id(e,t,n){return function(...r){const o=this.__v_raw,s=fe(o),i=Rn(s),l=e==="entries"||e===Symbol.iterator&&i,a=e==="keys"&&i,u=o[e](...r),f=n?bs:t?Es:qe;return!t&&We(s,"iterate",a?ys:Sn),{next(){const{value:c,done:d}=u.next();return d?{value:c,done:d}:{value:l?[f(c[0]),f(c[1])]:f(c),done:d}},[Symbol.iterator](){return this}}}}function Gr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ld(e,t){const n={get(o){const s=this.__v_raw,i=fe(s),l=fe(o);e||(tn(o,l)&&We(i,"get",o),We(i,"get",l));const{has:a}=qr(i),u=t?bs:e?Es:qe;if(a.call(i,o))return u(s.get(o));if(a.call(i,l))return u(s.get(l));s!==i&&s.get(o)},get size(){const o=this.__v_raw;return!e&&We(fe(o),"iterate",Sn),Reflect.get(o,"size",o)},has(o){const s=this.__v_raw,i=fe(s),l=fe(o);return e||(tn(o,l)&&We(i,"has",o),We(i,"has",l)),o===l?s.has(o):s.has(o)||s.has(l)},forEach(o,s){const i=this,l=i.__v_raw,a=fe(l),u=t?bs:e?Es:qe;return!e&&We(a,"iterate",Sn),l.forEach((f,c)=>o.call(s,u(f),u(c),i))}};return Ne(n,e?{add:Gr("add"),set:Gr("set"),delete:Gr("delete"),clear:Gr("clear")}:{add(o){!t&&!mt(o)&&!Cn(o)&&(o=fe(o));const s=fe(this);return qr(s).has.call(s,o)||(s.add(o),Ft(s,"add",o,o)),this},set(o,s){!t&&!mt(s)&&!Cn(s)&&(s=fe(s));const i=fe(this),{has:l,get:a}=qr(i);let u=l.call(i,o);u||(o=fe(o),u=l.call(i,o));const f=a.call(i,o);return i.set(o,s),u?tn(s,f)&&Ft(i,"set",o,s):Ft(i,"add",o,s),this},delete(o){const s=fe(this),{has:i,get:l}=qr(s);let a=i.call(s,o);a||(o=fe(o),a=i.call(s,o)),l&&l.call(s,o);const u=s.delete(o);return a&&Ft(s,"delete",o,void 0),u},clear(){const o=fe(this),s=o.size!==0,i=o.clear();return s&&Ft(o,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(o=>{n[o]=Id(o,e,t)}),n}function ei(e,t){const n=Ld(e,t);return(r,o,s)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(me(n,o)&&o in r?n:r,o,s)}const Rd={get:ei(!1,!1)},Dd={get:ei(!1,!0)},Nd={get:ei(!0,!1)};const Au=new WeakMap,Cu=new WeakMap,wu=new WeakMap,Vd=new WeakMap;function Md(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fd(e){return e.__v_skip||!Object.isExtensible(e)?0:Md(nd(e))}function Br(e){return Cn(e)?e:ti(e,!1,Od,Rd,Au)}function Tu(e){return ti(e,!1,Pd,Dd,Cu)}function Po(e){return ti(e,!0,xd,Nd,wu)}function ti(e,t,n,r,o){if(!we(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=o.get(e);if(s)return s;const i=Fd(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return o.set(e,l),l}function Nn(e){return Cn(e)?Nn(e.__v_raw):!!(e&&e.__v_isReactive)}function Cn(e){return!!(e&&e.__v_isReadonly)}function mt(e){return!!(e&&e.__v_isShallow)}function ni(e){return e?!!e.__v_raw:!1}function fe(e){const t=e&&e.__v_raw;return t?fe(t):e}function Hd(e){return!me(e,"__v_skip")&&Object.isExtensible(e)&&$n(e,"__v_skip",!0),e}const qe=e=>we(e)?Br(e):e,Es=e=>we(e)?Po(e):e;function De(e){return e?e.__v_isRef===!0:!1}function ce(e){return Ou(e,!1)}function Pt(e){return Ou(e,!0)}function Ou(e,t){return De(e)?e:new Bd(e,t)}class Bd{constructor(t,n){this.dep=new Oo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:fe(t),this._value=n?t:qe(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||mt(t)||Cn(t);t=r?t:fe(t),tn(t,n)&&(this._rawValue=t,this._value=r?t:qe(t),this.dep.trigger())}}function en(e){return De(e)?e.value:e}const $d={get:(e,t,n)=>t==="__v_raw"?e:en(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return De(o)&&!De(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function xu(e){return Nn(e)?e:new Proxy(e,$d)}class Ud{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Oo,{get:r,set:o}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=o}get value(){return this._value=this._get()}set value(t){this._set(t)}}function jd(e){return new Ud(e)}function ri(e){const t=re(e)?new Array(e.length):{};for(const n in e)t[n]=Pu(e,n);return t}class zd{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Sd(fe(this._object),this._key)}}class Kd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Wd(e,t,n){return De(e)?e:oe(e)?new Kd(e):we(e)&&arguments.length>1?Pu(e,t,n):ce(e)}function Pu(e,t,n){const r=e[t];return De(r)?r:new zd(e,t,n)}class qd{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Oo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Ar-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Ae!==this)return gu(this,!0),!0}get value(){const t=this.dep.track();return _u(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Gd(e,t,n=!1){let r,o;return oe(e)?r=e:(r=e.get,o=e.set),new qd(r,o,n)}const Yr={},po=new WeakMap;let mn;function Yd(e,t=!1,n=mn){if(n){let r=po.get(n);r||po.set(n,r=[]),r.push(e)}}function Xd(e,t,n=Se){const{immediate:r,deep:o,once:s,scheduler:i,augmentJob:l,call:a}=n,u=b=>o?b:mt(b)||o===!1||o===0?Ht(b,1):Ht(b);let f,c,d,h,v=!1,_=!1;if(De(e)?(c=()=>e.value,v=mt(e)):Nn(e)?(c=()=>u(e),v=!0):re(e)?(_=!0,v=e.some(b=>Nn(b)||mt(b)),c=()=>e.map(b=>{if(De(b))return b.value;if(Nn(b))return u(b);if(oe(b))return a?a(b,2):b()})):oe(e)?t?c=a?()=>a(e,2):e:c=()=>{if(d){Ut();try{d()}finally{jt()}}const b=mn;mn=f;try{return a?a(e,3,[h]):e(h)}finally{mn=b}}:c=xt,t&&o){const b=c,R=o===!0?1/0:o;c=()=>Ht(b(),R)}const y=du(),E=()=>{f.stop(),y&&Gs(y.effects,f)};if(s&&t){const b=t;t=(...R)=>{b(...R),E()}}let k=_?new Array(e.length).fill(Yr):Yr;const p=b=>{if(!(!(f.flags&1)||!f.dirty&&!b))if(t){const R=f.run();if(o||v||(_?R.some((j,M)=>tn(j,k[M])):tn(R,k))){d&&d();const j=mn;mn=f;try{const M=[R,k===Yr?void 0:_&&k[0]===Yr?[]:k,h];a?a(t,3,M):t(...M),k=R}finally{mn=j}}}else f.run()};return l&&l(p),f=new hu(c),f.scheduler=i?()=>i(p,!1):p,h=b=>Yd(b,!1,f),d=f.onStop=()=>{const b=po.get(f);if(b){if(a)a(b,4);else for(const R of b)R();po.delete(f)}},t?r?p(!0):k=f.run():i?i(p.bind(null,!0),!0):f.run(),E.pause=f.pause.bind(f),E.resume=f.resume.bind(f),E.stop=E,E}function Ht(e,t=1/0,n){if(t<=0||!we(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,De(e))Ht(e.value,t,n);else if(re(e))for(let r=0;r{Ht(r,t,n)});else if(au(e)){for(const r in e)Ht(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Ht(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.12 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const _r=[];let Qo=!1;function Yt(e,...t){if(Qo)return;Qo=!0,Ut();const n=_r.length?_r[_r.length-1].component:null,r=n&&n.appContext.config.warnHandler,o=Zd();if(r)Zn(r,n,11,[e+t.map(s=>{var i,l;return(l=(i=s.toString)==null?void 0:i.call(s))!=null?l:JSON.stringify(s)}).join(""),n&&n.proxy,o.map(({vnode:s})=>`at <${_c(n,s.type)}>`).join(` +`),o]);else{const s=[`[Vue warn]: ${e}`,...t];o.length&&s.push(` +`,...Jd(o)),console.warn(...s)}jt(),Qo=!1}function Zd(){let e=_r[_r.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const r=e.component&&e.component.parent;e=r&&r.vnode}return t}function Jd(e){const t=[];return e.forEach((n,r)=>{t.push(...r===0?[]:[` +`],...Qd(n))}),t}function Qd({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",r=e.component?e.component.parent==null:!1,o=` at <${_c(e.component,e.type,r)}`,s=">"+n;return e.props?[o,...eh(e.props),s]:[o+s]}function eh(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(r=>{t.push(...Iu(r,e[r]))}),n.length>3&&t.push(" ..."),t}function Iu(e,t,n){return Te(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:De(t)?(t=Iu(e,fe(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=fe(t),n?t:[`${e}=`,t])}function Zn(e,t,n,r){try{return r?e(...r):e()}catch(o){$r(o,t,n)}}function Et(e,t,n,r){if(oe(e)){const o=Zn(e,t,n,r);return o&&iu(o)&&o.catch(s=>{$r(s,t,n)}),o}if(re(e)){const o=[];for(let s=0;s>>1,o=Je[r],s=wr(o);s=wr(n)?Je.push(e):Je.splice(nh(t),0,e),e.flags|=1,Ru()}}function Ru(){go||(go=Lu.then(Du))}function rh(e){re(e)?Vn.push(...e):Xt&&e.id===-1?Xt.splice(Pn+1,0,e):e.flags&1||(Vn.push(e),e.flags|=1),Ru()}function Ki(e,t,n=wt+1){for(;nwr(n)-wr(r));if(Vn.length=0,Xt){Xt.push(...t);return}for(Xt=t,Pn=0;Pne.id==null?e.flags&2?-1:1/0:e.id;function Du(e){try{for(wt=0;wtOt.emit(o,...s)),fr=[]):typeof window<"u"&&window.HTMLElement&&!((r=(n=window.navigator)==null?void 0:n.userAgent)!=null&&r.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(s=>{Nu(s,t)}),setTimeout(()=>{Ot||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,Ss=!0,fr=[])},3e3)):(Ss=!0,fr=[])}function oh(e,t){Io("app:init",e,t,{Fragment:_e,Text:nn,Comment:ze,Static:Fn})}function sh(e){Io("app:unmount",e)}const ih=si("component:added"),Vu=si("component:updated"),lh=si("component:removed"),ah=e=>{Ot&&typeof Ot.cleanupBuffer=="function"&&!Ot.cleanupBuffer(e)&&lh(e)};/*! #__NO_SIDE_EFFECTS__ */function si(e){return t=>{Io(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}function uh(e,t,n){Io("component:emit",e.appContext.app,e,t,n)}let $e=null,Mu=null;function vo(e){const t=$e;return $e=e,Mu=e&&e.type.__scopeId||null,t}function Ve(e,t=$e,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&sl(-1);const s=vo(t);let i;try{i=e(...o)}finally{vo(s),r._d&&sl(1)}return Vu(t),i};return r._n=!0,r._c=!0,r._d=!0,r}function _o(e,t){if($e===null)return e;const n=Vo($e),r=e.dirs||(e.dirs=[]);for(let o=0;oe.__isTeleport,Zt=Symbol("_leaveCb"),Xr=Symbol("_enterCb");function fh(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Ye(()=>{e.isMounted=!0}),Ro(()=>{e.isUnmounting=!0}),e}const ht=[Function,Array],Hu={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ht,onEnter:ht,onAfterEnter:ht,onEnterCancelled:ht,onBeforeLeave:ht,onLeave:ht,onAfterLeave:ht,onLeaveCancelled:ht,onBeforeAppear:ht,onAppear:ht,onAfterAppear:ht,onAppearCancelled:ht},Bu=e=>{const t=e.subTree;return t.component?Bu(t.component):t},dh={name:"BaseTransition",props:Hu,setup(e,{slots:t}){const n=jr(),r=fh();return()=>{const o=t.default&&ju(t.default(),!0);if(!o||!o.length)return;const s=$u(o),i=fe(e),{mode:l}=i;if(r.isLeaving)return es(s);const a=Wi(s);if(!a)return es(s);let u=ks(a,i,r,n,d=>u=d);a.type!==ze&&Tr(a,u);const f=n.subTree,c=f&&Wi(f);if(c&&c.type!==ze&&!yn(a,c)&&Bu(n).type!==ze){const d=ks(c,i,r,n);if(Tr(c,d),l==="out-in"&&a.type!==ze)return r.isLeaving=!0,d.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave},es(s);l==="in-out"&&a.type!==ze&&(d.delayLeave=(h,v,_)=>{const y=Uu(r,c);y[String(c.key)]=c,h[Zt]=()=>{v(),h[Zt]=void 0,delete u.delayedLeave},u.delayedLeave=_})}return s}}};function $u(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ze){t=n;break}}return t}const hh=dh;function Uu(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ks(e,t,n,r,o){const{appear:s,mode:i,persisted:l=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:f,onEnterCancelled:c,onBeforeLeave:d,onLeave:h,onAfterLeave:v,onLeaveCancelled:_,onBeforeAppear:y,onAppear:E,onAfterAppear:k,onAppearCancelled:p}=t,b=String(e.key),R=Uu(n,e),j=(U,T)=>{U&&Et(U,r,9,T)},M=(U,T)=>{const B=T[1];j(U,T),re(U)?U.every(C=>C.length<=1)&&B():U.length<=1&&B()},A={mode:i,persisted:l,beforeEnter(U){let T=a;if(!n.isMounted)if(s)T=y||a;else return;U[Zt]&&U[Zt](!0);const B=R[b];B&&yn(e,B)&&B.el[Zt]&&B.el[Zt](),j(T,[U])},enter(U){let T=u,B=f,C=c;if(!n.isMounted)if(s)T=E||u,B=k||f,C=p||c;else return;let D=!1;const Z=U[Xr]=ee=>{D||(D=!0,ee?j(C,[U]):j(B,[U]),A.delayedLeave&&A.delayedLeave(),U[Xr]=void 0)};T?M(T,[U,Z]):Z()},leave(U,T){const B=String(e.key);if(U[Xr]&&U[Xr](!0),n.isUnmounting)return T();j(d,[U]);let C=!1;const D=U[Zt]=Z=>{C||(C=!0,T(),Z?j(_,[U]):j(v,[U]),U[Zt]=void 0,R[B]===e&&delete R[B])};R[B]=e,h?M(h,[U,D]):D()},clone(U){const T=ks(U,t,n,r,o);return o&&o(T),T}};return A}function es(e){if(Ur(e))return e=on(e),e.children=null,e}function Wi(e){if(!Ur(e))return Fu(e.type)&&e.children?$u(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&oe(n.default))return n.default()}}function Tr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Tr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ju(e,t=!1,n){let r=[],o=0;for(let s=0;s1)for(let s=0;syo(v,t&&(re(t)?t[_]:t),n,r,o));return}if(kn(r)&&!o)return;const s=r.shapeFlag&4?Vo(r.component):r.el,i=o?null:s,{i:l,r:a}=e,u=t&&t.r,f=l.refs===Se?l.refs={}:l.refs,c=l.setupState,d=fe(c),h=c===Se?()=>!1:v=>me(d,v);if(u!=null&&u!==a&&(Te(u)?(f[u]=null,h(u)&&(c[u]=null)):De(u)&&(u.value=null)),oe(a))Zn(a,l,12,[i,f]);else{const v=Te(a),_=De(a);if(v||_){const y=()=>{if(e.f){const E=v?h(a)?c[a]:f[a]:a.value;o?re(E)&&Gs(E,s):re(E)?E.includes(s)||E.push(s):v?(f[a]=[s],h(a)&&(c[a]=f[a])):(a.value=[s],e.k&&(f[e.k]=a.value))}else v?(f[a]=i,h(a)&&(c[a]=i)):_&&(a.value=i,e.k&&(f[e.k]=i))};i?(y.id=-1,at(y,n)):y()}}}let qi=!1;const fn=()=>{qi||(console.error("Hydration completed but contains mismatches."),qi=!0)},ph=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",gh=e=>e.namespaceURI.includes("MathML"),Zr=e=>{if(e.nodeType===1){if(ph(e))return"svg";if(gh(e))return"mathml"}},_n=e=>e.nodeType===8;function mh(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:s,parentNode:i,remove:l,insert:a,createComment:u}}=e,f=(p,b)=>{if(!b.hasChildNodes()){Yt("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,p,b),mo(),b._vnode=p;return}c(b.firstChild,p,null,null,null),mo(),b._vnode=p},c=(p,b,R,j,M,A=!1)=>{A=A||!!b.dynamicChildren;const U=_n(p)&&p.data==="[",T=()=>_(p,b,R,j,M,U),{type:B,ref:C,shapeFlag:D,patchFlag:Z}=b;let ee=p.nodeType;b.el=p,$n(p,"__vnode",b,!0),$n(p,"__vueParentComponent",R,!0),Z===-2&&(A=!1,b.dynamicChildren=null);let I=null;switch(B){case nn:ee!==3?b.children===""?(a(b.el=o(""),i(p),p),I=p):I=T():(p.data!==b.children&&(Yt("Hydration text mismatch in",p.parentNode,` + - rendered on server: ${JSON.stringify(p.data)} + - expected on client: ${JSON.stringify(b.children)}`),fn(),p.data=b.children),I=s(p));break;case ze:k(p)?(I=s(p),E(b.el=p.content.firstChild,p,R)):ee!==8||U?I=T():I=s(p);break;case Fn:if(U&&(p=s(p),ee=p.nodeType),ee===1||ee===3){I=p;const N=!b.children.length;for(let K=0;K{A=A||!!b.dynamicChildren;const{type:U,props:T,patchFlag:B,shapeFlag:C,dirs:D,transition:Z}=b,ee=U==="input"||U==="option";if(ee||B!==-1){D&&Tt(b,null,R,"created");let I=!1;if(k(p)){I=sc(null,Z)&&R&&R.vnode.props&&R.vnode.props.appear;const K=p.content.firstChild;I&&Z.beforeEnter(K),E(K,p,R),b.el=p=K}if(C&16&&!(T&&(T.innerHTML||T.textContent))){let K=h(p.firstChild,b,p,R,j,M,A),ae=!1;for(;K;){dr(p,1)||(ae||(Yt("Hydration children mismatch on",p,` +Server rendered element contains more child nodes than client vdom.`),ae=!0),fn());const ye=K;K=K.nextSibling,l(ye)}}else if(C&8){let K=b.children;K[0]===` +`&&(p.tagName==="PRE"||p.tagName==="TEXTAREA")&&(K=K.slice(1)),p.textContent!==K&&(dr(p,0)||(Yt("Hydration text content mismatch on",p,` + - rendered on server: ${p.textContent} + - expected on client: ${b.children}`),fn()),p.textContent=b.children)}if(T){const K=p.tagName.includes("-");for(const ae in T)!(D&&D.some(ye=>ye.dir.created))&&vh(p,ae,T[ae],b,R)&&fn(),(ee&&(ae.endsWith("value")||ae==="indeterminate")||Fr(ae)&&!Dn(ae)||ae[0]==="."||K)&&r(p,ae,null,T[ae],void 0,R)}let N;(N=T&&T.onVnodeBeforeMount)&&pt(N,R,b),D&&Tt(b,null,R,"beforeMount"),((N=T&&T.onVnodeMounted)||D||I)&&dc(()=>{N&&pt(N,R,b),I&&Z.enter(p),D&&Tt(b,null,R,"mounted")},j)}return p.nextSibling},h=(p,b,R,j,M,A,U)=>{U=U||!!b.dynamicChildren;const T=b.children,B=T.length;let C=!1;for(let D=0;D{const{slotScopeIds:U}=b;U&&(M=M?M.concat(U):U);const T=i(p),B=h(s(p),b,T,R,j,M,A);return B&&_n(B)&&B.data==="]"?s(b.anchor=B):(fn(),a(b.anchor=u("]"),T,B),B)},_=(p,b,R,j,M,A)=>{if(dr(p.parentElement,1)||(Yt(`Hydration node mismatch: +- rendered on server:`,p,p.nodeType===3?"(text)":_n(p)&&p.data==="["?"(start of fragment)":"",` +- expected on client:`,b.type),fn()),b.el=null,A){const B=y(p);for(;;){const C=s(p);if(C&&C!==B)l(C);else break}}const U=s(p),T=i(p);return l(p),n(null,b,T,U,R,j,Zr(T),M),U},y=(p,b="[",R="]")=>{let j=0;for(;p;)if(p=s(p),p&&_n(p)&&(p.data===b&&j++,p.data===R)){if(j===0)return s(p);j--}return p},E=(p,b,R)=>{const j=b.parentNode;j&&j.replaceChild(p,b);let M=R;for(;M;)M.vnode.el===b&&(M.vnode.el=M.subTree.el=p),M=M.parent},k=p=>p.nodeType===1&&p.tagName==="TEMPLATE";return[f,c]}function vh(e,t,n,r,o){let s,i,l,a;if(t==="class")l=e.getAttribute("class"),a=rt(n),_h(Gi(l||""),Gi(a))||(s=2,i="class");else if(t==="style"){l=e.getAttribute("style")||"",a=Te(n)?n:fd(Xn(n));const u=Yi(l),f=Yi(a);if(r.dirs)for(const{dir:c,value:d}of r.dirs)c.name==="show"&&!d&&f.set("display","none");o&&zu(o,r,f),yh(u,f)||(s=3,i="style")}else(e instanceof SVGElement&&pd(t)||e instanceof HTMLElement&&(Ui(t)||hd(t)))&&(Ui(t)?(l=e.hasAttribute(t),a=Xs(n)):n==null?(l=e.hasAttribute(t),a=!1):(e.hasAttribute(t)?l=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?l=e.value:l=!1,a=gd(n)?String(n):!1),l!==a&&(s=4,i=t));if(s!=null&&!dr(e,s)){const u=d=>d===!1?"(not rendered)":`${i}="${d}"`,f=`Hydration ${Ku[s]} mismatch on`,c=` + - rendered on server: ${u(l)} + - expected on client: ${u(a)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`;return Yt(f,e,c),!0}return!1}function Gi(e){return new Set(e.trim().split(/\s+/))}function _h(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Yi(e){const t=new Map;for(const n of e.split(";")){let[r,o]=n.split(":");r=r.trim(),o=o&&o.trim(),r&&o&&t.set(r,o)}return t}function yh(e,t){if(e.size!==t.size)return!1;for(const[n,r]of e)if(r!==t.get(n))return!1;return!0}function zu(e,t,n){const r=e.subTree;if(e.getCssVars&&(t===r||r&&r.type===_e&&r.children.includes(t))){const o=e.getCssVars();for(const s in o)n.set(`--${vd(s)}`,String(o[s]))}t===r&&e.parent&&zu(e.parent,e.vnode,n)}const Xi="data-allow-mismatch",Ku={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function dr(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Xi);)e=e.parentElement;const n=e&&e.getAttribute(Xi);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(Ku[t])}}To().requestIdleCallback;To().cancelIdleCallback;function bh(e,t){if(_n(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(_n(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const kn=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Eh(e){oe(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,hydrate:s,timeout:i,suspensible:l=!0,onError:a}=e;let u=null,f,c=0;const d=()=>(c++,u=null,h()),h=()=>{let v;return u||(v=u=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),a)return new Promise((y,E)=>{a(_,()=>y(d()),()=>E(_),c+1)});throw _}).then(_=>v!==u&&u?u:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),f=_,_)))};return pe({name:"AsyncComponentWrapper",__asyncLoader:h,__asyncHydrate(v,_,y){const E=s?()=>{const k=s(y,p=>bh(v,p));k&&(_.bum||(_.bum=[])).push(k)}:y;f?E():h().then(()=>!_.isUnmounted&&E())},get __asyncResolved(){return f},setup(){const v=Be;if(ii(v),f)return()=>ts(f,v);const _=p=>{u=null,$r(p,v,13,!r)};if(l&&v.suspense||Un)return h().then(p=>()=>ts(p,v)).catch(p=>(_(p),()=>r?le(r,{error:p}):null));const y=ce(!1),E=ce(),k=ce(!!o);return o&&setTimeout(()=>{k.value=!1},o),i!=null&&setTimeout(()=>{if(!y.value&&!E.value){const p=new Error(`Async component timed out after ${i}ms.`);_(p),E.value=p}},i),h().then(()=>{y.value=!0,v.parent&&Ur(v.parent.vnode)&&v.parent.update()}).catch(p=>{_(p),E.value=p}),()=>{if(y.value&&f)return ts(f,v);if(E.value&&r)return le(r,{error:E.value});if(n&&!k.value)return le(n)}}})}function ts(e,t){const{ref:n,props:r,children:o,ce:s}=t.vnode,i=le(e,r,o);return i.ref=n,i.ce=s,delete t.vnode.ce,i}const Ur=e=>e.type.__isKeepAlive;function Sh(e,t){Wu(e,"a",t)}function kh(e,t){Wu(e,"da",t)}function Wu(e,t,n=Be){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(Lo(t,r,n),n){let o=n.parent;for(;o&&o.parent;)Ur(o.parent.vnode)&&Ah(r,t,n,o),o=o.parent}}function Ah(e,t,n,r){const o=Lo(t,e,r,!0);Do(()=>{Gs(r[t],o)},n)}function Lo(e,t,n=Be,r=!1){if(n){const o=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...i)=>{Ut();const l=zr(n),a=Et(t,n,e,i);return l(),jt(),a});return r?o.unshift(s):o.push(s),s}}const zt=e=>(t,n=Be)=>{(!Un||e==="sp")&&Lo(e,(...r)=>t(...r),n)},Ch=zt("bm"),Ye=zt("m"),wh=zt("bu"),Th=zt("u"),Ro=zt("bum"),Do=zt("um"),Oh=zt("sp"),xh=zt("rtg"),Ph=zt("rtc");function Ih(e,t=Be){Lo("ec",e,t)}const Lh="components";function li(e,t){return Dh(Lh,e,!0,t)||e}const Rh=Symbol.for("v-ndc");function Dh(e,t,n=!0,r=!1){const o=$e||Be;if(o){const s=o.type;{const l=vc(s,!1);if(l&&(l===t||l===ot(t)||l===Hr(ot(t))))return s}const i=Zi(o[e]||s[e],t)||Zi(o.appContext[e],t);return!i&&r?s:i}}function Zi(e,t){return e&&(e[t]||e[ot(t)]||e[Hr(ot(t))])}function rn(e,t,n,r){let o;const s=n,i=re(e);if(i||Te(e)){const l=i&&Nn(e);let a=!1;l&&(a=!mt(e),e=xo(e)),o=new Array(e.length);for(let u=0,f=e.length;ut(l,a,void 0,s));else{const l=Object.keys(e);o=new Array(l.length);for(let a=0,u=l.length;axr(t)?!(t.type===ze||t.type===_e&&!qu(t.children)):!0)?e:null}const As=e=>e?gc(e)?Vo(e):As(e.parent):null,yr=Ne(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>As(e.parent),$root:e=>As(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ai(e),$forceUpdate:e=>e.f||(e.f=()=>{oi(e.update)}),$nextTick:e=>e.n||(e.n=Jn.bind(e.proxy)),$watch:e=>ep.bind(e)}),ns=(e,t)=>e!==Se&&!e.__isScriptSetup&&me(e,t),Nh={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:o,props:s,accessCache:i,type:l,appContext:a}=e;let u;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return s[t]}else{if(ns(r,t))return i[t]=1,r[t];if(o!==Se&&me(o,t))return i[t]=2,o[t];if((u=e.propsOptions[0])&&me(u,t))return i[t]=3,s[t];if(n!==Se&&me(n,t))return i[t]=4,n[t];Cs&&(i[t]=0)}}const f=yr[t];let c,d;if(f)return t==="$attrs"&&We(e.attrs,"get",""),f(e);if((c=l.__cssModules)&&(c=c[t]))return c;if(n!==Se&&me(n,t))return i[t]=4,n[t];if(d=a.config.globalProperties,me(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:s}=e;return ns(o,t)?(o[t]=n,!0):r!==Se&&me(r,t)?(r[t]=n,!0):me(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:s}},i){let l;return!!n[i]||e!==Se&&me(e,i)||ns(t,i)||(l=s[0])&&me(l,i)||me(r,i)||me(yr,i)||me(o.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:me(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ji(e){return re(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Cs=!0;function Vh(e){const t=ai(e),n=e.proxy,r=e.ctx;Cs=!1,t.beforeCreate&&Qi(t.beforeCreate,e,"bc");const{data:o,computed:s,methods:i,watch:l,provide:a,inject:u,created:f,beforeMount:c,mounted:d,beforeUpdate:h,updated:v,activated:_,deactivated:y,beforeDestroy:E,beforeUnmount:k,destroyed:p,unmounted:b,render:R,renderTracked:j,renderTriggered:M,errorCaptured:A,serverPrefetch:U,expose:T,inheritAttrs:B,components:C,directives:D,filters:Z}=t;if(u&&Mh(u,r,null),i)for(const N in i){const K=i[N];oe(K)&&(r[N]=K.bind(n))}if(o){const N=o.call(n,n);we(N)&&(e.data=Br(N))}if(Cs=!0,s)for(const N in s){const K=s[N],ae=oe(K)?K.bind(n,n):oe(K.get)?K.get.bind(n,n):xt,ye=!oe(K)&&oe(K.set)?K.set.bind(n):xt,Oe=F({get:ae,set:ye});Object.defineProperty(r,N,{enumerable:!0,configurable:!0,get:()=>Oe.value,set:be=>Oe.value=be})}if(l)for(const N in l)Gu(l[N],r,n,N);if(a){const N=oe(a)?a.call(n):a;Reflect.ownKeys(N).forEach(K=>{An(K,N[K])})}f&&Qi(f,e,"c");function I(N,K){re(K)?K.forEach(ae=>N(ae.bind(n))):K&&N(K.bind(n))}if(I(Ch,c),I(Ye,d),I(wh,h),I(Th,v),I(Sh,_),I(kh,y),I(Ih,A),I(Ph,j),I(xh,M),I(Ro,k),I(Do,b),I(Oh,U),re(T))if(T.length){const N=e.exposed||(e.exposed={});T.forEach(K=>{Object.defineProperty(N,K,{get:()=>n[K],set:ae=>n[K]=ae})})}else e.exposed||(e.exposed={});R&&e.render===xt&&(e.render=R),B!=null&&(e.inheritAttrs=B),C&&(e.components=C),D&&(e.directives=D),U&&ii(e)}function Mh(e,t,n=xt){re(e)&&(e=ws(e));for(const r in e){const o=e[r];let s;we(o)?"default"in o?s=Qe(o.from||r,o.default,!0):s=Qe(o.from||r):s=Qe(o),De(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:i=>s.value=i}):t[r]=s}}function Qi(e,t,n){Et(re(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Gu(e,t,n,r){let o=r.includes(".")?uc(n,r):()=>n[r];if(Te(e)){const s=t[e];oe(s)&&Ue(o,s)}else if(oe(e))Ue(o,e.bind(n));else if(we(e))if(re(e))e.forEach(s=>Gu(s,t,n,r));else{const s=oe(e.handler)?e.handler.bind(n):t[e.handler];oe(s)&&Ue(o,s,e)}}function ai(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,l=s.get(t);let a;return l?a=l:!o.length&&!n&&!r?a=t:(a={},o.length&&o.forEach(u=>bo(a,u,i,!0)),bo(a,t,i)),we(t)&&s.set(t,a),a}function bo(e,t,n,r=!1){const{mixins:o,extends:s}=t;s&&bo(e,s,n,!0),o&&o.forEach(i=>bo(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Fh[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Fh={data:el,props:tl,emits:tl,methods:hr,computed:hr,beforeCreate:Xe,created:Xe,beforeMount:Xe,mounted:Xe,beforeUpdate:Xe,updated:Xe,beforeDestroy:Xe,beforeUnmount:Xe,destroyed:Xe,unmounted:Xe,activated:Xe,deactivated:Xe,errorCaptured:Xe,serverPrefetch:Xe,components:hr,directives:hr,watch:Bh,provide:el,inject:Hh};function el(e,t){return t?e?function(){return Ne(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function Hh(e,t){return hr(ws(e),ws(t))}function ws(e){if(re(e)){const t={};for(let n=0;n1)return n&&oe(t)?t.call(r&&r.proxy):t}}const Xu={},Zu=()=>Object.create(Xu),Ju=e=>Object.getPrototypeOf(e)===Xu;function jh(e,t,n,r=!1){const o={},s=Zu();e.propsDefaults=Object.create(null),Qu(e,t,o,s);for(const i in e.propsOptions[0])i in o||(o[i]=void 0);n?e.props=r?o:Tu(o):e.type.props?e.props=o:e.props=s,e.attrs=s}function zh(e,t,n,r){const{props:o,attrs:s,vnode:{patchFlag:i}}=e,l=fe(o),[a]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let c=0;c{a=!0;const[d,h]=ec(c,t,!0);Ne(i,d),h&&l.push(...h)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!s&&!a)return we(e)&&r.set(e,Ln),Ln;if(re(s))for(let f=0;fe[0]==="_"||e==="$stable",ui=e=>re(e)?e.map(gt):[gt(e)],Wh=(e,t,n)=>{if(t._n)return t;const r=Ve((...o)=>ui(t(...o)),n);return r._c=!1,r},nc=(e,t,n)=>{const r=e._ctx;for(const o in e){if(tc(o))continue;const s=e[o];if(oe(s))t[o]=Wh(o,s,r);else if(s!=null){const i=ui(s);t[o]=()=>i}}},rc=(e,t)=>{const n=ui(t);e.slots.default=()=>n},oc=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},qh=(e,t,n)=>{const r=e.slots=Zu();if(e.vnode.shapeFlag&32){const o=t._;o?(oc(r,t,n),n&&$n(r,"_",o,!0)):nc(t,r)}else t&&rc(e,t)},Gh=(e,t,n)=>{const{vnode:r,slots:o}=e;let s=!0,i=Se;if(r.shapeFlag&32){const l=t._;l?n&&l===1?s=!1:oc(o,t,n):(s=!t.$stable,nc(t,o)),i=t}else t&&(rc(e,t),i={default:1});if(s)for(const l in o)!tc(l)&&i[l]==null&&delete o[l]},at=dc;function Yh(e){return Xh(e,mh)}function Xh(e,t){const n=To();n.__VUE__=!0,Nu(n.__VUE_DEVTOOLS_GLOBAL_HOOK__,n);const{insert:r,remove:o,patchProp:s,createElement:i,createText:l,createComment:a,setText:u,setElementText:f,parentNode:c,nextSibling:d,setScopeId:h=xt,insertStaticContent:v}=e,_=(g,m,S,x=null,w=null,L=null,W=void 0,$=null,H=!!m.dynamicChildren)=>{if(g===m)return;g&&!yn(g,m)&&(x=O(g),be(g,w,L,!0),g=null),m.patchFlag===-2&&(H=!1,m.dynamicChildren=null);const{type:V,ref:te,shapeFlag:G}=m;switch(V){case nn:y(g,m,S,x);break;case ze:E(g,m,S,x);break;case Fn:g==null&&k(m,S,x,W);break;case _e:C(g,m,S,x,w,L,W,$,H);break;default:G&1?R(g,m,S,x,w,L,W,$,H):G&6?D(g,m,S,x,w,L,W,$,H):(G&64||G&128)&&V.process(g,m,S,x,w,L,W,$,H,J)}te!=null&&w&&yo(te,g&&g.ref,L,m||g,!m)},y=(g,m,S,x)=>{if(g==null)r(m.el=l(m.children),S,x);else{const w=m.el=g.el;m.children!==g.children&&u(w,m.children)}},E=(g,m,S,x)=>{g==null?r(m.el=a(m.children||""),S,x):m.el=g.el},k=(g,m,S,x)=>{[g.el,g.anchor]=v(g.children,m,S,x,g.el,g.anchor)},p=({el:g,anchor:m},S,x)=>{let w;for(;g&&g!==m;)w=d(g),r(g,S,x),g=w;r(m,S,x)},b=({el:g,anchor:m})=>{let S;for(;g&&g!==m;)S=d(g),o(g),g=S;o(m)},R=(g,m,S,x,w,L,W,$,H)=>{m.type==="svg"?W="svg":m.type==="math"&&(W="mathml"),g==null?j(m,S,x,w,L,W,$,H):U(g,m,w,L,W,$,H)},j=(g,m,S,x,w,L,W,$)=>{let H,V;const{props:te,shapeFlag:G,transition:Q,dirs:se}=g;if(H=g.el=i(g.type,L,te&&te.is,te),G&8?f(H,g.children):G&16&&A(g.children,H,null,x,w,rs(g,L),W,$),se&&Tt(g,null,x,"created"),M(H,g,g.scopeId,W,x),te){for(const ke in te)ke!=="value"&&!Dn(ke)&&s(H,ke,null,te[ke],L,x);"value"in te&&s(H,"value",null,te.value,L),(V=te.onVnodeBeforeMount)&&pt(V,x,g)}$n(H,"__vnode",g,!0),$n(H,"__vueParentComponent",x,!0),se&&Tt(g,null,x,"beforeMount");const he=sc(w,Q);he&&Q.beforeEnter(H),r(H,m,S),((V=te&&te.onVnodeMounted)||he||se)&&at(()=>{V&&pt(V,x,g),he&&Q.enter(H),se&&Tt(g,null,x,"mounted")},w)},M=(g,m,S,x,w)=>{if(S&&h(g,S),x)for(let L=0;L{for(let V=H;V{const $=m.el=g.el;$.__vnode=m;let{patchFlag:H,dynamicChildren:V,dirs:te}=m;H|=g.patchFlag&16;const G=g.props||Se,Q=m.props||Se;let se;if(S&&dn(S,!1),(se=Q.onVnodeBeforeUpdate)&&pt(se,S,m,g),te&&Tt(m,g,S,"beforeUpdate"),S&&dn(S,!0),(G.innerHTML&&Q.innerHTML==null||G.textContent&&Q.textContent==null)&&f($,""),V?T(g.dynamicChildren,V,$,S,x,rs(m,w),L):W||K(g,m,$,null,S,x,rs(m,w),L,!1),H>0){if(H&16)B($,G,Q,S,w);else if(H&2&&G.class!==Q.class&&s($,"class",null,Q.class,w),H&4&&s($,"style",G.style,Q.style,w),H&8){const he=m.dynamicProps;for(let ke=0;ke{se&&pt(se,S,m,g),te&&Tt(m,g,S,"updated")},x)},T=(g,m,S,x,w,L,W)=>{for(let $=0;${if(m!==S){if(m!==Se)for(const L in m)!Dn(L)&&!(L in S)&&s(g,L,m[L],null,w,x);for(const L in S){if(Dn(L))continue;const W=S[L],$=m[L];W!==$&&L!=="value"&&s(g,L,$,W,w,x)}"value"in S&&s(g,"value",m.value,S.value,w)}},C=(g,m,S,x,w,L,W,$,H)=>{const V=m.el=g?g.el:l(""),te=m.anchor=g?g.anchor:l("");let{patchFlag:G,dynamicChildren:Q,slotScopeIds:se}=m;se&&($=$?$.concat(se):se),g==null?(r(V,S,x),r(te,S,x),A(m.children||[],S,te,w,L,W,$,H)):G>0&&G&64&&Q&&g.dynamicChildren?(T(g.dynamicChildren,Q,S,w,L,W,$),(m.key!=null||w&&m===w.subTree)&&ic(g,m,!0)):K(g,m,S,te,w,L,W,$,H)},D=(g,m,S,x,w,L,W,$,H)=>{m.slotScopeIds=$,g==null?m.shapeFlag&512?w.ctx.activate(m,S,x,W,H):Z(m,S,x,w,L,W,H):ee(g,m,H)},Z=(g,m,S,x,w,L,W)=>{const $=g.component=pp(g,x,w);if(Ur(g)&&($.ctx.renderer=J),gp($,!1,W),$.asyncDep){if(w&&w.registerDep($,I,W),!g.el){const H=$.subTree=le(ze);E(null,H,m,S)}}else I($,g,m,S,w,L,W)},ee=(g,m,S)=>{const x=m.component=g.component;if(sp(g,m,S))if(x.asyncDep&&!x.asyncResolved){N(x,m,S);return}else x.next=m,x.update();else m.el=g.el,x.vnode=m},I=(g,m,S,x,w,L,W)=>{const $=()=>{if(g.isMounted){let{next:G,bu:Q,u:se,parent:he,vnode:ke}=g;{const it=lc(g);if(it){G&&(G.el=ke.el,N(g,G,W)),it.asyncDep.then(()=>{g.isUnmounted||$()});return}}let ve=G,st;dn(g,!1),G?(G.el=ke.el,N(g,G,W)):G=ke,Q&&Go(Q),(st=G.props&&G.props.onVnodeBeforeUpdate)&&pt(st,he,G,ke),dn(g,!0);const Ke=os(g),yt=g.subTree;g.subTree=Ke,_(yt,Ke,c(yt.el),O(yt),g,w,L),G.el=Ke.el,ve===null&&ip(g,Ke.el),se&&at(se,w),(st=G.props&&G.props.onVnodeUpdated)&&at(()=>pt(st,he,G,ke),w),Vu(g)}else{let G;const{el:Q,props:se}=m,{bm:he,m:ke,parent:ve,root:st,type:Ke}=g,yt=kn(m);if(dn(g,!1),he&&Go(he),!yt&&(G=se&&se.onVnodeBeforeMount)&&pt(G,ve,m),dn(g,!0),Q&&Ee){const it=()=>{g.subTree=os(g),Ee(Q,g.subTree,g,w,null)};yt&&Ke.__asyncHydrate?Ke.__asyncHydrate(Q,g,it):it()}else{st.ce&&st.ce._injectChildStyle(Ke);const it=g.subTree=os(g);_(null,it,S,x,g,w,L),m.el=it.el}if(ke&&at(ke,w),!yt&&(G=se&&se.onVnodeMounted)){const it=m;at(()=>pt(G,ve,it),w)}(m.shapeFlag&256||ve&&kn(ve.vnode)&&ve.vnode.shapeFlag&256)&&g.a&&at(g.a,w),g.isMounted=!0,ih(g),m=S=x=null}};g.scope.on();const H=g.effect=new hu($);g.scope.off();const V=g.update=H.run.bind(H),te=g.job=H.runIfDirty.bind(H);te.i=g,te.id=g.uid,H.scheduler=()=>oi(te),dn(g,!0),V()},N=(g,m,S)=>{m.component=g;const x=g.vnode.props;g.vnode=m,g.next=null,zh(g,m.props,x,S),Gh(g,m.children,S),Ut(),Ki(g),jt()},K=(g,m,S,x,w,L,W,$,H=!1)=>{const V=g&&g.children,te=g?g.shapeFlag:0,G=m.children,{patchFlag:Q,shapeFlag:se}=m;if(Q>0){if(Q&128){ye(V,G,S,x,w,L,W,$,H);return}else if(Q&256){ae(V,G,S,x,w,L,W,$,H);return}}se&8?(te&16&&nt(V,w,L),G!==V&&f(S,G)):te&16?se&16?ye(V,G,S,x,w,L,W,$,H):nt(V,w,L,!0):(te&8&&f(S,""),se&16&&A(G,S,x,w,L,W,$,H))},ae=(g,m,S,x,w,L,W,$,H)=>{g=g||Ln,m=m||Ln;const V=g.length,te=m.length,G=Math.min(V,te);let Q;for(Q=0;Qte?nt(g,w,L,!0,!1,G):A(m,S,x,w,L,W,$,H,G)},ye=(g,m,S,x,w,L,W,$,H)=>{let V=0;const te=m.length;let G=g.length-1,Q=te-1;for(;V<=G&&V<=Q;){const se=g[V],he=m[V]=H?Jt(m[V]):gt(m[V]);if(yn(se,he))_(se,he,S,null,w,L,W,$,H);else break;V++}for(;V<=G&&V<=Q;){const se=g[G],he=m[Q]=H?Jt(m[Q]):gt(m[Q]);if(yn(se,he))_(se,he,S,null,w,L,W,$,H);else break;G--,Q--}if(V>G){if(V<=Q){const se=Q+1,he=seQ)for(;V<=G;)be(g[V],w,L,!0),V++;else{const se=V,he=V,ke=new Map;for(V=he;V<=Q;V++){const lt=m[V]=H?Jt(m[V]):gt(m[V]);lt.key!=null&&ke.set(lt.key,V)}let ve,st=0;const Ke=Q-he+1;let yt=!1,it=0;const or=new Array(Ke);for(V=0;V=Ke){be(lt,w,L,!0);continue}let At;if(lt.key!=null)At=ke.get(lt.key);else for(ve=he;ve<=Q;ve++)if(or[ve-he]===0&&yn(lt,m[ve])){At=ve;break}At===void 0?be(lt,w,L,!0):(or[At-he]=V+1,At>=it?it=At:yt=!0,_(lt,m[At],S,null,w,L,W,$,H),st++)}const Fi=yt?Zh(or):Ln;for(ve=Fi.length-1,V=Ke-1;V>=0;V--){const lt=he+V,At=m[lt],Hi=lt+1{const{el:L,type:W,transition:$,children:H,shapeFlag:V}=g;if(V&6){Oe(g.component.subTree,m,S,x);return}if(V&128){g.suspense.move(m,S,x);return}if(V&64){W.move(g,m,S,J);return}if(W===_e){r(L,m,S);for(let G=0;G$.enter(L),w);else{const{leave:G,delayLeave:Q,afterLeave:se}=$,he=()=>r(L,m,S),ke=()=>{G(L,()=>{he(),se&&se()})};Q?Q(L,he,ke):ke()}else r(L,m,S)},be=(g,m,S,x=!1,w=!1)=>{const{type:L,props:W,ref:$,children:H,dynamicChildren:V,shapeFlag:te,patchFlag:G,dirs:Q,cacheIndex:se}=g;if(G===-2&&(w=!1),$!=null&&yo($,null,S,g,!0),se!=null&&(m.renderCache[se]=void 0),te&256){m.ctx.deactivate(g);return}const he=te&1&&Q,ke=!kn(g);let ve;if(ke&&(ve=W&&W.onVnodeBeforeUnmount)&&pt(ve,m,g),te&6)tt(g.component,S,x);else{if(te&128){g.suspense.unmount(S,x);return}he&&Tt(g,null,m,"beforeUnmount"),te&64?g.type.remove(g,m,S,J,x):V&&!V.hasOnce&&(L!==_e||G>0&&G&64)?nt(V,m,S,!1,!0):(L===_e&&G&384||!w&&te&16)&&nt(H,m,S),x&&et(g)}(ke&&(ve=W&&W.onVnodeUnmounted)||he)&&at(()=>{ve&&pt(ve,m,g),he&&Tt(g,null,m,"unmounted")},S)},et=g=>{const{type:m,el:S,anchor:x,transition:w}=g;if(m===_e){_t(S,x);return}if(m===Fn){b(g);return}const L=()=>{o(S),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(g.shapeFlag&1&&w&&!w.persisted){const{leave:W,delayLeave:$}=w,H=()=>W(S,L);$?$(g.el,L,H):H()}else L()},_t=(g,m)=>{let S;for(;g!==m;)S=d(g),o(g),g=S;o(m)},tt=(g,m,S)=>{const{bum:x,scope:w,job:L,subTree:W,um:$,m:H,a:V}=g;rl(H),rl(V),x&&Go(x),w.stop(),L&&(L.flags|=8,be(W,g,m,S)),$&&at($,m),at(()=>{g.isUnmounted=!0},m),m&&m.pendingBranch&&!m.isUnmounted&&g.asyncDep&&!g.asyncResolved&&g.suspenseId===m.pendingId&&(m.deps--,m.deps===0&&m.resolve()),ah(g)},nt=(g,m,S,x=!1,w=!1,L=0)=>{for(let W=L;W{if(g.shapeFlag&6)return O(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const m=d(g.anchor||g.el),S=m&&m[ch];return S?d(S):m};let q=!1;const z=(g,m,S)=>{g==null?m._vnode&&be(m._vnode,null,null,!0):_(m._vnode||null,g,m,null,null,null,S),m._vnode=g,q||(q=!0,Ki(),mo(),q=!1)},J={p:_,um:be,m:Oe,r:et,mt:Z,mc:A,pc:K,pbc:T,n:O,o:e};let de,Ee;return t&&([de,Ee]=t(J)),{render:z,hydrate:de,createApp:Uh(z,de)}}function rs({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function dn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function sc(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ic(e,t,n=!1){const r=e.children,o=t.children;if(re(r)&&re(o))for(let s=0;s>1,e[n[l]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,i=n[s-1];s-- >0;)n[s]=i,i=t[i];return n}function lc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:lc(t)}function rl(e){if(e)for(let t=0;tQe(Jh);function ac(e,t){return ci(e,null,t)}function Ue(e,t,n){return ci(e,t,n)}function ci(e,t,n=Se){const{immediate:r,deep:o,flush:s,once:i}=n,l=Ne({},n),a=t&&r||!t&&s!=="post";let u;if(Un){if(s==="sync"){const h=Qh();u=h.__watcherHandles||(h.__watcherHandles=[])}else if(!a){const h=()=>{};return h.stop=xt,h.resume=xt,h.pause=xt,h}}const f=Be;l.call=(h,v,_)=>Et(h,f,v,_);let c=!1;s==="post"?l.scheduler=h=>{at(h,f&&f.suspense)}:s!=="sync"&&(c=!0,l.scheduler=(h,v)=>{v?h():oi(h)}),l.augmentJob=h=>{t&&(h.flags|=4),c&&(h.flags|=2,f&&(h.id=f.uid,h.i=f))};const d=Xd(e,t,l);return Un&&(u?u.push(d):a&&d()),d}function ep(e,t,n){const r=this.proxy,o=Te(e)?e.includes(".")?uc(r,e):()=>r[e]:e.bind(r,r);let s;oe(t)?s=t:(s=t.handler,n=t);const i=zr(this),l=ci(o,s.bind(r),n);return i(),l}function uc(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ot(t)}Modifiers`]||e[`${$t(t)}Modifiers`];function np(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||Se;let o=n;const s=t.startsWith("update:"),i=s&&tp(r,t.slice(7));i&&(i.trim&&(o=n.map(f=>Te(f)?f.trim():f)),i.number&&(o=n.map(sd))),uh(e,t,o);let l,a=r[l=qo(t)]||r[l=qo(ot(t))];!a&&s&&(a=r[l=qo($t(t))]),a&&Et(a,e,6,o);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Et(u,e,6,o)}}function cc(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const s=e.emits;let i={},l=!1;if(!oe(e)){const a=u=>{const f=cc(u,t,!0);f&&(l=!0,Ne(i,f))};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!s&&!l?(we(e)&&r.set(e,null),null):(re(s)?s.forEach(a=>i[a]=null):Ne(i,s),we(e)&&r.set(e,i),i)}function No(e,t){return!e||!Fr(t)?!1:(t=t.slice(2).replace(/Once$/,""),me(e,t[0].toLowerCase()+t.slice(1))||me(e,$t(t))||me(e,t))}function os(e){const{type:t,vnode:n,proxy:r,withProxy:o,propsOptions:[s],slots:i,attrs:l,emit:a,render:u,renderCache:f,props:c,data:d,setupState:h,ctx:v,inheritAttrs:_}=e,y=vo(e);let E,k;try{if(n.shapeFlag&4){const b=o||r,R=b;E=gt(u.call(R,b,f,c,h,d,v)),k=l}else{const b=t;E=gt(b.length>1?b(c,{attrs:l,slots:i,emit:a}):b(c,null)),k=t.props?l:rp(l)}}catch(b){br.length=0,$r(b,e,1),E=le(ze)}let p=E;if(k&&_!==!1){const b=Object.keys(k),{shapeFlag:R}=p;b.length&&R&7&&(s&&b.some(qs)&&(k=op(k,s)),p=on(p,k,!1,!0))}return n.dirs&&(p=on(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Tr(p,n.transition),E=p,vo(y),E}const rp=e=>{let t;for(const n in e)(n==="class"||n==="style"||Fr(n))&&((t||(t={}))[n]=e[n]);return t},op=(e,t)=>{const n={};for(const r in e)(!qs(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function sp(e,t,n){const{props:r,children:o,component:s}=e,{props:i,children:l,patchFlag:a}=t,u=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&a>=0){if(a&1024)return!0;if(a&16)return r?ol(r,i,u):!!i;if(a&8){const f=t.dynamicProps;for(let c=0;ce.__isSuspense;function dc(e,t){t&&t.pendingBranch?re(e)?t.effects.push(...e):t.effects.push(e):rh(e)}const _e=Symbol.for("v-fgt"),nn=Symbol.for("v-txt"),ze=Symbol.for("v-cmt"),Fn=Symbol.for("v-stc"),br=[];let ct=null;function Y(e=!1){br.push(ct=e?null:[])}function lp(){br.pop(),ct=br[br.length-1]||null}let Or=1;function sl(e){Or+=e,e<0&&ct&&(ct.hasOnce=!0)}function hc(e){return e.dynamicChildren=Or>0?ct||Ln:null,lp(),Or>0&&ct&&ct.push(e),e}function ne(e,t,n,r,o,s){return hc(ie(e,t,n,r,o,s,!0))}function Re(e,t,n,r,o){return hc(le(e,t,n,r,o,!0))}function xr(e){return e?e.__v_isVNode===!0:!1}function yn(e,t){return e.type===t.type&&e.key===t.key}const pc=({key:e})=>e??null,io=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Te(e)||De(e)||oe(e)?{i:$e,r:e,k:t,f:!!n}:e:null);function ie(e,t=null,n=null,r=0,o=null,s=e===_e?0:1,i=!1,l=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&pc(t),ref:t&&io(t),scopeId:Mu,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:$e};return l?(fi(a,n),s&128&&e.normalize(a)):n&&(a.shapeFlag|=Te(n)?8:16),Or>0&&!i&&ct&&(a.patchFlag>0||s&6)&&a.patchFlag!==32&&ct.push(a),a}const le=ap;function ap(e,t=null,n=null,r=0,o=null,s=!1){if((!e||e===Rh)&&(e=ze),xr(e)){const l=on(e,t,!0);return n&&fi(l,n),Or>0&&!s&&ct&&(l.shapeFlag&6?ct[ct.indexOf(e)]=l:ct.push(l)),l.patchFlag=-2,l}if(Ep(e)&&(e=e.__vccOpts),t){t=up(t);let{class:l,style:a}=t;l&&!Te(l)&&(t.class=rt(l)),we(a)&&(ni(a)&&!re(a)&&(a=Ne({},a)),t.style=Xn(a))}const i=Te(e)?1:fc(e)?128:Fu(e)?64:we(e)?4:oe(e)?2:0;return ie(e,t,n,r,o,i,s,!0)}function up(e){return e?ni(e)||Ju(e)?Ne({},e):e:null}function on(e,t,n=!1,r=!1){const{props:o,ref:s,patchFlag:i,children:l,transition:a}=e,u=t?fp(o||{},t):o,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&pc(u),ref:t&&t.ref?n&&s?re(s)?s.concat(io(t)):[s,io(t)]:io(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&on(e.ssContent),ssFallback:e.ssFallback&&on(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&Tr(f,a.clone(f)),f}function sn(e=" ",t=0){return le(nn,null,e,t)}function cp(e,t){const n=le(Fn,null,e);return n.staticCount=t,n}function Fe(e="",t=!1){return t?(Y(),Re(ze,null,e)):le(ze,null,e)}function gt(e){return e==null||typeof e=="boolean"?le(ze):re(e)?le(_e,null,e.slice()):xr(e)?Jt(e):le(nn,null,String(e))}function Jt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:on(e)}function fi(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(re(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),fi(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!Ju(t)?t._ctx=$e:o===3&&$e&&($e.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else oe(t)?(t={default:t,_ctx:$e},n=32):(t=String(t),r&64?(n=16,t=[sn(t)]):n=8);e.children=t,e.shapeFlag|=n}function fp(...e){const t={};for(let n=0;nBe||$e;let Eo,Os;{const e=To(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),s=>{o.length>1?o.forEach(i=>i(s)):o[0](s)}};Eo=t("__VUE_INSTANCE_SETTERS__",n=>Be=n),Os=t("__VUE_SSR_SETTERS__",n=>Un=n)}const zr=e=>{const t=Be;return Eo(e),e.scope.on(),()=>{e.scope.off(),Eo(t)}},il=()=>{Be&&Be.scope.off(),Eo(null)};function gc(e){return e.vnode.shapeFlag&4}let Un=!1;function gp(e,t=!1,n=!1){t&&Os(t);const{props:r,children:o}=e.vnode,s=gc(e);jh(e,r,s,t),qh(e,o,n);const i=s?mp(e,t):void 0;return t&&Os(!1),i}function mp(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Nh);const{setup:r}=n;if(r){Ut();const o=e.setupContext=r.length>1?_p(e):null,s=zr(e),i=Zn(r,e,0,[e.props,o]),l=iu(i);if(jt(),s(),(l||e.sp)&&!kn(e)&&ii(e),l){if(i.then(il,il),t)return i.then(a=>{ll(e,a,t)}).catch(a=>{$r(a,e,0)});e.asyncDep=i}else ll(e,i,t)}else mc(e,t)}function ll(e,t,n){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:we(t)&&(e.devtoolsRawSetupState=t,e.setupState=xu(t)),mc(e,n)}let al;function mc(e,t,n){const r=e.type;if(!e.render){if(!t&&al&&!r.render){const o=r.template||ai(e).template;if(o){const{isCustomElement:s,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:a}=r,u=Ne(Ne({isCustomElement:s,delimiters:l},i),a);r.render=al(o,u)}}e.render=r.render||xt}{const o=zr(e);Ut();try{Vh(e)}finally{jt(),o()}}}const vp={get(e,t){return We(e,"get",""),e[t]}};function _p(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,vp),slots:e.slots,emit:e.emit,expose:t}}function Vo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(xu(Hd(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in yr)return yr[n](e)},has(t,n){return n in t||n in yr}})):e.proxy}const yp=/(?:^|[-_])(\w)/g,bp=e=>e.replace(yp,t=>t.toUpperCase()).replace(/[-_]/g,"");function vc(e,t=!0){return oe(e)?e.displayName||e.name:e.name||t&&e.__name}function _c(e,t,n=!1){let r=vc(t);if(!r&&t.__file){const o=t.__file.match(/([^/\\]+)\.\w+$/);o&&(r=o[1])}if(!r&&e&&e.parent){const o=s=>{for(const i in s)if(s[i]===t)return i};r=o(e.components||e.parent.type.components)||o(e.appContext.components)}return r?bp(r):n?"App":"Anonymous"}function Ep(e){return oe(e)&&"__vccOpts"in e}const F=(e,t)=>Gd(e,t,Un);function ue(e,t,n){const r=arguments.length;return r===2?we(t)&&!re(t)?xr(t)?le(e,null,[t]):le(e,t):le(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&xr(n)&&(n=[n]),le(e,t,n))}const ul="3.5.12";/** +* @vue/runtime-dom v3.5.12 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let xs;const cl=typeof window<"u"&&window.trustedTypes;if(cl)try{xs=cl.createPolicy("vue",{createHTML:e=>e})}catch{}const yc=xs?e=>xs.createHTML(e):e=>e,Sp="http://www.w3.org/2000/svg",kp="http://www.w3.org/1998/Math/MathML",Vt=typeof document<"u"?document:null,fl=Vt&&Vt.createElement("template"),Ap={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Vt.createElementNS(Sp,e):t==="mathml"?Vt.createElementNS(kp,e):n?Vt.createElement(e,{is:n}):Vt.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Vt.createTextNode(e),createComment:e=>Vt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Vt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{fl.innerHTML=yc(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=fl.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},qt="transition",ir="animation",Pr=Symbol("_vtc"),bc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Cp=Ne({},Hu,bc),wp=e=>(e.displayName="Transition",e.props=Cp,e),di=wp((e,{slots:t})=>ue(hh,Tp(e),t)),hn=(e,t=[])=>{re(e)?e.forEach(n=>n(...t)):e&&e(...t)},dl=e=>e?re(e)?e.some(t=>t.length>1):e.length>1:!1;function Tp(e){const t={};for(const C in e)C in bc||(t[C]=e[C]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:u=i,appearToClass:f=l,leaveFromClass:c=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:h=`${n}-leave-to`}=e,v=Op(o),_=v&&v[0],y=v&&v[1],{onBeforeEnter:E,onEnter:k,onEnterCancelled:p,onLeave:b,onLeaveCancelled:R,onBeforeAppear:j=E,onAppear:M=k,onAppearCancelled:A=p}=t,U=(C,D,Z)=>{pn(C,D?f:l),pn(C,D?u:i),Z&&Z()},T=(C,D)=>{C._isLeaving=!1,pn(C,c),pn(C,h),pn(C,d),D&&D()},B=C=>(D,Z)=>{const ee=C?M:k,I=()=>U(D,C,Z);hn(ee,[D,I]),hl(()=>{pn(D,C?a:s),Gt(D,C?f:l),dl(ee)||pl(D,r,_,I)})};return Ne(t,{onBeforeEnter(C){hn(E,[C]),Gt(C,s),Gt(C,i)},onBeforeAppear(C){hn(j,[C]),Gt(C,a),Gt(C,u)},onEnter:B(!1),onAppear:B(!0),onLeave(C,D){C._isLeaving=!0;const Z=()=>T(C,D);Gt(C,c),Gt(C,d),Ip(),hl(()=>{C._isLeaving&&(pn(C,c),Gt(C,h),dl(b)||pl(C,r,y,Z))}),hn(b,[C,Z])},onEnterCancelled(C){U(C,!1),hn(p,[C])},onAppearCancelled(C){U(C,!0),hn(A,[C])},onLeaveCancelled(C){T(C),hn(R,[C])}})}function Op(e){if(e==null)return null;if(we(e))return[ss(e.enter),ss(e.leave)];{const t=ss(e);return[t,t]}}function ss(e){return id(e)}function Gt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Pr]||(e[Pr]=new Set)).add(t)}function pn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Pr];n&&(n.delete(t),n.size||(e[Pr]=void 0))}function hl(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let xp=0;function pl(e,t,n,r){const o=e._endId=++xp,s=()=>{o===e._endId&&r()};if(n!=null)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=Pp(e,t);if(!i)return r();const u=i+"end";let f=0;const c=()=>{e.removeEventListener(u,d),s()},d=h=>{h.target===e&&++f>=a&&c()};setTimeout(()=>{f(n[v]||"").split(", "),o=r(`${qt}Delay`),s=r(`${qt}Duration`),i=gl(o,s),l=r(`${ir}Delay`),a=r(`${ir}Duration`),u=gl(l,a);let f=null,c=0,d=0;t===qt?i>0&&(f=qt,c=i,d=s.length):t===ir?u>0&&(f=ir,c=u,d=a.length):(c=Math.max(i,u),f=c>0?i>u?qt:ir:null,d=f?f===qt?s.length:a.length:0);const h=f===qt&&/\b(transform|all)(,|$)/.test(r(`${qt}Property`).toString());return{type:f,timeout:c,propCount:d,hasTransform:h}}function gl(e,t){for(;e.lengthml(n)+ml(e[r])))}function ml(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ip(){return document.body.offsetHeight}function Lp(e,t,n){const r=e[Pr];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const So=Symbol("_vod"),Ec=Symbol("_vsh"),ko={beforeMount(e,{value:t},{transition:n}){e[So]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):lr(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),lr(e,!0),r.enter(e)):r.leave(e,()=>{lr(e,!1)}):lr(e,t))},beforeUnmount(e,{value:t}){lr(e,t)}};function lr(e,t){e.style.display=t?e[So]:"none",e[Ec]=!t}const Rp=Symbol(""),Dp=/(^|;)\s*display\s*:/;function Np(e,t,n){const r=e.style,o=Te(n);let s=!1;if(n&&!o){if(t)if(Te(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&lo(r,l,"")}else for(const i in t)n[i]==null&&lo(r,i,"");for(const i in n)i==="display"&&(s=!0),lo(r,i,n[i])}else if(o){if(t!==n){const i=r[Rp];i&&(n+=";"+i),r.cssText=n,s=Dp.test(n)}}else t&&e.removeAttribute("style");So in e&&(e[So]=s?r.display:"",e[Ec]&&(r.display="none"))}const vl=/\s*!important$/;function lo(e,t,n){if(re(n))n.forEach(r=>lo(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Vp(e,t);vl.test(n)?e.setProperty($t(r),n.replace(vl,""),"important"):e[r]=n}}const _l=["Webkit","Moz","ms"],is={};function Vp(e,t){const n=is[t];if(n)return n;let r=ot(t);if(r!=="filter"&&r in e)return is[t]=r;r=Hr(r);for(let o=0;o<_l.length;o++){const s=_l[o]+r;if(s in e)return is[t]=s}return t}const yl="http://www.w3.org/1999/xlink";function bl(e,t,n,r,o,s=dd(t)){r&&t.startsWith("xlink:")?n==null?e.removeAttributeNS(yl,t.slice(6,t.length)):e.setAttributeNS(yl,t,n):n==null||s&&!Xs(n)?e.removeAttribute(t):e.setAttribute(t,s?"":Bt(n)?String(n):n)}function El(e,t,n,r,o){if(t==="innerHTML"||t==="textContent"){n!=null&&(e[t]=t==="innerHTML"?yc(n):n);return}const s=e.tagName;if(t==="value"&&s!=="PROGRESS"&&!s.includes("-")){const l=s==="OPTION"?e.getAttribute("value")||"":e.value,a=n==null?e.type==="checkbox"?"on":"":String(n);(l!==a||!("_value"in e))&&(e.value=a),n==null&&e.removeAttribute(t),e._value=n;return}let i=!1;if(n===""||n==null){const l=typeof e[t];l==="boolean"?n=Xs(n):n==null&&l==="string"?(n="",i=!0):l==="number"&&(n=0,i=!0)}try{e[t]=n}catch{}i&&e.removeAttribute(o||t)}function Mp(e,t,n,r){e.addEventListener(t,n,r)}function Fp(e,t,n,r){e.removeEventListener(t,n,r)}const Sl=Symbol("_vei");function Hp(e,t,n,r,o=null){const s=e[Sl]||(e[Sl]={}),i=s[t];if(r&&i)i.value=r;else{const[l,a]=Bp(t);if(r){const u=s[t]=jp(r,o);Mp(e,l,u,a)}else i&&(Fp(e,l,i,a),s[t]=void 0)}}const kl=/(?:Once|Passive|Capture)$/;function Bp(e){let t;if(kl.test(e)){t={};let r;for(;r=e.match(kl);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):$t(e.slice(2)),t]}let ls=0;const $p=Promise.resolve(),Up=()=>ls||($p.then(()=>ls=0),ls=Date.now());function jp(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Et(zp(r,n.value),t,5,[r])};return n.value=e,n.attached=Up(),n}function zp(e,t){if(re(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const Al=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Kp=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?Lp(e,r,i):t==="style"?Np(e,n,r):Fr(t)?qs(t)||Hp(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Wp(e,t,r,i))?(El(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&bl(e,t,r,i,s,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Te(r))?El(e,ot(t),r,s,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),bl(e,t,r,i))};function Wp(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Al(t)&&oe(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Al(t)&&Te(n)?!1:t in e}const qp={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Gp=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=$t(o.key);if(t.some(i=>i===s||qp[i]===s))return e(o)})},Yp=Ne({patchProp:Kp},Ap);let as,Cl=!1;function Xp(){return as=Cl?as:Yh(Yp),Cl=!0,as}const Zp=(...e)=>{const t=Xp().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Qp(r);if(o)return n(o,!0,Jp(o))},t};function Jp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Qp(e){return Te(e)?document.querySelector(e):e}var Kr=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),eg=/.md((\?|#).*)?$/,tg=(e,t="/")=>Kr(e)||e.startsWith("/")&&!e.startsWith(t)&&!eg.test(e),Mo=e=>/^(https?:)?\/\//.test(e),wl=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=`${t.substring(0,t.length-3)}.html`:t.endsWith(".html")||(t=`${t}.html`),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},ng="http://.",rg=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return wl(new URL(`${n}/${e}`,ng).pathname)}return wl(e)},og=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},sg=/(#|\?)/,Sc=e=>{const[t,...n]=e.split(sg);return{pathname:t,hashAndQueries:n.join("")}},ig=["link","meta","script","style","noscript","template"],lg=["title","base"],ag=([e,t,n])=>lg.includes(e)?e:ig.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,ug=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=ag(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},cg=e=>e.endsWith("/")||e.endsWith(".html")?e:`${e}/`,kc=e=>e.endsWith("/")?e.slice(0,-1):e,Ac=e=>e.startsWith("/")?e.slice(1):e,hi=e=>Object.prototype.toString.call(e)==="[object Object]",vt=e=>typeof e=="string";const fg=JSON.parse("{}"),dg=Object.fromEntries([["/",{loader:()=>je(()=>import("./index.html-CvDMxkm5.js"),[]),meta:{title:"首页"}}],["/guide/",{loader:()=>je(()=>import("./index.html-C-mbL9i8.js"),[]),meta:{title:"介绍"}}],["/guide/account.html",{loader:()=>je(()=>import("./account.html-CDjmPYLs.js"),[]),meta:{title:"账号管理"}}],["/guide/audit.html",{loader:()=>je(()=>import("./audit.html-9dET-Wm_.js"),[]),meta:{title:"内容审核"}}],["/guide/group.html",{loader:()=>je(()=>import("./group.html-CZtG0v8f.js"),[]),meta:{title:"群组管理"}}],["/guide/member.html",{loader:()=>je(()=>import("./member.html-BlOWnDb2.js"),[]),meta:{title:"全员推送"}}],["/guide/message.html",{loader:()=>je(()=>import("./message.html-Bt8eLqry.js"),[]),meta:{title:"单聊消息"}}],["/guide/official_account.html",{loader:()=>je(()=>import("./official_account.html-xov-7EXR.js"),[]),meta:{title:"公众号管理"}}],["/guide/operation_1.html",{loader:()=>je(()=>import("./operation_1.html-B004IK0c.js"),[]),meta:{title:"全局禁言管理"}}],["/guide/operation_2.html",{loader:()=>je(()=>import("./operation_2.html-cQgqWZz7.js"),[]),meta:{title:"运营管理"}}],["/guide/profile.html",{loader:()=>je(()=>import("./profile.html-DXrbc69c.js"),[]),meta:{title:"资料管理"}}],["/guide/quickstart.html",{loader:()=>je(()=>import("./quickstart.html-DLWtOFq3.js"),[]),meta:{title:"快速上手"}}],["/guide/recent_contact.html",{loader:()=>je(()=>import("./recent_contact.html-DCgMqOaj.js"),[]),meta:{title:"最近联系人"}}],["/guide/robot.html",{loader:()=>je(()=>import("./robot.html-BzQnHUDl.js"),[]),meta:{title:"机器人"}}],["/guide/sns.html",{loader:()=>je(()=>import("./sns.html-CntvNguu.js"),[]),meta:{title:"关系链管理"}}],["/404.html",{loader:()=>je(()=>import("./404.html-D5oRPDK3.js"),[]),meta:{title:""}}]]);function hg(){return Cc().__VUE_DEVTOOLS_GLOBAL_HOOK__}function Cc(){return typeof navigator<"u"&&typeof window<"u"?window:typeof globalThis<"u"?globalThis:{}}const pg=typeof Proxy=="function",gg="devtools-plugin:setup",mg="plugin:settings:set";let On,Ps;function vg(){var e;return On!==void 0||(typeof window<"u"&&window.performance?(On=!0,Ps=window.performance):typeof globalThis<"u"&&(!((e=globalThis.perf_hooks)===null||e===void 0)&&e.performance)?(On=!0,Ps=globalThis.perf_hooks.performance):On=!1),On}function _g(){return vg()?Ps.now():Date.now()}class yg{constructor(t,n){this.target=null,this.targetQueue=[],this.onQueue=[],this.plugin=t,this.hook=n;const r={};if(t.settings)for(const i in t.settings){const l=t.settings[i];r[i]=l.defaultValue}const o=`__vue-devtools-plugin-settings__${t.id}`;let s=Object.assign({},r);try{const i=localStorage.getItem(o),l=JSON.parse(i);Object.assign(s,l)}catch{}this.fallbacks={getSettings(){return s},setSettings(i){try{localStorage.setItem(o,JSON.stringify(i))}catch{}s=i},now(){return _g()}},n&&n.on(mg,(i,l)=>{i===this.plugin.id&&this.fallbacks.setSettings(l)}),this.proxiedOn=new Proxy({},{get:(i,l)=>this.target?this.target.on[l]:(...a)=>{this.onQueue.push({method:l,args:a})}}),this.proxiedTarget=new Proxy({},{get:(i,l)=>this.target?this.target[l]:l==="on"?this.proxiedOn:Object.keys(this.fallbacks).includes(l)?(...a)=>(this.targetQueue.push({method:l,args:a,resolve:()=>{}}),this.fallbacks[l](...a)):(...a)=>new Promise(u=>{this.targetQueue.push({method:l,args:a,resolve:u})})})}async setRealTarget(t){this.target=t;for(const n of this.onQueue)this.target.on[n.method](...n.args);for(const n of this.targetQueue)n.resolve(await this.target[n.method](...n.args))}}function bg(e,t){const n=e,r=Cc(),o=hg(),s=pg&&n.enableEarlyProxy;if(o&&(r.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__||!s))o.emit(gg,e,t);else{const i=s?new yg(n,o):null;(r.__VUE_DEVTOOLS_PLUGINS__=r.__VUE_DEVTOOLS_PLUGINS__||[]).push({pluginDescriptor:n,setupFn:t,proxy:i}),i&&t(i.proxiedTarget)}}/*! + * vue-router v4.4.5 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const Mt=typeof document<"u";function wc(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Eg(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wc(e.default)}const ge=Object.assign;function us(e,t){const n={};for(const r in t){const o=t[r];n[r]=ft(o)?o.map(e):e(o)}return n}const Er=()=>{},ft=Array.isArray,Tc=/#/g,Sg=/&/g,kg=/\//g,Ag=/=/g,Cg=/\?/g,Oc=/\+/g,wg=/%5B/g,Tg=/%5D/g,xc=/%5E/g,Og=/%60/g,Pc=/%7B/g,xg=/%7C/g,Ic=/%7D/g,Pg=/%20/g;function pi(e){return encodeURI(""+e).replace(xg,"|").replace(wg,"[").replace(Tg,"]")}function Ig(e){return pi(e).replace(Pc,"{").replace(Ic,"}").replace(xc,"^")}function Is(e){return pi(e).replace(Oc,"%2B").replace(Pg,"+").replace(Tc,"%23").replace(Sg,"%26").replace(Og,"`").replace(Pc,"{").replace(Ic,"}").replace(xc,"^")}function Lg(e){return Is(e).replace(Ag,"%3D")}function Rg(e){return pi(e).replace(Tc,"%23").replace(Cg,"%3F")}function Dg(e){return e==null?"":Rg(e).replace(kg,"%2F")}function jn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Ng=/\/$/,Vg=e=>e.replace(Ng,"");function cs(e,t,n="/"){let r,o={},s="",i="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(r=t.slice(0,a),s=t.slice(a+1,l>-1?l:t.length),o=e(s)),l>-1&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Bg(r??t,n),{fullPath:r+(s&&"?")+s+i,path:r,query:o,hash:jn(i)}}function Mg(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Tl(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Fg(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&ln(t.matched[r],n.matched[o])&&Lc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function ln(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Lc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Hg(e[n],t[n]))return!1;return!0}function Hg(e,t){return ft(e)?Ol(e,t):ft(t)?Ol(t,e):e===t}function Ol(e,t){return ft(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Bg(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let s=n.length-1,i,l;for(i=0;i1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(i).join("/")}const Nt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Ir;(function(e){e.pop="pop",e.push="push"})(Ir||(Ir={}));var Sr;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Sr||(Sr={}));function $g(e){if(!e)if(Mt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Vg(e)}const Ug=/^[^#]+#/;function jg(e,t){return e.replace(Ug,"#")+t}function zg(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Fo=()=>({left:window.scrollX,top:window.scrollY});function Kg(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=zg(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function xl(e,t){return(history.state?history.state.position-t:-1)+e}const Ls=new Map;function Wg(e,t){Ls.set(e,t)}function qg(e){const t=Ls.get(e);return Ls.delete(e),t}let Gg=()=>location.protocol+"//"+location.host;function Rc(e,t){const{pathname:n,search:r,hash:o}=t,s=e.indexOf("#");if(s>-1){let l=o.includes(e.slice(s))?e.slice(s).length:1,a=o.slice(l);return a[0]!=="/"&&(a="/"+a),Tl(a,"")}return Tl(n,e)+r+o}function Yg(e,t,n,r){let o=[],s=[],i=null;const l=({state:d})=>{const h=Rc(e,location),v=n.value,_=t.value;let y=0;if(d){if(n.value=h,t.value=d,i&&i===v){i=null;return}y=_?d.position-_.position:0}else r(h);o.forEach(E=>{E(n.value,v,{delta:y,type:Ir.pop,direction:y?y>0?Sr.forward:Sr.back:Sr.unknown})})};function a(){i=n.value}function u(d){o.push(d);const h=()=>{const v=o.indexOf(d);v>-1&&o.splice(v,1)};return s.push(h),h}function f(){const{history:d}=window;d.state&&d.replaceState(ge({},d.state,{scroll:Fo()}),"")}function c(){for(const d of s)d();s=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:a,listen:u,destroy:c}}function Pl(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?Fo():null}}function Xg(e){const{history:t,location:n}=window,r={value:Rc(e,n)},o={value:t.state};o.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(a,u,f){const c=e.indexOf("#"),d=c>-1?(n.host&&document.querySelector("base")?e:e.slice(c))+a:Gg()+e+a;try{t[f?"replaceState":"pushState"](u,"",d),o.value=u}catch(h){console.error(h),n[f?"replace":"assign"](d)}}function i(a,u){const f=ge({},t.state,Pl(o.value.back,a,o.value.forward,!0),u,{position:o.value.position});s(a,f,!0),r.value=a}function l(a,u){const f=ge({},o.value,t.state,{forward:a,scroll:Fo()});s(f.current,f,!0);const c=ge({},Pl(r.value,a,null),{position:f.position+1},u);s(a,c,!1),r.value=a}return{location:r,state:o,push:l,replace:i}}function Zg(e){e=$g(e);const t=Xg(e),n=Yg(e,t.state,t.location,t.replace);function r(s,i=!0){i||n.pauseListeners(),history.go(s)}const o=ge({location:"",base:e,go:r,createHref:jg.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function Dc(e){return typeof e=="string"||e&&typeof e=="object"}function Nc(e){return typeof e=="string"||typeof e=="symbol"}const Vc=Symbol("");var Il;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Il||(Il={}));function zn(e,t){return ge(new Error,{type:e,[Vc]:!0},t)}function Rt(e,t){return e instanceof Error&&Vc in e&&(t==null||!!(e.type&t))}const Ll="[^/]+?",Jg={sensitive:!1,strict:!1,start:!0,end:!0},Qg=/[.+*?^${}()[\]/\\]/g;function em(e,t){const n=ge({},Jg,t),r=[];let o=n.start?"^":"";const s=[];for(const u of e){const f=u.length?[]:[90];n.strict&&!u.length&&(o+="/");for(let c=0;ct.length?t.length===1&&t[0]===80?1:-1:0}function Mc(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const nm={type:0,value:""},rm=/[a-zA-Z0-9_]/;function om(e){if(!e)return[[]];if(e==="/")return[[nm]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${u}": ${h}`)}let n=0,r=n;const o=[];let s;function i(){s&&o.push(s),s=[]}let l=0,a,u="",f="";function c(){u&&(n===0?s.push({type:0,value:u}):n===1||n===2||n===3?(s.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:u,regexp:f,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=a}for(;l{i(p)}:Er}function i(c){if(Nc(c)){const d=r.get(c);d&&(r.delete(c),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(c);d>-1&&(n.splice(d,1),c.record.name&&r.delete(c.record.name),c.children.forEach(i),c.alias.forEach(i))}}function l(){return n}function a(c){const d=um(c,n);n.splice(d,0,c),c.record.name&&!Vl(c)&&r.set(c.record.name,c)}function u(c,d){let h,v={},_,y;if("name"in c&&c.name){if(h=r.get(c.name),!h)throw zn(1,{location:c});y=h.record.name,v=ge(Dl(d.params,h.keys.filter(p=>!p.optional).concat(h.parent?h.parent.keys.filter(p=>p.optional):[]).map(p=>p.name)),c.params&&Dl(c.params,h.keys.map(p=>p.name))),_=h.stringify(v)}else if(c.path!=null)_=c.path,h=n.find(p=>p.re.test(_)),h&&(v=h.parse(_),y=h.record.name);else{if(h=d.name?r.get(d.name):n.find(p=>p.re.test(d.path)),!h)throw zn(1,{location:c,currentLocation:d});y=h.record.name,v=ge({},d.params,c.params),_=h.stringify(v)}const E=[];let k=h;for(;k;)E.unshift(k.record),k=k.parent;return{name:y,path:_,params:v,matched:E,meta:am(E)}}e.forEach(c=>s(c));function f(){n.length=0,r.clear()}return{addRoute:s,resolve:u,removeRoute:i,clearRoutes:f,getRoutes:l,getRecordMatcher:o}}function Dl(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Nl(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:lm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function lm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Vl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function am(e){return e.reduce((t,n)=>ge(t,n.meta),{})}function Ml(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function um(e,t){let n=0,r=t.length;for(;n!==r;){const s=n+r>>1;Mc(e,t[s])<0?r=s:n=s+1}const o=cm(e);return o&&(r=t.lastIndexOf(o,r-1)),r}function cm(e){let t=e;for(;t=t.parent;)if(Fc(t)&&Mc(e,t)===0)return t}function Fc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function fm(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;os&&Is(s)):[r&&Is(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function dm(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=ft(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const hm=Symbol(""),Hl=Symbol(""),Ho=Symbol(""),gi=Symbol(""),Rs=Symbol("");function ar(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Qt(e,t,n,r,o,s=i=>i()){const i=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((l,a)=>{const u=d=>{d===!1?a(zn(4,{from:n,to:t})):d instanceof Error?a(d):Dc(d)?a(zn(2,{from:t,to:d})):(i&&r.enterCallbacks[o]===i&&typeof d=="function"&&i.push(d),l())},f=s(()=>e.call(r&&r.instances[o],t,n,u));let c=Promise.resolve(f);e.length<3&&(c=c.then(u)),c.catch(d=>a(d))})}function fs(e,t,n,r,o=s=>s()){const s=[];for(const i of e)for(const l in i.components){let a=i.components[l];if(!(t!=="beforeRouteEnter"&&!i.instances[l]))if(wc(a)){const f=(a.__vccOpts||a)[t];f&&s.push(Qt(f,n,r,i,l,o))}else{let u=a();s.push(()=>u.then(f=>{if(!f)throw new Error(`Couldn't resolve component "${l}" at "${i.path}"`);const c=Eg(f)?f.default:f;i.mods[l]=f,i.components[l]=c;const h=(c.__vccOpts||c)[t];return h&&Qt(h,n,r,i,l,o)()}))}}return s}function Bl(e){const t=Qe(Ho),n=Qe(gi),r=F(()=>{const a=en(e.to);return t.resolve(a)}),o=F(()=>{const{matched:a}=r.value,{length:u}=a,f=a[u-1],c=n.matched;if(!f||!c.length)return-1;const d=c.findIndex(ln.bind(null,f));if(d>-1)return d;const h=$l(a[u-2]);return u>1&&$l(f)===h&&c[c.length-1].path!==h?c.findIndex(ln.bind(null,a[u-2])):d}),s=F(()=>o.value>-1&&vm(n.params,r.value.params)),i=F(()=>o.value>-1&&o.value===n.matched.length-1&&Lc(n.params,r.value.params));function l(a={}){return mm(a)?t[en(e.replace)?"replace":"push"](en(e.to)).catch(Er):Promise.resolve()}if(Mt){const a=jr();if(a){const u={route:r.value,isActive:s.value,isExactActive:i.value,error:null};a.__vrl_devtools=a.__vrl_devtools||[],a.__vrl_devtools.push(u),ac(()=>{u.route=r.value,u.isActive=s.value,u.isExactActive=i.value,u.error=Dc(en(e.to))?null:'Invalid "to" value'},{flush:"post"})}}return{route:r,href:F(()=>r.value.href),isActive:s,isExactActive:i,navigate:l}}const pm=pe({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Bl,setup(e,{slots:t}){const n=Br(Bl(e)),{options:r}=Qe(Ho),o=F(()=>({[Ul(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Ul(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:ue("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},s)}}}),gm=pm;function mm(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function vm(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!ft(o)||o.length!==r.length||r.some((s,i)=>s!==o[i]))return!1}return!0}function $l(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Ul=(e,t,n)=>e??t??n,_m=pe({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Qe(Rs),o=F(()=>e.route||r.value),s=Qe(Hl,0),i=F(()=>{let u=en(s);const{matched:f}=o.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),l=F(()=>o.value.matched[i.value]);An(Hl,F(()=>i.value+1)),An(hm,l),An(Rs,o);const a=ce();return Ue(()=>[a.value,l.value,e.name],([u,f,c],[d,h,v])=>{f&&(f.instances[c]=u,h&&h!==f&&u&&u===d&&(f.leaveGuards.size||(f.leaveGuards=h.leaveGuards),f.updateGuards.size||(f.updateGuards=h.updateGuards))),u&&f&&(!h||!ln(f,h)||!d)&&(f.enterCallbacks[c]||[]).forEach(_=>_(u))},{flush:"post"}),()=>{const u=o.value,f=e.name,c=l.value,d=c&&c.components[f];if(!d)return jl(n.default,{Component:d,route:u});const h=c.props[f],v=h?h===!0?u.params:typeof h=="function"?h(u):h:null,y=ue(d,ge({},v,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(c.instances[f]=null)},ref:a}));if(Mt&&y.ref){const E={depth:i.value,name:c.name,path:c.path,meta:c.meta};(ft(y.ref)?y.ref.map(p=>p.i):[y.ref.i]).forEach(p=>{p.__vrv_devtools=E})}return jl(n.default,{Component:y,route:u})||y}}});function jl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const ym=_m;function ur(e,t){const n=ge({},e,{matched:e.matched.map(r=>Pm(r,["instances","children","aliasOf"]))});return{_custom:{type:null,readOnly:!0,display:e.fullPath,tooltip:t,value:n}}}function Jr(e){return{_custom:{display:e}}}let bm=0;function Em(e,t,n){if(t.__hasDevtools)return;t.__hasDevtools=!0;const r=bm++;bg({id:"org.vuejs.router"+(r?"."+r:""),label:"Vue Router",packageName:"vue-router",homepage:"https://router.vuejs.org",logo:"https://router.vuejs.org/logo.png",componentStateTypes:["Routing"],app:e},o=>{typeof o.now!="function"&&console.warn("[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."),o.on.inspectComponent((f,c)=>{f.instanceData&&f.instanceData.state.push({type:"Routing",key:"$route",editable:!1,value:ur(t.currentRoute.value,"Current Route")})}),o.on.visitComponentTree(({treeNode:f,componentInstance:c})=>{if(c.__vrv_devtools){const d=c.__vrv_devtools;f.tags.push({label:(d.name?`${d.name.toString()}: `:"")+d.path,textColor:0,tooltip:"This component is rendered by <router-view>",backgroundColor:Hc})}ft(c.__vrl_devtools)&&(c.__devtoolsApi=o,c.__vrl_devtools.forEach(d=>{let h=d.route.path,v=Uc,_="",y=0;d.error?(h=d.error,v=wm,y=Tm):d.isExactActive?(v=$c,_="This is exactly active"):d.isActive&&(v=Bc,_="This link is active"),f.tags.push({label:h,textColor:y,tooltip:_,backgroundColor:v})}))}),Ue(t.currentRoute,()=>{a(),o.notifyComponentUpdate(),o.sendInspectorTree(l),o.sendInspectorState(l)});const s="router:navigations:"+r;o.addTimelineLayer({id:s,label:`Router${r?" "+r:""} Navigations`,color:4237508}),t.onError((f,c)=>{o.addTimelineEvent({layerId:s,event:{title:"Error during Navigation",subtitle:c.fullPath,logType:"error",time:o.now(),data:{error:f},groupId:c.meta.__navigationId}})});let i=0;t.beforeEach((f,c)=>{const d={guard:Jr("beforeEach"),from:ur(c,"Current Location during this navigation"),to:ur(f,"Target location")};Object.defineProperty(f.meta,"__navigationId",{value:i++}),o.addTimelineEvent({layerId:s,event:{time:o.now(),title:"Start of navigation",subtitle:f.fullPath,data:d,groupId:f.meta.__navigationId}})}),t.afterEach((f,c,d)=>{const h={guard:Jr("afterEach")};d?(h.failure={_custom:{type:Error,readOnly:!0,display:d?d.message:"",tooltip:"Navigation Failure",value:d}},h.status=Jr("❌")):h.status=Jr("✅"),h.from=ur(c,"Current Location during this navigation"),h.to=ur(f,"Target location"),o.addTimelineEvent({layerId:s,event:{title:"End of navigation",subtitle:f.fullPath,time:o.now(),data:h,logType:d?"warning":"default",groupId:f.meta.__navigationId}})});const l="router-inspector:"+r;o.addInspector({id:l,label:"Routes"+(r?" "+r:""),icon:"book",treeFilterPlaceholder:"Search routes"});function a(){if(!u)return;const f=u;let c=n.getRoutes().filter(d=>!d.parent||!d.parent.record.components);c.forEach(Kc),f.filter&&(c=c.filter(d=>Ds(d,f.filter.toLowerCase()))),c.forEach(d=>zc(d,t.currentRoute.value)),f.rootNodes=c.map(jc)}let u;o.on.getInspectorTree(f=>{u=f,f.app===e&&f.inspectorId===l&&a()}),o.on.getInspectorState(f=>{if(f.app===e&&f.inspectorId===l){const d=n.getRoutes().find(h=>h.record.__vd_id===f.nodeId);d&&(f.state={options:km(d)})}}),o.sendInspectorTree(l),o.sendInspectorState(l)})}function Sm(e){return e.optional?e.repeatable?"*":"?":e.repeatable?"+":""}function km(e){const{record:t}=e,n=[{editable:!1,key:"path",value:t.path}];return t.name!=null&&n.push({editable:!1,key:"name",value:t.name}),n.push({editable:!1,key:"regexp",value:e.re}),e.keys.length&&n.push({editable:!1,key:"keys",value:{_custom:{type:null,readOnly:!0,display:e.keys.map(r=>`${r.name}${Sm(r)}`).join(" "),tooltip:"Param keys",value:e.keys}}}),t.redirect!=null&&n.push({editable:!1,key:"redirect",value:t.redirect}),e.alias.length&&n.push({editable:!1,key:"aliases",value:e.alias.map(r=>r.record.path)}),Object.keys(e.record.meta).length&&n.push({editable:!1,key:"meta",value:e.record.meta}),n.push({key:"score",editable:!1,value:{_custom:{type:null,readOnly:!0,display:e.score.map(r=>r.join(", ")).join(" | "),tooltip:"Score used to sort routes",value:e.score}}}),n}const Hc=15485081,Bc=2450411,$c=8702998,Am=2282478,Uc=16486972,Cm=6710886,wm=16704226,Tm=12131356;function jc(e){const t=[],{record:n}=e;n.name!=null&&t.push({label:String(n.name),textColor:0,backgroundColor:Am}),n.aliasOf&&t.push({label:"alias",textColor:0,backgroundColor:Uc}),e.__vd_match&&t.push({label:"matches",textColor:0,backgroundColor:Hc}),e.__vd_exactActive&&t.push({label:"exact",textColor:0,backgroundColor:$c}),e.__vd_active&&t.push({label:"active",textColor:0,backgroundColor:Bc}),n.redirect&&t.push({label:typeof n.redirect=="string"?`redirect: ${n.redirect}`:"redirects",textColor:16777215,backgroundColor:Cm});let r=n.__vd_id;return r==null&&(r=String(Om++),n.__vd_id=r),{id:r,label:n.path,tags:t,children:e.children.map(jc)}}let Om=0;const xm=/^\/(.*)\/([a-z]*)$/;function zc(e,t){const n=t.matched.length&&ln(t.matched[t.matched.length-1],e.record);e.__vd_exactActive=e.__vd_active=n,n||(e.__vd_active=t.matched.some(r=>ln(r,e.record))),e.children.forEach(r=>zc(r,t))}function Kc(e){e.__vd_match=!1,e.children.forEach(Kc)}function Ds(e,t){const n=String(e.re).match(xm);if(e.__vd_match=!1,!n||n.length<3)return!1;if(new RegExp(n[1].replace(/\$$/,""),n[2]).test(t))return e.children.forEach(i=>Ds(i,t)),e.record.path!=="/"||t==="/"?(e.__vd_match=e.re.test(t),!0):!1;const o=e.record.path.toLowerCase(),s=jn(o);return!t.startsWith("/")&&(s.includes(t)||o.includes(t))||s.startsWith(t)||o.startsWith(t)||e.record.name&&String(e.record.name).includes(t)?!0:e.children.some(i=>Ds(i,t))}function Pm(e,t){const n={};for(const r in e)t.includes(r)||(n[r]=e[r]);return n}function Im(e){const t=im(e.routes,e),n=e.parseQuery||fm,r=e.stringifyQuery||Fl,o=e.history,s=ar(),i=ar(),l=ar(),a=Pt(Nt);let u=Nt;Mt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=us.bind(null,O=>""+O),c=us.bind(null,Dg),d=us.bind(null,jn);function h(O,q){let z,J;return Nc(O)?(z=t.getRecordMatcher(O),J=q):J=O,t.addRoute(J,z)}function v(O){const q=t.getRecordMatcher(O);q&&t.removeRoute(q)}function _(){return t.getRoutes().map(O=>O.record)}function y(O){return!!t.getRecordMatcher(O)}function E(O,q){if(q=ge({},q||a.value),typeof O=="string"){const m=cs(n,O,q.path),S=t.resolve({path:m.path},q),x=o.createHref(m.fullPath);return ge(m,S,{params:d(S.params),hash:jn(m.hash),redirectedFrom:void 0,href:x})}let z;if(O.path!=null)z=ge({},O,{path:cs(n,O.path,q.path).path});else{const m=ge({},O.params);for(const S in m)m[S]==null&&delete m[S];z=ge({},O,{params:c(m)}),q.params=c(q.params)}const J=t.resolve(z,q),de=O.hash||"";J.params=f(d(J.params));const Ee=Mg(r,ge({},O,{hash:Ig(de),path:J.path})),g=o.createHref(Ee);return ge({fullPath:Ee,hash:de,query:r===Fl?dm(O.query):O.query||{}},J,{redirectedFrom:void 0,href:g})}function k(O){return typeof O=="string"?cs(n,O,a.value.path):ge({},O)}function p(O,q){if(u!==O)return zn(8,{from:q,to:O})}function b(O){return M(O)}function R(O){return b(ge(k(O),{replace:!0}))}function j(O){const q=O.matched[O.matched.length-1];if(q&&q.redirect){const{redirect:z}=q;let J=typeof z=="function"?z(O):z;return typeof J=="string"&&(J=J.includes("?")||J.includes("#")?J=k(J):{path:J},J.params={}),ge({query:O.query,hash:O.hash,params:J.path!=null?{}:O.params},J)}}function M(O,q){const z=u=E(O),J=a.value,de=O.state,Ee=O.force,g=O.replace===!0,m=j(z);if(m)return M(ge(k(m),{state:typeof m=="object"?ge({},de,m.state):de,force:Ee,replace:g}),q||z);const S=z;S.redirectedFrom=q;let x;return!Ee&&Fg(r,J,z)&&(x=zn(16,{to:S,from:J}),Oe(J,J,!0,!1)),(x?Promise.resolve(x):T(S,J)).catch(w=>Rt(w)?Rt(w,2)?w:ye(w):K(w,S,J)).then(w=>{if(w){if(Rt(w,2))return M(ge({replace:g},k(w.to),{state:typeof w.to=="object"?ge({},de,w.to.state):de,force:Ee}),q||S)}else w=C(S,J,!0,g,de);return B(S,J,w),w})}function A(O,q){const z=p(O,q);return z?Promise.reject(z):Promise.resolve()}function U(O){const q=_t.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(O):O()}function T(O,q){let z;const[J,de,Ee]=Lm(O,q);z=fs(J.reverse(),"beforeRouteLeave",O,q);for(const m of J)m.leaveGuards.forEach(S=>{z.push(Qt(S,O,q))});const g=A.bind(null,O,q);return z.push(g),nt(z).then(()=>{z=[];for(const m of s.list())z.push(Qt(m,O,q));return z.push(g),nt(z)}).then(()=>{z=fs(de,"beforeRouteUpdate",O,q);for(const m of de)m.updateGuards.forEach(S=>{z.push(Qt(S,O,q))});return z.push(g),nt(z)}).then(()=>{z=[];for(const m of Ee)if(m.beforeEnter)if(ft(m.beforeEnter))for(const S of m.beforeEnter)z.push(Qt(S,O,q));else z.push(Qt(m.beforeEnter,O,q));return z.push(g),nt(z)}).then(()=>(O.matched.forEach(m=>m.enterCallbacks={}),z=fs(Ee,"beforeRouteEnter",O,q,U),z.push(g),nt(z))).then(()=>{z=[];for(const m of i.list())z.push(Qt(m,O,q));return z.push(g),nt(z)}).catch(m=>Rt(m,8)?m:Promise.reject(m))}function B(O,q,z){l.list().forEach(J=>U(()=>J(O,q,z)))}function C(O,q,z,J,de){const Ee=p(O,q);if(Ee)return Ee;const g=q===Nt,m=Mt?history.state:{};z&&(J||g?o.replace(O.fullPath,ge({scroll:g&&m&&m.scroll},de)):o.push(O.fullPath,de)),a.value=O,Oe(O,q,z,g),ye()}let D;function Z(){D||(D=o.listen((O,q,z)=>{if(!tt.listening)return;const J=E(O),de=j(J);if(de){M(ge(de,{replace:!0}),J).catch(Er);return}u=J;const Ee=a.value;Mt&&Wg(xl(Ee.fullPath,z.delta),Fo()),T(J,Ee).catch(g=>Rt(g,12)?g:Rt(g,2)?(M(g.to,J).then(m=>{Rt(m,20)&&!z.delta&&z.type===Ir.pop&&o.go(-1,!1)}).catch(Er),Promise.reject()):(z.delta&&o.go(-z.delta,!1),K(g,J,Ee))).then(g=>{g=g||C(J,Ee,!1),g&&(z.delta&&!Rt(g,8)?o.go(-z.delta,!1):z.type===Ir.pop&&Rt(g,20)&&o.go(-1,!1)),B(J,Ee,g)}).catch(Er)}))}let ee=ar(),I=ar(),N;function K(O,q,z){ye(O);const J=I.list();return J.length?J.forEach(de=>de(O,q,z)):console.error(O),Promise.reject(O)}function ae(){return N&&a.value!==Nt?Promise.resolve():new Promise((O,q)=>{ee.add([O,q])})}function ye(O){return N||(N=!O,Z(),ee.list().forEach(([q,z])=>O?z(O):q()),ee.reset()),O}function Oe(O,q,z,J){const{scrollBehavior:de}=e;if(!Mt||!de)return Promise.resolve();const Ee=!z&&qg(xl(O.fullPath,0))||(J||!z)&&history.state&&history.state.scroll||null;return Jn().then(()=>de(O,q,Ee)).then(g=>g&&Kg(g)).catch(g=>K(g,O,q))}const be=O=>o.go(O);let et;const _t=new Set,tt={currentRoute:a,listening:!0,addRoute:h,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:y,getRoutes:_,resolve:E,options:e,push:b,replace:R,go:be,back:()=>be(-1),forward:()=>be(1),beforeEach:s.add,beforeResolve:i.add,afterEach:l.add,onError:I.add,isReady:ae,install(O){const q=this;O.component("RouterLink",gm),O.component("RouterView",ym),O.config.globalProperties.$router=q,Object.defineProperty(O.config.globalProperties,"$route",{enumerable:!0,get:()=>en(a)}),Mt&&!et&&a.value===Nt&&(et=!0,b(o.location).catch(de=>{}));const z={};for(const de in Nt)Object.defineProperty(z,de,{get:()=>a.value[de],enumerable:!0});O.provide(Ho,q),O.provide(gi,Tu(z)),O.provide(Rs,a);const J=O.unmount;_t.add(O),O.unmount=function(){_t.delete(O),_t.size<1&&(u=Nt,D&&D(),D=null,a.value=Nt,et=!1,N=!1),J()},Mt&&Em(O,q,t)}};function nt(O){return O.reduce((q,z)=>q.then(()=>U(z)),Promise.resolve())}return tt}function Lm(e,t){const n=[],r=[],o=[],s=Math.max(t.matched.length,e.matched.length);for(let i=0;iln(u,l))?r.push(l):n.push(l));const a=e.matched[i];a&&(t.matched.find(u=>ln(u,a))||o.push(a))}return[n,r,o]}function cn(){return Qe(Ho)}function Kt(e){return Qe(gi)}var mi=Symbol(""),It=()=>{const e=Qe(mi);if(!e)throw new Error("useClientData() is called without provider.");return e},Rm=()=>It().pageComponent,Qn=()=>It().pageData,kt=()=>It().pageFrontmatter,Dm=()=>It().pageHead,Nm=()=>It().pageLang,Vm=()=>It().pageLayout,er=()=>It().routeLocale,Mm=()=>It().routes,Wc=()=>It().siteData,vi=()=>It().siteLocaleData,Fm=Symbol(""),Ns=Pt(fg),Hn=Pt(dg),qc=(e,t)=>{const n=rg(e,t);if(Hn.value[n])return n;const r=encodeURI(n);if(Hn.value[r])return r;const o=Ns.value[n]||Ns.value[r];return o||n},Lr=(e,t)=>{const{pathname:n,hashAndQueries:r}=Sc(e),o=qc(n,t),s=o+r;return Hn.value[o]?{...Hn.value[o],path:s,notFound:!1}:{...Hn.value["/404.html"],path:s,notFound:!0}},Hm=(e,t)=>{const{pathname:n,hashAndQueries:r}=Sc(e);return qc(n,t)+r},Bm=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},Bo=pe({name:"RouteLink",props:{to:{type:String,required:!0},active:Boolean,activeClass:{type:String,default:"route-link-active"}},slots:Object,setup(e,{slots:t}){const n=cn(),r=Kt(),o=F(()=>e.to.startsWith("#")||e.to.startsWith("?")?e.to:`/qcloud-im-server-sdk-java/${Hm(e.to,r.path).substring(1)}`);return()=>ue("a",{class:["route-link",{[e.activeClass]:e.active}],href:o.value,onClick:(s={})=>{Bm(s)&&n.push(e.to).catch()}},t.default())}}),tr=pe({name:"AutoLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=Wd(e,"config"),r=Kt(),o=Wc(),s=F(()=>Kr(n.value.link)),i=F(()=>n.value.target||(s.value?"_blank":void 0)),l=F(()=>i.value==="_blank"),a=F(()=>!s.value&&!l.value),u=F(()=>n.value.rel||(l.value?"noopener noreferrer":null)),f=F(()=>n.value.ariaLabel??n.value.text),c=F(()=>{if(n.value.exact)return!1;const h=Object.keys(o.value.locales);return h.length?h.every(v=>v!==n.value.link):n.value.link!=="/"}),d=F(()=>a.value?n.value.activeMatch?(n.value.activeMatch instanceof RegExp?n.value.activeMatch:new RegExp(n.value.activeMatch,"u")).test(r.path):c.value?r.path.startsWith(n.value.link):r.path===n.value.link:!1);return()=>{const{before:h,after:v,default:_}=t,y=(_==null?void 0:_(n.value))??[h==null?void 0:h(n.value),n.value.text,v==null?void 0:v(n.value)];return a.value?ue(Bo,{class:"auto-link",to:n.value.link,active:d.value,"aria-label":f.value},()=>y):ue("a",{class:"auto-link external-link",href:n.value.link,"aria-label":f.value,rel:u.value,target:i.value},y)}}}),_i=pe({name:"ClientOnly",setup(e,t){const n=ce(!1);return Ye(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),yi=pe({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=Rm(),n=F(()=>{if(!e.path)return t.value;const r=Lr(e.path);return Eh(async()=>r.loader().then(({comp:o})=>o))});return()=>ue(n.value)}}),$m="Layout",Um="en-US",gn=Br({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageHead:(e,t,n)=>{const r=vt(t.description)?t.description:n.description,o=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return ug(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||Um,resolvePageLayout:(e,t)=>{const n=vt(e.frontmatter.layout)?e.frontmatter.layout:$m;if(!t[n])throw new Error(`[vuepress] Cannot resolve layout: ${n}`);return t[n]},resolveRouteLocale:(e,t)=>og(e,decodeURI(t)),resolveSiteLocaleData:({base:e,locales:t,...n},r)=>{var o;return{...n,...t[r],head:[...((o=t[r])==null?void 0:o.head)??[],...n.head]}}}),Wt=(e={})=>e,bi=e=>Mo(e)?e:`/qcloud-im-server-sdk-java/${Ac(e)}`;function $o(e){return du()?(yd(e),!0):!1}function St(e){return typeof e=="function"?e():en(e)}const Ei=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const jm=Object.prototype.toString,zm=e=>jm.call(e)==="[object Object]",Vs=()=>{};function Gc(e,t){function n(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(s)})}return n}const Yc=e=>e();function Km(e,t={}){let n,r,o=Vs;const s=l=>{clearTimeout(l),o(),o=Vs};return l=>{const a=St(e),u=St(t.maxWait);return n&&s(n),a<=0||u!==void 0&&u<=0?(r&&(s(r),r=null),Promise.resolve(l())):new Promise((f,c)=>{o=t.rejectOnCancel?c:f,u&&!r&&(r=setTimeout(()=>{n&&s(n),r=null,f(l())},u)),n=setTimeout(()=>{r&&s(r),r=null,f(l())},a)})}}function Wm(e=Yc){const t=ce(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:Po(t),pause:n,resume:r,eventFilter:o}}function qm(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function Gm(e){return jr()}function Ym(e,t=200,n={}){return Gc(Km(t,n),e)}function Xm(e,t,n={}){const{eventFilter:r=Yc,...o}=n;return Ue(e,Gc(r,t),o)}function Zm(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:s,pause:i,resume:l,isActive:a}=Wm(r);return{stop:Xm(e,t,{...o,eventFilter:s}),pause:i,resume:l,isActive:a}}function Si(e,t=!0,n){Gm()?Ye(e,n):t?e():Jn(e)}function Jm(e,t,n={}){const{immediate:r=!0}=n,o=ce(!1);let s=null;function i(){s&&(clearTimeout(s),s=null)}function l(){o.value=!1,i()}function a(...u){i(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...u)},St(t))}return r&&(o.value=!0,Ei&&a()),$o(l),{isPending:Po(o),start:a,stop:l}}function Xc(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=De(e),s=ce(e);function i(l){if(arguments.length)return s.value=l,s.value;{const a=St(n);return s.value=s.value===a?St(r):a,s.value}}return o?i:[s,i]}const an=Ei?window:void 0,Zc=Ei?window.navigator:void 0;function bn(e){var t;const n=St(e);return(t=n==null?void 0:n.$el)!=null?t:n}function dt(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=an):[t,n,r,o]=e,!t)return Vs;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const s=[],i=()=>{s.forEach(f=>f()),s.length=0},l=(f,c,d,h)=>(f.addEventListener(c,d,h),()=>f.removeEventListener(c,d,h)),a=Ue(()=>[bn(t),St(o)],([f,c])=>{if(i(),!f)return;const d=zm(c)?{...c}:c;s.push(...n.flatMap(h=>r.map(v=>l(f,h,v,d))))},{immediate:!0,flush:"post"}),u=()=>{a(),i()};return $o(u),u}function Qm(){const e=ce(!1),t=jr();return t&&Ye(()=>{e.value=!0},t),e}function Uo(e){const t=Qm();return F(()=>(t.value,!!e()))}function ki(e,t={}){const{window:n=an}=t,r=Uo(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const s=ce(!1),i=u=>{s.value=u.matches},l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",i):o.removeListener(i))},a=ac(()=>{r.value&&(l(),o=n.matchMedia(St(e)),"addEventListener"in o?o.addEventListener("change",i):o.addListener(i),s.value=o.matches)});return $o(()=>{a(),l(),o=void 0}),s}function zl(e,t={}){const{controls:n=!1,navigator:r=Zc}=t,o=Uo(()=>r&&"permissions"in r),s=Pt(),i=typeof e=="string"?{name:e}:e,l=Pt(),a=()=>{var f,c;l.value=(c=(f=s.value)==null?void 0:f.state)!=null?c:"prompt"};dt(s,"change",a);const u=qm(async()=>{if(o.value){if(!s.value)try{s.value=await r.permissions.query(i)}catch{s.value=void 0}finally{a()}if(n)return fe(s.value)}});return u(),n?{state:l,isSupported:o,query:u}:l}function ev(e={}){const{navigator:t=Zc,read:n=!1,source:r,copiedDuring:o=1500,legacy:s=!1}=e,i=Uo(()=>t&&"clipboard"in t),l=zl("clipboard-read"),a=zl("clipboard-write"),u=F(()=>i.value||s),f=ce(""),c=ce(!1),d=Jm(()=>c.value=!1,o);function h(){i.value&&E(l.value)?t.clipboard.readText().then(k=>{f.value=k}):f.value=y()}u.value&&n&&dt(["copy","cut"],h);async function v(k=St(r)){u.value&&k!=null&&(i.value&&E(a.value)?await t.clipboard.writeText(k):_(k),f.value=k,c.value=!0,d.start())}function _(k){const p=document.createElement("textarea");p.value=k??"",p.style.position="absolute",p.style.opacity="0",document.body.appendChild(p),p.select(),document.execCommand("copy"),p.remove()}function y(){var k,p,b;return(b=(p=(k=document==null?void 0:document.getSelection)==null?void 0:k.call(document))==null?void 0:p.toString())!=null?b:""}function E(k){return k==="granted"||k==="prompt"}return{isSupported:u,text:f,copied:c,copy:v}}const Qr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},eo="__vueuse_ssr_handlers__",tv=nv();function nv(){return eo in Qr||(Qr[eo]=Qr[eo]||{}),Qr[eo]}function rv(e,t){return tv[e]||t}function ov(e){return ki("(prefers-color-scheme: dark)",e)}function sv(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const iv={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Kl="vueuse-storage";function Ai(e,t,n,r={}){var o;const{flush:s="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:a=!0,mergeDefaults:u=!1,shallow:f,window:c=an,eventFilter:d,onError:h=T=>{console.error(T)},initOnMounted:v}=r,_=(f?Pt:ce)(typeof t=="function"?t():t);if(!n)try{n=rv("getDefaultStorage",()=>{var T;return(T=an)==null?void 0:T.localStorage})()}catch(T){h(T)}if(!n)return _;const y=St(t),E=sv(y),k=(o=r.serializer)!=null?o:iv[E],{pause:p,resume:b}=Zm(_,()=>j(_.value),{flush:s,deep:i,eventFilter:d});c&&l&&Si(()=>{n instanceof Storage?dt(c,"storage",A):dt(c,Kl,U),v&&A()}),v||A();function R(T,B){if(c){const C={key:e,oldValue:T,newValue:B,storageArea:n};c.dispatchEvent(n instanceof Storage?new StorageEvent("storage",C):new CustomEvent(Kl,{detail:C}))}}function j(T){try{const B=n.getItem(e);if(T==null)R(B,null),n.removeItem(e);else{const C=k.write(T);B!==C&&(n.setItem(e,C),R(B,C))}}catch(B){h(B)}}function M(T){const B=T?T.newValue:n.getItem(e);if(B==null)return a&&y!=null&&n.setItem(e,k.write(y)),y;if(!T&&u){const C=k.read(B);return typeof u=="function"?u(C,y):E==="object"&&!Array.isArray(C)?{...y,...C}:C}else return typeof B!="string"?B:k.read(B)}function A(T){if(!(T&&T.storageArea!==n)){if(T&&T.key==null){_.value=y;return}if(!(T&&T.key!==e)){p();try{(T==null?void 0:T.newValue)!==k.write(_.value)&&(_.value=M(T))}catch(B){h(B)}finally{T?Jn(b):b()}}}}function U(T){A(T.detail)}return _}function lv(e,t,n={}){const{window:r=an,...o}=n;let s;const i=Uo(()=>r&&"ResizeObserver"in r),l=()=>{s&&(s.disconnect(),s=void 0)},a=F(()=>{const c=St(e);return Array.isArray(c)?c.map(d=>bn(d)):[bn(c)]}),u=Ue(a,c=>{if(l(),i.value&&r){s=new ResizeObserver(t);for(const d of c)d&&s.observe(d,o)}},{immediate:!0,flush:"post"}),f=()=>{l(),u()};return $o(f),{isSupported:i,stop:f}}function av(e,t={width:0,height:0},n={}){const{window:r=an,box:o="content-box"}=n,s=F(()=>{var c,d;return(d=(c=bn(e))==null?void 0:c.namespaceURI)==null?void 0:d.includes("svg")}),i=ce(t.width),l=ce(t.height),{stop:a}=lv(e,([c])=>{const d=o==="border-box"?c.borderBoxSize:o==="content-box"?c.contentBoxSize:c.devicePixelContentBoxSize;if(r&&s.value){const h=bn(e);if(h){const v=h.getBoundingClientRect();i.value=v.width,l.value=v.height}}else if(d){const h=Array.isArray(d)?d:[d];i.value=h.reduce((v,{inlineSize:_})=>v+_,0),l.value=h.reduce((v,{blockSize:_})=>v+_,0)}else i.value=c.contentRect.width,l.value=c.contentRect.height},n);Si(()=>{const c=bn(e);c&&(i.value="offsetWidth"in c?c.offsetWidth:t.width,l.value="offsetHeight"in c?c.offsetHeight:t.height)});const u=Ue(()=>bn(e),c=>{i.value=c?t.width:0,l.value=c?t.height:0});function f(){a(),u()}return{width:i,height:l,stop:f}}function uv(e={}){const{window:t=an,behavior:n="auto"}=e;if(!t)return{x:ce(0),y:ce(0)};const r=ce(t.scrollX),o=ce(t.scrollY),s=F({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=F({get(){return o.value},set(l){scrollTo({top:l,behavior:n})}});return dt(t,"scroll",()=>{r.value=t.scrollX,o.value=t.scrollY},{capture:!1,passive:!0}),{x:s,y:i}}function cv(e={}){const{window:t=an,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:o=!0,includeScrollbar:s=!0,type:i="inner"}=e,l=ce(n),a=ce(r),u=()=>{t&&(i==="outer"?(l.value=t.outerWidth,a.value=t.outerHeight):s?(l.value=t.innerWidth,a.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,a.value=t.document.documentElement.clientHeight))};if(u(),Si(u),dt("resize",u,{passive:!0}),o){const f=ki("(orientation: portrait)");Ue(f,()=>u())}return{width:l,height:a}}const Wl=async(e,t)=>{const{path:n,query:r}=e.currentRoute.value,{scrollBehavior:o}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:n,query:r,hash:t}),e.options.scrollBehavior=o},fv=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:r=5})=>{const o=cn();dt("scroll",Ym(()=>{var v,_;const i=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(i-0)c.some(E=>E.hash===y.hash));for(let y=0;y=(((v=E.parentElement)==null?void 0:v.offsetTop)??0)-r,b=!k||i<(((_=k.parentElement)==null?void 0:_.offsetTop)??0)-r;if(!(p&&b))continue;const j=decodeURIComponent(o.currentRoute.value.hash),M=decodeURIComponent(E.hash);if(j===M)return;if(f){for(let A=y+1;A{if(t===!1)return[];const[n,r]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t,o=e.filter(i=>i.level>=n&&i.level<=r),s=[];e:for(let i=0;i=0;a--){const u=o[a];if(u.level{let n;if(t.length){const r=e.cloneNode(!0);r.querySelectorAll(t.join(",")).forEach(o=>{o.remove()}),n=r.textContent||""}else n=e.textContent||"";return n.trim()},bv=({selector:e=[...new Array(6)].map((r,o)=>`[vp-content] h${o+1}`).join(","),levels:t=2,ignore:n=[]}={})=>{const r=Array.from(document.querySelectorAll(e)).filter(o=>o.id&&o.hasChildNodes()).map(o=>{const s=Number(o.tagName[1]);return{element:o,title:yv(o,n),link:`#${o.id}`,slug:o.id,level:s}});return _v(r,t)},Jc=(e,t)=>{var r;const n=(r=jr())==null?void 0:r.appContext.components;return n?e in n||ot(e)in n||Hr(ot(e))in n:!1},Qc=e=>new Promise(t=>{setTimeout(t,e)}),ef=e=>{const t=er();return F(()=>e[t.value]??{})},Ev=()=>{const e=Mm();return F(()=>Object.keys(e.value))},Sv=e=>typeof e<"u",tf=(e,t)=>vt(e)&&e.startsWith(t),{keys:kv}=Object,nf=e=>tf(e,"/");var Av={"/":{backToTop:"返回顶部"}};const Cv=pe({name:"BackToTop",setup(){const e=kt(),t=ef(Av),n=Pt(),{height:r}=av(n),{height:o}=cv(),{y:s}=uv(),i=F(()=>e.value.backToTop!==!1&&s.value>100),l=F(()=>s.value/(r.value-o.value)*100);return Ye(()=>{n.value=document.body}),()=>ue(di,{name:"back-to-top"},()=>i.value?ue("button",{type:"button",class:"vp-back-to-top-button","aria-label":t.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[ue("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":l.value},ue("svg",ue("circle",{cx:"26",cy:"26",r:"24",fill:"none",stroke:"currentColor","stroke-width":"4","stroke-dasharray":`${Math.PI*l.value*.48} ${Math.PI*(100-l.value)*.48}`}))),ue("div",{class:"back-to-top-icon"})]):null)}}),wv=Wt({rootComponents:[Cv]}),Tv=Object.freeze(Object.defineProperty({__proto__:null,default:wv},Symbol.toStringTag,{value:"Module"})),Ov=/language-(shellscript|shell|bash|sh|zsh)/,xv=({delay:e=500,duration:t=2e3,locales:n,selector:r,showInMobile:o,ignoreSelector:s=[],transform:i})=>{const l=ki("(max-width: 419px)"),a=F(()=>!l.value||o),u=ef(n),f=Qn(),c=y=>{var k;if(y.hasAttribute("copy-code"))return;const E=document.createElement("button");E.type="button",E.classList.add("vp-copy-code-button"),E.setAttribute("aria-label",u.value.copy),E.setAttribute("data-copied",u.value.copied),(k=y.parentElement)==null||k.insertBefore(E,y),y.setAttribute("copy-code","")};Ue(()=>[f.value.path,a.value],async()=>{document.body.classList.toggle("no-copy-code",!a.value),a.value&&(await Jn(),await Qc(e),document.querySelectorAll(r.join(",")).forEach(c))},{immediate:!0});const{copy:h}=ev({legacy:!0}),v=new WeakMap,_=async(y,E,k)=>{const p=E.cloneNode(!0);s.length&&p.querySelectorAll(s.join(",")).forEach(j=>{j.remove()}),i&&i(p);let b=p.textContent||"";if(Ov.test(y.className)&&(b=b.replace(/^ *(\$|>) /gm,"")),await h(b),t<=0)return;k.classList.add("copied"),clearTimeout(v.get(k));const R=setTimeout(()=>{k.classList.remove("copied"),k.blur(),v.delete(k)},t);v.set(k,R)};dt("click",y=>{const E=y.target;if(a.value&&E.matches('div[class*="language-"] > button.vp-copy-code-button')){const k=E.parentElement,p=E.nextElementSibling;if(!k||!p)return;_(k,p,E)}})};var Pv=[],Iv={"/":{copy:"复制代码",copied:"已复制"}},Lv=['[vp-content] div[class*="language-"] pre'];const Rv=Wt({setup:()=>{xv({selector:Lv,ignoreSelector:Pv,locales:Iv,duration:2e3,delay:500,showInMobile:!1})}}),Dv=Object.freeze(Object.defineProperty({__proto__:null,default:Rv},Symbol.toStringTag,{value:"Module"})),Nv=Wt({setup(){dt("beforeprint",()=>{document.querySelectorAll("details").forEach(e=>{e.open=!0})})}}),Vv=Object.freeze(Object.defineProperty({__proto__:null,default:Nv},Symbol.toStringTag,{value:"Module"}));/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var vn=Object.assign||function(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},r=window.Promise||function(C){function D(){}C(D,D)},o=function(C){var D=C.target;if(D===U){v();return}p.indexOf(D)!==-1&&_({target:D})},s=function(){if(!(R||!A.original)){var C=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(j-C)>M.scrollOffset&&setTimeout(v,150)}},i=function(C){var D=C.key||C.keyCode;(D==="Escape"||D==="Esc"||D===27)&&v()},l=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=C;if(C.background&&(U.style.background=C.background),C.container&&C.container instanceof Object&&(D.container=vn({},M.container,C.container)),C.template){var Z=ao(C.template)?C.template:document.querySelector(C.template);D.template=Z}return M=vn({},M,D),p.forEach(function(ee){ee.dispatchEvent(xn("medium-zoom:update",{detail:{zoom:T}}))}),T},a=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e(vn({},M,C))},u=function(){for(var C=arguments.length,D=Array(C),Z=0;Z0?D.reduce(function(I,N){return[].concat(I,Gl(N))},[]):p;return ee.forEach(function(I){I.classList.remove("medium-zoom-image"),I.dispatchEvent(xn("medium-zoom:detach",{detail:{zoom:T}}))}),p=p.filter(function(I){return ee.indexOf(I)===-1}),T},c=function(C,D){var Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return p.forEach(function(ee){ee.addEventListener("medium-zoom:"+C,D,Z)}),b.push({type:"medium-zoom:"+C,listener:D,options:Z}),T},d=function(C,D){var Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return p.forEach(function(ee){ee.removeEventListener("medium-zoom:"+C,D,Z)}),b=b.filter(function(ee){return!(ee.type==="medium-zoom:"+C&&ee.listener.toString()===D.toString())}),T},h=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=C.target,Z=function(){var I={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},N=void 0,K=void 0;if(M.container)if(M.container instanceof Object)I=vn({},I,M.container),N=I.width-I.left-I.right-M.margin*2,K=I.height-I.top-I.bottom-M.margin*2;else{var ae=ao(M.container)?M.container:document.querySelector(M.container),ye=ae.getBoundingClientRect(),Oe=ye.width,be=ye.height,et=ye.left,_t=ye.top;I=vn({},I,{width:Oe,height:be,left:et,top:_t})}N=N||I.width-M.margin*2,K=K||I.height-M.margin*2;var tt=A.zoomedHd||A.original,nt=ql(tt)?N:tt.naturalWidth||N,O=ql(tt)?K:tt.naturalHeight||K,q=tt.getBoundingClientRect(),z=q.top,J=q.left,de=q.width,Ee=q.height,g=Math.min(Math.max(de,nt),N)/de,m=Math.min(Math.max(Ee,O),K)/Ee,S=Math.min(g,m),x=(-J+(N-de)/2+M.margin+I.left)/S,w=(-z+(K-Ee)/2+M.margin+I.top)/S,L="scale("+S+") translate3d("+x+"px, "+w+"px, 0)";A.zoomed.style.transform=L,A.zoomedHd&&(A.zoomedHd.style.transform=L)};return new r(function(ee){if(D&&p.indexOf(D)===-1){ee(T);return}var I=function Oe(){R=!1,A.zoomed.removeEventListener("transitionend",Oe),A.original.dispatchEvent(xn("medium-zoom:opened",{detail:{zoom:T}})),ee(T)};if(A.zoomed){ee(T);return}if(D)A.original=D;else if(p.length>0){var N=p;A.original=N[0]}else{ee(T);return}if(A.original.dispatchEvent(xn("medium-zoom:open",{detail:{zoom:T}})),j=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,R=!0,A.zoomed=Hv(A.original),document.body.appendChild(U),M.template){var K=ao(M.template)?M.template:document.querySelector(M.template);A.template=document.createElement("div"),A.template.appendChild(K.content.cloneNode(!0)),document.body.appendChild(A.template)}if(A.original.parentElement&&A.original.parentElement.tagName==="PICTURE"&&A.original.currentSrc&&(A.zoomed.src=A.original.currentSrc),document.body.appendChild(A.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),A.original.classList.add("medium-zoom-image--hidden"),A.zoomed.classList.add("medium-zoom-image--opened"),A.zoomed.addEventListener("click",v),A.zoomed.addEventListener("transitionend",I),A.original.getAttribute("data-zoom-src")){A.zoomedHd=A.zoomed.cloneNode(),A.zoomedHd.removeAttribute("srcset"),A.zoomedHd.removeAttribute("sizes"),A.zoomedHd.removeAttribute("loading"),A.zoomedHd.src=A.zoomed.getAttribute("data-zoom-src"),A.zoomedHd.onerror=function(){clearInterval(ae),console.warn("Unable to reach the zoom image target "+A.zoomedHd.src),A.zoomedHd=null,Z()};var ae=setInterval(function(){A.zoomedHd.complete&&(clearInterval(ae),A.zoomedHd.classList.add("medium-zoom-image--opened"),A.zoomedHd.addEventListener("click",v),document.body.appendChild(A.zoomedHd),Z())},10)}else if(A.original.hasAttribute("srcset")){A.zoomedHd=A.zoomed.cloneNode(),A.zoomedHd.removeAttribute("sizes"),A.zoomedHd.removeAttribute("loading");var ye=A.zoomedHd.addEventListener("load",function(){A.zoomedHd.removeEventListener("load",ye),A.zoomedHd.classList.add("medium-zoom-image--opened"),A.zoomedHd.addEventListener("click",v),document.body.appendChild(A.zoomedHd),Z()})}else Z()})},v=function(){return new r(function(C){if(R||!A.original){C(T);return}var D=function Z(){A.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(A.zoomed),A.zoomedHd&&document.body.removeChild(A.zoomedHd),document.body.removeChild(U),A.zoomed.classList.remove("medium-zoom-image--opened"),A.template&&document.body.removeChild(A.template),R=!1,A.zoomed.removeEventListener("transitionend",Z),A.original.dispatchEvent(xn("medium-zoom:closed",{detail:{zoom:T}})),A.original=null,A.zoomed=null,A.zoomedHd=null,A.template=null,C(T)};R=!0,document.body.classList.remove("medium-zoom--opened"),A.zoomed.style.transform="",A.zoomedHd&&(A.zoomedHd.style.transform=""),A.template&&(A.template.style.transition="opacity 150ms",A.template.style.opacity=0),A.original.dispatchEvent(xn("medium-zoom:close",{detail:{zoom:T}})),A.zoomed.addEventListener("transitionend",D)})},_=function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},D=C.target;return A.original?v():h({target:D})},y=function(){return M},E=function(){return p},k=function(){return A.original},p=[],b=[],R=!1,j=0,M=n,A={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(t)==="[object Object]"?M=t:(t||typeof t=="string")&&u(t),M=vn({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},M);var U=Fv(M.background);document.addEventListener("click",o),document.addEventListener("keyup",i),document.addEventListener("scroll",s),window.addEventListener("resize",v);var T={open:h,close:v,toggle:_,update:l,clone:a,attach:u,detach:f,on:c,off:d,getOptions:y,getImages:E,getZoomedImage:k};return T};function $v(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(typeof document>"u")){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",n==="top"&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var Uv=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";$v(Uv);const jv=Symbol("mediumZoom");var zv={};const Kv="[vp-content] > img, [vp-content] :not(a) > img",Wv=zv,qv=300,Gv=Wt({enhance({app:e,router:t}){const n=Bv(Wv);n.refresh=(r=Kv)=>{n.detach(),n.attach(r)},e.provide(jv,n),t.afterEach(()=>{Qc(qv).then(()=>{n.refresh()})})}}),Yv=Object.freeze(Object.defineProperty({__proto__:null,default:Gv},Symbol.toStringTag,{value:"Module"}));/** + * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT + */const Yl=(e,t)=>{e.classList.add(t)},Xl=(e,t)=>{e.classList.remove(t)},Xv=e=>{var t;(t=e==null?void 0:e.parentNode)==null||t.removeChild(e)},ds=(e,t,n)=>en?n:e,Zl=e=>(-1+e)*100,Zv=(()=>{const e=[],t=()=>{const n=e.shift();n&&n(t)};return n=>{e.push(n),e.length===1&&t()}})(),Jv=e=>e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(t,n)=>n.toUpperCase()),no=(()=>{const e=["Webkit","O","Moz","ms"],t={},n=s=>{const{style:i}=document.body;if(s in i)return s;const l=s.charAt(0).toUpperCase()+s.slice(1);let a=e.length;for(;a--;){const u=`${e[a]}${l}`;if(u in i)return u}return s},r=s=>{const i=Jv(s);return t[i]??(t[i]=n(i))},o=(s,i,l)=>{s.style[r(i)]=l};return(s,i)=>{for(const l in i){const a=i[l];Object.hasOwn(i,l)&&Sv(a)&&o(s,l,a)}}})(),Dt={minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},Pe={percent:null,isRendered:()=>!!document.getElementById("nprogress"),set:e=>{const{speed:t,easing:n}=Dt,r=Pe.isStarted(),o=ds(e,Dt.minimum,1);Pe.percent=o===1?null:o;const s=Pe.render(!r),i=s.querySelector(Dt.barSelector);return s.offsetWidth,Zv(l=>{no(i,{transform:`translate3d(${Zl(o)}%,0,0)`,transition:`all ${t}ms ${n}`}),o===1?(no(s,{transition:"none",opacity:"1"}),s.offsetWidth,setTimeout(()=>{no(s,{transition:`all ${t}ms linear`,opacity:"0"}),setTimeout(()=>{Pe.remove(),l()},t)},t)):setTimeout(()=>{l()},t)}),Pe},isStarted:()=>typeof Pe.percent=="number",start:()=>{Pe.percent||Pe.set(0);const e=()=>{setTimeout(()=>{Pe.percent&&(Pe.trickle(),e())},Dt.trickleSpeed)};return e(),Pe},done:e=>!e&&!Pe.percent?Pe:Pe.increase(.3+.5*Math.random()).set(1),increase:e=>{let{percent:t}=Pe;return t?(t=ds(t+(typeof e=="number"?e:(1-t)*ds(Math.random()*t,.1,.95)),0,.994),Pe.set(t)):Pe.start()},trickle:()=>Pe.increase(Math.random()*Dt.trickleRate),render:e=>{if(Pe.isRendered())return document.getElementById("nprogress");Yl(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=Dt.template;const n=t.querySelector(Dt.barSelector),r=document.querySelector(Dt.parent),o=e?"-100":Zl(Pe.percent??0);return no(n,{transition:"all 0 linear",transform:`translate3d(${o}%,0,0)`}),r&&(r!==document.body&&Yl(r,"nprogress-custom-parent"),r.appendChild(t)),t},remove:()=>{Xl(document.documentElement,"nprogress-busy"),Xl(document.querySelector(Dt.parent),"nprogress-custom-parent"),Xv(document.getElementById("nprogress"))}},Qv=()=>{Ye(()=>{const e=cn(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||Pe.start()}),e.afterEach(n=>{t.add(n.path),Pe.done()})})},e_=Wt({setup(){Qv()}}),t_=Object.freeze(Object.defineProperty({__proto__:null,default:e_},Symbol.toStringTag,{value:"Module"})),n_=({selector:e='div[class*="language-"].has-collapsed-lines > .collapsed-lines'}={})=>{dt("click",t=>{const n=t.target;if(n.matches(e)){const r=n.parentElement;r!=null&&r.classList.toggle("collapsed")&&r.scrollIntoView({block:"center",behavior:"instant"})}})},r_={setup(){n_()}},o_=Object.freeze(Object.defineProperty({__proto__:null,default:r_},Symbol.toStringTag,{value:"Module"})),s_="VUEPRESS_CODE_TAB_STORE",ro=Ai(s_,{}),i_=pe({name:"CodeTabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=ce(e.active),r=Pt([]),o=()=>{e.tabId&&(ro.value[e.tabId]=e.data[n.value].id)},s=(u=n.value)=>{n.value=u{n.value=u>0?u-1:r.value.length-1,r.value[n.value].focus()},l=(u,f)=>{u.key===" "||u.key==="Enter"?(u.preventDefault(),n.value=f):u.key==="ArrowRight"?(u.preventDefault(),s()):u.key==="ArrowLeft"&&(u.preventDefault(),i()),e.tabId&&(ro.value[e.tabId]=e.data[n.value].id)},a=()=>{if(e.tabId){const u=e.data.findIndex(({id:f})=>ro.value[e.tabId]===f);if(u!==-1)return u}return e.active};return Ye(()=>{n.value=a(),Ue(()=>ro.value[e.tabId],(u,f)=>{if(e.tabId&&u!==f){const c=e.data.findIndex(({id:d})=>d===u);c!==-1&&(n.value=c)}})}),()=>e.data.length?ue("div",{class:"vp-code-tabs"},[ue("div",{class:"vp-code-tabs-nav",role:"tablist"},e.data.map(({id:u},f)=>{const c=f===n.value;return ue("button",{type:"button",ref:d=>{d&&(r.value[f]=d)},class:["vp-code-tab-nav",{active:c}],role:"tab","aria-controls":`codetab-${e.id}-${f}`,"aria-selected":c,onClick:()=>{n.value=f,o()},onKeydown:d=>{l(d,f)}},t[`title${f}`]({value:u,isActive:c}))})),e.data.map(({id:u},f)=>{const c=f===n.value;return ue("div",{class:["vp-code-tab",{active:c}],id:`codetab-${e.id}-${f}`,role:"tabpanel","aria-expanded":c},[ue("div",{class:"vp-code-tab-title"},t[`title${f}`]({value:u,isActive:c})),t[`tab${f}`]({value:u,isActive:c})])})]):null}}),l_="VUEPRESS_TAB_STORE",hs=Ai(l_,{}),a_=pe({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=ce(e.active),r=Pt([]),o=()=>{e.tabId&&(hs.value[e.tabId]=e.data[n.value].id)},s=(u=n.value)=>{n.value=u{n.value=u>0?u-1:r.value.length-1,r.value[n.value].focus()},l=(u,f)=>{u.key===" "||u.key==="Enter"?(u.preventDefault(),n.value=f):u.key==="ArrowRight"?(u.preventDefault(),s()):u.key==="ArrowLeft"&&(u.preventDefault(),i()),o()},a=()=>{if(e.tabId){const u=e.data.findIndex(({id:f})=>hs.value[e.tabId]===f);if(u!==-1)return u}return e.active};return Ye(()=>{n.value=a(),Ue(()=>hs.value[e.tabId],(u,f)=>{if(e.tabId&&u!==f){const c=e.data.findIndex(({id:d})=>d===u);c!==-1&&(n.value=c)}})}),()=>e.data.length?ue("div",{class:"vp-tabs"},[ue("div",{class:"vp-tabs-nav",role:"tablist"},e.data.map(({id:u},f)=>{const c=f===n.value;return ue("button",{type:"button",ref:d=>{d&&(r.value[f]=d)},class:["vp-tab-nav",{active:c}],role:"tab","aria-controls":`tab-${e.id}-${f}`,"aria-selected":c,onClick:()=>{n.value=f,o()},onKeydown:d=>{l(d,f)}},t[`title${f}`]({value:u,isActive:c}))})),e.data.map(({id:u},f)=>{const c=f===n.value;return ue("div",{class:["vp-tab",{active:c}],id:`tab-${e.id}-${f}`,role:"tabpanel","aria-expanded":c},[ue("div",{class:"vp-tab-title"},t[`title${f}`]({value:u,isActive:c})),t[`tab${f}`]({value:u,isActive:c})])})]):null}}),u_={enhance:({app:e})=>{e.component("CodeTabs",i_),e.component("Tabs",a_)}},c_=Object.freeze(Object.defineProperty({__proto__:null,default:u_},Symbol.toStringTag,{value:"Module"}));var f_=Object.create,rf=Object.defineProperty,d_=Object.getOwnPropertyDescriptor,Ci=Object.getOwnPropertyNames,h_=Object.getPrototypeOf,p_=Object.prototype.hasOwnProperty,g_=(e,t)=>function(){return e&&(t=(0,e[Ci(e)[0]])(e=0)),t},m_=(e,t)=>function(){return t||(0,e[Ci(e)[0]])((t={exports:{}}).exports,t),t.exports},v_=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ci(t))!p_.call(e,o)&&o!==n&&rf(e,o,{get:()=>t[o],enumerable:!(r=d_(t,o))||r.enumerable});return e},__=(e,t,n)=>(n=e!=null?f_(h_(e)):{},v_(rf(n,"default",{value:e,enumerable:!0}),e)),Wr=g_({"../../node_modules/.pnpm/tsup@8.3.5_@microsoft+api-extractor@7.43.0_@types+node@22.9.0__@swc+core@1.5.29_jiti@2.0.0_po_lnt5yfvawfblpk67opvcdwbq7u/node_modules/tsup/assets/esm_shims.js"(){}}),y_=m_({"../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js"(e,t){Wr(),t.exports=r;function n(s){return s instanceof Buffer?Buffer.from(s):new s.constructor(s.buffer.slice(),s.byteOffset,s.length)}function r(s){if(s=s||{},s.circles)return o(s);const i=new Map;if(i.set(Date,c=>new Date(c)),i.set(Map,(c,d)=>new Map(a(Array.from(c),d))),i.set(Set,(c,d)=>new Set(a(Array.from(c),d))),s.constructorHandlers)for(const c of s.constructorHandlers)i.set(c[0],c[1]);let l=null;return s.proto?f:u;function a(c,d){const h=Object.keys(c),v=new Array(h.length);for(let _=0;_new Date(h)),a.set(Map,(h,v)=>new Map(f(Array.from(h),v))),a.set(Set,(h,v)=>new Set(f(Array.from(h),v))),s.constructorHandlers)for(const h of s.constructorHandlers)a.set(h[0],h[1]);let u=null;return s.proto?d:c;function f(h,v){const _=Object.keys(h),y=new Array(_.length);for(let E=0;E<_.length;E++){const k=_[E],p=h[k];if(typeof p!="object"||p===null)y[k]=p;else if(p.constructor!==Object&&(u=a.get(p.constructor)))y[k]=u(p,v);else if(ArrayBuffer.isView(p))y[k]=n(p);else{const b=i.indexOf(p);b!==-1?y[k]=l[b]:y[k]=v(p)}}return y}function c(h){if(typeof h!="object"||h===null)return h;if(Array.isArray(h))return f(h,c);if(h.constructor!==Object&&(u=a.get(h.constructor)))return u(h,c);const v={};i.push(h),l.push(v);for(const _ in h){if(Object.hasOwnProperty.call(h,_)===!1)continue;const y=h[_];if(typeof y!="object"||y===null)v[_]=y;else if(y.constructor!==Object&&(u=a.get(y.constructor)))v[_]=u(y,c);else if(ArrayBuffer.isView(y))v[_]=n(y);else{const E=i.indexOf(y);E!==-1?v[_]=l[E]:v[_]=c(y)}}return i.pop(),l.pop(),v}function d(h){if(typeof h!="object"||h===null)return h;if(Array.isArray(h))return f(h,d);if(h.constructor!==Object&&(u=a.get(h.constructor)))return u(h,d);const v={};i.push(h),l.push(v);for(const _ in h){const y=h[_];if(typeof y!="object"||y===null)v[_]=y;else if(y.constructor!==Object&&(u=a.get(y.constructor)))v[_]=u(y,d);else if(ArrayBuffer.isView(y))v[_]=n(y);else{const E=i.indexOf(y);E!==-1?v[_]=l[E]:v[_]=d(y)}}return i.pop(),l.pop(),v}}}});Wr();Wr();Wr();var of=typeof navigator<"u",X=typeof window<"u"?window:typeof globalThis<"u"?globalThis:typeof global<"u"?global:{};typeof X.chrome<"u"&&X.chrome.devtools;of&&(X.self,X.top);var Jl;typeof navigator<"u"&&((Jl=navigator.userAgent)==null||Jl.toLowerCase().includes("electron"));Wr();var b_=__(y_()),E_=/(?:^|[-_/])(\w)/g;function S_(e,t){return t?t.toUpperCase():""}function k_(e){return e&&`${e}`.replace(E_,S_)}function A_(e,t){let n=e.replace(/^[a-z]:/i,"").replace(/\\/g,"/");n.endsWith(`index${t}`)&&(n=n.replace(`/index${t}`,t));const r=n.lastIndexOf("/"),o=n.substring(r+1);{const s=o.lastIndexOf(t);return o.substring(0,s)}}var Ql=(0,b_.default)({circles:!0});const C_={trailing:!0};function Kn(e,t=25,n={}){if(n={...C_,...n},!Number.isFinite(t))throw new TypeError("Expected `wait` to be a finite number");let r,o,s=[],i,l;const a=(u,f)=>(i=w_(e,u,f),i.finally(()=>{if(i=null,n.trailing&&l&&!o){const c=a(u,l);return l=null,c}}),i);return function(...u){return i?(n.trailing&&(l=u),i):new Promise(f=>{const c=!o&&n.leading;clearTimeout(o),o=setTimeout(()=>{o=null;const d=n.leading?r:a(this,u);for(const h of s)h(d);s=[]},t),c?(r=a(this,u),f(r)):s.push(f)})}}async function w_(e,t,n){return await e.apply(t,n)}function Ms(e,t={},n){for(const r in e){const o=e[r],s=n?`${n}:${r}`:r;typeof o=="object"&&o!==null?Ms(o,t,s):typeof o=="function"&&(t[s]=o)}return t}const T_={run:e=>e()},O_=()=>T_,sf=typeof console.createTask<"u"?console.createTask:O_;function x_(e,t){const n=t.shift(),r=sf(n);return e.reduce((o,s)=>o.then(()=>r.run(()=>s(...t))),Promise.resolve())}function P_(e,t){const n=t.shift(),r=sf(n);return Promise.all(e.map(o=>r.run(()=>o(...t))))}function ps(e,t){for(const n of[...e])n(t)}class I_{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,n,r={}){if(!t||typeof n!="function")return()=>{};const o=t;let s;for(;this._deprecatedHooks[t];)s=this._deprecatedHooks[t],t=s.to;if(s&&!r.allowDeprecated){let i=s.message;i||(i=`${o} hook has been deprecated`+(s.to?`, please use ${s.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(i)||(console.warn(i),this._deprecatedMessages.add(i))}if(!n.name)try{Object.defineProperty(n,"name",{get:()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(n),()=>{n&&(this.removeHook(t,n),n=void 0)}}hookOnce(t,n){let r,o=(...s)=>(typeof r=="function"&&r(),r=void 0,o=void 0,n(...s));return r=this.hook(t,o),r}removeHook(t,n){if(this._hooks[t]){const r=this._hooks[t].indexOf(n);r!==-1&&this._hooks[t].splice(r,1),this._hooks[t].length===0&&delete this._hooks[t]}}deprecateHook(t,n){this._deprecatedHooks[t]=typeof n=="string"?{to:n}:n;const r=this._hooks[t]||[];delete this._hooks[t];for(const o of r)this.hook(t,o)}deprecateHooks(t){Object.assign(this._deprecatedHooks,t);for(const n in t)this.deprecateHook(n,t[n])}addHooks(t){const n=Ms(t),r=Object.keys(n).map(o=>this.hook(o,n[o]));return()=>{for(const o of r.splice(0,r.length))o()}}removeHooks(t){const n=Ms(t);for(const r in n)this.removeHook(r,n[r])}removeAllHooks(){for(const t in this._hooks)delete this._hooks[t]}callHook(t,...n){return n.unshift(t),this.callHookWith(x_,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(P_,t,...n)}callHookWith(t,n,...r){const o=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&ps(this._before,o);const s=t(n in this._hooks?[...this._hooks[n]]:[],r);return s instanceof Promise?s.finally(()=>{this._after&&o&&ps(this._after,o)}):(this._after&&o&&ps(this._after,o),s)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const n=this._before.indexOf(t);n!==-1&&this._before.splice(n,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const n=this._after.indexOf(t);n!==-1&&this._after.splice(n,1)}}}}function lf(){return new I_}var L_=Object.create,af=Object.defineProperty,R_=Object.getOwnPropertyDescriptor,wi=Object.getOwnPropertyNames,D_=Object.getPrototypeOf,N_=Object.prototype.hasOwnProperty,V_=(e,t)=>function(){return e&&(t=(0,e[wi(e)[0]])(e=0)),t},uf=(e,t)=>function(){return t||(0,e[wi(e)[0]])((t={exports:{}}).exports,t),t.exports},M_=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wi(t))!N_.call(e,o)&&o!==n&&af(e,o,{get:()=>t[o],enumerable:!(r=R_(t,o))||r.enumerable});return e},F_=(e,t,n)=>(n=e!=null?L_(D_(e)):{},M_(af(n,"default",{value:e,enumerable:!0}),e)),P=V_({"../../node_modules/.pnpm/tsup@8.3.5_@microsoft+api-extractor@7.43.0_@types+node@22.9.0__@swc+core@1.5.29_jiti@2.0.0_po_lnt5yfvawfblpk67opvcdwbq7u/node_modules/tsup/assets/esm_shims.js"(){}}),H_=uf({"../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js"(e,t){P(),function(n){var r={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"Ae",Å:"A",Æ:"AE",Ç:"C",È:"E",É:"E",Ê:"E",Ë:"E",Ì:"I",Í:"I",Î:"I",Ï:"I",Ð:"D",Ñ:"N",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"Oe",Ő:"O",Ø:"O",Ù:"U",Ú:"U",Û:"U",Ü:"Ue",Ű:"U",Ý:"Y",Þ:"TH",ß:"ss",à:"a",á:"a",â:"a",ã:"a",ä:"ae",å:"a",æ:"ae",ç:"c",è:"e",é:"e",ê:"e",ë:"e",ì:"i",í:"i",î:"i",ï:"i",ð:"d",ñ:"n",ò:"o",ó:"o",ô:"o",õ:"o",ö:"oe",ő:"o",ø:"o",ù:"u",ú:"u",û:"u",ü:"ue",ű:"u",ý:"y",þ:"th",ÿ:"y","ẞ":"SS",ا:"a",أ:"a",إ:"i",آ:"aa",ؤ:"u",ئ:"e",ء:"a",ب:"b",ت:"t",ث:"th",ج:"j",ح:"h",خ:"kh",د:"d",ذ:"th",ر:"r",ز:"z",س:"s",ش:"sh",ص:"s",ض:"dh",ط:"t",ظ:"z",ع:"a",غ:"gh",ف:"f",ق:"q",ك:"k",ل:"l",م:"m",ن:"n",ه:"h",و:"w",ي:"y",ى:"a",ة:"h",ﻻ:"la",ﻷ:"laa",ﻹ:"lai",ﻵ:"laa",گ:"g",چ:"ch",پ:"p",ژ:"zh",ک:"k",ی:"y","َ":"a","ً":"an","ِ":"e","ٍ":"en","ُ":"u","ٌ":"on","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9",က:"k",ခ:"kh",ဂ:"g",ဃ:"ga",င:"ng",စ:"s",ဆ:"sa",ဇ:"z","စျ":"za",ည:"ny",ဋ:"t",ဌ:"ta",ဍ:"d",ဎ:"da",ဏ:"na",တ:"t",ထ:"ta",ဒ:"d",ဓ:"da",န:"n",ပ:"p",ဖ:"pa",ဗ:"b",ဘ:"ba",မ:"m",ယ:"y",ရ:"ya",လ:"l",ဝ:"w",သ:"th",ဟ:"h",ဠ:"la",အ:"a","ြ":"y","ျ":"ya","ွ":"w","ြွ":"yw","ျွ":"ywa","ှ":"h",ဧ:"e","၏":"-e",ဣ:"i",ဤ:"-i",ဉ:"u",ဦ:"-u",ဩ:"aw","သြော":"aw",ဪ:"aw","၀":"0","၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","္":"","့":"","း":"",č:"c",ď:"d",ě:"e",ň:"n",ř:"r",š:"s",ť:"t",ů:"u",ž:"z",Č:"C",Ď:"D",Ě:"E",Ň:"N",Ř:"R",Š:"S",Ť:"T",Ů:"U",Ž:"Z",ހ:"h",ށ:"sh",ނ:"n",ރ:"r",ބ:"b",ޅ:"lh",ކ:"k",އ:"a",ވ:"v",މ:"m",ފ:"f",ދ:"dh",ތ:"th",ލ:"l",ގ:"g",ޏ:"gn",ސ:"s",ޑ:"d",ޒ:"z",ޓ:"t",ޔ:"y",ޕ:"p",ޖ:"j",ޗ:"ch",ޘ:"tt",ޙ:"hh",ޚ:"kh",ޛ:"th",ޜ:"z",ޝ:"sh",ޞ:"s",ޟ:"d",ޠ:"t",ޡ:"z",ޢ:"a",ޣ:"gh",ޤ:"q",ޥ:"w","ަ":"a","ާ":"aa","ި":"i","ީ":"ee","ު":"u","ޫ":"oo","ެ":"e","ޭ":"ey","ޮ":"o","ޯ":"oa","ް":"",ა:"a",ბ:"b",გ:"g",დ:"d",ე:"e",ვ:"v",ზ:"z",თ:"t",ი:"i",კ:"k",ლ:"l",მ:"m",ნ:"n",ო:"o",პ:"p",ჟ:"zh",რ:"r",ს:"s",ტ:"t",უ:"u",ფ:"p",ქ:"k",ღ:"gh",ყ:"q",შ:"sh",ჩ:"ch",ც:"ts",ძ:"dz",წ:"ts",ჭ:"ch",ხ:"kh",ჯ:"j",ჰ:"h",α:"a",β:"v",γ:"g",δ:"d",ε:"e",ζ:"z",η:"i",θ:"th",ι:"i",κ:"k",λ:"l",μ:"m",ν:"n",ξ:"ks",ο:"o",π:"p",ρ:"r",σ:"s",τ:"t",υ:"y",φ:"f",χ:"x",ψ:"ps",ω:"o",ά:"a",έ:"e",ί:"i",ό:"o",ύ:"y",ή:"i",ώ:"o",ς:"s",ϊ:"i",ΰ:"y",ϋ:"y",ΐ:"i",Α:"A",Β:"B",Γ:"G",Δ:"D",Ε:"E",Ζ:"Z",Η:"I",Θ:"TH",Ι:"I",Κ:"K",Λ:"L",Μ:"M",Ν:"N",Ξ:"KS",Ο:"O",Π:"P",Ρ:"R",Σ:"S",Τ:"T",Υ:"Y",Φ:"F",Χ:"X",Ψ:"PS",Ω:"O",Ά:"A",Έ:"E",Ί:"I",Ό:"O",Ύ:"Y",Ή:"I",Ώ:"O",Ϊ:"I",Ϋ:"Y",ā:"a",ē:"e",ģ:"g",ī:"i",ķ:"k",ļ:"l",ņ:"n",ū:"u",Ā:"A",Ē:"E",Ģ:"G",Ī:"I",Ķ:"k",Ļ:"L",Ņ:"N",Ū:"U",Ќ:"Kj",ќ:"kj",Љ:"Lj",љ:"lj",Њ:"Nj",њ:"nj",Тс:"Ts",тс:"ts",ą:"a",ć:"c",ę:"e",ł:"l",ń:"n",ś:"s",ź:"z",ż:"z",Ą:"A",Ć:"C",Ę:"E",Ł:"L",Ń:"N",Ś:"S",Ź:"Z",Ż:"Z",Є:"Ye",І:"I",Ї:"Yi",Ґ:"G",є:"ye",і:"i",ї:"yi",ґ:"g",ă:"a",Ă:"A",ș:"s",Ș:"S",ț:"t",Ț:"T",ţ:"t",Ţ:"T",а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"yo",ж:"zh",з:"z",и:"i",й:"i",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"c",ч:"ch",ш:"sh",щ:"sh",ъ:"",ы:"y",ь:"",э:"e",ю:"yu",я:"ya",А:"A",Б:"B",В:"V",Г:"G",Д:"D",Е:"E",Ё:"Yo",Ж:"Zh",З:"Z",И:"I",Й:"I",К:"K",Л:"L",М:"M",Н:"N",О:"O",П:"P",Р:"R",С:"S",Т:"T",У:"U",Ф:"F",Х:"Kh",Ц:"C",Ч:"Ch",Ш:"Sh",Щ:"Sh",Ъ:"",Ы:"Y",Ь:"",Э:"E",Ю:"Yu",Я:"Ya",ђ:"dj",ј:"j",ћ:"c",џ:"dz",Ђ:"Dj",Ј:"j",Ћ:"C",Џ:"Dz",ľ:"l",ĺ:"l",ŕ:"r",Ľ:"L",Ĺ:"L",Ŕ:"R",ş:"s",Ş:"S",ı:"i",İ:"I",ğ:"g",Ğ:"G",ả:"a",Ả:"A",ẳ:"a",Ẳ:"A",ẩ:"a",Ẩ:"A",đ:"d",Đ:"D",ẹ:"e",Ẹ:"E",ẽ:"e",Ẽ:"E",ẻ:"e",Ẻ:"E",ế:"e",Ế:"E",ề:"e",Ề:"E",ệ:"e",Ệ:"E",ễ:"e",Ễ:"E",ể:"e",Ể:"E",ỏ:"o",ọ:"o",Ọ:"o",ố:"o",Ố:"O",ồ:"o",Ồ:"O",ổ:"o",Ổ:"O",ộ:"o",Ộ:"O",ỗ:"o",Ỗ:"O",ơ:"o",Ơ:"O",ớ:"o",Ớ:"O",ờ:"o",Ờ:"O",ợ:"o",Ợ:"O",ỡ:"o",Ỡ:"O",Ở:"o",ở:"o",ị:"i",Ị:"I",ĩ:"i",Ĩ:"I",ỉ:"i",Ỉ:"i",ủ:"u",Ủ:"U",ụ:"u",Ụ:"U",ũ:"u",Ũ:"U",ư:"u",Ư:"U",ứ:"u",Ứ:"U",ừ:"u",Ừ:"U",ự:"u",Ự:"U",ữ:"u",Ữ:"U",ử:"u",Ử:"ư",ỷ:"y",Ỷ:"y",ỳ:"y",Ỳ:"Y",ỵ:"y",Ỵ:"Y",ỹ:"y",Ỹ:"Y",ạ:"a",Ạ:"A",ấ:"a",Ấ:"A",ầ:"a",Ầ:"A",ậ:"a",Ậ:"A",ẫ:"a",Ẫ:"A",ắ:"a",Ắ:"A",ằ:"a",Ằ:"A",ặ:"a",Ặ:"A",ẵ:"a",Ẵ:"A","⓪":"0","①":"1","②":"2","③":"3","④":"4","⑤":"5","⑥":"6","⑦":"7","⑧":"8","⑨":"9","⑩":"10","⑪":"11","⑫":"12","⑬":"13","⑭":"14","⑮":"15","⑯":"16","⑰":"17","⑱":"18","⑲":"18","⑳":"18","⓵":"1","⓶":"2","⓷":"3","⓸":"4","⓹":"5","⓺":"6","⓻":"7","⓼":"8","⓽":"9","⓾":"10","⓿":"0","⓫":"11","⓬":"12","⓭":"13","⓮":"14","⓯":"15","⓰":"16","⓱":"17","⓲":"18","⓳":"19","⓴":"20","Ⓐ":"A","Ⓑ":"B","Ⓒ":"C","Ⓓ":"D","Ⓔ":"E","Ⓕ":"F","Ⓖ":"G","Ⓗ":"H","Ⓘ":"I","Ⓙ":"J","Ⓚ":"K","Ⓛ":"L","Ⓜ":"M","Ⓝ":"N","Ⓞ":"O","Ⓟ":"P","Ⓠ":"Q","Ⓡ":"R","Ⓢ":"S","Ⓣ":"T","Ⓤ":"U","Ⓥ":"V","Ⓦ":"W","Ⓧ":"X","Ⓨ":"Y","Ⓩ":"Z","ⓐ":"a","ⓑ":"b","ⓒ":"c","ⓓ":"d","ⓔ":"e","ⓕ":"f","ⓖ":"g","ⓗ":"h","ⓘ":"i","ⓙ":"j","ⓚ":"k","ⓛ":"l","ⓜ":"m","ⓝ":"n","ⓞ":"o","ⓟ":"p","ⓠ":"q","ⓡ":"r","ⓢ":"s","ⓣ":"t","ⓤ":"u","ⓦ":"v","ⓥ":"w","ⓧ":"x","ⓨ":"y","ⓩ":"z","“":'"',"”":'"',"‘":"'","’":"'","∂":"d",ƒ:"f","™":"(TM)","©":"(C)",œ:"oe",Œ:"OE","®":"(R)","†":"+","℠":"(SM)","…":"...","˚":"o",º:"o",ª:"a","•":"*","၊":",","။":".",$:"USD","€":"EUR","₢":"BRN","₣":"FRF","£":"GBP","₤":"ITL","₦":"NGN","₧":"ESP","₩":"KRW","₪":"ILS","₫":"VND","₭":"LAK","₮":"MNT","₯":"GRD","₱":"ARS","₲":"PYG","₳":"ARA","₴":"UAH","₵":"GHS","¢":"cent","¥":"CNY",元:"CNY",円:"YEN","﷼":"IRR","₠":"EWE","฿":"THB","₨":"INR","₹":"INR","₰":"PF","₺":"TRY","؋":"AFN","₼":"AZN",лв:"BGN","៛":"KHR","₡":"CRC","₸":"KZT",ден:"MKD",zł:"PLN","₽":"RUB","₾":"GEL"},o=["်","ް"],s={"ာ":"a","ါ":"a","ေ":"e","ဲ":"e","ိ":"i","ီ":"i","ို":"o","ု":"u","ူ":"u","ေါင်":"aung","ော":"aw","ော်":"aw","ေါ":"aw","ေါ်":"aw","်":"်","က်":"et","ိုက်":"aik","ောက်":"auk","င်":"in","ိုင်":"aing","ောင်":"aung","စ်":"it","ည်":"i","တ်":"at","ိတ်":"eik","ုတ်":"ok","ွတ်":"ut","ေတ်":"it","ဒ်":"d","ိုဒ်":"ok","ုဒ်":"ait","န်":"an","ာန်":"an","ိန်":"ein","ုန်":"on","ွန်":"un","ပ်":"at","ိပ်":"eik","ုပ်":"ok","ွပ်":"ut","န်ုပ်":"nub","မ်":"an","ိမ်":"ein","ုမ်":"on","ွမ်":"un","ယ်":"e","ိုလ်":"ol","ဉ်":"in","ံ":"an","ိံ":"ein","ုံ":"on","ައް":"ah","ަށް":"ah"},i={en:{},az:{ç:"c",ə:"e",ğ:"g",ı:"i",ö:"o",ş:"s",ü:"u",Ç:"C",Ə:"E",Ğ:"G",İ:"I",Ö:"O",Ş:"S",Ü:"U"},cs:{č:"c",ď:"d",ě:"e",ň:"n",ř:"r",š:"s",ť:"t",ů:"u",ž:"z",Č:"C",Ď:"D",Ě:"E",Ň:"N",Ř:"R",Š:"S",Ť:"T",Ů:"U",Ž:"Z"},fi:{ä:"a",Ä:"A",ö:"o",Ö:"O"},hu:{ä:"a",Ä:"A",ö:"o",Ö:"O",ü:"u",Ü:"U",ű:"u",Ű:"U"},lt:{ą:"a",č:"c",ę:"e",ė:"e",į:"i",š:"s",ų:"u",ū:"u",ž:"z",Ą:"A",Č:"C",Ę:"E",Ė:"E",Į:"I",Š:"S",Ų:"U",Ū:"U"},lv:{ā:"a",č:"c",ē:"e",ģ:"g",ī:"i",ķ:"k",ļ:"l",ņ:"n",š:"s",ū:"u",ž:"z",Ā:"A",Č:"C",Ē:"E",Ģ:"G",Ī:"i",Ķ:"k",Ļ:"L",Ņ:"N",Š:"S",Ū:"u",Ž:"Z"},pl:{ą:"a",ć:"c",ę:"e",ł:"l",ń:"n",ó:"o",ś:"s",ź:"z",ż:"z",Ą:"A",Ć:"C",Ę:"e",Ł:"L",Ń:"N",Ó:"O",Ś:"S",Ź:"Z",Ż:"Z"},sv:{ä:"a",Ä:"A",ö:"o",Ö:"O"},sk:{ä:"a",Ä:"A"},sr:{љ:"lj",њ:"nj",Љ:"Lj",Њ:"Nj",đ:"dj",Đ:"Dj"},tr:{Ü:"U",Ö:"O",ü:"u",ö:"o"}},l={ar:{"∆":"delta","∞":"la-nihaya","♥":"hob","&":"wa","|":"aw","<":"aqal-men",">":"akbar-men","∑":"majmou","¤":"omla"},az:{},ca:{"∆":"delta","∞":"infinit","♥":"amor","&":"i","|":"o","<":"menys que",">":"mes que","∑":"suma dels","¤":"moneda"},cs:{"∆":"delta","∞":"nekonecno","♥":"laska","&":"a","|":"nebo","<":"mensi nez",">":"vetsi nez","∑":"soucet","¤":"mena"},de:{"∆":"delta","∞":"unendlich","♥":"Liebe","&":"und","|":"oder","<":"kleiner als",">":"groesser als","∑":"Summe von","¤":"Waehrung"},dv:{"∆":"delta","∞":"kolunulaa","♥":"loabi","&":"aai","|":"noonee","<":"ah vure kuda",">":"ah vure bodu","∑":"jumula","¤":"faisaa"},en:{"∆":"delta","∞":"infinity","♥":"love","&":"and","|":"or","<":"less than",">":"greater than","∑":"sum","¤":"currency"},es:{"∆":"delta","∞":"infinito","♥":"amor","&":"y","|":"u","<":"menos que",">":"mas que","∑":"suma de los","¤":"moneda"},fa:{"∆":"delta","∞":"bi-nahayat","♥":"eshgh","&":"va","|":"ya","<":"kamtar-az",">":"bishtar-az","∑":"majmooe","¤":"vahed"},fi:{"∆":"delta","∞":"aarettomyys","♥":"rakkaus","&":"ja","|":"tai","<":"pienempi kuin",">":"suurempi kuin","∑":"summa","¤":"valuutta"},fr:{"∆":"delta","∞":"infiniment","♥":"Amour","&":"et","|":"ou","<":"moins que",">":"superieure a","∑":"somme des","¤":"monnaie"},ge:{"∆":"delta","∞":"usasruloba","♥":"siqvaruli","&":"da","|":"an","<":"naklebi",">":"meti","∑":"jami","¤":"valuta"},gr:{},hu:{"∆":"delta","∞":"vegtelen","♥":"szerelem","&":"es","|":"vagy","<":"kisebb mint",">":"nagyobb mint","∑":"szumma","¤":"penznem"},it:{"∆":"delta","∞":"infinito","♥":"amore","&":"e","|":"o","<":"minore di",">":"maggiore di","∑":"somma","¤":"moneta"},lt:{"∆":"delta","∞":"begalybe","♥":"meile","&":"ir","|":"ar","<":"maziau nei",">":"daugiau nei","∑":"suma","¤":"valiuta"},lv:{"∆":"delta","∞":"bezgaliba","♥":"milestiba","&":"un","|":"vai","<":"mazak neka",">":"lielaks neka","∑":"summa","¤":"valuta"},my:{"∆":"kwahkhyaet","∞":"asaonasme","♥":"akhyait","&":"nhin","|":"tho","<":"ngethaw",">":"kyithaw","∑":"paungld","¤":"ngwekye"},mk:{},nl:{"∆":"delta","∞":"oneindig","♥":"liefde","&":"en","|":"of","<":"kleiner dan",">":"groter dan","∑":"som","¤":"valuta"},pl:{"∆":"delta","∞":"nieskonczonosc","♥":"milosc","&":"i","|":"lub","<":"mniejsze niz",">":"wieksze niz","∑":"suma","¤":"waluta"},pt:{"∆":"delta","∞":"infinito","♥":"amor","&":"e","|":"ou","<":"menor que",">":"maior que","∑":"soma","¤":"moeda"},ro:{"∆":"delta","∞":"infinit","♥":"dragoste","&":"si","|":"sau","<":"mai mic ca",">":"mai mare ca","∑":"suma","¤":"valuta"},ru:{"∆":"delta","∞":"beskonechno","♥":"lubov","&":"i","|":"ili","<":"menshe",">":"bolshe","∑":"summa","¤":"valjuta"},sk:{"∆":"delta","∞":"nekonecno","♥":"laska","&":"a","|":"alebo","<":"menej ako",">":"viac ako","∑":"sucet","¤":"mena"},sr:{},tr:{"∆":"delta","∞":"sonsuzluk","♥":"ask","&":"ve","|":"veya","<":"kucuktur",">":"buyuktur","∑":"toplam","¤":"para birimi"},uk:{"∆":"delta","∞":"bezkinechnist","♥":"lubov","&":"i","|":"abo","<":"menshe",">":"bilshe","∑":"suma","¤":"valjuta"},vn:{"∆":"delta","∞":"vo cuc","♥":"yeu","&":"va","|":"hoac","<":"nho hon",">":"lon hon","∑":"tong","¤":"tien te"}},a=[";","?",":","@","&","=","+","$",",","/"].join(""),u=[";","?",":","@","&","=","+","$",","].join(""),f=[".","!","~","*","'","(",")"].join(""),c=function(y,E){var k="-",p="",b="",R=!0,j={},M,A,U,T,B,C,D,Z,ee,I,N,K,ae,ye,Oe="";if(typeof y!="string")return"";if(typeof E=="string"&&(k=E),D=l.en,Z=i.en,typeof E=="object"){M=E.maintainCase||!1,j=E.custom&&typeof E.custom=="object"?E.custom:j,U=+E.truncate>1&&E.truncate||!1,T=E.uric||!1,B=E.uricNoSlash||!1,C=E.mark||!1,R=!(E.symbols===!1||E.lang===!1),k=E.separator||k,T&&(Oe+=a),B&&(Oe+=u),C&&(Oe+=f),D=E.lang&&l[E.lang]&&R?l[E.lang]:R?l.en:{},Z=E.lang&&i[E.lang]?i[E.lang]:E.lang===!1||E.lang===!0?{}:i.en,E.titleCase&&typeof E.titleCase.length=="number"&&Array.prototype.toString.call(E.titleCase)?(E.titleCase.forEach(function(be){j[be+""]=be+""}),A=!0):A=!!E.titleCase,E.custom&&typeof E.custom.length=="number"&&Array.prototype.toString.call(E.custom)&&E.custom.forEach(function(be){j[be+""]=be+""}),Object.keys(j).forEach(function(be){var et;be.length>1?et=new RegExp("\\b"+h(be)+"\\b","gi"):et=new RegExp(h(be),"gi"),y=y.replace(et,j[be])});for(N in j)Oe+=N}for(Oe+=k,Oe=h(Oe),y=y.replace(/(^\s+|\s+$)/g,""),ae=!1,ye=!1,I=0,K=y.length;I=0?(b+=N,N=""):ye===!0?(N=s[b]+r[N],b=""):N=ae&&r[N].match(/[A-Za-z0-9]/)?" "+r[N]:r[N],ae=!1,ye=!1):N in s?(b+=N,N="",I===K-1&&(N=s[b]),ye=!0):D[N]&&!(T&&a.indexOf(N)!==-1)&&!(B&&u.indexOf(N)!==-1)?(N=ae||p.substr(-1).match(/[A-Za-z0-9]/)?k+D[N]:D[N],N+=y[I+1]!==void 0&&y[I+1].match(/[A-Za-z0-9]/)?k:"",ae=!0):(ye===!0?(N=s[b]+N,b="",ye=!1):ae&&(/[A-Za-z0-9]/.test(N)||p.substr(-1).match(/A-Za-z0-9]/))&&(N=" "+N),ae=!1),p+=N.replace(new RegExp("[^\\w\\s"+Oe+"_-]","g"),k);return A&&(p=p.replace(/(\w)(\S*)/g,function(be,et,_t){var tt=et.toUpperCase()+(_t!==null?_t:"");return Object.keys(j).indexOf(tt.toLowerCase())<0?tt:tt.toLowerCase()})),p=p.replace(/\s+/g,k).replace(new RegExp("\\"+k+"+","g"),k).replace(new RegExp("(^\\"+k+"+|\\"+k+"+$)","g"),""),U&&p.length>U&&(ee=p.charAt(U)===k,p=p.slice(0,U),ee||(p=p.slice(0,p.lastIndexOf(k)))),!M&&!A&&(p=p.toLowerCase()),p},d=function(y){return function(k){return c(k,y)}},h=function(y){return y.replace(/[-\\^$*+?.()|[\]{}\/]/g,"\\$&")},v=function(_,y){for(var E in y)if(y[E]===_)return!0};if(typeof t<"u"&&t.exports)t.exports=c,t.exports.createSlug=d;else if(typeof define<"u"&&define.amd)define([],function(){return c});else try{if(n.getSlug||n.createSlug)throw"speakingurl: globals exists /(getSlug|createSlug)/";n.getSlug=c,n.createSlug=d}catch{}}(e)}}),B_=uf({"../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/index.js"(e,t){P(),t.exports=H_()}});P();P();P();P();P();P();P();function $_(e){return!!(e&&e.__v_isReadonly)}function cf(e){return $_(e)?cf(e.__v_raw):!!(e&&e.__v_isReactive)}function gs(e){return!!(e&&e.__v_isRef===!0)}function pr(e){const t=e&&e.__v_raw;return t?pr(t):e}P();function U_(e){var t;const n=e.name||e._componentTag||e.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__||e.__name;return n==="index"&&((t=e.__file)!=null&&t.endsWith("index.vue"))?"":n}function j_(e){const t=e.__file;if(t)return k_(A_(t,".vue"))}function ea(e,t){return e.type.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__=t,t}function jo(e){if(e.__VUE_DEVTOOLS_NEXT_APP_RECORD__)return e.__VUE_DEVTOOLS_NEXT_APP_RECORD__;if(e.root)return e.appContext.app.__VUE_DEVTOOLS_NEXT_APP_RECORD__}async function z_(e){const{app:t,uid:n,instance:r}=e;try{if(r.__VUE_DEVTOOLS_NEXT_UID__)return r.__VUE_DEVTOOLS_NEXT_UID__;const o=await jo(t);if(!o)return null;const s=o.rootInstance===r;return`${o.id}:${s?"root":n}`}catch{}}function ff(e){var t,n;const r=(t=e.subTree)==null?void 0:t.type,o=jo(e);return o?((n=o==null?void 0:o.types)==null?void 0:n.Fragment)===r:!1}function zo(e){var t,n,r;const o=U_((e==null?void 0:e.type)||{});if(o)return o;if((e==null?void 0:e.root)===e)return"Root";for(const i in(n=(t=e.parent)==null?void 0:t.type)==null?void 0:n.components)if(e.parent.type.components[i]===(e==null?void 0:e.type))return ea(e,i);for(const i in(r=e.appContext)==null?void 0:r.components)if(e.appContext.components[i]===(e==null?void 0:e.type))return ea(e,i);const s=j_((e==null?void 0:e.type)||{});return s||"Anonymous Component"}function Fs(e,t){return t=t||`${e.id}:root`,e.instanceMap.get(t)||e.instanceMap.get(":root")}var K_=class{constructor(){this.refEditor=new W_}set(e,t,n,r){const o=Array.isArray(t)?t:t.split(".");for(;o.length>1;){const l=o.shift();e instanceof Map&&(e=e.get(l)),e instanceof Set?e=Array.from(e.values())[l]:e=e[l],this.refEditor.isRef(e)&&(e=this.refEditor.get(e))}const s=o[0],i=this.refEditor.get(e)[s];r?r(e,s,n):this.refEditor.isRef(i)?this.refEditor.set(i,n):e[s]=n}get(e,t){const n=Array.isArray(t)?t:t.split(".");for(let r=0;r"u")return!1;const r=Array.isArray(t)?t.slice():t.split("."),o=n?2:1;for(;e&&r.length>o;){const s=r.shift();e=e[s],this.refEditor.isRef(e)&&(e=this.refEditor.get(e))}return e!=null&&Object.prototype.hasOwnProperty.call(e,r[0])}createDefaultSetCallback(e){return(t,n,r)=>{if((e.remove||e.newKey)&&(Array.isArray(t)?t.splice(n,1):pr(t)instanceof Map?t.delete(n):pr(t)instanceof Set?t.delete(Array.from(t.values())[n]):Reflect.deleteProperty(t,n)),!e.remove){const o=t[e.newKey||n];this.refEditor.isRef(o)?this.refEditor.set(o,r):pr(t)instanceof Map?t.set(e.newKey||n,r):pr(t)instanceof Set?t.add(r):t[e.newKey||n]=r}}}},W_=class{set(e,t){if(gs(e))e.value=t;else{if(e instanceof Set&&Array.isArray(t)){e.clear(),t.forEach(o=>e.add(o));return}const n=Object.keys(t);if(e instanceof Map){const o=new Set(e.keys());n.forEach(s=>{e.set(s,Reflect.get(t,s)),o.delete(s)}),o.forEach(s=>e.delete(s));return}const r=new Set(Object.keys(e));n.forEach(o=>{Reflect.set(e,o,Reflect.get(t,o)),r.delete(o)}),r.forEach(o=>Reflect.deleteProperty(e,o))}}get(e){return gs(e)?e.value:e}isRef(e){return gs(e)||cf(e)}};P();function Ti(e){return ff(e)?q_(e.subTree):e.subTree?[e.subTree.el]:[]}function q_(e){if(!e.children)return[];const t=[];return e.children.forEach(n=>{n.component?t.push(...Ti(n.component)):n!=null&&n.el&&t.push(n.el)}),t}P();P();function G_(){const e={top:0,bottom:0,left:0,right:0,get width(){return e.right-e.left},get height(){return e.bottom-e.top}};return e}var oo;function Y_(e){return oo||(oo=document.createRange()),oo.selectNode(e),oo.getBoundingClientRect()}function X_(e){const t=G_();if(!e.children)return t;for(let n=0,r=e.children.length;ne.bottom)&&(e.bottom=t.bottom),(!e.left||t.lefte.right)&&(e.right=t.right),e}var ta={top:0,left:0,right:0,bottom:0,width:0,height:0};function wn(e){const t=e.subTree.el;return typeof window>"u"?ta:ff(e)?X_(e.subTree):(t==null?void 0:t.nodeType)===1?t==null?void 0:t.getBoundingClientRect():e.subTree.component?wn(e.subTree.component):ta}var df="__vue-devtools-component-inspector__",hf="__vue-devtools-component-inspector__card__",pf="__vue-devtools-component-inspector__name__",gf="__vue-devtools-component-inspector__indicator__",mf={display:"block",zIndex:2147483640,position:"fixed",backgroundColor:"#42b88325",border:"1px solid #42b88350",borderRadius:"5px",transition:"all 0.1s ease-in",pointerEvents:"none"},J_={fontFamily:"Arial, Helvetica, sans-serif",padding:"5px 8px",borderRadius:"4px",textAlign:"left",position:"absolute",left:0,color:"#e9e9e9",fontSize:"14px",fontWeight:600,lineHeight:"24px",backgroundColor:"#42b883",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)"},Q_={display:"inline-block",fontWeight:400,fontStyle:"normal",fontSize:"12px",opacity:.7};function nr(){return document.getElementById(df)}function e0(){return document.getElementById(hf)}function t0(){return document.getElementById(gf)}function n0(){return document.getElementById(pf)}function Oi(e){return{left:`${Math.round(e.left*100)/100}px`,top:`${Math.round(e.top*100)/100}px`,width:`${Math.round(e.width*100)/100}px`,height:`${Math.round(e.height*100)/100}px`}}function xi(e){var t;const n=document.createElement("div");n.id=(t=e.elementId)!=null?t:df,Object.assign(n.style,{...mf,...Oi(e.bounds),...e.style});const r=document.createElement("span");r.id=hf,Object.assign(r.style,{...J_,top:e.bounds.top<35?0:"-35px"});const o=document.createElement("span");o.id=pf,o.innerHTML=`<${e.name}>  `;const s=document.createElement("i");return s.id=gf,s.innerHTML=`${Math.round(e.bounds.width*100)/100} x ${Math.round(e.bounds.height*100)/100}`,Object.assign(s.style,Q_),r.appendChild(o),r.appendChild(s),n.appendChild(r),document.body.appendChild(n),n}function Pi(e){const t=nr(),n=e0(),r=n0(),o=t0();t&&(Object.assign(t.style,{...mf,...Oi(e.bounds)}),Object.assign(n.style,{top:e.bounds.top<35?0:"-35px"}),r.innerHTML=`<${e.name}>  `,o.innerHTML=`${Math.round(e.bounds.width*100)/100} x ${Math.round(e.bounds.height*100)/100}`)}function r0(e){const t=wn(e);if(!t.width&&!t.height)return;const n=zo(e);nr()?Pi({bounds:t,name:n}):xi({bounds:t,name:n})}function vf(){const e=nr();e&&(e.style.display="none")}var Hs=null;function Bs(e){const t=e.target;if(t){const n=t.__vueParentComponent;if(n&&(Hs=n,n.vnode.el)){const o=wn(n),s=zo(n);nr()?Pi({bounds:o,name:s}):xi({bounds:o,name:s})}}}function o0(e,t){var n;if(e.preventDefault(),e.stopPropagation(),Hs){const r=(n=Ge.value)==null?void 0:n.app;z_({app:r,uid:r.uid,instance:Hs}).then(o=>{t(o)})}}var Ao=null;function s0(){vf(),window.removeEventListener("mouseover",Bs),window.removeEventListener("click",Ao,!0),Ao=null}function i0(){return window.addEventListener("mouseover",Bs),new Promise(e=>{function t(n){n.preventDefault(),n.stopPropagation(),o0(n,r=>{window.removeEventListener("click",t,!0),Ao=null,window.removeEventListener("mouseover",Bs);const o=nr();o&&(o.style.display="none"),e(JSON.stringify({id:r}))})}Ao=t,window.addEventListener("click",t,!0)})}function l0(e){const t=Fs(Ge.value,e.id);if(t){const[n]=Ti(t);if(typeof n.scrollIntoView=="function")n.scrollIntoView({behavior:"smooth"});else{const r=wn(t),o=document.createElement("div"),s={...Oi(r),position:"absolute"};Object.assign(o.style,s),document.body.appendChild(o),o.scrollIntoView({behavior:"smooth"}),setTimeout(()=>{document.body.removeChild(o)},2e3)}setTimeout(()=>{const r=wn(t);if(r.width||r.height){const o=zo(t),s=nr();s?Pi({...e,name:o,bounds:r}):xi({...e,name:o,bounds:r}),setTimeout(()=>{s&&(s.style.display="none")},1500)}},1200)}}P();var na,ra;(ra=(na=X).__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__)!=null||(na.__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__=!0);function a0(e){let t=0;const n=setInterval(()=>{X.__VUE_INSPECTOR__&&(clearInterval(n),t+=30,e()),t>=5e3&&clearInterval(n)},30)}function u0(){const e=X.__VUE_INSPECTOR__,t=e.openInEditor;e.openInEditor=async(...n)=>{e.disable(),t(...n)}}function c0(){return new Promise(e=>{function t(){u0(),e(X.__VUE_INSPECTOR__)}X.__VUE_INSPECTOR__?t():a0(()=>{t()})})}P();P();P();var f0="__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS_STATE__";function d0(){if(!of||typeof localStorage>"u"||localStorage===null)return{recordingState:!1,mouseEventEnabled:!1,keyboardEventEnabled:!1,componentEventEnabled:!1,performanceEventEnabled:!1,selected:""};const e=localStorage.getItem(f0);return e?JSON.parse(e):{recordingState:!1,mouseEventEnabled:!1,keyboardEventEnabled:!1,componentEventEnabled:!1,performanceEventEnabled:!1,selected:""}}P();P();P();var oa,sa;(sa=(oa=X).__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS)!=null||(oa.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS=[]);var h0=new Proxy(X.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS,{get(e,t,n){return Reflect.get(e,t,n)}});function p0(e,t){Me.timelineLayersState[t.id]=!1,h0.push({...e,descriptorId:t.id,appRecord:jo(t.app)})}var ia,la;(la=(ia=X).__VUE_DEVTOOLS_KIT_INSPECTOR__)!=null||(ia.__VUE_DEVTOOLS_KIT_INSPECTOR__=[]);var Ii=new Proxy(X.__VUE_DEVTOOLS_KIT_INSPECTOR__,{get(e,t,n){return Reflect.get(e,t,n)}}),_f=Kn(()=>{rr.hooks.callHook("sendInspectorToClient",yf())});function g0(e,t){var n,r;Ii.push({options:e,descriptor:t,treeFilterPlaceholder:(n=e.treeFilterPlaceholder)!=null?n:"Search tree...",stateFilterPlaceholder:(r=e.stateFilterPlaceholder)!=null?r:"Search state...",treeFilter:"",selectedNodeId:"",appRecord:jo(t.app)}),_f()}function yf(){return Ii.filter(e=>e.descriptor.app===Ge.value.app).filter(e=>e.descriptor.id!=="components").map(e=>{var t;const n=e.descriptor,r=e.options;return{id:r.id,label:r.label,logo:n.logo,icon:`custom-ic-baseline-${(t=r==null?void 0:r.icon)==null?void 0:t.replace(/_/g,"-")}`,packageName:n.packageName,homepage:n.homepage,pluginId:n.id}})}function uo(e,t){return Ii.find(n=>n.options.id===e&&(t?n.descriptor.app===t:!0))}function m0(){const e=lf();e.hook("addInspector",({inspector:r,plugin:o})=>{g0(r,o.descriptor)});const t=Kn(async({inspectorId:r,plugin:o})=>{var s;if(!r||!((s=o==null?void 0:o.descriptor)!=null&&s.app)||Me.highPerfModeEnabled)return;const i=uo(r,o.descriptor.app),l={app:o.descriptor.app,inspectorId:r,filter:(i==null?void 0:i.treeFilter)||"",rootNodes:[]};await new Promise(a=>{e.callHookWith(async u=>{await Promise.all(u.map(f=>f(l))),a()},"getInspectorTree")}),e.callHookWith(async a=>{await Promise.all(a.map(u=>u({inspectorId:r,rootNodes:l.rootNodes})))},"sendInspectorTreeToClient")},120);e.hook("sendInspectorTree",t);const n=Kn(async({inspectorId:r,plugin:o})=>{var s;if(!r||!((s=o==null?void 0:o.descriptor)!=null&&s.app)||Me.highPerfModeEnabled)return;const i=uo(r,o.descriptor.app),l={app:o.descriptor.app,inspectorId:r,nodeId:(i==null?void 0:i.selectedNodeId)||"",state:null},a={currentTab:`custom-inspector:${r}`};l.nodeId&&await new Promise(u=>{e.callHookWith(async f=>{await Promise.all(f.map(c=>c(l,a))),u()},"getInspectorState")}),e.callHookWith(async u=>{await Promise.all(u.map(f=>f({inspectorId:r,nodeId:l.nodeId,state:l.state})))},"sendInspectorStateToClient")},120);return e.hook("sendInspectorState",n),e.hook("customInspectorSelectNode",({inspectorId:r,nodeId:o,plugin:s})=>{const i=uo(r,s.descriptor.app);i&&(i.selectedNodeId=o)}),e.hook("timelineLayerAdded",({options:r,plugin:o})=>{p0(r,o.descriptor)}),e.hook("timelineEventAdded",({options:r,plugin:o})=>{var s;const i=["performance","component-event","keyboard","mouse"];Me.highPerfModeEnabled||!((s=Me.timelineLayersState)!=null&&s[o.descriptor.id])&&!i.includes(r.layerId)||e.callHookWith(async l=>{await Promise.all(l.map(a=>a(r)))},"sendTimelineEventToClient")}),e.hook("getComponentInstances",async({app:r})=>{const o=r.__VUE_DEVTOOLS_NEXT_APP_RECORD__;if(!o)return null;const s=o.id.toString();return[...o.instanceMap].filter(([l])=>l.split(":")[0]===s).map(([,l])=>l)}),e.hook("getComponentBounds",async({instance:r})=>wn(r)),e.hook("getComponentName",({instance:r})=>zo(r)),e.hook("componentHighlight",({uid:r})=>{const o=Ge.value.instanceMap.get(r);o&&r0(o)}),e.hook("componentUnhighlight",()=>{vf()}),e}var aa,ua;(ua=(aa=X).__VUE_DEVTOOLS_KIT_APP_RECORDS__)!=null||(aa.__VUE_DEVTOOLS_KIT_APP_RECORDS__=[]);var ca,fa;(fa=(ca=X).__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__)!=null||(ca.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__={});var da,ha;(ha=(da=X).__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__)!=null||(da.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__="");var pa,ga;(ga=(pa=X).__VUE_DEVTOOLS_KIT_CUSTOM_TABS__)!=null||(pa.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__=[]);var ma,va;(va=(ma=X).__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__)!=null||(ma.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__=[]);var En="__VUE_DEVTOOLS_KIT_GLOBAL_STATE__";function v0(){return{connected:!1,clientConnected:!1,vitePluginDetected:!0,appRecords:[],activeAppRecordId:"",tabs:[],commands:[],highPerfModeEnabled:!0,devtoolsClientDetected:{},perfUniqueGroupId:0,timelineLayersState:d0()}}var _a,ya;(ya=(_a=X)[En])!=null||(_a[En]=v0());var _0=Kn(e=>{rr.hooks.callHook("devtoolsStateUpdated",{state:e})});Kn((e,t)=>{rr.hooks.callHook("devtoolsConnectedUpdated",{state:e,oldState:t})});var Ko=new Proxy(X.__VUE_DEVTOOLS_KIT_APP_RECORDS__,{get(e,t,n){return t==="value"?X.__VUE_DEVTOOLS_KIT_APP_RECORDS__:X.__VUE_DEVTOOLS_KIT_APP_RECORDS__[t]}}),Ge=new Proxy(X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__,{get(e,t,n){return t==="value"?X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__:t==="id"?X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__:X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__[t]}});function bf(){_0({...X[En],appRecords:Ko.value,activeAppRecordId:Ge.id,tabs:X.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__,commands:X.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__})}function y0(e){X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__=e,bf()}function b0(e){X.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__=e,bf()}var Me=new Proxy(X[En],{get(e,t){return t==="appRecords"?Ko:t==="activeAppRecordId"?Ge.id:t==="tabs"?X.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__:t==="commands"?X.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__:X[En][t]},deleteProperty(e,t){return delete e[t],!0},set(e,t,n){return{...X[En]},e[t]=n,X[En][t]=n,!0}});function E0(e={}){var t,n,r;const{file:o,host:s,baseUrl:i=window.location.origin,line:l=0,column:a=0}=e;if(o){if(s==="chrome-extension"){const u=o.replace(/\\/g,"\\\\"),f=(n=(t=window.VUE_DEVTOOLS_CONFIG)==null?void 0:t.openInEditorHost)!=null?n:"/";fetch(`${f}__open-in-editor?file=${encodeURI(o)}`).then(c=>{if(!c.ok){const d=`Opening component ${u} failed`;console.log(`%c${d}`,"color:red")}})}else if(Me.vitePluginDetected){const u=(r=X.__VUE_DEVTOOLS_OPEN_IN_EDITOR_BASE_URL__)!=null?r:i;X.__VUE_INSPECTOR__.openInEditor(u,o,l,a)}}}P();P();P();P();P();var ba,Ea;(Ea=(ba=X).__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__)!=null||(ba.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__=[]);var Li=new Proxy(X.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__,{get(e,t,n){return Reflect.get(e,t,n)}});function $s(e){const t={};return Object.keys(e).forEach(n=>{t[n]=e[n].defaultValue}),t}function Ri(e){return`__VUE_DEVTOOLS_NEXT_PLUGIN_SETTINGS__${e}__`}function S0(e){var t,n,r;const o=(n=(t=Li.find(s=>{var i;return s[0].id===e&&!!((i=s[0])!=null&&i.settings)}))==null?void 0:t[0])!=null?n:null;return(r=o==null?void 0:o.settings)!=null?r:null}function Ef(e,t){var n,r,o;const s=Ri(e);if(s){const i=localStorage.getItem(s);if(i)return JSON.parse(i)}if(e){const i=(r=(n=Li.find(l=>l[0].id===e))==null?void 0:n[0])!=null?r:null;return $s((o=i==null?void 0:i.settings)!=null?o:{})}return $s(t)}function k0(e,t){const n=Ri(e);localStorage.getItem(n)||localStorage.setItem(n,JSON.stringify($s(t)))}function A0(e,t,n){const r=Ri(e),o=localStorage.getItem(r),s=JSON.parse(o||"{}"),i={...s,[t]:n};localStorage.setItem(r,JSON.stringify(i)),rr.hooks.callHookWith(l=>{l.forEach(a=>a({pluginId:e,key:t,oldValue:s[t],newValue:n,settings:i}))},"setPluginSettings")}P();P();P();P();P();P();P();P();P();P();P();var Sa,ka,ut=(ka=(Sa=X).__VUE_DEVTOOLS_HOOK)!=null?ka:Sa.__VUE_DEVTOOLS_HOOK=lf(),C0={vueAppInit(e){ut.hook("app:init",e)},vueAppUnmount(e){ut.hook("app:unmount",e)},vueAppConnected(e){ut.hook("app:connected",e)},componentAdded(e){return ut.hook("component:added",e)},componentEmit(e){return ut.hook("component:emit",e)},componentUpdated(e){return ut.hook("component:updated",e)},componentRemoved(e){return ut.hook("component:removed",e)},setupDevtoolsPlugin(e){ut.hook("devtools-plugin:setup",e)},perfStart(e){return ut.hook("perf:start",e)},perfEnd(e){return ut.hook("perf:end",e)}},Sf={on:C0,setupDevToolsPlugin(e,t){return ut.callHook("devtools-plugin:setup",e,t)}},w0=class{constructor({plugin:e,ctx:t}){this.hooks=t.hooks,this.plugin=e}get on(){return{visitComponentTree:e=>{this.hooks.hook("visitComponentTree",e)},inspectComponent:e=>{this.hooks.hook("inspectComponent",e)},editComponentState:e=>{this.hooks.hook("editComponentState",e)},getInspectorTree:e=>{this.hooks.hook("getInspectorTree",e)},getInspectorState:e=>{this.hooks.hook("getInspectorState",e)},editInspectorState:e=>{this.hooks.hook("editInspectorState",e)},inspectTimelineEvent:e=>{this.hooks.hook("inspectTimelineEvent",e)},timelineCleared:e=>{this.hooks.hook("timelineCleared",e)},setPluginSettings:e=>{this.hooks.hook("setPluginSettings",e)}}}notifyComponentUpdate(e){var t;if(Me.highPerfModeEnabled)return;const n=yf().find(r=>r.packageName===this.plugin.descriptor.packageName);if(n!=null&&n.id){if(e){const r=[e.appContext.app,e.uid,(t=e.parent)==null?void 0:t.uid,e];ut.callHook("component:updated",...r)}else ut.callHook("component:updated");this.hooks.callHook("sendInspectorState",{inspectorId:n.id,plugin:this.plugin})}}addInspector(e){this.hooks.callHook("addInspector",{inspector:e,plugin:this.plugin}),this.plugin.descriptor.settings&&k0(e.id,this.plugin.descriptor.settings)}sendInspectorTree(e){Me.highPerfModeEnabled||this.hooks.callHook("sendInspectorTree",{inspectorId:e,plugin:this.plugin})}sendInspectorState(e){Me.highPerfModeEnabled||this.hooks.callHook("sendInspectorState",{inspectorId:e,plugin:this.plugin})}selectInspectorNode(e,t){this.hooks.callHook("customInspectorSelectNode",{inspectorId:e,nodeId:t,plugin:this.plugin})}visitComponentTree(e){return this.hooks.callHook("visitComponentTree",e)}now(){return Me.highPerfModeEnabled?0:Date.now()}addTimelineLayer(e){this.hooks.callHook("timelineLayerAdded",{options:e,plugin:this.plugin})}addTimelineEvent(e){Me.highPerfModeEnabled||this.hooks.callHook("timelineEventAdded",{options:e,plugin:this.plugin})}getSettings(e){return Ef(e??this.plugin.descriptor.id,this.plugin.descriptor.settings)}getComponentInstances(e){return this.hooks.callHook("getComponentInstances",{app:e})}getComponentBounds(e){return this.hooks.callHook("getComponentBounds",{instance:e})}getComponentName(e){return this.hooks.callHook("getComponentName",{instance:e})}highlightElement(e){const t=e.__VUE_DEVTOOLS_NEXT_UID__;return this.hooks.callHook("componentHighlight",{uid:t})}unhighlightElement(){return this.hooks.callHook("componentUnhighlight")}},T0=w0;P();P();P();P();var O0="__vue_devtool_undefined__",x0="__vue_devtool_infinity__",P0="__vue_devtool_negative_infinity__",I0="__vue_devtool_nan__";P();P();var L0={[O0]:"undefined",[I0]:"NaN",[x0]:"Infinity",[P0]:"-Infinity"};Object.entries(L0).reduce((e,[t,n])=>(e[n]=t,e),{});P();P();P();P();P();var Aa,Ca;(Ca=(Aa=X).__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__)!=null||(Aa.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__=new Set);function R0(e,t){return Sf.setupDevToolsPlugin(e,t)}function D0(e,t){const[n,r]=e;if(n.app!==t)return;const o=new T0({plugin:{setupFn:r,descriptor:n},ctx:rr});n.packageName==="vuex"&&o.on.editInspectorState(s=>{o.sendInspectorState(s.inspectorId)}),r(o)}function kf(e){X.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.has(e)||Me.highPerfModeEnabled||(X.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.add(e),Li.forEach(t=>{D0(t,e)}))}P();P();var Rr="__VUE_DEVTOOLS_ROUTER__",Wn="__VUE_DEVTOOLS_ROUTER_INFO__",wa,Ta;(Ta=(wa=X)[Wn])!=null||(wa[Wn]={currentRoute:null,routes:[]});var Oa,xa;(xa=(Oa=X)[Rr])!=null||(Oa[Rr]={});new Proxy(X[Wn],{get(e,t){return X[Wn][t]}});new Proxy(X[Rr],{get(e,t){if(t==="value")return X[Rr]}});function N0(e){const t=new Map;return((e==null?void 0:e.getRoutes())||[]).filter(n=>!t.has(n.path)&&t.set(n.path,1))}function Di(e){return e.map(t=>{let{path:n,name:r,children:o,meta:s}=t;return o!=null&&o.length&&(o=Di(o)),{path:n,name:r,children:o,meta:s}})}function V0(e){if(e){const{fullPath:t,hash:n,href:r,path:o,name:s,matched:i,params:l,query:a}=e;return{fullPath:t,hash:n,href:r,path:o,name:s,params:l,query:a,matched:Di(i)}}return e}function M0(e,t){function n(){var r;const o=(r=e.app)==null?void 0:r.config.globalProperties.$router,s=V0(o==null?void 0:o.currentRoute.value),i=Di(N0(o)),l=console.warn;console.warn=()=>{},X[Wn]={currentRoute:s?Ql(s):{},routes:Ql(i)},X[Rr]=o,console.warn=l}n(),Sf.on.componentUpdated(Kn(()=>{var r;((r=t.value)==null?void 0:r.app)===e.app&&(n(),!Me.highPerfModeEnabled&&rr.hooks.callHook("routerInfoUpdated",{state:X[Wn]}))},200))}function F0(e){return{async getInspectorTree(t){const n={...t,app:Ge.value.app,rootNodes:[]};return await new Promise(r=>{e.callHookWith(async o=>{await Promise.all(o.map(s=>s(n))),r()},"getInspectorTree")}),n.rootNodes},async getInspectorState(t){const n={...t,app:Ge.value.app,state:null},r={currentTab:`custom-inspector:${t.inspectorId}`};return await new Promise(o=>{e.callHookWith(async s=>{await Promise.all(s.map(i=>i(n,r))),o()},"getInspectorState")}),n.state},editInspectorState(t){const n=new K_,r={...t,app:Ge.value.app,set:(o,s=t.path,i=t.state.value,l)=>{n.set(o,s,i,l||n.createDefaultSetCallback(t.state))}};e.callHookWith(o=>{o.forEach(s=>s(r))},"editInspectorState")},sendInspectorState(t){const n=uo(t);e.callHook("sendInspectorState",{inspectorId:t,plugin:{descriptor:n.descriptor,setupFn:()=>({})}})},inspectComponentInspector(){return i0()},cancelInspectComponentInspector(){return s0()},getComponentRenderCode(t){const n=Fs(Ge.value,t);if(n)return(n==null?void 0:n.type)instanceof Function?n.type.toString():n.render.toString()},scrollToComponent(t){return l0({id:t})},openInEditor:E0,getVueInspector:c0,toggleApp(t){const n=Ko.value.find(r=>r.id===t);n&&(b0(t),y0(n),M0(n,Ge),_f(),kf(n.app))},inspectDOM(t){const n=Fs(Ge.value,t);if(n){const[r]=Ti(n);r&&(X.__VUE_DEVTOOLS_INSPECT_DOM_TARGET__=r)}},updatePluginSettings(t,n,r){A0(t,n,r)},getPluginSettings(t){return{options:S0(t),values:Ef(t)}}}}P();var Pa,Ia;(Ia=(Pa=X).__VUE_DEVTOOLS_ENV__)!=null||(Pa.__VUE_DEVTOOLS_ENV__={vitePluginDetected:!1});var La=m0(),Ra,Da;(Da=(Ra=X).__VUE_DEVTOOLS_KIT_CONTEXT__)!=null||(Ra.__VUE_DEVTOOLS_KIT_CONTEXT__={hooks:La,get state(){return{...Me,activeAppRecordId:Ge.id,activeAppRecord:Ge.value,appRecords:Ko.value}},api:F0(La)});var rr=X.__VUE_DEVTOOLS_KIT_CONTEXT__;P();F_(B_());var Na,Va;(Va=(Na=X).__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__)!=null||(Na.__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__={id:0,appIds:new Set});P();function H0(e){Me.highPerfModeEnabled=e??!Me.highPerfModeEnabled,!e&&Ge.value&&kf(Ge.value.app)}P();P();P();function B0(e){Me.devtoolsClientDetected={...Me.devtoolsClientDetected,...e};const t=Object.values(Me.devtoolsClientDetected).some(Boolean);H0(!t)}var Ma,Fa;(Fa=(Ma=X).__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__)!=null||(Ma.__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__=B0);P();P();P();P();P();P();P();var $0=class{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(e,t){this.keyToValue.set(e,t),this.valueToKey.set(t,e)}getByKey(e){return this.keyToValue.get(e)}getByValue(e){return this.valueToKey.get(e)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}},Af=class{constructor(e){this.generateIdentifier=e,this.kv=new $0}register(e,t){this.kv.getByValue(e)||(t||(t=this.generateIdentifier(e)),this.kv.set(t,e))}clear(){this.kv.clear()}getIdentifier(e){return this.kv.getByValue(e)}getValue(e){return this.kv.getByKey(e)}},U0=class extends Af{constructor(){super(e=>e.name),this.classToAllowedProps=new Map}register(e,t){typeof t=="object"?(t.allowProps&&this.classToAllowedProps.set(e,t.allowProps),super.register(e,t.identifier)):super.register(e,t)}getAllowedProps(e){return this.classToAllowedProps.get(e)}};P();P();function j0(e){if("values"in Object)return Object.values(e);const t=[];for(const n in e)e.hasOwnProperty(n)&&t.push(e[n]);return t}function z0(e,t){const n=j0(e);if("find"in n)return n.find(t);const r=n;for(let o=0;ot(r,n))}function co(e,t){return e.indexOf(t)!==-1}function Ha(e,t){for(let n=0;nt.isApplicable(e))}findByName(e){return this.transfomers[e]}};P();P();var W0=e=>Object.prototype.toString.call(e).slice(8,-1),Cf=e=>typeof e>"u",q0=e=>e===null,Dr=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,Us=e=>Dr(e)&&Object.keys(e).length===0,un=e=>Array.isArray(e),G0=e=>typeof e=="string",Y0=e=>typeof e=="number"&&!isNaN(e),X0=e=>typeof e=="boolean",Z0=e=>e instanceof RegExp,Nr=e=>e instanceof Map,Vr=e=>e instanceof Set,wf=e=>W0(e)==="Symbol",J0=e=>e instanceof Date&&!isNaN(e.valueOf()),Q0=e=>e instanceof Error,Ba=e=>typeof e=="number"&&isNaN(e),e1=e=>X0(e)||q0(e)||Cf(e)||Y0(e)||G0(e)||wf(e),t1=e=>typeof e=="bigint",n1=e=>e===1/0||e===-1/0,r1=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),o1=e=>e instanceof URL;P();var Tf=e=>e.replace(/\./g,"\\."),ms=e=>e.map(String).map(Tf).join("."),kr=e=>{const t=[];let n="";for(let o=0;onull,()=>{}),Ct(t1,"bigint",e=>e.toString(),e=>typeof BigInt<"u"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),Ct(J0,"Date",e=>e.toISOString(),e=>new Date(e)),Ct(Q0,"Error",(e,t)=>{const n={name:e.name,message:e.message};return t.allowedErrorProps.forEach(r=>{n[r]=e[r]}),n},(e,t)=>{const n=new Error(e.message);return n.name=e.name,n.stack=e.stack,t.allowedErrorProps.forEach(r=>{n[r]=e[r]}),n}),Ct(Z0,"regexp",e=>""+e,e=>{const t=e.slice(1,e.lastIndexOf("/")),n=e.slice(e.lastIndexOf("/")+1);return new RegExp(t,n)}),Ct(Vr,"set",e=>[...e.values()],e=>new Set(e)),Ct(Nr,"map",e=>[...e.entries()],e=>new Map(e)),Ct(e=>Ba(e)||n1(e),"number",e=>Ba(e)?"NaN":e>0?"Infinity":"-Infinity",Number),Ct(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),Ct(o1,"URL",e=>e.toString(),e=>new URL(e))];function Wo(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var xf=Wo((e,t)=>wf(e)?!!t.symbolRegistry.getIdentifier(e):!1,(e,t)=>["symbol",t.symbolRegistry.getIdentifier(e)],e=>e.description,(e,t,n)=>{const r=n.symbolRegistry.getValue(t[1]);if(!r)throw new Error("Trying to deserialize unknown symbol");return r}),s1=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,t)=>(e[t.name]=t,e),{}),Pf=Wo(r1,e=>["typed-array",e.constructor.name],e=>[...e],(e,t)=>{const n=s1[t[1]];if(!n)throw new Error("Trying to deserialize unknown typed array");return new n(e)});function If(e,t){return e!=null&&e.constructor?!!t.classRegistry.getIdentifier(e.constructor):!1}var Lf=Wo(If,(e,t)=>["class",t.classRegistry.getIdentifier(e.constructor)],(e,t)=>{const n=t.classRegistry.getAllowedProps(e.constructor);if(!n)return{...e};const r={};return n.forEach(o=>{r[o]=e[o]}),r},(e,t,n)=>{const r=n.classRegistry.getValue(t[1]);if(!r)throw new Error("Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564");return Object.assign(Object.create(r.prototype),e)}),Rf=Wo((e,t)=>!!t.customTransformerRegistry.findApplicable(e),(e,t)=>["custom",t.customTransformerRegistry.findApplicable(e).name],(e,t)=>t.customTransformerRegistry.findApplicable(e).serialize(e),(e,t,n)=>{const r=n.customTransformerRegistry.findByName(t[1]);if(!r)throw new Error("Trying to deserialize unknown custom value");return r.deserialize(e)}),i1=[Lf,xf,Rf,Pf],$a=(e,t)=>{const n=Ha(i1,o=>o.isApplicable(e,t));if(n)return{value:n.transform(e,t),type:n.annotation(e,t)};const r=Ha(Of,o=>o.isApplicable(e,t));if(r)return{value:r.transform(e,t),type:r.annotation}},Df={};Of.forEach(e=>{Df[e.annotation]=e});var l1=(e,t,n)=>{if(un(t))switch(t[0]){case"symbol":return xf.untransform(e,t,n);case"class":return Lf.untransform(e,t,n);case"custom":return Rf.untransform(e,t,n);case"typed-array":return Pf.untransform(e,t,n);default:throw new Error("Unknown transformation: "+t)}else{const r=Df[t];if(!r)throw new Error("Unknown transformation: "+t);return r.untransform(e,n)}};P();var In=(e,t)=>{const n=e.keys();for(;t>0;)n.next(),t--;return n.next().value};function Nf(e){if(co(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(co(e,"prototype"))throw new Error("prototype is not allowed as a property");if(co(e,"constructor"))throw new Error("constructor is not allowed as a property")}var a1=(e,t)=>{Nf(t);for(let n=0;n{if(Nf(t),t.length===0)return n(e);let r=e;for(let s=0;szs(s,t,[...n,...kr(i)]));return}const[r,o]=e;o&&qn(o,(s,i)=>{zs(s,t,[...n,...kr(i)])}),t(r,n)}function u1(e,t,n){return zs(t,(r,o)=>{e=js(e,o,s=>l1(s,r,n))}),e}function c1(e,t){function n(r,o){const s=a1(e,kr(o));r.map(kr).forEach(i=>{e=js(e,i,()=>s)})}if(un(t)){const[r,o]=t;r.forEach(s=>{e=js(e,kr(s),()=>e)}),o&&qn(o,n)}else qn(t,n);return e}var f1=(e,t)=>Dr(e)||un(e)||Nr(e)||Vr(e)||If(e,t);function d1(e,t,n){const r=n.get(e);r?r.push(t):n.set(e,[t])}function h1(e,t){const n={};let r;return e.forEach(o=>{if(o.length<=1)return;t||(o=o.map(l=>l.map(String)).sort((l,a)=>l.length-a.length));const[s,...i]=o;s.length===0?r=i.map(ms):n[ms(s)]=i.map(ms)}),r?Us(n)?[r]:[r,n]:Us(n)?void 0:n}var Vf=(e,t,n,r,o=[],s=[],i=new Map)=>{var l;const a=e1(e);if(!a){d1(e,o,t);const v=i.get(e);if(v)return r?{transformedValue:null}:v}if(!f1(e,n)){const v=$a(e,n),_=v?{transformedValue:v.value,annotations:[v.type]}:{transformedValue:e};return a||i.set(e,_),_}if(co(s,e))return{transformedValue:null};const u=$a(e,n),f=(l=u==null?void 0:u.value)!=null?l:e,c=un(f)?[]:{},d={};qn(f,(v,_)=>{if(_==="__proto__"||_==="constructor"||_==="prototype")throw new Error(`Detected property ${_}. This is a prototype pollution risk, please remove it from your object.`);const y=Vf(v,t,n,r,[...o,_],[...s,e],i);c[_]=y.transformedValue,un(y.annotations)?d[_]=y.annotations:Dr(y.annotations)&&qn(y.annotations,(E,k)=>{d[Tf(_)+"."+k]=E})});const h=Us(d)?{transformedValue:c,annotations:u?[u.type]:void 0}:{transformedValue:c,annotations:u?[u.type,d]:d};return a||i.set(e,h),h};P();P();function Mf(e){return Object.prototype.toString.call(e).slice(8,-1)}function Ua(e){return Mf(e)==="Array"}function p1(e){if(Mf(e)!=="Object")return!1;const t=Object.getPrototypeOf(e);return!!t&&t.constructor===Object&&t===Object.prototype}function g1(e,t,n,r,o){const s={}.propertyIsEnumerable.call(r,t)?"enumerable":"nonenumerable";s==="enumerable"&&(e[t]=n),o&&s==="nonenumerable"&&Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}function Ks(e,t={}){if(Ua(e))return e.map(o=>Ks(o,t));if(!p1(e))return e;const n=Object.getOwnPropertyNames(e),r=Object.getOwnPropertySymbols(e);return[...n,...r].reduce((o,s)=>{if(Ua(t.props)&&!t.props.includes(s))return o;const i=e[s],l=Ks(i,t);return g1(o,s,l,e,t.nonenumerable),o},{})}var Ce=class{constructor({dedupe:e=!1}={}){this.classRegistry=new U0,this.symbolRegistry=new Af(t=>{var n;return(n=t.description)!=null?n:""}),this.customTransformerRegistry=new K0,this.allowedErrorProps=[],this.dedupe=e}serialize(e){const t=new Map,n=Vf(e,t,this,this.dedupe),r={json:n.transformedValue};n.annotations&&(r.meta={...r.meta,values:n.annotations});const o=h1(t,this.dedupe);return o&&(r.meta={...r.meta,referentialEqualities:o}),r}deserialize(e){const{json:t,meta:n}=e;let r=Ks(t);return n!=null&&n.values&&(r=u1(r,n.values,this)),n!=null&&n.referentialEqualities&&(r=c1(r,n.referentialEqualities)),r}stringify(e){return JSON.stringify(this.serialize(e))}parse(e){return this.deserialize(JSON.parse(e))}registerClass(e,t){this.classRegistry.register(e,t)}registerSymbol(e,t){this.symbolRegistry.register(e,t)}registerCustom(e,t){this.customTransformerRegistry.register({name:t,...e})}allowErrorProps(...e){this.allowedErrorProps.push(...e)}};Ce.defaultInstance=new Ce;Ce.serialize=Ce.defaultInstance.serialize.bind(Ce.defaultInstance);Ce.deserialize=Ce.defaultInstance.deserialize.bind(Ce.defaultInstance);Ce.stringify=Ce.defaultInstance.stringify.bind(Ce.defaultInstance);Ce.parse=Ce.defaultInstance.parse.bind(Ce.defaultInstance);Ce.registerClass=Ce.defaultInstance.registerClass.bind(Ce.defaultInstance);Ce.registerSymbol=Ce.defaultInstance.registerSymbol.bind(Ce.defaultInstance);Ce.registerCustom=Ce.defaultInstance.registerCustom.bind(Ce.defaultInstance);Ce.allowErrorProps=Ce.defaultInstance.allowErrorProps.bind(Ce.defaultInstance);P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();P();var ja,za;(za=(ja=X).__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__)!=null||(ja.__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__=[]);var Ka,Wa;(Wa=(Ka=X).__VUE_DEVTOOLS_KIT_RPC_CLIENT__)!=null||(Ka.__VUE_DEVTOOLS_KIT_RPC_CLIENT__=null);var qa,Ga;(Ga=(qa=X).__VUE_DEVTOOLS_KIT_RPC_SERVER__)!=null||(qa.__VUE_DEVTOOLS_KIT_RPC_SERVER__=null);var Ya,Xa;(Xa=(Ya=X).__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__)!=null||(Ya.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__=null);var Za,Ja;(Ja=(Za=X).__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__)!=null||(Za.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__=null);var Qa,eu;(eu=(Qa=X).__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__)!=null||(Qa.__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__=null);P();P();P();P();P();P();P();const m1=JSON.parse(`{"repo":"doocs/qcloud-im-server-sdk-java","logo":"https://avatars.githubusercontent.com/u/43716716?s=200&v=4","open":true,"contributorsText":"贡献者","docsDir":"docs","editLinkText":"编辑","lastUpdatedText":"最近更新时间","locales":{"/":{"tip":"说明","warning":"注意","danger":"警告","selectLanguageName":"English"}},"sidebar":[{"text":"指南","children":["/guide/README.md","/guide/quickstart.md","/guide/account.md","/guide/message.md","/guide/member.md","/guide/profile.md","/guide/sns.md","/guide/recent_contact.md","/guide/group.md","/guide/operation_1.md","/guide/operation_2.md","/guide/robot.md","/guide/audit.md","/guide/official_account.md"]}],"colorMode":"auto","colorModeSwitch":true,"navbar":[],"selectLanguageText":"Languages","selectLanguageAriaLabel":"Select language","sidebarDepth":2,"editLink":true,"lastUpdated":true,"contributors":true,"notFound":["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],"backToHome":"Take me home","openInNewWindow":"open in new window","toggleColorMode":"toggle color mode","toggleSidebar":"toggle sidebar"}`),v1=ce(m1),Ff=()=>v1,Hf=Symbol(""),_1=()=>{const e=Qe(Hf);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},y1=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},b1=Wt({enhance({app:e}){const t=Ff(),n=e._context.provides[mi],r=F(()=>y1(t.value,n.routeLocale.value));e.provide(Hf,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}}),R0({app:e,id:"org.vuejs.vuepress.plugin-theme-data",label:"VuePress Theme Data Plugin",packageName:"@vuepress/plugin-theme-data",homepage:"https://v2.vuepress.vuejs.org",logo:"https://v2.vuepress.vuejs.org/images/hero.png",componentStateTypes:["VuePress"]},o=>{o.on.inspectComponent(s=>{s.instanceData.state.push({type:"VuePress",key:"themeData",editable:!1,value:t.value},{type:"VuePress",key:"themeLocaleData",editable:!1,value:r.value})})})}}),E1=Object.freeze(Object.defineProperty({__proto__:null,default:b1},Symbol.toStringTag,{value:"Module"})),S1=()=>Ff(),He=()=>_1(),Bf=Symbol(""),k1=e=>{const t=(n=e.value)=>{const r=window.document.documentElement;r.dataset.theme=n?"dark":"light"};Ye(()=>{Ue(e,t,{immediate:!0})}),Do(()=>{t()})},Ni=()=>{const e=Qe(Bf);if(!e)throw new Error("useDarkMode() is called without provider.");return e},A1=()=>{const e=He(),t=ov(),n=Ai("vuepress-color-scheme",e.value.colorMode),r=F({get(){return e.value.colorModeSwitch?n.value==="auto"?t.value:n.value==="dark":e.value.colorMode==="dark"},set(o){o===t.value?n.value="auto":n.value=o?"dark":"light"}});An(Bf,r),k1(r)};let vs=null,cr=null;const C1={wait:()=>vs,pending:()=>{vs=new Promise(e=>{cr=e})},resolve:()=>{cr==null||cr(),vs=null,cr=null}},$f=()=>C1,Gn=(e,t)=>{const{notFound:n,meta:r,path:o}=Lr(e,t);return n?{text:o,link:o}:{text:r.title||o,link:o}},tu=e=>decodeURI(e).replace(/#.*$/,"").replace(/(index)?\.(md|html)$/,""),w1=(e,t)=>{if(t.hash===e)return!0;const n=tu(t.path),r=tu(e);return n===r},Uf=(e,t)=>e.link&&w1(e.link,t)?!0:"children"in e?e.children.some(n=>Uf(n,t)):!1,jf=e=>!tg(e)&&!Kr(e),zf=e=>!Mo(e)||e.includes("github.com")?"GitHub":e.includes("bitbucket.org")?"Bitbucket":e.includes("gitlab.com")?"GitLab":e.includes("gitee.com")?"Gitee":null,T1={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},O1=({docsRepo:e,editLinkPattern:t})=>{if(t)return t;const n=zf(e);return n!==null?T1[n]:null},x1=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const s=O1({docsRepo:e,editLinkPattern:o});return s?s.replace(/:repo/,Mo(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,Ac(`${kc(n)}/${r}`)):null},Bn=(e="",t="")=>nf(t)||Kr(t)?t:`${cg(e)}${t}`,fo=ce([]),P1=()=>{const e=cn(),t=He(),n=kt(),r=F(()=>n.value.sidebarDepth??t.value.sidebarDepth??2);e.beforeEach((s,i)=>{s.path!==i.path&&(fo.value=[])});const o=()=>{if(r.value<=0){fo.value=[];return}fo.value=bv({levels:[2,r.value+1],ignore:[".vp-badge"]})};Ue(r,o),Ye(o)},I1=()=>fo,L1=e=>({text:e.title,link:e.link,children:Vi(e.children)}),Vi=e=>e?e.map(t=>L1(t)):[],Kf=(e,t)=>[{text:e.title,children:Vi(t)}],Wf=(e,t,n,r="")=>{const o=(s,i)=>{var a;const l=vt(s)?Gn(Bn(i,s)):vt(s.link)?{...s,link:jf(s.link)?Gn(Bn(i,s.link)).link:s.link}:s;if("children"in l)return{...l,children:l.children.map(u=>o(u,Bn(i,l.prefix)))};if(l.link===n){const u=((a=t[0])==null?void 0:a.level)===1?t[0].children:t;return{...l,children:Vi(u)}}return l};return e.map(s=>o(s,r))},R1=(e,t,n,r)=>{const o=kv(e).sort((s,i)=>i.length-s.length);for(const s of o)if(tf(decodeURI(r),s)){const i=e[s];return i?i==="heading"?Kf(t,n):Wf(i,n,r,s):[]}return console.warn(`${decodeURI(r)} is missing sidebar config.`),[]},qf=Symbol("sidebarItems"),Mi=()=>{const e=Qe(qf);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},D1=(e,t,n,r,o)=>e===!1?[]:e==="heading"?Kf(t,o):Array.isArray(e)?Wf(e,o,n,r):hi(e)?R1(e,t,o,n):[],N1=()=>{const e=He(),t=kt(),n=Qn(),r=Kt(),o=er(),s=I1(),i=F(()=>t.value.home?!1:t.value.sidebar??e.value.sidebar??"heading"),l=F(()=>D1(i.value,n.value,r.path,o.value,s.value));An(qf,l)},V1=pe({__name:"Badge",props:{type:{default:"tip"},text:{default:""},vertical:{default:void 0}},setup(e,{expose:t}){t();const n={};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),xe=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n};function M1(e,t,n,r,o,s){return Y(),ne("span",{class:rt(["vp-badge",n.type]),style:Xn({verticalAlign:n.vertical})},[Le(e.$slots,"default",{},()=>[sn(Ie(n.text),1)])],6)}const F1=xe(V1,[["render",M1],["__file","Badge.vue"]]),H1=pe({__name:"VPHomeFeatures",setup(e,{expose:t}){t();const n=kt(),r=F(()=>n.value.features??[]),o={frontmatter:n,features:r};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),B1={key:0,class:"vp-features"};function $1(e,t,n,r,o,s){return r.features.length?(Y(),ne("div",B1,[(Y(!0),ne(_e,null,rn(r.features,i=>(Y(),ne("div",{key:i.title,class:"vp-feature"},[ie("h2",null,Ie(i.title),1),ie("p",null,Ie(i.details),1)]))),128))])):Fe("",!0)}const U1=xe(H1,[["render",$1],["__file","VPHomeFeatures.vue"]]),j1=pe({__name:"VPHomeFooter",setup(e,{expose:t}){t();const n=kt(),r=F(()=>n.value.footer),o=F(()=>n.value.footerHtml),s={frontmatter:n,footer:r,footerHtml:o};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),z1=["innerHTML"],K1=["textContent"];function W1(e,t,n,r,o,s){return r.footer?(Y(),ne(_e,{key:0},[r.footerHtml?(Y(),ne("div",{key:0,class:"vp-footer","vp-footer":"",innerHTML:r.footer},null,8,z1)):(Y(),ne("div",{key:1,class:"vp-footer","vp-footer":"",textContent:Ie(r.footer)},null,8,K1))],64)):Fe("",!0)}const q1=xe(j1,[["render",W1],["__file","VPHomeFooter.vue"]]),G1=pe({__name:"VPHomeHero",setup(e,{expose:t}){t();const n=kt(),r=vi(),o=Ni(),s=F(()=>n.value.heroText===null?null:n.value.heroText||r.value.title||"Hello"),i=F(()=>n.value.tagline===null?null:n.value.tagline||r.value.description||"Welcome to your VuePress site"),l=F(()=>o.value&&n.value.heroImageDark!==void 0?n.value.heroImageDark:n.value.heroImage),a=F(()=>n.value.heroAlt||s.value||"hero"),u=F(()=>n.value.heroHeight??280),f=F(()=>Array.isArray(n.value.actions)?n.value.actions.map(({text:h,link:v,type:_="primary"})=>({text:h,link:v,type:_})):[]),d={frontmatter:n,siteLocale:r,isDarkMode:o,heroText:s,tagline:i,heroImage:l,heroAlt:a,heroHeight:u,actions:f,HomeHeroImage:()=>{if(!l.value)return null;const h=ue("img",{class:"vp-hero-image",src:bi(l.value),alt:a.value,height:u.value});return n.value.heroImageDark===void 0?h:ue(_i,()=>h)},get AutoLink(){return tr}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),Y1={class:"vp-hero"},X1={key:0,id:"main-title"},Z1={key:1,class:"vp-hero-description"},J1={key:2,class:"vp-hero-actions"};function Q1(e,t,n,r,o,s){return Y(),ne("header",Y1,[le(r.HomeHeroImage),r.heroText?(Y(),ne("h1",X1,Ie(r.heroText),1)):Fe("",!0),r.tagline?(Y(),ne("p",Z1,Ie(r.tagline),1)):Fe("",!0),r.actions.length?(Y(),ne("p",J1,[(Y(!0),ne(_e,null,rn(r.actions,i=>(Y(),Re(r.AutoLink,{key:i.text,class:rt(["vp-hero-action-button",[i.type]]),config:i},null,8,["class","config"]))),128))])):Fe("",!0)])}const ey=xe(G1,[["render",Q1],["__file","VPHomeHero.vue"]]),ty=pe({__name:"VPHome",setup(e,{expose:t}){t();const n={VPHomeFeatures:U1,VPHomeFooter:q1,VPHomeHero:ey,get Content(){return yi}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),ny={class:"vp-home"},ry={class:"theme-default-content","vp-content":""};function oy(e,t,n,r,o,s){return Y(),ne("main",ny,[le(r.VPHomeHero),le(r.VPHomeFeatures),ie("div",ry,[le(r.Content)]),le(r.VPHomeFooter)])}const sy=xe(ty,[["render",oy],["__file","VPHome.vue"]]),iy=pe({__name:"VPNavbarBrand",setup(e,{expose:t}){t();const n=er(),r=vi(),o=He(),s=Ni(),i=F(()=>o.value.home||n.value),l=F(()=>r.value.title),a=F(()=>s.value&&o.value.logoDark!==void 0?o.value.logoDark:o.value.logo),u=F(()=>o.value.logoAlt??l.value),f=F(()=>l.value.toLocaleUpperCase().trim()===u.value.toLocaleUpperCase().trim()),d={routeLocale:n,siteLocale:r,themeLocale:o,isDarkMode:s,navbarBrandLink:i,navbarBrandTitle:l,navbarBrandLogo:a,navbarBrandLogoAlt:u,navBarLogoAltMatchesTitle:f,NavbarBrandLogo:()=>{if(!a.value)return null;const h=ue("img",{class:"vp-site-logo",src:bi(a.value),alt:u.value});return o.value.logoDark===void 0?h:ue(_i,()=>h)},get RouteLink(){return Bo}};return Object.defineProperty(d,"__isScriptSetup",{enumerable:!1,value:!0}),d}}),ly=["aria-hidden"];function ay(e,t,n,r,o,s){return Y(),Re(r.RouteLink,{to:r.navbarBrandLink},{default:Ve(()=>[le(r.NavbarBrandLogo),r.navbarBrandTitle?(Y(),ne("span",{key:0,class:rt(["vp-site-name",{"vp-hide-mobile":r.navbarBrandLogo}]),"aria-hidden":r.navBarLogoAltMatchesTitle},Ie(r.navbarBrandTitle),11,ly)):Fe("",!0)]),_:1},8,["to"])}const uy=xe(iy,[["render",ay],["__file","VPNavbarBrand.vue"]]),cy=pe({__name:"VPDropdownTransition",setup(e,{expose:t}){t();const o={setHeight:s=>{s.style.height=`${s.scrollHeight}px`},unsetHeight:s=>{s.style.height=""}};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}});function fy(e,t,n,r,o,s){return Y(),Re(di,{name:"vp-dropdown",onEnter:r.setHeight,onAfterEnter:r.unsetHeight,onBeforeLeave:r.setHeight},{default:Ve(()=>[Le(e.$slots,"default")]),_:3})}const Gf=xe(cy,[["render",fy],["__file","VPDropdownTransition.vue"]]),dy=pe({__name:"VPNavbarDropdown",props:{config:{}},setup(e,{expose:t}){t();const n=e,{config:r}=ri(n),o=Kt(),[s,i]=Xc(!1),l=F(()=>r.value.ariaLabel||r.value.text),a=(c,d)=>d[d.length-1]===c,u=c=>{c.detail===0?i():i(!1)};Ue(()=>o.path,()=>{i(!1)});const f={props:n,config:r,route:o,open:s,toggleOpen:i,dropdownAriaLabel:l,isLastItemOfArray:a,handleDropdown:u,VPDropdownTransition:Gf,get AutoLink(){return tr}};return Object.defineProperty(f,"__isScriptSetup",{enumerable:!1,value:!0}),f}}),hy=["aria-label"],py={class:"title"},gy=["aria-label"],my={class:"title"},vy={class:"vp-navbar-dropdown"},_y={class:"vp-navbar-dropdown-subtitle"},yy={key:1},by={class:"vp-navbar-dropdown-subitem-wrapper"};function Ey(e,t,n,r,o,s){return Y(),ne("div",{class:rt(["vp-navbar-dropdown-wrapper",{open:r.open}])},[ie("button",{class:"vp-navbar-dropdown-title",type:"button","aria-label":r.dropdownAriaLabel,onClick:r.handleDropdown},[ie("span",py,Ie(r.config.text),1),t[1]||(t[1]=ie("span",{class:"arrow down"},null,-1))],8,hy),ie("button",{class:"vp-navbar-dropdown-title-mobile",type:"button","aria-label":r.dropdownAriaLabel,onClick:t[0]||(t[0]=()=>r.toggleOpen())},[ie("span",my,Ie(r.config.text),1),ie("span",{class:rt(["arrow",r.open?"down":"right"])},null,2)],8,gy),le(r.VPDropdownTransition,null,{default:Ve(()=>[_o(ie("ul",vy,[(Y(!0),ne(_e,null,rn(r.config.children,i=>(Y(),ne("li",{key:i.text,class:"vp-navbar-dropdown-item"},["children"in i?(Y(),ne(_e,{key:0},[ie("h4",_y,[i.link?(Y(),Re(r.AutoLink,{key:0,config:i,onFocusout:()=>{r.isLastItemOfArray(i,r.config.children)&&i.children.length===0&&(r.open=!1)}},null,8,["config","onFocusout"])):(Y(),ne("span",yy,Ie(i.text),1))]),ie("ul",by,[(Y(!0),ne(_e,null,rn(i.children,l=>(Y(),ne("li",{key:l.link,class:"vp-navbar-dropdown-subitem"},[le(r.AutoLink,{config:l,onFocusout:()=>{r.isLastItemOfArray(l,i.children)&&r.isLastItemOfArray(i,r.config.children)&&r.toggleOpen(!1)}},null,8,["config","onFocusout"])]))),128))])],64)):(Y(),Re(r.AutoLink,{key:1,config:i,onFocusout:()=>{r.isLastItemOfArray(i,r.config.children)&&r.toggleOpen(!1)}},null,8,["config","onFocusout"]))]))),128))],512),[[ko,r.open]])]),_:1})],2)}const Sy=xe(dy,[["render",Ey],["__file","VPNavbarDropdown.vue"]]),Yf=(e,t="")=>vt(e)?Gn(Bn(t,e)):"children"in e?{...e,children:e.children.map(n=>Yf(n,Bn(t,e.prefix)))}:{...e,link:jf(e.link)?Gn(Bn(t,e.link)).link:e.link},ky=()=>{const e=He();return F(()=>(e.value.navbar||[]).map(t=>Yf(t)))},Ay=()=>{const e=He(),t=F(()=>e.value.repo),n=F(()=>t.value?zf(t.value):null),r=F(()=>t.value&&!Mo(t.value)?`https://github.com/${t.value}`:t.value),o=F(()=>r.value?e.value.repoLabel?e.value.repoLabel:n.value===null?"Source":n.value:null);return F(()=>!r.value||!o.value?[]:[{text:o.value,link:r.value}])},Cy=()=>{const e=Kt(),t=Ev(),n=er(),r=Wc(),o=vi(),s=S1(),i=He();return F(()=>{const l=Object.keys(r.value.locales);if(l.length<2)return[];const a=e.path,u=e.fullPath;return[{text:`${i.value.selectLanguageText}`,ariaLabel:`${i.value.selectLanguageAriaLabel??i.value.selectLanguageText}`,children:l.map(c=>{var E,k;const d=((E=r.value.locales)==null?void 0:E[c])??{},h=((k=s.value.locales)==null?void 0:k[c])??{},v=`${d.lang}`,_=h.selectLanguageName??v;if(v===o.value.lang)return{text:_,activeMatch:".",link:e.fullPath};const y=a.replace(n.value,c);return{text:_,link:t.value.some(p=>p===y)?u.replace(a,y):h.home??c}})}]})},wy="719px",Ty={mobile:wy};var Mr;(function(e){e.Mobile="mobile"})(Mr||(Mr={}));const Oy={[Mr.Mobile]:Number.parseInt(Ty.mobile.replace("px",""),10)},Xf=(e,t)=>{const n=Oy[e];Number.isInteger(n)&&(dt("orientationchange",()=>{t(n)},!1),dt("resize",()=>{t(n)},!1),Ye(()=>{t(n)}))},xy=pe({__name:"VPNavbarItems",setup(e,{expose:t}){t();const n=ky(),r=Cy(),o=Ay(),s=ce(!1),i=F(()=>He().value.navbarLabel??"site navigation"),l=F(()=>[...n.value,...r.value,...o.value]);Xf(Mr.Mobile,u=>{s.value=window.innerWidth(Y(),ne("div",{key:i.text,class:"vp-navbar-item"},["children"in i?(Y(),Re(r.VPNavbarDropdown,{key:0,class:rt({mobile:r.isMobile}),config:i},null,8,["class","config"])):(Y(),Re(r.AutoLink,{key:1,config:i},null,8,["config"]))]))),128))],8,Py)):Fe("",!0)}const Zf=xe(xy,[["render",Iy],["__file","VPNavbarItems.vue"]]),Ly={},Ry={class:"dark-icon",viewBox:"0 0 32 32"};function Dy(e,t){return Y(),ne("svg",Ry,t[0]||(t[0]=[ie("path",{d:"M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z",fill:"currentColor"},null,-1)]))}const Ny=xe(Ly,[["render",Dy],["__file","VPDarkIcon.vue"]]),Vy={},My={class:"light-icon",viewBox:"0 0 32 32"};function Fy(e,t){return Y(),ne("svg",My,t[0]||(t[0]=[cp('',9)]))}const Hy=xe(Vy,[["render",Fy],["__file","VPLightIcon.vue"]]),By=pe({__name:"VPToggleColorModeButton",setup(e,{expose:t}){t();const n=He(),r=Ni(),s={themeLocale:n,isDarkMode:r,toggleColorMode:()=>{r.value=!r.value},VPDarkIcon:Ny,VPLightIcon:Hy};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}}),$y=["title"];function Uy(e,t,n,r,o,s){return Y(),ne("button",{type:"button",class:"vp-toggle-color-mode-button",title:r.themeLocale.toggleColorMode,onClick:r.toggleColorMode},[_o(le(r.VPLightIcon,null,null,512),[[ko,!r.isDarkMode]]),_o(le(r.VPDarkIcon,null,null,512),[[ko,r.isDarkMode]])],8,$y)}const jy=xe(By,[["render",Uy],["__file","VPToggleColorModeButton.vue"]]),zy=pe({__name:"VPToggleSidebarButton",emits:["toggle"],setup(e,{expose:t}){t();const r={themeLocale:He()};return Object.defineProperty(r,"__isScriptSetup",{enumerable:!1,value:!0}),r}}),Ky=["title"];function Wy(e,t,n,r,o,s){return Y(),ne("div",{class:"vp-toggle-sidebar-button",title:r.themeLocale.toggleSidebar,"aria-expanded":"false",role:"button",tabindex:"0",onClick:t[0]||(t[0]=i=>e.$emit("toggle"))},t[1]||(t[1]=[ie("div",{class:"icon","aria-hidden":"true"},[ie("span"),ie("span"),ie("span")],-1)]),8,Ky)}const qy=xe(zy,[["render",Wy],["__file","VPToggleSidebarButton.vue"]]),Gy=pe({__name:"VPNavbar",emits:["toggleSidebar"],setup(e,{expose:t}){t();const n=Jc("SearchBox")?li("SearchBox"):()=>null,r=He(),o=ce(null),s=ce(null),i=ce(0),l=F(()=>i.value?{maxWidth:`${i.value}px`}:{}),a=(f,c)=>{var v;const d=(v=f==null?void 0:f.ownerDocument.defaultView)==null?void 0:v.getComputedStyle(f,null)[c],h=Number.parseInt(d,10);return Number.isNaN(h)?0:h};Xf(Mr.Mobile,f=>{var d;const c=a(o.value,"paddingLeft")+a(o.value,"paddingRight");window.innerWidthe.$emit("toggleSidebar"))}),ie("span",Xy,[le(r.VPNavbarBrand)],512),ie("div",{class:"vp-navbar-items-wrapper",style:Xn(r.linksWrapperStyle)},[Le(e.$slots,"before"),le(r.VPNavbarItems,{class:"vp-hide-mobile"}),Le(e.$slots,"after"),r.themeLocale.colorModeSwitch?(Y(),Re(r.VPToggleColorModeButton,{key:0})):Fe("",!0),le(r.SearchBox)],4)],512)}const Jy=xe(Gy,[["render",Zy],["__file","VPNavbar.vue"]]),Qy={},eb={class:"edit-icon",viewBox:"0 0 1024 1024"};function tb(e,t){return Y(),ne("svg",eb,t[0]||(t[0]=[ie("g",{fill:"currentColor"},[ie("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),ie("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})],-1)]))}const nb=xe(Qy,[["render",tb],["__file","VPEditIcon.vue"]]),rb=()=>{const e=He(),t=Qn(),n=kt();return F(()=>{var o;return n.value.contributors??e.value.contributors??!0?((o=t.value.git)==null?void 0:o.contributors)??null:null})},ob=()=>{const e=He(),t=Qn(),n=kt();return F(()=>{if(!(n.value.editLink??e.value.editLink??!0))return null;const{repo:o,docsRepo:s=o,docsBranch:i="main",docsDir:l="",editLinkText:a}=e.value;if(!s)return null;const u=x1({docsRepo:s,docsBranch:i,docsDir:l,filePathRelative:t.value.filePathRelative,editLinkPattern:n.value.editLinkPattern??e.value.editLinkPattern});return u?{text:a??"Edit this page",link:u}:null})},sb=()=>{const e=He(),t=Qn(),n=kt();return F(()=>{var s;return!(n.value.lastUpdated??e.value.lastUpdated??!0)||!((s=t.value.git)!=null&&s.updatedTime)?null:new Date(t.value.git.updatedTime).toLocaleString()})},ib=pe({__name:"VPPageMeta",setup(e,{expose:t}){t();const n=He(),r=ob(),o=sb(),s=rb(),i={themeLocale:n,editLink:r,lastUpdated:o,contributors:s,VPEditIcon:nb,get AutoLink(){return tr}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}}),lb={class:"vp-page-meta"},ab={key:0,class:"vp-meta-item edit-link"},ub={class:"vp-meta-item git-info"},cb={key:0,class:"vp-meta-item last-updated"},fb={class:"meta-item-label"},db={class:"meta-item-info"},hb={key:1,class:"vp-meta-item contributors"},pb={class:"meta-item-label"},gb={class:"meta-item-info"},mb=["title"];function vb(e,t,n,r,o,s){const i=li("ClientOnly");return Y(),ne("footer",lb,[r.editLink?(Y(),ne("div",ab,[le(r.AutoLink,{class:"label",config:r.editLink},{before:Ve(()=>[le(r.VPEditIcon)]),_:1},8,["config"])])):Fe("",!0),ie("div",ub,[r.lastUpdated?(Y(),ne("div",cb,[ie("span",fb,Ie(r.themeLocale.lastUpdatedText)+": ",1),le(i,null,{default:Ve(()=>[ie("span",db,Ie(r.lastUpdated),1)]),_:1})])):Fe("",!0),r.contributors&&r.contributors.length?(Y(),ne("div",hb,[ie("span",pb,Ie(r.themeLocale.contributorsText)+": ",1),ie("span",gb,[(Y(!0),ne(_e,null,rn(r.contributors,(l,a)=>(Y(),ne(_e,{key:a},[ie("span",{class:"contributor",title:`email: ${l.email}`},Ie(l.name),9,mb),a!==r.contributors.length-1?(Y(),ne(_e,{key:0},[sn(", ")],64)):Fe("",!0)],64))),128))])])):Fe("",!0)])])}const _b=xe(ib,[["render",vb],["__file","VPPageMeta.vue"]]),yb=()=>{const e=cn(),t=Kt();return n=>{n&&(nf(n)?t.path!==n&&e.push(n):Kr(n)?window.open(n):e.push(encodeURI(n)))}},nu=(e,t)=>e===!1?!1:vt(e)?Gn(e,t):hi(e)?{...e,link:Gn(e.link,t).link}:null,Ws=(e,t,n)=>{const r=e.findIndex(s=>s.link===t);if(r!==-1){const s=e[r+n];return s?s.link?s:"prefix"in s&&!Lr(s.prefix).notFound?{...s,link:s.prefix}:null:null}for(const s of e)if("children"in s){const i=Ws(s.children,t,n);if(i)return i}const o=e.findIndex(s=>"prefix"in s&&s.prefix===t);if(o!==-1){const s=e[o+n];return s?s.link?s:"prefix"in s&&!Lr(s.prefix).notFound?{...s,link:s.prefix}:null:null}return null},bb=()=>{const e=kt(),t=He(),n=Mi(),r=Kt(),o=F(()=>{const i=nu(e.value.prev,r.path);return i===!1?null:i??(t.value.prev===!1?null:Ws(n.value,r.path,-1))}),s=F(()=>{const i=nu(e.value.next,r.path);return i===!1?null:i??(t.value.next===!1?null:Ws(n.value,r.path,1))});return{prevLink:o,nextLink:s}},Eb=pe({__name:"VPPageNav",setup(e,{expose:t}){t();const n=He(),r=yb(),{prevLink:o,nextLink:s}=bb(),i=F(()=>n.value.pageNavbarLabel??"page navigation");dt("keydown",a=>{a.altKey&&(a.key==="ArrowRight"?s.value&&(r(s.value.link),a.preventDefault()):a.key==="ArrowLeft"&&o.value&&(r(o.value.link),a.preventDefault()))});const l={themeLocale:n,navigate:r,prevLink:o,nextLink:s,navbarLabel:i,get AutoLink(){return tr}};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}}),Sb=["aria-label"],kb={class:"hint"},Ab={class:"link"},Cb={class:"hint"},wb={class:"link"};function Tb(e,t,n,r,o,s){return r.prevLink||r.nextLink?(Y(),ne("nav",{key:0,class:"vp-page-nav","aria-label":r.navbarLabel},[r.prevLink?(Y(),Re(r.AutoLink,{key:0,class:"prev",config:r.prevLink},{default:Ve(()=>[ie("div",kb,[t[0]||(t[0]=ie("span",{class:"arrow left"},null,-1)),sn(" "+Ie(r.themeLocale.prev??"Prev"),1)]),ie("div",Ab,[ie("span",null,Ie(r.prevLink.text),1)])]),_:1},8,["config"])):Fe("",!0),r.nextLink?(Y(),Re(r.AutoLink,{key:1,class:"next",config:r.nextLink},{default:Ve(()=>[ie("div",Cb,[sn(Ie(r.themeLocale.next??"Next")+" ",1),t[1]||(t[1]=ie("span",{class:"arrow right"},null,-1))]),ie("div",wb,[ie("span",null,Ie(r.nextLink.text),1)])]),_:1},8,["config"])):Fe("",!0)],8,Sb)):Fe("",!0)}const Ob=xe(Eb,[["render",Tb],["__file","VPPageNav.vue"]]),xb=pe({__name:"VPPage",setup(e,{expose:t}){t(),P1();const n={VPPageMeta:_b,VPPageNav:Ob,get Content(){return yi}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),Pb={class:"vp-page"},Ib={class:"theme-default-content","vp-content":""};function Lb(e,t,n,r,o,s){return Y(),ne("main",Pb,[Le(e.$slots,"top"),ie("div",Ib,[Le(e.$slots,"content-top"),le(r.Content),Le(e.$slots,"content-bottom")]),le(r.VPPageMeta),le(r.VPPageNav),Le(e.$slots,"bottom")])}const Rb=xe(xb,[["render",Lb],["__file","VPPage.vue"]]),Db=pe({__name:"VPSidebarItem",props:{item:{},depth:{default:0}},setup(e,{expose:t}){t();const n=e,{item:r,depth:o}=ri(n),s=Kt(),i=cn(),l=F(()=>"collapsible"in r.value&&r.value.collapsible),a=F(()=>Uf(r.value,s)),u=F(()=>({"vp-sidebar-item":!0,"vp-sidebar-heading":o.value===0,active:a.value,collapsible:l.value})),f=F(()=>l.value?a.value:!0),[c,d]=Xc(f.value),h=y=>{l.value&&(y.preventDefault(),d())},v=i.afterEach(()=>{Jn(()=>{c.value=f.value})});Ro(()=>{v()});const _={props:n,item:r,depth:o,route:s,router:i,collapsible:l,isActive:a,itemClass:u,isOpenDefault:f,isOpen:c,toggleIsOpen:d,onClick:h,unregisterRouterHook:v,VPDropdownTransition:Gf,get AutoLink(){return tr}};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}}),Nb={class:"vp-sidebar-children"};function Vb(e,t,n,r,o,s){const i=li("VPSidebarItem",!0);return Y(),ne("li",null,[r.item.link?(Y(),Re(r.AutoLink,{key:0,class:rt(r.itemClass),config:r.item},null,8,["class","config"])):(Y(),ne("p",{key:1,tabindex:"0",class:rt(r.itemClass),onClick:r.onClick,onKeydown:Gp(r.onClick,["enter"])},[sn(Ie(r.item.text)+" ",1),r.collapsible?(Y(),ne("span",{key:0,class:rt(["arrow",r.isOpen?"down":"right"])},null,2)):Fe("",!0)],34)),"children"in r.item&&r.item.children.length?(Y(),Re(r.VPDropdownTransition,{key:2},{default:Ve(()=>[_o(ie("ul",Nb,[(Y(!0),ne(_e,null,rn(r.item.children,l=>(Y(),Re(i,{key:`${r.depth}${l.text}${l.link}`,item:l,depth:r.depth+1},null,8,["item","depth"]))),128))],512),[[ko,r.isOpen]])]),_:1})):Fe("",!0)])}const Mb=xe(Db,[["render",Vb],["__file","VPSidebarItem.vue"]]),Fb=pe({__name:"VPSidebarItems",setup(e,{expose:t}){t();const n=Kt(),r=Mi();Ye(()=>{Ue(()=>n.hash,s=>{const i=document.querySelector(".vp-sidebar");if(!i)return;const l=document.querySelector(`.vp-sidebar a.vp-sidebar-item[href="${n.path}${s}"]`);if(!l)return;const{top:a,height:u}=i.getBoundingClientRect(),{top:f,height:c}=l.getBoundingClientRect();fa+u&&l.scrollIntoView(!1)})});const o={route:n,sidebarItems:r,VPSidebarItem:Mb};return Object.defineProperty(o,"__isScriptSetup",{enumerable:!1,value:!0}),o}}),Hb={key:0,class:"vp-sidebar-items"};function Bb(e,t,n,r,o,s){return r.sidebarItems.length?(Y(),ne("ul",Hb,[(Y(!0),ne(_e,null,rn(r.sidebarItems,i=>(Y(),Re(r.VPSidebarItem,{key:`${i.text}${i.link}`,item:i},null,8,["item"]))),128))])):Fe("",!0)}const $b=xe(Fb,[["render",Bb],["__file","VPSidebarItems.vue"]]),Ub=pe({__name:"VPSidebar",setup(e,{expose:t}){t();const n={VPNavbarItems:Zf,VPSidebarItems:$b};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}}),jb={class:"vp-sidebar","vp-sidebar":""};function zb(e,t,n,r,o,s){return Y(),ne("aside",jb,[le(r.VPNavbarItems),Le(e.$slots,"top"),le(r.VPSidebarItems),Le(e.$slots,"bottom")])}const Kb=xe(Ub,[["render",zb],["__file","VPSidebar.vue"]]),Wb=pe({__name:"Layout",setup(e,{expose:t}){t();const n=Qn(),r=kt(),o=He(),s=F(()=>r.value.navbar!==!1&&o.value.navbar!==!1),i=Mi(),l=ce(!1),a=p=>{l.value=typeof p=="boolean"?p:!l.value},u={x:0,y:0},f=p=>{u.x=p.changedTouches[0].clientX,u.y=p.changedTouches[0].clientY},c=p=>{const b=p.changedTouches[0].clientX-u.x,R=p.changedTouches[0].clientY-u.y;Math.abs(b)>Math.abs(R)&&Math.abs(b)>40&&(b>0&&u.x<=80?a(!0):a(!1))},d=F(()=>r.value.externalLinkIcon??o.value.externalLinkIcon??!0),h=F(()=>[{"no-navbar":!s.value,"no-sidebar":!i.value.length,"sidebar-open":l.value,"external-link-icon":d.value},r.value.pageClass]);let v;Ye(()=>{v=cn().afterEach(()=>{a(!1)})}),Do(()=>{v()});const _=$f(),y=_.resolve,E=_.pending,k={page:n,frontmatter:r,themeLocale:o,shouldShowNavbar:s,sidebarItems:i,isSidebarOpen:l,toggleSidebar:a,touchStart:u,onTouchStart:f,onTouchEnd:c,enableExternalLinkIcon:d,containerClass:h,get unregisterRouterHook(){return v},set unregisterRouterHook(p){v=p},scrollPromise:_,onBeforeEnter:y,onBeforeLeave:E,VPHome:sy,VPNavbar:Jy,VPPage:Rb,VPSidebar:Kb};return Object.defineProperty(k,"__isScriptSetup",{enumerable:!1,value:!0}),k}});function qb(e,t,n,r,o,s){return Y(),ne("div",{class:rt(["vp-theme-container",r.containerClass]),"vp-container":"",onTouchstart:r.onTouchStart,onTouchend:r.onTouchEnd},[Le(e.$slots,"navbar",{},()=>[r.shouldShowNavbar?(Y(),Re(r.VPNavbar,{key:0,onToggleSidebar:r.toggleSidebar},{before:Ve(()=>[Le(e.$slots,"navbar-before")]),after:Ve(()=>[Le(e.$slots,"navbar-after")]),_:3})):Fe("",!0)]),ie("div",{class:"vp-sidebar-mask",onClick:t[0]||(t[0]=i=>r.toggleSidebar(!1))}),Le(e.$slots,"sidebar",{},()=>[le(r.VPSidebar,null,{top:Ve(()=>[Le(e.$slots,"sidebar-top")]),bottom:Ve(()=>[Le(e.$slots,"sidebar-bottom")]),_:3})]),Le(e.$slots,"page",{},()=>[r.frontmatter.home?(Y(),Re(r.VPHome,{key:0})):(Y(),Re(di,{key:1,name:"fade-slide-y",mode:"out-in",onBeforeEnter:r.onBeforeEnter,onBeforeLeave:r.onBeforeLeave},{default:Ve(()=>[(Y(),Re(r.VPPage,{key:r.page.path},{top:Ve(()=>[Le(e.$slots,"page-top")]),"content-top":Ve(()=>[Le(e.$slots,"page-content-top")]),"content-bottom":Ve(()=>[Le(e.$slots,"page-content-bottom")]),bottom:Ve(()=>[Le(e.$slots,"page-bottom")]),_:3}))]),_:3},8,["onBeforeEnter","onBeforeLeave"]))])],34)}const Gb=xe(Wb,[["render",qb],["__file","Layout.vue"]]),Yb=pe({__name:"NotFound",setup(e,{expose:t}){t();const n=er(),r=He(),o=r.value.notFound??["Not Found"],s=()=>o[Math.floor(Math.random()*o.length)],i=r.value.home??n.value,l=r.value.backToHome??"Back to home",a={routeLocale:n,themeLocale:r,messages:o,getMsg:s,homeLink:i,homeText:l,get RouteLink(){return Bo}};return Object.defineProperty(a,"__isScriptSetup",{enumerable:!1,value:!0}),a}}),Xb={class:"vp-theme-container","vp-container":""},Zb={class:"page"},Jb={class:"theme-default-content","vp-content":""};function Qb(e,t,n,r,o,s){return Y(),ne("div",Xb,[ie("main",Zb,[ie("div",Jb,[t[0]||(t[0]=ie("h1",null,"404",-1)),ie("blockquote",null,Ie(r.getMsg()),1),le(r.RouteLink,{to:r.homeLink},{default:Ve(()=>[sn(Ie(r.homeText),1)]),_:1},8,["to"])])])])}const eE=xe(Yb,[["render",Qb],["__scopeId","data-v-67c08c1d"],["__file","NotFound.vue"]]),tE=Wt({enhance({app:e,router:t}){Jc("Badge")||e.component("Badge",F1);const n=t.options.scrollBehavior;t.options.scrollBehavior=async(...r)=>(await $f().wait(),n(...r))},setup(){A1(),N1()},layouts:{Layout:Gb,NotFound:eE}}),nE=Object.freeze(Object.defineProperty({__proto__:null,default:tE},Symbol.toStringTag,{value:"Module"})),rE=[{title:"介绍",headers:[{level:2,title:"前提条件",slug:"前提条件",link:"#前提条件",children:[]},{level:2,title:"SDK 环境依赖",slug:"sdk-环境依赖",link:"#sdk-环境依赖",children:[]},{level:2,title:"SDK 源码",slug:"sdk-源码",link:"#sdk-源码",children:[]},{level:2,title:"项目贡献者",slug:"项目贡献者",link:"#项目贡献者",children:[]}],path:"/guide/",pathLocale:"/",extraFields:[]},{title:"账号管理",headers:[{level:2,title:"导入单个账号",slug:"导入单个账号",link:"#导入单个账号",children:[]},{level:2,title:"导入多个账号",slug:"导入多个账号",link:"#导入多个账号",children:[]},{level:2,title:"删除账号",slug:"删除账号",link:"#删除账号",children:[]},{level:2,title:"查询账号",slug:"查询账号",link:"#查询账号",children:[]},{level:2,title:"失效账号登录状态",slug:"失效账号登录状态",link:"#失效账号登录状态",children:[]},{level:2,title:"查询账号在线状态",slug:"查询账号在线状态",link:"#查询账号在线状态",children:[]}],path:"/guide/account.html",pathLocale:"/",extraFields:[]},{title:"内容审核",headers:[{level:2,title:"添加敏感词(本地审核)",slug:"添加敏感词-本地审核",link:"#添加敏感词-本地审核",children:[]},{level:2,title:"删除敏感词(本地审核)",slug:"删除敏感词-本地审核",link:"#删除敏感词-本地审核",children:[]},{level:2,title:"获取敏感词(本地审核)",slug:"获取敏感词-本地审核",link:"#获取敏感词-本地审核",children:[]},{level:2,title:"主动审核接口(云端审核)",slug:"主动审核接口-云端审核",link:"#主动审核接口-云端审核",children:[]},{level:2,title:"主动批量审核接口(云端审核)",slug:"主动批量审核接口-云端审核",link:"#主动批量审核接口-云端审核",children:[]},{level:2,title:"获取词库列表(云端审核)",slug:"获取词库列表-云端审核",link:"#获取词库列表-云端审核",children:[]},{level:2,title:"获取敏感词(云端审核)",slug:"获取敏感词-云端审核",link:"#获取敏感词-云端审核",children:[]},{level:2,title:"添加敏感词(云端审核)",slug:"添加敏感词-云端审核",link:"#添加敏感词-云端审核",children:[]},{level:2,title:"删除敏感词(云端审核)",slug:"删除敏感词-云端审核",link:"#删除敏感词-云端审核",children:[]}],path:"/guide/audit.html",pathLocale:"/",extraFields:[]},{title:"群组管理",headers:[{level:2,title:"获取 App 中的所有群组",slug:"获取-app-中的所有群组",link:"#获取-app-中的所有群组",children:[]},{level:2,title:"创建群组",slug:"创建群组",link:"#创建群组",children:[]},{level:2,title:"获取群详细资料",slug:"获取群详细资料",link:"#获取群详细资料",children:[]},{level:2,title:"获取群成员详细资料",slug:"获取群成员详细资料",link:"#获取群成员详细资料",children:[]},{level:2,title:"修改群基础资料",slug:"修改群基础资料",link:"#修改群基础资料",children:[]},{level:2,title:"增加群成员",slug:"增加群成员",link:"#增加群成员",children:[]},{level:2,title:"删除群成员",slug:"删除群成员",link:"#删除群成员",children:[]},{level:2,title:"修改群成员资料",slug:"修改群成员资料",link:"#修改群成员资料",children:[]},{level:2,title:"解散群组",slug:"解散群组",link:"#解散群组",children:[]},{level:2,title:"获取用户所加入的群组",slug:"获取用户所加入的群组",link:"#获取用户所加入的群组",children:[]},{level:2,title:"查询用户在群组中的身份",slug:"查询用户在群组中的身份",link:"#查询用户在群组中的身份",children:[]},{level:2,title:"批量禁言和取消禁言",slug:"批量禁言和取消禁言",link:"#批量禁言和取消禁言",children:[]},{level:2,title:"获取被禁言群成员列表",slug:"获取被禁言群成员列表",link:"#获取被禁言群成员列表",children:[]},{level:2,title:"在群组中发送普通消息",slug:"在群组中发送普通消息",link:"#在群组中发送普通消息",children:[]},{level:2,title:"在群组中发送系统通知",slug:"在群组中发送系统通知",link:"#在群组中发送系统通知",children:[]},{level:2,title:"转让群主",slug:"转让群主",link:"#转让群主",children:[]},{level:2,title:"撤回群消息",slug:"撤回群消息",link:"#撤回群消息",children:[]},{level:2,title:"导入群基础资料",slug:"导入群基础资料",link:"#导入群基础资料",children:[]},{level:2,title:"导入群消息",slug:"导入群消息",link:"#导入群消息",children:[]},{level:2,title:"导入群成员",slug:"导入群成员",link:"#导入群成员",children:[]},{level:2,title:"设置成员未读消息计数",slug:"设置成员未读消息计数",link:"#设置成员未读消息计数",children:[]},{level:2,title:"删除指定用户发送的消息",slug:"删除指定用户发送的消息",link:"#删除指定用户发送的消息",children:[]},{level:2,title:"拉取群历史消息",slug:"拉取群历史消息",link:"#拉取群历史消息",children:[]},{level:2,title:"获取直播群在线人数",slug:"获取直播群在线人数",link:"#获取直播群在线人数",children:[]},{level:2,title:"获取直播群在线列表",slug:"获取直播群在线列表",link:"#获取直播群在线列表",children:[]},{level:2,title:"设置直播群成员标记",slug:"设置直播群成员标记",link:"#设置直播群成员标记",children:[]},{level:2,title:"获取群自定义属性",slug:"获取群自定义属性",link:"#获取群自定义属性",children:[]},{level:2,title:"修改群自定义属性",slug:"修改群自定义属性",link:"#修改群自定义属性",children:[]},{level:2,title:"清空群自定义属性",slug:"清空群自定义属性",link:"#清空群自定义属性",children:[]},{level:2,title:"重置群自定义属性",slug:"重置群自定义属性",link:"#重置群自定义属性",children:[]},{level:2,title:"修改群聊历史消息",slug:"修改群聊历史消息",link:"#修改群聊历史消息",children:[]},{level:2,title:"直播群广播消息",slug:"直播群广播消息",link:"#直播群广播消息",children:[]},{level:2,title:"拉取群消息已读回执信息",slug:"拉取群消息已读回执信息",link:"#拉取群消息已读回执信息",children:[]},{level:2,title:"拉取群消息已读回执详情",slug:"拉取群消息已读回执详情",link:"#拉取群消息已读回执详情",children:[]},{level:2,title:"创建话题",slug:"创建话题",link:"#创建话题",children:[]},{level:2,title:"获取话题资料",slug:"获取话题资料",link:"#获取话题资料",children:[]},{level:2,title:"修改话题资料",slug:"修改话题资料",link:"#修改话题资料",children:[]},{level:2,title:"导入话题基础资料",slug:"导入话题基础资料",link:"#导入话题基础资料",children:[]},{level:2,title:"解散话题",slug:"解散话题",link:"#解散话题",children:[]},{level:2,title:"获取封禁群成员列表",slug:"获取封禁群成员列表",link:"#获取封禁群成员列表",children:[]},{level:2,title:"群成员封禁",slug:"群成员封禁",link:"#群成员封禁",children:[]},{level:2,title:"群成员解封",slug:"群成员解封",link:"#群成员解封",children:[]},{level:2,title:"拉取群消息扩展",slug:"拉取群消息扩展",link:"#拉取群消息扩展",children:[]},{level:2,title:"设置群消息扩展",slug:"设置群消息扩展",link:"#设置群消息扩展",children:[]},{level:2,title:"获取群计数器",slug:"获取群计数器",link:"#获取群计数器",children:[]},{level:2,title:"更新群计数器",slug:"更新群计数器",link:"#更新群计数器",children:[]},{level:2,title:"删除群计数器",slug:"删除群计数器",link:"#删除群计数器",children:[]},{level:2,title:"设置/取消直播群管理员",slug:"设置-取消直播群管理员",link:"#设置-取消直播群管理员",children:[]},{level:2,title:"获取直播群管理员列表",slug:"获取直播群管理员列表",link:"#获取直播群管理员列表",children:[]},{level:2,title:"查询用户是否在直播群内",slug:"查询用户是否在直播群内",link:"#查询用户是否在直播群内",children:[]}],path:"/guide/group.html",pathLocale:"/",extraFields:[]},{title:"全员推送",headers:[{level:2,title:"全员推送",slug:"全员推送-1",link:"#全员推送-1",children:[]},{level:2,title:"设置应用属性名称",slug:"设置应用属性名称",link:"#设置应用属性名称",children:[]},{level:2,title:"获取应用属性名称",slug:"获取应用属性名称",link:"#获取应用属性名称",children:[]},{level:2,title:"获取用户属性",slug:"获取用户属性",link:"#获取用户属性",children:[]},{level:2,title:"设置用户属性",slug:"设置用户属性",link:"#设置用户属性",children:[]},{level:2,title:"删除用户属性",slug:"删除用户属性",link:"#删除用户属性",children:[]},{level:2,title:"获取用户标签",slug:"获取用户标签",link:"#获取用户标签",children:[]},{level:2,title:"添加用户标签",slug:"添加用户标签",link:"#添加用户标签",children:[]},{level:2,title:"删除用户标签",slug:"删除用户标签",link:"#删除用户标签",children:[]},{level:2,title:"删除所有用户标签",slug:"删除所有用户标签",link:"#删除所有用户标签",children:[]}],path:"/guide/member.html",pathLocale:"/",extraFields:[]},{title:"单聊消息",headers:[{level:2,title:"单发单聊消息",slug:"单发单聊消息",link:"#单发单聊消息",children:[]},{level:2,title:"批量发单聊消息",slug:"批量发单聊消息",link:"#批量发单聊消息",children:[]},{level:2,title:"导入单聊消息",slug:"导入单聊消息",link:"#导入单聊消息",children:[]},{level:2,title:"查询单聊消息",slug:"查询单聊消息",link:"#查询单聊消息",children:[]},{level:2,title:"撤回单聊消息",slug:"撤回单聊消息",link:"#撤回单聊消息",children:[]},{level:2,title:"设置单聊消息已读",slug:"设置单聊消息已读",link:"#设置单聊消息已读",children:[]},{level:2,title:"查询单聊未读消息计数",slug:"查询单聊未读消息计数",link:"#查询单聊未读消息计数",children:[]},{level:2,title:"修改单聊历史消息",slug:"修改单聊历史消息",link:"#修改单聊历史消息",children:[]},{level:2,title:"拉取单聊消息扩展",slug:"拉取单聊消息扩展",link:"#拉取单聊消息扩展",children:[]},{level:2,title:"设置单聊消息扩展",slug:"设置单聊消息扩展",link:"#设置单聊消息扩展",children:[]},{level:2,title:"单向删除单聊历史消息",slug:"单向删除单聊历史消息",link:"#单向删除单聊历史消息",children:[]},{level:2,title:"清空群聊历史消息",slug:"清空群聊历史消息",link:"#清空群聊历史消息",children:[]}],path:"/guide/message.html",pathLocale:"/",extraFields:[]},{title:"公众号管理",headers:[{level:2,title:"创建公众号",slug:"创建公众号",link:"#创建公众号",children:[]},{level:2,title:"销毁公众号",slug:"销毁公众号",link:"#销毁公众号",children:[]},{level:2,title:"修改公众号资料",slug:"修改公众号资料",link:"#修改公众号资料",children:[]},{level:2,title:"获取公众号详细资料",slug:"获取公众号详细资料",link:"#获取公众号详细资料",children:[]},{level:2,title:"获取公众号的订阅成员资料",slug:"获取公众号的订阅成员资料",link:"#获取公众号的订阅成员资料",children:[]},{level:2,title:"添加订阅者",slug:"添加订阅者",link:"#添加订阅者",children:[]},{level:2,title:"删除订阅者",slug:"删除订阅者",link:"#删除订阅者",children:[]},{level:2,title:"修改订阅者资料",slug:"修改订阅者资料",link:"#修改订阅者资料",children:[]},{level:2,title:"获取订阅的公众号列表",slug:"获取订阅的公众号列表",link:"#获取订阅的公众号列表",children:[]},{level:2,title:"公众号用户发送广播消息",slug:"公众号用户发送广播消息",link:"#公众号用户发送广播消息",children:[]},{level:2,title:"拉取公众号用户历史消息",slug:"拉取公众号用户历史消息",link:"#拉取公众号用户历史消息",children:[]},{level:2,title:"撤回公众号消息",slug:"撤回公众号消息",link:"#撤回公众号消息",children:[]}],path:"/guide/official_account.html",pathLocale:"/",extraFields:[]},{title:"全局禁言管理",headers:[{level:2,title:"设置全局禁言",slug:"设置全局禁言",link:"#设置全局禁言",children:[]},{level:2,title:"查询全局禁言",slug:"查询全局禁言",link:"#查询全局禁言",children:[]}],path:"/guide/operation_1.html",pathLocale:"/",extraFields:[]},{title:"运营管理",headers:[{level:2,title:"拉取运营数据",slug:"拉取运营数据",link:"#拉取运营数据",children:[]},{level:2,title:"下载最近消息记录",slug:"下载最近消息记录",link:"#下载最近消息记录",children:[]},{level:2,title:"获取服务器 IP 地址",slug:"获取服务器-ip-地址",link:"#获取服务器-ip-地址",children:[]},{level:2,title:"聊天文件封禁",slug:"聊天文件封禁",link:"#聊天文件封禁",children:[]},{level:2,title:"聊天文件解封",slug:"聊天文件解封",link:"#聊天文件解封",children:[]},{level:2,title:"聊天文件签名",slug:"聊天文件签名",link:"#聊天文件签名",children:[]}],path:"/guide/operation_2.html",pathLocale:"/",extraFields:[]},{title:"资料管理",headers:[{level:2,title:"设置资料",slug:"设置资料",link:"#设置资料",children:[]},{level:2,title:"拉取资料",slug:"拉取资料",link:"#拉取资料",children:[]}],path:"/guide/profile.html",pathLocale:"/",extraFields:[]},{title:"快速上手",headers:[{level:2,title:"安装",slug:"安装",link:"#安装",children:[{level:3,title:"Maven",slug:"maven",link:"#maven",children:[]},{level:3,title:"Gradle",slug:"gradle",link:"#gradle",children:[]},{level:3,title:"下载 JAR",slug:"下载-jar",link:"#下载-jar",children:[]}]},{level:2,title:"初始化",slug:"初始化",link:"#初始化",children:[]},{level:2,title:"使用示例",slug:"使用示例",link:"#使用示例",children:[]}],path:"/guide/quickstart.html",pathLocale:"/",extraFields:[]},{title:"最近联系人",headers:[{level:2,title:"拉取会话列表",slug:"拉取会话列表",link:"#拉取会话列表",children:[]},{level:2,title:"删除单个会话",slug:"删除单个会话",link:"#删除单个会话",children:[]},{level:2,title:"创建会话分组数据",slug:"创建会话分组数据",link:"#创建会话分组数据",children:[]},{level:2,title:"更新会话分组数据",slug:"更新会话分组数据",link:"#更新会话分组数据",children:[]},{level:2,title:"删除会话分组数据",slug:"删除会话分组数据",link:"#删除会话分组数据",children:[]},{level:2,title:"创建或更新会话标记数据",slug:"创建或更新会话标记数据",link:"#创建或更新会话标记数据",children:[]},{level:2,title:"搜索会话分组标记",slug:"搜索会话分组标记",link:"#搜索会话分组标记",children:[]},{level:2,title:"拉取会话分组标记数据",slug:"拉取会话分组标记数据",link:"#拉取会话分组标记数据",children:[]}],path:"/guide/recent_contact.html",pathLocale:"/",extraFields:[]},{title:"机器人",headers:[{level:2,title:"创建机器人",slug:"创建机器人",link:"#创建机器人",children:[]},{level:2,title:"删除机器人",slug:"删除机器人",link:"#删除机器人",children:[]},{level:2,title:"拉取所有机器人",slug:"拉取所有机器人",link:"#拉取所有机器人",children:[]}],path:"/guide/robot.html",pathLocale:"/",extraFields:[]},{title:"关系链管理",headers:[{level:2,title:"添加好友",slug:"添加好友",link:"#添加好友",children:[]},{level:2,title:"导入好友",slug:"导入好友",link:"#导入好友",children:[]},{level:2,title:"更新好友",slug:"更新好友",link:"#更新好友",children:[]},{level:2,title:"删除好友",slug:"删除好友",link:"#删除好友",children:[]},{level:2,title:"删除所有好友",slug:"删除所有好友",link:"#删除所有好友",children:[]},{level:2,title:"校验好友",slug:"校验好友",link:"#校验好友",children:[]},{level:2,title:"拉取好友",slug:"拉取好友",link:"#拉取好友",children:[]},{level:2,title:"拉取指定好友",slug:"拉取指定好友",link:"#拉取指定好友",children:[]},{level:2,title:"添加黑名单",slug:"添加黑名单",link:"#添加黑名单",children:[]},{level:2,title:"删除黑名单",slug:"删除黑名单",link:"#删除黑名单",children:[]},{level:2,title:"拉取黑名单",slug:"拉取黑名单",link:"#拉取黑名单",children:[]},{level:2,title:"校验黑名单",slug:"校验黑名单",link:"#校验黑名单",children:[]},{level:2,title:"添加分组",slug:"添加分组",link:"#添加分组",children:[]},{level:2,title:"删除分组",slug:"删除分组",link:"#删除分组",children:[]},{level:2,title:"拉取分组",slug:"拉取分组",link:"#拉取分组",children:[]}],path:"/guide/sns.html",pathLocale:"/",extraFields:[]},{title:"",headers:[],path:"/404.html",pathLocale:"/",extraFields:[]}],oE=e=>e instanceof Element?document.activeElement===e&&(["TEXTAREA","SELECT","INPUT"].includes(e.tagName)||e.hasAttribute("contenteditable")):!1,sE=(e,t)=>t.some(n=>{if(vt(n))return n===e.key;const{key:r,ctrl:o=!1,shift:s=!1,alt:i=!1}=n;return r===e.key&&o===e.ctrlKey&&s===e.shiftKey&&i===e.altKey}),iE=/[^\x00-\x7F]/,lE=e=>e.split(/\s+/g).map(t=>t.trim()).filter(t=>!!t),ru=e=>e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),ou=(e,t)=>{const n=t.join(" "),r=lE(e);if(iE.test(e))return r.some(s=>n.toLowerCase().includes(s));const o=e.endsWith(" ");return new RegExp(`${r.map((s,i)=>r.length===i+1&&!o?`(?=.*\\b${ru(s)})`:`(?=.*\\b${ru(s)}\\b)`).join("")}.+`,"gi").test(n)},aE=({input:e,hotKeys:t})=>{if(t.value.length===0)return;const n=r=>{e.value&&sE(r,t.value)&&!oE(r.target)&&(r.preventDefault(),e.value.focus())};Ye(()=>{document.addEventListener("keydown",n)}),Ro(()=>{document.removeEventListener("keydown",n)})},uE=ce(rE),cE=()=>uE,fE=({searchIndex:e,routeLocale:t,query:n,maxSuggestions:r})=>{const o=F(()=>e.value.filter(s=>s.pathLocale===t.value));return F(()=>{const s=n.value.trim().toLowerCase();if(!s)return[];const i=[],l=(a,u)=>{ou(s,[u.title])&&i.push({link:`${a.path}#${u.slug}`,title:a.title,header:u.title});for(const f of u.children){if(i.length>=r.value)return;l(a,f)}};for(const a of o.value){if(i.length>=r.value)break;if(ou(s,[a.title,...a.extraFields])){i.push({link:a.path,title:a.title});continue}for(const u of a.headers){if(i.length>=r.value)break;l(a,u)}}return i})},dE=e=>{const t=ce(0);return{focusIndex:t,focusNext:()=>{t.value{t.value>0?t.value-=1:t.value=e.value.length-1}}},hE=pe({name:"SearchBox",props:{locales:{type:Object,default:()=>({})},hotKeys:{type:Array,default:()=>[]},maxSuggestions:{type:Number,default:5}},setup(e){const{locales:t,hotKeys:n,maxSuggestions:r}=ri(e),o=cn(),s=er(),i=cE(),l=ce(null),a=ce(!1),u=ce(""),f=F(()=>t.value[s.value]??{}),c=fE({searchIndex:i,routeLocale:s,query:u,maxSuggestions:r}),{focusIndex:d,focusNext:h,focusPrev:v}=dE(c);aE({input:l,hotKeys:n});const _=F(()=>a.value&&!!c.value.length),y=()=>{_.value&&v()},E=()=>{_.value&&h()},k=p=>{if(!_.value)return;const b=c.value[p];b&&o.push(b.link).then(()=>{u.value="",d.value=0})};return()=>ue("form",{class:"search-box",role:"search"},[ue("input",{ref:l,type:"search",placeholder:f.value.placeholder,autocomplete:"off",spellcheck:!1,value:u.value,onFocus:()=>{a.value=!0},onBlur:()=>{a.value=!1},onInput:p=>{u.value=p.target.value},onKeydown:p=>{switch(p.key){case"ArrowUp":{y();break}case"ArrowDown":{E();break}case"Enter":{p.preventDefault(),k(d.value);break}}}}),_.value&&ue("ul",{class:"suggestions",onMouseleave:()=>{d.value=-1}},c.value.map(({link:p,title:b,header:R},j)=>ue("li",{class:["suggestion",{focus:d.value===j}],onMouseenter:()=>{d.value=j},onMousedown:()=>{k(j)}},ue("a",{href:p,onClick:M=>{M.preventDefault()}},[ue("span",{class:"page-title"},b),R&&ue("span",{class:"page-header"},`> ${R}`)]))))])}});var pE=["s","/"],gE={};const mE=gE,vE=pE,_E=5;var yE=Wt({enhance({app:e}){e.component("SearchBox",t=>ue(hE,{locales:mE,hotKeys:vE,maxSuggestions:_E,...t}))}});const bE=Object.freeze(Object.defineProperty({__proto__:null,default:yE},Symbol.toStringTag,{value:"Module"})),so=[vv,Tv,Dv,Vv,Yv,t_,o_,c_,E1,nE,bE].map(e=>e.default).filter(Boolean),EE=JSON.parse('{"base":"/qcloud-im-server-sdk-java/","lang":"zh-CN","title":"腾讯云 IM 服务端 Java SDK 使用文档","description":"腾讯云 IM 服务端 SDK API 文档 Java 版","head":[["link",{"rel":"icon","href":"https://avatars.githubusercontent.com/u/43716716?s=200&v=4"}]],"locales":{}}');var gr=Pt(EE),SE=Zg,kE=()=>{const e=Im({history:SE(kc("/qcloud-im-server-sdk-java/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===Nt){const r=Lr(t.fullPath);if(r.path!==t.fullPath)return r.path;const o=await r.loader();t.meta={...r.meta,_pageChunk:o}}else t.path===n.path&&(t.meta=n.meta)}),e},AE=e=>{e.component("ClientOnly",_i),e.component("Content",yi),e.component("RouteLink",Bo)},CE=(e,t,n)=>{const r=F(()=>t.currentRoute.value.path),o=jd((y,E)=>({get(){return y(),t.currentRoute.value.meta._pageChunk},set(k){t.currentRoute.value.meta._pageChunk=k,E()}})),s=F(()=>gn.resolveLayouts(n)),i=F(()=>gn.resolveRouteLocale(gr.value.locales,r.value)),l=F(()=>gn.resolveSiteLocaleData(gr.value,i.value)),a=F(()=>o.value.comp),u=F(()=>o.value.data),f=F(()=>u.value.frontmatter),c=F(()=>gn.resolvePageHeadTitle(u.value,l.value)),d=F(()=>gn.resolvePageHead(c.value,f.value,l.value)),h=F(()=>gn.resolvePageLang(u.value,l.value)),v=F(()=>gn.resolvePageLayout(u.value,s.value)),_={layouts:s,pageData:u,pageComponent:a,pageFrontmatter:f,pageHead:d,pageHeadTitle:c,pageLang:h,pageLayout:v,redirects:Ns,routeLocale:i,routePath:r,routes:Hn,siteData:gr,siteLocaleData:l};return e.provide(mi,_),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>f.value},$head:{get:()=>d.value},$headTitle:{get:()=>c.value},$lang:{get:()=>h.value},$page:{get:()=>u.value},$routeLocale:{get:()=>i.value},$site:{get:()=>gr.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>bi}}),_},wE=([e,t,n=""])=>{const r=Object.entries(t).map(([l,a])=>vt(a)?`[${l}=${JSON.stringify(a)}]`:a?`[${l}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(l=>l.innerText===n)??null},TE=([e,t,n])=>{if(!vt(e))return null;const r=document.createElement(e);return hi(t)&&Object.entries(t).forEach(([o,s])=>{vt(s)?r.setAttribute(o,s):s&&r.setAttribute(o,"")}),vt(n)&&r.appendChild(document.createTextNode(n)),r},OE=()=>{const e=Dm(),t=Nm();let n=[];const r=()=>{e.value.forEach(i=>{const l=wE(i);l&&n.push(l)})},o=()=>{const i=[];return e.value.forEach(l=>{const a=TE(l);a&&i.push(a)}),i},s=()=>{document.documentElement.lang=t.value;const i=o();n.forEach((l,a)=>{const u=i.findIndex(f=>l.isEqualNode(f));u===-1?(l.remove(),delete n[a]):i.splice(u,1)}),i.forEach(l=>document.head.appendChild(l)),n=[...n.filter(l=>!!l),...i]};An(Fm,s),Ye(()=>{r(),Ue(e,s,{immediate:!1})})},xE=Zp,PE=async()=>{var r;const e=xE({name:"Vuepress",setup(){var i;OE();for(const l of so)(i=l.setup)==null||i.call(l);const o=so.flatMap(({rootComponents:l=[]})=>l.map(a=>ue(a))),s=Vm();return()=>[ue(s.value),o]}}),t=kE();AE(e);const n=CE(e,t,so);{const{setupDevtools:o}=await je(async()=>{const{setupDevtools:s}=await import("./setupDevtools-7MC2TMWH-MfsfX19P.js");return{setupDevtools:s}},[]);o(e,n)}for(const o of so)await((r=o.enhance)==null?void 0:r.call(o,{app:e,router:t,siteData:gr}));return e.use(t),{app:e,router:t}};PE().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{xe as _,ie as a,sn as b,ne as c,PE as createVueApp,le as d,cp as e,Ve as f,Y as o,li as r,R0 as s,Ue as w}; diff --git a/assets/audit.html-9dET-Wm_.js b/assets/audit.html-9dET-Wm_.js new file mode 100644 index 0000000..bb59a63 --- /dev/null +++ b/assets/audit.html-9dET-Wm_.js @@ -0,0 +1,77 @@ +import{_ as s,c as a,e as t,o as p}from"./app-drHkZhxR.js";const e={};function c(o,n){return p(),a("div",null,n[0]||(n[0]=[t(`

内容审核

添加敏感词(本地审核)

开启本地审核后,在 App 后台可以主动调用 REST API 接口,增删改查本地审核相关词库。

使用示例:

LocalAuditWord word = new LocalAuditWord();
+word.setFilterType(AuditFilterType.REPLACE);
+word.setWordType(AuditWordType.SENSITIVE_WORDS);
+word.setKeyword("caonima");
+word.setReplacedContent("****");
+AddLocalAuditKeywordsRequest request = AddLocalAuditKeywordsRequest.builder()
+        .sdkAppId(1400594307)
+        .localAuditWords(Collections.singletonList(word)).build();
+
+AddLocalAuditKeywordsResult result = client.audit.addLocalAuditKeywords(request);
+

删除敏感词(本地审核)

开启本地审核后,在 App 后台可以主动调用 REST API 接口,增删改查本地审核相关词库。

使用示例:

DeleteLocalAuditKeywordsRequest request = new DeleteLocalAuditKeywordsRequest();
+request.setSdkAppId(1400594307);
+LocalAuditWord word = new LocalAuditWord();
+word.setId(1L);
+word.setReplacedContent("****");
+word.setKeyword("caonima");
+word.setWordType(AuditWordType.SENSITIVE_WORDS);
+word.setFilterType(AuditFilterType.REPLACE);
+request.setLocalAuditWords(Collections.singletonList(word));
+
+DeleteLocalAuditKeywordsResult result = client.audit.deleteLocalAuditKeywords(request);
+

获取敏感词(本地审核)

开启本地审核后,在 App 后台可以主动调用 REST API 接口,增删改查本地审核相关词库。

使用示例:

GetLocalAuditKeywordsRequest request = GetLocalAuditKeywordsRequest.builder().keyword("caonima")
+        .filterType(AuditFilterType.REPLACE)
+        .limit(1).offset(0).sdkAppId(1400594307).build();
+
+GetLocalAuditKeywordsResult result = client.audit.getLocalAuditKeywords(request);
+

主动审核接口(云端审核)

开启云端审核后,在 App 后台可以主动调用 REST API 接口,送审音视图文等相关内容,其中图文同步返回机审结果,音视频通过异步回调的形式返回机审结果。

使用示例:

ContentModerationRequest request = ContentModerationRequest.builder().content("122")
+        .contentType(AuditContentType.TEXT)
+        .auditName(AuditNameType.C2C)
+        .build();
+
+ContentModerationResult result = client.audit.contentModeration(request);
+

主动批量审核接口(云端审核)

开启云端审核后,在 App 后台可以主动调用 REST API 接口,批量送审图文等相关内容,音视频审核请查看主动审核接口。

使用示例:

BatchContentModerationRequest request = new BatchContentModerationRequest();
+request.setAuditName(AuditNameType.GROUP);
+AuditContentItem item1 = new AuditContentItem();
+item1.setContent("f*ck uuu");
+item1.setContentId(323245334);
+item1.setContentType(AuditContentType.TEXT);
+AuditContentItem item2 = AuditContentItem.builder()
+        .contentId(435545)
+        .contentType(AuditContentType.TEXT)
+        .content("cnm").build();
+request.setContents(Arrays.asList(item1, item2));
+
+BatchContentModerationResult result = client.audit.batchContentModeration(request);
+

获取词库列表(云端审核)

开启云端审核后,在 App 后台可以主动调用 REST API 接口,增删改查云端审核相关词库。

使用示例:

GetCloudAuditKeyWordsIdsRequest request = GetCloudAuditKeyWordsIdsRequest.builder()
+        .limit(1)
+        .offset(0)
+        .sdkAppId(1400594307)
+        .build();
+
+GetCloudAuditKeywordsIdsResult result = client.audit.getCloudAuditKeywordsIds(request);
+

获取敏感词(云端审核)

开启云端审核后,在 App 后台可以主动调用 REST API 接口,增删改查云端审核相关词库。

使用示例:

GetCloudAuditKeyWordsRequest request = GetCloudAuditKeyWordsRequest.builder()
+        .libId("fd")
+        .limit(1)
+        .offset(0)
+        .sdkAppId(1400594307)
+        .build();
+
+GetCloudAuditKeywordsResult result = client.audit.getCloudAuditKeywords(request);
+

添加敏感词(云端审核)

开启云端审核后,在 App 后台可以主动调用 RESTA PI 接口,增删改查云端审核相关词库。

使用示例:

UserKeyword userKeyword = new UserKeyword();
+userKeyword.setContent("caonima");
+userKeyword.setLabel(ContentModerationLabel.COMPOSITE);
+AddCloudAuditKeywordsRequest request = AddCloudAuditKeywordsRequest.builder()
+        .sdkAppId(1400594307)
+        .libId("fd")
+        .userKeywords(Collections.singletonList(userKeyword))
+        .build();
+
+AddCloudAuditKeywordsResult result = client.audit.addCloudAuditKeywords(request);
+

删除敏感词(云端审核)

开启云端审核后,在 App 后台可以主动调用 REST API 接口,增删改查云端审核相关词库。

使用示例:

DeleteCloudAuditKeywordsRequest request = DeleteCloudAuditKeywordsRequest.builder()
+        .sdkAppId(1400594307)
+        .libId("fd")
+        .keywords(Arrays.asList("caonima", "wtf")).build();
+
+DeleteCloudAuditKeywordsResult result = client.audit.deleteCloudAuditKeywords(request);
+
`,37)]))}const u=s(e,[["render",c],["__file","audit.html.vue"]]),i=JSON.parse('{"path":"/guide/audit.html","title":"内容审核","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"添加敏感词(本地审核)","slug":"添加敏感词-本地审核","link":"#添加敏感词-本地审核","children":[]},{"level":2,"title":"删除敏感词(本地审核)","slug":"删除敏感词-本地审核","link":"#删除敏感词-本地审核","children":[]},{"level":2,"title":"获取敏感词(本地审核)","slug":"获取敏感词-本地审核","link":"#获取敏感词-本地审核","children":[]},{"level":2,"title":"主动审核接口(云端审核)","slug":"主动审核接口-云端审核","link":"#主动审核接口-云端审核","children":[]},{"level":2,"title":"主动批量审核接口(云端审核)","slug":"主动批量审核接口-云端审核","link":"#主动批量审核接口-云端审核","children":[]},{"level":2,"title":"获取词库列表(云端审核)","slug":"获取词库列表-云端审核","link":"#获取词库列表-云端审核","children":[]},{"level":2,"title":"获取敏感词(云端审核)","slug":"获取敏感词-云端审核","link":"#获取敏感词-云端审核","children":[]},{"level":2,"title":"添加敏感词(云端审核)","slug":"添加敏感词-云端审核","link":"#添加敏感词-云端审核","children":[]},{"level":2,"title":"删除敏感词(云端审核)","slug":"删除敏感词-云端审核","link":"#删除敏感词-云端审核","children":[]}],"git":{"updatedTime":1698719394000,"contributors":[{"name":"yanglbme","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/yanglbme"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/Yang Libin"}]},"filePathRelative":"guide/audit.md"}');export{u as comp,i as data}; diff --git a/assets/create_identifier-DkS_S2BP.png b/assets/create_identifier-DkS_S2BP.png new file mode 100644 index 0000000..78be6e9 Binary files /dev/null and b/assets/create_identifier-DkS_S2BP.png differ diff --git a/assets/group.html-CZtG0v8f.js b/assets/group.html-CZtG0v8f.js new file mode 100644 index 0000000..ea14851 --- /dev/null +++ b/assets/group.html-CZtG0v8f.js @@ -0,0 +1,352 @@ +import{_ as s,c as a,e as t,o as p}from"./app-drHkZhxR.js";const e={};function o(c,n){return p(),a("div",null,n[0]||(n[0]=[t(`

群组管理

获取 App 中的所有群组

App 管理员可以通过该接口获取 App 中所有群组的 ID。

说明

即时通信 IM 内置多种群组类型,详情请参见 群组系统

使用示例:

GetAppIdGroupListRequest request = GetAppIdGroupListRequest.builder()
+        .limit(10)
+        .groupType(GroupType.PUBLIC)
+        .next(0)
+        .build();
+
+GetAppIdGroupListResult result = client.group.getAppIdGroupList(request);
+

创建群组

App 管理员可以通过该接口创建群组。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持,用户(包括群主)使用 AVChatroom(直播群)时必须操作 SDK 主动申请进群
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

CreateGroupRequest request = CreateGroupRequest.builder()
+        .type(GroupType.PUBLIC)
+        .name("TestGroup")
+        .ownerAccount("user1")
+        .groupId("MyFirstGroup")
+        .introduction("This is group Introduction")
+        .notification("This is group Notification")
+        .faceUrl("https://avatars.githubusercontent.com/u/43716716?s=200&v=4")
+        .maxMemberCount(500)
+        .applyJoinOption(ApplyJoinOption.FREE_ACCESS)
+        .inviteJoinOption(InviteJoinOption.DISABLE_INVITE)
+        .build();
+
+CreateGroupResult result = client.group.createGroup(request);
+

获取群详细资料

App 管理员可以根据群组 ID 获取群组的详细信息。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

List<String> groupIdList = Collections.singletonList("MyFirstGroup");
+GetGroupInfoRequest request = new GetGroupInfoRequest(groupIdList);
+
+GetGroupInfoResult result = client.group.getGroupInfo(request);
+

获取群成员详细资料

App 管理员可以根据群组 ID 获取群组成员的资料。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持,使用 Next 字段分批获取

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

因 Community(社群)人数较多,分页获取方式改用 Next 分批方法。

使用示例:

GetGroupMemberInfoRequest request = GetGroupMemberInfoRequest.builder()
+        .groupId("MyFirstGroup")
+        .limit(100)
+        .offset(0)
+        .build();
+
+GetGroupMemberInfoResult result = client.group.getGroupMemberInfo(request);
+

修改群基础资料

App 管理员可以通过该接口修改指定群组的基础信息。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

ModifyGroupBaseInfoRequest request = ModifyGroupBaseInfoRequest.builder()
+        .groupId("MyFirstGroup")
+        .name("groupName")
+        .introduction("my first group")
+        .notification("hello world!")
+        .faceUrl("https://avatars.githubusercontent.com/u/43716716?s=200&v=4")
+        .maxMemberNum(500)
+        .applyJoinOption(ApplyJoinOption.NEED_PERMISSION)
+        .muteAllMember(MuteAllMember.OFF)
+        .build();
+
+ModifyGroupBaseInfoResult result = client.group.modifyGroupBaseInfo(request);
+

增加群成员

App 管理员可以通过该接口向指定的群中添加新成员。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群)不支持增加群成员,对此类型群组进行操作时会返回 10007 错误。用户加入此类型群组的唯一方式是用户申请加群。

使用示例:

MemberRequestItem item = new MemberRequestItem("user2");
+List<MemberRequestItem> memberList = Collections.singletonList(item);
+AddGroupMemberRequest request = AddGroupMemberRequest.builder()
+        .groupId("MyFirstGroup")
+        .memberList(memberList)
+        .silence(1)
+        .build();
+
+AddGroupMemberResult result = client.group.addGroupMember(request);
+

删除群成员

App 管理员可以通过该接口删除群成员。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群)不支持删除群成员,对这种类型的群组进行操作时会返回 10004 错误。如果管理员希望达到删除群成员的效果,可以通过设置 批量禁言和取消禁言 的方式实现。

使用示例:

List<String> toDelAccount = Collections.singletonList("user2");
+DeleteGroupMemberRequest request = DeleteGroupMemberRequest.builder()
+        .groupId("MyFirstGroup")
+        .memberToDelAccount(toDelAccount)
+        .build();
+
+DeleteGroupMemberResult result = client.group.deleteGroupMember(request);
+

修改群成员资料

App 管理员可以通过该接口修改群成员资料。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群)不存储群成员资料,所以不能修改成员资料。只能修改管理员和群主的成员资料,修改普通成员资料时会返回 10007 错误。

使用示例:

ModifyGroupMemberInfoRequest request = ModifyGroupMemberInfoRequest.builder()
+        .groupId("MyFirstGroup")
+        .memberAccount("doocs")
+        .nameCard("hello World!")
+        .build();
+
+ModifyGroupMemberInfoResult result = client.group.modifyGroupMemberInfo(request);
+

解散群组

App 管理员通过该接口解散群。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

DestroyGroupRequest request = new DestroyGroupRequest("MyFirstGroup");
+
+DestroyGroupResult result = client.group.destroyGroup(request);
+

获取用户所加入的群组

App 管理员可以通过本接口获取某一用户加入的群信息。默认不获取用户已加入但未激活好友工作群(Work)以及直播群(AVChatRoom)群信息。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群),但默认不返回已加入但未激活的此类型群信息
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持,但默认不返回此类型群信息。如果指定拉取 AVChatRoom 类型群信息,获得的群信息可能不完整,AVChatRoom 并不存储所有的群成员资料。
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

GetJoinedGroupListRequest request = new GetJoinedGroupListRequest("doocs");
+
+GetJoinGroupListResult result = client.group.getJoinGroupList(request);
+

查询用户在群组中的身份

App 管理员可以通过该接口获取一批用户在群内的身份,即“成员角色”。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群)不支持该接口,对此类型群组进行操作将返回 10007 错误;但可以通过 获取群组成员详细资料 达到查询“成员角色”的效果。

使用示例:

List<String> userAccount = Collections.singletonList("doocs");
+GetRoleInGroupRequest request = GetRoleInGroupRequest.builder()
+        .groupId("MyFirstGroup")
+        .userAccount(userAccount)
+        .build();
+
+GetRoleInGroupResult result = client.group.getRoleInGroup(request);
+

批量禁言和取消禁言

  • App 管理员禁止指定群组中某些用户在一段时间内发言。
  • App 管理员取消对某些用户的禁言。
  • 被禁言用户退出群组之后再进入同一群组,禁言仍然有效。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

Private(即新版本中的 Work,好友工作群)类型不支持禁言。

使用示例:

List<String> membersAccount = Collections.singletonList("doocs");
+ForbidSendMsgRequest request = ForbidSendMsgRequest.builder()
+        .groupId("MyFirstGroup")
+        .membersAccount(membersAccount)
+        .muteTime(200L)
+        .build();
+
+ForbidSendMsgResult result = client.group.forbidSendMsg(request);
+

获取被禁言群成员列表

App 管理员可以根据群组 ID 获取群组中被禁言的用户列表。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

GetGroupMutedAccountRequest request = new GetGroupMutedAccountRequest("MyFirstGroup");
+
+GetGroupMutedAccountResult result = client.group.getGroupMutedAccount(request);
+

在群组中发送普通消息

App 管理员可以通过该接口在群组中发送普通消息。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

TIMTextMsgElement msg = new TIMTextMsgElement("red packet");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+SendGroupMsgRequest request = SendGroupMsgRequest.builder()
+        .groupId("MyFirstGroup")
+        .random(1314)
+        .msgBody(msgBody)
+        .onlineOnlyFlag(OnlineOnlyFlag.YES)
+        .build();
+
+SendGroupMsgResult result = client.group.sendGroupMsg(request);
+

在群组中发送系统通知

App 管理员可以通过该接口在群组中发送系统通知。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持,仅支持面向全员
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

  • 非直播群支持向群组中的一部分指定成员发送系统通知,而 AVChatRoom(直播群)只支持向群组中所有成员发送系统通知。
  • 客户端接收系统通知接口(V2TIMGroupListener.onReceiveRESTCustomData)请参见 AndroidiOS

使用示例:

List<String> toMembersAccount = Collections.singletonList("doocs");
+SendGroupSystemNotificationRequest request = SendGroupSystemNotificationRequest.builder()
+        .groupId("MyFirstGroup")
+        .content("hello world")
+        .toMembersAccount(toMembersAccount)
+        .build();
+
+SendGroupSystemNotificationResult result = client.group.sendGroupSystemNotification(request);
+

转让群主

  • App 管理员可以通过该接口将群主身份转移给他人。
  • 没有群主的群,App 管理员可以通过此接口指定他人作为群主。
  • 新群主必须为群内成员。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持(见说明)
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群)不支持转让群主,对该类型的群组进行操作时会返回 10007 错误。

使用示例:

ChangeGroupOwnerRequest request = ChangeGroupOwnerRequest.builder()
+        .groupId("MyFirstGroup")
+        .newOwnerAccount("doocs")
+        .build();
+
+ChangeGroupOwnerResult result = client.group.changeGroupOwner(request);
+

撤回群消息

App 管理员通过该接口撤回指定群组的消息,消息需要在漫游有效期以内。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

List<MsgSeqItem> msgSeqList = Collections.singletonList(new MsgSeqItem(0L));
+GroupMsgRecallRequest request = GroupMsgRecallRequest.builder()
+        .groupId("MyFirstGroup")
+        .msgSeqList(msgSeqList)
+        .build();
+
+GroupMsgRecallResult result = client.group.groupMsgRecall(request);
+

导入群基础资料

App 管理员可以通过该接口导入群组,不会触发回调、不会下发通知; 当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议导入存量群组数据。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群)不支持导入群基础资料,对此类型的群组进行操作时会返回 10007 错误;如果需要达到导入群组基础资料的效果,可以通过 创建群组修改群基础资料 的方式实现。

使用示例:

ImportGroupRequest request = ImportGroupRequest.builder()
+        .type(GroupType.PUBLIC)
+        .name("groupName")
+        .build();
+
+ImportGroupResult result = client.group.importGroup(request);
+

导入群消息

  • 该 API 接口的作用是导入群组的消息,不会触发回调、不会下发通知。
  • 当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议导入存量群消息数据。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群)不支持导入群消息,对此类型的群组进行操作时会返回 10007 错误;因为此类型群组所适用的场景不支持查看入群前的历史消息,所以没有提供这一功能。

使用示例:

TIMTextMsgElement msg = new TIMTextMsgElement("hello world");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+GroupMsgItem item = GroupMsgItem.builder()
+        .fromAccount("doocs")
+        .sendTime(1628062005)
+        .msgBody(msgBody)
+        .build();
+List<GroupMsgItem> msgList = Collections.singletonList(item);
+ImportGroupMsgRequest request = ImportGroupMsgRequest.builder()
+        .groupId("newGroup")
+        .msgList(msgList)
+        .build();
+
+ImportGroupMsgResult result = client.group.importGroupMsg(request);
+

导入群成员

  • 该 API 接口的作用是导入群组成员,不会触发回调、不会下发通知。
  • 当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议导入存量群成员数据。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群)所适用的场景一般不需要导入成员,因此不支持导入群成员功能,对此类型的群组进行操作时会返回 10007 错误。

使用示例:

MemberItem item = MemberItem.builder()
+        .memberAccount("doocs")
+        .joinTime(1628062005)
+        .role(MemberRole.ADMIN)
+        .unreadMsgNum(1)
+        .build();
+List<MemberItem> members = Collections.singletonList(item);
+ImportGroupMemberRequest request = ImportGroupMemberRequest.builder()
+        .groupId("groupName")
+        .memberList(members)
+        .build();
+
+ImportGroupMemberResult result = client.group.importGroupMember(request);
+

设置成员未读消息计数

  • App 管理员使用该接口设置群组成员未读消息数,不会触发回调、不会下发通知。
  • 当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议设置群成员的未读消息计数。

说明

该文档仅限迁移用户使用,线上用户不能使用。

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom不支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

ChatRoom 和 AVChatroom(直播群)的客户端不支持未读消息计数,所以对这两种类型的群组成员设置未读消息计数是无效的(但是不会返回错误)。

使用示例:

SetUnreadMsgNumRequest result = SetUnreadMsgNumRequest.builder()
+        .groupId("MyFirstGroup")
+        .memberAccount("doocs")
+        .unreadMsgNum(1)
+        .build();
+
+SetUnreadMsgNumResult result = client.group.setUnreadMsgNum(request);
+

删除指定用户发送的消息

该 API 接口的作用是撤回最近 1000 条消息中指定用户发送的消息。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

  • AVChatRoom(直播群)不支持历史消息存储(此处撤回消息指撤回历史消息存储中的消息),对这此类型群组中的用户撤回消息是无效的(但是不会返回错误)。
  • 该接口目前只支持静默撤回,在服务端对该消息打上撤回标记,并不会通知到客户端,只有拉漫游时才知道该消息被撤回。

使用示例:

DeleteGroupMsgBySenderRequest request = DeleteGroupMsgBySenderRequest.builder()
+        .groupId("MyFirstGroup")
+        .senderAccount("doocs")
+        .build();
+
+DeleteGroupMsgBySenderResult result = client.group.deleteGroupMsgBySender(request);
+

拉取群历史消息

App 管理员可以通过该接口拉取群组的历史消息。

背景说明:

  • 即时通信 IM 的群消息是按 Seq 排序的,按照 server 收到群消息的顺序分配 Seq,先发的群消息 Seq 小,后发的 Seq 大。
  • 如果用户想拉取一个群的全量消息,首次拉取时不用填拉取 Seq,Server 会自动返回最新的消息,以后拉取时拉取 Seq 填上次返回的最小 Seq 减 1。
  • 如果返回消息的 IsPlaceMsg 为 1,表示这个 Seq 的消息或者过期、或者存储失败、或者被删除了。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群)
AVChatRoom不支持
Community(社群)支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

AVChatRoom(直播群) 不支持历史消息存储,所以不支持调用此接口。

使用示例:

GroupMsgGetSimpleRequest request = GroupMsgGetSimpleRequest.builder()
+        .groupId("MyFirstGroup")
+        .reqMsgNumber(1)
+        .reqMsgNumber(20)
+        .build();
+
+GroupMsgGetSimpleResult result = client.group.groupMsgGetSimple(request);
+

获取直播群在线人数

App 管理员可以根据群组 ID 获取直播群在线人数。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持,同新版本中的 Work(好友工作群)
Public不支持
ChatRoom不支持,同新版本中的 Meeting(临时会议群))
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

注意

  • 在线人数总体更新粒度为 10s。
  • 当群人数大于等于 300 或群内有 Web 端用户的时候,出现群成员上下线或者进退群的时候,由于当前 10s 周期内已经统计了用户在线状态的原因,会在下一个 10s 周期才会统计到剔除状态用户变更的在线人数,所以会出现调用接口 10s - 20s 才会更新的现象。
  • 当群人数小于 300 人且群内没有 Web 端用户的时候,用户进退群会触发即时更新在线人数。

使用示例:

GetOnlineMemberNumRequest request = new GetOnlineMemberNumRequest("MyFirstAVChatRoom");
+
+GetOnlineMemberNumResult result = client.group.getOnlineMemberNum(request);
+

获取直播群在线列表

App 管理员可以根据群组 ID 获取直播群在线列表。

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持,同新版本中的 Work(好友工作群)
Public不支持
ChatRoom不支持,同新版本中的 Meeting(临时会议群))
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统。 :::

注意

  • 此功能需 旗舰版套餐,并且已开通“直播群在线成员列表”功能(控制台“群功能配置”)。
  • 在线列表总体更新粒度为 10s。
  • 当直播群中超过 1000 人时,接口仅返回最新进群并且在线的 1000 人。
  • 当群人数大于等于 300 或群内有 Web 端用户的时候,出现群成员上下线或者进退群的时候,由于当前 10s 周期内已经统计了用户在线状态的原因,会在下一个 10s 周期才会统计到剔除状态用户变更的在线人数,所以会出现调用接口 10s - 20s 才会更新的现象。
  • 当群人数小于 300 人且群内没有 Web 端用户的时候,用户进退群会触发即时更新在线人数。

使用示例:

GetMembersRequest request = GetMembersRequest.builder()
+        .groupId("MyFirstGroup")
+        .timestamp(0)
+        .build();
+
+GetMembersResult result = client.group.getMembers(request);
+

设置直播群成员标记

App 管理员和群主可以对直播群成员设置不同的标记以区分不同类型的群成员。该功能需旗舰版,并且在 IM 控制台“群功能配置”中开通“直播群在线成员列表”功能。其他套餐版本调用该 API 将返回失败。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持,同新版本中的 Work(好友工作群)
Public不支持
ChatRoom不支持,同新版本中的 Meeting(临时会议群))
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

ModifyGroupUserInfoRequest request = new ModifyGroupUserInfoRequest();
+request.setCommandType(1);
+GroupMemberItem item = new GroupMemberItem();
+item.setMarks(Arrays.asList(1001, 1002));
+item.setMemberAccount("test1");
+request.setMemberList(Collections.singletonList(item));
+request.setGroupId("MyFirstGroup");
+
+ModifyGroupUserInfoResult result = client.group.modifyGroupUserInfo(request);
+

获取群自定义属性

App 管理员可以通过该接口获取群自定义属性。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群))
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

GetGroupAttrRequest request = new GetGroupAttrRequest("MyFirstGroup");
+
+GetGroupAttrResult result = client.group.getGroupAttr(request);
+

修改群自定义属性

App 管理员可以通过该接口修改群自定义属性。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群))
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

GroupAttr groupAttr = new GroupAttr();
+groupAttr.setKey("isOpen");
+groupAttr.setValue("yes");
+List<GroupAttr> groupAttrs = Collections.singletonList(groupAttr);
+ModifyGroupAttrRequest request = ModifyGroupAttrRequest.builder()
+        .groupId("MyFirstGroup")
+        .groupAttrs(groupAttrs)
+        .build();
+
+ModifyGroupAttrResult result = client.group.modifyGroupAttr(request);
+

清空群自定义属性

App 管理员可以通过该接口清空群自定义属性。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群))
AVChatRoom支持
Community不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

ClearGroupAttrRequest request = new ClearGroupAttrRequest("MyFirstGroup");
+
+ClearGroupAttrResult result = client.group.clearGroupAttr(request);
+

重置群自定义属性

App 管理员可以通过该接口重置群自定义属性。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持
Public支持
ChatRoom支持
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

SetGroupAttrRequest request = new SetGroupAttrRequest();
+request.setGroupId("MyFirstGroup");
+GroupAttr groupAttr = new GroupAttr();
+groupAttr.setKey("isOpen");
+groupAttr.setValue("yes");
+List<GroupAttr> groupAttrs = Collections.singletonList(groupAttr);
+request.setGroupAttrs(groupAttrs);
+
+SetGroupAttrResult result = client.group.setGroupAttr(request);
+

修改群聊历史消息

  • 管理员修改群聊历史消息
  • 可以单独修改消息中的 MsgBody 或 CloudCustomData 字段,也可以同时修改这两个字段。以请求中指定的字段值覆盖历史消息对应的字段。
  • 不支持修改直播群的历史消息

注意

使用该接口修改消息后,被修改的消息不能恢复,请谨慎调用该接口。

使用示例:

ModifyGroupMsgRequest request = new ModifyGroupMsgRequest();
+request.setGroupId("MyFirstGroup");
+request.setMsgSeq(123L);
+TIMTextMsgElement msg = new TIMTextMsgElement("hello world");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+request.setMsgBody(msgBody);
+request.setMsgBody(msgBody);
+
+ModifyGroupMsgResult result = client.group.modifyGroupMsg(request);
+

直播群广播消息

App 管理员可以通过该接口向所有直播群下发广播消息。

注意

直播群广播消息功能支持需要终端 SDK 6.5.2803 增强版及以上版本、Web SDK v2.21.0 及以上版本,需 购买旗舰版套餐包 并在 控制台>群功能配置>群功能配置>直播群广播消息 打开开关后方可使用。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持,同新版本中的 Work(好友工作群)
Public不支持
ChatRoom不支持,同新版本中的 Meeting(临时会议群))
AVChatRoom支持,发给所有直播群
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

SendBroadcastMsgRequest request = new SendBroadcastMsgRequest();
+request.setFromAccount("test1");
+TIMTextMsgElement msg = new TIMTextMsgElement("hello world");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+request.setMsgBody(msgBody);
+request.setRandom(1223L);
+
+SendBroadcastMsgResult result = client.group.sendBroadcastMsg(request);
+

拉取群消息已读回执信息

App 管理员可以通过该接口拉取群消息已读回执信息。

注意

该功能仅对旗舰版客户开放,需 购买旗舰版套餐包 并在 控制台>登录与消息>群消息已读回执 打开开关后方可使用。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群))
AVChatRoom不支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

GetGroupMsgReceiptRequest request = new GetGroupMsgReceiptRequest();
+request.setGroupId("MyFirstGroup");
+MsgSeqItem seqItem = new MsgSeqItem();
+seqItem.setMsgSeq(123L);
+request.setMsgSeqList(Collections.singletonList(seqItem));
+
+GetGroupMsgReceiptResult result = client.group.getGroupMsgReceipt(request);
+

拉取群消息已读回执详情

App 管理员可以通过该接口拉取群消息已读或未读成员列表。

注意

该功能仅对旗舰版客户开放,需 购买旗舰版套餐包 并在 控制台>登录与消息>群消息已读回执 打开开关后方可使用。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private支持,同新版本中的 Work(好友工作群)
Public支持
ChatRoom支持,同新版本中的 Meeting(临时会议群))
AVChatRoom不支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

GetGroupMsgReceiptDetailRequest request = new GetGroupMsgReceiptDetailRequest();
+request.setGroupId("MyFirstGroup");
+request.setMsgSeq(123L);
+request.setNum(12);
+request.setCursor("");
+request.setFlag(12);
+
+GetGroupMsgReceiptDetailResult result = client.group.getGroupMsgReceiptDetail(request);
+

创建话题

App 管理员可以通过该接口创建话题。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持
Public不支持
ChatRoom不支持
AVChatRoom不支持
Community(社群)只有支持话题的社群才适用此 API

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

CreateGroupTopicRequest request = new CreateGroupTopicRequest();
+request.setGroupId("MyFirstGroup");
+request.setTopicName("test");
+request.setFaceUrl("");
+
+CreateGroupTopicResult result = client.group.createGroupTopic(request);
+

获取话题资料

App 管理员可以通过该接口获取话题资料。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持
Public不支持
ChatRoom不支持
AVChatRoom不支持
Community(社群)只有支持话题的社群才适用此 API

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

GetGroupTopicRequest request = new GetGroupTopicRequest();
+request.setGroupId("MyFirstGroup");
+request.setFromAccount("1400187352");
+
+GetGroupTopicResult result = client.group.getGroupTopic(request);
+

修改话题资料

App 管理员可以通过该接口修改话题资料。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持
Public不支持
ChatRoom不支持
AVChatRoom不支持
Community(社群)只有支持话题的社群才适用此 API

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

ModifyGroupTopicRequest request = new ModifyGroupTopicRequest();
+request.setGroupId("MyFirstGroup");
+request.setTopicName("test");
+request.setFaceUrl("");
+
+ModifyGroupTopicResult result = client.group.modifyGroupTopic(request);
+

导入话题基础资料

App 管理员可以通过该接口导入话题,不会触发回调、不会下发通知;当 App 需要从其他即时通信系统迁移到即时通信 IM 时,使用该协议导入存量话题数据。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持
Public不支持
ChatRoom不支持
AVChatRoom不支持
Community(社群)只有支持话题的社群才适用此 API

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

ImportGroupTopicRequest request = new ImportGroupTopicRequest();
+request.setGroupId("MyFirstGroup");
+request.setTopicName("test");
+request.setFromAccount("123");
+
+ImportGroupTopicResult result = client.group.importGroupTopic(request);
+

解散话题

App 管理员可以通过该接口解散话题。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持
Public不支持
ChatRoom不支持
AVChatRoom不支持
Community(社群)只有支持话题的社群才适用此 API

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

DestroyGroupTopicRequest request = new DestroyGroupTopicRequest();
+request.setGroupId("MyFirstGroup");
+
+DestroyGroupTopicResult result = client.group.destroyGroupTopic(request);
+

获取封禁群成员列表

App 管理员可以通过该接口获取对应直播群的封禁成员列表。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持,同新版本中的 Work(好友工作群)
Public不支持
ChatRoom不支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

GetGroupBanMemberRequest request = new GetGroupBanMemberRequest();
+request.setGroupId("MyFirstGroup");
+request.setLimit(10);
+request.setOffset(0);
+
+GetGroupBanMemberResult result = client.group.getGroupBanMember(request);
+

群成员封禁

App 管理员可以通过该接口向直播群封禁成员,封禁后成员无法接收消息,并且封禁时间内无法再次进群。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持,同新版本中的 Work(好友工作群)
Public不支持
ChatRoom不支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

BanGroupMemberRequest request = new BanGroupMemberRequest();
+request.setGroupId("MyFirstGroup");
+request.setDuration(1000L);
+request.setMembersAccount(Arrays.asList("test1", "bingo"));
+request.setDescription("test");
+
+BanGroupMemberResult result = client.group.banGroupMember(request);
+

群成员解封

App 管理员可以通过该接口向直播群解封成员,解封后,之前封禁的成员可重新进群获取消息。

说明

适用的群组类型

群组类型 ID是否支持此 REST API
Private不支持,同新版本中的 Work(好友工作群)
Public不支持
ChatRoom不支持,同新版本中的 Meeting(临时会议群)
AVChatRoom支持
Community(社群)不支持

即时通信 IM 内置上述群组类型,详情介绍请参见 群组系统

使用示例:

UnbanGroupMemberRequest request = new UnbanGroupMemberRequest();
+request.setGroupId("MyFirstGroup");
+request.setMembersAccount(Arrays.asList("test1", "bingo"));
+
+UnbanGroupMemberResult result = client.group.unbanGroupMember(request);
+

拉取群消息扩展

App 管理员和群成员可以拉取消息扩展,消息扩展为一组自定义的键值对。

注意

  • 此功能需 旗舰版套餐,并且已开通“消息扩展功能”功能(控制台“登录与消息”配置)。
  • 单条群消息可设置的最大键值对数量为 300 条。
  • 被设置的群消息需要在发送时指定“支持消息扩展”,参见 在群组中发送普通消息

使用示例:

GroupGetKeyValuesRequest request = GroupGetKeyValuesRequest.builder()
+        .groupId("MyFirstGroup")
+        .msgSeq(1L)
+        .build();
+
+GroupGetKeyValuesResult result = client.group.groupGetKeyValues(request);
+

设置群消息扩展

App 管理员和群成员可以为群聊普通消息设置消息扩展,消息扩展为一组自定义的键值对。

注意

  • 此功能需 旗舰版套餐,并且已开通“消息扩展功能”功能(控制台“登录与消息”配置)。
  • 单条群消息可设置的最大键值对数量为 300 条。
  • 被设置的群消息需要在发送时指定“支持消息扩展”,参见 在群组中发送普通消息

使用示例:

GroupSetKeyValuesRequest request = GroupSetKeyValuesRequest.builder()
+        .groupId("MyFirstGroup")
+        .msgSeq(1L)
+        .extensionList(Collections.singletonList(KeyValueSeq.builder()
+                .key("test")
+                .value("test")
+                .build()))
+        .build();
+
+GroupSetKeyValuesResult result = client.group.groupSetKeyValues(request);
+

获取群计数器

App 管理员可以通过该接口获取群计数器。

注意

使用示例:

GetGroupCounterRequest request = GetGroupCounterRequest.builder()
+        .groupId("MyFirstGroup")
+        .build();
+
+GetGroupCounterResult result = client.group.getGroupCounter(request);
+

更新群计数器

App 管理员可以通过该接口更新(设置、递增、递减)群计数器。

注意

使用示例:

List<GroupCounterItem> groupCounter = new ArrayList<>();
+GroupCounterItem item = new GroupCounterItem();
+item.setKey("x");
+item.setValue(1L);
+groupCounter.add(item);
+UpdateGroupCounterRequest request = UpdateGroupCounterRequest.builder()
+        .groupId("MyFirstGroup")
+        .groupCounter(groupCounter)
+        .mode(GroupCounterMode.SET)
+        .build();
+
+UpdateGroupCounterResult result = client.group.updateGroupCounter(request);
+

删除群计数器

App 管理员可以通过该接口删除群计数器。

注意

使用示例:

DeleteGroupCounterRequest request = DeleteGroupCounterRequest.builder()
+        .groupId("MyFirstGroup")
+        .build();
+
+DeleteGroupCounterResult result = client.group.deleteGroupCounter(request);
+

设置/取消直播群管理员

App 管理员可以为直播群设置和取消管理员,当设置管理员时,被设置的账号可以不需要在直播群里,被设置为管理员之后,该账号即使离开直播群再重新进群也仍然是管理员。需要取消管理员身份时,需要调用本接口取消该用户的管理员身份。该功能需旗舰版,并且在 IM 控制台“群功能配置”中开通“直播群在线成员列表”功能。

使用示例:

ModifyAdminRequest request = ModifyAdminRequest.builder()
+        .groupId("MyFirstGroup")
+        .commandType(1)
+        .adminAccount(Arrays.asList("test1", "bingo"))
+        .build();
+
+ModifyAdminResult result = client.group.modifyAdmin(request);
+

获取直播群管理员列表

App 管理员可以根据群组 ID 获取直播群管理员列表。该功能仅限旗舰版用户在 IM 控制台“群功能配置”中开启“直播群在线成员列表”后方可使用。

使用示例:

GetAdminListRequest request = GetAdminListRequest.builder()
+        .groupId("MyFirstGroup")
+        .build();
+
+GetAdminListResult result = client.group.getAdminList(request);
+

查询用户是否在直播群内

App 管理员可以根据群组 ID 查询一批用户是否在直播群内。该功能需旗舰版,并且在 IM 控制台“群功能配置”中开通“直播群在线成员列表”功能。

使用示例:

CheckMembersRequest request = CheckMembersRequest.builder()
+        .groupId("MyFirstGroup")
+        .memberAccount(Arrays.asList("test1", "bingo"))
+        .build();
+
+CheckMembersResult result = client.group.checkMembers(request);
+
`,257)]))}const i=s(e,[["render",o],["__file","group.html.vue"]]),u=JSON.parse('{"path":"/guide/group.html","title":"群组管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"获取 App 中的所有群组","slug":"获取-app-中的所有群组","link":"#获取-app-中的所有群组","children":[]},{"level":2,"title":"创建群组","slug":"创建群组","link":"#创建群组","children":[]},{"level":2,"title":"获取群详细资料","slug":"获取群详细资料","link":"#获取群详细资料","children":[]},{"level":2,"title":"获取群成员详细资料","slug":"获取群成员详细资料","link":"#获取群成员详细资料","children":[]},{"level":2,"title":"修改群基础资料","slug":"修改群基础资料","link":"#修改群基础资料","children":[]},{"level":2,"title":"增加群成员","slug":"增加群成员","link":"#增加群成员","children":[]},{"level":2,"title":"删除群成员","slug":"删除群成员","link":"#删除群成员","children":[]},{"level":2,"title":"修改群成员资料","slug":"修改群成员资料","link":"#修改群成员资料","children":[]},{"level":2,"title":"解散群组","slug":"解散群组","link":"#解散群组","children":[]},{"level":2,"title":"获取用户所加入的群组","slug":"获取用户所加入的群组","link":"#获取用户所加入的群组","children":[]},{"level":2,"title":"查询用户在群组中的身份","slug":"查询用户在群组中的身份","link":"#查询用户在群组中的身份","children":[]},{"level":2,"title":"批量禁言和取消禁言","slug":"批量禁言和取消禁言","link":"#批量禁言和取消禁言","children":[]},{"level":2,"title":"获取被禁言群成员列表","slug":"获取被禁言群成员列表","link":"#获取被禁言群成员列表","children":[]},{"level":2,"title":"在群组中发送普通消息","slug":"在群组中发送普通消息","link":"#在群组中发送普通消息","children":[]},{"level":2,"title":"在群组中发送系统通知","slug":"在群组中发送系统通知","link":"#在群组中发送系统通知","children":[]},{"level":2,"title":"转让群主","slug":"转让群主","link":"#转让群主","children":[]},{"level":2,"title":"撤回群消息","slug":"撤回群消息","link":"#撤回群消息","children":[]},{"level":2,"title":"导入群基础资料","slug":"导入群基础资料","link":"#导入群基础资料","children":[]},{"level":2,"title":"导入群消息","slug":"导入群消息","link":"#导入群消息","children":[]},{"level":2,"title":"导入群成员","slug":"导入群成员","link":"#导入群成员","children":[]},{"level":2,"title":"设置成员未读消息计数","slug":"设置成员未读消息计数","link":"#设置成员未读消息计数","children":[]},{"level":2,"title":"删除指定用户发送的消息","slug":"删除指定用户发送的消息","link":"#删除指定用户发送的消息","children":[]},{"level":2,"title":"拉取群历史消息","slug":"拉取群历史消息","link":"#拉取群历史消息","children":[]},{"level":2,"title":"获取直播群在线人数","slug":"获取直播群在线人数","link":"#获取直播群在线人数","children":[]},{"level":2,"title":"获取直播群在线列表","slug":"获取直播群在线列表","link":"#获取直播群在线列表","children":[]},{"level":2,"title":"设置直播群成员标记","slug":"设置直播群成员标记","link":"#设置直播群成员标记","children":[]},{"level":2,"title":"获取群自定义属性","slug":"获取群自定义属性","link":"#获取群自定义属性","children":[]},{"level":2,"title":"修改群自定义属性","slug":"修改群自定义属性","link":"#修改群自定义属性","children":[]},{"level":2,"title":"清空群自定义属性","slug":"清空群自定义属性","link":"#清空群自定义属性","children":[]},{"level":2,"title":"重置群自定义属性","slug":"重置群自定义属性","link":"#重置群自定义属性","children":[]},{"level":2,"title":"修改群聊历史消息","slug":"修改群聊历史消息","link":"#修改群聊历史消息","children":[]},{"level":2,"title":"直播群广播消息","slug":"直播群广播消息","link":"#直播群广播消息","children":[]},{"level":2,"title":"拉取群消息已读回执信息","slug":"拉取群消息已读回执信息","link":"#拉取群消息已读回执信息","children":[]},{"level":2,"title":"拉取群消息已读回执详情","slug":"拉取群消息已读回执详情","link":"#拉取群消息已读回执详情","children":[]},{"level":2,"title":"创建话题","slug":"创建话题","link":"#创建话题","children":[]},{"level":2,"title":"获取话题资料","slug":"获取话题资料","link":"#获取话题资料","children":[]},{"level":2,"title":"修改话题资料","slug":"修改话题资料","link":"#修改话题资料","children":[]},{"level":2,"title":"导入话题基础资料","slug":"导入话题基础资料","link":"#导入话题基础资料","children":[]},{"level":2,"title":"解散话题","slug":"解散话题","link":"#解散话题","children":[]},{"level":2,"title":"获取封禁群成员列表","slug":"获取封禁群成员列表","link":"#获取封禁群成员列表","children":[]},{"level":2,"title":"群成员封禁","slug":"群成员封禁","link":"#群成员封禁","children":[]},{"level":2,"title":"群成员解封","slug":"群成员解封","link":"#群成员解封","children":[]},{"level":2,"title":"拉取群消息扩展","slug":"拉取群消息扩展","link":"#拉取群消息扩展","children":[]},{"level":2,"title":"设置群消息扩展","slug":"设置群消息扩展","link":"#设置群消息扩展","children":[]},{"level":2,"title":"获取群计数器","slug":"获取群计数器","link":"#获取群计数器","children":[]},{"level":2,"title":"更新群计数器","slug":"更新群计数器","link":"#更新群计数器","children":[]},{"level":2,"title":"删除群计数器","slug":"删除群计数器","link":"#删除群计数器","children":[]},{"level":2,"title":"设置/取消直播群管理员","slug":"设置-取消直播群管理员","link":"#设置-取消直播群管理员","children":[]},{"level":2,"title":"获取直播群管理员列表","slug":"获取直播群管理员列表","link":"#获取直播群管理员列表","children":[]},{"level":2,"title":"查询用户是否在直播群内","slug":"查询用户是否在直播群内","link":"#查询用户是否在直播群内","children":[]}],"git":{"updatedTime":1721718509000,"contributors":[{"name":"Joel","email":"34619326+joelcho@users.noreply.github.com","commits":1,"url":"https://github.com/Joel"},{"name":"Libin YANG","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/Libin YANG"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":2,"url":"https://github.com/hongyiheng"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":19,"url":"https://github.com/Yang Libin"},{"name":"yanglbme","email":"szuyanglb@outlook.com","commits":3,"url":"https://github.com/yanglbme"},{"name":"怡蘅","email":"hongyihengg@gmail.com","commits":3,"url":"https://github.com/怡蘅"}]},"filePathRelative":"guide/group.md"}');export{i as comp,u as data}; diff --git a/assets/index.html-C-mbL9i8.js b/assets/index.html-C-mbL9i8.js new file mode 100644 index 0000000..48c4f05 --- /dev/null +++ b/assets/index.html-C-mbL9i8.js @@ -0,0 +1 @@ +import{_ as o,c as r,a as t,b as a,d as i,e as l,o as s,r as c}from"./app-drHkZhxR.js";const d="/qcloud-im-server-sdk-java/assets/create_identifier-DkS_S2BP.png",m={};function p(h,e){const n=c("Badge");return s(),r("div",null,[e[2]||(e[2]=t("h1",{id:"介绍",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#介绍"},[t("span",null,"介绍")])],-1)),t("p",null,[e[0]||(e[0]=a("本文档基于腾讯云 IM Server SDK Java ")),i(n,{type:"tip",text:"v0.4.09",vertical:"top"}),e[1]||(e[1]=a(" 编写。"))]),e[3]||(e[3]=l('

前提条件

说明

“App 管理员”是对 App 具有最高管理权限的角色,可调用 REST API 接口,进行创建/解散群组、发送全员推送消息等操作。每个应用最多支持配置 10 个管理员。

SDK 环境依赖

  • Java 8 及以上版本
  • Maven

SDK 源码

SDK 源码请参见 GitHub

项目贡献者

',9))])}const g=o(m,[["render",p],["__file","index.html.vue"]]),b=JSON.parse('{"path":"/guide/","title":"介绍","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"前提条件","slug":"前提条件","link":"#前提条件","children":[]},{"level":2,"title":"SDK 环境依赖","slug":"sdk-环境依赖","link":"#sdk-环境依赖","children":[]},{"level":2,"title":"SDK 源码","slug":"sdk-源码","link":"#sdk-源码","children":[]},{"level":2,"title":"项目贡献者","slug":"项目贡献者","link":"#项目贡献者","children":[]}],"git":{"updatedTime":1732533511000,"contributors":[{"name":"Libin YANG","email":"szuyanglb@outlook.com","commits":5,"url":"https://github.com/Libin YANG"},{"name":"yanglbme","email":"szuyanglb@outlook.com","commits":18,"url":"https://github.com/yanglbme"},{"name":"Antenbabby","email":"18116874+Antenbabby@users.noreply.github.com","commits":2,"url":"https://github.com/Antenbabby"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":2,"url":"https://github.com/hongyiheng"},{"name":"acbin","email":"44314231+acbin@users.noreply.github.com","commits":1,"url":"https://github.com/acbin"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":46,"url":"https://github.com/Yang Libin"},{"name":"yu","email":"502400992@qq.com","commits":1,"url":"https://github.com/yu"},{"name":"怡蘅","email":"hongyihengg@gmail.com","commits":2,"url":"https://github.com/怡蘅"}]},"filePathRelative":"guide/README.md"}');export{g as comp,b as data}; diff --git a/assets/index.html-CvDMxkm5.js b/assets/index.html-CvDMxkm5.js new file mode 100644 index 0000000..f3affad --- /dev/null +++ b/assets/index.html-CvDMxkm5.js @@ -0,0 +1 @@ +import{_ as t,c as e,o as i}from"./app-drHkZhxR.js";const a={};function l(o,n){return i(),e("div")}const m=t(a,[["render",l],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/","title":"首页","lang":"zh-CN","frontmatter":{"home":true,"title":"首页","heroImage":"https://avatars.githubusercontent.com/u/43716716","tagline":null,"actions":[{"text":"快速上手","link":"/guide/quickstart.html","type":"primary"},{"text":"项目简介","link":"/guide/","type":"secondary"}],"features":[{"title":"账号管理","details":"导入、删除、查询账号等"},{"title":"单聊消息","details":"发送、查询、撤回、已读消息等"},{"title":"全员推送","details":"设置、获取应用属性、用户属性、用户标签等"},{"title":"资料管理","details":"设置、拉取资料"},{"title":"关系链管理","details":"添加、导入、更新、删除、校验好友等"},{"title":"最近联系人","details":"拉取、删除会话等"},{"title":"群组管理","details":"管理群组、群成员、群消息通知等"},{"title":"全局禁言管理","details":"设置、查询全局禁言等"},{"title":"机器人","details":"创建、删除、拉取机器人等"},{"title":"内容审核","details":"本地审核、云端审核等"},{"title":"公众号管理","details":"创建、销毁、修改公众号等"}],"footer":"Apache-2.0 Licensed | Copyright © 2021-present Doocs"},"headers":[],"git":{"updatedTime":1704879157000,"contributors":[{"name":"Libin YANG","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/Libin YANG"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"},{"name":"acbin","email":"44314231+acbin@users.noreply.github.com","commits":1,"url":"https://github.com/acbin"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/Yang Libin"},{"name":"yanglbme","email":"szuyanglb@outlook.com","commits":2,"url":"https://github.com/yanglbme"}]},"filePathRelative":"README.md"}');export{m as comp,c as data}; diff --git a/assets/member.html-BlOWnDb2.js b/assets/member.html-BlOWnDb2.js new file mode 100644 index 0000000..f2aca9c --- /dev/null +++ b/assets/member.html-BlOWnDb2.js @@ -0,0 +1,70 @@ +import{_ as n,c as a,e as t,o as p}from"./app-drHkZhxR.js";const e={};function c(l,s){return p(),a("div",null,s[0]||(s[0]=[t(`

全员推送

全员推送

全员推送,用户运营利器,不仅支持全员发送特定内容,还可根据标签、属性,针对特定用户群体发送个性化内容,如会员活动、区域通知等,助力拉新、转化、促活等各个阶段运营工作的有效进行。

  • 支持全员推送。
  • 支持按用户属性推送。
  • 支持按用户标签推送。
  • 管理员推送消息,接收方看到消息发送者是管理员。
  • 管理员指定某一账号向其他账号推送消息,接收方看到发送者不是管理员,而是管理员指定的账号。
  • 支持消息离线存储,不支持漫游。
  • 由于全员推送需要下发的账号数量巨大,下发完全部账号需要一定时间(根据账号总数而定,一般在一分钟内)。
  • 支持只推在线用户,需要将 MsgLifeTime 参数设置为 0。

说明

“全员推送”为 IM 旗舰版功能,购买旗舰版套餐包 后可使用,详见 价格说明

使用示例:

TIMTextMsgElement msg = new TIMTextMsgElement("hi, beauty");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+ImPushRequest request = ImPushRequest.builder()
+        .msgRandom(9312457L)
+        .msgBody(msgBody)
+        .fromAccount("admin")
+        .msgLifeTime(120)
+        .build();
+
+ImPushResult result = client.member.imPush(request);
+

设置应用属性名称

每个应用可以设置自定义的用户属性,最多可以有 10 个。通过本接口可以设置每个属性的名称,设置完成后,即可用于按用户属性推送等。

使用示例:

Map<String, String> attrNames = new HashMap<>(3);
+attrNames.put("0", "sex");
+attrNames.put("1", "city");
+attrNames.put("2", "country");
+ImSetAttrNameRequest request = new ImSetAttrNameRequest(attrNames);
+
+ImSetAttrNameResult result = client.member.imSetAttrName(request);
+

获取应用属性名称

管理员获取应用属性名称。使用前请先 设置应用属性名称

使用示例:

ImGetAttrNameRequest request = new ImGetAttrNameRequest();
+
+ImGetAttrNameResult result = client.member.imGetAttrName(request);
+

获取用户属性

获取用户属性(必须以管理员账号调用);每次最多只能获取 100 个用户的属性。使用前请先 设置应用属性名称

使用示例:

List<String> toAccount = Arrays.asList("test1", "test2");
+ImGetAttrRequest request = new ImGetAttrRequest(toAccount);
+
+ImGetAttrResult result = client.member.imGetAttr(request);
+

设置用户属性

管理员给用户设置属性。每次最多只能给 100 个用户设置属性。使用前请先 设置应用属性名称

使用示例:

Map<String, Object> attrs = new HashMap<>();
+attrs.put("sex", "attr1");
+attrs.put("city", "attr2");
+UserAttrItem item = new UserAttrItem("test1", attrs);
+List<UserAttrItem> userAttrs = Collections.singletonList(item);
+ImSetAttrRequest request = new ImSetAttrRequest(userAttrs);
+
+ImSetAttrResult result = client.member.imSetAttr(request);
+

删除用户属性

管理员给用户删除属性。注意每次最多只能给 100 个用户删除属性。使用前请先 设置应用属性名称

使用示例:

Map<String, Object> attrs = new HashMap<>();
+attrs.put("sex", "attr1");
+attrs.put("city", "attr2");
+UserAttrItem item = UserAttrItem.builder()
+        .toAccount("test1")
+        .attrs(attrs)
+        .build();
+List<UserAttrItem> userAttrs = Collections.singletonList(item);
+ImRemoveAttrRequest request = new ImRemoveAttrRequest(userAttrs);
+
+ImRemoveAttrResult result = client.member.imRemoveAttr(request);
+

获取用户标签

获取用户标签(必须以管理员账号调用)。每次最多只能获取 100 个用户的标签。

使用示例:

List<String> toAccount = Arrays.asList("test1", "test2");
+ImGetTagRequest request = new ImGetTagRequest(toAccount);
+
+ImGetTagResult result = client.member.imGetTag(request);
+

添加用户标签

管理员给用户添加标签。

注意

  • 每次请求最多只能给 100 个用户添加标签,请求体中单个用户添加标签数最多为 10 个。
  • 单个用户可设置最大标签数为 100 个,若用户当前标签超过 100,则添加新标签之前请先删除旧标签。
  • 单个标签最大长度为 50 字节。

使用示例:

List<String> tags = Arrays.asList("a", "b");
+UserTagItem item = UserTagItem.builder()
+        .toAccount("test1")
+        .tags(tags)
+        .build();
+List<UserTagItem> userTags = Collections.singletonList(item);
+ImAddTagRequest request = new ImAddTagRequest(userTags);
+
+ImAddTagResult result = client.member.imAddTag(request);
+

删除用户标签

管理员给用户删除标签。注意每次最多只能给 100 个用户删除标签。

使用示例:

List<String> tags = Arrays.asList("a", "b");
+UserTagItem item = UserTagItem.builder()
+        .toAccount("test1")
+        .tags(tags)
+        .build();
+List<UserTagItem> userTags = Collections.singletonList(item);
+ImRemoveTagRequest request = new ImRemoveTagRequest(userTags);
+
+ImRemoveTagResult result = client.member.imRemoveTag(request);
+

删除所有用户标签

管理员给用户删除所有标签。注意每次最多只能给 100 个用户删除所有标签。

使用示例:

List<String> toAccount = Arrays.asList("test1", "test2");
+ImRemoveAllTagsRequest request = new ImRemoveAllTagsRequest(toAccount);
+
+ImRemoveAllTagsResult result = client.member.imRemoveAllTags(request);
+
`,44)]))}const i=n(e,[["render",c],["__file","member.html.vue"]]),u=JSON.parse('{"path":"/guide/member.html","title":"全员推送","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"全员推送","slug":"全员推送-1","link":"#全员推送-1","children":[]},{"level":2,"title":"设置应用属性名称","slug":"设置应用属性名称","link":"#设置应用属性名称","children":[]},{"level":2,"title":"获取应用属性名称","slug":"获取应用属性名称","link":"#获取应用属性名称","children":[]},{"level":2,"title":"获取用户属性","slug":"获取用户属性","link":"#获取用户属性","children":[]},{"level":2,"title":"设置用户属性","slug":"设置用户属性","link":"#设置用户属性","children":[]},{"level":2,"title":"删除用户属性","slug":"删除用户属性","link":"#删除用户属性","children":[]},{"level":2,"title":"获取用户标签","slug":"获取用户标签","link":"#获取用户标签","children":[]},{"level":2,"title":"添加用户标签","slug":"添加用户标签","link":"#添加用户标签","children":[]},{"level":2,"title":"删除用户标签","slug":"删除用户标签","link":"#删除用户标签","children":[]},{"level":2,"title":"删除所有用户标签","slug":"删除所有用户标签","link":"#删除所有用户标签","children":[]}],"git":{"updatedTime":1696847753000,"contributors":[{"name":"acbin","email":"44314231+acbin@users.noreply.github.com","commits":1,"url":"https://github.com/acbin"},{"name":"yanglbme","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/yanglbme"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":4,"url":"https://github.com/Yang Libin"},{"name":"怡蘅","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/怡蘅"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"}]},"filePathRelative":"guide/member.md"}');export{i as comp,u as data}; diff --git a/assets/message.html-Bt8eLqry.js b/assets/message.html-Bt8eLqry.js new file mode 100644 index 0000000..f7ade13 --- /dev/null +++ b/assets/message.html-Bt8eLqry.js @@ -0,0 +1,122 @@ +import{_ as s,c as a,e as t,o as p}from"./app-drHkZhxR.js";const e={};function c(l,n){return p(),a("div",null,n[0]||(n[0]=[t(`

单聊消息

单发单聊消息

  • 管理员向账号发消息,接收方看到消息发送者是管理员。
  • 管理员指定某一账号向其他账号发消息,接收方看到发送者不是管理员,而是管理员指定的账号。
  • 该接口不会检查发送者和接收者的好友关系(包括黑名单),同时不会检查接收者是否被禁言。
  • 该接口默认不会检查接收者对发送者是否设置了免打扰,如需检查,请在"SendMsgControl"字段填上"WithMuteNotifications"。
  • 单聊消息 MsgSeq 字段的作用及说明:该字段在发送消息时由用户自行指定,该值可以重复,非后台生成,非全局唯一。与群聊消息的 MsgSeq 字段不同,群聊消息的 MsgSeq 由后台生成,每个群都维护一个 MsgSeq,从 1 开始严格递增。单聊消息历史记录对同一个会话的消息先以时间戳排序,同秒内的消息再以 MsgSeq 排序。

使用示例:

TIMTextMsgElement msg = new TIMTextMsgElement("hello world");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+SendMsgRequest request = SendMsgRequest.builder()
+        .fromAccount("test1")
+        .toAccount("test2")
+        .msgRandom(123L)
+        .msgBody(msgBody)
+        .syncOtherMachine(SyncOtherMachine.YES)
+        .msgTimeStamp(1631934058)
+        .msgLifeTime(604800)
+        .build();
+
+SendMsgResult result = client.message.sendMsg(request);
+

批量发单聊消息

  • 支持一次对最多 500 个用户进行单发消息。
  • 与单发消息相比,该接口更适用于营销类消息、系统通知 tips 等时效性较强的消息。
  • 若消息不需要计入未读数,也不需要存储聊天记录,则可将 MsgLifeTime 字段设置为 0,这样可以带来更快的消息下发速度。
  • 管理员指定某一账号向目标账号批量发消息,接收方看到发送者不是管理员,而是管理员指定的账号。
  • 该接口不触发回调请求。
  • 该接口不会检查发送者和接收者的好友关系(包括黑名单),同时不会检查接收者是否被禁言。
  • 该接口默认不会检查接收者对发送者是否设置了免打扰,如需检查,请在"SendMsgControl"字段填上"WithMuteNotifications"。
  • 单聊消息 MsgSeq 字段的作用及说明:该字段在发送消息时由用户自行指定,该值可以重复,非后台生成,非全局唯一。与群聊消息的 MsgSeq 字段不同,群聊消息的 MsgSeq 由后台生成,每个群都维护一个 MsgSeq,从 1 开始严格递增。单聊消息历史记录对同一个会话的消息先以时间戳排序,同秒内的消息再以 MsgSeq 排序。

使用示例:

List<String> toAccount = Arrays.asList("test1", "test2");
+TIMTextMsgElement msg = new TIMTextMsgElement("hi bingo");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+BatchSendMsgRequest request = BatchSendMsgRequest
+        .builder()
+        .toAccount(toAccount)
+        .msgRandom(123L)
+        .msgBody(msgBody)
+        .syncOtherMachine(SyncOtherMachine.NO)
+        .msgSeq(28460L)
+        .build();
+
+BatchSendMsgResult result = client.message.batchSendMsg(request);
+

导入单聊消息

  • 导入历史单聊消息到即时通信 IM。
  • 平滑过渡期间,将原有即时通信实时单聊消息导入到即时通信 IM。
  • 该接口会更新会话。
  • 该接口不会触发回调。
  • 对于同一个单聊会话的消息,该接口会根据 MsgSeq , MsgRandom , MsgTimeStamp 字段的值对导入的消息进行去重。仅当这三个字段的值都对应相同时,才判定消息是重复的,消息是否重复与消息内容本身无关。 另外,若两条消息的 MsgSeq , MsgRandom , MsgTimeStamp 字段对应相同,而 from_account 和 to_account 相反,则这两条消息也认为是重复的。
  • 重复导入的消息不会覆盖之前已导入的消息(即消息内容以首次导入的为准)。
  • 单聊消息 MsgSeq 字段的作用及说明:该字段在发送消息时由用户自行指定,该值可以重复,非后台生成,非全局唯一。与群聊消息的 MsgSeq 字段不同,群聊消息的 MsgSeq 由后台生成,每个群都维护一个 MsgSeq,从 1 开始严格递增。单聊消息历史记录对同一个会话的消息先以时间戳排序,同秒内的消息再以 MsgSeq 排序。

使用示例:

TIMTextMsgElement msg = new TIMTextMsgElement("hello bingo");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+ImportMsgRequest request = ImportMsgRequest.builder()
+        .fromAccount("bingo")
+        .toAccount("test1")
+        .msgRandom(122L)
+        .msgTimeStamp(1557387418)
+        .msgBody(msgBody)
+        .build();
+
+ImportMsgResult result = client.message.importMsg(request);
+

查询单聊消息

  • 管理员按照时间范围查询某单聊会话的消息记录。
  • 查询的单聊会话由请求中的 From_Account 和 To_Account 指定。查询结果包含会话双方互相发送的消息,具体每条消息的发送方和接收方由每条消息里的 From_Account 和 To_Account 指定。
  • 一般情况下,请求中的 From_Account 和 To_Account 字段值互换,查询结果不变。但通过 单发单聊消息批量发单聊消息 接口发送的消息,如果指定 SyncOtherMachine 值为 2,则需要指定正确的 From_Account 和 To_Account 字段值才能查询到该消息。 例如,通过 单发单聊消息 接口指定账号 A 给账号 B 发一条消息,同时指定 SyncOtherMachine 值为 2。则调用本接口时,From_Account 必须设置为账号 B,To_Account 必须设置为账号 A 才能查询到该消息。
  • 查询结果包含被撤回的消息,由消息里的 MsgFlagBits 字段标识。
  • 若想通过 撤回单聊消息 接口撤回某条消息,可先用本接口查询出该消息的 MsgKey,然后再调用撤回接口进行撤回。
  • 可查询的消息记录的时间范围取决于漫游消息存储时长,默认是 7 天。支持在控制台修改消息漫游时长,延长消息漫游时长是增值服务。具体请参考 漫游消息存储
  • 若请求时间段内的消息总大小超过应答包体大小限制(目前为 13K)时,则需要续拉。您可以通过应答中的 Complete 字段查看是否已拉取请求的全部消息。

使用示例:

AdminGetRoamMsgRequest request = AdminGetRoamMsgRequest.builder()
+        .fromAccount("test1")
+        .toAccount("test2")
+        .maxCnt(123)
+        .minTime(1631934000)
+        .maxTime(1631934060)
+        .build();
+
+AdminRoamMsgResult result = client.message.getRoamMsg(request);
+
+List<MsgListItem> msgList = result.getMsgList();
+if (msgList != null && msgList.size() > 0) {
+    for (MsgListItem item : msgList) {
+        List<TIMMsgElement> msgBody = item.getMsgBody();
+        if (msgBody != null && msgList.size() > 0) {
+            for (TIMMsgElement msgElement : msgBody) {
+                // 根据 msgType 强转为对应的子类
+                if (Objects.equals(msgElement.getMsgType(), MsgType.TIM_CUSTOM_ELEM)) {
+                    TIMCustomMsgElement t = (TIMCustomMsgElement) msgElement;
+                    System.out.println(t.getMsgContent().getDesc());
+                } else if (Objects.equals(msgElement.getMsgType(), MsgType.TIM_TEXT_ELEM)) {
+                    TIMTextMsgElement t = (TIMTextMsgElement) msgElement;
+                    System.out.println(t.getMsgContent().getText());
+                }
+            }
+        }
+    }
+}
+

撤回单聊消息

  • 管理员撤回单聊消息。
  • 该接口可以撤回所有单聊消息,包括客户端发出的单聊消息,由 单发批量发 接口发出的单聊消息。
  • 若需要撤回由客户端发出的单聊消息,您可以开通 发单聊消息之前回调发单聊消息之后回调 ,通过该回调接口记录每条单聊消息的 MsgKey ,然后填在本接口的 MsgKey 字段进行撤回。您也可以通过 查询单聊消息 查询出待撤回的单聊消息的 MsgKey 后,填在本接口的 MsgKey 字段进行撤回。
  • 若需要撤回由 单发批量发 接口发出的单聊消息,需要记录这些接口回包里的 MsgKey 字段以进行撤回。
  • 调用该接口撤回消息后,该条消息的离线、漫游存储,以及消息发送方和接收方的客户端的本地缓存都会被撤回。
  • 该接口可撤回的单聊消息没有时间限制,即可以撤回任何时间的单聊消息。

注意

使用该接口撤回单聊消息后,被撤回的消息不能恢复,请谨慎调用该接口。

使用示例:

AdminMsgWithdrawRequest request = AdminMsgWithdrawRequest.builder()
+        .fromAccount("test1")
+        .toAccount("bingo")
+        .msgKey("31906_833502_1572869830")
+        .build();
+
+AdminMsgWithdrawResult result = client.message.msgWithdraw(request);
+

设置单聊消息已读

  • 设置用户的某个单聊会话的消息已读。

使用示例:

AdminSetMsgReadRequest request = AdminSetMsgReadRequest.builder()
+        .reportAccount("test1")
+        .peerAccount("test2")
+        .build();
+
+AdminSetMsgReadResult result = client.message.setMsgRead(request);
+

查询单聊未读消息计数

App 后台可以通过该接口查询特定账号的单聊总未读数(包含所有的单聊会话)或者单个单聊会话的未读数。

使用示例:

GetC2cUnreadMsgRequest request = new GetC2cUnreadMsgRequest("test2");
+List<String> peerAccount = Arrays.asList("test1", "bingo");
+request.setPeerAccount(peerAccount);
+
+C2cUnreadMsgNumResult result = client.message.getC2cUnreadMsgNum(request);
+

修改单聊历史消息

  • 管理员修改单聊历史消息。
  • 可以单独修改消息中的 MsgBody 或 CloudCustomData 字段,也可以同时修改这两个字段。以请求中指定的字段值覆盖历史消息对应的字段。
  • 待修改的单聊消息的 MsgKey 可通过以下方式获取:

注意

使用该接口修改消息后,被修改的消息不能恢复,请谨慎调用该接口。

使用示例:

TIMTextMsgElement msg = new TIMTextMsgElement("test modify c2c msg");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+ModifyC2cMsgRequest request = ModifyC2cMsgRequest.builder()
+        .fromAccount("test1")
+        .toAccount("test2")
+        .msgKey("1353691732_123_1653995506")
+        .msgBody(msgBody)
+        .build();
+
+ModifyC2cMsgResult result = client.message.modifyC2cMsg(request);
+

拉取单聊消息扩展

App 管理员和会话成员可以拉取消息扩展,消息扩展为一组自定义的键值对。

注意

  • 此功能需 旗舰版套餐,并且已开通“消息扩展功能”功能(控制台“登录与消息”配置)。
  • 单条单聊消息可设置的最大键值对数量为 300 条。
  • 被设置的单聊消息需要在发送时指定“支持消息扩展”,参见 单发单聊消息

使用示例:

GetKeyValuesRequest request = GetKeyValuesRequest.builder()
+        .fromAccount("test1")
+        .toAccount("bingo")
+        .msgKey("1353691732_123_1653995506")
+        .startSeq(1L)
+        .build();
+
+GetKeyValuesResult result = client.message.getKeyValues(request);
+

设置单聊消息扩展

App 管理员和会话成员可以为单聊普通消息设置消息扩展,消息扩展为一组自定义的键值对。

注意

  • 此功能需 旗舰版套餐,并且已开通“消息扩展功能”功能(控制台“登录与消息”配置)。
  • 单条单聊消息可设置的最大键值对数量为 300 条。
  • 被设置的单聊消息需要在发送时指定“支持消息扩展”,参见 单发单聊消息

使用示例:

SetKeyValuesRequest request = SetKeyValuesRequest.builder()
+        .fromAccount("test1")
+        .toAccount("bingo")
+        .msgKey("1353691732_123_1653995506")
+        .build();
+
+SetKeyValuesResult result = client.message.setKeyValues(request);
+

单向删除单聊历史消息

  • App 管理员调用该接口单向删除一个单聊会话的多条消息。
  • 只能以消息的发送方或接收方的身份去删除单聊会话的历史消息。
  • 只能单向删除(以会话其中一方的身份去删除某条消息后,自己看不到这条消息,会话的对方仍然可以看到这条消息)

使用示例:

DeleteC2cMsgRambleRequest request = DeleteC2cMsgRambleRequest.builder()
+        .operatorAccount("test1")
+        .peerAccount("test2")
+        .msgKeyList(Collections.singletonList("1353691732_123_1653995506"))
+        .build();
+
+DeleteC2cMsgRambleResult result = client.message.deleteC2cMsgRamble(request);
+

清空群聊历史消息

该 API 接口的作用是清空群聊中用户发送的历史消息。

此接口通过打标记实现 SDK 无法拉取的效果,并没有真的执行删除操作,Admin 用户仍然可以通过“拉取群聊历史消息”接口拉取已清空的历史消息。

使用示例:

ClearGroupMsgRequest request = ClearGroupMsgRequest.builder()
+        .groupId("test_group")
+        .msgSeq(123L)
+        .build();
+
+ClearGroupMsgResult result = client.message.clearGroupMsg(request);
+
`,54)]))}const i=s(e,[["render",c],["__file","message.html.vue"]]),u=JSON.parse('{"path":"/guide/message.html","title":"单聊消息","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"单发单聊消息","slug":"单发单聊消息","link":"#单发单聊消息","children":[]},{"level":2,"title":"批量发单聊消息","slug":"批量发单聊消息","link":"#批量发单聊消息","children":[]},{"level":2,"title":"导入单聊消息","slug":"导入单聊消息","link":"#导入单聊消息","children":[]},{"level":2,"title":"查询单聊消息","slug":"查询单聊消息","link":"#查询单聊消息","children":[]},{"level":2,"title":"撤回单聊消息","slug":"撤回单聊消息","link":"#撤回单聊消息","children":[]},{"level":2,"title":"设置单聊消息已读","slug":"设置单聊消息已读","link":"#设置单聊消息已读","children":[]},{"level":2,"title":"查询单聊未读消息计数","slug":"查询单聊未读消息计数","link":"#查询单聊未读消息计数","children":[]},{"level":2,"title":"修改单聊历史消息","slug":"修改单聊历史消息","link":"#修改单聊历史消息","children":[]},{"level":2,"title":"拉取单聊消息扩展","slug":"拉取单聊消息扩展","link":"#拉取单聊消息扩展","children":[]},{"level":2,"title":"设置单聊消息扩展","slug":"设置单聊消息扩展","link":"#设置单聊消息扩展","children":[]},{"level":2,"title":"单向删除单聊历史消息","slug":"单向删除单聊历史消息","link":"#单向删除单聊历史消息","children":[]},{"level":2,"title":"清空群聊历史消息","slug":"清空群聊历史消息","link":"#清空群聊历史消息","children":[]}],"git":{"updatedTime":1704879157000,"contributors":[{"name":"Libin YANG","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/Libin YANG"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":2,"url":"https://github.com/hongyiheng"},{"name":"acbin","email":"44314231+acbin@users.noreply.github.com","commits":1,"url":"https://github.com/acbin"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":9,"url":"https://github.com/Yang Libin"},{"name":"怡蘅","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/怡蘅"}]},"filePathRelative":"guide/message.md"}');export{i as comp,u as data}; diff --git a/assets/official_account.html-xov-7EXR.js b/assets/official_account.html-xov-7EXR.js new file mode 100644 index 0000000..94e08d1 --- /dev/null +++ b/assets/official_account.html-xov-7EXR.js @@ -0,0 +1,66 @@ +import{_ as n,c as a,e as t,o as e}from"./app-drHkZhxR.js";const p={};function c(l,s){return e(),a("div",null,s[0]||(s[0]=[t(`

公众号管理

创建公众号

App 管理员可以通过该接口创建公众号。

使用示例:

CreateOfficialAccountRequest request = new CreateOfficialAccountRequest();
+request.setOwnerAccount("test");
+request.setName("test_official_account");
+
+CreateOfficialAccountResult result = client.officialAccount.createOfficialAccount(request);
+

销毁公众号

App 管理员可以通过该接口销毁公众号。

使用示例:

DestroyOfficialAccountRequest request = new DestroyOfficialAccountRequest();
+request.setOfficialAccount("test_official_account_user_id");
+
+DestroyOfficialAccountResult result = client.officialAccount.destroyOfficialAccount(request);
+

修改公众号资料

App 管理员可以通过该接口修改公众号的相关信息,如公众号的名称、头像、简介等

使用示例:

ModifyOfficialAccountBaseInfoRequest request = new ModifyOfficialAccountBaseInfoRequest();
+request.setOfficialAccount("test_official_account_user_id");
+request.setName("test_official_account2");
+
+ModifyOfficialAccountBaseInfoResult result = client.officialAccount.modifyOfficialAccountBaseInfo(request);
+

获取公众号详细资料

App 管理员可以通过该接口获取公众号的相关资料信息。

使用示例:

GetOfficialAccountInfoRequest request = new GetOfficialAccountInfoRequest();
+request.setOfficialAccountIdList(Collections.singletonList(new OfficialAccountItem("test_official_account_user_id")));
+
+GetOfficialAccountInfoResult result = client.officialAccount.getOfficialAccountInfo(request);
+

获取公众号的订阅成员资料

App 管理员可以通过该接口获取订阅某个公众号的所有用户信息.

使用示例:

GetSubscriberInfoRequest request = new GetSubscriberInfoRequest();
+request.setOfficialAccount("test_official_account_user_id");
+request.setLimit(10);
+request.setNext("");
+
+GetSubscriberInfoResult result = client.officialAccount.getSubscriberInfo(request);
+

添加订阅者

App 管理员可以通过该接口使用户订阅某个公众号,成为公众号的订阅成员。

使用示例:

AddSubscriberRequest request = new AddSubscriberRequest();
+request.setOfficialAccount("test_official_account_user_id");
+request.setSubscriberList(Collections.singletonList(new OfficialAccountItem("test_subscriber_id")));
+
+AddSubscriberResult result = client.officialAccount.addSubscriber(request);
+

删除订阅者

App 管理员可以通过该接口使用户取消订阅某个公众号,从公众号的订阅成员中移除。

使用示例:

DeleteSubscriberRequest request = new DeleteSubscriberRequest();
+request.setOfficialAccount("test_official_account_user_id");
+request.setSubscriberToDelAccount(Collections.singletonList("test_subscriber_id"));
+
+DeleteSubscriberResult result = client.officialAccount.deleteSubscriber(request);
+

修改订阅者资料

App 管理员可以通过该接口修改订阅者的相关资料信息。

使用示例:

ModifySubscriberInfoRequest request = new ModifySubscriberInfoRequest();
+request.setOfficialAccount("test_official_account_user_id");
+request.setSubscriberAccount("test_subscriber_id");
+request.setCustomString("test_custom_string");
+
+ModifySubscriberInfoResult result = client.officialAccount.modifySubscriberInfo(request);
+

获取订阅的公众号列表

App 管理员可以通过该接口获取用户订阅的所有公众号列表信息。

使用示例:

GetSubscribedOfficialAccountListRequest request = new GetSubscribedOfficialAccountListRequest();
+request.setSubscriberAccount("test_subscriber_id");
+
+GetSubscribedOfficialAccountListResult result = client.officialAccount.getSubscribedOfficialAccountList(request);
+

公众号用户发送广播消息

  • App 管理员可以通过该接口向关注公众号的所有订阅者发送普通消息。
  • 单个公众号的发送频率上限为1条/秒,每小时最多可发布2条广播消息。
  • 如果5分钟内两条消息的内容相同,后面的消息将被当做重复消息而丢弃。

使用示例:

TIMTextMsgElement msg = new TIMTextMsgElement("hello world");
+List<TIMMsgElement> msgBody = Collections.singletonList(msg);
+SendOfficialAccountMsgRequest request = SendOfficialAccountMsgRequest.builder()
+        .officialAccount("test_official_account_user_id")
+        .random(123)
+        .msgBody(msgBody)
+        .build();
+
+SendOfficialAccountMsgResult result = client.officialAccount.sendOfficialAccountMsg(request);
+

拉取公众号用户历史消息

  • 即时通信 IM 的公众号消息是按 Seq 排序的,按照 server 收到公众号消息的顺序分配 Seq,先发的公众号消息 Seq 小,后发的 Seq 大。
  • 即时通信 IM 会给每条公众号消息生成一个 MsgKey,格式为 "Seq_1_ServerTime"。
  • 如果用户想拉取一个公众号的全量消息,需要填写消息的 LastMsgKey,首次拉取时不用填拉取 LastMsgKey,Server 会自动返回最新的消息,以后拉取时拉取 LastMsgKey 填上次请求返回 LastMsgKey。
  • 如果返回消息的 IsPlaceMsg 为1,表示这个 Seq 的消息或者过期、或者存储失败、或者被删除了。

使用示例:

OfficialAccountMsgGetSimpleRequest request = new OfficialAccountMsgGetSimpleRequest();
+request.setOfficialAccount("test_official_account_user_id");
+request.setLastMsgKey("msg_key");
+request.setReqMsgNumber(10);
+request.setWithRecalledMsg(1);
+
+OfficialAccountMsgGetSimpleResult result = client.officialAccount.msgGetSimple(request);
+

撤回公众号消息

  • 管理员撤回公众号消息。
  • 该接口可以撤回所有漫游有效期内的公众号消息,包括客户端发出的公众号消息,由 REST API 接口发出的公众号消息。
  • 若需要撤回由客户端发出的公众号消息,您可以开通 发公众号消息之后回调 ,通过该回调接口记录每条公众号消息的 MsgKey,然后填在本接口的 MsgKeyList 参数里进行撤回。您也可以通过 拉取公众号用户历史消息 查询出待撤回的公众号消息的相关信息后,使用本接口进行撤回。
  • 若需要撤回由 REST API 公众号用户发送广播消息 接口发出的公众号消息,需要记录这些接口回包里的 MsgKey 字段以进行撤回。
  • 调用该接口撤回消息后,该条消息的接收方的客户端的本地缓存都会被撤回。
  • 该接口可撤回的公众号消息没有时间限制,即可以撤回任何时间的公众号消息,但是公众号消息的漫游时间需要在有效期内。

使用示例:

OfficialAccountMsgRecallRequest request = new OfficialAccountMsgRecallRequest();
+request.setOfficialAccount("test_official_account_user_id");
+request.setMsgKeyList(Collections.singletonList("msg_key"));
+
+OfficialAccountMsgRecallResult result = client.officialAccount.msgRecall(request);
+
`,49)]))}const o=n(p,[["render",c],["__file","official_account.html.vue"]]),u=JSON.parse('{"path":"/guide/official_account.html","title":"公众号管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"创建公众号","slug":"创建公众号","link":"#创建公众号","children":[]},{"level":2,"title":"销毁公众号","slug":"销毁公众号","link":"#销毁公众号","children":[]},{"level":2,"title":"修改公众号资料","slug":"修改公众号资料","link":"#修改公众号资料","children":[]},{"level":2,"title":"获取公众号详细资料","slug":"获取公众号详细资料","link":"#获取公众号详细资料","children":[]},{"level":2,"title":"获取公众号的订阅成员资料","slug":"获取公众号的订阅成员资料","link":"#获取公众号的订阅成员资料","children":[]},{"level":2,"title":"添加订阅者","slug":"添加订阅者","link":"#添加订阅者","children":[]},{"level":2,"title":"删除订阅者","slug":"删除订阅者","link":"#删除订阅者","children":[]},{"level":2,"title":"修改订阅者资料","slug":"修改订阅者资料","link":"#修改订阅者资料","children":[]},{"level":2,"title":"获取订阅的公众号列表","slug":"获取订阅的公众号列表","link":"#获取订阅的公众号列表","children":[]},{"level":2,"title":"公众号用户发送广播消息","slug":"公众号用户发送广播消息","link":"#公众号用户发送广播消息","children":[]},{"level":2,"title":"拉取公众号用户历史消息","slug":"拉取公众号用户历史消息","link":"#拉取公众号用户历史消息","children":[]},{"level":2,"title":"撤回公众号消息","slug":"撤回公众号消息","link":"#撤回公众号消息","children":[]}],"git":{"updatedTime":1704879157000,"contributors":[{"name":"Libin YANG","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/Libin YANG"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"}]},"filePathRelative":"guide/official_account.md"}');export{o as comp,u as data}; diff --git a/assets/operation_1.html-B004IK0c.js b/assets/operation_1.html-B004IK0c.js new file mode 100644 index 0000000..7b958b5 --- /dev/null +++ b/assets/operation_1.html-B004IK0c.js @@ -0,0 +1,11 @@ +import{_ as s,c as a,e,o as t}from"./app-drHkZhxR.js";const p={};function i(l,n){return t(),a("div",null,n[0]||(n[0]=[e(`

全局禁言管理

设置全局禁言

  • 设置账号的单聊消息全局禁言。
  • 设置账号的群组消息全局禁言。

使用示例:

SetNoSpeakingRequest request = SetNoSpeakingRequest.builder()
+        .setAccount("test1")
+        .msgNoSpeakingTime(NoSpeakingTime.NEVER)
+        .groupMsgNoSpeakingTime(NoSpeakingTime.FOREVER)
+        .build();
+
+SetNoSpeakingResult result = client.operation.setNoSpeaking(request);
+

查询全局禁言

  • 查询账号的单聊消息全局禁言。
  • 查询账号的群组消息全局禁言。

使用示例:

GetNoSpeakingRequest request = new GetNoSpeakingRequest("test1");
+
+GetNoSpeakingResult result = client.operation.getNoSpeaking(request);
+
`,9)]))}const c=s(p,[["render",i],["__file","operation_1.html.vue"]]),u=JSON.parse('{"path":"/guide/operation_1.html","title":"全局禁言管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"设置全局禁言","slug":"设置全局禁言","link":"#设置全局禁言","children":[]},{"level":2,"title":"查询全局禁言","slug":"查询全局禁言","link":"#查询全局禁言","children":[]}],"git":{"updatedTime":1696847753000,"contributors":[{"name":"acbin","email":"44314231+acbin@users.noreply.github.com","commits":1,"url":"https://github.com/acbin"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":2,"url":"https://github.com/Yang Libin"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"}]},"filePathRelative":"guide/operation_1.md"}');export{c as comp,u as data}; diff --git a/assets/operation_2.html-cQgqWZz7.js b/assets/operation_2.html-cQgqWZz7.js new file mode 100644 index 0000000..cdbcf6b --- /dev/null +++ b/assets/operation_2.html-cQgqWZz7.js @@ -0,0 +1,34 @@ +import{_ as s,c as a,e as t,o as e}from"./app-drHkZhxR.js";const p={};function l(c,n){return e(),a("div",null,n[0]||(n[0]=[t(`

运营管理

拉取运营数据

App 管理员可以通过该接口拉取最近 30 天的运营数据,可拉取的字段见下文可拉取的运营字段。

使用示例:

GetAppInfoRequest request = new GetAppInfoRequest();
+List<String> requestFields = Arrays.asList("ChainIncrease", "ChainDecrease");
+request.setRequestField(requestFields);
+
+GetAppInfoResult result = client.operation.getAppInfo(request);
+

下载最近消息记录

App 管理员可以通过该接口获取 App 中最近 7 天中某天某小时的所有单发或群组消息记录的下载地址。

注意

  • 下载消息记录里的图片、语音、文件和短视频,此功能仅适用于 4.X 版本 IM SDK,可通过聊天记录中的 URL 字段进行下载。如您使用 2.X 或 3.X 版本的 IM SDK,您将无法通过该方法获取到以上信息,如您需要此功能,请您升级至 4.X 版本。
  • 消息记录以日志文件形式保存并使用 GZip 压缩,通过该接口获取到下载地址后,请自行下载并处理;消息记录文件每小时产生一次,例如 0 点(00:00~00:59)的数据在 01:00 后开始处理,一般 1 小时内处理完毕(消息较多则处理时间较长);文件有效期 7 天,无论是否下载过,都会在 7 天后删除,被删除后不支持重新导出;获取到的下载地址存在有效期,请在过期前进行下载,若地址失效,请通过该接口重新获取。
  • 此接口仅用于下载最近 7 天的聊天记录文件,用于备份或数据统计等。不建议使用该接口用于线上实时业务。

使用示例:

GetHistoryRequest request = GetHistoryRequest.builder()
+        .chatType(ChatType.C2C)
+        .msgTime("2015120121")
+        .build();
+
+GetHistoryResult result = client.operation.getHistory(request);
+

获取服务器 IP 地址

基于安全等考虑,您可能需要获知服务器的 IP 地址列表,以便进行相关限制。App 管理员可以通过该接口获得 SDK、第三方回调所使用到的服务器 IP 地址列表或 IP 网段信息。

注意

此接口仅支持获取中国大陆地区的所有 IM 接入方式的 IP 地址或 IP 网段信息。

使用示例:

GetIpListRequest request = new GetIpListRequest();
+
+GetIpListResult result = client.op~eration.getIpList(request);
+

聊天文件封禁

本接口用于封禁聊天消息中的富媒体文件。

说明

仅针对富媒体消息中使用 IM SDK 上传的文件有效,为了确保功能正常使用,请将终端 SDK 更新至 4.9.x 版本及以上,Web SDK 更新至 v2.0.0 版本及以上。

使用示例:

ForbidIllegalObjectRequest request = ForbidIllegalObjectRequest.builder()
+        .rawUrl("https://cos.ap-shanghai.myqcloud.com/005f-shanghai-360-shared-01-1256635546/76aa-1400152839/2f3b-2273451635034382/699eb4ee5ffa9aeb70627958766f2927-142072.jpg")
+        .build();
+
+ForbidIllegalObjectResult result = client.operation.forbidIllegalObject(request);
+

聊天文件解封

本接口用于解封聊天消息中的富媒体文件。

说明

仅针对富媒体消息中使用 IM SDK 上传的文件有效,为了确保功能正常使用,请将终端 SDK 更新至 4.9.x 版本及以上,Web SDK 更新至 v2.0.0 版本及以上。

AllowBannedObjectRequest request = AllowBannedObjectRequest.builder()
+        .rawUrl("https://cos.ap-shanghai.myqcloud.com/005f-shanghai-360-shared-01-1256635546/76aa-1400152839/2f3b-2273451635034382/699eb4ee5ffa9aeb70627958766f2927-142072.jpg")
+        .build();
+
+AllowBannedObjectResult result = client.operation.allowBannedObject(request);
+

聊天文件签名

本接口用于获取聊天消息中的富媒体文件 FULL_CONTROL 权限的 URL 签名以及文件状态信息,默认有效期 15 分钟。一般 SDK 下发的文件 URL 为普通账号签名,违规封禁后,可以使用 FULL_CONTROL 权限的 URL 签名来查看封禁的资源。

说明

仅针对富媒体消息中使用 IM SDK 上传的文件有效,为了确保功能正常使用,请将终端 SDK 更新至 4.9.x 版本及以上,Web SDK 更新至 v2.0.0 版本及以上。

RawUrlItem item = new RawUrlItem();
+item.setRawUrl("https://cos.ap-shanghai.myqcloud.com/98ec-shanghai-007-privatev2-01-1256635546/0345-1400187352/0612-yyy/9a0f4c42d208ccfb5aa47c29284aefc6.png");
+item.setResourceId(1);
+List<RawUrlItem> rawUrls = Collections.singletonList(item);
+GetCosSigRequest request = GetCosSigRequest.builder()
+        .rawUrls(rawUrls)
+        .build();
+
+GetCosSigResult result = client.operation.getCosSig(request);
+
`,28)]))}const o=s(p,[["render",l],["__file","operation_2.html.vue"]]),u=JSON.parse('{"path":"/guide/operation_2.html","title":"运营管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"拉取运营数据","slug":"拉取运营数据","link":"#拉取运营数据","children":[]},{"level":2,"title":"下载最近消息记录","slug":"下载最近消息记录","link":"#下载最近消息记录","children":[]},{"level":2,"title":"获取服务器 IP 地址","slug":"获取服务器-ip-地址","link":"#获取服务器-ip-地址","children":[]},{"level":2,"title":"聊天文件封禁","slug":"聊天文件封禁","link":"#聊天文件封禁","children":[]},{"level":2,"title":"聊天文件解封","slug":"聊天文件解封","link":"#聊天文件解封","children":[]},{"level":2,"title":"聊天文件签名","slug":"聊天文件签名","link":"#聊天文件签名","children":[]}],"git":{"updatedTime":1684979652000,"contributors":[{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":6,"url":"https://github.com/Yang Libin"},{"name":"怡蘅","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/怡蘅"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"}]},"filePathRelative":"guide/operation_2.md"}');export{o as comp,u as data}; diff --git a/assets/profile.html-DXrbc69c.js b/assets/profile.html-DXrbc69c.js new file mode 100644 index 0000000..7ed0400 --- /dev/null +++ b/assets/profile.html-DXrbc69c.js @@ -0,0 +1,20 @@ +import{_ as s,c as a,e as t,o as e}from"./app-drHkZhxR.js";const p={};function c(o,n){return e(),a("div",null,n[0]||(n[0]=[t(`

资料管理

设置资料

支持 标配资料字段自定义资料字段 的设置。

使用示例:

ProfileItem profileItem = ProfileItem.builder()
+        .tag(TagProfile.IM_NICK)
+        .value("MyNickName")
+        .build();
+List<ProfileItem> profiles = Collections.singletonList(profileItem);
+PortraitSetRequest request = PortraitSetRequest.builder()
+        .fromAccount("test1")
+        .profileItemList(profiles)
+        .build();
+
+PortraitSetResult result = client.profile.portraitSet(request);
+

拉取资料

  • 支持拉取好友和非好友的资料字段。
  • 支持拉取 标配资料字段自定义资料字段
  • 建议每次拉取的用户数不超过 100,避免因回包数据量太大导致回包失败。
  • 请确保请求中的所有账号都已导入即时通信 IM,如果请求中含有未导入即时通信 IM 的账号,即时通信 IM 后台将会提示错误。

使用示例:

List<String> tagList = Collections.singletonList(TagProfile.IM_NICK);
+List<String> toAccount = Collections.singletonList("test1");
+PortraitGetRequest request = PortraitGetRequest.builder()
+        .tagList(tagList)
+        .toAccount(toAccount)
+        .build();
+
+PortraitGetResult result = client.profile.portraitGet(request);
+
`,9)]))}const i=s(p,[["render",c],["__file","profile.html.vue"]]),u=JSON.parse('{"path":"/guide/profile.html","title":"资料管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"设置资料","slug":"设置资料","link":"#设置资料","children":[]},{"level":2,"title":"拉取资料","slug":"拉取资料","link":"#拉取资料","children":[]}],"git":{"updatedTime":1696847753000,"contributors":[{"name":"acbin","email":"44314231+acbin@users.noreply.github.com","commits":1,"url":"https://github.com/acbin"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":2,"url":"https://github.com/Yang Libin"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"}]},"filePathRelative":"guide/profile.md"}');export{i as comp,u as data}; diff --git a/assets/quickstart.html-DLWtOFq3.js b/assets/quickstart.html-DLWtOFq3.js new file mode 100644 index 0000000..7f90a04 --- /dev/null +++ b/assets/quickstart.html-DLWtOFq3.js @@ -0,0 +1,34 @@ +import{_ as e,c as p,e as a,a as l,b as s,d as c,f as o,r as i,o as u}from"./app-drHkZhxR.js";const d={};function r(m,n){const t=i("RouteLink");return u(),p("div",null,[n[3]||(n[3]=a(`

快速上手

安装

Maven

在项目的 pom.xml 的 dependencies 中引入以下依赖:

<dependency>
+  <groupId>io.github.doocs</groupId>
+  <artifactId>im-server-sdk-java</artifactId>
+  <version>0.4.09</version>
+</dependency>
+

Gradle

implementation group: 'io.github.doocs', name: 'im-server-sdk-java', version: '0.4.09'
+

下载 JAR

Maven 中央仓库

初始化

在使用腾讯云即时 IM 服务端 REST API 之前, 需要先通过 appId, userId, key 获取到一个 ImClient 实例:

// sdk appId
+long appId = 1400554812;
+
+// admin userId
+String userId = "test";
+
+// application key
+String key = "60c6c5925f3ae52c7325ac5a8ec78e44c056d1dd84d54e12ffa39911267a2a70";
+
+// create a default ImClient instance
+ImClient client = ImClient.getInstance(appId, userId, key);
+
+// create a default ImClient instance with custom domain
+ImClient client = ImClient.getInstance(appId, userId, key, Domain.SINGAPORE);
+
+// create a custom ImClient instance
+ClientConfiguration config = new ClientConfiguration();
+config.setExpireTime(7 * 24 * 60 * 60L);
+config.setAutoRenewSig(false);
+ImClient client = ImClient.getInstance(appId, userId, key, config);
+

ClientConfiguration 支持对以下参数进行自定义配置:

字段类型说明默认值
maxRetriesintHTTP 最大重试次数3
connectTimeoutlongHTTP 连接超时(毫秒)10_000
readTimeoutlongHTTP 读超时(毫秒)10_000
writeTimeoutlongHTTP 写超时(毫秒)10_000
callTimeoutlong一个完整的 HTTP 调用的时间限制。这包括解析 DNS、连接、写入请求正文、服务器处理以及读取响应正文。(毫秒)30_000
expireTimelongUserSig 签名有效时长(秒)86400
autoRenewSigboolean是否自动进行 UserSig 签名续期true
userAgentstringUser-Agent
connectionPoolobjectHTTP 连接池

使用示例

获取到 ImClient 实例后,就可以方便地进行 REST API 调用了。

`,16)),l("p",null,[n[1]||(n[1]=s("我们以 ")),c(t,{to:"/guide/account.html#%E5%AF%BC%E5%85%A5%E5%8D%95%E4%B8%AA%E8%B4%A6%E5%8F%B7"},{default:o(()=>n[0]||(n[0]=[s("账号管理-导入单个账号")])),_:1}),n[2]||(n[2]=s(" 为例:"))]),n[4]||(n[4]=a(`
AccountImportRequest request = AccountImportRequest.builder()
+        .identifier("admin")
+        .faceUrl("https://avatars.githubusercontent.com/u/43716716?s=200&v=4")
+        .nick("doocs")
+        .build();
+
+AccountImportResult result = client.account.accountImport(request);
+
`,1))])}const g=e(d,[["render",r],["__file","quickstart.html.vue"]]),v=JSON.parse('{"path":"/guide/quickstart.html","title":"快速上手","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[{"level":3,"title":"Maven","slug":"maven","link":"#maven","children":[]},{"level":3,"title":"Gradle","slug":"gradle","link":"#gradle","children":[]},{"level":3,"title":"下载 JAR","slug":"下载-jar","link":"#下载-jar","children":[]}]},{"level":2,"title":"初始化","slug":"初始化","link":"#初始化","children":[]},{"level":2,"title":"使用示例","slug":"使用示例","link":"#使用示例","children":[]}],"git":{"updatedTime":1732533511000,"contributors":[{"name":"Libin YANG","email":"szuyanglb@outlook.com","commits":5,"url":"https://github.com/Libin YANG"},{"name":"yanglbme","email":"szuyanglb@outlook.com","commits":17,"url":"https://github.com/yanglbme"},{"name":"Antenbabby","email":"18116874+Antenbabby@users.noreply.github.com","commits":2,"url":"https://github.com/Antenbabby"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":2,"url":"https://github.com/hongyiheng"},{"name":"acbin","email":"44314231+acbin@users.noreply.github.com","commits":1,"url":"https://github.com/acbin"},{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":46,"url":"https://github.com/Yang Libin"},{"name":"怡蘅","email":"hongyihengg@gmail.com","commits":2,"url":"https://github.com/怡蘅"},{"name":"yu","email":"502400992@qq.com","commits":1,"url":"https://github.com/yu"}]},"filePathRelative":"guide/quickstart.md"}');export{g as comp,v as data}; diff --git a/assets/recent_contact.html-DCgMqOaj.js b/assets/recent_contact.html-DCgMqOaj.js new file mode 100644 index 0000000..665cf39 --- /dev/null +++ b/assets/recent_contact.html-DCgMqOaj.js @@ -0,0 +1,79 @@ +import{_ as s,c as a,e as t,o as p}from"./app-drHkZhxR.js";const e={};function c(o,n){return p(),a("div",null,n[0]||(n[0]=[t(`

最近联系人

拉取会话列表

支持分页拉取会话列表。

使用示例:

GetRecentContactListRequest request = GetRecentContactListRequest.builder()
+        .fromAccount("doocs")
+        .timestamp(0)
+        .startIndex(0)
+        .topTimestamp(0)
+        .topStartIndex(0)
+        .assistFlags(AssistFlags.BIT_0)
+        .build();
+
+GetRecentContactListResult result = client.recentContact.recentContactList(request);
+

删除单个会话

删除指定会话,支持同步清理漫游消息。

使用示例:

DeleteRecentContactRequest request = DeleteRecentContactRequest.builder()
+        .fromAccount("doocs_1")
+        .type(RecentContactType.C2C)
+        .toAccount("doocs_2")
+        .clearRamble(ClearRamble.YES)
+        .build();
+
+DeleteRecentContactResult result = client.recentContact.deleteRecentContact(request);
+

创建会话分组数据

会话分组标记数据独立于最近联系人,RestAPI 支持会话分组、会话标准标记、会话自定义标记等字段增删改查。会话分组标记最多支持 1000 个会话,而一个用户最多支持 20 个会话分组。本接口支持会话分组数据的创建,仅旗舰版支持会话分组数据操作。

使用示例:

List<GroupContactItem> items = new ArrayList<>();
+GroupContactItem item = new GroupContactItem();
+item.setGroupName("groupName");
+
+List<ContactItem> contactItems = new ArrayList<>();
+ContactItem contactItem = new ContactItem();
+contactItem.setToAccount("ccc");
+contactItem.setToGroupId("group1");
+contactItem.setType(1);
+contactItems.add(contactItem);
+item.setContactItem(contactItems);
+items.add(item);
+CreateContactGroupRequest request = CreateContactGroupRequest.builder()
+        .fromAccount("test1")
+        .groupContactItem(items).build();
+
+CreateContactGroupResult result = client.recentContact.createContactGroup(request);
+

更新会话分组数据

会话分组标记数据独立于最近联系人,RestAPI 支持会话分组、会话标准标记、会话自定义标记等字段增删改查。会话分组标记数据最多支持 1000 个会话。本接口支持会话分组数据的更新,仅旗舰版支持会话分组数据操作。

使用示例:

UpdateGroup updateGroup = UpdateGroup.builder().updateGroupType(1)
+        .newGroupName("hh").oldGroupName("cc").build();
+UpdateContactGroupRequest request = UpdateContactGroupRequest.builder()
+        .updateType(1)
+        .fromAccount("test1")
+        .updateGroup(updateGroup)
+        .build();
+
+UpdateContactGroupResult result = client.recentContact.updateContactGroup(request);
+

删除会话分组数据

本接口支持删除用户的会话分组数据,仅旗舰版支持会话分组数据操作。

使用示例:

List<String> groupName = new ArrayList<>();
+groupName.add("hh");
+DelContactGroupRequest request = DelContactGroupRequest.builder()
+        .groupName(groupName)
+        .fromAccount("test1")
+        .build();
+
+DelContactGroupResult result = client.recentContact.delContactGroup(request);
+

创建或更新会话标记数据

会话分组标记数据独立于最近联系人,RestAPI 支持会话分组、会话标准标记、会话自定义标记等字段增删改查。会话分组标记最多支持 1000 个会话。本接口支持会话标准标记以及会话自定义标记的创建或更新,仅旗舰版支持会话标准标记数据操作,自定义会话标记数据无限制。

使用示例:

List<MarkContactItem> items = new ArrayList<>();
+MarkContactItem item = new MarkContactItem();
+item.setClearMark(Collections.singletonList(1));
+item.setSetMark(Collections.singletonList(2));
+item.setOptType(1);
+items.add(item);
+MarkContactRequest request = MarkContactRequest.builder()
+        .fromAccount("test1")
+        .markItem(items)
+        .build();
+
+MarkContactResult result = client.recentContact.markContact(request);
+

搜索会话分组标记

本接口根据指定的会话来查询对应会话分组标记数据。

使用示例:

SearchContactGroupRequest request = new SearchContactGroupRequest();
+request.setFromAccount("test1");
+ContactItem contactItem = new ContactItem();
+contactItem.setType(1);
+contactItem.setToAccount("test2");
+contactItem.setToGroupId("123");
+request.setContactItem(Collections.singletonList(contactItem));
+
+SearchContactGroupResult result = client.recentContact.searchContactGroup(request);
+

拉取会话分组标记数据

本接口支持批量获取用户的会话分组标记数据。

使用示例:

GetContactGroupRequest request = new GetContactGroupRequest();
+request.setFromAccount("test1");
+request.setStartIndex(1);
+
+GetContactGroupResult result = client.recentContact.getContactGroup(request);
+
`,33)]))}const u=s(e,[["render",c],["__file","recent_contact.html.vue"]]),i=JSON.parse('{"path":"/guide/recent_contact.html","title":"最近联系人","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"拉取会话列表","slug":"拉取会话列表","link":"#拉取会话列表","children":[]},{"level":2,"title":"删除单个会话","slug":"删除单个会话","link":"#删除单个会话","children":[]},{"level":2,"title":"创建会话分组数据","slug":"创建会话分组数据","link":"#创建会话分组数据","children":[]},{"level":2,"title":"更新会话分组数据","slug":"更新会话分组数据","link":"#更新会话分组数据","children":[]},{"level":2,"title":"删除会话分组数据","slug":"删除会话分组数据","link":"#删除会话分组数据","children":[]},{"level":2,"title":"创建或更新会话标记数据","slug":"创建或更新会话标记数据","link":"#创建或更新会话标记数据","children":[]},{"level":2,"title":"搜索会话分组标记","slug":"搜索会话分组标记","link":"#搜索会话分组标记","children":[]},{"level":2,"title":"拉取会话分组标记数据","slug":"拉取会话分组标记数据","link":"#拉取会话分组标记数据","children":[]}],"git":{"updatedTime":1684979652000,"contributors":[{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":3,"url":"https://github.com/Yang Libin"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"}]},"filePathRelative":"guide/recent_contact.md"}');export{u as comp,i as data}; diff --git a/assets/robot.html-BzQnHUDl.js b/assets/robot.html-BzQnHUDl.js new file mode 100644 index 0000000..e2c3329 --- /dev/null +++ b/assets/robot.html-BzQnHUDl.js @@ -0,0 +1,14 @@ +import{_ as s,c as a,e as t,o as e}from"./app-drHkZhxR.js";const p={};function l(o,n){return e(),a("div",null,n[0]||(n[0]=[t(`

机器人

创建机器人

本接口用于创建一个机器人账号,机器人是一种特殊账号,userid 必须以 @RBT# 开头,创建机器人时可以指定设置昵称、头像和签名。

说明

  • 同一个机器人账号 userid 重复创建仅会创建 1 个机器人。
  • 每个 IM 账号只能创建最多 20 个机器人账号。

使用示例:

CreateRobotRequest request = new CreateRobotRequest();
+request.setNick("bingo");
+request.setFaceUrl("https://avatars.githubusercontent.com/u/2784452?v=4");
+request.setSelfSignature("hah");
+request.setUserId("@RBT#1233232");
+
+CreateRobotResult result = client.robot.createRobot(request);
+

删除机器人

本接口用于将一个机器人账号设置为无效,机器人是一种特殊账号,userid 必须以 @RBT# 开头。

说明

  • 本接口将一个机器人账号设置为无效。
  • 机器人账号 UserID 本身不会被删除。

使用示例:

DeleteRobotRequest request = DeleteRobotRequest.builder().robotAccount("@RBT#1233232").build();
+
+DeleteRobotResult result = client.robot.deleteRobot(request);
+

拉取所有机器人

本接口用于拉取所有的机器人账号列表,机器人是一种特殊账号,userid 必须以 @RBT# 开头。

使用示例:

GetAllRobotsRequest request = new GetAllRobotsRequest();
+
+GetAllRobotsResult result = client.robot.getAllRobots(request);
+
`,15)]))}const i=s(p,[["render",l],["__file","robot.html.vue"]]),u=JSON.parse('{"path":"/guide/robot.html","title":"机器人","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"创建机器人","slug":"创建机器人","link":"#创建机器人","children":[]},{"level":2,"title":"删除机器人","slug":"删除机器人","link":"#删除机器人","children":[]},{"level":2,"title":"拉取所有机器人","slug":"拉取所有机器人","link":"#拉取所有机器人","children":[]}],"git":{"updatedTime":1690371416000,"contributors":[{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":1,"url":"https://github.com/Yang Libin"}]},"filePathRelative":"guide/robot.md"}');export{i as comp,u as data}; diff --git a/assets/setupDevtools-7MC2TMWH-MfsfX19P.js b/assets/setupDevtools-7MC2TMWH-MfsfX19P.js new file mode 100644 index 0000000..d6f2c5a --- /dev/null +++ b/assets/setupDevtools-7MC2TMWH-MfsfX19P.js @@ -0,0 +1 @@ +import{s as T,w as E}from"./app-drHkZhxR.js";var l="org.vuejs.vuepress",v="VuePress",I=v,r=l,N=v,i="client-data",a="Client Data",g=(p,n)=>{T({app:p,id:l,label:v,packageName:"@vuepress/client",homepage:"https://vuepress.vuejs.org",logo:"https://vuepress.vuejs.org/images/hero.png",componentStateTypes:[I]},t=>{const c=Object.entries(n),u=Object.keys(n),d=Object.values(n);t.on.inspectComponent(e=>{e.instanceData.state.push(...c.map(([s,o])=>({type:I,editable:!1,key:s,value:o.value})))}),t.addInspector({id:r,label:N,icon:"article"}),t.on.getInspectorTree(e=>{e.inspectorId===r&&(e.rootNodes=[{id:i,label:a,children:u.map(s=>({id:s,label:s}))}])}),t.on.getInspectorState(e=>{e.inspectorId===r&&(e.nodeId===i&&(e.state={[a]:c.map(([s,o])=>({key:s,value:o.value}))}),u.includes(e.nodeId)&&(e.state={[a]:[{key:e.nodeId,value:n[e.nodeId].value}]}))}),E(d,()=>{t.notifyComponentUpdate(),t.sendInspectorState(r)})})};export{g as setupDevtools}; diff --git a/assets/sns.html-CntvNguu.js b/assets/sns.html-CntvNguu.js new file mode 100644 index 0000000..fa24a8b --- /dev/null +++ b/assets/sns.html-CntvNguu.js @@ -0,0 +1,137 @@ +import{_ as s,c as a,e as t,o as p}from"./app-drHkZhxR.js";const e={};function c(l,n){return p(),a("div",null,n[0]||(n[0]=[t(`

关系链管理

添加好友

添加好友,支持批量添加好友。

使用示例:

AddFriendItem addFriendItem = AddFriendItem.builder()
+        .toAccount("test2")
+        .addSource("AddSource_Type_XXXXXXXX")
+        .remark("Mr.A")
+        .groupName("schoolmate")
+        .addWording("Hi")
+        .build();
+List<AddFriendItem> addFriendItemList = Collections.singletonList(addFriendItem);
+FriendAddRequest request = FriendAddRequest.builder()
+        .fromAccount("test1")
+        .addFriendItemList(addFriendItemList)
+        .addType(AddType.BOTH)
+        .forceAddFlags(ForceAddFlags.FORCE)
+        .build();
+
+FriendAddResult result = client.sns.friendAdd(request);
+

导入好友

  • 支持批量导入单向好友。
  • 往同一个用户导入好友时建议采用批量导入的方式,避免并发写导致的写冲突。

使用示例:

ImportFriendItem importFriendItem = ImportFriendItem.builder()
+        .toAccount("test2")
+        .addSource("AddSource_Type_XXXXXXXX")
+        .build();
+List<ImportFriendItem> importFriendItems = Collections.singletonList(importFriendItem);
+FriendImportRequest request = FriendImportRequest.builder()
+        .fromAccount("test1")
+        .importFriendItemList(importFriendItems)
+        .build();
+
+FriendImportResult result = client.sns.friendImport(request);
+

更新好友

  • 支持批量更新同一用户的多个好友的关系链数据。
  • 更新一个用户多个好友时,建议采用批量方式,避免并发写导致的写冲突。

使用示例:

SnsItem snsItem = SnsItem.builder()
+        .tag("Tag_SNS_Custom_testTag")
+        .value(TagSns.IM_ADD_WORDING)
+        .build();
+List<SnsItem> snsItems = Collections.singletonList(snsItem);
+UpdateItem updateItem = UpdateItem.builder()
+        .toAccount("test2")
+        .snsItemList(snsItems)
+        .build();
+List<UpdateItem> updateItems = Collections.singletonList(updateItem);
+FriendUpdateRequest request = FriendUpdateRequest.builder()
+        .fromAccount("test1")
+        .updateItemList(updateItems)
+        .build();
+
+FriendUpdateResult result = client.sns.friendUpdate(request);
+

删除好友

删除好友,支持单向删除好友和双向删除好友。

使用示例:

List<String> toAccount = Collections.singletonList("test2");
+FriendDeleteRequest request = FriendDeleteRequest.builder()
+        .deleteType(DeleteType.BOTH)
+        .fromAccount("test1")
+        .toAccount(toAccount)
+        .build();
+
+FriendDeleteResult result = client.sns.friendDelete(request);
+

删除所有好友

清除指定用户的标配好友数据和自定义好友数据。

使用示例:

FriendDeleteAllRequest request = FriendDeleteAllRequest.builder()
+        .deleteType(DeleteType.BOTH)
+        .fromAccount("test1")
+        .build();
+
+FriendDeleteAllResult result = client.sns.friendDeleteAll(request);
+

校验好友

支持批量校验好友关系。

使用示例:

List<String> toAccount = Collections.singletonList("test2");
+FriendCheckRequest request = FriendCheckRequest.builder()
+        .fromAccount("test1")
+        .toAccount(toAccount)
+        .checkType(CheckResultType.BOTH)
+        .build();
+
+FriendCheckResult result = client.sns.friendCheck(request);
+

拉取好友

  • 分页拉取全量好友数据。
  • 不支持资料数据的拉取。
  • 不需要指定请求拉取的字段,默认返回全量的标配好友数据和自定义好友数据。

使用示例:

FriendGetRequest request = FriendGetRequest.builder()
+        .fromAccount("test1")
+        .startIndex(0)
+        .standardSequence(0)
+        .customSequence(0)
+        .build();
+
+FriendGetResult result = client.sns.friendGet(request);
+

拉取指定好友

  • 支持拉取指定好友的好友数据和资料数据。
  • 建议每次拉取的好友数不超过 100,避免因数据量太大导致回包失败。

使用示例:

List<String> toAccount = Collections.singletonList("test2");
+List<String> tagList = Arrays.asList(TagProfile.IM_ADMIN_FORBID_TYPE, TagProfile.IM_ALLOW_TYPE);
+FriendGetListRequest request = FriendGetListRequest.builder()
+        .fromAccount("test1")
+        .toAccount(toAccount)
+        .tagList(tagList)
+        .build();
+
+FriendGetListResult result = client.sns.friendGetList(request);
+

添加黑名单

添加黑名单,支持批量添加黑名单。

注意

  • 如果用户 A 与用户 B 之间存在好友关系,拉黑时会解除双向好友关系。
  • 如果用户 A 与用户 B 之间存在黑名单关系,二者之间无法发起加好友请求。
  • 如果用户 A 的黑名单中有用户 B 且用户 B 的黑名单中有用户 A,二者之间无法发起会话。
  • 如果用户 A 的黑名单中有用户 B 但用户 B 的黑名单中没有用户 A,那么用户 A 可以给用户 B 发消息,用户 B 不能给用户 A 发消息。

使用示例:

List<String> toAccount = Collections.singletonList("test2");
+BlackListAddRequest request = BlackListAddRequest.builder()
+        .fromAccount("test1")
+        .toAccount(toAccount)
+        .build();
+
+BlackListAddResult result = client.sns.blackListAdd(request);
+

删除黑名单

删除指定黑名单。

使用示例:

List<String> toAccount = Collections.singletonList("test2");
+BlackListDeleteRequest request = BlackListDeleteRequest.builder()
+        .fromAccount("test1")
+        .toAccount(toAccount)
+        .build();
+
+BlackListDeleteResult result = client.sns.blackListDelete(request);
+

拉取黑名单

支持分页拉取所有黑名单。

使用示例:

BlackListGetRequest request = BlackListGetRequest.builder()
+        .fromAccount("test1")
+        .startIndex(0)
+        .maxLimited(10)
+        .lastSequence(0)
+        .build();
+
+BlackListGetResult result = client.sns.blackListGet(request);
+

校验黑名单

支持批量校验黑名单。

使用示例:

List<String> toAccount = Collections.singletonList("test2");
+BlackListCheckRequest request = BlackListCheckRequest.builder()
+        .fromAccount("test1")
+        .toAccount(toAccount)
+        .checkType(BlackCheckResultType.BOTH)
+        .build();
+
+BlackListCheckResult result = client.sns.blackListCheck(request);
+

添加分组

添加分组,支持批量添加分组,并将指定好友加入到新增分组中。

使用示例:

List<String> groupName = Collections.singletonList("classmate");
+List<String> toAccount = Collections.singletonList("test2");
+GroupAddRequest request = GroupAddRequest.builder()
+        .fromAccount("test1")
+        .groupName(groupName)
+        .toAccount(toAccount)
+        .build();
+
+GroupAddResult result = client.sns.groupAdd(request);
+

删除分组

删除指定分组。

使用示例:

List<String> groupName = Collections.singletonList("classmate");
+GroupDeleteRequest request = GroupDeleteRequest.builder()
+        .fromAccount("test1")
+        .groupName(groupName)
+        .build();
+
+GroupDeleteResult result = client.sns.groupDelete(request);
+

拉取分组

拉取分组,支持指定分组以及拉取分组下的好友列表。

使用示例:

List<String> groupName = Collections.singletonList("classmate");
+GroupGetRequest request = GroupGetRequest.builder()
+        .fromAccount("test1")
+        .groupName(groupName)
+        .needFriend(NeedFriendType.YES)
+        .build();
+
+GroupGetResult result = client.sns.groupGet(request);
+
`,62)]))}const i=s(e,[["render",c],["__file","sns.html.vue"]]),u=JSON.parse('{"path":"/guide/sns.html","title":"关系链管理","lang":"zh-CN","frontmatter":{},"headers":[{"level":2,"title":"添加好友","slug":"添加好友","link":"#添加好友","children":[]},{"level":2,"title":"导入好友","slug":"导入好友","link":"#导入好友","children":[]},{"level":2,"title":"更新好友","slug":"更新好友","link":"#更新好友","children":[]},{"level":2,"title":"删除好友","slug":"删除好友","link":"#删除好友","children":[]},{"level":2,"title":"删除所有好友","slug":"删除所有好友","link":"#删除所有好友","children":[]},{"level":2,"title":"校验好友","slug":"校验好友","link":"#校验好友","children":[]},{"level":2,"title":"拉取好友","slug":"拉取好友","link":"#拉取好友","children":[]},{"level":2,"title":"拉取指定好友","slug":"拉取指定好友","link":"#拉取指定好友","children":[]},{"level":2,"title":"添加黑名单","slug":"添加黑名单","link":"#添加黑名单","children":[]},{"level":2,"title":"删除黑名单","slug":"删除黑名单","link":"#删除黑名单","children":[]},{"level":2,"title":"拉取黑名单","slug":"拉取黑名单","link":"#拉取黑名单","children":[]},{"level":2,"title":"校验黑名单","slug":"校验黑名单","link":"#校验黑名单","children":[]},{"level":2,"title":"添加分组","slug":"添加分组","link":"#添加分组","children":[]},{"level":2,"title":"删除分组","slug":"删除分组","link":"#删除分组","children":[]},{"level":2,"title":"拉取分组","slug":"拉取分组","link":"#拉取分组","children":[]}],"git":{"updatedTime":1643080656000,"contributors":[{"name":"Yang Libin","email":"szuyanglb@outlook.com","commits":4,"url":"https://github.com/Yang Libin"},{"name":"怡蘅","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/怡蘅"},{"name":"hongyiheng","email":"hongyihengg@gmail.com","commits":1,"url":"https://github.com/hongyiheng"}]},"filePathRelative":"guide/sns.md"}');export{i as comp,u as data}; diff --git a/assets/style-DC-5J3SW.css b/assets/style-DC-5J3SW.css new file mode 100644 index 0000000..b12758b --- /dev/null +++ b/assets/style-DC-5J3SW.css @@ -0,0 +1 @@ +.vp-back-to-top-button{position:fixed!important;inset-inline-end:1rem;bottom:4rem;z-index:100;width:48px;height:48px;padding:12px;border-width:0;border-radius:50%;background:var(--back-to-top-c-bg);color:var(--back-to-top-c-accent-bg);box-shadow:2px 2px 10px 4px var(--back-to-top-c-shadow);cursor:pointer}@media (max-width: 959px){.vp-back-to-top-button{transform:scale(.8);transform-origin:100% 100%}}@media print{.vp-back-to-top-button{display:none}}.vp-back-to-top-button:hover{color:var(--back-to-top-c-accent-hover)}.vp-back-to-top-button .back-to-top-icon{overflow:hidden;width:24px;height:24px;margin:0 auto;background:var(--back-to-top-c-icon);-webkit-mask-image:var(--back-to-top-icon);mask-image:var(--back-to-top-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:cover;mask-size:cover}.vp-scroll-progress{position:absolute;right:-2px;bottom:-2px;width:52px;height:52px}.vp-scroll-progress svg{width:100%;height:100%}.vp-scroll-progress circle{opacity:.9;transform:rotate(-90deg);transform-origin:50% 50%}.back-to-top-enter-active,.back-to-top-leave-active{transition:opacity .3s}.back-to-top-enter-from,.back-to-top-leave-to{opacity:0}:root{--back-to-top-z-index: 5;--back-to-top-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2048%2048'%3e%3cpath%20fill='none'%20stroke='currentColor'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='4'%20d='M24.008%2014.1V42M12%2026l12-12l12%2012M12%206h24'%20/%3e%3c/svg%3e");--back-to-top-c-bg: var(--vp-c-bg);--back-to-top-c-accent-bg: var(--vp-c-accent-bg);--back-to-top-c-accent-hover: var(--vp-c-accent-hover);--back-to-top-c-shadow: var(--vp-c-shadow);--back-to-top-c-icon: currentcolor}.vp-copy-code-button{position:absolute;top:.5em;right:.5em;z-index:5;width:2.5rem;height:2.5rem;padding:0;border-width:0;border-radius:.5rem;background:#0000;outline:none;opacity:0;cursor:pointer;transition:opacity .4s}@media print{.vp-copy-code-button{display:none}}.vp-copy-code-button:before{content:"";display:inline-block;width:1.25rem;height:1.25rem;padding:.625rem;background:currentcolor;color:var(--copy-code-c-text);font-size:1.25rem;-webkit-mask-image:var(--code-copy-icon);mask-image:var(--code-copy-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.vp-copy-code-button:focus,.vp-copy-code-button.copied{opacity:1}.vp-copy-code-button:hover,.vp-copy-code-button.copied{background:var(--copy-code-c-hover)}.vp-copy-code-button.copied:before{-webkit-mask-image:var(--code-copied-icon);mask-image:var(--code-copied-icon)}.vp-copy-code-button.copied:after{content:attr(data-copied);position:absolute;top:0;right:calc(100% + .25rem);display:block;height:1.25rem;padding:.625rem;border-radius:.5rem;background:var(--copy-code-c-hover);color:var(--copy-code-c-text);font-weight:500;line-height:1.25rem;white-space:nowrap}.no-copy-code .vp-copy-code-button{display:none}body:not(.no-copy-code) div[class*=language-]:hover:before{display:none}body:not(.no-copy-code) div[class*=language-]:hover .vp-copy-code-button{opacity:1}:root{--code-copy-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23808080' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2' /%3e%3c/svg%3e");--code-copied-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23808080' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4' /%3e%3c/svg%3e");--copy-code-c-text: var(--code-c-line-number);--copy-code-c-hover: var(--code-c-highlight-bg)}.hint-container{position:relative;background:var(--hint-c-soft);transition:background var(--vp-t-color),color var(--vp-t-color)}@media print{.hint-container{page-break-inside:avoid}}.hint-container>.hint-container-title{color:var(--hint-c-title)}.hint-container :not(pre)>code{background:var(--hint-c-soft)}.hint-container .hint-container-title{position:relative;margin-block:.75em;font-weight:600;line-height:1.25}.hint-container.important,.hint-container.info,.hint-container.note,.hint-container.tip,.hint-container.warning,.hint-container.caution{margin-block:.75rem;padding:.25em 1em;border-radius:.5em;color:inherit;font-size:var(--hint-font-size)}@media print{.hint-container.important,.hint-container.info,.hint-container.note,.hint-container.tip,.hint-container.warning,.hint-container.caution{border-inline-start-width:.25em;border-inline-start-style:solid}}.hint-container.important .hint-container-title,.hint-container.info .hint-container-title,.hint-container.note .hint-container-title,.hint-container.tip .hint-container-title,.hint-container.warning .hint-container-title,.hint-container.caution .hint-container-title{padding-inline-start:1.75em}@media print{.hint-container.important .hint-container-title,.hint-container.info .hint-container-title,.hint-container.note .hint-container-title,.hint-container.tip .hint-container-title,.hint-container.warning .hint-container-title,.hint-container.caution .hint-container-title{padding-inline-start:0}}.hint-container.important .hint-container-title:before,.hint-container.info .hint-container-title:before,.hint-container.note .hint-container-title:before,.hint-container.tip .hint-container-title:before,.hint-container.warning .hint-container-title:before,.hint-container.caution .hint-container-title:before{content:" ";position:absolute;inset-inline-start:0;top:calc(50% - .6125em);width:1.25em;height:1.25em;font-size:1.25em}@media print{.hint-container.important .hint-container-title:before,.hint-container.info .hint-container-title:before,.hint-container.note .hint-container-title:before,.hint-container.tip .hint-container-title:before,.hint-container.warning .hint-container-title:before,.hint-container.caution .hint-container-title:before{display:none}}.hint-container.important p,.hint-container.info p,.hint-container.note p,.hint-container.tip p,.hint-container.warning p,.hint-container.caution p{line-height:1.5}.hint-container.important a,.hint-container.info a,.hint-container.note a,.hint-container.tip a,.hint-container.warning a,.hint-container.caution a{color:var(--vp-c-accent)}.hint-container.important{--hint-c-accent: var(--important-c-accent);--hint-c-title: var(--important-c-text);--hint-c-soft: var(--important-c-soft)}.hint-container.important>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M512 981.333a84.992 84.992 0 0 1-84.907-84.906h169.814A84.992 84.992 0 0 1 512 981.333zm384-128H128v-42.666l85.333-85.334v-256A298.325 298.325 0 0 1 448 177.92V128a64 64 0 0 1 128 0v49.92a298.325 298.325 0 0 1 234.667 291.413v256L896 810.667v42.666zm-426.667-256v85.334h85.334v-85.334h-85.334zm0-256V512h85.334V341.333h-85.334z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M512 981.333a84.992 84.992 0 0 1-84.907-84.906h169.814A84.992 84.992 0 0 1 512 981.333zm384-128H128v-42.666l85.333-85.334v-256A298.325 298.325 0 0 1 448 177.92V128a64 64 0 0 1 128 0v49.92a298.325 298.325 0 0 1 234.667 291.413v256L896 810.667v42.666zm-426.667-256v85.334h85.334v-85.334h-85.334zm0-256V512h85.334V341.333h-85.334z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.info{--hint-c-accent: var(--info-c-accent);--hint-c-title: var(--info-c-text);--hint-c-soft: var(--info-c-soft)}.hint-container.info>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.note{--hint-c-accent: var(--note-c-accent);--hint-c-title: var(--note-c-text);--hint-c-soft: var(--note-c-soft)}.hint-container.note>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.tip{--hint-c-accent: var(--tip-c-accent);--hint-c-title: var(--tip-c-text);--hint-c-soft: var(--tip-c-soft)}.hint-container.tip>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.warning{--hint-c-accent: var(--warning-c-accent);--hint-c-title: var(--warning-c-text);--hint-c-soft: var(--warning-c-soft)}.hint-container.warning>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M576.286 752.57v-95.425q0-7.031-4.771-11.802t-11.3-4.772h-96.43q-6.528 0-11.3 4.772t-4.77 11.802v95.424q0 7.031 4.77 11.803t11.3 4.77h96.43q6.528 0 11.3-4.77t4.77-11.803zm-1.005-187.836 9.04-230.524q0-6.027-5.022-9.543-6.529-5.524-12.053-5.524H456.754q-5.524 0-12.053 5.524-5.022 3.516-5.022 10.547l8.538 229.52q0 5.023 5.022 8.287t12.053 3.265h92.913q7.032 0 11.803-3.265t5.273-8.287zM568.25 95.65l385.714 707.142q17.578 31.641-1.004 63.282-8.538 14.564-23.354 23.102t-31.892 8.538H126.286q-17.076 0-31.892-8.538T71.04 866.074q-18.582-31.641-1.004-63.282L455.75 95.65q8.538-15.57 23.605-24.61T512 62t32.645 9.04 23.605 24.61z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M576.286 752.57v-95.425q0-7.031-4.771-11.802t-11.3-4.772h-96.43q-6.528 0-11.3 4.772t-4.77 11.802v95.424q0 7.031 4.77 11.803t11.3 4.77h96.43q6.528 0 11.3-4.77t4.77-11.803zm-1.005-187.836 9.04-230.524q0-6.027-5.022-9.543-6.529-5.524-12.053-5.524H456.754q-5.524 0-12.053 5.524-5.022 3.516-5.022 10.547l8.538 229.52q0 5.023 5.022 8.287t12.053 3.265h92.913q7.032 0 11.803-3.265t5.273-8.287zM568.25 95.65l385.714 707.142q17.578 31.641-1.004 63.282-8.538 14.564-23.354 23.102t-31.892 8.538H126.286q-17.076 0-31.892-8.538T71.04 866.074q-18.582-31.641-1.004-63.282L455.75 95.65q8.538-15.57 23.605-24.61T512 62t32.645 9.04 23.605 24.61z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.caution{--hint-c-accent: var(--caution-c-accent);--hint-c-title: var(--caution-c-text);--hint-c-soft: var(--caution-c-soft)}.hint-container.caution>.hint-container-title:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hint-container.details{position:relative;display:block;margin-block:.75rem;padding:1.25rem 1rem;border-radius:.5rem;background:var(--detail-c-bg);transition:background var(--vp-t-transform),color var(--vp-t-transform)}.hint-container.details h4{margin-top:0}.hint-container.details figure:last-child,.hint-container.details p:last-child{margin-bottom:0;padding-bottom:0}.hint-container.details a{color:var(--vp-c-accent)}.hint-container.details :not(pre)>code{background:var(--detail-c-soft)}.hint-container.details summary{position:relative;margin:-1rem;padding-block:1em;padding-inline:3em 1.5em;list-style:none;font-size:var(--hint-font-size);cursor:pointer}.hint-container.details summary::-webkit-details-marker{display:none}.hint-container.details summary::marker{color:#0000;font-size:0}.hint-container.details summary:before{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:1em;mask-size:1em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;content:" ";position:absolute;inset-inline-start:.8em;top:calc(50% - .5em);width:1em;height:1em;font-size:1.25rem;line-height:normal;transition:color,var(--vp-t-color),transform var(--vp-t-transform);transform:rotate(90deg)}.hint-container.details[open]>summary{margin-bottom:.5em}.hint-container.details[open]>summary:before{transform:rotate(180deg)}:root{--hint-font-size: .92rem;--important-c-accent: var(--vp-c-purple-bg);--important-c-text: var(--vp-c-purple-text);--important-c-soft: var(--vp-c-purple-soft);--info-c-accent: var(--vp-c-blue-bg);--info-c-text: var(--vp-c-blue-text);--info-c-soft: var(--vp-c-blue-soft);--note-c-accent: var(--vp-c-grey-bg);--note-c-text: var(--vp-c-grey-text);--note-c-soft: var(--vp-c-grey-soft);--tip-c-accent: var(--vp-c-green-bg);--tip-c-text: var(--vp-c-green-text);--tip-c-soft: var(--vp-c-green-soft);--warning-c-accent: var(--vp-c-yellow-bg);--warning-c-text: var(--vp-c-yellow-text);--warning-c-soft: var(--vp-c-yellow-soft);--caution-c-accent: var(--vp-c-red-bg);--caution-c-text: var(--vp-c-red-text);--caution-c-soft: var(--vp-c-red-soft);--detail-c-bg: var(--vp-c-control);--detail-c-icon: var(--vp-c-border);--detail-c-soft: var(--vp-c-grey-soft)}:root{--medium-zoom-z-index: 100;--medium-zoom-c-bg: var(--vp-c-bg-elv, #fff);--medium-zoom-opacity: 1}.medium-zoom-overlay{z-index:var(--medium-zoom-z-index);background-color:var(--medium-zoom-c-bg)!important}.medium-zoom-overlay~img{z-index:calc(var(--medium-zoom-z-index) + 1)}.medium-zoom--opened .medium-zoom-overlay{opacity:var(--medium-zoom-opacity)}:root{--nprogress-c: var(--vp-c-accent);--nprogress-z-index: 1031}#nprogress{pointer-events:none}#nprogress .bar{position:fixed;top:0;left:0;z-index:var(--nprogress-z-index);width:100%;height:2px;background:var(--nprogress-c)}:root{--code-padding-x: 1.25rem;--code-padding-y: 1rem;--code-border-radius: 6px;--code-line-height: 1.6;--code-font-size: 14px;--code-font-family: consolas, monaco, "Andale Mono", "Ubuntu Mono", monospace}div[class*=language-]{position:relative;border-radius:var(--code-border-radius);background-color:var(--code-c-bg)}div[class*=language-]:before{content:attr(data-title);position:absolute;top:.8em;right:1em;z-index:3;color:var(--code-c-text);font-size:.75rem}div[class*=language-] pre{position:relative;z-index:1;overflow-x:auto;margin:0;border-radius:var(--code-border-radius);font-size:var(--code-font-size);font-family:var(--code-font-family);line-height:var(--code-line-height)}div[class*=language-] pre code{display:block;box-sizing:border-box;width:-moz-fit-content;width:fit-content;min-width:100%;padding:var(--code-padding-y) var(--code-padding-x);background-color:#0000!important;color:var(--code-c-text);overflow-wrap:unset;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}:root{--code-c-text: #f8f8f2;--code-c-bg: #2e3440;--code-c-highlight-bg: rgb(51.6454545455, 60.5484848485, 78.3545454545);--code-c-line-number: rgba(248, 248, 242, .67)}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#636f88}.token.punctuation{color:#81a1c1}.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#81a1c1}.token.number{color:#b48ead}.token.boolean{color:#81a1c1}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a3be8c}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#81a1c1}.token.atrule,.token.attr-value,.token.function,.token.class-name{color:#88c0d0}.token.keyword{color:#81a1c1}.token.regex,.token.important{color:#ebcb8b}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}:root{--code-line-number-width: 3rem}div[class*=language-]:not(.line-numbers-mode) .line-numbers{display:none}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;top:0;left:0;width:var(--code-line-number-width);height:100%;border-right:1px solid var(--code-c-highlight-bg, var(--code-c-text));border-radius:var(--code-border-radius) 0 0 var(--code-border-radius);transition:border var(--vp-t-color)}div[class*=language-].line-numbers-mode pre{vertical-align:middle;margin-left:var(--code-line-number-width)}div[class*=language-].line-numbers-mode code{padding-left:1rem}div[class*=language-].line-numbers-mode .line-numbers{counter-reset:line-number;position:absolute;top:0;width:var(--code-line-number-width);padding-top:var(--code-padding-y);color:var(--code-c-line-number, var(--code-c-text));font-size:var(--code-font-size);line-height:var(--code-line-height);text-align:center}div[class*=language-].line-numbers-mode .line-number{position:relative;z-index:3;font-family:var(--code-font-family);-webkit-user-select:none;-moz-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-number:before{content:counter(line-number);counter-increment:line-number}div[class*=language-] .line.highlighted{display:inline-block;width:100%;margin:0 calc(-1*var(--code-padding-x));padding:0 var(--code-padding-x);background-color:var(--code-c-highlight-bg)}div[class*=language-].has-collapsed-lines.collapsed{overflow-y:hidden;height:calc(var(--vp-collapsed-lines)*var(--code-line-height)*var(--code-font-size) + var(--code-padding-y) + 28px)}div[class*=language-].has-collapsed-lines .collapsed-lines{--vp-collapsed-lines-bg: var(--code-c-bg);position:absolute;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:center;justify-content:center;height:28px;background:linear-gradient(to bottom,transparent 0%,var(--vp-collapsed-lines-bg) 55%,var(--vp-collapsed-lines-bg) 100%);cursor:pointer;transition:--vp-collapsed-lines-bg var(--vp-t-color)}div[class*=language-].has-collapsed-lines .collapsed-lines:hover{--vp-collapsed-lines-bg: rgb(0 0 0 / 10%) !important}div[class*=language-].has-collapsed-lines[data-highlighter=shiki] .collapsed-lines{--vp-collapsed-lines-bg: var(--code-c-bg, var(--shiki-light-bg))}[data-theme=dark] div[class*=language-].has-collapsed-lines[data-highlighter=shiki] .collapsed-lines{--vp-collapsed-lines-bg: var(--code-c-bg, var(--shiki-dark-bg))}div[class*=language-].has-collapsed-lines .collapsed-lines:before{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='m18 12l-6 6l-6-6m12-6l-6 6l-6-6'/%3E%3C/svg%3E");--vp-collapsed-lines-rotate: 0deg;content:"";display:inline-block;width:24px;height:24px;background-color:var(--code-c-text);-webkit-mask-image:var(--icon);mask-image:var(--icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:20px;mask-size:20px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;pointer-events:none;animation:code-collapsed-lines 1.2s infinite alternate-reverse ease-in-out}div[class*=language-].has-collapsed-lines:not(.collapsed) code{padding-bottom:max(var(--code-padding-y),28px)}div[class*=language-].has-collapsed-lines:not(.collapsed) .collapsed-lines:hover{--vp-collapsed-lines-bg: transparent !important}div[class*=language-].has-collapsed-lines:not(.collapsed) .collapsed-lines:before{--vp-collapsed-lines-rotate: 180deg}@property --vp-collapsed-lines-bg{inherits:false;initial-value:#fff;syntax:""}@keyframes code-collapsed-lines{0%{opacity:.3;transform:translateY(-2px) rotate(var(--vp-collapsed-lines-rotate))}to{opacity:1;transform:translateY(2px) rotate(var(--vp-collapsed-lines-rotate))}}.vp-code-tabs-nav{overflow-x:auto;margin:.75rem 0 -.75rem;padding:0;border-radius:6px 6px 0 0;background:var(--code-tabs-c-bg);list-style:none;white-space:nowrap;transition:background var(--vp-t-color)}@media print{.vp-code-tabs-nav{display:none}}@media (max-width: 419px){.vp-code-tabs-nav{margin-inline:-1.5rem;border-radius:0}}.vp-code-tab-nav{position:relative;min-width:3rem;margin:0;padding:6px 12px;border-width:0;border-radius:6px 6px 0 0;background:#0000;color:var(--code-tabs-c-text);font-weight:600;font-size:.875em;line-height:1.4;cursor:pointer;transition:background var(--vp-t-color),color var(--vp-t-color)}.vp-code-tab-nav:hover{background:var(--code-tabs-c-hover)}.vp-code-tab-nav:before,.vp-code-tab-nav:after{content:" ";position:absolute;bottom:0;z-index:1;width:6px;height:6px}.vp-code-tab-nav:before{right:100%}.vp-code-tab-nav:after{left:100%}.vp-code-tab-nav.active{background:var(--code-c-bg, var(--vp-c-bg-alt))}.vp-code-tab-nav.active:before{background:radial-gradient(12px at left top,transparent 50%,var(--code-c-bg) 50%)}.vp-code-tab-nav.active:after{background:radial-gradient(12px at right top,transparent 50%,var(--code-c-bg) 50%)}.vp-code-tab-nav:first-child:before{display:none}[dir=rtl] .vp-code-tab-nav:first-child:before{display:block}[dir=rtl] .vp-code-tab-nav:first-child:after{display:none}.vp-code-tab{display:none}@media print{.vp-code-tab{display:block}}.vp-code-tab.active{display:block}.vp-code-tab div[class*=language-]{border-top-left-radius:0;border-top-right-radius:0}@media (max-width: 419px){.vp-code-tab div[class*=language-]{margin:.75rem -1.5rem;border-radius:0}}.vp-code-tab div[class*=language-].line-numbers-mode:after{border-top-left-radius:0}.vp-code-tab div[class*=language-] pre{border-top-left-radius:0;border-top-right-radius:0}@media (max-width: 419px){.vp-code-tab div[class*=language-] pre{border-radius:0}}@media print{.vp-code-tab div[class*=language-] code{white-space:pre-wrap}}.vp-code-tab-title{display:none;font-weight:500}@media print{.vp-code-tab-title{display:block}}.vp-tabs{margin:1.5rem 0;border:1px solid var(--vp-c-border);border-radius:8px}@media (max-width: 419px){[vp-content]>.vp-tabs{margin-inline:-1.5rem;border:none;border-bottom:1px solid var(--vp-c-border);border-radius:0}}.vp-tabs-nav{overflow-x:auto;margin:0;padding:0;border-radius:.5rem .5rem 0 0;background:var(--tab-c-bg-nav);list-style:none;white-space:nowrap;transition:background var(--vp-t-color)}@media print{.vp-tabs-nav{display:none}}@media (max-width: 419px){.vp-tabs-nav{border-radius:0}}.vp-tab-nav{position:relative;min-width:4rem;margin:0;padding:.5em 1em;border:none;border-radius:.5rem .5rem 0 0;background:#0000;color:var(--tab-c-nav);font-weight:600;font-size:.875em;line-height:1.75;cursor:pointer;transition:background var(--vp-t-color),color var(--vp-t-color)}.vp-tab-nav:hover{background:var(--tab-c-bg-nav-hover)}.vp-tab-nav:before,.vp-tab-nav:after{content:" ";position:absolute;bottom:0;z-index:1;width:8px;height:8px}.vp-tab-nav:before{right:100%}.vp-tab-nav:after{left:100%}.vp-tab-nav.active{background:var(--tab-c-bg)}.vp-tab-nav.active:before{background:radial-gradient(16px at left top,transparent 50%,var(--tab-c-bg) 50%)}.vp-tab-nav.active:after{background:radial-gradient(16px at right top,transparent 50%,var(--tab-c-bg) 50%)}.vp-tab-nav:first-child:before{display:none}.vp-tab{display:none;padding:1rem .75rem;border-radius:0 0 .5rem .5rem;background:var(--tab-c-bg);transition:background var(--vp-t-color)}@media print{.vp-tab{display:block;padding:.5rem}}.vp-tab.active{display:block}.vp-tab:nth-child(n+2) .vp-tab-title{border-top:none}.vp-tab-title{display:none;padding:.25rem 0;border-top:1px solid var(--vp-c-border);font-weight:500}@media print{.vp-tab-title{display:block}}:root{--code-tabs-c-text: var(--code-c-text);--code-tabs-c-bg: var(--code-c-highlight-bg);--code-tabs-c-hover: var(--code-c-bg, var(--vp-c-bg-alt));--tab-c-bg: var(--vp-c-bg);--tab-c-nav: var(--vp-c-text);--tab-c-bg-nav: var(--vp-c-grey-bg);--tab-c-bg-nav-hover: var(--vp-c-control-hover)}.vp-badge{display:inline-block;vertical-align:top;height:18px;padding:0 6px;border-radius:3px;background:var(--vp-c-accent-soft);color:var(--vp-c-accent);font-size:14px;line-height:18px;transition:background var(--vp-t-color),color var(--vp-t-color)}.vp-badge+.vp-badge{margin-inline-start:5px}.vp-badge.tip{background:var(--badge-c-tip-bg);color:var(--badge-c-tip-text)}.vp-badge.warning{background:var(--badge-c-warning-bg);color:var(--badge-c-warning-text)}.vp-badge.danger{background:var(--badge-c-danger-bg);color:var(--badge-c-danger-text)}.vp-badge.important{background:var(--badge-c-important-bg);color:var(--badge-c-important-text)}.vp-badge.info{background:var(--badge-c-info-bg);color:var(--badge-c-info-text)}.vp-badge.note{background:var(--badge-c-note-bg);color:var(--badge-c-note-text)}.vp-features{display:flex;flex-wrap:wrap;place-content:stretch space-between;align-items:flex-start;margin-top:2.5rem;padding:1.2rem 0;border-top:1px solid var(--vp-c-gutter);transition:border-color var(--vp-t-color)}@media (max-width: 719px){.vp-features{flex-direction:column}}.vp-feature{flex-grow:1;flex-basis:30%;max-width:30%}@media (max-width: 719px){.vp-feature{max-width:100%;padding:0 2.5rem}}.vp-feature h2{padding-bottom:0;border-bottom:none;font-weight:500;font-size:1.4rem}@media (max-width: 419px){.vp-feature h2{font-size:1.25rem}}.vp-feature p{color:var(--vp-c-text-mute)}.vp-footer{padding:2.5rem;border-top:1px solid var(--vp-c-border);color:var(--vp-c-text-mute);text-align:center;transition:border-color var(--vp-t-color)}.vp-hero{text-align:center}.vp-hero-image{display:block;max-width:100%;max-height:280px;margin:3rem auto 1.5rem}@media (max-width: 419px){.vp-hero-image{max-height:210px;margin:2rem auto 1.2rem}}#main-title{font-size:3rem}@media (max-width: 419px){#main-title{font-size:2rem}}#main-title,.vp-hero-description,.vp-hero-actions{margin:1.8rem auto}@media (max-width: 419px){#main-title,.vp-hero-description,.vp-hero-actions{margin:1.2rem auto}}.vp-hero-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.vp-hero-description{max-width:35rem;color:var(--vp-c-text-mute);font-size:1.6rem;line-height:1.3}@media (max-width: 419px){.vp-hero-description{font-size:1.2rem}}.vp-hero-action-button{display:inline-block;box-sizing:border-box;padding:.8rem 1.6rem;border:2px solid var(--vp-c-accent-bg);border-radius:4px;background-color:var(--vp-c-bg);color:var(--vp-c-accent);font-size:1.2rem;transition:background-color border-color color var(--vp-t-color)}@media (max-width: 419px){.vp-hero-action-button{padding:.6rem 1.2rem;font-size:1rem}}.vp-hero-action-button:hover{color:var(--vp-c-accent-text)}.vp-hero-action-button.primary{background-color:var(--vp-c-accent-bg);color:var(--vp-c-accent-text)}.vp-hero-action-button.primary:hover{border-color:var(--vp-c-accent-hover);background-color:var(--vp-c-accent-hover)}.vp-home{display:block;max-width:var(--homepage-width);margin:0 auto;padding:var(--navbar-height) 2rem 0}@media (max-width: 419px){.vp-home{padding-right:1.5rem;padding-left:1.5rem}}.vp-home .theme-default-content{margin:0;padding:0}.vp-site-logo{vertical-align:top;height:var(--navbar-line-height);margin-right:var(--navbar-padding-v)}.vp-site-name{position:relative;color:var(--vp-c-text);font-weight:600;font-size:1.3rem}@media screen and (max-width: 719px){.vp-site-name{display:block;overflow:hidden;width:calc(100vw - 11rem);text-overflow:ellipsis;white-space:nowrap}}.vp-dropdown-enter-from,.vp-dropdown-leave-to{height:0!important}.vp-navbar-dropdown-wrapper{cursor:pointer}.vp-navbar-dropdown-wrapper:not(.mobile){height:1.8rem}.vp-navbar-dropdown-wrapper:not(.mobile):hover .vp-navbar-dropdown,.vp-navbar-dropdown-wrapper:not(.mobile).open .vp-navbar-dropdown{display:block!important}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown{overflow:hidden;transition:height .1s ease-out;padding-top:.5rem}.vp-navbar-dropdown-wrapper:not(.mobile) .vp-navbar-dropdown{position:absolute;top:100%;right:0;display:none;overflow-y:auto;box-sizing:border-box;height:auto!important;max-height:calc(100vh - 2.7rem);margin:0;padding:.6rem 0;border:1px solid var(--vp-c-gutter);border-radius:.5rem;background-color:var(--vp-c-bg-elv);text-align:left;white-space:nowrap}.vp-navbar-dropdown-title{display:block;padding:inherit;border:none;background:transparent;color:var(--vp-c-text);font-weight:500;font-size:.9rem;font-family:inherit;line-height:1.4rem;cursor:inherit}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-title{display:none}.vp-navbar-dropdown-title:hover{border-color:transparent}.vp-navbar-dropdown-title-mobile{display:none;padding:inherit;border:none;background:transparent;color:var(--vp-c-text);font-weight:600;font-size:inherit;font-family:inherit;line-height:1.4rem;cursor:inherit}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-title-mobile{display:block}.vp-navbar-dropdown-title-mobile:hover{color:var(--vp-c-accent)}.vp-navbar-dropdown-item{color:inherit;line-height:1.7rem}.vp-navbar-dropdown-item a{position:relative;display:block;margin-bottom:0;padding:0 1.5rem 0 1.25rem;border-bottom:none;font-weight:400;line-height:1.7rem}.vp-navbar-dropdown-item a:hover,.vp-navbar-dropdown-item a.route-link-active{color:var(--vp-c-accent)}.vp-navbar-dropdown-item a.route-link-active:after{content:"";position:absolute;top:calc(50% - 2px);left:9px;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-left:5px solid var(--vp-c-accent)}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-item>a{font-size:15px;line-height:2rem}.vp-navbar-dropdown-subtitle{margin:.45rem 0 0;padding:1rem 0 .45rem;border-top:1px solid var(--vp-c-gutter);font-size:.9rem}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-subtitle{margin-top:0;padding-top:0;padding-bottom:0;border-top:0;font-size:15px;line-height:2rem}.vp-navbar-dropdown-item:first-child .vp-navbar-dropdown-subtitle{margin-top:0;padding-top:0;border-top:0}.vp-navbar-dropdown-subtitle>span{padding:0 1.5rem 0 1.25rem}.vp-navbar-dropdown-subtitle>a{font-weight:inherit}.vp-navbar-dropdown-subtitle>a.route-link-active:after{display:none}.vp-navbar-dropdown-subitem-wrapper{padding:0;list-style:none}.vp-navbar-dropdown-subitem{font-size:.9em}.vp-navbar-dropdown-wrapper.mobile .vp-navbar-dropdown-subitem{padding-left:1rem;font-size:14px}.vp-navbar-items{display:inline-block}@media print{.vp-navbar-items{display:none}}.vp-navbar-items a{display:inline-block;color:inherit;line-height:1.4rem}.vp-navbar-items a:hover,.vp-navbar-items a.route-link-active{color:var(--vp-c-text)}.vp-navbar-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:var(--navbar-line-height)}@media (max-width: 719px){.vp-navbar-item{margin-left:0}}.vp-navbar-item:first-child{margin-left:0}.vp-navbar-item a:hover,.vp-navbar-item a.route-link-active{color:var(--vp-c-accent)}.vp-navbar-item>a:hover,.vp-navbar-item>a.route-link-active{margin-bottom:-2px;border-bottom:2px solid var(--vp-c-accent)}@media (max-width: 719px){.vp-navbar-item>a:hover,.vp-navbar-item>a.route-link-active{margin-bottom:0;border-bottom:none}}.vp-toggle-color-mode-button{display:flex;margin:auto;margin-left:1rem;border:0;background:none;color:var(--vp-c-text);opacity:.8;cursor:pointer}@media print{.vp-toggle-color-mode-button{display:none}}.vp-toggle-color-mode-button:hover{opacity:1}.vp-toggle-color-mode-button .light-icon,.vp-toggle-color-mode-button .dark-icon{width:1.25rem;height:1.25rem}.vp-toggle-sidebar-button{position:absolute;top:.6rem;left:1rem;display:none;padding:.6rem;cursor:pointer}@media screen and (max-width: 719px){.vp-toggle-sidebar-button{display:block}}.vp-toggle-sidebar-button .icon{display:flex;flex-direction:column;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;cursor:inherit}.vp-toggle-sidebar-button .icon span{display:inline-block;width:100%;height:2px;border-radius:2px;background-color:var(--vp-c-text);transition:transform var(--vp-t-transform)}.vp-toggle-sidebar-button .icon span:nth-child(2){margin:6px 0}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(1){transform:rotate(45deg) translate3d(5.5px,5.5px,0)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(2){transform:scale3d(0,1,1)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(3){transform:rotate(-45deg) translate3d(6px,-6px,0)}.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(1),.vp-theme-container.sidebar-open .vp-toggle-sidebar-button .icon span:nth-child(3){transform-origin:center}.vp-navbar{--navbar-line-height: calc( var(--navbar-height) - 2 * var(--navbar-padding-v) );position:fixed;top:0;right:0;left:0;z-index:20;box-sizing:border-box;height:var(--navbar-height);padding:var(--navbar-padding-v) var(--navbar-padding-h);border-bottom:1px solid var(--vp-c-border);background-color:var(--vp-navbar-c-bg);line-height:var(--navbar-line-height);transition:background-color var(--vp-t-color),border-color var(--vp-t-color)}@media screen and (max-width: 719px){.vp-navbar{padding-left:4rem}}.vp-navbar-items-wrapper{position:absolute;top:var(--navbar-padding-v);right:var(--navbar-padding-h);display:flex;box-sizing:border-box;height:var(--navbar-line-height);padding-left:var(--navbar-padding-h);font-size:.9rem;white-space:nowrap}.vp-page-meta{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-page-meta{padding:2rem}}@media (max-width: 419px){.vp-page-meta{padding:1.5rem}}.vp-page-meta{display:flex;flex-wrap:wrap;justify-content:space-between;overflow:auto;padding-top:.75rem;padding-bottom:.75rem}@media print{.vp-page-meta{margin:0!important;padding-right:0!important;padding-left:0!important}}@media (max-width: 719px){.vp-page-meta{display:block}}.vp-page-meta .vp-meta-item{flex-grow:1}.vp-page-meta .vp-meta-item .vp-meta-label{font-weight:500}.vp-page-meta .vp-meta-item .vp-meta-label:not(a){color:var(--vp-c-text-mute)}.vp-page-meta .vp-meta-item .vp-meta-info{color:var(--vp-c-text-mute);font-weight:400}.vp-page-meta .git-info{text-align:end}.vp-page-meta .edit-link{margin-top:.25rem;margin-right:.5rem;margin-bottom:.25rem;font-size:14px}@media print{.vp-page-meta .edit-link{display:none}}.vp-page-meta .edit-link .edit-icon{position:relative;bottom:-.125em;width:1em;height:1em;margin-right:.25em}.vp-page-meta .last-updated,.vp-page-meta .contributors{margin-top:.25rem;margin-bottom:.25rem;font-size:14px}@media (max-width: 719px){.vp-page-meta .last-updated,.vp-page-meta .contributors{font-size:13px;text-align:start}}.vp-page-nav{display:flex;flex-wrap:wrap;max-width:var(--content-width, 740px);min-height:2rem;margin-top:0;margin-right:auto;margin-left:auto;padding:1rem 2rem 0;border-top:1px solid var(--vp-c-gutter);transition:border-top var(--vp-t-color)}@media (max-width: 959px){.vp-page-nav{padding-right:1rem;padding-left:1rem}}@media print{.vp-page-nav{display:none}}.vp-page-nav .route-link{display:inline-block;flex-grow:1;margin:.25rem;padding:.25rem .5rem;border:1px solid var(--vp-c-gutter);border-radius:.25rem}.vp-page-nav .route-link:hover{background:var(--vp-c-control)}.vp-page-nav .route-link .hint{color:var(--vp-c-text-mute);font-size:.875rem;line-height:2}.vp-page-nav .prev{text-align:start}.vp-page-nav .next{text-align:end}.vp-page{display:block;padding-top:var(--navbar-height);padding-bottom:2rem;padding-left:var(--sidebar-width)}@media (max-width: 959px){.vp-page{padding-left:var(--sidebar-width-mobile)}}@media (max-width: 719px){.vp-page{padding-left:0}}.vp-page .theme-default-content{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-page .theme-default-content{padding:2rem}}@media (max-width: 419px){.vp-page .theme-default-content{padding:1.5rem}}.vp-page .theme-default-content{padding-top:0}.vp-sidebar-item{border-left:.25rem solid transparent;color:var(--vp-c-text);cursor:default}.vp-sidebar-item:focus-visible{outline-width:1px;outline-offset:-1px}.vp-sidebar-item.vp-sidebar-heading{box-sizing:border-box;width:100%;margin:0;padding:.35rem 1.5rem .35rem 1.25rem;font-weight:700;font-size:1.1em;transition:color .15s ease}.vp-sidebar-item.vp-sidebar-heading+.vp-sidebar-children{overflow:hidden;transition:height .1s ease-out;margin-bottom:.75rem}.vp-sidebar-item.collapsible{cursor:pointer}.vp-sidebar-item:not(.vp-sidebar-heading){display:inline-block;box-sizing:border-box;width:100%;margin:0;padding:.35rem 1rem .35rem 2rem;font-weight:400;font-size:1em;line-height:1.4}.vp-sidebar-item:not(.vp-sidebar-heading)+.vp-sidebar-children{padding-left:1rem;font-size:.95em}.vp-sidebar-children .vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading){padding:.25rem 1rem .25rem 1.75rem}.vp-sidebar-children .vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading).active{border-left-color:transparent;font-weight:500}a.vp-sidebar-heading+.vp-sidebar-children .vp-sidebar-item:not(.vp-sidebar-heading).active{border-left-color:transparent}.vp-sidebar-item.active:not(p.vp-sidebar-heading){border-left-color:var(--vp-c-accent);color:var(--vp-c-accent);font-weight:600}a.vp-sidebar-item{cursor:pointer}a.vp-sidebar-item:hover{color:var(--vp-c-accent)}.vp-sidebar-items{margin:0;padding:1.5rem 0;list-style-type:none}@media (max-width: 719px){.vp-sidebar-items{padding:1rem 0}}.vp-sidebar-items ul{margin:0;padding:0;list-style-type:none}.vp-sidebar-items a{display:inline-block}.vp-sidebar{position:fixed;top:var(--navbar-height);bottom:0;left:0;z-index:10;overflow-y:auto;box-sizing:border-box;width:var(--sidebar-width);margin:0;border-right:1px solid var(--vp-c-border);background-color:var(--vp-sidebar-c-bg);font-size:16px;transition:transform var(--vp-t-transform),background-color var(--vp-t-color),border-color var(--vp-t-color);scrollbar-color:var(--vp-c-accent-bg) var(--vp-c-gutter);scrollbar-width:thin}@media (max-width: 959px){.vp-sidebar{width:var(--sidebar-width-mobile);font-size:15px}}@media (max-width: 719px){.vp-sidebar{top:0;padding-top:var(--navbar-height);transform:translate(-100%)}}.vp-sidebar::-webkit-scrollbar{width:7px}.vp-sidebar::-webkit-scrollbar-track{background-color:var(--vp-c-gutter)}.vp-sidebar::-webkit-scrollbar-thumb{background-color:var(--vp-c-accent-bg)}.vp-sidebar .vp-navbar-items{display:none;padding:.5rem 0 .75rem;border-bottom:1px solid var(--vp-c-gutter);transition:border-color var(--vp-t-color)}@media (max-width: 719px){.vp-sidebar .vp-navbar-items{display:block}.vp-sidebar .vp-navbar-items .vp-navbar-dropdown-item a.route-link-active:after{top:calc(1rem - 2px)}}.vp-sidebar .vp-navbar-items ul{margin:0;padding:0;list-style-type:none}.vp-sidebar .vp-navbar-items a{font-weight:600}.vp-sidebar .vp-navbar-item{display:block;padding:.5rem 0 .5rem 1.5rem;font-size:1.1em;line-height:1.25rem}.vp-sidebar-mask{position:fixed;top:0;left:0;z-index:9;display:none;width:100vw;height:100vh}.vp-theme-container.no-navbar .vp-sidebar{top:0}@media (max-width: 719px){.vp-theme-container.no-navbar .vp-sidebar{padding-top:0}}.vp-theme-container.no-navbar .vp-page{padding-top:0}.vp-theme-container.no-navbar .theme-default-content h1,.vp-theme-container.no-navbar .theme-default-content h2,.vp-theme-container.no-navbar .theme-default-content h3,.vp-theme-container.no-navbar .theme-default-content h4,.vp-theme-container.no-navbar .theme-default-content h5,.vp-theme-container.no-navbar .theme-default-content h6{margin-top:1.5rem;padding-top:0}.vp-theme-container.no-sidebar .vp-sidebar{display:none}@media (max-width: 719px){.vp-theme-container.no-sidebar .vp-sidebar{display:block}}.vp-theme-container.no-sidebar .vp-page{padding-left:0}@media (max-width: 719px){.vp-theme-container.sidebar-open .vp-sidebar{transform:translate(0)}.vp-theme-container.sidebar-open .vp-sidebar-mask{display:block}}.fade-slide-y-enter-active{transition:all .2s ease}.fade-slide-y-leave-active{transition:all .2s cubic-bezier(1,.5,.8,1)}.fade-slide-y-enter-from,.fade-slide-y-leave-to{opacity:0;transform:translateY(10px)}.vp-theme-container[data-v-67c08c1d]{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-theme-container[data-v-67c08c1d]{padding:2rem}}:root{--vp-c-white: #fff;--vp-c-black: #000;--vp-c-grey-text: #656869;--vp-c-grey-hover: #e4e4e9;--vp-c-grey-bg: #ebebef;--vp-c-grey-soft: rgb(142 150 170 / 14%);--vp-c-indigo-text: #3451b2;--vp-c-indigo-hover: #3a5ccc;--vp-c-indigo-bg: #5672cd;--vp-c-indigo-soft: rgb(100 108 255 / 14%);--vp-c-purple-text: #6f42c1;--vp-c-purple-hover: #7e4cc9;--vp-c-purple-bg: #8e5cd9;--vp-c-purple-soft: rgb(159 122 234 / 14%);--vp-c-blue-text: #2888a7;--vp-c-blue-hover: #2d98ba;--vp-c-blue-bg: #2fa1c5;--vp-c-blue-soft: rgb(27 178 229 / 14%);--vp-c-green-text: #18794e;--vp-c-green-hover: #299764;--vp-c-green-bg: #30a46c;--vp-c-green-soft: rgb(16 185 129 / 14%);--vp-c-yellow-text: #915930;--vp-c-yellow-hover: #946300;--vp-c-yellow-bg: #c28100;--vp-c-yellow-soft: rgb(234 179 8 / 14%);--vp-c-red-text: #b8272c;--vp-c-red-hover: #d5393e;--vp-c-red-bg: #e0575b;--vp-c-red-soft: rgb(244 63 94 / 14%)}[data-theme=dark]{--vp-c-white: #000;--vp-c-black: #fff;--vp-c-grey-text: #939499;--vp-c-grey-hover: #414853;--vp-c-grey-bg: #32363f;--vp-c-grey-soft: rgb(101 117 133 / 16%);--vp-c-indigo-text: #a8b1ff;--vp-c-indigo-hover: #5c73e7;--vp-c-indigo-bg: #3e63dd;--vp-c-indigo-soft: rgb(100 108 255 / 16%);--vp-c-blue-text: #c9e8f2;--vp-c-blue-hover: #a6d9ea;--vp-c-blue-bg: #2785a3;--vp-c-blue-soft: rgb(27 178 229 / 16%);--vp-c-purple-text: #c8abfa;--vp-c-purple-hover: #a879e6;--vp-c-purple-bg: #8e5cd9;--vp-c-purple-soft: rgb(159 122 234 / 16%);--vp-c-green-text: #3dd68c;--vp-c-green-hover: #30a46c;--vp-c-green-bg: #298459;--vp-c-green-soft: rgb(16 185 129 / 16%);--vp-c-yellow-text: #f9b44e;--vp-c-yellow-hover: #da8b17;--vp-c-yellow-bg: #a46a0a;--vp-c-yellow-soft: rgb(234 179 8 / 16%);--vp-c-red-text: #f66f81;--vp-c-red-hover: #f14158;--vp-c-red-bg: #b62a3c;--vp-c-red-soft: rgb(244 63 94 / 16%)}:root{color-scheme:light}[data-theme=dark]{color-scheme:dark}html,body{background:var(--vp-c-bg, #fff);accent-color:var(--vp-c-accent, #299764);transition:background-color var(--vp-t-color)}html{font-size:16px;font-display:optional;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}@media print{html{font-size:12pt}}html[data-theme=dark]{color-scheme:dark}body{min-height:100vh;margin:0;padding:0;color:var(--vp-c-text, rgb(60, 60, 67));font-size:1rem;font-synthesis:style}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25;overflow-wrap:break-word}h1:focus-visible,h2:focus-visible,h3:focus-visible,h4:focus-visible,h5:focus-visible,h6:focus-visible{outline:none}h1{font-size:2rem}h2{padding-bottom:.3rem;border-bottom:1px solid var(--vp-c-gutter, #e2e2e3);font-size:1.65rem;transition:border-color var(--vp-t-color)}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:1.05rem}h6{font-size:1rem}p,ul,ol{line-height:1.6;overflow-wrap:break-word}@media print{p,ul,ol{line-height:1.5}}ul,ol{padding-inline-start:1.2em}a{color:var(--vp-c-accent, #299764);font-weight:500;text-decoration:none;overflow-wrap:break-word}a.header-anchor{position:relative;color:inherit;text-decoration:none}a.header-anchor:before{content:"¶";position:absolute;top:.4167em;left:-.75em;display:none;color:var(--vp-c-accent, #299764);font-size:.75em}[dir=rtl] a.header-anchor:before{right:-.75em}a.header-anchor:hover:before{display:block}a.header-anchor:focus-visible{outline:none}a.header-anchor:focus-visible:before{display:block;outline:auto}strong{font-weight:600}blockquote{margin:1rem 0;padding:.25rem 0 .25rem 1rem;border-inline-start:.2rem solid var(--vp-c-border-hard, #b8b8ba);color:var(--vp-c-text-mute, rgba(60, 60, 67, .78));font-size:1rem;overflow-wrap:break-word;transition:border-color var(--vp-t-color),color var(--vp-t-color)}blockquote>p{margin:0}hr{border:0;border-bottom:1px solid var(--vp-c-gutter, #e2e2e3);transition:border-color var(--vp-t-color)}:not(pre)>code{margin:0;padding:3px 6px;border-radius:4px;background:var(--vp-c-grey-soft, rgba(142, 150, 170, .14));font-size:.875em;overflow-wrap:break-word;transition:background-color var(--vp-t-color),color var(--vp-t-color)}p a code{color:var(--vp-c-accent, #299764);font-weight:400}table code{padding:.1rem .4rem}kbd{display:inline-block;min-width:1em;margin-inline:.125rem;padding:.25em;border:1px solid var(--vp-c-border, #c2c2c4);border-radius:.25em;box-shadow:1px 1px 4px 0 var(--vp-c-shadow, rgba(0, 0, 0, .15));line-height:1;letter-spacing:-.1em;text-align:center}table{display:block;overflow-x:auto;margin:1rem 0;border-collapse:collapse}tbody tr:nth-child(odd){background:var(--vp-c-bg-alt, #f6f8fa);transition:background-color var(--vp-t-color)}th,td{padding:.6em 1em;border:1px solid var(--vp-c-border-hard, #d1d4d7);transition:border-color var(--vp-t-color)}pre{text-align:left;direction:ltr;white-space:pre;word-spacing:normal;word-wrap:normal;word-break:normal;overflow-wrap:unset;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}@media print{pre{white-space:pre-wrap}}pre code{padding:0;border-radius:0}@page{margin:2cm;font-size:12pt;size:a4}@media print{*,:after,:before{box-shadow:none!important;text-shadow:none!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}a{color:inherit;font-weight:inherit!important;font-size:inherit!important;text-decoration:underline}a.header-anchor{text-decoration:none}abbr[title]:after{content:" (" attr(title) ")"}pre{border:1px solid #eee;white-space:pre-wrap!important}pre>code{white-space:pre-wrap!important}blockquote{border-inline-start:.2rem solid #ddd;color:inherit}blockquote,pre{orphans:5;widows:5}img,tr,canvas{page-break-inside:avoid}}@media (prefers-reduced-motion: reduce){*,:before,:after{background-attachment:initial!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important;animation-duration:1ms!important;animation-delay:-1ms!important;animation-iteration-count:1!important}}:root{--vp-c-accent: #299764;--vp-c-accent-bg: #3eaf7c;--vp-c-accent-hover: #4abf8a;--vp-c-accent-text: var(--vp-c-white);--vp-c-accent-soft: rgb(16 185 129 / 14%);--vp-c-bg: #fff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #fff;--vp-c-text: rgb(60 60 67);--vp-c-text-mute: rgb(60 60 67 / 78%);--vp-c-text-subtle: rgb(60 60 67 / 56%);--vp-c-gutter: #e2e2e3;--vp-c-border: #c2c2c4;--vp-c-border-hard: #b8b8ba;--vp-c-shadow: rgb(0 0 0 / 15%);--vp-c-control: rgb(142 150 170 / 10%);--vp-c-control-hover: rgb(142 150 170 / 16%);--vp-c-control-disabled: #eaeaea;--vp-navbar-c-bg: var(--vp-c-bg);--vp-sidebar-c-bg: var(--vp-c-bg);--vp-c-code-tab-title: var(--code-c-text, rgb(255 255 255 / 90%));--vp-c-code-tab-bg: var(--code-bg-color, var(--code-c-bg));--vp-c-code-tab-active: var(--vp-c-accent);--badge-c-tip-text: var(--vp-c-green-text);--badge-c-tip-bg: var(--vp-c-green-soft);--badge-c-warning-text: var(--vp-c-yellow-text);--badge-c-warning-bg: var(--vp-c-yellow-soft);--badge-c-danger-text: var(--vp-c-red-text);--badge-c-danger-bg: var(--vp-c-red-soft);--badge-c-important-text: var(--vp-c-purple-text);--badge-c-important-bg: var(--vp-c-purple-soft);--badge-c-info-text: var(--vp-c-indigo-text);--badge-c-info-bg: var(--vp-c-indigo-soft);--badge-c-note-text: var(--vp-c-grey-text);--badge-c-note-bg: var(--vp-c-grey-soft);--font-family: -apple-system, "BlinkMacSystemFont", "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--navbar-height: 3.6rem;--navbar-padding-v: .7rem;--navbar-padding-h: 1.5rem;--sidebar-width: 20rem;--sidebar-width-mobile: calc(var(--sidebar-width) * .82);--content-width: 740px;--homepage-width: 960px;--header-offset: var(--navbar-height);--vp-t-color: .3s ease;--vp-t-transform: .3s ease;--external-link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M0 0h24v24H0V0z' fill='none'/%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z'/%3E%3C/svg%3E");--external-link-c-icon: var(--vp-c-text-mute)}[data-theme=dark]{--vp-c-accent: #3dd68c;--vp-c-accent-bg: #3aa675;--vp-c-accent-hover: #349469;--vp-c-accent-soft: rgb(16 185 129 / 16%);--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-text: rgb(235 235 245 / 86%);--vp-c-text-mute: rgb(235 235 245 / 60%);--vp-c-text-subtle: rgb(235 235 245 / 38%);--vp-c-gutter: #000;--vp-c-border: #3c3f44;--vp-c-border-hard: #45484e;--vp-c-shadow: rgb(0 0 0 / 30%);--vp-c-control: rgb(101 117 133 / 12%);--vp-c-control-hover: rgb(101 117 133 / 18%);--vp-c-control-disabled: #363636}body{font-family:var(--font-family)}code{font-family:var(--code-font-family)}.theme-default-content h1,.theme-default-content h2,.theme-default-content h3,.theme-default-content h4,.theme-default-content h5,.theme-default-content h6{margin-top:calc(.5rem - var(--header-offset));margin-bottom:0;padding-top:calc(1rem + var(--header-offset))}.theme-default-content h1:first-child,.theme-default-content h2:first-child,.theme-default-content h3:first-child,.theme-default-content h4:first-child,.theme-default-content h5:first-child,.theme-default-content h6:first-child{margin-bottom:1rem}.theme-default-content h1:first-child+p,.theme-default-content h1:first-child+pre,.theme-default-content h1:first-child+.custom-container,.theme-default-content h2:first-child+p,.theme-default-content h2:first-child+pre,.theme-default-content h2:first-child+.custom-container,.theme-default-content h3:first-child+p,.theme-default-content h3:first-child+pre,.theme-default-content h3:first-child+.custom-container,.theme-default-content h4:first-child+p,.theme-default-content h4:first-child+pre,.theme-default-content h4:first-child+.custom-container,.theme-default-content h5:first-child+p,.theme-default-content h5:first-child+pre,.theme-default-content h5:first-child+.custom-container,.theme-default-content h6:first-child+p,.theme-default-content h6:first-child+pre,.theme-default-content h6:first-child+.custom-container{margin-top:2rem}@media (max-width: 419px){.theme-default-content h1{font-size:1.9rem}}.theme-default-content a:not(.header-anchor){text-decoration:underline}.theme-default-content img{max-width:100%}div[class*=language-]{margin:.75rem 0;transition:background-color var(--vp-t-color),color var(--vp-t-color)}@media (max-width: 419px){div[class*=language-]{--code-border-radius: 0;margin:.75rem -1.5rem}}div[class*=language-] .line.diff,div[class*=language-] .line.highlighted{transition:background-color var(--vp-t-color)}.table-of-contents .vp-badge{vertical-align:middle}.arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s}[data-theme=dark] .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.arrow.down{transform:rotate(180deg)}.arrow.right{transform:rotate(90deg)}.arrow.left{transform:rotate(-90deg)}.vp-external-link-icon:after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-c-icon);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.external-link-icon .external-link:after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-c-icon);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}.external-link-icon .theme-default-content a[href*="://"]:not(.no-external-link-icon):after,.external-link-icon .theme-default-content a[target=_blank]:not(.no-external-link-icon):after{content:"";display:inline-block;flex-shrink:0;width:11px;height:11px;margin-top:-1px;margin-left:4px;background:var(--external-link-c-icon);-webkit-mask-image:var(--external-link-icon);mask-image:var(--external-link-icon)}@media screen and (max-width: 719px){.vp-hide-mobile{display:none}}.vp-comment{max-width:var(--content-width);margin:0 auto;padding:2rem 2.5rem}@media (max-width: 959px){.vp-comment{padding:2rem}}@media (max-width: 419px){.vp-comment{padding:1.5rem}}.vp-navbar .DocSearch{transition:background-color var(--vp-t-color)}.vp-navbar .search-box{vertical-align:top;flex:0 0 auto}@media screen and (max-width: 719px){.hint-container{margin-inline:-.75rem}}:root{--search-c-bg: var(--vp-c-bg);--search-c-accent: var(--vp-c-accent);--search-c-text: var(--vp-c-text);--search-c-border: var(--vp-c-gutter);--search-c-item-text: var(--vp-c-text-subtle);--search-c-item-focus: var(--vp-c-bg-alt);--search-input-width: 8rem;--search-result-width: 20rem}.search-box{position:relative;display:inline-block;margin-left:1rem}@media print{.search-box{display:none}}.search-box input{display:inline-block;width:var(--search-input-width);height:2rem;padding:0 .5rem 0 2rem;border:1px solid var(--search-c-border);border-radius:2rem;background:var(--search-c-bg) url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='12'%20height='13'%3e%3cg%20stroke-width='2'%20stroke='%23aaa'%20fill='none'%3e%3cpath%20d='M11.29%2011.71l-4-4'/%3e%3ccircle%20cx='5'%20cy='5'%20r='4'/%3e%3c/g%3e%3c/svg%3e") .6rem .5rem no-repeat;background-size:1rem;color:var(--search-c-text);outline:none;font-size:.9rem;line-height:2rem;cursor:text;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:all ease .3s}@media (max-width: 719px){.search-box input{position:relative;width:0;border-color:#0000;cursor:pointer}}.search-box input:focus{border-color:var(--search-c-accent);cursor:auto}@media (max-width: 719px){.search-box input:focus{left:0;width:10rem;cursor:text}}@media (max-width: 419px){.search-box input:focus{width:8rem}}.search-box .suggestions{position:absolute;top:2rem;right:0;width:var(--search-result-width);padding:.4rem;border:1px solid var(--search-c-border);border-radius:6px;background:var(--search-c-bg);list-style-type:none}@media (max-width: 419px){.search-box .suggestions{right:-.5rem;width:calc(100vw - 4rem)}}.search-box .suggestion{padding:.4rem .6rem;border-radius:4px;line-height:1.4;cursor:pointer}.search-box .suggestion a{color:var(--search-c-item-text);white-space:normal}.search-box .suggestion.focus{background-color:var(--search-c-item-focus)}.search-box .suggestion.focus a{color:var(--search-c-accent)}.search-box .suggestion .page-title{font-weight:600}.search-box .suggestion .page-header{margin-left:.25em;font-size:.9em} diff --git a/guide/account.html b/guide/account.html new file mode 100644 index 0000000..cfcf244 --- /dev/null +++ b/guide/account.html @@ -0,0 +1,78 @@ + + + + + + + + + 账号管理 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/audit.html b/guide/audit.html new file mode 100644 index 0000000..fe9ba32 --- /dev/null +++ b/guide/audit.html @@ -0,0 +1,119 @@ + + + + + + + + + 内容审核 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/group.html b/guide/group.html new file mode 100644 index 0000000..e9a2705 --- /dev/null +++ b/guide/group.html @@ -0,0 +1,394 @@ + + + + + + + + + 群组管理 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/index.html b/guide/index.html new file mode 100644 index 0000000..b64cfaa --- /dev/null +++ b/guide/index.html @@ -0,0 +1,43 @@ + + + + + + + + + 介绍 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/member.html b/guide/member.html new file mode 100644 index 0000000..87b456b --- /dev/null +++ b/guide/member.html @@ -0,0 +1,112 @@ + + + + + + + + + 全员推送 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/message.html b/guide/message.html new file mode 100644 index 0000000..8488d30 --- /dev/null +++ b/guide/message.html @@ -0,0 +1,164 @@ + + + + + + + + + 单聊消息 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/official_account.html b/guide/official_account.html new file mode 100644 index 0000000..1b85790 --- /dev/null +++ b/guide/official_account.html @@ -0,0 +1,108 @@ + + + + + + + + + 公众号管理 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/operation_1.html b/guide/operation_1.html new file mode 100644 index 0000000..58e75da --- /dev/null +++ b/guide/operation_1.html @@ -0,0 +1,53 @@ + + + + + + + + + 全局禁言管理 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/operation_2.html b/guide/operation_2.html new file mode 100644 index 0000000..2fb2b7b --- /dev/null +++ b/guide/operation_2.html @@ -0,0 +1,76 @@ + + + + + + + + + 运营管理 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/profile.html b/guide/profile.html new file mode 100644 index 0000000..6731b4b --- /dev/null +++ b/guide/profile.html @@ -0,0 +1,62 @@ + + + + + + + + + 资料管理 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/quickstart.html b/guide/quickstart.html new file mode 100644 index 0000000..41bfe0c --- /dev/null +++ b/guide/quickstart.html @@ -0,0 +1,76 @@ + + + + + + + + + 快速上手 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/recent_contact.html b/guide/recent_contact.html new file mode 100644 index 0000000..9645c7a --- /dev/null +++ b/guide/recent_contact.html @@ -0,0 +1,121 @@ + + + + + + + + + 最近联系人 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/robot.html b/guide/robot.html new file mode 100644 index 0000000..651bdbe --- /dev/null +++ b/guide/robot.html @@ -0,0 +1,56 @@ + + + + + + + + + 机器人 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/guide/sns.html b/guide/sns.html new file mode 100644 index 0000000..7c95e1f --- /dev/null +++ b/guide/sns.html @@ -0,0 +1,179 @@ + + + + + + + + + 关系链管理 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..465e4e2 --- /dev/null +++ b/index.html @@ -0,0 +1,43 @@ + + + + + + + + + 首页 | 腾讯云 IM 服务端 Java SDK 使用文档 + + + + + +
+ + +