@gkd-kit/docs 0.0.1746214530900 → 0.0.1746215876468
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vitepress/dist/404.html +8 -8
- package/.vitepress/dist/404_.md +8 -8
- package/.vitepress/dist/_config.json +1 -1
- package/.vitepress/dist/api/index.html +12 -12
- package/.vitepress/dist/api/index_.md +12 -12
- package/.vitepress/dist/api/interfaces/RawApp.html +12 -12
- package/.vitepress/dist/api/interfaces/RawAppGroup.html +18 -18
- package/.vitepress/dist/api/interfaces/RawAppGroup_.md +18 -18
- package/.vitepress/dist/api/interfaces/RawAppRule.html +21 -21
- package/.vitepress/dist/api/interfaces/RawAppRuleProps.html +12 -12
- package/.vitepress/dist/api/interfaces/RawAppRuleProps_.md +12 -12
- package/.vitepress/dist/api/interfaces/RawAppRule_.md +21 -21
- package/.vitepress/dist/api/interfaces/RawApp_.md +12 -12
- package/.vitepress/dist/api/interfaces/RawCategory.html +12 -12
- package/.vitepress/dist/api/interfaces/RawCategory_.md +12 -12
- package/.vitepress/dist/api/interfaces/RawCommonProps.html +14 -14
- package/.vitepress/dist/api/interfaces/RawCommonProps_.md +14 -14
- package/.vitepress/dist/api/interfaces/RawGlobalApp.html +12 -12
- package/.vitepress/dist/api/interfaces/RawGlobalApp_.md +12 -12
- package/.vitepress/dist/api/interfaces/RawGlobalGroup.html +14 -14
- package/.vitepress/dist/api/interfaces/RawGlobalGroup_.md +14 -14
- package/.vitepress/dist/api/interfaces/RawGlobalRule.html +21 -21
- package/.vitepress/dist/api/interfaces/RawGlobalRuleProps.html +12 -12
- package/.vitepress/dist/api/interfaces/RawGlobalRuleProps_.md +12 -12
- package/.vitepress/dist/api/interfaces/RawGlobalRule_.md +21 -21
- package/.vitepress/dist/api/interfaces/RawGroupProps.html +14 -14
- package/.vitepress/dist/api/interfaces/RawGroupProps_.md +14 -14
- package/.vitepress/dist/api/interfaces/RawRuleProps.html +21 -21
- package/.vitepress/dist/api/interfaces/RawRuleProps_.md +21 -21
- package/.vitepress/dist/api/interfaces/RawSubscription.html +13 -13
- package/.vitepress/dist/api/interfaces/RawSubscription_.md +13 -13
- package/.vitepress/dist/api/type-aliases/IArray.html +13 -13
- package/.vitepress/dist/api/type-aliases/IArray_.md +13 -13
- package/.vitepress/dist/api/type-aliases/Integer.html +13 -13
- package/.vitepress/dist/api/type-aliases/Integer_.md +13 -13
- package/.vitepress/dist/api/type-aliases/Position.html +16 -16
- package/.vitepress/dist/api/type-aliases/Position_.md +16 -16
- package/.vitepress/dist/assets/api_index.md.Bf0KFfJx.js +1 -0
- package/.vitepress/dist/assets/api_index.md.Bf0KFfJx.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawApp.md.IBITM3kc.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawApp.md.IBITM3kc.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.CoGi4LQd.js +22 -0
- package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.CoGi4LQd.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.DatXp-em.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.DatXp-em.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawAppRuleProps.md.DO-QMZAC.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawAppRuleProps.md.DO-QMZAC.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawCategory.md.e9LIHsw-.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawCategory.md.e9LIHsw-.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.CqdT_QXA.js +5 -0
- package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.CqdT_QXA.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawGlobalApp.md.CinQMLSN.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawGlobalApp.md.CinQMLSN.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawGlobalGroup.md.D6HdKv7q.js +5 -0
- package/.vitepress/dist/assets/api_interfaces_RawGlobalGroup.md.D6HdKv7q.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.DuE4i62g.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.DuE4i62g.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRuleProps.md.DcNlku1G.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRuleProps.md.DcNlku1G.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawGroupProps.md.Dmrx6LKW.js +5 -0
- package/.vitepress/dist/assets/api_interfaces_RawGroupProps.md.Dmrx6LKW.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.D09T_bVF.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.D09T_bVF.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawSubscription.md.DNuJq1Hc.js +4 -0
- package/.vitepress/dist/assets/api_interfaces_RawSubscription.md.DNuJq1Hc.lean.js +1 -0
- package/.vitepress/dist/assets/{api_type-aliases_IArray.md.BV1HveiZ.js → api_type-aliases_IArray.md.DkP49flf.js} +2 -2
- package/.vitepress/dist/assets/api_type-aliases_IArray.md.DkP49flf.lean.js +1 -0
- package/.vitepress/dist/assets/api_type-aliases_Integer.md.Pjff9oE4.js +2 -0
- package/.vitepress/dist/assets/{api_type-aliases_Integer.md.D5K7JFq4.lean.js → api_type-aliases_Integer.md.Pjff9oE4.lean.js} +1 -1
- package/.vitepress/dist/assets/api_type-aliases_Position.md.Idumrk8e.js +13 -0
- package/.vitepress/dist/assets/api_type-aliases_Position.md.Idumrk8e.lean.js +1 -0
- package/.vitepress/dist/assets/app.DE-zbWsW.js +1 -0
- package/.vitepress/dist/assets/chunks/@localSearchIndexroot.KHMydUBT.js +1 -0
- package/.vitepress/dist/assets/chunks/FileSaver.min.BxHcgHsl.js +1 -0
- package/.vitepress/dist/assets/chunks/VPLocalSearchBox.Dv2rKtnd.js +8 -0
- package/.vitepress/dist/assets/chunks/framework.CBQNBEo4.js +18 -0
- package/.vitepress/dist/assets/chunks/{index.BMeD7MBc.js → index.YMDd8FRl.js} +27 -27
- package/.vitepress/dist/assets/chunks/theme.De5ivgzu.js +1 -0
- package/.vitepress/dist/assets/guide_example.md.wXnyIsga.js +1 -0
- package/.vitepress/dist/assets/guide_example.md.wXnyIsga.lean.js +1 -0
- package/.vitepress/dist/assets/guide_external.md.CYkiHxBU.js +1 -0
- package/.vitepress/dist/assets/guide_external.md.CYkiHxBU.lean.js +1 -0
- package/.vitepress/dist/assets/guide_faq.md.D2Dn9gHb.js +21 -0
- package/.vitepress/dist/assets/guide_faq.md.D2Dn9gHb.lean.js +1 -0
- package/.vitepress/dist/assets/guide_index.md.BAotlOHm.js +1 -0
- package/.vitepress/dist/assets/guide_index.md.BAotlOHm.lean.js +1 -0
- package/.vitepress/dist/assets/guide_node.md.uG2ZNubO.js +1 -0
- package/.vitepress/dist/assets/guide_node.md.uG2ZNubO.lean.js +1 -0
- package/.vitepress/dist/assets/guide_optimize.md.CmH-gARi.js +1 -0
- package/.vitepress/dist/assets/guide_optimize.md.CmH-gARi.lean.js +1 -0
- package/.vitepress/dist/assets/guide_privacy.md.EQVZQGYw.js +1 -0
- package/.vitepress/dist/assets/guide_privacy.md.EQVZQGYw.lean.js +1 -0
- package/.vitepress/dist/assets/guide_selector.md.Dcb9s8ra.js +12 -0
- package/.vitepress/dist/assets/guide_selector.md.Dcb9s8ra.lean.js +1 -0
- package/.vitepress/dist/assets/guide_snapshot.md.Bh1E-CuX.js +1 -0
- package/.vitepress/dist/assets/guide_snapshot.md.Bh1E-CuX.lean.js +1 -0
- package/.vitepress/dist/assets/{guide_subscription.md.DYtHNPwp.js → guide_subscription.md.2DVhmK64.js} +6 -6
- package/.vitepress/dist/assets/guide_subscription.md.2DVhmK64.lean.js +1 -0
- package/.vitepress/dist/assets/guide_what-is-gkd.md.CMPCNCRp.js +1 -0
- package/.vitepress/dist/assets/guide_what-is-gkd.md.CMPCNCRp.lean.js +1 -0
- package/.vitepress/dist/assets/{index.md.7rhzn7Kn.js → index.md.DRBJ5-D-.js} +1 -1
- package/.vitepress/dist/assets/{index.md.7rhzn7Kn.lean.js → index.md.DRBJ5-D-.lean.js} +1 -1
- package/.vitepress/dist/assets/style.CuzzImqp.css +1 -0
- package/.vitepress/dist/guide/example.html +12 -12
- package/.vitepress/dist/guide/example_.md +12 -12
- package/.vitepress/dist/guide/external.html +12 -12
- package/.vitepress/dist/guide/external_.md +12 -12
- package/.vitepress/dist/guide/faq.html +13 -13
- package/.vitepress/dist/guide/faq_.md +13 -13
- package/.vitepress/dist/guide/index.html +12 -12
- package/.vitepress/dist/guide/index_.md +12 -12
- package/.vitepress/dist/guide/node.html +12 -12
- package/.vitepress/dist/guide/node_.md +12 -12
- package/.vitepress/dist/guide/optimize.html +12 -12
- package/.vitepress/dist/guide/optimize_.md +12 -12
- package/.vitepress/dist/guide/privacy.html +12 -12
- package/.vitepress/dist/guide/privacy_.md +12 -12
- package/.vitepress/dist/guide/selector.html +18 -18
- package/.vitepress/dist/guide/selector_.md +18 -18
- package/.vitepress/dist/guide/snapshot.html +12 -12
- package/.vitepress/dist/guide/snapshot_.md +12 -12
- package/.vitepress/dist/guide/subscription.html +17 -17
- package/.vitepress/dist/guide/subscription_.md +17 -17
- package/.vitepress/dist/guide/what-is-gkd.html +12 -12
- package/.vitepress/dist/guide/what-is-gkd_.md +12 -12
- package/.vitepress/dist/hashmap.json +1 -1
- package/.vitepress/dist/index.html +12 -12
- package/.vitepress/dist/index_.md +12 -12
- package/_config.json +1 -1
- package/package.json +1 -1
- package/.vitepress/dist/assets/api_index.md.SPk0I_cG.js +0 -1
- package/.vitepress/dist/assets/api_index.md.SPk0I_cG.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawApp.md.6OGjSK39.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawApp.md.6OGjSK39.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.CafPqXf8.js +0 -22
- package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.CafPqXf8.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.iYaIvuG9.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.iYaIvuG9.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawAppRuleProps.md.BHHzsHfF.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawAppRuleProps.md.BHHzsHfF.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawCategory.md.Bvvb_IP6.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawCategory.md.Bvvb_IP6.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.BOvk92j_.js +0 -5
- package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.BOvk92j_.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalApp.md.VRaORJOL.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalApp.md.VRaORJOL.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalGroup.md.DYYGIiKZ.js +0 -5
- package/.vitepress/dist/assets/api_interfaces_RawGlobalGroup.md.DYYGIiKZ.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.44L0hx4S.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.44L0hx4S.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRuleProps.md.BadeTnQB.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRuleProps.md.BadeTnQB.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGroupProps.md.B-GC65bR.js +0 -5
- package/.vitepress/dist/assets/api_interfaces_RawGroupProps.md.B-GC65bR.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.QnN60O_u.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.QnN60O_u.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawSubscription.md.CrYsZ3Kp.js +0 -4
- package/.vitepress/dist/assets/api_interfaces_RawSubscription.md.CrYsZ3Kp.lean.js +0 -1
- package/.vitepress/dist/assets/api_type-aliases_IArray.md.BV1HveiZ.lean.js +0 -1
- package/.vitepress/dist/assets/api_type-aliases_Integer.md.D5K7JFq4.js +0 -2
- package/.vitepress/dist/assets/api_type-aliases_Position.md.BTlWb-br.js +0 -13
- package/.vitepress/dist/assets/api_type-aliases_Position.md.BTlWb-br.lean.js +0 -1
- package/.vitepress/dist/assets/app.CixdghKV.js +0 -1
- package/.vitepress/dist/assets/chunks/@localSearchIndexroot.C7-frqcr.js +0 -1
- package/.vitepress/dist/assets/chunks/FileSaver.min.CvNQQnEe.js +0 -1
- package/.vitepress/dist/assets/chunks/VPLocalSearchBox.BbPG_Jzh.js +0 -8
- package/.vitepress/dist/assets/chunks/framework.DE7acwfO.js +0 -18
- package/.vitepress/dist/assets/chunks/theme.BChCNnNC.js +0 -1
- package/.vitepress/dist/assets/guide_example.md.D-NQkNj-.js +0 -1
- package/.vitepress/dist/assets/guide_example.md.D-NQkNj-.lean.js +0 -1
- package/.vitepress/dist/assets/guide_external.md.DWUXx7Un.js +0 -1
- package/.vitepress/dist/assets/guide_external.md.DWUXx7Un.lean.js +0 -1
- package/.vitepress/dist/assets/guide_faq.md.CwpXoXH-.js +0 -21
- package/.vitepress/dist/assets/guide_faq.md.CwpXoXH-.lean.js +0 -1
- package/.vitepress/dist/assets/guide_index.md.BvKfxqem.js +0 -1
- package/.vitepress/dist/assets/guide_index.md.BvKfxqem.lean.js +0 -1
- package/.vitepress/dist/assets/guide_node.md.DAtT86dU.js +0 -1
- package/.vitepress/dist/assets/guide_node.md.DAtT86dU.lean.js +0 -1
- package/.vitepress/dist/assets/guide_optimize.md.BSxtrrEA.js +0 -1
- package/.vitepress/dist/assets/guide_optimize.md.BSxtrrEA.lean.js +0 -1
- package/.vitepress/dist/assets/guide_privacy.md.D1905QvW.js +0 -1
- package/.vitepress/dist/assets/guide_privacy.md.D1905QvW.lean.js +0 -1
- package/.vitepress/dist/assets/guide_selector.md.BzeIG0u0.js +0 -12
- package/.vitepress/dist/assets/guide_selector.md.BzeIG0u0.lean.js +0 -1
- package/.vitepress/dist/assets/guide_snapshot.md.OsNjzptW.js +0 -1
- package/.vitepress/dist/assets/guide_snapshot.md.OsNjzptW.lean.js +0 -1
- package/.vitepress/dist/assets/guide_subscription.md.DYtHNPwp.lean.js +0 -1
- package/.vitepress/dist/assets/guide_what-is-gkd.md.ARqDeNY2.js +0 -1
- package/.vitepress/dist/assets/guide_what-is-gkd.md.ARqDeNY2.lean.js +0 -1
- package/.vitepress/dist/assets/style.Bm6EfVAK.css +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as b,o as r,c as p,r as v,n as A,a as ae,t as N,b as P,w as h,e as k,T as Oe,_ as S,u as Ct,i as Ht,f as Et,g as Fe,h as y,j as d,k as l,l as re,m as Ne,p as H,q as z,s as ve,v as q,x as We,y as Re,z as Bt,A as Dt,B as le,F as B,C as j,D,E as Le,G as $,H as pt,I as J,J as Se,K as ne,L as me,M as Ot,N as $e,O as Ae,P as ge,Q as vt,R as Ve,S as Ft,U as Wt,V as fe,W as ht,X as ft,Y as Rt,Z as jt,$ as zt,a0 as Ce,a1 as Ut,a2 as K,a3 as Gt,a4 as R,a5 as qt,a6 as je,a7 as mt,a8 as xt,a9 as Yt,aa as Xt,ab as ot,ac as gt,ad as Kt,ae as Jt,af as Qt,ag as Zt}from"./framework.DE7acwfO.js";const en=b({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(r(),p("span",{class:A(["VPBadge",e.type])},[v(e.$slots,"default",{},()=>[ae(N(e.text),1)])],2))}}),tn={key:0,class:"VPBackdrop"},nn=b({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(r(),P(Oe,{name:"fade"},{default:h(()=>[e.show?(r(),p("div",tn)):k("",!0)]),_:1}))}}),on=S(nn,[["__scopeId","data-v-0333f189"]]),I=Ct;function sn(n,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(n,e):(n(),(o=!0)&&setTimeout(()=>o=!1,e))}}function He(n){return n.startsWith("/")?n:`/${n}`}function ze(n){const{pathname:e,search:t,hash:o,protocol:s}=new URL(n,"http://a.com");if(Ht(n)||n.startsWith("#")||!s.startsWith("http")||!Et(e))return n;const{site:a}=I(),i=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,a.value.cleanUrls?"":".html")}${t}${o}`);return Fe(i)}function _e({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:o,theme:s,hash:a}=I(),i=y(()=>{var u,f;return{label:(u=e.value.locales[t.value])==null?void 0:u.label,link:((f=e.value.locales[t.value])==null?void 0:f.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([u,f])=>i.value.label===f.label?[]:{text:f.label,link:an(f.link||(u==="root"?"/":`/${u}/`),s.value.i18nRouting!==!1&&n,o.value.relativePath.slice(i.value.link.length-1),!e.value.cleanUrls)+a.value})),currentLang:i}}function an(n,e,t,o){return e?n.replace(/\/$/,"")+He(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):n}const rn={class:"NotFound"},ln={class:"code"},cn={class:"title"},un={class:"quote"},dn={class:"action"},pn=["href","aria-label"],vn=b({__name:"NotFound",setup(n){const{theme:e}=I(),{currentLang:t}=_e();return(o,s)=>{var a,i,c,u,f;return r(),p("div",rn,[d("p",ln,N(((a=l(e).notFound)==null?void 0:a.code)??"404"),1),d("h1",cn,N(((i=l(e).notFound)==null?void 0:i.title)??"PAGE NOT FOUND"),1),s[0]||(s[0]=d("div",{class:"divider"},null,-1)),d("blockquote",un,N(((c=l(e).notFound)==null?void 0:c.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",dn,[d("a",{class:"link",href:l(Fe)(l(t).link),"aria-label":((u=l(e).notFound)==null?void 0:u.linkLabel)??"go to home"},N(((f=l(e).notFound)==null?void 0:f.linkText)??"Take me home"),9,pn)])])}}}),hn=S(vn,[["__scopeId","data-v-ab689cd0"]]);function _t(n,e){if(Array.isArray(n))return ke(n);if(n==null)return[];e=He(e);const t=Object.keys(n).sort((s,a)=>a.split("/").length-s.split("/").length).find(s=>e.startsWith(He(s))),o=t?n[t]:[];return Array.isArray(o)?ke(o):ke(o.items,o.base)}function fn(n){const e=[];let t=0;for(const o in n){const s=n[o];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function mn(n){const e=[];function t(o){for(const s of o)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(n),e}function Ee(n,e){return Array.isArray(e)?e.some(t=>Ee(n,t)):re(n,e.link)?!0:e.items?Ee(n,e.items):!1}function ke(n,e){return[...n].map(t=>{const o={...t},s=o.base||e;return s&&o.link&&(o.link=s+o.link),o.items&&(o.items=ke(o.items,s)),o})}function ee(){const{frontmatter:n,page:e,theme:t}=I(),o=Ne("(min-width: 960px)"),s=H(!1),a=y(()=>{const M=t.value.sidebar,V=e.value.relativePath;return M?_t(M,V):[]}),i=H(a.value);z(a,(M,V)=>{JSON.stringify(M)!==JSON.stringify(V)&&(i.value=a.value)});const c=y(()=>n.value.sidebar!==!1&&i.value.length>0&&n.value.layout!=="home"),u=y(()=>f?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),f=y(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),_=y(()=>c.value&&o.value),m=y(()=>c.value?fn(i.value):[]);function g(){s.value=!0}function w(){s.value=!1}function T(){s.value?w():g()}return{isOpen:s,sidebar:i,sidebarGroups:m,hasSidebar:c,hasAside:f,leftAside:u,isSidebarEnabled:_,open:g,close:w,toggle:T}}function gn(n,e){let t;ve(()=>{t=n.value?document.activeElement:void 0}),q(()=>{window.addEventListener("keyup",o)}),We(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function _n(n){const{page:e,hash:t}=I(),o=H(!1),s=y(()=>n.value.collapsed!=null),a=y(()=>!!n.value.link),i=H(!1),c=()=>{i.value=re(e.value.relativePath,n.value.link)};z([e,n,t],c),q(c);const u=y(()=>i.value?!0:n.value.items?Ee(e.value.relativePath,n.value.items):!1),f=y(()=>!!(n.value.items&&n.value.items.length));ve(()=>{o.value=!!(s.value&&n.value.collapsed)}),Re(()=>{(i.value||u.value)&&(o.value=!1)});function _(){s.value&&(o.value=!o.value)}return{collapsed:o,collapsible:s,isLink:a,isActiveLink:i,hasActiveLink:u,hasChildren:f,toggle:_}}function bn(){const{hasSidebar:n}=ee(),e=Ne("(min-width: 960px)"),t=Ne("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const kn=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,Be=[];function bt(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function Ue(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{element:t,title:yn(t),link:"#"+t.id,level:o}});return $n(e,n)}function yn(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(kn.test(t.className))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function $n(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return Ln(n,o,s)}function wn(n,e){const{isAsideEnabled:t}=bn(),o=sn(a,100);let s=null;q(()=>{requestAnimationFrame(a),window.addEventListener("scroll",o)}),Bt(()=>{i(location.hash)}),We(()=>{window.removeEventListener("scroll",o)});function a(){if(!t.value)return;const c=window.scrollY,u=window.innerHeight,f=document.body.offsetHeight,_=Math.abs(c+u-f)<1,m=Be.map(({element:w,link:T})=>({link:T,top:Pn(w)})).filter(({top:w})=>!Number.isNaN(w)).sort((w,T)=>w.top-T.top);if(!m.length){i(null);return}if(c<1){i(null);return}if(_){i(m[m.length-1].link);return}let g=null;for(const{link:w,top:T}of m){if(T>c+Dt()+4)break;g=w}i(g)}function i(c){s&&s.classList.remove("active"),c==null?s=null:s=n.value.querySelector(`a[href="${decodeURIComponent(c)}"]`);const u=s;u?(u.classList.add("active"),e.value.style.top=u.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Pn(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}function Ln(n,e,t){Be.length=0;const o=[],s=[];return n.forEach(a=>{const i={...a,children:[]};let c=s[s.length-1];for(;c&&c.level>=i.level;)s.pop(),c=s[s.length-1];if(i.element.classList.contains("ignore-header")||c&&"shouldIgnore"in c){s.push({level:i.level,shouldIgnore:!0});return}i.level>t||i.level<e||(Be.push({element:i.element,link:i.link}),c?c.children.push(i):o.push(i),s.push(i))}),o}const Sn=["href","title"],Vn=b({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(n){function e({target:t}){const o=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(o));s==null||s.focus({preventScroll:!0})}return(t,o)=>{const s=le("VPDocOutlineItem",!0);return r(),p("ul",{class:A(["VPDocOutlineItem",t.root?"root":"nested"])},[(r(!0),p(B,null,j(t.headers,({children:a,link:i,title:c})=>(r(),p("li",null,[d("a",{class:"outline-link",href:i,onClick:e,title:c},N(c),9,Sn),a!=null&&a.length?(r(),P(s,{key:0,headers:a},null,8,["headers"])):k("",!0)]))),256))],2)}}}),kt=S(Vn,[["__scopeId","data-v-ff3d6db1"]]),Tn={class:"content"},In={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Mn=b({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=I(),o=D([]);Le(()=>{o.value=Ue(e.value.outline??t.value.outline)});const s=H(),a=H();return wn(s,a),(i,c)=>(r(),p("nav",{"aria-labelledby":"doc-outline-aria-label",class:A(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:s},[d("div",Tn,[d("div",{class:"outline-marker",ref_key:"marker",ref:a},null,512),d("div",In,N(l(bt)(l(t))),1),$(kt,{headers:o.value,root:!0},null,8,["headers"])])],2))}}),Nn=S(Mn,[["__scopeId","data-v-3331be61"]]),An={class:"VPDocAsideCarbonAds"},Cn=b({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,o)=>(r(),p("div",An,[$(l(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Hn={class:"VPDocAside"},En=b({__name:"VPDocAside",setup(n){const{theme:e}=I();return(t,o)=>(r(),p("div",Hn,[v(t.$slots,"aside-top",{},void 0,!0),v(t.$slots,"aside-outline-before",{},void 0,!0),$(Nn),v(t.$slots,"aside-outline-after",{},void 0,!0),o[0]||(o[0]=d("div",{class:"spacer"},null,-1)),v(t.$slots,"aside-ads-before",{},void 0,!0),l(e).carbonAds?(r(),P(Cn,{key:0,"carbon-ads":l(e).carbonAds},null,8,["carbon-ads"])):k("",!0),v(t.$slots,"aside-ads-after",{},void 0,!0),v(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Bn=S(En,[["__scopeId","data-v-e20f20cf"]]);function Dn(){const{theme:n,page:e}=I();return y(()=>{const{text:t="Edit this page",pattern:o=""}=n.value.editLink||{};let s;return typeof o=="function"?s=o(e.value):s=o.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function On(){const{page:n,theme:e,frontmatter:t}=I();return y(()=>{var f,_,m,g,w,T,M,V;const o=_t(e.value.sidebar,n.value.relativePath),s=mn(o),a=Fn(s,C=>C.link.replace(/[?#].*$/,"")),i=a.findIndex(C=>re(n.value.relativePath,C.link)),c=((f=e.value.docFooter)==null?void 0:f.prev)===!1&&!t.value.prev||t.value.prev===!1,u=((_=e.value.docFooter)==null?void 0:_.next)===!1&&!t.value.next||t.value.next===!1;return{prev:c?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((m=a[i-1])==null?void 0:m.docFooterText)??((g=a[i-1])==null?void 0:g.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((w=a[i-1])==null?void 0:w.link)},next:u?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((T=a[i+1])==null?void 0:T.docFooterText)??((M=a[i+1])==null?void 0:M.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((V=a[i+1])==null?void 0:V.link)}}})}function Fn(n,e){const t=new Set;return n.filter(o=>{const s=e(o);return t.has(s)?!1:t.add(s)})}const Q=b({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.tag??(e.href?"a":"span")),o=y(()=>e.href&&pt.test(e.href)||e.target==="_blank");return(s,a)=>(r(),P(J(t.value),{class:A(["VPLink",{link:s.href,"vp-external-link-icon":o.value,"no-icon":s.noIcon}]),href:s.href?l(ze)(s.href):void 0,target:s.target??(o.value?"_blank":void 0),rel:s.rel??(o.value?"noreferrer":void 0)},{default:h(()=>[v(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Wn={class:"VPLastUpdated"},Rn=["datetime"],jn=b({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:o}=I(),s=y(()=>new Date(t.value.lastUpdated)),a=y(()=>s.value.toISOString()),i=H("");return q(()=>{ve(()=>{var c,u,f;i.value=new Intl.DateTimeFormat((u=(c=e.value.lastUpdated)==null?void 0:c.formatOptions)!=null&&u.forceLocale?o.value:void 0,((f=e.value.lastUpdated)==null?void 0:f.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(c,u)=>{var f;return r(),p("p",Wn,[ae(N(((f=l(e).lastUpdated)==null?void 0:f.text)||l(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:a.value},N(i.value),9,Rn)])}}}),zn=S(jn,[["__scopeId","data-v-21fd484d"]]),Un={key:0,class:"VPDocFooter"},Gn={key:0,class:"edit-info"},qn={key:0,class:"edit-link"},xn={key:1,class:"last-updated"},Yn={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Xn={class:"pager"},Kn=["innerHTML"],Jn=["innerHTML"],Qn={class:"pager"},Zn=["innerHTML"],eo=["innerHTML"],to=b({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:o}=I(),s=Dn(),a=On(),i=y(()=>e.value.editLink&&o.value.editLink!==!1),c=y(()=>t.value.lastUpdated),u=y(()=>i.value||c.value||a.value.prev||a.value.next);return(f,_)=>{var m,g,w,T;return u.value?(r(),p("footer",Un,[v(f.$slots,"doc-footer-before",{},void 0,!0),i.value||c.value?(r(),p("div",Gn,[i.value?(r(),p("div",qn,[$(Q,{class:"edit-link-button",href:l(s).url,"no-icon":!0},{default:h(()=>[_[0]||(_[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),ae(" "+N(l(s).text),1)]),_:1},8,["href"])])):k("",!0),c.value?(r(),p("div",xn,[$(zn)])):k("",!0)])):k("",!0),(m=l(a).prev)!=null&&m.link||(g=l(a).next)!=null&&g.link?(r(),p("nav",Yn,[_[1]||(_[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",Xn,[(w=l(a).prev)!=null&&w.link?(r(),P(Q,{key:0,class:"pager-link prev",href:l(a).prev.link},{default:h(()=>{var M;return[d("span",{class:"desc",innerHTML:((M=l(e).docFooter)==null?void 0:M.prev)||"Previous page"},null,8,Kn),d("span",{class:"title",innerHTML:l(a).prev.text},null,8,Jn)]}),_:1},8,["href"])):k("",!0)]),d("div",Qn,[(T=l(a).next)!=null&&T.link?(r(),P(Q,{key:0,class:"pager-link next",href:l(a).next.link},{default:h(()=>{var M;return[d("span",{class:"desc",innerHTML:((M=l(e).docFooter)==null?void 0:M.next)||"Next page"},null,8,Zn),d("span",{class:"title",innerHTML:l(a).next.text},null,8,eo)]}),_:1},8,["href"])):k("",!0)])])):k("",!0)])):k("",!0)}}}),no=S(to,[["__scopeId","data-v-e4ff1e65"]]),oo={class:"container"},so={class:"aside-container"},ao={class:"aside-content"},ro={class:"content"},io={class:"content-container"},lo={class:"main"},co=b({__name:"VPDoc",setup(n){const{theme:e}=I(),t=Se(),{hasSidebar:o,hasAside:s,leftAside:a}=ee(),i=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(c,u)=>{const f=le("Content");return r(),p("div",{class:A(["VPDoc",{"has-sidebar":l(o),"has-aside":l(s)}])},[v(c.$slots,"doc-top",{},void 0,!0),d("div",oo,[l(s)?(r(),p("div",{key:0,class:A(["aside",{"left-aside":l(a)}])},[u[0]||(u[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",so,[d("div",ao,[$(Bn,null,{"aside-top":h(()=>[v(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[v(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[v(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[v(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[v(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[v(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):k("",!0),d("div",ro,[d("div",io,[v(c.$slots,"doc-before",{},void 0,!0),d("main",lo,[$(f,{class:A(["vp-doc",[i.value,l(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),$(no,null,{"doc-footer-before":h(()=>[v(c.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),v(c.$slots,"doc-after",{},void 0,!0)])])]),v(c.$slots,"doc-bottom",{},void 0,!0)],2)}}}),uo=S(co,[["__scopeId","data-v-c4a1dcd3"]]),po=b({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.href&&pt.test(e.href)),o=y(()=>e.tag||(e.href?"a":"button"));return(s,a)=>(r(),P(J(o.value),{class:A(["VPButton",[s.size,s.theme]]),href:s.href?l(ze)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:h(()=>[ae(N(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),vo=S(po,[["__scopeId","data-v-69b858bf"]]),ho=["src","alt"],fo=b({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const o=le("VPImage",!0);return e.image?(r(),p(B,{key:0},[typeof e.image=="string"||"src"in e.image?(r(),p("img",ne({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:l(Fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,ho)):(r(),p(B,{key:1},[$(o,ne({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),$(o,ne({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):k("",!0)}}}),we=S(fo,[["__scopeId","data-v-9caeb418"]]),mo={class:"container"},go={class:"main"},_o={class:"heading"},bo=["innerHTML"],ko=["innerHTML"],yo=["innerHTML"],$o={key:0,class:"actions"},wo={key:0,class:"image"},Po={class:"image-container"},Lo=b({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=me("hero-image-slot-exists");return(t,o)=>(r(),p("div",{class:A(["VPHero",{"has-image":t.image||l(e)}])},[d("div",mo,[d("div",go,[v(t.$slots,"home-hero-info-before",{},void 0,!0),v(t.$slots,"home-hero-info",{},()=>[d("h1",_o,[t.name?(r(),p("span",{key:0,innerHTML:t.name,class:"name clip"},null,8,bo)):k("",!0),t.text?(r(),p("span",{key:1,innerHTML:t.text,class:"text"},null,8,ko)):k("",!0)]),t.tagline?(r(),p("p",{key:0,innerHTML:t.tagline,class:"tagline"},null,8,yo)):k("",!0)],!0),v(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(r(),p("div",$o,[(r(!0),p(B,null,j(t.actions,s=>(r(),p("div",{key:s.link,class:"action"},[$(vo,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):k("",!0),v(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||l(e)?(r(),p("div",wo,[d("div",Po,[o[0]||(o[0]=d("div",{class:"image-bg"},null,-1)),v(t.$slots,"home-hero-image",{},()=>[t.image?(r(),P(we,{key:0,class:"image-src",image:t.image},null,8,["image"])):k("",!0)],!0)])])):k("",!0)])],2))}}),So=S(Lo,[["__scopeId","data-v-e85475aa"]]),Vo=b({__name:"VPHomeHero",setup(n){const{frontmatter:e}=I();return(t,o)=>l(e).hero?(r(),P(So,{key:0,class:"VPHomeHero",name:l(e).hero.name,text:l(e).hero.text,tagline:l(e).hero.tagline,image:l(e).hero.image,actions:l(e).hero.actions},{"home-hero-info-before":h(()=>[v(t.$slots,"home-hero-info-before")]),"home-hero-info":h(()=>[v(t.$slots,"home-hero-info")]),"home-hero-info-after":h(()=>[v(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":h(()=>[v(t.$slots,"home-hero-actions-after")]),"home-hero-image":h(()=>[v(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):k("",!0)}}),To={class:"box"},Io={key:0,class:"icon"},Mo=["innerHTML"],No=["innerHTML"],Ao=["innerHTML"],Co={key:4,class:"link-text"},Ho={class:"link-text-value"},Eo=b({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(r(),P(Q,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:h(()=>[d("article",To,[typeof e.icon=="object"&&e.icon.wrap?(r(),p("div",Io,[$(we,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(r(),P(we,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(r(),p("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Mo)):k("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,No),e.details?(r(),p("p",{key:3,class:"details",innerHTML:e.details},null,8,Ao)):k("",!0),e.linkText?(r(),p("div",Co,[d("p",Ho,[ae(N(e.linkText)+" ",1),t[0]||(t[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):k("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Bo=S(Eo,[["__scopeId","data-v-22e69f0d"]]),Do={key:0,class:"VPFeatures"},Oo={class:"container"},Fo={class:"items"},Wo=b({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=y(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,s)=>o.features?(r(),p("div",Do,[d("div",Oo,[d("div",Fo,[(r(!0),p(B,null,j(o.features,a=>(r(),p("div",{key:a.title,class:A(["item",[t.value]])},[$(Bo,{icon:a.icon,title:a.title,details:a.details,link:a.link,"link-text":a.linkText,rel:a.rel,target:a.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):k("",!0)}}),Ro=S(Wo,[["__scopeId","data-v-f5941ff0"]]),jo=b({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=I();return(t,o)=>l(e).features?(r(),P(Ro,{key:0,class:"VPHomeFeatures",features:l(e).features},null,8,["features"])):k("",!0)}}),zo=b({__name:"VPHomeContent",setup(n){const{width:e}=Ot({initialWidth:0,includeScrollbar:!1});return(t,o)=>(r(),p("div",{class:"vp-doc container",style:$e(l(e)?{"--vp-offset":`calc(50% - ${l(e)/2}px)`}:{})},[v(t.$slots,"default",{},void 0,!0)],4))}}),Uo=S(zo,[["__scopeId","data-v-4ce6e87c"]]),Go=b({__name:"VPHome",setup(n){const{frontmatter:e,theme:t}=I();return(o,s)=>{const a=le("Content");return r(),p("div",{class:A(["VPHome",{"external-link-icon-enabled":l(t).externalLinkIcon}])},[v(o.$slots,"home-hero-before",{},void 0,!0),$(Vo,null,{"home-hero-info-before":h(()=>[v(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[v(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[v(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[v(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[v(o.$slots,"home-hero-image",{},void 0,!0)]),_:3}),v(o.$slots,"home-hero-after",{},void 0,!0),v(o.$slots,"home-features-before",{},void 0,!0),$(jo),v(o.$slots,"home-features-after",{},void 0,!0),l(e).markdownStyles!==!1?(r(),P(Uo,{key:0},{default:h(()=>[$(a)]),_:1})):(r(),P(a,{key:1}))],2)}}}),qo=S(Go,[["__scopeId","data-v-77121b8b"]]),xo={},Yo={class:"VPPage"};function Xo(n,e){const t=le("Content");return r(),p("div",Yo,[v(n.$slots,"page-top"),$(t),v(n.$slots,"page-bottom")])}const Ko=S(xo,[["render",Xo]]),Jo=b({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=I(),{hasSidebar:o}=ee();return(s,a)=>(r(),p("div",{class:A(["VPContent",{"has-sidebar":l(o),"is-home":l(t).layout==="home"}]),id:"VPContent"},[l(e).isNotFound?v(s.$slots,"not-found",{key:0},()=>[$(hn)],!0):l(t).layout==="page"?(r(),P(Ko,{key:1},{"page-top":h(()=>[v(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[v(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):l(t).layout==="home"?(r(),P(qo,{key:2},{"home-hero-before":h(()=>[v(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[v(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[v(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[v(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[v(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[v(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[v(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[v(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[v(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):l(t).layout&&l(t).layout!=="doc"?(r(),P(J(l(t).layout),{key:3})):(r(),P(uo,{key:4},{"doc-top":h(()=>[v(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[v(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":h(()=>[v(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[v(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[v(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":h(()=>[v(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":h(()=>[v(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[v(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[v(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[v(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":h(()=>[v(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Qo=S(Jo,[["__scopeId","data-v-86348ee2"]]),Zo={class:"container"},es=["innerHTML"],ts=["innerHTML"],ns=b({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=I(),{hasSidebar:o}=ee();return(s,a)=>l(e).footer&&l(t).footer!==!1?(r(),p("footer",{key:0,class:A(["VPFooter",{"has-sidebar":l(o)}])},[d("div",Zo,[l(e).footer.message?(r(),p("p",{key:0,class:"message",innerHTML:l(e).footer.message},null,8,es)):k("",!0),l(e).footer.copyright?(r(),p("p",{key:1,class:"copyright",innerHTML:l(e).footer.copyright},null,8,ts)):k("",!0)])],2)):k("",!0)}}),os=S(ns,[["__scopeId","data-v-555365ba"]]);function ss(){const{theme:n,frontmatter:e}=I(),t=D([]),o=y(()=>t.value.length>0);return Le(()=>{t.value=Ue(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:o}}const as={class:"menu-text"},rs={class:"header"},is={class:"outline"},ls=b({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=I(),o=H(!1),s=H(0),a=H(),i=H();function c(m){var g;(g=a.value)!=null&&g.contains(m.target)||(o.value=!1)}z(o,m=>{if(m){document.addEventListener("click",c);return}document.removeEventListener("click",c)}),Ae("Escape",()=>{o.value=!1}),Le(()=>{o.value=!1});function u(){o.value=!o.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function f(m){m.target.classList.contains("outline-link")&&(i.value&&(i.value.style.transition="none"),ge(()=>{o.value=!1}))}function _(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(m,g)=>(r(),p("div",{class:"VPLocalNavOutlineDropdown",style:$e({"--vp-vh":s.value+"px"}),ref_key:"main",ref:a},[m.headers.length>0?(r(),p("button",{key:0,onClick:u,class:A({open:o.value})},[d("span",as,N(l(bt)(l(t))),1),g[0]||(g[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(r(),p("button",{key:1,onClick:_},N(l(t).returnToTopLabel||"Return to top"),1)),$(Oe,{name:"flyout"},{default:h(()=>[o.value?(r(),p("div",{key:0,ref_key:"items",ref:i,class:"items",onClick:f},[d("div",rs,[d("a",{class:"top-link",href:"#",onClick:_},N(l(t).returnToTopLabel||"Return to top"),1)]),d("div",is,[$(kt,{headers:m.headers},null,8,["headers"])])],512)):k("",!0)]),_:1})],4))}}),cs=S(ls,[["__scopeId","data-v-ce442b8d"]]),us={class:"container"},ds=["aria-expanded"],ps={class:"menu-text"},vs=b({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=I(),{hasSidebar:o}=ee(),{headers:s}=ss(),{y:a}=vt(),i=H(0);q(()=>{i.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Le(()=>{s.value=Ue(t.value.outline??e.value.outline)});const c=y(()=>s.value.length===0),u=y(()=>c.value&&!o.value),f=y(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:c.value,fixed:u.value}));return(_,m)=>l(t).layout!=="home"&&(!u.value||l(a)>=i.value)?(r(),p("div",{key:0,class:A(f.value)},[d("div",us,[l(o)?(r(),p("button",{key:0,class:"menu","aria-expanded":_.open,"aria-controls":"VPSidebarNav",onClick:m[0]||(m[0]=g=>_.$emit("open-menu"))},[m[1]||(m[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",ps,N(l(e).sidebarMenuLabel||"Menu"),1)],8,ds)):k("",!0),$(cs,{headers:l(s),navHeight:i.value},null,8,["headers","navHeight"])])],2)):k("",!0)}}),hs=S(vs,[["__scopeId","data-v-581e3cb5"]]);function fs(){const n=H(!1);function e(){n.value=!0,window.addEventListener("resize",s)}function t(){n.value=!1,window.removeEventListener("resize",s)}function o(){n.value?t():e()}function s(){window.outerWidth>=768&&t()}const a=Se();return z(()=>a.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:o}}const ms={},gs={class:"VPSwitch",type:"button",role:"switch"},_s={class:"check"},bs={key:0,class:"icon"};function ks(n,e){return r(),p("button",gs,[d("span",_s,[n.$slots.default?(r(),p("span",bs,[v(n.$slots,"default",{},void 0,!0)])):k("",!0)])])}const ys=S(ms,[["render",ks],["__scopeId","data-v-1692b1a8"]]),$s=b({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=I(),o=me("toggle-appearance",()=>{e.value=!e.value}),s=H("");return Re(()=>{s.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(a,i)=>(r(),P(ys,{title:s.value,class:"VPSwitchAppearance","aria-checked":l(e),onClick:l(o)},{default:h(()=>i[0]||(i[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),Ge=S($s,[["__scopeId","data-v-bfcf7055"]]),ws={key:0,class:"VPNavBarAppearance"},Ps=b({__name:"VPNavBarAppearance",setup(n){const{site:e}=I();return(t,o)=>l(e).appearance&&l(e).appearance!=="force-dark"&&l(e).appearance!=="force-auto"?(r(),p("div",ws,[$(Ge)])):k("",!0)}}),Ls=S(Ps,[["__scopeId","data-v-ae51a7fe"]]),qe=H();let yt=!1,Ie=0;function Ss(n){const e=H(!1);if(Ve){!yt&&Vs(),Ie++;const t=z(qe,o=>{var s,a,i;o===n.el.value||(s=n.el.value)!=null&&s.contains(o)?(e.value=!0,(a=n.onFocus)==null||a.call(n)):(e.value=!1,(i=n.onBlur)==null||i.call(n))});We(()=>{t(),Ie--,Ie||Ts()})}return Ft(e)}function Vs(){document.addEventListener("focusin",$t),yt=!0,qe.value=document.activeElement}function Ts(){document.removeEventListener("focusin",$t)}function $t(){qe.value=document.activeElement}const Is={class:"VPMenuLink"},Ms=["innerHTML"],Ns=b({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=I();return(t,o)=>(r(),p("div",Is,[$(Q,{class:A({active:l(re)(l(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:h(()=>[d("span",{innerHTML:t.item.text},null,8,Ms)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),Te=S(Ns,[["__scopeId","data-v-a6f1564f"]]),As={class:"VPMenuGroup"},Cs={key:0,class:"title"},Hs=b({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(r(),p("div",As,[e.text?(r(),p("p",Cs,N(e.text),1)):k("",!0),(r(!0),p(B,null,j(e.items,o=>(r(),p(B,null,["link"in o?(r(),P(Te,{key:0,item:o},null,8,["item"])):k("",!0)],64))),256))]))}}),Es=S(Hs,[["__scopeId","data-v-1ca49d84"]]),Bs={class:"VPMenu"},Ds={key:0,class:"items"},Os=b({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(r(),p("div",Bs,[e.items?(r(),p("div",Ds,[(r(!0),p(B,null,j(e.items,o=>(r(),p(B,{key:JSON.stringify(o)},["link"in o?(r(),P(Te,{key:0,item:o},null,8,["item"])):"component"in o?(r(),P(J(o.component),ne({key:1,ref_for:!0},o.props),null,16)):(r(),P(Es,{key:2,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):k("",!0),v(e.$slots,"default",{},void 0,!0)]))}}),Fs=S(Os,[["__scopeId","data-v-b69dec38"]]),Ws=["aria-expanded","aria-label"],Rs={key:0,class:"text"},js=["innerHTML"],zs={key:1,class:"vpi-more-horizontal icon"},Us={class:"menu"},Gs=b({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=H(!1),t=H();Ss({el:t,onBlur:o});function o(){e.value=!1}return(s,a)=>(r(),p("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:a[1]||(a[1]=i=>e.value=!0),onMouseleave:a[2]||(a[2]=i=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:a[0]||(a[0]=i=>e.value=!e.value)},[s.button||s.icon?(r(),p("span",Rs,[s.icon?(r(),p("span",{key:0,class:A([s.icon,"option-icon"])},null,2)):k("",!0),s.button?(r(),p("span",{key:1,innerHTML:s.button},null,8,js)):k("",!0),a[3]||(a[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(r(),p("span",zs))],8,Ws),d("div",Us,[$(Fs,{items:s.items},{default:h(()=>[v(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),xe=S(Gs,[["__scopeId","data-v-22dedb77"]]),qs=["href","aria-label","innerHTML"],xs=b({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=H();q(async()=>{var a;await ge();const s=(a=t.value)==null?void 0:a.children[0];s instanceof HTMLElement&&s.className.startsWith("vpi-social-")&&(getComputedStyle(s).maskImage||getComputedStyle(s).webkitMaskImage)==="none"&&s.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const o=y(()=>typeof e.icon=="object"?e.icon.svg:`<span class="vpi-social-${e.icon}"></span>`);return(s,a)=>(r(),p("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:o.value},null,8,qs))}}),Ys=S(xs,[["__scopeId","data-v-0bba7704"]]),Xs={class:"VPSocialLinks"},Ks=b({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(r(),p("div",Xs,[(r(!0),p(B,null,j(e.links,({link:o,icon:s,ariaLabel:a})=>(r(),P(Ys,{key:o,icon:s,link:o,ariaLabel:a},null,8,["icon","link","ariaLabel"]))),128))]))}}),Ye=S(Ks,[["__scopeId","data-v-31c619a0"]]),Js={key:0,class:"group translations"},Qs={class:"trans-title"},Zs={key:1,class:"group"},ea={class:"item appearance"},ta={class:"label"},na={class:"appearance-action"},oa={key:2,class:"group"},sa={class:"item social-links"},aa=b({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=I(),{localeLinks:o,currentLang:s}=_e({correspondingLink:!0}),a=y(()=>o.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(i,c)=>a.value?(r(),P(xe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:h(()=>[l(o).length&&l(s).label?(r(),p("div",Js,[d("p",Qs,N(l(s).label),1),(r(!0),p(B,null,j(l(o),u=>(r(),P(Te,{key:u.link,item:u},null,8,["item"]))),128))])):k("",!0),l(e).appearance&&l(e).appearance!=="force-dark"&&l(e).appearance!=="force-auto"?(r(),p("div",Zs,[d("div",ea,[d("p",ta,N(l(t).darkModeSwitchLabel||"Appearance"),1),d("div",na,[$(Ge)])])])):k("",!0),l(t).socialLinks?(r(),p("div",oa,[d("div",sa,[$(Ye,{class:"social-links-list",links:l(t).socialLinks},null,8,["links"])])])):k("",!0)]),_:1})):k("",!0)}}),ra=S(aa,[["__scopeId","data-v-14ab2937"]]),ia=["aria-expanded"],la=b({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(r(),p("button",{type:"button",class:A(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=o=>e.$emit("click"))},t[1]||(t[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)]),10,ia))}}),ca=S(la,[["__scopeId","data-v-cb6dc2b6"]]),ua=["innerHTML"],da=b({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=I();return(t,o)=>(r(),P(Q,{class:A({VPNavBarMenuLink:!0,active:l(re)(l(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:h(()=>[d("span",{innerHTML:t.item.text},null,8,ua)]),_:1},8,["class","href","target","rel","no-icon"]))}}),pa=S(da,[["__scopeId","data-v-16203889"]]),va=b({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=I(),o=a=>"component"in a?!1:"link"in a?re(t.value.relativePath,a.link,!!e.item.activeMatch):a.items.some(o),s=y(()=>o(e.item));return(a,i)=>(r(),P(xe,{class:A({VPNavBarMenuGroup:!0,active:l(re)(l(t).relativePath,a.item.activeMatch,!!a.item.activeMatch)||s.value}),button:a.item.text,items:a.item.items},null,8,["class","button","items"]))}}),ha={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},fa=b({__name:"VPNavBarMenu",setup(n){const{theme:e}=I();return(t,o)=>l(e).nav?(r(),p("nav",ha,[o[0]||(o[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(r(!0),p(B,null,j(l(e).nav,s=>(r(),p(B,{key:JSON.stringify(s)},["link"in s?(r(),P(pa,{key:0,item:s},null,8,["item"])):"component"in s?(r(),P(J(s.component),ne({key:1,ref_for:!0},s.props),null,16)):(r(),P(va,{key:2,item:s},null,8,["item"]))],64))),128))])):k("",!0)}}),ma=S(fa,[["__scopeId","data-v-0310a4f2"]]);function ga(n){const{localeIndex:e,theme:t}=I();function o(s){var T,M,V;const a=s.split("."),i=(T=t.value.search)==null?void 0:T.options,c=i&&typeof i=="object",u=c&&((V=(M=i.locales)==null?void 0:M[e.value])==null?void 0:V.translations)||null,f=c&&i.translations||null;let _=u,m=f,g=n;const w=a.pop();for(const C of a){let E=null;const U=g==null?void 0:g[C];U&&(E=g=U);const x=m==null?void 0:m[C];x&&(E=m=x);const Z=_==null?void 0:_[C];Z&&(E=_=Z),U||(g=E),x||(m=E),Z||(_=E)}return(_==null?void 0:_[w])??(m==null?void 0:m[w])??(g==null?void 0:g[w])??""}return o}const _a=["aria-label"],ba={class:"DocSearch-Button-Container"},ka={class:"DocSearch-Button-Placeholder"},st=b({__name:"VPNavBarSearchButton",setup(n){const t=ga({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,s)=>(r(),p("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":l(t)("button.buttonAriaLabel")},[d("span",ba,[s[0]||(s[0]=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),d("span",ka,N(l(t)("button.buttonText")),1)]),s[1]||(s[1]=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,_a))}}),ya={class:"VPNavBarSearch"},$a={id:"local-search"},wa={key:1,id:"docsearch"},Pa=b({__name:"VPNavBarSearch",setup(n){const e=Wt(()=>fe(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1746214530900/files/.vitepress/dist"+u}return u})("./VPLocalSearchBox.BbPG_Jzh.js")),[])),t=()=>null,{theme:o}=I(),s=H(!1),a=H(!1);q(()=>{});function i(){s.value||(s.value=!0,setTimeout(c,16))}function c(){const m=new Event("keydown");m.key="k",m.metaKey=!0,window.dispatchEvent(m),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||c()},16)}function u(m){const g=m.target,w=g.tagName;return g.isContentEditable||w==="INPUT"||w==="SELECT"||w==="TEXTAREA"}const f=H(!1);Ae("k",m=>{(m.ctrlKey||m.metaKey)&&(m.preventDefault(),f.value=!0)}),Ae("/",m=>{u(m)||(m.preventDefault(),f.value=!0)});const _="local";return(m,g)=>{var w;return r(),p("div",ya,[l(_)==="local"?(r(),p(B,{key:0},[f.value?(r(),P(l(e),{key:0,onClose:g[0]||(g[0]=T=>f.value=!1)})):k("",!0),d("div",$a,[$(st,{onClick:g[1]||(g[1]=T=>f.value=!0)})])],64)):l(_)==="algolia"?(r(),p(B,{key:1},[s.value?(r(),P(l(t),{key:0,algolia:((w=l(o).search)==null?void 0:w.options)??l(o).algolia,onVnodeBeforeMount:g[2]||(g[2]=T=>a.value=!0)},null,8,["algolia"])):k("",!0),a.value?k("",!0):(r(),p("div",wa,[$(st,{onClick:i})]))],64)):k("",!0)])}}}),La=b({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=I();return(t,o)=>l(e).socialLinks?(r(),P(Ye,{key:0,class:"VPNavBarSocialLinks",links:l(e).socialLinks},null,8,["links"])):k("",!0)}}),Sa=S(La,[["__scopeId","data-v-155988a2"]]),Va=["href","rel","target"],Ta=["innerHTML"],Ia={key:2},Ma=b({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=I(),{hasSidebar:o}=ee(),{currentLang:s}=_e(),a=y(()=>{var u;return typeof t.value.logoLink=="string"?t.value.logoLink:(u=t.value.logoLink)==null?void 0:u.link}),i=y(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.rel}),c=y(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.target});return(u,f)=>(r(),p("div",{class:A(["VPNavBarTitle",{"has-sidebar":l(o)}])},[d("a",{class:"title",href:a.value??l(ze)(l(s).link),rel:i.value,target:c.value},[v(u.$slots,"nav-bar-title-before",{},void 0,!0),l(t).logo?(r(),P(we,{key:0,class:"logo",image:l(t).logo},null,8,["image"])):k("",!0),l(t).siteTitle?(r(),p("span",{key:1,innerHTML:l(t).siteTitle},null,8,Ta)):l(t).siteTitle===void 0?(r(),p("span",Ia,N(l(e).title),1)):k("",!0),v(u.$slots,"nav-bar-title-after",{},void 0,!0)],8,Va)],2))}}),Na=S(Ma,[["__scopeId","data-v-fa183c19"]]),Aa={class:"items"},Ca={class:"title"},Ha=b({__name:"VPNavBarTranslations",setup(n){const{theme:e}=I(),{localeLinks:t,currentLang:o}=_e({correspondingLink:!0});return(s,a)=>l(t).length&&l(o).label?(r(),P(xe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:l(e).langMenuLabel||"Change language"},{default:h(()=>[d("div",Aa,[d("p",Ca,N(l(o).label),1),(r(!0),p(B,null,j(l(t),i=>(r(),P(Te,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1},8,["label"])):k("",!0)}}),Ea=S(Ha,[["__scopeId","data-v-a722ec21"]]),Ba={class:"wrapper"},Da={class:"container"},Oa={class:"title"},Fa={class:"content"},Wa={class:"content-body"},Ra=b({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=vt(),{hasSidebar:o}=ee(),{frontmatter:s}=I(),a=H({});return Re(()=>{a.value={"has-sidebar":o.value,home:s.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(i,c)=>(r(),p("div",{class:A(["VPNavBar",a.value])},[d("div",Ba,[d("div",Da,[d("div",Oa,[$(Na,null,{"nav-bar-title-before":h(()=>[v(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[v(i.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Fa,[d("div",Wa,[v(i.$slots,"nav-bar-content-before",{},void 0,!0),$(Pa,{class:"search"}),$(ma,{class:"menu"}),$(Ea,{class:"translations"}),$(Ls,{class:"appearance"}),$(Sa,{class:"social-links"}),$(ra,{class:"extra"}),v(i.$slots,"nav-bar-content-after",{},void 0,!0),$(ca,{class:"hamburger",active:i.isScreenOpen,onClick:c[0]||(c[0]=u=>i.$emit("toggle-screen"))},null,8,["active"])])])])]),c[1]||(c[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),ja=S(Ra,[["__scopeId","data-v-2b281379"]]),za={key:0,class:"VPNavScreenAppearance"},Ua={class:"text"},Ga=b({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=I();return(o,s)=>l(e).appearance&&l(e).appearance!=="force-dark"&&l(e).appearance!=="force-auto"?(r(),p("div",za,[d("p",Ua,N(l(t).darkModeSwitchLabel||"Appearance"),1),$(Ge)])):k("",!0)}}),qa=S(Ga,[["__scopeId","data-v-b8013af3"]]),xa=["innerHTML"],Ya=b({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=me("close-screen");return(t,o)=>(r(),P(Q,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:l(e)},{default:h(()=>[d("span",{innerHTML:t.item.text},null,8,xa)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Xa=S(Ya,[["__scopeId","data-v-f01d071c"]]),Ka=["innerHTML"],Ja=b({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=me("close-screen");return(t,o)=>(r(),P(Q,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:l(e)},{default:h(()=>[d("span",{innerHTML:t.item.text},null,8,Ka)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),wt=S(Ja,[["__scopeId","data-v-56bc5025"]]),Qa={class:"VPNavScreenMenuGroupSection"},Za={key:0,class:"title"},er=b({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(r(),p("div",Qa,[e.text?(r(),p("p",Za,N(e.text),1)):k("",!0),(r(!0),p(B,null,j(e.items,o=>(r(),P(wt,{key:o.text,item:o},null,8,["item"]))),128))]))}}),tr=S(er,[["__scopeId","data-v-d784e297"]]),nr=["aria-controls","aria-expanded"],or=["innerHTML"],sr=["id"],ar={key:0,class:"item"},rr={key:1,class:"item"},ir={key:2,class:"group"},lr=b({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=H(!1),o=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(a,i)=>(r(),p("div",{class:A(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":o.value,"aria-expanded":t.value,onClick:s},[d("span",{class:"button-text",innerHTML:a.text},null,8,or),i[0]||(i[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,nr),d("div",{id:o.value,class:"items"},[(r(!0),p(B,null,j(a.items,c=>(r(),p(B,{key:JSON.stringify(c)},["link"in c?(r(),p("div",ar,[$(wt,{item:c},null,8,["item"])])):"component"in c?(r(),p("div",rr,[(r(),P(J(c.component),ne({ref_for:!0},c.props,{"screen-menu":""}),null,16))])):(r(),p("div",ir,[$(tr,{text:c.text,items:c.items},null,8,["text","items"])]))],64))),128))],8,sr)],2))}}),cr=S(lr,[["__scopeId","data-v-2762bf50"]]),ur={key:0,class:"VPNavScreenMenu"},dr=b({__name:"VPNavScreenMenu",setup(n){const{theme:e}=I();return(t,o)=>l(e).nav?(r(),p("nav",ur,[(r(!0),p(B,null,j(l(e).nav,s=>(r(),p(B,{key:JSON.stringify(s)},["link"in s?(r(),P(Xa,{key:0,item:s},null,8,["item"])):"component"in s?(r(),P(J(s.component),ne({key:1,ref_for:!0},s.props,{"screen-menu":""}),null,16)):(r(),P(cr,{key:2,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):k("",!0)}}),pr=b({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=I();return(t,o)=>l(e).socialLinks?(r(),P(Ye,{key:0,class:"VPNavScreenSocialLinks",links:l(e).socialLinks},null,8,["links"])):k("",!0)}}),vr={class:"list"},hr=b({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=_e({correspondingLink:!0}),o=H(!1);function s(){o.value=!o.value}return(a,i)=>l(e).length&&l(t).label?(r(),p("div",{key:0,class:A(["VPNavScreenTranslations",{open:o.value}])},[d("button",{class:"title",onClick:s},[i[0]||(i[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),ae(" "+N(l(t).label)+" ",1),i[1]||(i[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",vr,[(r(!0),p(B,null,j(l(e),c=>(r(),p("li",{key:c.link,class:"item"},[$(Q,{class:"link",href:c.link},{default:h(()=>[ae(N(c.text),1)]),_:2},1032,["href"])]))),128))])],2)):k("",!0)}}),fr=S(hr,[["__scopeId","data-v-608b512f"]]),mr={class:"container"},gr=b({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=H(null),t=ht(Ve?document.body:null);return(o,s)=>(r(),P(Oe,{name:"fade",onEnter:s[0]||(s[0]=a=>t.value=!0),onAfterLeave:s[1]||(s[1]=a=>t.value=!1)},{default:h(()=>[o.open?(r(),p("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",mr,[v(o.$slots,"nav-screen-content-before",{},void 0,!0),$(dr,{class:"menu"}),$(fr,{class:"translations"}),$(qa,{class:"appearance"}),$(pr,{class:"social-links"}),v(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):k("",!0)]),_:3}))}}),_r=S(gr,[["__scopeId","data-v-46ce9d6e"]]),br={key:0,class:"VPNav"},kr=b({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=fs(),{frontmatter:s}=I(),a=y(()=>s.value.navbar!==!1);return ft("close-screen",t),ve(()=>{Ve&&document.documentElement.classList.toggle("hide-nav",!a.value)}),(i,c)=>a.value?(r(),p("header",br,[$(ja,{"is-screen-open":l(e),onToggleScreen:l(o)},{"nav-bar-title-before":h(()=>[v(i.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[v(i.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[v(i.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[v(i.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),$(_r,{open:l(e)},{"nav-screen-content-before":h(()=>[v(i.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[v(i.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):k("",!0)}}),yr=S(kr,[["__scopeId","data-v-984a6ac8"]]),$r=["role","tabindex"],wr={key:1,class:"items"},Pr=b({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:o,isLink:s,isActiveLink:a,hasActiveLink:i,hasChildren:c,toggle:u}=_n(y(()=>e.item)),f=y(()=>c.value?"section":"div"),_=y(()=>s.value?"a":"div"),m=y(()=>c.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),g=y(()=>s.value?void 0:"button"),w=y(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:t.value},{"is-link":s.value},{"is-active":a.value},{"has-active":i.value}]);function T(V){"key"in V&&V.key!=="Enter"||!e.item.link&&u()}function M(){e.item.link&&u()}return(V,C)=>{const E=le("VPSidebarItem",!0);return r(),P(J(f.value),{class:A(["VPSidebarItem",w.value])},{default:h(()=>[V.item.text?(r(),p("div",ne({key:0,class:"item",role:g.value},Rt(V.item.items?{click:T,keydown:T}:{},!0),{tabindex:V.item.items&&0}),[C[1]||(C[1]=d("div",{class:"indicator"},null,-1)),V.item.link?(r(),P(Q,{key:0,tag:_.value,class:"link",href:V.item.link,rel:V.item.rel,target:V.item.target},{default:h(()=>[(r(),P(J(m.value),{class:"text",innerHTML:V.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(r(),P(J(m.value),{key:1,class:"text",innerHTML:V.item.text},null,8,["innerHTML"])),V.item.collapsed!=null&&V.item.items&&V.item.items.length?(r(),p("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:jt(M,["enter"]),tabindex:"0"},C[0]||(C[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):k("",!0)],16,$r)):k("",!0),V.item.items&&V.item.items.length?(r(),p("div",wr,[V.depth<5?(r(!0),p(B,{key:0},j(V.item.items,U=>(r(),P(E,{key:U.text,item:U,depth:V.depth+1},null,8,["item","depth"]))),128)):k("",!0)])):k("",!0)]),_:1},8,["class"])}}}),Lr=S(Pr,[["__scopeId","data-v-678a540d"]]),Sr=b({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=H(!0);let t=null;return q(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),zt(()=>{t!=null&&(clearTimeout(t),t=null)}),(o,s)=>(r(!0),p(B,null,j(o.items,a=>(r(),p("div",{key:a.text,class:A(["group",{"no-transition":e.value}])},[$(Lr,{item:a,depth:0},null,8,["item"])],2))),128))}}),Vr=S(Sr,[["__scopeId","data-v-6c867ba4"]]),Tr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ir=b({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=ee(),o=n,s=H(null),a=ht(Ve?document.body:null);z([o,s],()=>{var c;o.open?(a.value=!0,(c=s.value)==null||c.focus()):a.value=!1},{immediate:!0,flush:"post"});const i=H(0);return z(e,()=>{i.value+=1},{deep:!0}),(c,u)=>l(t)?(r(),p("aside",{key:0,class:A(["VPSidebar",{open:c.open}]),ref_key:"navEl",ref:s,onClick:u[0]||(u[0]=Ce(()=>{},["stop"]))},[u[2]||(u[2]=d("div",{class:"curtain"},null,-1)),d("nav",Tr,[u[1]||(u[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),v(c.$slots,"sidebar-nav-before",{},void 0,!0),(r(),P(Vr,{items:l(e),key:i.value},null,8,["items"])),v(c.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):k("",!0)}}),Mr=S(Ir,[["__scopeId","data-v-24fd5427"]]),Nr=b({__name:"VPSkipLink",setup(n){const{theme:e}=I(),t=Se(),o=H();z(()=>t.path,()=>o.value.focus());function s({target:a}){const i=document.getElementById(decodeURIComponent(a.hash).slice(1));if(i){const c=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",c)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",c),i.focus(),window.scrollTo(0,0)}}return(a,i)=>(r(),p(B,null,[d("span",{ref_key:"backToTop",ref:o,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s},N(l(e).skipToContentLabel||"Skip to content"),1)],64))}}),Ar=S(Nr,[["__scopeId","data-v-05d1d889"]]),Cr=b({__name:"Layout",setup(n){const{isOpen:e,open:t,close:o}=ee(),s=Se();z(()=>s.path,o),gn(e,o);const{frontmatter:a}=I(),i=Ut(),c=y(()=>!!i["home-hero-image"]);return ft("hero-image-slot-exists",c),(u,f)=>{const _=le("Content");return l(a).layout!==!1?(r(),p("div",{key:0,class:A(["Layout",l(a).pageClass])},[v(u.$slots,"layout-top",{},void 0,!0),$(Ar),$(on,{class:"backdrop",show:l(e),onClick:l(o)},null,8,["show","onClick"]),$(yr,null,{"nav-bar-title-before":h(()=>[v(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":h(()=>[v(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":h(()=>[v(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":h(()=>[v(u.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":h(()=>[v(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":h(()=>[v(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),$(hs,{open:l(e),onOpenMenu:l(t)},null,8,["open","onOpenMenu"]),$(Mr,{open:l(e)},{"sidebar-nav-before":h(()=>[v(u.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":h(()=>[v(u.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),$(Qo,null,{"page-top":h(()=>[v(u.$slots,"page-top",{},void 0,!0)]),"page-bottom":h(()=>[v(u.$slots,"page-bottom",{},void 0,!0)]),"not-found":h(()=>[v(u.$slots,"not-found",{},void 0,!0)]),"home-hero-before":h(()=>[v(u.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":h(()=>[v(u.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":h(()=>[v(u.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":h(()=>[v(u.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":h(()=>[v(u.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":h(()=>[v(u.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":h(()=>[v(u.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":h(()=>[v(u.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":h(()=>[v(u.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":h(()=>[v(u.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":h(()=>[v(u.$slots,"doc-before",{},void 0,!0)]),"doc-after":h(()=>[v(u.$slots,"doc-after",{},void 0,!0)]),"doc-top":h(()=>[v(u.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":h(()=>[v(u.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":h(()=>[v(u.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":h(()=>[v(u.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":h(()=>[v(u.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":h(()=>[v(u.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":h(()=>[v(u.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":h(()=>[v(u.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),$(os),v(u.$slots,"layout-bottom",{},void 0,!0)],2)):(r(),P(_,{key:1}))}}}),Hr=S(Cr,[["__scopeId","data-v-79ca60f0"]]),at={Layout:Hr,enhanceApp:({app:n})=>{n.component("Badge",en)}},Er=["data-href"],Br={key:0,"pointer-events-none":"",absolute:"",left:"1/1","top-0":"","bottom-0":"",flex:"","items-center":"","pl-4px":""},rt=b({__name:"DownloadText",props:{href:{},name:{},type:{default:"application/vnd.android.package-archive"}},setup(n){const e=n,t=D(!1),o=async()=>{if(t.value)return;t.value=!0,fe(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1746214530900/files/.vitepress/dist"+u}return u})("./FileSaver.min.CvNQQnEe.js")).then(a=>a.F),[]);const s=`gkd-${e.name}`;try{const a=await fetch(e.href).then(c=>c.arrayBuffer()).then(c=>new File([c],s,{type:e.type})),{saveAs:i}=await fe(async()=>{const{saveAs:c}=await import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1746214530900/files/.vitepress/dist"+u}return u})("./FileSaver.min.CvNQQnEe.js")).then(u=>u.F);return{saveAs:c}},[]);i(a,s)}finally{t.value=!1}};return(s,a)=>(r(),p("a",{relative:"",class:A({"cursor-progress":t.value,"cursor-pointer":!t.value}),onClick:o,"data-href":s.href},[d("span",{class:A({"opacity-50":t.value})},N(s.name),3),t.value?(r(),p("div",Br,a[0]||(a[0]=[d("svg",{"animate-spin":"","size-16px":"",viewBox:"0 0 16 16",fill:"none"},[d("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor","stroke-opacity":"0.25","stroke-width":"2","vector-effect":"non-scaling-stroke"}),d("path",{d:"M15 8a7.002 7.002 0 00-7-7",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","vector-effect":"non-scaling-stroke"})],-1)]))):k("",!0)],10,Er))}}),Dr={name:"1.10.3",href:"https://registry.npmmirror.com/@gkd-kit/app-beta/0.0.27/files/dist/gkd-v1.10.3.wasm",date:"2025-04-28",filename:"v1.10.3.apk",fileSizeDesc:"6.47MB"},Or={name:"1.10.3",href:"https://registry.npmmirror.com/@gkd-kit/app/2.0.32/files/dist/gkd-v1.10.3.wasm",date:"2025-04-28",filename:"v1.10.3.apk",fileSizeDesc:"6.47MB"},Fr=10,Wr=async(n,e)=>{let t=Fr;for(;;)try{return await fetch(n,e)}catch(o){if(t--,t<=0)throw o;await new Promise(s=>setTimeout(s,500))}},Rr=n=>n<1024?n+"B":n<1024*1024?(n/1024).toFixed(2)+"KB":n<1024*1024*1024?(n/(1024*1024)).toFixed(2)+"MB":(n/(1024*1024*1024)).toFixed(2)+"GB",jr=async n=>{const e=await Wr(n),t=await e.json();return{name:t.versionName,href:new URL(t.downloadUrl,e.url).href,date:t.date,filename:"v"+t.versionName+".apk",fileSizeDesc:Rr(t.fileSize)}},it=async n=>jr(n?"https://registry.npmmirror.com/@gkd-kit/app/latest/files/index.json":"https://registry.npmmirror.com/@gkd-kit/app-beta/latest/files/index.json"),ue=D(Or),de=D(Dr);let lt=!1;const zr=async()=>{lt||(lt=!0,await Promise.all([it(!0).then(n=>{ue.value=n}),it(!1).then(n=>{de.value=n})]))},Ur={key:0},Gr=b({__name:"ApkTable",setup(n){return q(zr),(e,t)=>(r(),p("table",null,[t[4]||(t[4]=d("thead",null,[d("tr",null,[d("th",null,"版本"),d("th",null,"下载"),d("th",null,"大小"),d("th",null,"日期"),d("th",null,"备注")])],-1)),d("tbody",null,[d("tr",null,[t[0]||(t[0]=d("td",null,"正式版",-1)),d("td",null,[$(rt,{href:l(ue).href,name:l(ue).filename},null,8,["href","name"])]),d("td",null,N(l(ue).fileSizeDesc),1),d("td",null,N(l(ue).date),1),t[1]||(t[1]=d("td",null,"稳定版",-1))]),l(de).filename!==l(ue).filename?(r(),p("tr",Ur,[t[2]||(t[2]=d("td",null,"测试版",-1)),d("td",null,[$(rt,{href:l(de).href,name:l(de).filename},null,8,["href","name"])]),d("td",null,N(l(de).fileSizeDesc),1),d("td",null,N(l(de).date),1),t[3]||(t[3]=d("td",null,"更新快不稳定",-1))])):k("",!0)])]))}}),qr=b((n,e)=>()=>{var t,o;return(o=(t=e.slots).default)==null?void 0:o.call(t)}),Pt=n=>(n.loader(),b((e,t)=>{const o=D();return o.value||n.loader().then(s=>{o.value=s}),()=>o.value?K(o.value,e,t.slots):K(n.placeholder,e,t.slots)},{props:n.props})),Lt=["alt","height","imgProps","previewedImgProps","lazy","intersectionObserverOptions","objectFit","previewSrc","fallbackSrc","width","src","previewDisabled","loadDescription","onError","onLoad","theme","themeOverrides","builtinThemeOverrides","onPreviewPrev","onPreviewNext","showToolbar","showToolbarTooltip","renderToolbar"],xr=b((n,e)=>()=>K("div",{class:"n-image"},K("img",n,e.slots)),{props:Lt}),St=Pt({loader:()=>fe(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1746214530900/files/.vitepress/dist"+u}return u})("./index.BMeD7MBc.js")),[]).then(n=>n.NImage),placeholder:xr,props:Lt}),Vt=Pt({loader:()=>fe(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1746214530900/files/.vitepress/dist"+u}return u})("./index.BMeD7MBc.js")),[]).then(n=>n.NImageGroup),placeholder:qr}),Yr={NImage:St,NImageGroup:Vt},Xr="https://registry.npmmirror.com/@gkd-kit/assets/0.0.18/files/assets/",Kr=[{name:"0001.png",width:816,height:1808},{name:"0002.png",width:613,height:1363},{name:"0003.png",width:613,height:1363},{name:"0004.png",width:613,height:1363},{name:"0005.png",width:613,height:1363},{name:"0006.png",width:613,height:1363},{name:"0007.png",width:613,height:1363},{name:"0008.png",width:613,height:1363},{name:"0009.png",width:613,height:1363},{name:"0010.png",width:613,height:1363},{name:"0011.png",width:613,height:1363},{name:"0012.png",width:613,height:1363},{name:"0013.png",width:1080,height:2400},{name:"0014.png",width:1080,height:2400},{name:"0015.png",width:1080,height:2400},{name:"0016.png",width:1080,height:2400},{name:"0017.png",width:1080,height:2400},{name:"0018.png",width:1080,height:2400},{name:"0019.gif",width:536,height:1204},{name:"0020.png",width:927,height:927},{name:"0021.png",width:927,height:927},{name:"0022.png",width:927,height:927},{name:"0023.png",width:927,height:927},{name:"0024.png",width:927,height:927},{name:"0025.png",width:445,height:75},{name:"0026.png",width:816,height:1808},{name:"0027.png",width:816,height:1808},{name:"0028.png",width:816,height:1808},{name:"0029.png",width:816,height:1808},{name:"0030.png",width:816,height:1808},{name:"0031.png",width:816,height:1808},{name:"0032.png",width:816,height:1808},{name:"0033.png",width:816,height:1808},{name:"0034.png",width:1920,height:1080},{name:"0035.png",width:810,height:1808},{name:"0036.png",width:810,height:1808},{name:"0037.png",width:816,height:1808},{name:"0038.jpg",width:1280,height:2800},{name:"0039.jpg",width:1200,height:2670},{name:"0040.jpg",width:1080,height:2400},{name:"0041.jpg",width:1220,height:2712},{name:"0042.jpg",width:1080,height:2340},{name:"0043.jpg",width:1080,height:2340},{name:"0044.jpg",width:1080,height:2340},{name:"0045.jpg",width:1080,height:2340}],Tt=n=>n.startsWith("https:")?n:Xr+n,It=Gt({}),Jr=async n=>{const e=new Image;e.src=n,await new Promise((t,o)=>{e.onload=()=>t(),e.onerror=o}),It[n]=!0},Qr=n=>{Jr(n);const e=Kr.find(t=>n.endsWith(t.name));return e?"data:image/svg+xml,"+encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="${e.width}" height="${e.height}" viewBox="0 0 ${e.width} ${e.height}"></svg>`):(console.error(`Image size not found for ${n}`),n)},Mt=b((n,e)=>{const t=y(()=>Tt(n.src)),o=y(()=>{const s=It[t.value];return s===!0?t.value:typeof s=="string"?s:Qr(t.value)});return()=>K(St,{src:o.value,"data-src":t.value,...e.attrs})},{props:["src"]});function Xe(n){return Yt()?(Xt(n),!0):!1}const Me=new WeakMap,Zr=(...n)=>{var e;const t=n[0],o=(e=je())==null?void 0:e.proxy;if(o==null&&!mt())throw new Error("injectLocal must be called in setup");return o&&Me.has(o)&&t in Me.get(o)?Me.get(o)[t]:me(...n)},ei=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ti=n=>n!=null,ni=Object.prototype.toString,oi=n=>ni.call(n)==="[object Object]",pe=()=>{};function Nt(n,e){function t(...o){return new Promise((s,a)=>{Promise.resolve(n(()=>e.apply(this,o),{fn:e,thisArg:this,args:o})).then(s).catch(a)})}return t}function si(n,e={}){let t,o,s=pe;const a=u=>{clearTimeout(u),s(),s=pe};let i;return u=>{const f=R(n),_=R(e.maxWait);return t&&a(t),f<=0||_!==void 0&&_<=0?(o&&(a(o),o=null),Promise.resolve(u())):new Promise((m,g)=>{s=e.rejectOnCancel?g:m,i=u,_&&!o&&(o=setTimeout(()=>{t&&a(t),o=null,m(i())},_)),t=setTimeout(()=>{o&&a(o),o=null,m(u())},f)})}}function ai(...n){let e=0,t,o=!0,s=pe,a,i,c,u,f;!xt(n[0])&&typeof n[0]=="object"?{delay:i,trailing:c=!0,leading:u=!0,rejectOnCancel:f=!1}=n[0]:[i,c=!0,u=!0,f=!1]=n;const _=()=>{t&&(clearTimeout(t),t=void 0,s(),s=pe)};return g=>{const w=R(i),T=Date.now()-e,M=()=>a=g();return _(),w<=0?(e=Date.now(),M()):(T>w&&(u||!o)?(e=Date.now(),M()):c&&(a=new Promise((V,C)=>{s=f?C:V,t=setTimeout(()=>{e=Date.now(),o=!0,V(M()),_()},Math.max(0,w-T))})),!u&&!t&&(t=setTimeout(()=>o=!0,w)),o=!1,a)}}function ct(n){return n.endsWith("rem")?Number.parseFloat(n)*16:Number.parseFloat(n)}function ye(n){return Array.isArray(n)?n:[n]}function ri(n){return je()}function At(n,e=200,t={}){return Nt(si(e,t),n)}function ii(n,e=200,t={}){const o=H(R(n)),s=At(()=>{o.value=n.value},e,t);return z(n,()=>s()),qt(o)}function li(n,e=200,t=!1,o=!0,s=!1){return Nt(ai(e,t,o,s),n)}function Ke(n,e=!0,t){ri()?q(n,t):e?n():ge(n)}function ci(n,e,t){return z(n,e,{...t,immediate:!0})}const ce=ei?window:void 0;function ie(n){var e;const t=R(n);return(e=t==null?void 0:t.$el)!=null?e:t}function Y(...n){const e=[],t=()=>{e.forEach(c=>c()),e.length=0},o=(c,u,f,_)=>(c.addEventListener(u,f,_),()=>c.removeEventListener(u,f,_)),s=y(()=>{const c=ye(R(n[0])).filter(u=>u!=null);return c.every(u=>typeof u!="string")?c:void 0}),a=ci(()=>{var c,u;return[(u=(c=s.value)==null?void 0:c.map(f=>ie(f)))!=null?u:[ce].filter(f=>f!=null),ye(R(s.value?n[1]:n[0])),ye(l(s.value?n[2]:n[1])),R(s.value?n[3]:n[2])]},([c,u,f,_])=>{if(t(),!(c!=null&&c.length)||!(u!=null&&u.length)||!(f!=null&&f.length))return;const m=oi(_)?{..._}:_;e.push(...c.flatMap(g=>u.flatMap(w=>f.map(T=>o(g,w,T,m)))))},{flush:"post"}),i=()=>{a(),t()};return Xe(t),i}function ui(){const n=D(!1),e=je();return e&&q(()=>{n.value=!0},e),n}function Je(n){const e=ui();return y(()=>(e.value,!!n()))}function di(n,e,t={}){const{window:o=ce,...s}=t;let a;const i=Je(()=>o&&"MutationObserver"in o),c=()=>{a&&(a.disconnect(),a=void 0)},u=y(()=>{const g=R(n),w=ye(g).map(ie).filter(ti);return new Set(w)}),f=z(()=>u.value,g=>{c(),i.value&&g.size&&(a=new MutationObserver(e),g.forEach(w=>a.observe(w,s)))},{immediate:!0,flush:"post"}),_=()=>a==null?void 0:a.takeRecords(),m=()=>{f(),c()};return Xe(m),{isSupported:i,stop:m,takeRecords:_}}const pi=Symbol("vueuse-ssr-width");function vi(){const n=mt()?Zr(pi,null):null;return typeof n=="number"?n:void 0}function hi(n,e={}){const{window:t=ce,ssrWidth:o=vi()}=e,s=Je(()=>t&&"matchMedia"in t&&typeof t.matchMedia=="function"),a=D(typeof o=="number"),i=D(),c=D(!1),u=f=>{c.value=f.matches};return ve(()=>{if(a.value){a.value=!s.value;const f=R(n).split(",");c.value=f.some(_=>{const m=_.includes("not all"),g=_.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),w=_.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let T=!!(g||w);return g&&T&&(T=o>=ct(g[1])),w&&T&&(T=o<=ct(w[1])),m?!T:T});return}s.value&&(i.value=t.matchMedia(R(n)),c.value=i.value.matches)}),Y(i,"change",u,{passive:!0}),y(()=>c.value)}function fi(n,e,t={}){const{window:o=ce,...s}=t;let a;const i=Je(()=>o&&"ResizeObserver"in o),c=()=>{a&&(a.disconnect(),a=void 0)},u=y(()=>{const m=R(n);return Array.isArray(m)?m.map(g=>ie(g)):[ie(m)]}),f=z(u,m=>{if(c(),i.value&&o){a=new ResizeObserver(e);for(const g of m)g&&a.observe(g,s)}},{immediate:!0,flush:"post"}),_=()=>{c(),f()};return Xe(_),{isSupported:i,stop:_}}function mi(n,e={}){const{reset:t=!0,windowResize:o=!0,windowScroll:s=!0,immediate:a=!0,updateTiming:i="sync"}=e,c=D(0),u=D(0),f=D(0),_=D(0),m=D(0),g=D(0),w=D(0),T=D(0);function M(){const C=ie(n);if(!C){t&&(c.value=0,u.value=0,f.value=0,_.value=0,m.value=0,g.value=0,w.value=0,T.value=0);return}const E=C.getBoundingClientRect();c.value=E.height,u.value=E.bottom,f.value=E.left,_.value=E.right,m.value=E.top,g.value=E.width,w.value=E.x,T.value=E.y}function V(){i==="sync"?M():i==="next-frame"&&requestAnimationFrame(()=>M())}return fi(n,V),z(()=>ie(n),C=>!C&&V()),di(n,V,{attributeFilter:["style","class"]}),s&&Y("scroll",V,{capture:!0,passive:!0}),o&&Y("resize",V,{passive:!0}),Ke(()=>{a&&V()}),{height:c,bottom:u,left:f,right:_,top:m,width:g,x:w,y:T,update:V}}const ut=1;function gi(n,e={}){const{throttle:t=0,idle:o=200,onStop:s=pe,onScroll:a=pe,offset:i={left:0,right:0,top:0,bottom:0},eventListenerOptions:c={capture:!1,passive:!0},behavior:u="auto",window:f=ce,onError:_=L=>{console.error(L)}}=e,m=D(0),g=D(0),w=y({get(){return m.value},set(L){M(L,void 0)}}),T=y({get(){return g.value},set(L){M(void 0,L)}});function M(L,W){var F,G,oe,be;if(!f)return;const X=R(n);if(!X)return;(oe=X instanceof Document?f.document.body:X)==null||oe.scrollTo({top:(F=R(W))!=null?F:T.value,left:(G=R(L))!=null?G:w.value,behavior:R(u)});const te=((be=X==null?void 0:X.document)==null?void 0:be.documentElement)||(X==null?void 0:X.documentElement)||X;w!=null&&(m.value=te.scrollLeft),T!=null&&(g.value=te.scrollTop)}const V=D(!1),C=ot({left:!0,right:!1,top:!0,bottom:!1}),E=ot({left:!1,right:!1,top:!1,bottom:!1}),U=L=>{V.value&&(V.value=!1,E.left=!1,E.right=!1,E.top=!1,E.bottom=!1,s(L))},x=At(U,t+o),Z=L=>{var W;if(!f)return;const F=((W=L==null?void 0:L.document)==null?void 0:W.documentElement)||(L==null?void 0:L.documentElement)||ie(L),{display:G,flexDirection:oe,direction:be}=getComputedStyle(F),X=be==="rtl"?-1:1,te=F.scrollLeft;E.left=te<m.value,E.right=te>m.value;const Ze=Math.abs(te*X)<=(i.left||0),et=Math.abs(te*X)+F.clientWidth>=F.scrollWidth-(i.right||0)-ut;G==="flex"&&oe==="row-reverse"?(C.left=et,C.right=Ze):(C.left=Ze,C.right=et),m.value=te;let se=F.scrollTop;L===f.document&&!se&&(se=f.document.body.scrollTop),E.top=se<g.value,E.bottom=se>g.value;const tt=Math.abs(se)<=(i.top||0),nt=Math.abs(se)+F.clientHeight>=F.scrollHeight-(i.bottom||0)-ut;G==="flex"&&oe==="column-reverse"?(C.top=nt,C.bottom=tt):(C.top=tt,C.bottom=nt),g.value=se},O=L=>{var W;if(!f)return;const F=(W=L.target.documentElement)!=null?W:L.target;Z(F),V.value=!0,x(L),a(L)};return Y(n,"scroll",t?li(O,t,!0,!1):O,c),Ke(()=>{try{const L=R(n);if(!L)return;Z(L)}catch(L){_(L)}}),Y(n,"scrollend",U,c),{x:w,y:T,isScrolling:V,arrivedState:C,directions:E,measure(){const L=R(n);f&&L&&Z(L)}}}function _i(n={}){const{window:e=ce,...t}=n;return gi(e,t)}function bi(n={}){const{window:e=ce,initialWidth:t=Number.POSITIVE_INFINITY,initialHeight:o=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:a=!0,type:i="inner"}=n,c=D(t),u=D(o),f=()=>{if(e)if(i==="outer")c.value=e.outerWidth,u.value=e.outerHeight;else if(i==="visual"&&e.visualViewport){const{width:m,height:g,scale:w}=e.visualViewport;c.value=Math.round(m*w),u.value=Math.round(g*w)}else a?(c.value=e.innerWidth,u.value=e.innerHeight):(c.value=e.document.documentElement.clientWidth,u.value=e.document.documentElement.clientHeight)};f(),Ke(f);const _={passive:!0};if(Y("resize",f,_),e&&i==="visual"&&e.visualViewport&&Y(e.visualViewport,"resize",f,_),s){const m=hi("(orientation: portrait)");z(m,()=>f())}return{width:c,height:u}}const ki=b({__name:"IdentifierField",setup(n){const e=D(""),t=/^[_a-zA-Z][a-zA-Z0-9_]*$/,o=ii(e,300),s=y(()=>o.value!=="null"&&o.value!=="true"&&o.value!=="false"&&t.test(o.value));return(a,i)=>(r(),p("div",null,[gt(d("input",{placeholder:"请输入标识符测试是否合法",type:"text","onUpdate:modelValue":i[0]||(i[0]=c=>e.value=c),class:"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50"},null,512),[[Kt,e.value]]),d("div",{"mt-4px":"",class:A({"color-red":!s.value,"opacity-0":!l(o)||!e.value})},N(s.value?"合法标识符✅":"非法标识符❌"),3)]))}}),yi=b({__name:"ImageTable",props:{images:{}},setup(n){return(e,t)=>(r(),p("table",null,[d("tbody",null,[$(l(Vt),null,{default:h(()=>[(r(!0),p(B,null,j(e.images,(o,s)=>(r(),p("tr",{key:s},[(r(!0),p(B,null,j(o,a=>(r(),p("td",{key:a},[$(l(Mt),{src:l(Tt)(a)},null,8,["src"])]))),128))]))),128))]),_:1})])]))}}),$i={key:0,class:"tip custom-block github-alert"},wi=b({__name:"AppInnerDownloadTip",setup(n){const e=Reflect.get(globalThis,"gkd");return(t,o)=>l(e)?(r(),p("div",$i,o[0]||(o[0]=[d("p",{class:"custom-block-title"},"下载提示",-1),d("p",null,"检测到您在应用内无法下载 APK,请点击右上角-外部打开后下载",-1)]))):k("",!0)}}),Pi={...Yr,GImg:Mt,ImageTable:yi,IdentifierField:ki,ApkTable:Gr,AppInnerDownloadTip:wi},Li={fixed:"","z-100":"",class:"BodyScrollbar"},dt=2,Si=b({__name:"BodyScrollbar",setup(n){const{y:e,x:t}=_i(),{height:o,width:s}=bi(),a=mi(document.body);ve(()=>{console.log([t.value,e.value,o.value,s.value,a.width.value,a.height.value])});const i=y(()=>a.height.value>o.value+dt),c=y(()=>{const L=a.height.value;return o.value/L*o.value}),u=y(()=>{const O=a.height.value,L=c.value;return e.value/(O-o.value)*(o.value-L)}),f=y(()=>i.value?{transform:`translateY(${u.value}px)`,height:`${c.value}px`}:{}),_=async O=>{const L=c.value*.9*(O.clientY<c.value+u.value?-1:1),W=a.height.value,F=W,G=o.value/F*o.value;e.value+=L/(o.value-G)*(W-o.value)},m=D(!1);let g;const w=O=>{g=O,m.value=!0};Y("pointermove",O=>{if(!g)return;const L=O.clientY-g.clientY;g=O;const W=a.height.value,F=W,G=o.value/F*o.value;e.value+=L/(o.value-G)*(W-o.value)}),Y("pointerup",()=>{g=void 0,m.value=!1});const T=y(()=>a.width.value>s.value+dt),M=y(()=>{const L=a.width.value;return s.value/L*s.value}),V=y(()=>{const O=a.width.value,L=M.value;return t.value/(O-s.value)*(s.value-L)}),C=y(()=>T.value?{transform:`translateX(${V.value}px)`,width:`${M.value}px`}:{}),E=O=>{const L=M.value*.9*(O.clientX<M.value+V.value?-1:1),W=a.width.value,F=W,G=s.value/F*s.value,oe=t.value+L/(s.value-G)*(W-s.value);t.value=oe},U=D(!1);let x;const Z=O=>{x=O,U.value=!0};return Y("pointermove",O=>{if(!x)return;const L=O.clientX-x.clientX;x=O;const W=a.width.value,F=W,G=s.value/F*s.value;t.value+=L/(s.value-G)*(W-s.value)}),Y("pointerup",()=>{x=void 0,U.value=!1}),Y("selectstart",O=>{(x||g)&&O.preventDefault()}),(O,L)=>(r(),p("div",Li,[gt(d("div",{"scrollbar-y":"",fixed:"","right-2px":"","top-0":"","bottom-0":"","w-8px":"",onPointerdown:w,onClick:_},[d("div",{onClick:L[0]||(L[0]=Ce(()=>{},["stop"])),"w-full":"",bg:"#909399","opacity-30":"","hover:opacity":"50",style:$e(f.value),class:A({"opacity-50":m.value})},null,6)],544),[[Jt,i.value]]),T.value?(r(),p("div",{key:0,"scrollbar-x":"",fixed:"","bottom-2px":"","left-0":"","right-0":"","h-8px":"",onPointerdown:Z,onClick:E},[d("div",{onClick:L[1]||(L[1]=Ce(()=>{},["stop"])),"h-full":"",bg:"#909399","opacity-30":"","hover:opacity":"50",style:$e(C.value),class:A({"opacity-50":U.value})},null,6)],32)):k("",!0)]))}}),Vi=b(()=>{const n=D(!1);return q(()=>{const e="ontouchstart"in document.documentElement;n.value=!e,e&&(document.body.classList.add("mobile"),document.documentElement.classList.add("mobile"))}),()=>n.value?K(Qt,{to:document.body},K(Si)):void 0}),Ti=n=>{const e=n.getBoundingClientRect(),t=window.innerHeight*.15;return e.top-t>=0&&e.bottom+t<=window.innerHeight},Ii=()=>{const n=document.images;for(let e=0;e<n.length;e++)if(!n[e].complete)return!1;return!0},Pe=(n=0)=>new Promise(e=>setTimeout(e,n));let he,De=!0;setTimeout(()=>{De=!1},1e3);const Qe=async n=>{if(location.hash&&(n??(n=document.querySelector(location.hash)||void 0)),!n)return;const e="animate-hash-hint";he&&he.classList.remove(e),n.classList.contains(e)&&(n.classList.remove(e),await Pe(25)),n.classList.add(e),he=n;const t=500*2*(De?5:2);De=!1,await Pe(t),n.classList.remove(e),he===n&&(he=void 0)},Mi=async n=>{const e=location.href.substring(location.origin.length),t=async o=>{history.replaceState(null,"",o),await n.go(o)};if(location.pathname.startsWith("/selector/"))location.pathname.at(-1)==="/"?t("/guide/selector"):t(location.pathname.replace("/selector/","/guide/"));else if(location.pathname==="/subscription/"||location.pathname==="/subscription")await t("/guide/subscription");else if(location.pathname==="/"){const o=new URLSearchParams(location.search).get("r");if(o==="1")n.go("/guide/snapshot#how-to-upload");else if(o==="2")n.go("/guide/faq#restriction");else if(o==="3")n.go("/guide/faq#adb_failed");else if(o==="4"){location.href="https://shizuku.rikka.app";return}else o==="5"?n.go("/guide/subscription"):o==="6"?n.go("/guide/faq#power"):o==="7"?n.go("/guide/faq#exact-activity"):o==="8"?n.go("/guide/faq#forced-tap"):o==="9"&&n.go("/guide/faq#work-profile")}else e==="/guide/faq#fail_setting_secure_settings"&&(location.hash="adb_failed");if(await ge(),location.hash){const o=await(async()=>{const s=location.href;let a=0;for(;a<25;){if(s!==location.href)return;const i=document.querySelector(location.hash);if(i)return i;a++,await Pe(100)}})();if(o){if(!Ti(o)){let s=0;for(;s<25&&!Ii();)await new Promise(i=>setTimeout(i,100)),s++;const a=document.querySelector(`a.header-anchor[href="${location.hash}"]`);a?a.click():o.scrollIntoView({behavior:"smooth",block:"center"})}Qe(o)}}};window.addEventListener("hashchange",async()=>{Qe()});const Ni=b(()=>{const n=Zt();return q(()=>{Mi(n),n.onAfterPageLoad=()=>{ge().then(async()=>{await Pe(100),Qe()})}}),()=>{}}),Ci={extends:at,Layout(){return K(B,null,[K(at.Layout),K(Vi),K(Ni)])},enhanceApp({app:n}){Object.entries(Pi).forEach(([e,t])=>{n.component(e,t)})}};export{Ci as R,ga as c,I as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as t,o,c as a,au as d}from"./chunks/framework.DE7acwfO.js";const q=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md","lastUpdated":1746214509000}'),i={name:"guide/example.md"};function r(l,e,u,c,n,p){return o(),a("div",null,e[0]||(e[0]=[d('<h1 id="title" tabindex="-1">选择示例 <a class="header-anchor" href="#title" aria-label="Permalink to "选择示例 {#title}""></a></h1><p>一些选择器及其相关作用说明</p><h2 id="e-1" tabindex="-1">选择根节点 <a class="header-anchor" href="#e-1" aria-label="Permalink to "选择根节点 {#e-1}""></a></h2><ul><li><code>[parent=null]</code></li><li><code>[depth=0]</code></li></ul><h2 id="e-2" tabindex="-1">选择子节点 <a class="header-anchor" href="#e-2" aria-label="Permalink to "选择子节点 {#e-2}""></a></h2><p>选择一个 <code>ImageView</code> 节点, 并要求其父节点是 <code>LinearLayout</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=TGluZWFyTGF5b3V0ID4gSW1hZ2VWaWV3" target="_blank" rel="noreferrer"><code>LinearLayout > ImageView</code></a></p><p>选择一个 <code>ImageView</code> 节点, 并要求其父节点的父节点是 <code>ViewGroup[vid="avatar_layout"]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0iYXZhdGFyX2xheW91dCJdID4yIEltYWdlVmlldw" target="_blank" rel="noreferrer"><code>ViewGroup[vid="avatar_layout"] >2 ImageView</code></a></p><p>选择一个 <code>ImageView[vid="search_icon"]</code> 节点, 并要求祖先节点是 <code>FrameLayout[vid="content_layout"]</code>, <code>n</code>可以是任意正整数, 下同</p><p><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb250ZW50X2xheW91dCJdIEltYWdlVmlld1t2aWQ9InNlYXJjaF9pY29uIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid="content_layout"] >n ImageView[vid="search_icon"]</code></a></p><h2 id="e-3" tabindex="-1">末尾子节点 <a class="header-anchor" href="#e-3" aria-label="Permalink to "末尾子节点 {#e-3}""></a></h2><p>选择一个 <code>ImageView</code> 节点, 并要求是其父节点是最后一个子节点</p><p><a href="https://i.gkd.li/i/16076188?gkd=SW1hZ2VWaWV3W2luZGV4PXBhcmVudC5jaGlsZENvdW50Lm1pbnVzKDEpXQ" target="_blank" rel="noreferrer"><code>ImageView[index=parent.childCount.minus(1)]</code></a></p><h2 id="e-4" tabindex="-1">选择兄弟节点 <a class="header-anchor" href="#e-4" aria-label="Permalink to "选择兄弟节点 {#e-4}""></a></h2><p>选择一个 <code>LinearLayout[desc="搜索栏,按钮"]</code> 节点, 并要求其兄弟节点是 <code>ViewGroup[desc="个人主页,按钮"]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2M9IuS4quS6uuS4u-mhte-8jOaMiemSriJdICsgTGluZWFyTGF5b3V0W2Rlc2M9IuaQnOe0ouagj--8jOaMiemSriJd" target="_blank" rel="noreferrer"><code>ViewGroup[desc="个人主页,按钮"] + LinearLayout[desc="搜索栏,按钮"]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QExpbmVhckxheW91dFtkZXNjPSLmkJzntKLmoI_vvIzmjInpkq4iXSAtIFZpZXdHcm91cFtkZXNjPSLkuKrkurrkuLvpobXvvIzmjInpkq4iXQ" target="_blank" rel="noreferrer"><code>@LinearLayout[desc="搜索栏,按钮"] - ViewGroup[desc="个人主页,按钮"]</code></a></li></ul><p>选择一个 <code>[text$="顶级入耳"]</code> 节点, 并要求其兄弟节点是 <code>[vid="cover_layout"]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=W3ZpZD0iY292ZXJfbGF5b3V0Il0gK24gW3RleHQkPSLpobbnuqflhaXogLMiXQ" target="_blank" rel="noreferrer"><code>[vid="cover_layout"] +n [text$="顶级入耳"]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0JD0i6aG257qn5YWl6ICzIl0gLW4gW3ZpZD0iY292ZXJfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>@[text$="顶级入耳"] -n [vid="cover_layout"]</code></a></li></ul><h2 id="e-5" tabindex="-1">选择父节点 <a class="header-anchor" href="#e-5" aria-label="Permalink to "选择父节点 {#e-5}""></a></h2><p>选择一个 <code>ViewGroup[desc^="直播"]</code> 节点, 并要求其子节点是 <code>FrameLayout[vid="cover_layout"]</code> 或 <code>ViewGroup[vid="live_text_container"]</code> 或 <code>TextView[vid="title_v2"]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb3Zlcl9sYXlvdXQiXSA8IFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid="cover_layout"] < ViewGroup[desc^="直播"]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJdIDwzIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>ViewGroup[vid="live_text_container"] <3 ViewGroup[desc^="直播"]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=VGV4dFZpZXdbdmlkPSJ0aXRsZV92MiJdIDxuIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>TextView[vid="title_v2"] <n ViewGroup[desc^="直播"]</code></a></li></ul><h2 id="e-6" tabindex="-1">在指定节点的子节点内查找指定选择器 <a class="header-anchor" href="#e-6" aria-label="Permalink to "在指定节点的子节点内查找指定选择器 {#e-6}""></a></h2><p>一般在末尾节点支持 <a href="/guide/optimize#fast-query">快速查询</a> 的情况下使用</p><p>在节点 <code>ViewGroup[vid="live_text_container"]</code> 的子节点内查找 <code>[text="直播"]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0PSLnm7Tmkq0iXSA8PG4gVmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJd" target="_blank" rel="noreferrer"><code>@[text="直播"] <<n ViewGroup[vid="live_text_container"]</code></a></p><p>在节点 <code>FrameLayout[vid="swipe_layout"]</code> 的子节点内查找 <code>LinearLayout > @[text="直播"]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=TGluZWFyTGF5b3V0ID4gQFt0ZXh0PSLnm7Tmkq0iXSA8PG4gW3ZpZD0ic3dpcGVfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>LinearLayout > @[text="直播"] <<n [vid="swipe_layout"]</code></a></p><h2 id="e-7" tabindex="-1">组合使用 <a class="header-anchor" href="#e-7" aria-label="Permalink to "组合使用 {#e-7}""></a></h2><p><a href="https://i.gkd.li/i/16076188?gkd=SW1hZ2VWaWV3IDwgRnJhbWVMYXlvdXQgPG4gVmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXSAtIFZpZXdHcm91cCA-NCBGcmFtZUxheW91dFtpbmRleD0wXSArMiBGcmFtZUxheW91dCA-IEBUZXh0Vmlld1tpbmRleD1wYXJlbnQuY2hpbGRDb3VudC5taW51cygxKV0gPDxuIEZyYW1lTGF5b3V0W3ZpZD0iY29udGVudCJd" target="_blank" rel="noreferrer"><code>ImageView < FrameLayout <n ViewGroup[desc^="直播"] - ViewGroup >4 FrameLayout[index=0] +2 FrameLayout > @TextView[index=parent.childCount.minus(1)] <<n FrameLayout[vid="content"]</code></a></p>',30)]))}const g=t(i,[["render",r]]);export{q as __pageData,g as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as t,o,c as a,au as d}from"./chunks/framework.DE7acwfO.js";const q=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md","lastUpdated":1746214509000}'),i={name:"guide/example.md"};function r(l,e,u,c,n,p){return o(),a("div",null,e[0]||(e[0]=[d("",30)]))}const g=t(i,[["render",r]]);export{q as __pageData,g as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as a,o as e,c as d,au as r}from"./chunks/framework.DE7acwfO.js";const u=JSON.parse('{"title":"外部交互","description":"","frontmatter":{},"headers":[],"relativePath":"guide/external.md","filePath":"guide/external.md","lastUpdated":1746214509000}'),l={name:"guide/external.md"};function i(o,t,p,h,n,c){return e(),d("div",null,t[0]||(t[0]=[r('<h1 id="title" tabindex="-1">外部交互 <a class="header-anchor" href="#title" aria-label="Permalink to "外部交互 {#title}""></a></h1><p>一些无法在应用内界面上直接使用的功能</p><h2 id="app-icon" tabindex="-1">应用图标 <a class="header-anchor" href="#app-icon" aria-label="Permalink to "应用图标 {#app-icon}""></a></h2><p>GKD 有两种应用图标</p><ul><li>默认图标</li><li>深色模式下的图标</li></ul><p>一般来说, 第一次显示的图标取决于安装时的系统深色模式设置</p><p>而且系统貌似不会在切换深色模式自动切换图标, 你可以通过以下方式切换</p><ul><li>到 系统主题-图标包 切换其他后再切换回来</li><li>重启手机</li><li>同版本覆盖安装 GKD, 无需卸载</li></ul><h2 id="scheme" tabindex="-1">跳转应用 <a class="header-anchor" href="#scheme" aria-label="Permalink to "跳转应用 {#scheme}""></a></h2><p>可以在浏览器或其他应用打开特定链接来跳转到应用内页面</p><table tabindex="0"><thead><tr><th>页面</th><th>链接</th></tr></thead><tbody><tr><td>首页</td><td><code>gkd://page</code></td></tr><tr><td>高级设置</td><td><code>gkd://page/1</code></td></tr><tr><td>快照记录</td><td><code>gkd://page/2</code></td></tr></tbody></table><h2 id="shortcut" tabindex="-1">快捷开关 <a class="header-anchor" href="#shortcut" aria-label="Permalink to "快捷开关 {#shortcut}""></a></h2><p>GKD 在通知栏面板声明了一些快捷开关, 可快捷使用一些功能</p><table tabindex="0"><thead><tr><th>名称</th><th>功能</th></tr></thead><tbody><tr><td>GKD</td><td>打开或关闭无障碍权限</td></tr><tr><td>HTTP服务</td><td>打开或关闭HTTP服务</td></tr><tr><td>悬浮按钮</td><td>打开或关闭悬浮按钮, 点击出现的按钮可捕获快照</td></tr><tr><td>捕获快照</td><td>点击后捕获当前应用界面快照</td></tr></tbody></table><h2 id="import-data" tabindex="-1">导入数据 <a class="header-anchor" href="#import-data" aria-label="Permalink to "导入数据 {#import-data}""></a></h2><p>你可以在 主页-订阅-右上角菜单-导入数据 中导入订阅规则数据</p><p>但是这样需要在打开的文件管理器中手动选择路径不太方便</p><p>另一个更方便的迁移数据的方式是</p><ul><li><p>旧设备: 导出数据 - 选择分享到 QQ 发送给自己</p></li><li><p>新设备: 在 QQ 中打开分享的文件 - 用其他应用打开 - 选择 GKD 导入数据</p></li></ul><p>上面的 QQ 也可以是其他传送软件, 只要支持用其他应用打开的时候有 GKD 即可</p>',20)]))}const _=a(l,[["render",i]]);export{u as __pageData,_ as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as a,o as e,c as d,au as r}from"./chunks/framework.DE7acwfO.js";const u=JSON.parse('{"title":"外部交互","description":"","frontmatter":{},"headers":[],"relativePath":"guide/external.md","filePath":"guide/external.md","lastUpdated":1746214509000}'),l={name:"guide/external.md"};function i(o,t,p,h,n,c){return e(),d("div",null,t[0]||(t[0]=[r("",20)]))}const _=a(l,[["render",i]]);export{u as __pageData,_ as default};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import{_ as o,B as r,o as d,c,au as i,G as l,j as e,a as n,w as u}from"./chunks/framework.DE7acwfO.js";const S=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1746214509000}'),m={name:"guide/faq.md"};function g(h,a,b,k,P,f){const t=r("GImg"),s=r("ImageTable"),p=r("NImageGroup");return d(),c("div",null,[a[4]||(a[4]=i('<h1 id="title" tabindex="-1">常见问题 <a class="header-anchor" href="#title" aria-label="Permalink to "常见问题 {#title}""></a></h1><p>一些可能影响使用体验的问题和对应解决方案, 某些方案可能并不适用您的机型系统</p><p>如您有更好的方案或想对现有方案进行补充, 请点击底部 <code>为此页提供修改建议</code></p><h2 id="play-diff" tabindex="-1">渠道区别 <a class="header-anchor" href="#play-diff" aria-label="Permalink to "渠道区别 {#play-diff}""></a></h2><p>目前有两个渠道在使用,它们可互相安装覆盖,但存在区别</p><table tabindex="0"><thead><tr><th style="text-align:center;">渠道</th><th style="text-align:center;">下载方式</th><th style="text-align:center;">自更新逻辑</th><th style="text-align:center;"><a href="./#restriction">受限制的设置</a></th><th style="text-align:center;">无障碍工具声明</th></tr></thead><tbody><tr><td style="text-align:center;">gkd</td><td style="text-align:center;"><a href="/guide/">官网/GitHub</a></td><td style="text-align:center;">弹窗更新(镜像加速)</td><td style="text-align:center;">可能受限</td><td style="text-align:center;">有</td></tr><tr><td style="text-align:center;">play</td><td style="text-align:center;"><a href="https://play.google.com/store/apps/details?id=li.songe.gkd" target="_blank" rel="noreferrer">Google Play</a></td><td style="text-align:center;">无(必须Google Play)</td><td style="text-align:center;">不会</td><td style="text-align:center;">无</td></tr></tbody></table><p>根据 <a href="https://support.google.com/googleplay/android-developer/answer/10964491?hl=zh-Hans" target="_blank" rel="noreferrer">Google Play 政策</a>,必须以 <strong>支持残障人士为主要用途</strong> 才能使用 <strong>无障碍工具声明</strong></p><p>如果没有这个声明,系统会隔段时间显示通知(<a href="https://github.com/orgs/gkd-kit/discussions/744" target="_blank" rel="noreferrer">discussions#744</a>),内容如下</p><p><code>查看权限设置(GKD可以查看和控制您的屏幕。点按即可查看。)</code></p><p>如果你无法忍受这个通知,切换到 gkd 渠道即可</p><h2 id="power" tabindex="-1">耗电说明 <a class="header-anchor" href="#power" aria-label="Permalink to "耗电说明 {#power}""></a></h2><p>首先 GKD 默认情况下并不耗电,有的人以为关闭更新检测,关闭日志就能减少耗电,并不正确</p><p>真正的耗电在于 启用的规则 和 当前应用界面无障碍节点数量及无障碍事件刷新频率</p><p>如果想追求低耗电,那应该开启少量的规则,由于之前的默认规则数量有 1300+,很多人喜欢无脑开启规则</p><p>甚至有的用户同时开启多个订阅, 而这些订阅基本都 fork 自默认订阅, 这相当于同时开启多个重复规则</p><p>开启这么多规则,并且在这些规则匹配的界面使用手机,不耗电是不可能的</p><p>此外,某些软件如抖音的无障碍节点数量比较多,并且产生无障碍事件频率也比较高</p><p>长时间下使用此类软件的规则会比较耗电,请自行考虑后再启用</p><h2 id="shizuku" tabindex="-1">shizuku <a class="header-anchor" href="#shizuku" aria-label="Permalink to "shizuku""></a></h2><h3 id="exact-activity" tabindex="-1">界面识别 <a class="header-anchor" href="#exact-activity" aria-label="Permalink to "界面识别 {#exact-activity}""></a></h3><p>单纯靠无障碍提供的 API 无法准备判断当前处于应用的哪个子界面 (activityId)</p><p>在此种情况下, GKD 将运行当前应用的所有规则, 容易造成无效匹配和误触</p><p>在 <code>设置 - shizuku</code> 中开启 <code>界面识别</code> 可以让 GKD 准确识别当前应用子界面</p><h3 id="forced-tap" tabindex="-1">强制点击 <a class="header-anchor" href="#forced-tap" aria-label="Permalink to "强制点击 {#forced-tap}""></a></h3><p>使用无障碍 API 发出的点击事件 <code>clickCenter</code> 会被某些应用识别到, 导致点击表现无效</p><p>在 <code>设置 - shizuku</code> 中开启 <code>强制点击</code> 可以让 GKD 发出的点击事件无法被应用识别到, 从而正常触发点击</p><h3 id="work-profile" tabindex="-1">工作空间 <a class="header-anchor" href="#work-profile" aria-label="Permalink to "工作空间 {#work-profile}""></a></h3><p>某些用户可能选择将应用安装到其他用户空间隔离</p><p>这导致 GKD 无法从当前应用列表识别到应用已安装</p><p>在 <code>设置 - shizuku</code> 中开启 <code>工作空间</code> 可以让 GKD 识别到其他用户空间的应用</p><ul><li>只识别主空间未安装应用</li><li>只在主空间有应用变更行为时才全量更新用户空间应用列表</li></ul><p>如果不开启此项, 对于未安装的应用, 有以下影响</p><ul><li>全局规则 的内部配置禁用失效</li><li>应用规则 不会启用</li></ul><p>对于 <code>全局规则</code> 可使用手动编辑禁用, 添加 appId 到禁用列表后将生效</p><p>若要开启 <code>应用规则</code>, 在对应订阅-应用规则-显示未安装应用-打开右侧开关即可</p><details class="details custom-block"><summary>不生效原因</summary><p>这是因为某些订阅有将近 2k 个应用, 而一般用户最多使用到 200 个</p><p>如果将 未安装的应用 的应用规则也全部开启, 这将额外占用 1800 个应用的无效规则配置内存</p></details><h2 id="persistent" tabindex="-1">后台运行 <a class="header-anchor" href="#persistent" aria-label="Permalink to "后台运行 {#persistent}""></a></h2><p>如何尽量保持后台运行不被系统暂停/杀死</p><ul><li>任务切换界面给 GKD 应用卡片加锁即可</li></ul><p>一般情况下, 使用此项即可正常后台运行, 如果不行请使用下面的步骤</p><ul><li>打开 GKD 首页, 开启 <code>常驻通知</code></li><li>允许后台活动, 关闭省电策略, 或者设置 GKD 的省电策略为无限制</li><li>允许 GKD 自启动</li></ul><p>某些系统如 MagicOS9 需要打开 <code>允许后台活动</code>, 否则 GKD 在后台时会被系统暂停执行</p>',42)),l(t,{src:"0038.jpg"}),a[5]||(a[5]=e("h2",{id:"restriction",tabindex:"-1"},[n("受限制的设置 "),e("a",{class:"header-anchor",href:"#restriction","aria-label":'Permalink to "受限制的设置 {#restriction}"'},"")],-1)),a[6]||(a[6]=e("p",null,"无障碍列表界面提示",-1)),a[7]||(a[7]=e("blockquote",null,[e("p",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1)),a[8]||(a[8]=e("p",null,"或提示",-1)),a[9]||(a[9]=e("blockquote",null,[e("p",null,"系统已拒绝向此应用授予访问权限")],-1)),l(s,{images:[["0014.png","0039.jpg"]]}),a[10]||(a[10]=e("p",null,"这是因为某些系统对于 不在应用商店等可信任来源安装的 不能直接开启无障碍权限",-1)),a[11]||(a[11]=e("p",null,"解除步骤: GKD 应用信息 - 允许受限制的设置, 注意某些设备位置不太一样",-1)),e("table",null,[a[0]||(a[0]=e("thead",null,[e("tr",null,[e("th",{class:"text-center!"},[n("原生系统 "),e("br"),n(" 应用信息 - 右上角 - 允许受限制的设置")]),e("th",{class:"text-center!"},[n("小米系统 "),e("br"),n(" 应用信息 - 高级设置 - 允许受限制的设置")])])],-1)),e("tbody",null,[l(p,null,{default:u(()=>[e("tr",null,[e("td",null,[l(t,{src:"0016.png"})]),e("td",null,[l(t,{src:"0040.jpg"})])])]),_:1})])]),a[12]||(a[12]=i('<p>如果按步骤开启后 无障碍列表 仍然提示不可用, 可尝试 <strong>重启设备</strong></p><p>如果应用信息右上角没有 <code>允许受限制的设置</code> 选项, 请参考下一节方案</p><h2 id="unable_open_a11y" tabindex="-1">无法开启无障碍 <a class="header-anchor" href="#unable_open_a11y" aria-label="Permalink to "无法开启无障碍 {#unable_open_a11y}""></a></h2><p>某些系统如 ColorOS 有更严格的无障碍限制</p><p>如果你是其他来源安装或 GKD 内部更新后也会无法开启无障碍, 表现以下行为</p><ul><li>提示 受限制的设置, 但是没有找到 允许受限制的设置 的选项</li><li>不提示 受限制的设置, 无障碍开启按钮可点击, 但点击后没有响应, 无法开启</li></ul><p>可以通过以下方式解决, 可在 设置 - 关于 - 分享应用 获取 APK 文件</p>',7)),e("ul",null,[a[2]||(a[2]=e("li",null,[e("p",null,"使用系统信任的方式进行安装, 例如在系统文件管理中查看 APK 文件后点击安装, 是覆盖安装无需卸载")],-1)),a[3]||(a[3]=e("li",null,[e("p",null,[n("如果使用系统安装器, 但是在冻结了应用安装器 "),e("code",null,"com.oplus.appdetail"),n(" 状态下安装的 APK, 需解冻后重新安装")])],-1)),e("li",null,[a[1]||(a[1]=e("p",null,[n("使用 "),e("a",{href:"https://appops.rikka.app/",target:"_blank",rel:"noreferrer"},"App Ops"),n(" 在权限管理中手动授予 ACCESS_RESTRICTED_SETTINGS 权限")],-1)),l(t,{src:"0037.png"})])]),a[13]||(a[13]=e("h2",{id:"close_warn_dialog",tabindex:"-1"},[n("关闭无障碍警告弹窗 "),e("a",{class:"header-anchor",href:"#close_warn_dialog","aria-label":'Permalink to "关闭无障碍警告弹窗 {#close_warn_dialog}"'},"")],-1)),a[14]||(a[14]=e("div",{class:"tip custom-block github-alert"},[e("p",{class:"custom-block-title"},"建议"),e("p",null,[n("授予 "),e("code",null,"写入安全设置权限"),n(" 后可自行开启无障碍, 而无需设置此项")])],-1)),a[15]||(a[15]=e("p",null,"这个方案不一定适用所有机型",-1)),a[16]||(a[16]=e("p",null,"大多数设备开启无障碍时都会出现 10s 的无障碍警告弹窗",-1)),a[17]||(a[17]=e("p",null,"若是只需要开启一次则无所谓但是如果开启次数比较多每次都有这个警告等待就很烦人了",-1)),l(s,{images:[["0004.png","0005.png"]]}),a[18]||(a[18]=e("p",null,[n("你可能已经看到这个界面还有一个开关, 也就是下方的 "),e("code",null,"快捷方式"),n(" 开关")],-1)),a[19]||(a[19]=e("p",null,"打开一次下面这个快捷方式开关后, 上面的的开启按钮就不会出现警告弹窗了, 但是你会发现屏幕侧边出现了一个应用小图标, 多数情况下我们并不需要这个图标",-1)),a[20]||(a[20]=e("p",null,'到无障碍界面-"无障碍"按钮-使用按钮或手势-点击切换为手势即可隐藏',-1)),a[21]||(a[21]=e("p",null,"以 Xiaomi HyperOS 为例子, 下面是完整的关闭弹窗流程截图",-1)),l(s,{images:[["0009.png","0010.png","0011.png","0012.png"]]}),a[22]||(a[22]=i(`<h2 id="adb_failed" tabindex="-1">adb 授权失败 <a class="header-anchor" href="#adb_failed" aria-label="Permalink to "adb 授权失败 {#adb_failed}""></a></h2><p>在使用 adb 手动授予 <code>写入安全设置权限</code> 时可能会提示权限不够,具体报错如下:</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>adb shell pm grant li.songe.gkd android.permission.WRITE_SECURE_SETTINGS</span></span>
|
|
2
|
-
<span class="line"><span></span></span>
|
|
3
|
-
<span class="line"><span>Exception occurred while executing 'grant':</span></span>
|
|
4
|
-
<span class="line"><span>java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS.</span></span>
|
|
5
|
-
<span class="line"><span> at android.app.ContextImpl.enforce(ContextImpl.java:2384)</span></span>
|
|
6
|
-
<span class="line"><span> at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2412)</span></span>
|
|
7
|
-
<span class="line"><span> at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermissionInternal(PermissionManagerServiceImpl.java:1383)</span></span>
|
|
8
|
-
<span class="line"><span> at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermission(PermissionManagerServiceImpl.java:1365)</span></span>
|
|
9
|
-
<span class="line"><span> at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:573)</span></span>
|
|
10
|
-
<span class="line"><span> at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:610)</span></span>
|
|
11
|
-
<span class="line"><span> at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2717)</span></span>
|
|
12
|
-
<span class="line"><span> at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:301)</span></span>
|
|
13
|
-
<span class="line"><span> at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)</span></span>
|
|
14
|
-
<span class="line"><span> at android.os.ShellCommand.exec(ShellCommand.java:38)</span></span>
|
|
15
|
-
<span class="line"><span> at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:6840)</span></span>
|
|
16
|
-
<span class="line"><span> at android.os.Binder.shellCommand(Binder.java:1092)</span></span>
|
|
17
|
-
<span class="line"><span> at android.os.Binder.onTransact(Binder.java:912)</span></span>
|
|
18
|
-
<span class="line"><span> at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4352)</span></span>
|
|
19
|
-
<span class="line"><span> at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6824)</span></span>
|
|
20
|
-
<span class="line"><span> at android.os.Binder.execTransactInternal(Binder.java:1392)</span></span>
|
|
21
|
-
<span class="line"><span> at android.os.Binder.execTransact(Binder.java:1299)</span></span></code></pre></div><p>下面参考 <a href="https://shizuku.rikka.app/guide/setup/#faq" target="_blank" rel="noreferrer">shizuku 文档</a> 的解决方案</p><ul><li><p>HyperOS/MIUI(小米、POCO)<br> 在 <code>开发者选项</code> 中开启 <code>USB 调试(安全设置)</code>,注意不是 <code>USB 调试</code><br> 如果开启 <code>USB 调试(安全设置)</code>后继续报错,可以尝试在 adb 命令前添加 sudo <br> 提升权限后再执行 adb 命令</p></li><li><p>ColorOS(OPPO & OnePlus)<br> 在 <code>开发者选项</code> 中关闭 <code>权限监控</code> 或打开 <code>禁止权限监控</code></p></li><li><p>Flyme(魅族)<br> 在 <code>开发者选项</code> 中关闭 <code>Flyme 支付保护</code></p></li></ul><p>关闭限制后重新运行命令即可</p>`,6))])}const v=o(m,[["render",g]]);export{S as __pageData,v as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as o,B as r,o as d,c,au as i,G as l,j as e,a as n,w as u}from"./chunks/framework.DE7acwfO.js";const S=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1746214509000}'),m={name:"guide/faq.md"};function g(h,a,b,k,P,f){const t=r("GImg"),s=r("ImageTable"),p=r("NImageGroup");return d(),c("div",null,[a[4]||(a[4]=i("",42)),l(t,{src:"0038.jpg"}),a[5]||(a[5]=e("h2",{id:"restriction",tabindex:"-1"},[n("受限制的设置 "),e("a",{class:"header-anchor",href:"#restriction","aria-label":'Permalink to "受限制的设置 {#restriction}"'},"")],-1)),a[6]||(a[6]=e("p",null,"无障碍列表界面提示",-1)),a[7]||(a[7]=e("blockquote",null,[e("p",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1)),a[8]||(a[8]=e("p",null,"或提示",-1)),a[9]||(a[9]=e("blockquote",null,[e("p",null,"系统已拒绝向此应用授予访问权限")],-1)),l(s,{images:[["0014.png","0039.jpg"]]}),a[10]||(a[10]=e("p",null,"这是因为某些系统对于 不在应用商店等可信任来源安装的 不能直接开启无障碍权限",-1)),a[11]||(a[11]=e("p",null,"解除步骤: GKD 应用信息 - 允许受限制的设置, 注意某些设备位置不太一样",-1)),e("table",null,[a[0]||(a[0]=e("thead",null,[e("tr",null,[e("th",{class:"text-center!"},[n("原生系统 "),e("br"),n(" 应用信息 - 右上角 - 允许受限制的设置")]),e("th",{class:"text-center!"},[n("小米系统 "),e("br"),n(" 应用信息 - 高级设置 - 允许受限制的设置")])])],-1)),e("tbody",null,[l(p,null,{default:u(()=>[e("tr",null,[e("td",null,[l(t,{src:"0016.png"})]),e("td",null,[l(t,{src:"0040.jpg"})])])]),_:1})])]),a[12]||(a[12]=i("",7)),e("ul",null,[a[2]||(a[2]=e("li",null,[e("p",null,"使用系统信任的方式进行安装, 例如在系统文件管理中查看 APK 文件后点击安装, 是覆盖安装无需卸载")],-1)),a[3]||(a[3]=e("li",null,[e("p",null,[n("如果使用系统安装器, 但是在冻结了应用安装器 "),e("code",null,"com.oplus.appdetail"),n(" 状态下安装的 APK, 需解冻后重新安装")])],-1)),e("li",null,[a[1]||(a[1]=e("p",null,[n("使用 "),e("a",{href:"https://appops.rikka.app/",target:"_blank",rel:"noreferrer"},"App Ops"),n(" 在权限管理中手动授予 ACCESS_RESTRICTED_SETTINGS 权限")],-1)),l(t,{src:"0037.png"})])]),a[13]||(a[13]=e("h2",{id:"close_warn_dialog",tabindex:"-1"},[n("关闭无障碍警告弹窗 "),e("a",{class:"header-anchor",href:"#close_warn_dialog","aria-label":'Permalink to "关闭无障碍警告弹窗 {#close_warn_dialog}"'},"")],-1)),a[14]||(a[14]=e("div",{class:"tip custom-block github-alert"},[e("p",{class:"custom-block-title"},"建议"),e("p",null,[n("授予 "),e("code",null,"写入安全设置权限"),n(" 后可自行开启无障碍, 而无需设置此项")])],-1)),a[15]||(a[15]=e("p",null,"这个方案不一定适用所有机型",-1)),a[16]||(a[16]=e("p",null,"大多数设备开启无障碍时都会出现 10s 的无障碍警告弹窗",-1)),a[17]||(a[17]=e("p",null,"若是只需要开启一次则无所谓但是如果开启次数比较多每次都有这个警告等待就很烦人了",-1)),l(s,{images:[["0004.png","0005.png"]]}),a[18]||(a[18]=e("p",null,[n("你可能已经看到这个界面还有一个开关, 也就是下方的 "),e("code",null,"快捷方式"),n(" 开关")],-1)),a[19]||(a[19]=e("p",null,"打开一次下面这个快捷方式开关后, 上面的的开启按钮就不会出现警告弹窗了, 但是你会发现屏幕侧边出现了一个应用小图标, 多数情况下我们并不需要这个图标",-1)),a[20]||(a[20]=e("p",null,'到无障碍界面-"无障碍"按钮-使用按钮或手势-点击切换为手势即可隐藏',-1)),a[21]||(a[21]=e("p",null,"以 Xiaomi HyperOS 为例子, 下面是完整的关闭弹窗流程截图",-1)),l(s,{images:[["0009.png","0010.png","0011.png","0012.png"]]}),a[22]||(a[22]=i("",6))])}const v=o(m,[["render",g]]);export{S as __pageData,v as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as p,B as t,o as d,c as g,j as a,a as l,G as n,w as m,au as _}from"./chunks/framework.DE7acwfO.js";const y=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1746214509000}'),c={name:"guide/index.md"};function u(f,e,h,b,k,T){const r=t("AppInnerDownloadTip"),o=t("ClientOnly"),i=t("ApkTable"),s=t("ImageTable");return d(),g("div",null,[e[0]||(e[0]=a("h1",{id:"title",tabindex:"-1"},[l("开始使用 "),a("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "开始使用 {#title}"'},"")],-1)),e[1]||(e[1]=a("h2",{id:"install",tabindex:"-1"},[l("安装 "),a("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "安装 {#install}"'},"")],-1)),n(o,null,{default:m(()=>[n(r)]),_:1}),n(i),e[2]||(e[2]=_('<details class="details custom-block"><summary>手机浏览器下载失败?</summary><p>某些手机浏览器存在自定义拦截会导致下载失败, 建议使用 <a href="https://viayoo.com" target="_blank" rel="noreferrer">Via</a> 浏览器下载</p></details><p>其它下载方式</p><ul><li><a href="https://play.google.com/store/apps/details?id=li.songe.gkd" target="_blank" rel="noreferrer">Google Play</a> <a href="./faq#play-diff">区别</a></li><li><a href="https://github.com/gkd-kit/gkd/releases/latest" target="_blank" rel="noreferrer">Github Releases</a></li></ul><p>下载完毕后, 在您的 Android 手机上安装并打开</p><h2 id="usage" tabindex="-1">使用 <a class="header-anchor" href="#usage" aria-label="Permalink to "使用 {#usage}""></a></h2><p>打开后进入 GKD 的首页, 要想 GKD 正常工作需要授权无障碍权限</p><p>点击无障碍权限右侧的 <code>授权</code> 按钮即可前往设置的无障碍界面授权</p><p>以 Xiaomi HyperOS 为例, 下面为完整的授权流程截图</p>',8)),n(s,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),e[3]||(e[3]=a("p",null,[l("如遇到问题可在 "),a("a",{href:"/guide/faq"},"常见问题"),l(" 查阅解决方案")],-1))])}const A=p(c,[["render",u]]);export{y as __pageData,A as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as p,B as t,o as d,c as g,j as a,a as l,G as n,w as m,au as _}from"./chunks/framework.DE7acwfO.js";const y=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1746214509000}'),c={name:"guide/index.md"};function u(f,e,h,b,k,T){const r=t("AppInnerDownloadTip"),o=t("ClientOnly"),i=t("ApkTable"),s=t("ImageTable");return d(),g("div",null,[e[0]||(e[0]=a("h1",{id:"title",tabindex:"-1"},[l("开始使用 "),a("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "开始使用 {#title}"'},"")],-1)),e[1]||(e[1]=a("h2",{id:"install",tabindex:"-1"},[l("安装 "),a("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "安装 {#install}"'},"")],-1)),n(o,null,{default:m(()=>[n(r)]),_:1}),n(i),e[2]||(e[2]=_("",8)),n(s,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),e[3]||(e[3]=a("p",null,[l("如遇到问题可在 "),a("a",{href:"/guide/faq"},"常见问题"),l(" 查阅解决方案")],-1))])}const A=p(c,[["render",u]]);export{y as __pageData,A as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as d,o as e,c as o,au as a}from"./chunks/framework.DE7acwfO.js";const p=JSON.parse('{"title":"属性方法","description":"","frontmatter":{},"headers":[],"relativePath":"guide/node.md","filePath":"guide/node.md","lastUpdated":1746214509000}'),c={name:"guide/node.md"};function r(n,t,l,i,h,b){return e(),o("div",null,t[0]||(t[0]=[a('<h1 id="title" tabindex="-1">属性方法 <a class="header-anchor" href="#title" aria-label="Permalink to "属性方法 {#title}""></a></h1><p>此章节介绍各个类型可用的属性及其方法</p><h2 id="null" tabindex="-1">null <a class="header-anchor" href="#null" aria-label="Permalink to "null""></a></h2><div class="note custom-block github-alert"><p class="custom-block-title">提示</p><p><code>null</code> 无任何属性方法, 并且在无特殊说明时, 属性方法当调用者或者参数是 <code>null</code> 时, 均返回 <code>null</code></p></div><p>当 <code>name</code> 是 <code>null</code> 时, <code>name.length</code> 为 <code>null</code></p><p>当 <code>parent</code> 是 <code>null</code> 时, <code>parent.getChild(0)</code> 为 <code>null</code></p><p>当 <code>index</code> 是 <code>null</code> 时, <code>parent.getChild(index)</code> 为 <code>null</code></p><h2 id="boolean" tabindex="-1">boolean <a class="header-anchor" href="#boolean" aria-label="Permalink to "boolean""></a></h2><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>toInt</td><td></td><td><code>int</code></td><td>转为 0 或 1</td></tr><tr><td>or</td><td><code>boolean</code></td><td><code>boolean</code></td><td>a || b</td></tr><tr><td>and</td><td><code>boolean</code></td><td><code>boolean</code></td><td>a && b</td></tr><tr><td>not</td><td></td><td><code>boolean</code></td><td>!a</td></tr><tr><td>ifElse</td><td><code>T</code>, <code>T</code></td><td><code>T</code></td><td>if(a) T else T <br> T 是任意类型, 两个参数均支持为 null</td></tr></tbody></table><h2 id="int" tabindex="-1">int <a class="header-anchor" href="#int" aria-label="Permalink to "int""></a></h2><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>toString</td><td></td><td><a href="#string"><code>string</code></a></td><td>转为10进制字符串</td></tr><tr><td>toString</td><td><code>int</code></td><td><code>string</code></td><td>转为对应进制的字符串</td></tr><tr><td>plus</td><td><code>int</code></td><td><code>string</code></td><td>加上</td></tr><tr><td>minus</td><td><code>int</code></td><td><code>string</code></td><td>减去</td></tr><tr><td>times</td><td><code>int</code></td><td><code>string</code></td><td>乘以</td></tr><tr><td>div</td><td><code>int</code></td><td><code>string</code></td><td>除以</td></tr><tr><td>rem</td><td><code>int</code></td><td><code>string</code></td><td>取余</td></tr><tr><td>more</td><td><code>int</code></td><td><a href="#boolean"><code>boolean</code></a></td><td>a > b</td></tr><tr><td>moreEqual</td><td><code>int</code></td><td><code>boolean</code></td><td>a >= b</td></tr><tr><td>less</td><td><code>int</code></td><td><code>boolean</code></td><td>a < b</td></tr><tr><td>lessEqual</td><td><code>int</code></td><td><code>boolean</code></td><td>a <= b</td></tr></tbody></table><h2 id="string" tabindex="-1">string <a class="header-anchor" href="#string" aria-label="Permalink to "string""></a></h2><table tabindex="0"><thead><tr><th>标识符</th><th>属性类型</th><th>描述</th></tr></thead><tbody><tr><td>length</td><td><a href="#int"><code>int</code></a></td><td>字符串长度</td></tr></tbody></table><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>get</td><td><a href="#int"><code>int</code></a></td><td><code>string</code></td><td>获取对应索引字符串</td></tr><tr><td>at</td><td><code>int</code></td><td><code>string</code></td><td>同上,但是参数传负数时从最后一个字符取</td></tr><tr><td>substring</td><td><code>int</code></td><td><code>string</code></td><td>截取指定索引到结尾字符串</td></tr><tr><td>substring</td><td><code>int</code>,<code>int</code></td><td><code>string</code></td><td>截取指定间隔字符串</td></tr><tr><td>toInt</td><td></td><td><code>int</code></td><td>转为10进制数字</td></tr><tr><td>toInt</td><td><code>int</code></td><td><code>int</code></td><td>转为指定进制的数字</td></tr><tr><td>indexOf</td><td><code>string</code></td><td><code>int</code></td><td>查找指定字符串的索引</td></tr><tr><td>indexOf</td><td><code>string</code>,<code>int</code></td><td><code>int</code></td><td>从指定索引开始查找指定字符串的索引</td></tr></tbody></table><h2 id="node" tabindex="-1">node <a class="header-anchor" href="#node" aria-label="Permalink to "node""></a></h2><div class="important custom-block github-alert"><p class="custom-block-title">重要提示</p><p>此类型下以 _ 开头的属性只能在网页快照调试工具上使用, 真机不可用</p></div><table tabindex="0"><thead><tr><th>标识符</th><th>属性类型</th><th>描述</th></tr></thead><tbody><tr><td>_id</td><td><a href="#int"><code>int</code></a></td><td></td></tr><tr><td>_pid</td><td><code>int</code></td><td></td></tr><tr><td>id</td><td><a href="#string"><code>string</code></a></td><td></td></tr><tr><td>vid</td><td><code>string</code></td><td></td></tr><tr><td>name</td><td><code>string</code></td><td></td></tr><tr><td>text</td><td><code>string</code></td><td></td></tr><tr><td>desc</td><td><code>string</code></td><td></td></tr><tr><td>clickable</td><td><code>boolean</code></td><td></td></tr><tr><td>focusable</td><td><code>boolean</code></td><td></td></tr><tr><td>checkable</td><td><code>boolean</code></td><td></td></tr><tr><td>checked</td><td><code>boolean</code></td><td></td></tr><tr><td>editable</td><td><code>boolean</code></td><td></td></tr><tr><td>longClickable</td><td><code>boolean</code></td><td></td></tr><tr><td>visibleToUser</td><td><code>boolean</code></td><td></td></tr><tr><td>left</td><td><code>int</code></td><td></td></tr><tr><td>top</td><td><code>int</code></td><td></td></tr><tr><td>right</td><td><code>int</code></td><td></td></tr><tr><td>bottom</td><td><code>int</code></td><td></td></tr><tr><td>width</td><td><code>int</code></td><td></td></tr><tr><td>height</td><td><code>int</code></td><td></td></tr><tr><td>childCount</td><td><code>int</code></td><td></td></tr><tr><td>index</td><td><code>int</code></td><td></td></tr><tr><td>depth</td><td><code>int</code></td><td></td></tr><tr><td>parent</td><td><a href="#node"><code>node</code></a></td><td>获取父节点</td></tr></tbody></table><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>getChild</td><td><code>int</code></td><td><a href="#node"><code>node</code></a></td><td>获取指定索引的子节点</td></tr></tbody></table><h2 id="context" tabindex="-1">context <a class="header-anchor" href="#context" aria-label="Permalink to "context""></a></h2><p>context 具有 <a href="#node">node</a> 的所有属性方法, 下面只介绍额外属性方法</p><table tabindex="0"><thead><tr><th>标识符</th><th>属性类型</th><th>描述</th></tr></thead><tbody><tr><td>prev</td><td><a href="#context"><code>context</code></a></td><td>右侧属性选择器的节点上下文 <br> 最右侧的 prev=null</td></tr><tr><td>current</td><td><a href="#node"><code>node</code></a></td><td>当前节点 <br> current.id=id</td></tr></tbody></table><p>示例</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>FrameLayout[prev.name$='ImageView'] > ImageView[current.name=name]</span></span></code></pre></div><p>中的 prev 就是 FrameLayout 右侧的 ImageView, current 就是 ImageView</p><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>getPrev</td><td>int</td><td><a href="#context"><code>context</code></a></td><td>快捷获取深层 prev <br> getPrev(0) -> prev <br> getPrev(1) -> prev.prev <br> getPrev(2) -> prev.prev.prev</td></tr></tbody></table><h2 id="global" tabindex="-1">global <a class="header-anchor" href="#global" aria-label="Permalink to "global""></a></h2><p>global 具有 <a href="#context">context</a> 的所有属性方法, 并且没有任何属性方法能获取 global 的引用, 下面只介绍额外属性方法</p><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>equal</td><td><code>T</code>, <code>T</code></td><td><a href="#boolean"><code>boolean</code></a></td><td>a==b <br> T 是任意类型, a,b 允许 null</td></tr><tr><td>notEqual</td><td><code>T</code>, <code>T</code></td><td><code>boolean</code></td><td>a!=b</td></tr></tbody></table><p>示例</p><div class="language-text vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>[name=''][prev.name=''][current.name=''][parent.name='']</span></span></code></pre></div><ul><li>第一个 <code>name</code> 来自 <a href="#global">global</a>, 实际上任何 <code>xxx</code>/<code>xxx()</code> 都来自 global</li><li>第二个 <code>prev.name</code> 来自 <a href="#context">context</a></li><li>后续的 <code>current.name</code>/<code>parent.name</code> 都来自 <a href="#node">node</a></li></ul>',31)]))}const g=d(c,[["render",r]]);export{p as __pageData,g as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as d,o as e,c as o,au as a}from"./chunks/framework.DE7acwfO.js";const p=JSON.parse('{"title":"属性方法","description":"","frontmatter":{},"headers":[],"relativePath":"guide/node.md","filePath":"guide/node.md","lastUpdated":1746214509000}'),c={name:"guide/node.md"};function r(n,t,l,i,h,b){return e(),o("div",null,t[0]||(t[0]=[a("",31)]))}const g=d(c,[["render",r]]);export{p as __pageData,g as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as o,o as d,c as t,au as c}from"./chunks/framework.DE7acwfO.js";const b=JSON.parse('{"title":"查询优化","description":"","frontmatter":{},"headers":[],"relativePath":"guide/optimize.md","filePath":"guide/optimize.md","lastUpdated":1746214509000}'),i={name:"guide/optimize.md"};function l(a,e,n,r,p,u){return d(),t("div",null,e[0]||(e[0]=[c('<h1 id="title" tabindex="-1">查询优化 <a class="header-anchor" href="#title" aria-label="Permalink to "查询优化 {#title}""></a></h1><p>一些关于查询优化的说明</p><h2 id="query-root" tabindex="-1">查找根节点 <a class="header-anchor" href="#query-root" aria-label="Permalink to "查找根节点 {#query-root}""></a></h2><p>选择器通过满足下列格式的属性选择器标识根节点</p><ul><li><code>[parent=null]</code></li><li><code>A[id='xxx'][parent=null][text='xxx']</code></li></ul><p>即只需存在一个 <code>[parent=null]</code> 就满足条件, 以下是对此的优化</p><h3 id="enforce" tabindex="-1">主动查询 <a class="header-anchor" href="#enforce" aria-label="Permalink to "主动查询 {#enforce}""></a></h3><p>一般的选择器如 <code>LinearLayout > TextView</code>, 选择器需要从 根节点/事件节点 使用深度先序顺序遍历子孙节点并判断是否满足条件</p><p>如果屏幕上有 n 个节点, 判断逻辑需要运行 n 次</p><p>但是如果选择器是类似 <code>TextView <3 LinearLayout <2 [parent=null]</code>, 由于在右侧标明了从根节点查找</p><p>因此上面的 <code>深度先序顺序遍历子孙节点</code> 将省略, 只进行一次判断, 不需要判断 n 次</p><p>但是如果你在子查询里使用 <code><<n</code>, 例如 <code>TextView <<n [parent=null]</code></p><p>根据上面说明的优化, 虽然也只有一次判断, 但是由于 <code><<n</code> 导致内部的子判断也是 n 次, 实际上没有优化判断次数</p><div class="tip custom-block github-alert"><p class="custom-block-title">提示</p><p>实际上从根节点开始匹配并且目标不是根节点的选择器如 <code>A > B</code> 都可等价为 <code>A > @B <<n [parent=null]</code></p></div><h3 id="ancestor" tabindex="-1">祖先节点 <a class="header-anchor" href="#ancestor" aria-label="Permalink to "祖先节点 {#ancestor}""></a></h3><p>在示例 <code>A <3 [parent=null] >n TextView</code> 中, 选择器找到 <code>TextView</code> 后, 根据 <code>>n</code> 表示任意祖先节点</p><p>在默认情况下, 如果 <code>TextView</code> 的层级很深, 那必然需要多次调用 获取父节点 才能最终匹配</p><p>但是如果左侧的选择器是 <code>[parent=null] >n</code>, 这表示找到根节点, 选择器此时不会去执行多次调用 获取父节点</p><p>在 GKD 内部, 根节点可以直接通过 API 获取, 因此 <code>[parent=null] >n</code> 只需要调用一次方法</p><h2 id="fast-query" tabindex="-1">快速查询 <a class="header-anchor" href="#fast-query" aria-label="Permalink to "快速查询 {#fast-query}""></a></h2><div class="note custom-block github-alert"><p class="custom-block-title">注意</p><p>此优化需要设置 <a href="/api/interfaces/RawCommonProps#fastquery">fastQuery</a> 来启用<br> 并且节点在快照面板被标识 <code>可快速查找</code>, 否则查找不到</p></div><h3 id="query-scene" tabindex="-1">查询场景 <a class="header-anchor" href="#query-scene" aria-label="Permalink to "查询场景 {#query-scene}""></a></h3><p>一般情况下, 选择器 <code>[vid="name"]</code> 需要从 根节点/事件节点 使用深度先序顺序遍历子孙节点并判断是否满足条件</p><p>但是 Android 提供了如下两个快速获取节点的 Api</p><ul><li><a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByViewId(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByViewId</a></li><li><a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByText(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByText</a></li></ul><p>这使得可以通过 <code>id</code>/<code>vid</code>/<code>text</code> 直接获取子孙节点</p><p>对此我们需要规定符合特定条件的选择器来调用这些 Api 从而跳过手动遍历子孙节点</p><h3 id="rule-format" tabindex="-1">规定格式 <a class="header-anchor" href="#rule-format" aria-label="Permalink to "规定格式 {#rule-format}""></a></h3><p>所有 <code>末尾属性选择器</code>的<code>第一个属性选择表达式</code>符合下面的结构之一</p><ul><li><code>[id='abc']</code></li><li><code>[vid='abc']</code></li><li><code>[text='abc']</code></li><li><code>[text^='abc']</code></li><li><code>[text*='abc']</code></li><li><code>[text$='abc']</code></li></ul><p>或者使用 <code>||</code> 将它们连接形成的逻辑表达式也符合条件, 即如下格式</p><ul><li><code>[id='abc' || id='abc2']</code></li><li><code>[id='abc' || vid='abc' || text='abc' || text^='abc' || text*='abc' || text$='abc']</code></li></ul><p>这些规定的格式都是为了提取 <code>id</code>/<code>vid</code>/<code>text</code> 来调用上面的两个 Android Api</p><p>下面给出实际示例: ✅ 表示符合格式, ❎ 表示不符合格式</p><ul><li><code>A > B + C[id='x'][childCount=2]</code> ✅</li><li><code>A > B + C[childCount=2][id='x']</code> ❎</li><li><code>A > B + C[id='x' || text='manbaout' || text*='ikun'][childCount=2]</code> ✅</li><li><code>A > B + C[childCount=2][id='x' || text='manbaout' || text*='ikun']</code> ❎</li></ul><p>这样一个选择器只能在右侧使用快速查询, 为了在中间的子选择器也能使用</p><p>额外规定如果属性选择器如果符合上面格式并且右侧是 <code><<n</code>, 也能在局部使用快速查找</p><p>示例 <code>A > B + C[id='x'][childCount=2] <<n D</code> 中的 <code>C[id='x'][childCount=2] <<n</code> 可以使用局部快速查找</p><p>下面给出满足局部查询优化的示例: ✅ 表示符合格式, ❎ 表示不符合格式</p><ul><li><code>A > B + C[id='x'][childCount=2] <<n D</code> ✅</li><li><code>A > B + C[childCount=2][id='x'] <<n D</code> ❎</li></ul><p>上面介绍的是只有一个局部选择器的情况, 下面给出多个局部快速查找的的示例</p><p>如 <code>A > C[id='x'] <<n D[id='y'] <<n E</code>, 其中的 <code>C[id='x'] <<n</code> 和 <code>D[id='y'] <<n</code> 都可以使用局部快速查找</p><p>如果使用 <code>||</code>, <code>&&</code> 连接多个选择器时, 快速查询为它们的并集</p><p>如果选择器被 <code>!(xxx)</code> 包裹, 则不符合快速查询格式, 也就是 <code>!</code> 会取消其内部所有的快速查询</p><ul><li><code>(A + B[id='b']) || (C + D[id='d'])</code> 的快速查询为 <code>id='b'</code>, <code>id='d'</code></li><li><code>(A + B[id='b']) && (C + D[id='d'])</code> 的快速查询为 <code>id='b'</code>, <code>id='d'</code></li><li><code>(A + B[id='b']) && !(C + D[id='d'])</code> 的快速查询为 <code>id='b'</code></li></ul><p>需要注意的是它们内部的 局部快速查找 仍然独立成立</p><ul><li><code>(X[id='x'] <<n A + B[id='b']) && !(Y[id='y'] <<n C + D[id='d'])</code> 的快速查询为 <code>id='b'</code>, 局部快速查询分别是 <code>id='x'</code>, <code>id='y'</code></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">注意</p><p>如果选择器不存在满足快速查找的格式, fastQuery 是否开启都不影响查询复杂度</p></div><h3 id="optimize-example" tabindex="-1">优化示例 <a class="header-anchor" href="#optimize-example" aria-label="Permalink to "优化示例 {#optimize-example}""></a></h3><p>以 <a href="https://i.gkd.li/i/16201605?gkd=W3ZpZD0iaW1hZ2UiXSA8PG4gW3ZpZD0icmVjeWNsZXJWaWV3Il0gPDxuIFt2aWQ9ImNvbnRlbnRfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>[vid="image"] <<n [vid="recyclerView"] <<n [vid="content_layout"]</code></a> 为例</p><p>上面的选择器存在 3 个快速查找优化</p><ul><li><code>[vid="content_layout"]</code> 从 根节点 优化查询找到 <code>content_layout</code></li><li><code>[vid="recyclerView"]</code> 从 <code>content_layout</code> 优化查询找到 <code>recyclerView</code></li><li><code>[vid="image"]</code> 从 <code>recyclerView</code> 优化查询找到 <code>image</code></li></ul><p>也就是只需要调用 <code>findAccessibilityNodeInfosByViewId</code> 3 次即可得到目标节点</p><p>如果是从根节点开始查询, 根据快照内的 选择器路径视图</p><ul><li><code>[vid="content_layout"]</code> 从 根节点 需要 7 次找到 <code>content_layout</code></li><li><code>[vid="recyclerView"]</code> 从 <code>content_layout</code> 需要 48 次找到 <code>recyclerView</code></li><li><code>[vid="image"]</code> 从 <code>recyclerView</code> 需要 44 次找到 <code>image</code></li></ul>',55)]))}const h=o(i,[["render",l]]);export{b as __pageData,h as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as o,o as d,c as t,au as c}from"./chunks/framework.DE7acwfO.js";const b=JSON.parse('{"title":"查询优化","description":"","frontmatter":{},"headers":[],"relativePath":"guide/optimize.md","filePath":"guide/optimize.md","lastUpdated":1746214509000}'),i={name:"guide/optimize.md"};function l(a,e,n,r,p,u){return d(),t("div",null,e[0]||(e[0]=[c("",55)]))}const h=o(i,[["render",l]]);export{b as __pageData,h as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as t,o as r,c as i,j as e,a as s}from"./chunks/framework.DE7acwfO.js";const u=JSON.parse('{"title":"隐私政策","description":"","frontmatter":{},"headers":[],"relativePath":"guide/privacy.md","filePath":"guide/privacy.md","lastUpdated":1746214509000}'),o={name:"guide/privacy.md"};function d(n,a,c,l,p,m){return r(),i("div",null,a[0]||(a[0]=[e("h1",{id:"title",tabindex:"-1"},[s("隐私政策 "),e("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "隐私政策 {#title}"'},"")],-1),e("p",null,"GKD 不收集或分享任何用户个人数据",-1)]))}const _=t(o,[["render",d]]);export{u as __pageData,_ as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as t,o as r,c as i,j as e,a as s}from"./chunks/framework.DE7acwfO.js";const u=JSON.parse('{"title":"隐私政策","description":"","frontmatter":{},"headers":[],"relativePath":"guide/privacy.md","filePath":"guide/privacy.md","lastUpdated":1746214509000}'),o={name:"guide/privacy.md"};function d(n,a,c,l,p,m){return r(),i("div",null,a[0]||(a[0]=[e("h1",{id:"title",tabindex:"-1"},[s("隐私政策 "),e("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "隐私政策 {#title}"'},"")],-1),e("p",null,"GKD 不收集或分享任何用户个人数据",-1)]))}const _=t(o,[["render",d]]);export{u as __pageData,_ as default};
|