@gkd-kit/docs 0.0.1730895910754 → 0.0.1730897048473

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.
Files changed (101) hide show
  1. package/.vitepress/dist/404.html +6 -5
  2. package/.vitepress/dist/api/index.html +10 -9
  3. package/.vitepress/dist/api/interfaces/RawApp.html +10 -9
  4. package/.vitepress/dist/api/interfaces/RawAppGroup.html +11 -10
  5. package/.vitepress/dist/api/interfaces/RawAppRule.html +11 -10
  6. package/.vitepress/dist/api/interfaces/RawAppRuleProps.html +10 -9
  7. package/.vitepress/dist/api/interfaces/RawCategory.html +10 -9
  8. package/.vitepress/dist/api/interfaces/RawCommonProps.html +11 -10
  9. package/.vitepress/dist/api/interfaces/RawGlobalApp.html +10 -9
  10. package/.vitepress/dist/api/interfaces/RawGlobalGroup.html +11 -10
  11. package/.vitepress/dist/api/interfaces/RawGlobalRule.html +11 -10
  12. package/.vitepress/dist/api/interfaces/RawGlobalRuleProps.html +10 -9
  13. package/.vitepress/dist/api/interfaces/RawGroupProps.html +11 -10
  14. package/.vitepress/dist/api/interfaces/RawRuleProps.html +11 -10
  15. package/.vitepress/dist/api/interfaces/RawSubscription.html +11 -10
  16. package/.vitepress/dist/api/type-aliases/IArray.html +11 -10
  17. package/.vitepress/dist/api/type-aliases/Integer.html +11 -10
  18. package/.vitepress/dist/api/type-aliases/Position.html +11 -10
  19. package/.vitepress/dist/assets/{api_index.md.C0dnYTbT.js → api_index.md.DS6dBvoV.js} +1 -1
  20. package/.vitepress/dist/assets/{api_index.md.C0dnYTbT.lean.js → api_index.md.DS6dBvoV.lean.js} +1 -1
  21. package/.vitepress/dist/assets/{api_interfaces_RawApp.md.MaMr82Du.js → api_interfaces_RawApp.md.CpknFkm7.js} +1 -1
  22. package/.vitepress/dist/assets/{api_interfaces_RawApp.md.MaMr82Du.lean.js → api_interfaces_RawApp.md.CpknFkm7.lean.js} +1 -1
  23. package/.vitepress/dist/assets/{api_interfaces_RawAppGroup.md.DZIwMwbH.js → api_interfaces_RawAppGroup.md.CXhqv6_u.js} +1 -1
  24. package/.vitepress/dist/assets/{api_interfaces_RawAppGroup.md.DZIwMwbH.lean.js → api_interfaces_RawAppGroup.md.CXhqv6_u.lean.js} +1 -1
  25. package/.vitepress/dist/assets/{api_interfaces_RawAppRule.md.CljODym8.js → api_interfaces_RawAppRule.md.C2hyO61N.js} +1 -1
  26. package/.vitepress/dist/assets/{api_interfaces_RawAppRule.md.CljODym8.lean.js → api_interfaces_RawAppRule.md.C2hyO61N.lean.js} +1 -1
  27. package/.vitepress/dist/assets/{api_interfaces_RawAppRuleProps.md.Dx3dRepU.js → api_interfaces_RawAppRuleProps.md.Do2vlPPZ.js} +1 -1
  28. package/.vitepress/dist/assets/{api_interfaces_RawAppRuleProps.md.Dx3dRepU.lean.js → api_interfaces_RawAppRuleProps.md.Do2vlPPZ.lean.js} +1 -1
  29. package/.vitepress/dist/assets/{api_interfaces_RawCategory.md.DJsQeHUo.js → api_interfaces_RawCategory.md.Me9mrXB7.js} +1 -1
  30. package/.vitepress/dist/assets/{api_interfaces_RawCategory.md.DJsQeHUo.lean.js → api_interfaces_RawCategory.md.Me9mrXB7.lean.js} +1 -1
  31. package/.vitepress/dist/assets/{api_interfaces_RawCommonProps.md.I8D5vrT4.js → api_interfaces_RawCommonProps.md.B9vtsapU.js} +1 -1
  32. package/.vitepress/dist/assets/{api_interfaces_RawCommonProps.md.I8D5vrT4.lean.js → api_interfaces_RawCommonProps.md.B9vtsapU.lean.js} +1 -1
  33. package/.vitepress/dist/assets/{api_interfaces_RawGlobalApp.md.xvmtsdhY.js → api_interfaces_RawGlobalApp.md.CTiCUSP8.js} +1 -1
  34. package/.vitepress/dist/assets/{api_interfaces_RawGlobalApp.md.xvmtsdhY.lean.js → api_interfaces_RawGlobalApp.md.CTiCUSP8.lean.js} +1 -1
  35. package/.vitepress/dist/assets/{api_interfaces_RawGlobalGroup.md.C5JzQskY.js → api_interfaces_RawGlobalGroup.md.Bql9GvRc.js} +1 -1
  36. package/.vitepress/dist/assets/{api_interfaces_RawGlobalGroup.md.C5JzQskY.lean.js → api_interfaces_RawGlobalGroup.md.Bql9GvRc.lean.js} +1 -1
  37. package/.vitepress/dist/assets/{api_interfaces_RawGlobalRule.md.Bv8NXgxh.js → api_interfaces_RawGlobalRule.md.CWLsP24n.js} +1 -1
  38. package/.vitepress/dist/assets/{api_interfaces_RawGlobalRule.md.Bv8NXgxh.lean.js → api_interfaces_RawGlobalRule.md.CWLsP24n.lean.js} +1 -1
  39. package/.vitepress/dist/assets/{api_interfaces_RawGlobalRuleProps.md.BWagpDC5.js → api_interfaces_RawGlobalRuleProps.md.BkKzFslW.js} +1 -1
  40. package/.vitepress/dist/assets/{api_interfaces_RawGlobalRuleProps.md.BWagpDC5.lean.js → api_interfaces_RawGlobalRuleProps.md.BkKzFslW.lean.js} +1 -1
  41. package/.vitepress/dist/assets/{api_interfaces_RawGroupProps.md.C4ysBXVt.js → api_interfaces_RawGroupProps.md.CmE75FSq.js} +1 -1
  42. package/.vitepress/dist/assets/{api_interfaces_RawGroupProps.md.C4ysBXVt.lean.js → api_interfaces_RawGroupProps.md.CmE75FSq.lean.js} +1 -1
  43. package/.vitepress/dist/assets/{api_interfaces_RawRuleProps.md.BEF9vTmP.js → api_interfaces_RawRuleProps.md.DKbfxAp-.js} +1 -1
  44. package/.vitepress/dist/assets/{api_interfaces_RawRuleProps.md.BEF9vTmP.lean.js → api_interfaces_RawRuleProps.md.DKbfxAp-.lean.js} +1 -1
  45. package/.vitepress/dist/assets/{api_interfaces_RawSubscription.md.Dj1NPd2Z.js → api_interfaces_RawSubscription.md.B0P5Q5dm.js} +1 -1
  46. package/.vitepress/dist/assets/{api_interfaces_RawSubscription.md.Dj1NPd2Z.lean.js → api_interfaces_RawSubscription.md.B0P5Q5dm.lean.js} +1 -1
  47. package/.vitepress/dist/assets/{api_type-aliases_IArray.md.DTY6r7JQ.js → api_type-aliases_IArray.md.B7KsINAB.js} +1 -1
  48. package/.vitepress/dist/assets/{api_type-aliases_IArray.md.DTY6r7JQ.lean.js → api_type-aliases_IArray.md.B7KsINAB.lean.js} +1 -1
  49. package/.vitepress/dist/assets/{api_type-aliases_Integer.md.CnRoBE6C.js → api_type-aliases_Integer.md.BCPlNIEF.js} +1 -1
  50. package/.vitepress/dist/assets/{api_type-aliases_Integer.md.CnRoBE6C.lean.js → api_type-aliases_Integer.md.BCPlNIEF.lean.js} +1 -1
  51. package/.vitepress/dist/assets/{api_type-aliases_Position.md.CAY4tq9J.js → api_type-aliases_Position.md.DM2ZCDDF.js} +1 -1
  52. package/.vitepress/dist/assets/{api_type-aliases_Position.md.CAY4tq9J.lean.js → api_type-aliases_Position.md.DM2ZCDDF.lean.js} +1 -1
  53. package/.vitepress/dist/assets/{app.DNVtiKBC.js → app.0Nh1IfB0.js} +1 -1
  54. package/.vitepress/dist/assets/chunks/@localSearchIndexroot.BEjqWFbR.js +1 -0
  55. package/.vitepress/dist/assets/chunks/VPLocalSearchBox.DMzHz6bI.js +7 -0
  56. package/.vitepress/dist/assets/chunks/framework.F1MJa8FF.js +18 -0
  57. package/.vitepress/dist/assets/chunks/index.BK928a5-.js +263 -0
  58. package/.vitepress/dist/assets/chunks/theme.D0IgFeP9.js +1 -0
  59. package/.vitepress/dist/assets/{guide_example.md.D7P8FSPh.js → guide_example.md.BAtHxrY8.js} +1 -1
  60. package/.vitepress/dist/assets/{guide_example.md.D7P8FSPh.lean.js → guide_example.md.BAtHxrY8.lean.js} +1 -1
  61. package/.vitepress/dist/assets/{guide_external.md.BOhriVcO.js → guide_external.md.Blf_3tZ-.js} +1 -1
  62. package/.vitepress/dist/assets/{guide_external.md.BOhriVcO.lean.js → guide_external.md.Blf_3tZ-.lean.js} +1 -1
  63. package/.vitepress/dist/assets/{guide_faq.md.CFjOXlRT.js → guide_faq.md.BOvp-isM.js} +2 -2
  64. package/.vitepress/dist/assets/{guide_faq.md.CFjOXlRT.lean.js → guide_faq.md.BOvp-isM.lean.js} +2 -2
  65. package/.vitepress/dist/assets/{guide_index.md.BpMngV78.js → guide_index.md.z9xnJ4bP.js} +1 -1
  66. package/.vitepress/dist/assets/{guide_index.md.BpMngV78.lean.js → guide_index.md.z9xnJ4bP.lean.js} +1 -1
  67. package/.vitepress/dist/assets/{guide_node.md.aT2macb8.js → guide_node.md.BV0VGFp7.js} +1 -1
  68. package/.vitepress/dist/assets/{guide_node.md.aT2macb8.lean.js → guide_node.md.BV0VGFp7.lean.js} +1 -1
  69. package/.vitepress/dist/assets/{guide_optimize.md.CVLAFtQT.js → guide_optimize.md.BRCJcu54.js} +1 -1
  70. package/.vitepress/dist/assets/{guide_optimize.md.CVLAFtQT.lean.js → guide_optimize.md.BRCJcu54.lean.js} +1 -1
  71. package/.vitepress/dist/assets/{guide_selector.md.BUknNaVj.js → guide_selector.md.suOINyvh.js} +1 -1
  72. package/.vitepress/dist/assets/{guide_selector.md.BUknNaVj.lean.js → guide_selector.md.suOINyvh.lean.js} +1 -1
  73. package/.vitepress/dist/assets/{guide_snapshot.md.4dBzGN9v.js → guide_snapshot.md.BaRBwY-1.js} +1 -1
  74. package/.vitepress/dist/assets/{guide_snapshot.md.4dBzGN9v.lean.js → guide_snapshot.md.BaRBwY-1.lean.js} +1 -1
  75. package/.vitepress/dist/assets/{guide_subscription.md.CJ4AP_Bi.js → guide_subscription.md.DAPn-kL6.js} +1 -1
  76. package/.vitepress/dist/assets/{guide_subscription.md.CJ4AP_Bi.lean.js → guide_subscription.md.DAPn-kL6.lean.js} +1 -1
  77. package/.vitepress/dist/assets/{guide_what-is-gkd.md.DqZmLmp9.js → guide_what-is-gkd.md.pCyddgcF.js} +1 -1
  78. package/.vitepress/dist/assets/{guide_what-is-gkd.md.DqZmLmp9.lean.js → guide_what-is-gkd.md.pCyddgcF.lean.js} +1 -1
  79. package/.vitepress/dist/assets/{index.md.D_UMLl-X.js → index.md.BN0ypr4M.js} +1 -1
  80. package/.vitepress/dist/assets/{index.md.D_UMLl-X.lean.js → index.md.BN0ypr4M.lean.js} +1 -1
  81. package/.vitepress/dist/assets/style.CzHLUY2l.css +1 -0
  82. package/.vitepress/dist/guide/example.html +10 -9
  83. package/.vitepress/dist/guide/external.html +10 -9
  84. package/.vitepress/dist/guide/faq.html +11 -10
  85. package/.vitepress/dist/guide/index.html +10 -9
  86. package/.vitepress/dist/guide/node.html +10 -9
  87. package/.vitepress/dist/guide/optimize.html +10 -9
  88. package/.vitepress/dist/guide/selector.html +11 -10
  89. package/.vitepress/dist/guide/snapshot.html +10 -9
  90. package/.vitepress/dist/guide/subscription.html +11 -10
  91. package/.vitepress/dist/guide/what-is-gkd.html +10 -9
  92. package/.vitepress/dist/hashmap.json +1 -1
  93. package/.vitepress/dist/index.html +10 -9
  94. package/.vitepress/dist/vp-icons.css +1 -0
  95. package/package.json +1 -1
  96. package/.vitepress/dist/assets/chunks/@localSearchIndexroot._GF3PaGm.js +0 -1
  97. package/.vitepress/dist/assets/chunks/VPLocalSearchBox.BUpEvX0R.js +0 -7
  98. package/.vitepress/dist/assets/chunks/framework.BvIb6WYF.js +0 -17
  99. package/.vitepress/dist/assets/chunks/index.CIgExcTQ.js +0 -257
  100. package/.vitepress/dist/assets/chunks/theme.CZEXvK7G.js +0 -1
  101. package/.vitepress/dist/assets/style.Bsl9YifO.css +0 -1
@@ -0,0 +1 @@
1
+ import{d as h,o as a,c as u,r as d,n as N,a as z,t as T,b as k,w as f,e as m,T as fe,_ as b,u as We,i as qe,f as Ke,g as he,h as $,j as c,k as r,l as R,m as ce,p as w,q as F,s as ee,v as j,x as me,y as _e,z as Je,A as Ye,B as W,F as M,C as H,D as X,E as te,G as _,H as E,I as Ne,J as ne,K as U,L as oe,M as Xe,N as Ie,O as ue,P as Me,Q as Ae,R as se,S as Ze,U as Qe,V as J,W as Ce,X as He,Y as xe,Z as et,$ as tt,a0 as nt,a1 as ot,a2 as Y,a3 as st,a4 as at,a5 as rt}from"./framework.F1MJa8FF.js";const it=h({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),u("span",{class:N(["VPBadge",e.type])},[d(e.$slots,"default",{},()=>[z(T(e.text),1)])],2))}}),lt={key:0,class:"VPBackdrop"},ct=h({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),k(fe,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",lt)):m("",!0)]),_:1}))}}),ut=b(ct,[["__scopeId","data-v-4267fd9d"]]),L=We;function dt(s,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(s,e):(s(),(o=!0)&&setTimeout(()=>o=!1,e))}}function de(s){return/^\//.test(s)?s:`/${s}`}function ke(s){const{pathname:e,search:t,hash:o,protocol:n}=new URL(s,"http://a.com");if(qe(s)||s.startsWith("#")||!n.startsWith("http")||!Ke(e))return s;const{site:i}=L(),l=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${o}`);return he(l)}function Z({correspondingLink:s=!1}={}){const{site:e,localeIndex:t,page:o,theme:n,hash:i}=L(),l=$(()=>{var v,y;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((y=e.value.locales[t.value])==null?void 0:y.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:$(()=>Object.entries(e.value.locales).flatMap(([v,y])=>l.value.label===y.label?[]:{text:y.label,link:pt(y.link||(v==="root"?"/":`/${v}/`),n.value.i18nRouting!==!1&&s,o.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function pt(s,e,t,o){return e?s.replace(/\/$/,"")+de(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):s}const vt={class:"NotFound"},ft={class:"code"},ht={class:"title"},mt={class:"quote"},_t={class:"action"},kt=["href","aria-label"],gt=h({__name:"NotFound",setup(s){const{theme:e}=L(),{currentLang:t}=Z();return(o,n)=>{var i,l,p,v,y;return a(),u("div",vt,[c("p",ft,T(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),c("h1",ht,T(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=c("div",{class:"divider"},null,-1)),c("blockquote",mt,T(((p=r(e).notFound)==null?void 0:p.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),c("div",_t,[c("a",{class:"link",href:r(he)(r(t).link),"aria-label":((v=r(e).notFound)==null?void 0:v.linkLabel)??"go to home"},T(((y=r(e).notFound)==null?void 0:y.linkText)??"Take me home"),9,kt)])])}}}),bt=b(gt,[["__scopeId","data-v-e33070cd"]]);function Be(s,e){if(Array.isArray(s))return Q(s);if(s==null)return[];e=de(e);const t=Object.keys(s).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(de(n))),o=t?s[t]:[];return Array.isArray(o)?Q(o):Q(o.items,o.base)}function $t(s){const e=[];let t=0;for(const o in s){const n=s[o];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function yt(s){const e=[];function t(o){for(const n of o)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(s),e}function pe(s,e){return Array.isArray(e)?e.some(t=>pe(s,t)):R(s,e.link)?!0:e.items?pe(s,e.items):!1}function Q(s,e){return[...s].map(t=>{const o={...t},n=o.base||e;return n&&o.link&&(o.link=n+o.link),o.items&&(o.items=Q(o.items,n)),o})}function O(){const{frontmatter:s,page:e,theme:t}=L(),o=ce("(min-width: 960px)"),n=w(!1),i=$(()=>{const C=t.value.sidebar,S=e.value.relativePath;return C?Be(C,S):[]}),l=w(i.value);F(i,(C,S)=>{JSON.stringify(C)!==JSON.stringify(S)&&(l.value=i.value)});const p=$(()=>s.value.sidebar!==!1&&l.value.length>0&&s.value.layout!=="home"),v=$(()=>y?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),y=$(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),V=$(()=>p.value&&o.value),g=$(()=>p.value?$t(l.value):[]);function P(){n.value=!0}function I(){n.value=!1}function A(){n.value?I():P()}return{isOpen:n,sidebar:l,sidebarGroups:g,hasSidebar:p,hasAside:y,leftAside:v,isSidebarEnabled:V,open:P,close:I,toggle:A}}function Pt(s,e){let t;ee(()=>{t=s.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",o)}),me(()=>{window.removeEventListener("keyup",o)});function o(n){n.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function Lt(s){const{page:e,hash:t}=L(),o=w(!1),n=$(()=>s.value.collapsed!=null),i=$(()=>!!s.value.link),l=w(!1),p=()=>{l.value=R(e.value.relativePath,s.value.link)};F([e,s,t],p),j(p);const v=$(()=>l.value?!0:s.value.items?pe(e.value.relativePath,s.value.items):!1),y=$(()=>!!(s.value.items&&s.value.items.length));ee(()=>{o.value=!!(n.value&&s.value.collapsed)}),_e(()=>{(l.value||v.value)&&(o.value=!1)});function V(){n.value&&(o.value=!o.value)}return{collapsed:o,collapsible:n,isLink:i,isActiveLink:l,hasActiveLink:v,hasChildren:y,toggle:V}}function Vt(){const{hasSidebar:s}=O(),e=ce("(min-width: 960px)"),t=ce("(min-width: 1280px)");return{isAsideEnabled:$(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const ve=[];function Ee(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function ge(s){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:St(t),link:"#"+t.id,level:o}});return Tt(e,s)}function St(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Tt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return It(s,o,n)}function wt(s,e){const{isAsideEnabled:t}=Vt(),o=dt(i,100);let n=null;j(()=>{requestAnimationFrame(i),window.addEventListener("scroll",o)}),Je(()=>{l(location.hash)}),me(()=>{window.removeEventListener("scroll",o)});function i(){if(!t.value)return;const p=window.scrollY,v=window.innerHeight,y=document.body.offsetHeight,V=Math.abs(p+v-y)<1,g=ve.map(({element:I,link:A})=>({link:A,top:Nt(I)})).filter(({top:I})=>!Number.isNaN(I)).sort((I,A)=>I.top-A.top);if(!g.length){l(null);return}if(p<1){l(null);return}if(V){l(g[g.length-1].link);return}let P=null;for(const{link:I,top:A}of g){if(A>p+Ye()+4)break;P=I}l(P)}function l(p){n&&n.classList.remove("active"),p==null?n=null:n=s.value.querySelector(`a[href="${decodeURIComponent(p)}"]`);const v=n;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Nt(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}function It(s,e,t){ve.length=0;const o=[],n=[];return s.forEach(i=>{const l={...i,children:[]};let p=n[n.length-1];for(;p&&p.level>=l.level;)n.pop(),p=n[n.length-1];if(l.element.classList.contains("ignore-header")||p&&"shouldIgnore"in p){n.push({level:l.level,shouldIgnore:!0});return}l.level>t||l.level<e||(ve.push({element:l.element,link:l.link}),p?p.children.push(l):o.push(l),n.push(l))}),o}const Mt=["href","title"],At=h({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function e({target:t}){const o=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(o));n==null||n.focus({preventScroll:!0})}return(t,o)=>{const n=W("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,H(t.headers,({children:i,link:l,title:p})=>(a(),u("li",null,[c("a",{class:"outline-link",href:l,onClick:e,title:p},T(p),9,Mt),i!=null&&i.length?(a(),k(n,{key:0,headers:i},null,8,["headers"])):m("",!0)]))),256))],2)}}}),De=b(At,[["__scopeId","data-v-2d4330ef"]]),Ct={class:"content"},Ht={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Bt=h({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=L(),o=X([]);te(()=>{o.value=ge(e.value.outline??t.value.outline)});const n=w(),i=w();return wt(n,i),(l,p)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:n},[c("div",Ct,[c("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),c("div",Ht,T(r(Ee)(r(t))),1),_(De,{headers:o.value,root:!0},null,8,["headers"])])],2))}}),Et=b(Bt,[["__scopeId","data-v-c50cc3f1"]]),Dt={class:"VPDocAsideCarbonAds"},Ft=h({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,o)=>(a(),u("div",Dt,[_(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ot={class:"VPDocAside"},Gt=h({__name:"VPDocAside",setup(s){const{theme:e}=L();return(t,o)=>(a(),u("div",Ot,[d(t.$slots,"aside-top",{},void 0,!0),d(t.$slots,"aside-outline-before",{},void 0,!0),_(Et),d(t.$slots,"aside-outline-after",{},void 0,!0),o[0]||(o[0]=c("div",{class:"spacer"},null,-1)),d(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(Ft,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):m("",!0),d(t.$slots,"aside-ads-after",{},void 0,!0),d(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ut=b(Gt,[["__scopeId","data-v-737d7b88"]]);function jt(){const{theme:s,page:e}=L();return $(()=>{const{text:t="Edit this page",pattern:o=""}=s.value.editLink||{};let n;return typeof o=="function"?n=o(e.value):n=o.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function zt(){const{page:s,theme:e,frontmatter:t}=L();return $(()=>{var y,V,g,P,I,A,C,S;const o=Be(e.value.sidebar,s.value.relativePath),n=yt(o),i=Rt(n,B=>B.link.replace(/[?#].*$/,"")),l=i.findIndex(B=>R(s.value.relativePath,B.link)),p=((y=e.value.docFooter)==null?void 0:y.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:p?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((g=i[l-1])==null?void 0:g.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((I=i[l-1])==null?void 0:I.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[l+1])==null?void 0:S.link)}}})}function Rt(s,e){const t=new Set;return s.filter(o=>{const n=e(o);return t.has(n)?!1:t.add(n)})}const D=h({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.tag??(e.href?"a":"span")),o=$(()=>e.href&&Ne.test(e.href)||e.target==="_blank");return(n,i)=>(a(),k(E(t.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":o.value,"no-icon":n.noIcon}]),href:n.href?r(ke)(n.href):void 0,target:n.target??(o.value?"_blank":void 0),rel:n.rel??(o.value?"noreferrer":void 0)},{default:f(()=>[d(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Wt={class:"VPLastUpdated"},qt=["datetime"],Kt=h({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,lang:o}=L(),n=$(()=>new Date(t.value.lastUpdated)),i=$(()=>n.value.toISOString()),l=w("");return j(()=>{ee(()=>{var p,v,y;l.value=new Intl.DateTimeFormat((v=(p=e.value.lastUpdated)==null?void 0:p.formatOptions)!=null&&v.forceLocale?o.value:void 0,((y=e.value.lastUpdated)==null?void 0:y.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(p,v)=>{var y;return a(),u("p",Wt,[z(T(((y=r(e).lastUpdated)==null?void 0:y.text)||r(e).lastUpdatedText||"Last updated")+": ",1),c("time",{datetime:i.value},T(l.value),9,qt)])}}}),Jt=b(Kt,[["__scopeId","data-v-670304f7"]]),Yt={key:0,class:"VPDocFooter"},Xt={key:0,class:"edit-info"},Zt={key:0,class:"edit-link"},Qt={key:1,class:"last-updated"},xt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},en={class:"pager"},tn=["innerHTML"],nn=["innerHTML"],on={class:"pager"},sn=["innerHTML"],an=["innerHTML"],rn=h({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:o}=L(),n=jt(),i=zt(),l=$(()=>e.value.editLink&&o.value.editLink!==!1),p=$(()=>t.value.lastUpdated),v=$(()=>l.value||p.value||i.value.prev||i.value.next);return(y,V)=>{var g,P,I,A;return v.value?(a(),u("footer",Yt,[d(y.$slots,"doc-footer-before",{},void 0,!0),l.value||p.value?(a(),u("div",Xt,[l.value?(a(),u("div",Zt,[_(D,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:f(()=>[V[0]||(V[0]=c("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),z(" "+T(r(n).text),1)]),_:1},8,["href"])])):m("",!0),p.value?(a(),u("div",Qt,[_(Jt)])):m("",!0)])):m("",!0),(g=r(i).prev)!=null&&g.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",xt,[V[1]||(V[1]=c("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),c("div",en,[(I=r(i).prev)!=null&&I.link?(a(),k(D,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[c("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,tn),c("span",{class:"title",innerHTML:r(i).prev.text},null,8,nn)]}),_:1},8,["href"])):m("",!0)]),c("div",on,[(A=r(i).next)!=null&&A.link?(a(),k(D,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[c("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,sn),c("span",{class:"title",innerHTML:r(i).next.text},null,8,an)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),ln=b(rn,[["__scopeId","data-v-99842908"]]),cn={class:"container"},un={class:"aside-container"},dn={class:"aside-content"},pn={class:"content"},vn={class:"content-container"},fn={class:"main"},hn=h({__name:"VPDoc",setup(s){const{theme:e}=L(),t=ne(),{hasSidebar:o,hasAside:n,leftAside:i}=O(),l=$(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,v)=>{const y=W("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(o),"has-aside":r(n)}])},[d(p.$slots,"doc-top",{},void 0,!0),c("div",cn,[r(n)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[v[0]||(v[0]=c("div",{class:"aside-curtain"},null,-1)),c("div",un,[c("div",dn,[_(Ut,null,{"aside-top":f(()=>[d(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[d(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[d(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),c("div",pn,[c("div",vn,[d(p.$slots,"doc-before",{},void 0,!0),c("main",fn,[_(y,{class:N(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),_(ln,null,{"doc-footer-before":f(()=>[d(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),d(p.$slots,"doc-after",{},void 0,!0)])])]),d(p.$slots,"doc-bottom",{},void 0,!0)],2)}}}),mn=b(hn,[["__scopeId","data-v-a21456c9"]]),_n=h({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.href&&Ne.test(e.href)),o=$(()=>e.tag||(e.href?"a":"button"));return(n,i)=>(a(),k(E(o.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?r(ke)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[z(T(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),kn=b(_n,[["__scopeId","data-v-6f76aa67"]]),gn=["src","alt"],bn=h({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const o=W("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",U({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(he)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,gn)):(a(),u(M,{key:1},[_(o,U({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),_(o,U({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),x=b(bn,[["__scopeId","data-v-e9621d85"]]),$n={class:"container"},yn={class:"main"},Pn={key:0,class:"name"},Ln=["innerHTML"],Vn=["innerHTML"],Sn=["innerHTML"],Tn={key:0,class:"actions"},wn={key:0,class:"image"},Nn={class:"image-container"},In=h({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=oe("hero-image-slot-exists");return(t,o)=>(a(),u("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[c("div",$n,[c("div",yn,[d(t.$slots,"home-hero-info-before",{},void 0,!0),d(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",Pn,[c("span",{innerHTML:t.name,class:"clip"},null,8,Ln)])):m("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,Vn)):m("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Sn)):m("",!0)],!0),d(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Tn,[(a(!0),u(M,null,H(t.actions,n=>(a(),u("div",{key:n.link,class:"action"},[_(kn,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):m("",!0),d(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",wn,[c("div",Nn,[o[0]||(o[0]=c("div",{class:"image-bg"},null,-1)),d(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),Mn=b(In,[["__scopeId","data-v-d305bbbc"]]),An=h({__name:"VPHomeHero",setup(s){const{frontmatter:e}=L();return(t,o)=>r(e).hero?(a(),k(Mn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[d(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[d(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[d(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[d(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[d(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Cn={class:"box"},Hn={key:0,class:"icon"},Bn=["innerHTML"],En=["innerHTML"],Dn=["innerHTML"],Fn={key:4,class:"link-text"},On={class:"link-text-value"},Gn=h({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),k(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[c("article",Cn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",Hn,[_(x,{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"?(a(),k(x,{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?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Bn)):m("",!0),c("h2",{class:"title",innerHTML:e.title},null,8,En),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Dn)):m("",!0),e.linkText?(a(),u("div",Fn,[c("p",On,[z(T(e.linkText)+" ",1),t[0]||(t[0]=c("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Un=b(Gn,[["__scopeId","data-v-20d70ad9"]]),jn={key:0,class:"VPFeatures"},zn={class:"container"},Rn={class:"items"},Wn=h({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=$(()=>{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,n)=>o.features?(a(),u("div",jn,[c("div",zn,[c("div",Rn,[(a(!0),u(M,null,H(o.features,i=>(a(),u("div",{key:i.title,class:N(["item",[t.value]])},[_(Un,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),qn=b(Wn,[["__scopeId","data-v-c8379e89"]]),Kn=h({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=L();return(t,o)=>r(e).features?(a(),k(qn,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):m("",!0)}}),Jn=h({__name:"VPHomeContent",setup(s){const{width:e}=Xe({initialWidth:0,includeScrollbar:!1});return(t,o)=>(a(),u("div",{class:"vp-doc container",style:Ie(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[d(t.$slots,"default",{},void 0,!0)],4))}}),Yn=b(Jn,[["__scopeId","data-v-7df1d84a"]]),Xn={class:"VPHome"},Zn=h({__name:"VPHome",setup(s){const{frontmatter:e}=L();return(t,o)=>{const n=W("Content");return a(),u("div",Xn,[d(t.$slots,"home-hero-before",{},void 0,!0),_(An,null,{"home-hero-info-before":f(()=>[d(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),d(t.$slots,"home-hero-after",{},void 0,!0),d(t.$slots,"home-features-before",{},void 0,!0),_(Kn),d(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),k(Yn,{key:0},{default:f(()=>[_(n)]),_:1})):(a(),k(n,{key:1}))])}}}),Qn=b(Zn,[["__scopeId","data-v-7e4f9199"]]),xn={},eo={class:"VPPage"};function to(s,e){const t=W("Content");return a(),u("div",eo,[d(s.$slots,"page-top"),_(t),d(s.$slots,"page-bottom")])}const no=b(xn,[["render",to]]),oo=h({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=L(),{hasSidebar:o}=O();return(n,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(o),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?d(n.$slots,"not-found",{key:0},()=>[_(bt)],!0):r(t).layout==="page"?(a(),k(no,{key:1},{"page-top":f(()=>[d(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[d(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(Qn,{key:2},{"home-hero-before":f(()=>[d(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[d(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[d(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[d(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[d(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(E(r(t).layout),{key:3})):(a(),k(mn,{key:4},{"doc-top":f(()=>[d(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[d(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[d(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[d(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[d(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[d(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[d(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[d(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),so=b(oo,[["__scopeId","data-v-9a5ff3fe"]]),ao={class:"container"},ro=["innerHTML"],io=["innerHTML"],lo=h({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:o}=O();return(n,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(o)}])},[c("div",ao,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,ro)):m("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,io)):m("",!0)])],2)):m("",!0)}}),co=b(lo,[["__scopeId","data-v-e7dc5294"]]);function uo(){const{theme:s,frontmatter:e}=L(),t=X([]),o=$(()=>t.value.length>0);return te(()=>{t.value=ge(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:o}}const po={class:"menu-text"},vo={class:"header"},fo={class:"outline"},ho=h({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=L(),o=w(!1),n=w(0),i=w(),l=w();function p(g){var P;(P=i.value)!=null&&P.contains(g.target)||(o.value=!1)}F(o,g=>{if(g){document.addEventListener("click",p);return}document.removeEventListener("click",p)}),ue("Escape",()=>{o.value=!1}),te(()=>{o.value=!1});function v(){o.value=!o.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function y(g){g.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Me(()=>{o.value=!1}))}function V(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(g,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ie({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[g.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:o.value})},[c("span",po,T(r(Ee)(r(t))),1),P[0]||(P[0]=c("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),u("button",{key:1,onClick:V},T(r(t).returnToTopLabel||"Return to top"),1)),_(fe,{name:"flyout"},{default:f(()=>[o.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:y},[c("div",vo,[c("a",{class:"top-link",href:"#",onClick:V},T(r(t).returnToTopLabel||"Return to top"),1)]),c("div",fo,[_(De,{headers:g.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),mo=b(ho,[["__scopeId","data-v-d5469b3c"]]),_o={class:"container"},ko=["aria-expanded"],go={class:"menu-text"},bo=h({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:o}=O(),{headers:n}=uo(),{y:i}=Ae(),l=w(0);j(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{n.value=ge(t.value.outline??e.value.outline)});const p=$(()=>n.value.length===0),v=$(()=>p.value&&!o.value),y=$(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:p.value,fixed:v.value}));return(V,g)=>r(t).layout!=="home"&&(!v.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(y.value)},[c("div",_o,[r(o)?(a(),u("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:g[0]||(g[0]=P=>V.$emit("open-menu"))},[g[1]||(g[1]=c("span",{class:"vpi-align-left menu-icon"},null,-1)),c("span",go,T(r(e).sidebarMenuLabel||"Menu"),1)],8,ko)):m("",!0),_(mo,{headers:r(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),$o=b(bo,[["__scopeId","data-v-49d1b1f3"]]);function yo(){const s=w(!1);function e(){s.value=!0,window.addEventListener("resize",n)}function t(){s.value=!1,window.removeEventListener("resize",n)}function o(){s.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=ne();return F(()=>i.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:o}}const Po={},Lo={class:"VPSwitch",type:"button",role:"switch"},Vo={class:"check"},So={key:0,class:"icon"};function To(s,e){return a(),u("button",Lo,[c("span",Vo,[s.$slots.default?(a(),u("span",So,[d(s.$slots,"default",{},void 0,!0)])):m("",!0)])])}const wo=b(Po,[["render",To],["__scopeId","data-v-aa7c9865"]]),No=h({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=L(),o=oe("toggle-appearance",()=>{e.value=!e.value}),n=w("");return _e(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),k(wo,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(o)},{default:f(()=>l[0]||(l[0]=[c("span",{class:"vpi-sun sun"},null,-1),c("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),be=b(No,[["__scopeId","data-v-4db616ed"]]),Io={key:0,class:"VPNavBarAppearance"},Mo=h({__name:"VPNavBarAppearance",setup(s){const{site:e}=L();return(t,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Io,[_(be)])):m("",!0)}}),Ao=b(Mo,[["__scopeId","data-v-93bca6ed"]]),$e=w();let Fe=!1,le=0;function Co(s){const e=w(!1);if(se){!Fe&&Ho(),le++;const t=F($e,o=>{var n,i,l;o===s.el.value||(n=s.el.value)!=null&&n.contains(o)?(e.value=!0,(i=s.onFocus)==null||i.call(s)):(e.value=!1,(l=s.onBlur)==null||l.call(s))});me(()=>{t(),le--,le||Bo()})}return Ze(e)}function Ho(){document.addEventListener("focusin",Oe),Fe=!0,$e.value=document.activeElement}function Bo(){document.removeEventListener("focusin",Oe)}function Oe(){$e.value=document.activeElement}const Eo={class:"VPMenuLink"},Do=["innerHTML"],Fo=h({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,o)=>(a(),u("div",Eo,[_(D,{class:N({active:r(R)(r(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:f(()=>[c("span",{innerHTML:t.item.text},null,8,Do)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ae=b(Fo,[["__scopeId","data-v-d65c9141"]]),Oo={class:"VPMenuGroup"},Go={key:0,class:"title"},Uo=h({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),u("div",Oo,[e.text?(a(),u("p",Go,T(e.text),1)):m("",!0),(a(!0),u(M,null,H(e.items,o=>(a(),u(M,null,["link"in o?(a(),k(ae,{key:0,item:o},null,8,["item"])):m("",!0)],64))),256))]))}}),jo=b(Uo,[["__scopeId","data-v-351a42ff"]]),zo={class:"VPMenu"},Ro={key:0,class:"items"},Wo=h({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),u("div",zo,[e.items?(a(),u("div",Ro,[(a(!0),u(M,null,H(e.items,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),k(ae,{key:0,item:o},null,8,["item"])):"component"in o?(a(),k(E(o.component),U({key:1,ref_for:!0},o.props),null,16)):(a(),k(jo,{key:2,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0),d(e.$slots,"default",{},void 0,!0)]))}}),qo=b(Wo,[["__scopeId","data-v-7a7a6178"]]),Ko=["aria-expanded","aria-label"],Jo={key:0,class:"text"},Yo=["innerHTML"],Xo={key:1,class:"vpi-more-horizontal icon"},Zo={class:"menu"},Qo=h({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=w(!1),t=w();Co({el:t,onBlur:o});function o(){e.value=!1}return(n,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[c("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),u("span",Jo,[n.icon?(a(),u("span",{key:0,class:N([n.icon,"option-icon"])},null,2)):m("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,Yo)):m("",!0),i[3]||(i[3]=c("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),u("span",Xo))],8,Ko),c("div",Zo,[_(qo,{items:n.items},{default:f(()=>[d(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=b(Qo,[["__scopeId","data-v-4b9bd072"]]),xo=["href","aria-label","innerHTML"],es=h({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=w();j(async()=>{var i;await Me();const n=(i=t.value)==null?void 0:i.children[0];n instanceof HTMLElement&&n.className.startsWith("vpi-social-")&&(getComputedStyle(n).maskImage||getComputedStyle(n).webkitMaskImage)==="none"&&n.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const o=$(()=>typeof e.icon=="object"?e.icon.svg:`<span class="vpi-social-${e.icon}"></span>`);return(n,i)=>(a(),u("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:o.value},null,8,xo))}}),ts=b(es,[["__scopeId","data-v-1e02bd90"]]),ns={class:"VPSocialLinks"},os=h({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),u("div",ns,[(a(!0),u(M,null,H(e.links,({link:o,icon:n,ariaLabel:i})=>(a(),k(ts,{key:o,icon:n,link:o,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=b(os,[["__scopeId","data-v-90b26233"]]),ss={key:0,class:"group translations"},as={class:"trans-title"},rs={key:1,class:"group"},is={class:"item appearance"},ls={class:"label"},cs={class:"appearance-action"},us={key:2,class:"group"},ds={class:"item social-links"},ps=h({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=L(),{localeLinks:o,currentLang:n}=Z({correspondingLink:!0}),i=$(()=>o.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,p)=>i.value?(a(),k(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(o).length&&r(n).label?(a(),u("div",ss,[c("p",as,T(r(n).label),1),(a(!0),u(M,null,H(r(o),v=>(a(),k(ae,{key:v.link,item:v},null,8,["item"]))),128))])):m("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",rs,[c("div",is,[c("p",ls,T(r(t).darkModeSwitchLabel||"Appearance"),1),c("div",cs,[_(be)])])])):m("",!0),r(t).socialLinks?(a(),u("div",us,[c("div",ds,[_(Pe,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),vs=b(ps,[["__scopeId","data-v-b5f64f23"]]),fs=["aria-expanded"],hs=h({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),u("button",{type:"button",class:N(["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]=[c("span",{class:"container"},[c("span",{class:"top"}),c("span",{class:"middle"}),c("span",{class:"bottom"})],-1)]),10,fs))}}),ms=b(hs,[["__scopeId","data-v-5f26667e"]]),_s=["innerHTML"],ks=h({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,o)=>(a(),k(D,{class:N({VPNavBarMenuLink:!0,active:r(R)(r(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:f(()=>[c("span",{innerHTML:t.item.text},null,8,_s)]),_:1},8,["class","href","target","rel","no-icon"]))}}),gs=b(ks,[["__scopeId","data-v-659b0a6a"]]),bs=h({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=L(),o=i=>"component"in i?!1:"link"in i?R(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(o),n=$(()=>o(e.item));return(i,l)=>(a(),k(ye,{class:N({VPNavBarMenuGroup:!0,active:r(R)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),$s={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ys=h({__name:"VPNavBarMenu",setup(s){const{theme:e}=L();return(t,o)=>r(e).nav?(a(),u("nav",$s,[o[0]||(o[0]=c("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),u(M,null,H(r(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),k(gs,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(E(n.component),U({key:1,ref_for:!0},n.props),null,16)):(a(),k(bs,{key:2,item:n},null,8,["item"]))],64))),128))])):m("",!0)}}),Ps=b(ys,[["__scopeId","data-v-964054ee"]]);function Ls(s){const{localeIndex:e,theme:t}=L();function o(n){var A,C,S;const i=n.split("."),l=(A=t.value.search)==null?void 0:A.options,p=l&&typeof l=="object",v=p&&((S=(C=l.locales)==null?void 0:C[e.value])==null?void 0:S.translations)||null,y=p&&l.translations||null;let V=v,g=y,P=s;const I=i.pop();for(const B of i){let G=null;const q=P==null?void 0:P[B];q&&(G=P=q);const re=g==null?void 0:g[B];re&&(G=g=re);const ie=V==null?void 0:V[B];ie&&(G=V=ie),q||(P=G),re||(g=G),ie||(V=G)}return(V==null?void 0:V[I])??(g==null?void 0:g[I])??(P==null?void 0:P[I])??""}return o}const Vs=["aria-label"],Ss={class:"DocSearch-Button-Container"},Ts={class:"DocSearch-Button-Placeholder"},Ve=h({__name:"VPNavBarSearchButton",setup(s){const t=Ls({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[c("span",Ss,[n[0]||(n[0]=c("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),c("span",Ts,T(r(t)("button.buttonText")),1)]),n[1]||(n[1]=c("span",{class:"DocSearch-Button-Keys"},[c("kbd",{class:"DocSearch-Button-Key"}),c("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,Vs))}}),ws={class:"VPNavBarSearch"},Ns={id:"local-search"},Is={key:1,id:"docsearch"},Ms=h({__name:"VPNavBarSearch",setup(s){const e=Qe(()=>J(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1730897048473/files/.vitepress/dist"+u}return u})("./VPLocalSearchBox.DMzHz6bI.js")),[])),t=()=>null,{theme:o}=L(),n=w(!1),i=w(!1);j(()=>{});function l(){n.value||(n.value=!0,setTimeout(p,16))}function p(){const g=new Event("keydown");g.key="k",g.metaKey=!0,window.dispatchEvent(g),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||p()},16)}function v(g){const P=g.target,I=P.tagName;return P.isContentEditable||I==="INPUT"||I==="SELECT"||I==="TEXTAREA"}const y=w(!1);ue("k",g=>{(g.ctrlKey||g.metaKey)&&(g.preventDefault(),y.value=!0)}),ue("/",g=>{v(g)||(g.preventDefault(),y.value=!0)});const V="local";return(g,P)=>{var I;return a(),u("div",ws,[r(V)==="local"?(a(),u(M,{key:0},[y.value?(a(),k(r(e),{key:0,onClose:P[0]||(P[0]=A=>y.value=!1)})):m("",!0),c("div",Ns,[_(Ve,{onClick:P[1]||(P[1]=A=>y.value=!0)})])],64)):r(V)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),k(r(t),{key:0,algolia:((I=r(o).search)==null?void 0:I.options)??r(o).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):m("",!0),i.value?m("",!0):(a(),u("div",Is,[_(Ve,{onClick:l})]))],64)):m("",!0)])}}}),As=h({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=L();return(t,o)=>r(e).socialLinks?(a(),k(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):m("",!0)}}),Cs=b(As,[["__scopeId","data-v-bf53239d"]]),Hs=["href","rel","target"],Bs=["innerHTML"],Es={key:2},Ds=h({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=L(),{hasSidebar:o}=O(),{currentLang:n}=Z(),i=$(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=$(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),p=$(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,y)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(o)}])},[c("a",{class:"title",href:i.value??r(ke)(r(n).link),rel:l.value,target:p.value},[d(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(x,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):m("",!0),r(t).siteTitle?(a(),u("span",{key:1,innerHTML:r(t).siteTitle},null,8,Bs)):r(t).siteTitle===void 0?(a(),u("span",Es,T(r(e).title),1)):m("",!0),d(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Hs)],2))}}),Fs=b(Ds,[["__scopeId","data-v-f20dd617"]]),Os={class:"items"},Gs={class:"title"},Us=h({__name:"VPNavBarTranslations",setup(s){const{theme:e}=L(),{localeLinks:t,currentLang:o}=Z({correspondingLink:!0});return(n,i)=>r(t).length&&r(o).label?(a(),k(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[c("div",Os,[c("p",Gs,T(r(o).label),1),(a(!0),u(M,null,H(r(t),l=>(a(),k(ae,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),js=b(Us,[["__scopeId","data-v-c847ef2e"]]),zs={class:"wrapper"},Rs={class:"container"},Ws={class:"title"},qs={class:"content"},Ks={class:"content-body"},Js=h({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const e=s,{y:t}=Ae(),{hasSidebar:o}=O(),{frontmatter:n}=L(),i=w({});return _e(()=>{i.value={"has-sidebar":o.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,p)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[c("div",zs,[c("div",Rs,[c("div",Ws,[_(Fs,null,{"nav-bar-title-before":f(()=>[d(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),c("div",qs,[c("div",Ks,[d(l.$slots,"nav-bar-content-before",{},void 0,!0),_(Ms,{class:"search"}),_(Ps,{class:"menu"}),_(js,{class:"translations"}),_(Ao,{class:"appearance"}),_(Cs,{class:"social-links"}),_(vs,{class:"extra"}),d(l.$slots,"nav-bar-content-after",{},void 0,!0),_(ms,{class:"hamburger",active:l.isScreenOpen,onClick:p[0]||(p[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),p[1]||(p[1]=c("div",{class:"divider"},[c("div",{class:"divider-line"})],-1))],2))}}),Ys=b(Js,[["__scopeId","data-v-5b5a38f7"]]),Xs={key:0,class:"VPNavScreenAppearance"},Zs={class:"text"},Qs=h({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=L();return(o,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Xs,[c("p",Zs,T(r(t).darkModeSwitchLabel||"Appearance"),1),_(be)])):m("",!0)}}),xs=b(Qs,[["__scopeId","data-v-0de21ed9"]]),ea=["innerHTML"],ta=h({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=oe("close-screen");return(t,o)=>(a(),k(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:r(e)},{default:f(()=>[c("span",{innerHTML:t.item.text},null,8,ea)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),na=b(ta,[["__scopeId","data-v-d68aa0f6"]]),oa=["innerHTML"],sa=h({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=oe("close-screen");return(t,o)=>(a(),k(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:r(e)},{default:f(()=>[c("span",{innerHTML:t.item.text},null,8,oa)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ge=b(sa,[["__scopeId","data-v-060e463d"]]),aa={class:"VPNavScreenMenuGroupSection"},ra={key:0,class:"title"},ia=h({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),u("div",aa,[e.text?(a(),u("p",ra,T(e.text),1)):m("",!0),(a(!0),u(M,null,H(e.items,o=>(a(),k(Ge,{key:o.text,item:o},null,8,["item"]))),128))]))}}),la=b(ia,[["__scopeId","data-v-2bf1f490"]]),ca=["aria-controls","aria-expanded"],ua=["innerHTML"],da=["id"],pa={key:0,class:"item"},va={key:1,class:"item"},fa={key:2,class:"group"},ha=h({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=w(!1),o=$(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[c("button",{class:"button","aria-controls":o.value,"aria-expanded":t.value,onClick:n},[c("span",{class:"button-text",innerHTML:i.text},null,8,ua),l[0]||(l[0]=c("span",{class:"vpi-plus button-icon"},null,-1))],8,ca),c("div",{id:o.value,class:"items"},[(a(!0),u(M,null,H(i.items,p=>(a(),u(M,{key:JSON.stringify(p)},["link"in p?(a(),u("div",pa,[_(Ge,{item:p},null,8,["item"])])):"component"in p?(a(),u("div",va,[(a(),k(E(p.component),U({ref_for:!0},p.props,{"screen-menu":""}),null,16))])):(a(),u("div",fa,[_(la,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,da)],2))}}),ma=b(ha,[["__scopeId","data-v-0c564d61"]]),_a={key:0,class:"VPNavScreenMenu"},ka=h({__name:"VPNavScreenMenu",setup(s){const{theme:e}=L();return(t,o)=>r(e).nav?(a(),u("nav",_a,[(a(!0),u(M,null,H(r(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),k(na,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(E(n.component),U({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),k(ma,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),ga=h({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=L();return(t,o)=>r(e).socialLinks?(a(),k(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):m("",!0)}}),ba={class:"list"},$a=h({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=Z({correspondingLink:!0}),o=w(!1);function n(){o.value=!o.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:o.value}])},[c("button",{class:"title",onClick:n},[l[0]||(l[0]=c("span",{class:"vpi-languages icon lang"},null,-1)),z(" "+T(r(t).label)+" ",1),l[1]||(l[1]=c("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),c("ul",ba,[(a(!0),u(M,null,H(r(e),p=>(a(),u("li",{key:p.link,class:"item"},[_(D,{class:"link",href:p.link},{default:f(()=>[z(T(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),ya=b($a,[["__scopeId","data-v-420c66b6"]]),Pa={class:"container"},La=h({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=w(null),t=Ce(se?document.body:null);return(o,n)=>(a(),k(fe,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:f(()=>[o.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[c("div",Pa,[d(o.$slots,"nav-screen-content-before",{},void 0,!0),_(ka,{class:"menu"}),_(ya,{class:"translations"}),_(xs,{class:"appearance"}),_(ga,{class:"social-links"}),d(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),Va=b(La,[["__scopeId","data-v-be250436"]]),Sa={key:0,class:"VPNav"},Ta=h({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=yo(),{frontmatter:n}=L(),i=$(()=>n.value.navbar!==!1);return He("close-screen",t),ee(()=>{se&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,p)=>i.value?(a(),u("header",Sa,[_(Ys,{"is-screen-open":r(e),onToggleScreen:r(o)},{"nav-bar-title-before":f(()=>[d(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[d(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[d(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),_(Va,{open:r(e)},{"nav-screen-content-before":f(()=>[d(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[d(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),wa=b(Ta,[["__scopeId","data-v-1a0330c1"]]),Na=["role","tabindex"],Ia={key:1,class:"items"},Ma=h({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:o,isLink:n,isActiveLink:i,hasActiveLink:l,hasChildren:p,toggle:v}=Lt($(()=>e.item)),y=$(()=>p.value?"section":"div"),V=$(()=>n.value?"a":"div"),g=$(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=$(()=>n.value?void 0:"button"),I=$(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":l.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&v()}function C(){e.item.link&&v()}return(S,B)=>{const G=W("VPSidebarItem",!0);return a(),k(E(y.value),{class:N(["VPSidebarItem",I.value])},{default:f(()=>[S.item.text?(a(),u("div",U({key:0,class:"item",role:P.value},xe(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[B[1]||(B[1]=c("div",{class:"indicator"},null,-1)),S.item.link?(a(),k(D,{key:0,tag:V.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:f(()=>[(a(),k(E(g.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(E(g.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:et(C,["enter"]),tabindex:"0"},B[0]||(B[0]=[c("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):m("",!0)],16,Na)):m("",!0),S.item.items&&S.item.items.length?(a(),u("div",Ia,[S.depth<5?(a(!0),u(M,{key:0},H(S.item.items,q=>(a(),k(G,{key:q.text,item:q,depth:S.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),Aa=b(Ma,[["__scopeId","data-v-8f5589e4"]]),Ca=h({__name:"VPSidebarGroup",props:{items:{}},setup(s){const e=w(!0);let t=null;return j(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),tt(()=>{t!=null&&(clearTimeout(t),t=null)}),(o,n)=>(a(!0),u(M,null,H(o.items,i=>(a(),u("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[_(Aa,{item:i,depth:0},null,8,["item"])],2))),128))}}),Ha=b(Ca,[["__scopeId","data-v-8ecd6536"]]),Ba={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ea=h({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=O(),o=s,n=w(null),i=Ce(se?document.body:null);F([o,n],()=>{var p;o.open?(i.value=!0,(p=n.value)==null||p.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=w(0);return F(e,()=>{l.value+=1},{deep:!0}),(p,v)=>r(t)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:p.open}]),ref_key:"navEl",ref:n,onClick:v[0]||(v[0]=nt(()=>{},["stop"]))},[v[2]||(v[2]=c("div",{class:"curtain"},null,-1)),c("nav",Ba,[v[1]||(v[1]=c("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),d(p.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k(Ha,{items:r(e),key:l.value},null,8,["items"])),d(p.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),Da=b(Ea,[["__scopeId","data-v-f5cafe11"]]),Fa=h({__name:"VPSkipLink",setup(s){const e=ne(),t=w();F(()=>e.path,()=>t.value.focus());function o({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),u(M,null,[c("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),c("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}}),Oa=b(Fa,[["__scopeId","data-v-6da9c3d4"]]),Ga=h({__name:"Layout",setup(s){const{isOpen:e,open:t,close:o}=O(),n=ne();F(()=>n.path,o),Pt(e,o);const{frontmatter:i}=L(),l=ot(),p=$(()=>!!l["home-hero-image"]);return He("hero-image-slot-exists",p),(v,y)=>{const V=W("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[d(v.$slots,"layout-top",{},void 0,!0),_(Oa),_(ut,{class:"backdrop",show:r(e),onClick:r(o)},null,8,["show","onClick"]),_(wa,null,{"nav-bar-title-before":f(()=>[d(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[d(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[d(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[d(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[d(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),_($o,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),_(Da,{open:r(e)},{"sidebar-nav-before":f(()=>[d(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[d(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),_(so,null,{"page-top":f(()=>[d(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[d(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[d(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[d(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[d(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[d(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[d(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[d(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[d(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[d(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[d(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[d(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[d(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[d(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[d(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[d(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),_(co),d(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(V,{key:1}))}}}),Ua=b(Ga,[["__scopeId","data-v-53a37542"]]),ja={Layout:Ua,enhanceApp:({app:s})=>{s.component("Badge",it)}},za=["data-href"],Ra={key:0,"pointer-events-none":"",absolute:"",left:"1/1","top-0":"","bottom-0":"",flex:"","items-center":"","pl-4px":""},Se=h({__name:"DownloadText",props:{href:{},name:{},type:{default:"application/vnd.android.package-archive"}},setup(s){const e=s,t=$(()=>e.name?e.name:e.href.split("/").at(-1)),o=X(!1),n=async()=>{if(!o.value){o.value=!0,J(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1730897048473/files/.vitepress/dist"+u}return u})("./FileSaver.min.CvNQQnEe.js")).then(i=>i.F),[]);try{const i=await fetch(e.href).then(p=>p.arrayBuffer()).then(p=>new File([p],t.value,{type:e.type})),{saveAs:l}=await J(async()=>{const{saveAs:p}=await import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1730897048473/files/.vitepress/dist"+u}return u})("./FileSaver.min.CvNQQnEe.js")).then(v=>v.F);return{saveAs:p}},[]);l(i,t.value)}finally{o.value=!1}}};return(i,l)=>(a(),u("a",{relative:"",class:N({"cursor-progress":o.value,"cursor-pointer":!o.value}),onClick:n,"data-href":i.href},[c("span",{class:N({"opacity-50":o.value})},T(t.value),3),o.value?(a(),u("div",Ra,l[0]||(l[0]=[c("svg",{"animate-spin":"","size-16px":"",viewBox:"0 0 16 16",fill:"none"},[c("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor","stroke-opacity":"0.25","stroke-width":"2","vector-effect":"non-scaling-stroke"}),c("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)]))):m("",!0)],10,za))}}),K=JSON.parse('{"stable":{"name":"1.9.0","href":"https://registry.npmmirror.com/@gkd-kit/app/latest/files/dist/gkd-v1.9.0.wasm","date":"2024-10-28","filename":"gkd-v1.9.0.apk"},"beta":{"name":"v1.9.1-beta.1","href":"https://registry.npmmirror.com/@gkd-kit/app-beta/latest/files/dist/gkd-v1.9.1-beta.1.wasm","date":"2024-11-06","filename":"gkd-vv1.9.1-beta.1.apk"}}'),Wa=h({__name:"ApkTable",setup(s){return(e,t)=>(a(),u("table",null,[t[4]||(t[4]=c("thead",null,[c("tr",null,[c("th",null,"版本"),c("th",null,"下载链接"),c("th",null,"更新日期"),c("th",null,"备注")])],-1)),c("tbody",null,[c("tr",null,[t[0]||(t[0]=c("td",null,"正式版",-1)),c("td",null,[_(Se,{href:r(K).stable.href,name:r(K).stable.filename},null,8,["href","name"])]),c("td",null,T(r(K).stable.date),1),t[1]||(t[1]=c("td",null,"稳定版",-1))]),c("tr",null,[t[2]||(t[2]=c("td",null,"测试版",-1)),c("td",null,[_(Se,{href:r(K).beta.href,name:r(K).beta.filename},null,8,["href","name"])]),c("td",null,T(r(K).beta.date),1),t[3]||(t[3]=c("td",null,"更新快不稳定",-1))])])]))}}),qa=h((s,e)=>()=>{var t,o;return(o=(t=e.slots).default)==null?void 0:o.call(t)}),Ue=s=>(s.loader(),h((e,t)=>{const o=X();return o.value||s.loader().then(n=>{o.value=n}),()=>o.value?Y(o.value,e,t.slots):Y(s.placeholder,e,t.slots)},{props:s.props})),je=["alt","height","imgProps","previewedImgProps","lazy","intersectionObserverOptions","objectFit","previewSrc","fallbackSrc","width","src","previewDisabled","loadDescription","onError","onLoad","theme","themeOverrides","builtinThemeOverrides","onPreviewPrev","onPreviewNext","showToolbar","showToolbarTooltip","renderToolbar"],Ka=h((s,e)=>()=>Y("div",{class:"n-image"},Y("img",s,e.slots)),{props:je}),Le=Ue({loader:()=>J(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1730897048473/files/.vitepress/dist"+u}return u})("./index.BK928a5-.js")),[]).then(s=>s.NImage),placeholder:Ka,props:je}),ze=Ue({loader:()=>J(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1730897048473/files/.vitepress/dist"+u}return u})("./index.BK928a5-.js")),[]).then(s=>s.NImageGroup),placeholder:qa}),Ja={NImage:Le,NImageGroup:ze},Te=JSON.parse('"https://registry.npmmirror.com/@gkd-kit/assets/0.0.9/files/assets/"'),we="https://a.gkd.li/",Re=s=>s&&s.startsWith("https:")?s.startsWith(we)?Te+s.slice(we.length):s:Te+s,Ya=h(s=>()=>Y(Le,{src:Re(s.src),width:s.width}),{props:["src","width"]}),Xa=h({__name:"IdentifierField",setup(s){const e=X(""),t=/^[_a-zA-Z][a-zA-Z0-9_]*$/,o=st(e,300),n=$(()=>o.value!=="null"&&o.value!=="true"&&o.value!=="false"&&t.test(o.value));return(i,l)=>(a(),u("div",null,[at(c("input",{placeholder:"请输入标识符测试是否合法",type:"text","onUpdate:modelValue":l[0]||(l[0]=p=>e.value=p),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),[[rt,e.value]]),c("div",{"mt-4px":"",class:N({"color-red":!n.value,"opacity-0":!r(o)||!e.value})},T(n.value?"合法标识符✅":"非法标识符❌"),3)]))}}),Za=h({__name:"ImageTable",props:{images:{}},setup(s){return(e,t)=>(a(),u("table",null,[c("tbody",null,[_(r(ze),null,{default:f(()=>[(a(!0),u(M,null,H(e.images,(o,n)=>(a(),u("tr",{key:n},[(a(!0),u(M,null,H(o,i=>(a(),u("td",{key:i},[_(r(Le),{src:r(Re)(i)},null,8,["src"])]))),128))]))),128))]),_:1})])]))}}),Qa={...Ja,GImg:Ya,ImageTable:Za,IdentifierField:Xa,ApkTable:Wa};{const s=location.href.substring(location.origin.length);if(location.pathname.startsWith("/selector/"))location.pathname.at(-1)==="/"?location.pathname="/guide/selector":location.pathname=location.pathname.replace("/selector/","/guide/");else if(location.pathname==="/subscription/")location.pathname="/guide/subscription";else if(location.pathname==="/"){const e=new URLSearchParams(location.search).get("r");e==="1"?location.href="/guide/snapshot#how-to-upload":e==="2"&&(location.href="/guide/faq#restriction")}s==="/guide/faq#fail_setting_secure_settings"&&(location.hash="adb_failed")}const er={extends:ja,enhanceApp({app:s}){Object.entries(Qa).forEach(([e,t])=>{s.component(e,t)})}};export{er as R,Ls as c,L as u};
@@ -1 +1 @@
1
- import{_ as t,c as o,a6 as a,o as d}from"./chunks/framework.BvIb6WYF.js";const q=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md","lastUpdated":1730895880000}'),i={name:"guide/example.md"};function r(l,e,u,c,n,p){return d(),o("div",null,e[0]||(e[0]=[a('<h1 id="title" tabindex="-1">选择示例 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;选择示例 {#title}&quot;">​</a></h1><p>一些选择器及其相关作用说明</p><h2 id="e-1" tabindex="-1">选择根节点 <a class="header-anchor" href="#e-1" aria-label="Permalink to &quot;选择根节点 {#e-1}&quot;">​</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 &quot;选择子节点 {#e-2}&quot;">​</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 &gt; ImageView</code></a></p><p>选择一个 <code>ImageView</code> 节点, 并要求其父节点的父节点是 <code>ViewGroup[vid=&quot;avatar_layout&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0iYXZhdGFyX2xheW91dCJdID4yIEltYWdlVmlldw" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;avatar_layout&quot;] &gt;2 ImageView</code></a></p><p>选择一个 <code>ImageView[vid=&quot;search_icon&quot;]</code> 节点, 并要求祖先节点是 <code>FrameLayout[vid=&quot;content_layout&quot;]</code>, <code>n</code>可以是任意正整数, 下同</p><p><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb250ZW50X2xheW91dCJdIEltYWdlVmlld1t2aWQ9InNlYXJjaF9pY29uIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;content_layout&quot;] &gt;n ImageView[vid=&quot;search_icon&quot;]</code></a></p><h2 id="e-3" tabindex="-1">末尾子节点 <a class="header-anchor" href="#e-3" aria-label="Permalink to &quot;末尾子节点 {#e-3}&quot;">​</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 &quot;选择兄弟节点 {#e-4}&quot;">​</a></h2><p>选择一个 <code>LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code> 节点, 并要求其兄弟节点是 <code>ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2M9IuS4quS6uuS4u-mhte-8jOaMiemSriJdICsgTGluZWFyTGF5b3V0W2Rlc2M9IuaQnOe0ouagj--8jOaMiemSriJd" target="_blank" rel="noreferrer"><code>ViewGroup[desc=&quot;个人主页,按钮&quot;] + LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QExpbmVhckxheW91dFtkZXNjPSLmkJzntKLmoI_vvIzmjInpkq4iXSAtIFZpZXdHcm91cFtkZXNjPSLkuKrkurrkuLvpobXvvIzmjInpkq4iXQ" target="_blank" rel="noreferrer"><code>@LinearLayout[desc=&quot;搜索栏,按钮&quot;] - ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></a></li></ul><p>选择一个 <code>[text$=&quot;顶级入耳&quot;]</code> 节点, 并要求其兄弟节点是 <code>[vid=&quot;cover_layout&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=W3ZpZD0iY292ZXJfbGF5b3V0Il0gK24gW3RleHQkPSLpobbnuqflhaXogLMiXQ" target="_blank" rel="noreferrer"><code>[vid=&quot;cover_layout&quot;] +n [text$=&quot;顶级入耳&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0JD0i6aG257qn5YWl6ICzIl0gLW4gW3ZpZD0iY292ZXJfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>@[text$=&quot;顶级入耳&quot;] -n [vid=&quot;cover_layout&quot;]</code></a></li></ul><h2 id="e-5" tabindex="-1">选择父节点 <a class="header-anchor" href="#e-5" aria-label="Permalink to &quot;选择父节点 {#e-5}&quot;">​</a></h2><p>选择一个 <code>ViewGroup[desc^=&quot;直播&quot;]</code> 节点, 并要求其子节点是 <code>FrameLayout[vid=&quot;cover_layout&quot;]</code> 或 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 或 <code>TextView[vid=&quot;title_v2&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb3Zlcl9sYXlvdXQiXSA8IFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;cover_layout&quot;] &lt; ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJdIDwzIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;live_text_container&quot;] &lt;3 ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=VGV4dFZpZXdbdmlkPSJ0aXRsZV92MiJdIDxuIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>TextView[vid=&quot;title_v2&quot;] &lt;n ViewGroup[desc^=&quot;直播&quot;]</code></a></li></ul><h2 id="e-6" tabindex="-1">在指定节点的子节点内查找指定选择器 <a class="header-anchor" href="#e-6" aria-label="Permalink to &quot;在指定节点的子节点内查找指定选择器 {#e-6}&quot;">​</a></h2><p>一般在末尾节点支持 <a href="/guide/optimize#fast-query">快速查询</a> 的情况下使用</p><p>在节点 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 的子节点内查找 <code>[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0PSLnm7Tmkq0iXSA8PG4gVmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJd" target="_blank" rel="noreferrer"><code>@[text=&quot;直播&quot;] &lt;&lt;n ViewGroup[vid=&quot;live_text_container&quot;]</code></a></p><p>在节点 <code>FrameLayout[vid=&quot;swipe_layout&quot;]</code> 的子节点内查找 <code>LinearLayout &gt; @[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=TGluZWFyTGF5b3V0ID4gQFt0ZXh0PSLnm7Tmkq0iXSA8PG4gW3ZpZD0ic3dpcGVfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>LinearLayout &gt; @[text=&quot;直播&quot;] &lt;&lt;n [vid=&quot;swipe_layout&quot;]</code></a></p><h2 id="e-7" tabindex="-1">组合使用 <a class="header-anchor" href="#e-7" aria-label="Permalink to &quot;组合使用 {#e-7}&quot;">​</a></h2><p><a href="https://i.gkd.li/i/16076188?gkd=SW1hZ2VWaWV3IDwgRnJhbWVMYXlvdXQgPG4gVmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXSAtIFZpZXdHcm91cCA-NCBGcmFtZUxheW91dFtpbmRleD0wXSArMiBGcmFtZUxheW91dCA-IEBUZXh0Vmlld1tpbmRleD1wYXJlbnQuY2hpbGRDb3VudC5taW51cygxKV0gPDxuIEZyYW1lTGF5b3V0W3ZpZD0iY29udGVudCJd" target="_blank" rel="noreferrer"><code>ImageView &lt; FrameLayout &lt;n ViewGroup[desc^=&quot;直播&quot;] - ViewGroup &gt;4 FrameLayout[index=0] +2 FrameLayout &gt; @TextView[index=parent.childCount.minus(1)] &lt;&lt;n FrameLayout[vid=&quot;content&quot;]</code></a></p>',30)]))}const g=t(i,[["render",r]]);export{q as __pageData,g as default};
1
+ import{_ as t,c as o,a6 as a,o as d}from"./chunks/framework.F1MJa8FF.js";const q=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md","lastUpdated":1730897020000}'),i={name:"guide/example.md"};function r(l,e,u,c,n,p){return d(),o("div",null,e[0]||(e[0]=[a('<h1 id="title" tabindex="-1">选择示例 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;选择示例 {#title}&quot;">​</a></h1><p>一些选择器及其相关作用说明</p><h2 id="e-1" tabindex="-1">选择根节点 <a class="header-anchor" href="#e-1" aria-label="Permalink to &quot;选择根节点 {#e-1}&quot;">​</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 &quot;选择子节点 {#e-2}&quot;">​</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 &gt; ImageView</code></a></p><p>选择一个 <code>ImageView</code> 节点, 并要求其父节点的父节点是 <code>ViewGroup[vid=&quot;avatar_layout&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0iYXZhdGFyX2xheW91dCJdID4yIEltYWdlVmlldw" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;avatar_layout&quot;] &gt;2 ImageView</code></a></p><p>选择一个 <code>ImageView[vid=&quot;search_icon&quot;]</code> 节点, 并要求祖先节点是 <code>FrameLayout[vid=&quot;content_layout&quot;]</code>, <code>n</code>可以是任意正整数, 下同</p><p><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb250ZW50X2xheW91dCJdIEltYWdlVmlld1t2aWQ9InNlYXJjaF9pY29uIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;content_layout&quot;] &gt;n ImageView[vid=&quot;search_icon&quot;]</code></a></p><h2 id="e-3" tabindex="-1">末尾子节点 <a class="header-anchor" href="#e-3" aria-label="Permalink to &quot;末尾子节点 {#e-3}&quot;">​</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 &quot;选择兄弟节点 {#e-4}&quot;">​</a></h2><p>选择一个 <code>LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code> 节点, 并要求其兄弟节点是 <code>ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2M9IuS4quS6uuS4u-mhte-8jOaMiemSriJdICsgTGluZWFyTGF5b3V0W2Rlc2M9IuaQnOe0ouagj--8jOaMiemSriJd" target="_blank" rel="noreferrer"><code>ViewGroup[desc=&quot;个人主页,按钮&quot;] + LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QExpbmVhckxheW91dFtkZXNjPSLmkJzntKLmoI_vvIzmjInpkq4iXSAtIFZpZXdHcm91cFtkZXNjPSLkuKrkurrkuLvpobXvvIzmjInpkq4iXQ" target="_blank" rel="noreferrer"><code>@LinearLayout[desc=&quot;搜索栏,按钮&quot;] - ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></a></li></ul><p>选择一个 <code>[text$=&quot;顶级入耳&quot;]</code> 节点, 并要求其兄弟节点是 <code>[vid=&quot;cover_layout&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=W3ZpZD0iY292ZXJfbGF5b3V0Il0gK24gW3RleHQkPSLpobbnuqflhaXogLMiXQ" target="_blank" rel="noreferrer"><code>[vid=&quot;cover_layout&quot;] +n [text$=&quot;顶级入耳&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0JD0i6aG257qn5YWl6ICzIl0gLW4gW3ZpZD0iY292ZXJfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>@[text$=&quot;顶级入耳&quot;] -n [vid=&quot;cover_layout&quot;]</code></a></li></ul><h2 id="e-5" tabindex="-1">选择父节点 <a class="header-anchor" href="#e-5" aria-label="Permalink to &quot;选择父节点 {#e-5}&quot;">​</a></h2><p>选择一个 <code>ViewGroup[desc^=&quot;直播&quot;]</code> 节点, 并要求其子节点是 <code>FrameLayout[vid=&quot;cover_layout&quot;]</code> 或 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 或 <code>TextView[vid=&quot;title_v2&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb3Zlcl9sYXlvdXQiXSA8IFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;cover_layout&quot;] &lt; ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJdIDwzIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;live_text_container&quot;] &lt;3 ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=VGV4dFZpZXdbdmlkPSJ0aXRsZV92MiJdIDxuIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>TextView[vid=&quot;title_v2&quot;] &lt;n ViewGroup[desc^=&quot;直播&quot;]</code></a></li></ul><h2 id="e-6" tabindex="-1">在指定节点的子节点内查找指定选择器 <a class="header-anchor" href="#e-6" aria-label="Permalink to &quot;在指定节点的子节点内查找指定选择器 {#e-6}&quot;">​</a></h2><p>一般在末尾节点支持 <a href="/guide/optimize#fast-query">快速查询</a> 的情况下使用</p><p>在节点 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 的子节点内查找 <code>[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0PSLnm7Tmkq0iXSA8PG4gVmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJd" target="_blank" rel="noreferrer"><code>@[text=&quot;直播&quot;] &lt;&lt;n ViewGroup[vid=&quot;live_text_container&quot;]</code></a></p><p>在节点 <code>FrameLayout[vid=&quot;swipe_layout&quot;]</code> 的子节点内查找 <code>LinearLayout &gt; @[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=TGluZWFyTGF5b3V0ID4gQFt0ZXh0PSLnm7Tmkq0iXSA8PG4gW3ZpZD0ic3dpcGVfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>LinearLayout &gt; @[text=&quot;直播&quot;] &lt;&lt;n [vid=&quot;swipe_layout&quot;]</code></a></p><h2 id="e-7" tabindex="-1">组合使用 <a class="header-anchor" href="#e-7" aria-label="Permalink to &quot;组合使用 {#e-7}&quot;">​</a></h2><p><a href="https://i.gkd.li/i/16076188?gkd=SW1hZ2VWaWV3IDwgRnJhbWVMYXlvdXQgPG4gVmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXSAtIFZpZXdHcm91cCA-NCBGcmFtZUxheW91dFtpbmRleD0wXSArMiBGcmFtZUxheW91dCA-IEBUZXh0Vmlld1tpbmRleD1wYXJlbnQuY2hpbGRDb3VudC5taW51cygxKV0gPDxuIEZyYW1lTGF5b3V0W3ZpZD0iY29udGVudCJd" target="_blank" rel="noreferrer"><code>ImageView &lt; FrameLayout &lt;n ViewGroup[desc^=&quot;直播&quot;] - ViewGroup &gt;4 FrameLayout[index=0] +2 FrameLayout &gt; @TextView[index=parent.childCount.minus(1)] &lt;&lt;n FrameLayout[vid=&quot;content&quot;]</code></a></p>',30)]))}const g=t(i,[["render",r]]);export{q as __pageData,g as default};
@@ -1 +1 @@
1
- import{_ as t,c as o,a6 as a,o as d}from"./chunks/framework.BvIb6WYF.js";const q=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md","lastUpdated":1730895880000}'),i={name:"guide/example.md"};function r(l,e,u,c,n,p){return d(),o("div",null,e[0]||(e[0]=[a('<h1 id="title" tabindex="-1">选择示例 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;选择示例 {#title}&quot;">​</a></h1><p>一些选择器及其相关作用说明</p><h2 id="e-1" tabindex="-1">选择根节点 <a class="header-anchor" href="#e-1" aria-label="Permalink to &quot;选择根节点 {#e-1}&quot;">​</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 &quot;选择子节点 {#e-2}&quot;">​</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 &gt; ImageView</code></a></p><p>选择一个 <code>ImageView</code> 节点, 并要求其父节点的父节点是 <code>ViewGroup[vid=&quot;avatar_layout&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0iYXZhdGFyX2xheW91dCJdID4yIEltYWdlVmlldw" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;avatar_layout&quot;] &gt;2 ImageView</code></a></p><p>选择一个 <code>ImageView[vid=&quot;search_icon&quot;]</code> 节点, 并要求祖先节点是 <code>FrameLayout[vid=&quot;content_layout&quot;]</code>, <code>n</code>可以是任意正整数, 下同</p><p><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb250ZW50X2xheW91dCJdIEltYWdlVmlld1t2aWQ9InNlYXJjaF9pY29uIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;content_layout&quot;] &gt;n ImageView[vid=&quot;search_icon&quot;]</code></a></p><h2 id="e-3" tabindex="-1">末尾子节点 <a class="header-anchor" href="#e-3" aria-label="Permalink to &quot;末尾子节点 {#e-3}&quot;">​</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 &quot;选择兄弟节点 {#e-4}&quot;">​</a></h2><p>选择一个 <code>LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code> 节点, 并要求其兄弟节点是 <code>ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2M9IuS4quS6uuS4u-mhte-8jOaMiemSriJdICsgTGluZWFyTGF5b3V0W2Rlc2M9IuaQnOe0ouagj--8jOaMiemSriJd" target="_blank" rel="noreferrer"><code>ViewGroup[desc=&quot;个人主页,按钮&quot;] + LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QExpbmVhckxheW91dFtkZXNjPSLmkJzntKLmoI_vvIzmjInpkq4iXSAtIFZpZXdHcm91cFtkZXNjPSLkuKrkurrkuLvpobXvvIzmjInpkq4iXQ" target="_blank" rel="noreferrer"><code>@LinearLayout[desc=&quot;搜索栏,按钮&quot;] - ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></a></li></ul><p>选择一个 <code>[text$=&quot;顶级入耳&quot;]</code> 节点, 并要求其兄弟节点是 <code>[vid=&quot;cover_layout&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=W3ZpZD0iY292ZXJfbGF5b3V0Il0gK24gW3RleHQkPSLpobbnuqflhaXogLMiXQ" target="_blank" rel="noreferrer"><code>[vid=&quot;cover_layout&quot;] +n [text$=&quot;顶级入耳&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0JD0i6aG257qn5YWl6ICzIl0gLW4gW3ZpZD0iY292ZXJfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>@[text$=&quot;顶级入耳&quot;] -n [vid=&quot;cover_layout&quot;]</code></a></li></ul><h2 id="e-5" tabindex="-1">选择父节点 <a class="header-anchor" href="#e-5" aria-label="Permalink to &quot;选择父节点 {#e-5}&quot;">​</a></h2><p>选择一个 <code>ViewGroup[desc^=&quot;直播&quot;]</code> 节点, 并要求其子节点是 <code>FrameLayout[vid=&quot;cover_layout&quot;]</code> 或 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 或 <code>TextView[vid=&quot;title_v2&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb3Zlcl9sYXlvdXQiXSA8IFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;cover_layout&quot;] &lt; ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJdIDwzIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;live_text_container&quot;] &lt;3 ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=VGV4dFZpZXdbdmlkPSJ0aXRsZV92MiJdIDxuIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>TextView[vid=&quot;title_v2&quot;] &lt;n ViewGroup[desc^=&quot;直播&quot;]</code></a></li></ul><h2 id="e-6" tabindex="-1">在指定节点的子节点内查找指定选择器 <a class="header-anchor" href="#e-6" aria-label="Permalink to &quot;在指定节点的子节点内查找指定选择器 {#e-6}&quot;">​</a></h2><p>一般在末尾节点支持 <a href="/guide/optimize#fast-query">快速查询</a> 的情况下使用</p><p>在节点 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 的子节点内查找 <code>[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0PSLnm7Tmkq0iXSA8PG4gVmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJd" target="_blank" rel="noreferrer"><code>@[text=&quot;直播&quot;] &lt;&lt;n ViewGroup[vid=&quot;live_text_container&quot;]</code></a></p><p>在节点 <code>FrameLayout[vid=&quot;swipe_layout&quot;]</code> 的子节点内查找 <code>LinearLayout &gt; @[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=TGluZWFyTGF5b3V0ID4gQFt0ZXh0PSLnm7Tmkq0iXSA8PG4gW3ZpZD0ic3dpcGVfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>LinearLayout &gt; @[text=&quot;直播&quot;] &lt;&lt;n [vid=&quot;swipe_layout&quot;]</code></a></p><h2 id="e-7" tabindex="-1">组合使用 <a class="header-anchor" href="#e-7" aria-label="Permalink to &quot;组合使用 {#e-7}&quot;">​</a></h2><p><a href="https://i.gkd.li/i/16076188?gkd=SW1hZ2VWaWV3IDwgRnJhbWVMYXlvdXQgPG4gVmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXSAtIFZpZXdHcm91cCA-NCBGcmFtZUxheW91dFtpbmRleD0wXSArMiBGcmFtZUxheW91dCA-IEBUZXh0Vmlld1tpbmRleD1wYXJlbnQuY2hpbGRDb3VudC5taW51cygxKV0gPDxuIEZyYW1lTGF5b3V0W3ZpZD0iY29udGVudCJd" target="_blank" rel="noreferrer"><code>ImageView &lt; FrameLayout &lt;n ViewGroup[desc^=&quot;直播&quot;] - ViewGroup &gt;4 FrameLayout[index=0] +2 FrameLayout &gt; @TextView[index=parent.childCount.minus(1)] &lt;&lt;n FrameLayout[vid=&quot;content&quot;]</code></a></p>',30)]))}const g=t(i,[["render",r]]);export{q as __pageData,g as default};
1
+ import{_ as t,c as o,a6 as a,o as d}from"./chunks/framework.F1MJa8FF.js";const q=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md","lastUpdated":1730897020000}'),i={name:"guide/example.md"};function r(l,e,u,c,n,p){return d(),o("div",null,e[0]||(e[0]=[a('<h1 id="title" tabindex="-1">选择示例 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;选择示例 {#title}&quot;">​</a></h1><p>一些选择器及其相关作用说明</p><h2 id="e-1" tabindex="-1">选择根节点 <a class="header-anchor" href="#e-1" aria-label="Permalink to &quot;选择根节点 {#e-1}&quot;">​</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 &quot;选择子节点 {#e-2}&quot;">​</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 &gt; ImageView</code></a></p><p>选择一个 <code>ImageView</code> 节点, 并要求其父节点的父节点是 <code>ViewGroup[vid=&quot;avatar_layout&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0iYXZhdGFyX2xheW91dCJdID4yIEltYWdlVmlldw" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;avatar_layout&quot;] &gt;2 ImageView</code></a></p><p>选择一个 <code>ImageView[vid=&quot;search_icon&quot;]</code> 节点, 并要求祖先节点是 <code>FrameLayout[vid=&quot;content_layout&quot;]</code>, <code>n</code>可以是任意正整数, 下同</p><p><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb250ZW50X2xheW91dCJdIEltYWdlVmlld1t2aWQ9InNlYXJjaF9pY29uIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;content_layout&quot;] &gt;n ImageView[vid=&quot;search_icon&quot;]</code></a></p><h2 id="e-3" tabindex="-1">末尾子节点 <a class="header-anchor" href="#e-3" aria-label="Permalink to &quot;末尾子节点 {#e-3}&quot;">​</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 &quot;选择兄弟节点 {#e-4}&quot;">​</a></h2><p>选择一个 <code>LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code> 节点, 并要求其兄弟节点是 <code>ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2M9IuS4quS6uuS4u-mhte-8jOaMiemSriJdICsgTGluZWFyTGF5b3V0W2Rlc2M9IuaQnOe0ouagj--8jOaMiemSriJd" target="_blank" rel="noreferrer"><code>ViewGroup[desc=&quot;个人主页,按钮&quot;] + LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QExpbmVhckxheW91dFtkZXNjPSLmkJzntKLmoI_vvIzmjInpkq4iXSAtIFZpZXdHcm91cFtkZXNjPSLkuKrkurrkuLvpobXvvIzmjInpkq4iXQ" target="_blank" rel="noreferrer"><code>@LinearLayout[desc=&quot;搜索栏,按钮&quot;] - ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></a></li></ul><p>选择一个 <code>[text$=&quot;顶级入耳&quot;]</code> 节点, 并要求其兄弟节点是 <code>[vid=&quot;cover_layout&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=W3ZpZD0iY292ZXJfbGF5b3V0Il0gK24gW3RleHQkPSLpobbnuqflhaXogLMiXQ" target="_blank" rel="noreferrer"><code>[vid=&quot;cover_layout&quot;] +n [text$=&quot;顶级入耳&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0JD0i6aG257qn5YWl6ICzIl0gLW4gW3ZpZD0iY292ZXJfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>@[text$=&quot;顶级入耳&quot;] -n [vid=&quot;cover_layout&quot;]</code></a></li></ul><h2 id="e-5" tabindex="-1">选择父节点 <a class="header-anchor" href="#e-5" aria-label="Permalink to &quot;选择父节点 {#e-5}&quot;">​</a></h2><p>选择一个 <code>ViewGroup[desc^=&quot;直播&quot;]</code> 节点, 并要求其子节点是 <code>FrameLayout[vid=&quot;cover_layout&quot;]</code> 或 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 或 <code>TextView[vid=&quot;title_v2&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb3Zlcl9sYXlvdXQiXSA8IFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;cover_layout&quot;] &lt; ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJdIDwzIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;live_text_container&quot;] &lt;3 ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=VGV4dFZpZXdbdmlkPSJ0aXRsZV92MiJdIDxuIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>TextView[vid=&quot;title_v2&quot;] &lt;n ViewGroup[desc^=&quot;直播&quot;]</code></a></li></ul><h2 id="e-6" tabindex="-1">在指定节点的子节点内查找指定选择器 <a class="header-anchor" href="#e-6" aria-label="Permalink to &quot;在指定节点的子节点内查找指定选择器 {#e-6}&quot;">​</a></h2><p>一般在末尾节点支持 <a href="/guide/optimize#fast-query">快速查询</a> 的情况下使用</p><p>在节点 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 的子节点内查找 <code>[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0PSLnm7Tmkq0iXSA8PG4gVmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJd" target="_blank" rel="noreferrer"><code>@[text=&quot;直播&quot;] &lt;&lt;n ViewGroup[vid=&quot;live_text_container&quot;]</code></a></p><p>在节点 <code>FrameLayout[vid=&quot;swipe_layout&quot;]</code> 的子节点内查找 <code>LinearLayout &gt; @[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=TGluZWFyTGF5b3V0ID4gQFt0ZXh0PSLnm7Tmkq0iXSA8PG4gW3ZpZD0ic3dpcGVfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>LinearLayout &gt; @[text=&quot;直播&quot;] &lt;&lt;n [vid=&quot;swipe_layout&quot;]</code></a></p><h2 id="e-7" tabindex="-1">组合使用 <a class="header-anchor" href="#e-7" aria-label="Permalink to &quot;组合使用 {#e-7}&quot;">​</a></h2><p><a href="https://i.gkd.li/i/16076188?gkd=SW1hZ2VWaWV3IDwgRnJhbWVMYXlvdXQgPG4gVmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXSAtIFZpZXdHcm91cCA-NCBGcmFtZUxheW91dFtpbmRleD0wXSArMiBGcmFtZUxheW91dCA-IEBUZXh0Vmlld1tpbmRleD1wYXJlbnQuY2hpbGRDb3VudC5taW51cygxKV0gPDxuIEZyYW1lTGF5b3V0W3ZpZD0iY29udGVudCJd" target="_blank" rel="noreferrer"><code>ImageView &lt; FrameLayout &lt;n ViewGroup[desc^=&quot;直播&quot;] - ViewGroup &gt;4 FrameLayout[index=0] +2 FrameLayout &gt; @TextView[index=parent.childCount.minus(1)] &lt;&lt;n FrameLayout[vid=&quot;content&quot;]</code></a></p>',30)]))}const g=t(i,[["render",r]]);export{q as __pageData,g as default};
@@ -1 +1 @@
1
- import{_ as e,c as a,a6 as d,o as r}from"./chunks/framework.BvIb6WYF.js";const u=JSON.parse('{"title":"外部交互","description":"","frontmatter":{},"headers":[],"relativePath":"guide/external.md","filePath":"guide/external.md","lastUpdated":1730895880000}'),l={name:"guide/external.md"};function o(i,t,h,n,c,p){return r(),a("div",null,t[0]||(t[0]=[d('<h1 id="title" tabindex="-1">外部交互 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;外部交互 {#title}&quot;">​</a></h1><p>一些无法在应用内界面上直接使用的功能</p><h2 id="app-icon" tabindex="-1">应用图标 <a class="header-anchor" href="#app-icon" aria-label="Permalink to &quot;应用图标 {#app-icon}&quot;">​</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 &quot;跳转应用 {#scheme}&quot;">​</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 &quot;快捷开关 {#shortcut}&quot;">​</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>',14)]))}const b=e(l,[["render",o]]);export{u as __pageData,b as default};
1
+ import{_ as e,c as a,a6 as d,o as r}from"./chunks/framework.F1MJa8FF.js";const u=JSON.parse('{"title":"外部交互","description":"","frontmatter":{},"headers":[],"relativePath":"guide/external.md","filePath":"guide/external.md","lastUpdated":1730897020000}'),l={name:"guide/external.md"};function o(i,t,h,n,c,p){return r(),a("div",null,t[0]||(t[0]=[d('<h1 id="title" tabindex="-1">外部交互 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;外部交互 {#title}&quot;">​</a></h1><p>一些无法在应用内界面上直接使用的功能</p><h2 id="app-icon" tabindex="-1">应用图标 <a class="header-anchor" href="#app-icon" aria-label="Permalink to &quot;应用图标 {#app-icon}&quot;">​</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 &quot;跳转应用 {#scheme}&quot;">​</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 &quot;快捷开关 {#shortcut}&quot;">​</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>',14)]))}const b=e(l,[["render",o]]);export{u as __pageData,b as default};
@@ -1 +1 @@
1
- import{_ as e,c as a,a6 as d,o as r}from"./chunks/framework.BvIb6WYF.js";const u=JSON.parse('{"title":"外部交互","description":"","frontmatter":{},"headers":[],"relativePath":"guide/external.md","filePath":"guide/external.md","lastUpdated":1730895880000}'),l={name:"guide/external.md"};function o(i,t,h,n,c,p){return r(),a("div",null,t[0]||(t[0]=[d('<h1 id="title" tabindex="-1">外部交互 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;外部交互 {#title}&quot;">​</a></h1><p>一些无法在应用内界面上直接使用的功能</p><h2 id="app-icon" tabindex="-1">应用图标 <a class="header-anchor" href="#app-icon" aria-label="Permalink to &quot;应用图标 {#app-icon}&quot;">​</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 &quot;跳转应用 {#scheme}&quot;">​</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 &quot;快捷开关 {#shortcut}&quot;">​</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>',14)]))}const b=e(l,[["render",o]]);export{u as __pageData,b as default};
1
+ import{_ as e,c as a,a6 as d,o as r}from"./chunks/framework.F1MJa8FF.js";const u=JSON.parse('{"title":"外部交互","description":"","frontmatter":{},"headers":[],"relativePath":"guide/external.md","filePath":"guide/external.md","lastUpdated":1730897020000}'),l={name:"guide/external.md"};function o(i,t,h,n,c,p){return r(),a("div",null,t[0]||(t[0]=[d('<h1 id="title" tabindex="-1">外部交互 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;外部交互 {#title}&quot;">​</a></h1><p>一些无法在应用内界面上直接使用的功能</p><h2 id="app-icon" tabindex="-1">应用图标 <a class="header-anchor" href="#app-icon" aria-label="Permalink to &quot;应用图标 {#app-icon}&quot;">​</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 &quot;跳转应用 {#scheme}&quot;">​</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 &quot;快捷开关 {#shortcut}&quot;">​</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>',14)]))}const b=e(l,[["render",o]]);export{u as __pageData,b as default};
@@ -1,4 +1,4 @@
1
- import{_ as r,B as o,c as l,a6 as s,G as p,j as e,a as i,o as t}from"./chunks/framework.BvIb6WYF.js";const k=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1730895880000}'),d={name:"guide/faq.md"};function c(m,a,g,u,h,v){const n=o("ImageTable");return t(),l("div",null,[a[0]||(a[0]=s('<h1 id="title" tabindex="-1">常见问题 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;常见问题 {#title}&quot;">​</a></h1><p>一些可能影响使用体验的问题和对应解决方案, 某些方案可能并不适用您的机型系统</p><p>如您有更好的方案或想对现有方案进行补充, 请点击底部 <code>为此页提供修改建议</code></p><h2 id="power" tabindex="-1">耗电说明 <a class="header-anchor" href="#power" aria-label="Permalink to &quot;耗电说明 {#power}&quot;">​</a></h2><p>首先 GKD 默认情况下并不耗电,有的人以为关闭更新检测,关闭日志就能减少耗电,并不正确</p><p>真正的耗电在于 启用的规则 和 当前应用界面无障碍节点数量及无障碍事件刷新频率</p><p>如果想追求低耗电,那应该开启少量的规则,由于之前的默认规则数量有 1300+,很多人喜欢无脑开启规则</p><p>开启这么多规则,并且在这些规则匹配的界面使用手机,不耗电是不可能的</p><p>此外,某些软件如抖音的无障碍节点数量比较多,并且产生无障碍事件频率也比较高</p><p>长时间下使用此类软件的规则会比较耗电,请自行考虑后再启用</p><h2 id="unknown-app" tabindex="-1">未识别应用 <a class="header-anchor" href="#unknown-app" aria-label="Permalink to &quot;未识别应用 {#unknown-app}&quot;">​</a></h2><p>某些用户可能选择将应用安装到其他用户空间隔离</p><p>这导致 GKD 无法从当前应用列表识别到应用已安装</p><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 &quot;后台运行 {#persistent}&quot;">​</a></h2><p>如何尽量保持后台运行不被系统回收</p><ul><li>任务切换界面给 GKD 应用卡片加锁即可</li></ul><p>一般情况下, 使用此项即可正常后台运行, 如果不行请使用下面的步骤</p><ul><li>打开 GKD 首页, 开启 <code>常驻通知</code></li><li>打开 GKD 设置, 开启 <code>后台隐藏</code></li><li>允许后台活动, 关闭省电策略, 或者设置 GKD 的省电策略为无限制</li><li>允许 GKD 自启动</li></ul><h2 id="restriction" tabindex="-1">受限制的设置 <a class="header-anchor" href="#restriction" aria-label="Permalink to &quot;受限制的设置 {#restriction}&quot;">​</a></h2><div class="tip custom-block github-alert"><p class="custom-block-title">建议</p><p>授予 <code>写入安全设置权限</code> 后可自行开启无障碍, 而无需设置此项</p></div><p>无障碍列表界面提示 <code>受限制的设置(出于安全考虑,此设置目前不可用)</code></p><p>这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限</p><p>您需要解除这个限制, 到系统设置-应用管理-找到并点击GKD-右上角-允许受限制的设置</p><p>以 LineageOS 20 为例, 下面为完整的解除限制流程截图, 此处感谢来自 <a href="https://github.com/gkd-kit/docs/issues/2" target="_blank" rel="noreferrer">CyrusYip</a> 的截图</p>',29)),p(n,{images:[["0013.png","0014.png","0015.png","0016.png"],["0017.png","0018.png"]]}),a[1]||(a[1]=s('<p>如果您按照以上步骤设置后回到 无障碍列表 仍然提示不可用, 您可以试试 <strong>重启手机</strong>, 此解决方案来自 <a href="https://github.com/orgs/gkd-kit/discussions/433#discussioncomment-8899920" target="_blank" rel="noreferrer">Herobrine2005928</a></p><h2 id="close_warn_dialog" tabindex="-1">关闭无障碍警告弹窗 <a class="header-anchor" href="#close_warn_dialog" aria-label="Permalink to &quot;关闭无障碍警告弹窗 {#close_warn_dialog}&quot;">​</a></h2><div class="tip custom-block github-alert"><p class="custom-block-title">建议</p><p>授予 <code>写入安全设置权限</code> 后可自行开启无障碍, 而无需设置此项</p></div><p>这个方案不一定适用所有机型</p><p>大多数设备开启无障碍时都会出现 10s 的无障碍警告弹窗</p><p>若是只需要开启一次则无所谓但是如果开启次数比较多每次都有这个警告等待就很烦人了</p>',6)),p(n,{images:[["0004.png","0005.png"]]}),a[2]||(a[2]=e("p",null,[i("你可能已经看到这个界面还有一个开关, 也就是下方的 "),e("code",null,"快捷方式"),i(" 开关")],-1)),a[3]||(a[3]=e("p",null,"打开一次下面这个快捷方式开关后, 上面的的开启按钮就不会出现警告弹窗了, 但是你会发现屏幕侧边出现了一个应用小图标, 多数情况下我们并不需要这个图标",-1)),a[4]||(a[4]=e("p",null,'到无障碍界面-"无障碍"按钮-使用按钮或手势-点击切换为手势即可隐藏',-1)),a[5]||(a[5]=e("p",null,"以 Xiaomi HyperOS 为例子, 下面是完整的关闭弹窗流程截图",-1)),p(n,{images:[["0009.png","0010.png","0011.png","0012.png"]]}),a[6]||(a[6]=s(`<h2 id="adb_failed" tabindex="-1">adb 授权失败 <a class="header-anchor" href="#adb_failed" aria-label="Permalink to &quot;adb 授权失败 {#adb_failed}&quot;">​</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>
1
+ import{_ as r,B as o,c as l,a6 as s,G as p,j as e,a as i,o as t}from"./chunks/framework.F1MJa8FF.js";const b=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1730897020000}'),d={name:"guide/faq.md"};function c(m,a,g,u,h,v){const n=o("ImageTable");return t(),l("div",null,[a[0]||(a[0]=s('<h1 id="title" tabindex="-1">常见问题 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;常见问题 {#title}&quot;">​</a></h1><p>一些可能影响使用体验的问题和对应解决方案, 某些方案可能并不适用您的机型系统</p><p>如您有更好的方案或想对现有方案进行补充, 请点击底部 <code>为此页提供修改建议</code></p><h2 id="power" tabindex="-1">耗电说明 <a class="header-anchor" href="#power" aria-label="Permalink to &quot;耗电说明 {#power}&quot;">​</a></h2><p>首先 GKD 默认情况下并不耗电,有的人以为关闭更新检测,关闭日志就能减少耗电,并不正确</p><p>真正的耗电在于 启用的规则 和 当前应用界面无障碍节点数量及无障碍事件刷新频率</p><p>如果想追求低耗电,那应该开启少量的规则,由于之前的默认规则数量有 1300+,很多人喜欢无脑开启规则</p><p>开启这么多规则,并且在这些规则匹配的界面使用手机,不耗电是不可能的</p><p>此外,某些软件如抖音的无障碍节点数量比较多,并且产生无障碍事件频率也比较高</p><p>长时间下使用此类软件的规则会比较耗电,请自行考虑后再启用</p><h2 id="unknown-app" tabindex="-1">未识别应用 <a class="header-anchor" href="#unknown-app" aria-label="Permalink to &quot;未识别应用 {#unknown-app}&quot;">​</a></h2><p>某些用户可能选择将应用安装到其他用户空间隔离</p><p>这导致 GKD 无法从当前应用列表识别到应用已安装</p><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 &quot;后台运行 {#persistent}&quot;">​</a></h2><p>如何尽量保持后台运行不被系统回收</p><ul><li>任务切换界面给 GKD 应用卡片加锁即可</li></ul><p>一般情况下, 使用此项即可正常后台运行, 如果不行请使用下面的步骤</p><ul><li>打开 GKD 首页, 开启 <code>常驻通知</code></li><li>打开 GKD 设置, 开启 <code>后台隐藏</code></li><li>允许后台活动, 关闭省电策略, 或者设置 GKD 的省电策略为无限制</li><li>允许 GKD 自启动</li></ul><h2 id="restriction" tabindex="-1">受限制的设置 <a class="header-anchor" href="#restriction" aria-label="Permalink to &quot;受限制的设置 {#restriction}&quot;">​</a></h2><div class="tip custom-block github-alert"><p class="custom-block-title">建议</p><p>授予 <code>写入安全设置权限</code> 后可自行开启无障碍, 而无需设置此项</p></div><p>无障碍列表界面提示 <code>受限制的设置(出于安全考虑,此设置目前不可用)</code></p><p>这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限</p><p>您需要解除这个限制, 到系统设置-应用管理-找到并点击GKD-右上角-允许受限制的设置</p><p>以 LineageOS 20 为例, 下面为完整的解除限制流程截图, 此处感谢来自 <a href="https://github.com/gkd-kit/docs/issues/2" target="_blank" rel="noreferrer">CyrusYip</a> 的截图</p>',29)),p(n,{images:[["0013.png","0014.png","0015.png","0016.png"],["0017.png","0018.png"]]}),a[1]||(a[1]=s('<p>如果您按照以上步骤设置后回到 无障碍列表 仍然提示不可用, 您可以试试 <strong>重启手机</strong>, 此解决方案来自 <a href="https://github.com/orgs/gkd-kit/discussions/433#discussioncomment-8899920" target="_blank" rel="noreferrer">Herobrine2005928</a></p><h2 id="close_warn_dialog" tabindex="-1">关闭无障碍警告弹窗 <a class="header-anchor" href="#close_warn_dialog" aria-label="Permalink to &quot;关闭无障碍警告弹窗 {#close_warn_dialog}&quot;">​</a></h2><div class="tip custom-block github-alert"><p class="custom-block-title">建议</p><p>授予 <code>写入安全设置权限</code> 后可自行开启无障碍, 而无需设置此项</p></div><p>这个方案不一定适用所有机型</p><p>大多数设备开启无障碍时都会出现 10s 的无障碍警告弹窗</p><p>若是只需要开启一次则无所谓但是如果开启次数比较多每次都有这个警告等待就很烦人了</p>',6)),p(n,{images:[["0004.png","0005.png"]]}),a[2]||(a[2]=e("p",null,[i("你可能已经看到这个界面还有一个开关, 也就是下方的 "),e("code",null,"快捷方式"),i(" 开关")],-1)),a[3]||(a[3]=e("p",null,"打开一次下面这个快捷方式开关后, 上面的的开启按钮就不会出现警告弹窗了, 但是你会发现屏幕侧边出现了一个应用小图标, 多数情况下我们并不需要这个图标",-1)),a[4]||(a[4]=e("p",null,'到无障碍界面-"无障碍"按钮-使用按钮或手势-点击切换为手势即可隐藏',-1)),a[5]||(a[5]=e("p",null,"以 Xiaomi HyperOS 为例子, 下面是完整的关闭弹窗流程截图",-1)),p(n,{images:[["0009.png","0010.png","0011.png","0012.png"]]}),a[6]||(a[6]=s(`<h2 id="adb_failed" tabindex="-1">adb 授权失败 <a class="header-anchor" href="#adb_failed" aria-label="Permalink to &quot;adb 授权失败 {#adb_failed}&quot;">​</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
2
  <span class="line"><span></span></span>
3
3
  <span class="line"><span>Exception occurred while executing &#39;grant&#39;:</span></span>
4
4
  <span class="line"><span>java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS.</span></span>
@@ -18,4 +18,4 @@ import{_ as r,B as o,c as l,a6 as s,G as p,j as e,a as i,o as t}from"./chunks/fr
18
18
  <span class="line"><span> at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4352)</span></span>
19
19
  <span class="line"><span> at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6824)</span></span>
20
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>如下是一些设备的解决方案</p><ul><li><p>HyperOS/MIUI(小米、POCO)<br> 在 <code>开发者选项</code> 中开启 <code>USB 调试(安全设置)</code>。注意不是 <code>USB 调试</code></p></li><li><p>ColorOS(OPPO &amp; OnePlus)<br> 在 <code>开发者选项</code> 中关闭 <code>权限监控</code></p></li><li><p>Flyme(魅族)<br> 在 <code>开发者选项</code> 中关闭 <code>Flyme 支付保护</code></p></li></ul><p>关闭限制后重新运行命令即可, 授权成功后可重新打开这些限制</p>`,6))])}const P=r(d,[["render",c]]);export{k as __pageData,P as default};
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></p></li><li><p>ColorOS(OPPO &amp; 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 P=r(d,[["render",c]]);export{b as __pageData,P as default};
@@ -1,4 +1,4 @@
1
- import{_ as r,B as o,c as l,a6 as s,G as p,j as e,a as i,o as t}from"./chunks/framework.BvIb6WYF.js";const k=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1730895880000}'),d={name:"guide/faq.md"};function c(m,a,g,u,h,v){const n=o("ImageTable");return t(),l("div",null,[a[0]||(a[0]=s('<h1 id="title" tabindex="-1">常见问题 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;常见问题 {#title}&quot;">​</a></h1><p>一些可能影响使用体验的问题和对应解决方案, 某些方案可能并不适用您的机型系统</p><p>如您有更好的方案或想对现有方案进行补充, 请点击底部 <code>为此页提供修改建议</code></p><h2 id="power" tabindex="-1">耗电说明 <a class="header-anchor" href="#power" aria-label="Permalink to &quot;耗电说明 {#power}&quot;">​</a></h2><p>首先 GKD 默认情况下并不耗电,有的人以为关闭更新检测,关闭日志就能减少耗电,并不正确</p><p>真正的耗电在于 启用的规则 和 当前应用界面无障碍节点数量及无障碍事件刷新频率</p><p>如果想追求低耗电,那应该开启少量的规则,由于之前的默认规则数量有 1300+,很多人喜欢无脑开启规则</p><p>开启这么多规则,并且在这些规则匹配的界面使用手机,不耗电是不可能的</p><p>此外,某些软件如抖音的无障碍节点数量比较多,并且产生无障碍事件频率也比较高</p><p>长时间下使用此类软件的规则会比较耗电,请自行考虑后再启用</p><h2 id="unknown-app" tabindex="-1">未识别应用 <a class="header-anchor" href="#unknown-app" aria-label="Permalink to &quot;未识别应用 {#unknown-app}&quot;">​</a></h2><p>某些用户可能选择将应用安装到其他用户空间隔离</p><p>这导致 GKD 无法从当前应用列表识别到应用已安装</p><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 &quot;后台运行 {#persistent}&quot;">​</a></h2><p>如何尽量保持后台运行不被系统回收</p><ul><li>任务切换界面给 GKD 应用卡片加锁即可</li></ul><p>一般情况下, 使用此项即可正常后台运行, 如果不行请使用下面的步骤</p><ul><li>打开 GKD 首页, 开启 <code>常驻通知</code></li><li>打开 GKD 设置, 开启 <code>后台隐藏</code></li><li>允许后台活动, 关闭省电策略, 或者设置 GKD 的省电策略为无限制</li><li>允许 GKD 自启动</li></ul><h2 id="restriction" tabindex="-1">受限制的设置 <a class="header-anchor" href="#restriction" aria-label="Permalink to &quot;受限制的设置 {#restriction}&quot;">​</a></h2><div class="tip custom-block github-alert"><p class="custom-block-title">建议</p><p>授予 <code>写入安全设置权限</code> 后可自行开启无障碍, 而无需设置此项</p></div><p>无障碍列表界面提示 <code>受限制的设置(出于安全考虑,此设置目前不可用)</code></p><p>这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限</p><p>您需要解除这个限制, 到系统设置-应用管理-找到并点击GKD-右上角-允许受限制的设置</p><p>以 LineageOS 20 为例, 下面为完整的解除限制流程截图, 此处感谢来自 <a href="https://github.com/gkd-kit/docs/issues/2" target="_blank" rel="noreferrer">CyrusYip</a> 的截图</p>',29)),p(n,{images:[["0013.png","0014.png","0015.png","0016.png"],["0017.png","0018.png"]]}),a[1]||(a[1]=s('<p>如果您按照以上步骤设置后回到 无障碍列表 仍然提示不可用, 您可以试试 <strong>重启手机</strong>, 此解决方案来自 <a href="https://github.com/orgs/gkd-kit/discussions/433#discussioncomment-8899920" target="_blank" rel="noreferrer">Herobrine2005928</a></p><h2 id="close_warn_dialog" tabindex="-1">关闭无障碍警告弹窗 <a class="header-anchor" href="#close_warn_dialog" aria-label="Permalink to &quot;关闭无障碍警告弹窗 {#close_warn_dialog}&quot;">​</a></h2><div class="tip custom-block github-alert"><p class="custom-block-title">建议</p><p>授予 <code>写入安全设置权限</code> 后可自行开启无障碍, 而无需设置此项</p></div><p>这个方案不一定适用所有机型</p><p>大多数设备开启无障碍时都会出现 10s 的无障碍警告弹窗</p><p>若是只需要开启一次则无所谓但是如果开启次数比较多每次都有这个警告等待就很烦人了</p>',6)),p(n,{images:[["0004.png","0005.png"]]}),a[2]||(a[2]=e("p",null,[i("你可能已经看到这个界面还有一个开关, 也就是下方的 "),e("code",null,"快捷方式"),i(" 开关")],-1)),a[3]||(a[3]=e("p",null,"打开一次下面这个快捷方式开关后, 上面的的开启按钮就不会出现警告弹窗了, 但是你会发现屏幕侧边出现了一个应用小图标, 多数情况下我们并不需要这个图标",-1)),a[4]||(a[4]=e("p",null,'到无障碍界面-"无障碍"按钮-使用按钮或手势-点击切换为手势即可隐藏',-1)),a[5]||(a[5]=e("p",null,"以 Xiaomi HyperOS 为例子, 下面是完整的关闭弹窗流程截图",-1)),p(n,{images:[["0009.png","0010.png","0011.png","0012.png"]]}),a[6]||(a[6]=s(`<h2 id="adb_failed" tabindex="-1">adb 授权失败 <a class="header-anchor" href="#adb_failed" aria-label="Permalink to &quot;adb 授权失败 {#adb_failed}&quot;">​</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>
1
+ import{_ as r,B as o,c as l,a6 as s,G as p,j as e,a as i,o as t}from"./chunks/framework.F1MJa8FF.js";const b=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1730897020000}'),d={name:"guide/faq.md"};function c(m,a,g,u,h,v){const n=o("ImageTable");return t(),l("div",null,[a[0]||(a[0]=s('<h1 id="title" tabindex="-1">常见问题 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;常见问题 {#title}&quot;">​</a></h1><p>一些可能影响使用体验的问题和对应解决方案, 某些方案可能并不适用您的机型系统</p><p>如您有更好的方案或想对现有方案进行补充, 请点击底部 <code>为此页提供修改建议</code></p><h2 id="power" tabindex="-1">耗电说明 <a class="header-anchor" href="#power" aria-label="Permalink to &quot;耗电说明 {#power}&quot;">​</a></h2><p>首先 GKD 默认情况下并不耗电,有的人以为关闭更新检测,关闭日志就能减少耗电,并不正确</p><p>真正的耗电在于 启用的规则 和 当前应用界面无障碍节点数量及无障碍事件刷新频率</p><p>如果想追求低耗电,那应该开启少量的规则,由于之前的默认规则数量有 1300+,很多人喜欢无脑开启规则</p><p>开启这么多规则,并且在这些规则匹配的界面使用手机,不耗电是不可能的</p><p>此外,某些软件如抖音的无障碍节点数量比较多,并且产生无障碍事件频率也比较高</p><p>长时间下使用此类软件的规则会比较耗电,请自行考虑后再启用</p><h2 id="unknown-app" tabindex="-1">未识别应用 <a class="header-anchor" href="#unknown-app" aria-label="Permalink to &quot;未识别应用 {#unknown-app}&quot;">​</a></h2><p>某些用户可能选择将应用安装到其他用户空间隔离</p><p>这导致 GKD 无法从当前应用列表识别到应用已安装</p><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 &quot;后台运行 {#persistent}&quot;">​</a></h2><p>如何尽量保持后台运行不被系统回收</p><ul><li>任务切换界面给 GKD 应用卡片加锁即可</li></ul><p>一般情况下, 使用此项即可正常后台运行, 如果不行请使用下面的步骤</p><ul><li>打开 GKD 首页, 开启 <code>常驻通知</code></li><li>打开 GKD 设置, 开启 <code>后台隐藏</code></li><li>允许后台活动, 关闭省电策略, 或者设置 GKD 的省电策略为无限制</li><li>允许 GKD 自启动</li></ul><h2 id="restriction" tabindex="-1">受限制的设置 <a class="header-anchor" href="#restriction" aria-label="Permalink to &quot;受限制的设置 {#restriction}&quot;">​</a></h2><div class="tip custom-block github-alert"><p class="custom-block-title">建议</p><p>授予 <code>写入安全设置权限</code> 后可自行开启无障碍, 而无需设置此项</p></div><p>无障碍列表界面提示 <code>受限制的设置(出于安全考虑,此设置目前不可用)</code></p><p>这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限</p><p>您需要解除这个限制, 到系统设置-应用管理-找到并点击GKD-右上角-允许受限制的设置</p><p>以 LineageOS 20 为例, 下面为完整的解除限制流程截图, 此处感谢来自 <a href="https://github.com/gkd-kit/docs/issues/2" target="_blank" rel="noreferrer">CyrusYip</a> 的截图</p>',29)),p(n,{images:[["0013.png","0014.png","0015.png","0016.png"],["0017.png","0018.png"]]}),a[1]||(a[1]=s('<p>如果您按照以上步骤设置后回到 无障碍列表 仍然提示不可用, 您可以试试 <strong>重启手机</strong>, 此解决方案来自 <a href="https://github.com/orgs/gkd-kit/discussions/433#discussioncomment-8899920" target="_blank" rel="noreferrer">Herobrine2005928</a></p><h2 id="close_warn_dialog" tabindex="-1">关闭无障碍警告弹窗 <a class="header-anchor" href="#close_warn_dialog" aria-label="Permalink to &quot;关闭无障碍警告弹窗 {#close_warn_dialog}&quot;">​</a></h2><div class="tip custom-block github-alert"><p class="custom-block-title">建议</p><p>授予 <code>写入安全设置权限</code> 后可自行开启无障碍, 而无需设置此项</p></div><p>这个方案不一定适用所有机型</p><p>大多数设备开启无障碍时都会出现 10s 的无障碍警告弹窗</p><p>若是只需要开启一次则无所谓但是如果开启次数比较多每次都有这个警告等待就很烦人了</p>',6)),p(n,{images:[["0004.png","0005.png"]]}),a[2]||(a[2]=e("p",null,[i("你可能已经看到这个界面还有一个开关, 也就是下方的 "),e("code",null,"快捷方式"),i(" 开关")],-1)),a[3]||(a[3]=e("p",null,"打开一次下面这个快捷方式开关后, 上面的的开启按钮就不会出现警告弹窗了, 但是你会发现屏幕侧边出现了一个应用小图标, 多数情况下我们并不需要这个图标",-1)),a[4]||(a[4]=e("p",null,'到无障碍界面-"无障碍"按钮-使用按钮或手势-点击切换为手势即可隐藏',-1)),a[5]||(a[5]=e("p",null,"以 Xiaomi HyperOS 为例子, 下面是完整的关闭弹窗流程截图",-1)),p(n,{images:[["0009.png","0010.png","0011.png","0012.png"]]}),a[6]||(a[6]=s(`<h2 id="adb_failed" tabindex="-1">adb 授权失败 <a class="header-anchor" href="#adb_failed" aria-label="Permalink to &quot;adb 授权失败 {#adb_failed}&quot;">​</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
2
  <span class="line"><span></span></span>
3
3
  <span class="line"><span>Exception occurred while executing &#39;grant&#39;:</span></span>
4
4
  <span class="line"><span>java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS.</span></span>
@@ -18,4 +18,4 @@ import{_ as r,B as o,c as l,a6 as s,G as p,j as e,a as i,o as t}from"./chunks/fr
18
18
  <span class="line"><span> at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4352)</span></span>
19
19
  <span class="line"><span> at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6824)</span></span>
20
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>如下是一些设备的解决方案</p><ul><li><p>HyperOS/MIUI(小米、POCO)<br> 在 <code>开发者选项</code> 中开启 <code>USB 调试(安全设置)</code>。注意不是 <code>USB 调试</code></p></li><li><p>ColorOS(OPPO &amp; OnePlus)<br> 在 <code>开发者选项</code> 中关闭 <code>权限监控</code></p></li><li><p>Flyme(魅族)<br> 在 <code>开发者选项</code> 中关闭 <code>Flyme 支付保护</code></p></li></ul><p>关闭限制后重新运行命令即可, 授权成功后可重新打开这些限制</p>`,6))])}const P=r(d,[["render",c]]);export{k as __pageData,P as default};
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></p></li><li><p>ColorOS(OPPO &amp; 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 P=r(d,[["render",c]]);export{b as __pageData,P as default};
@@ -1 +1 @@
1
- import{_ as i,B as n,c as s,j as a,a as t,G as l,a6 as d,o as p}from"./chunks/framework.BvIb6WYF.js";const c=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1730895880000}'),g={name:"guide/index.md"};function u(m,e,f,b,k,x){const r=n("ApkTable"),o=n("ImageTable");return p(),s("div",null,[e[0]||(e[0]=a("h1",{id:"title",tabindex:"-1"},[t("开始使用 "),a("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "开始使用 {#title}"'},"​")],-1)),e[1]||(e[1]=a("h2",{id:"install",tabindex:"-1"},[t("安装 "),a("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "安装 {#install}"'},"​")],-1)),l(r),e[2]||(e[2]=d('<p>或前往 <a href="https://github.com/gkd-kit/gkd/releases/latest" target="_blank" rel="noreferrer">Github Releases</a> 下载</p><p>下载完毕后, 在您的 Android 手机上安装并打开</p><h2 id="usage" tabindex="-1">使用 <a class="header-anchor" href="#usage" aria-label="Permalink to &quot;使用 {#usage}&quot;">​</a></h2><p>打开后进入 GKD 的首页, 要想 GKD 正常工作需要授权无障碍权限</p><p>点击无障碍权限右侧的 <code>授权</code> 按钮即可前往设置的无障碍界面授权</p><p>以 Xiaomi HyperOS 为例, 下面为完整的授权流程截图</p>',6)),l(o,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),e[3]||(e[3]=a("p",null,[t("如果您的手机的无障碍列表界面无法授权 GKD 或者显示 "),a("code",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1)),e[4]||(e[4]=a("p",null,"这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限",-1)),e[5]||(e[5]=a("p",null,[t("您需要解除这个限制, 解除限制的方法在 "),a("a",{href:"/guide/faq"},"常见问题")],-1)),e[6]||(e[6]=a("p",null,"限制解除后, 重新按照上面的授权流程即可开启无障碍权限",-1))])}const G=i(g,[["render",u]]);export{c as __pageData,G as default};
1
+ import{_ as i,B as n,c as s,j as a,a as t,G as l,a6 as d,o as p}from"./chunks/framework.F1MJa8FF.js";const c=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1730897020000}'),g={name:"guide/index.md"};function u(m,e,f,b,k,x){const r=n("ApkTable"),o=n("ImageTable");return p(),s("div",null,[e[0]||(e[0]=a("h1",{id:"title",tabindex:"-1"},[t("开始使用 "),a("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "开始使用 {#title}"'},"​")],-1)),e[1]||(e[1]=a("h2",{id:"install",tabindex:"-1"},[t("安装 "),a("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "安装 {#install}"'},"​")],-1)),l(r),e[2]||(e[2]=d('<p>或前往 <a href="https://github.com/gkd-kit/gkd/releases/latest" target="_blank" rel="noreferrer">Github Releases</a> 下载</p><p>下载完毕后, 在您的 Android 手机上安装并打开</p><h2 id="usage" tabindex="-1">使用 <a class="header-anchor" href="#usage" aria-label="Permalink to &quot;使用 {#usage}&quot;">​</a></h2><p>打开后进入 GKD 的首页, 要想 GKD 正常工作需要授权无障碍权限</p><p>点击无障碍权限右侧的 <code>授权</code> 按钮即可前往设置的无障碍界面授权</p><p>以 Xiaomi HyperOS 为例, 下面为完整的授权流程截图</p>',6)),l(o,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),e[3]||(e[3]=a("p",null,[t("如果您的手机的无障碍列表界面无法授权 GKD 或者显示 "),a("code",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1)),e[4]||(e[4]=a("p",null,"这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限",-1)),e[5]||(e[5]=a("p",null,[t("您需要解除这个限制, 解除限制的方法在 "),a("a",{href:"/guide/faq"},"常见问题")],-1)),e[6]||(e[6]=a("p",null,"限制解除后, 重新按照上面的授权流程即可开启无障碍权限",-1))])}const G=i(g,[["render",u]]);export{c as __pageData,G as default};
@@ -1 +1 @@
1
- import{_ as i,B as n,c as s,j as a,a as t,G as l,a6 as d,o as p}from"./chunks/framework.BvIb6WYF.js";const c=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1730895880000}'),g={name:"guide/index.md"};function u(m,e,f,b,k,x){const r=n("ApkTable"),o=n("ImageTable");return p(),s("div",null,[e[0]||(e[0]=a("h1",{id:"title",tabindex:"-1"},[t("开始使用 "),a("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "开始使用 {#title}"'},"​")],-1)),e[1]||(e[1]=a("h2",{id:"install",tabindex:"-1"},[t("安装 "),a("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "安装 {#install}"'},"​")],-1)),l(r),e[2]||(e[2]=d('<p>或前往 <a href="https://github.com/gkd-kit/gkd/releases/latest" target="_blank" rel="noreferrer">Github Releases</a> 下载</p><p>下载完毕后, 在您的 Android 手机上安装并打开</p><h2 id="usage" tabindex="-1">使用 <a class="header-anchor" href="#usage" aria-label="Permalink to &quot;使用 {#usage}&quot;">​</a></h2><p>打开后进入 GKD 的首页, 要想 GKD 正常工作需要授权无障碍权限</p><p>点击无障碍权限右侧的 <code>授权</code> 按钮即可前往设置的无障碍界面授权</p><p>以 Xiaomi HyperOS 为例, 下面为完整的授权流程截图</p>',6)),l(o,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),e[3]||(e[3]=a("p",null,[t("如果您的手机的无障碍列表界面无法授权 GKD 或者显示 "),a("code",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1)),e[4]||(e[4]=a("p",null,"这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限",-1)),e[5]||(e[5]=a("p",null,[t("您需要解除这个限制, 解除限制的方法在 "),a("a",{href:"/guide/faq"},"常见问题")],-1)),e[6]||(e[6]=a("p",null,"限制解除后, 重新按照上面的授权流程即可开启无障碍权限",-1))])}const G=i(g,[["render",u]]);export{c as __pageData,G as default};
1
+ import{_ as i,B as n,c as s,j as a,a as t,G as l,a6 as d,o as p}from"./chunks/framework.F1MJa8FF.js";const c=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1730897020000}'),g={name:"guide/index.md"};function u(m,e,f,b,k,x){const r=n("ApkTable"),o=n("ImageTable");return p(),s("div",null,[e[0]||(e[0]=a("h1",{id:"title",tabindex:"-1"},[t("开始使用 "),a("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "开始使用 {#title}"'},"​")],-1)),e[1]||(e[1]=a("h2",{id:"install",tabindex:"-1"},[t("安装 "),a("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "安装 {#install}"'},"​")],-1)),l(r),e[2]||(e[2]=d('<p>或前往 <a href="https://github.com/gkd-kit/gkd/releases/latest" target="_blank" rel="noreferrer">Github Releases</a> 下载</p><p>下载完毕后, 在您的 Android 手机上安装并打开</p><h2 id="usage" tabindex="-1">使用 <a class="header-anchor" href="#usage" aria-label="Permalink to &quot;使用 {#usage}&quot;">​</a></h2><p>打开后进入 GKD 的首页, 要想 GKD 正常工作需要授权无障碍权限</p><p>点击无障碍权限右侧的 <code>授权</code> 按钮即可前往设置的无障碍界面授权</p><p>以 Xiaomi HyperOS 为例, 下面为完整的授权流程截图</p>',6)),l(o,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),e[3]||(e[3]=a("p",null,[t("如果您的手机的无障碍列表界面无法授权 GKD 或者显示 "),a("code",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1)),e[4]||(e[4]=a("p",null,"这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限",-1)),e[5]||(e[5]=a("p",null,[t("您需要解除这个限制, 解除限制的方法在 "),a("a",{href:"/guide/faq"},"常见问题")],-1)),e[6]||(e[6]=a("p",null,"限制解除后, 重新按照上面的授权流程即可开启无障碍权限",-1))])}const G=i(g,[["render",u]]);export{c as __pageData,G as default};
@@ -1 +1 @@
1
- import{_ as d,c as e,a6 as o,o as a}from"./chunks/framework.BvIb6WYF.js";const p=JSON.parse('{"title":"属性方法","description":"","frontmatter":{},"headers":[],"relativePath":"guide/node.md","filePath":"guide/node.md","lastUpdated":1730895880000}'),c={name:"guide/node.md"};function r(n,t,l,i,h,b){return a(),e("div",null,t[0]||(t[0]=[o('<h1 id="title" tabindex="-1">属性方法 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;属性方法 {#title}&quot;">​</a></h1><p>此章节介绍各个类型可用的属性及其方法</p><h2 id="null" tabindex="-1">null <a class="header-anchor" href="#null" aria-label="Permalink to &quot;null&quot;">​</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 &quot;boolean&quot;">​</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 &amp;&amp; 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 &quot;int&quot;">​</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 &gt; b</td></tr><tr><td>moreEqual</td><td><code>int</code></td><td><code>boolean</code></td><td>a &gt;= b</td></tr><tr><td>less</td><td><code>int</code></td><td><code>boolean</code></td><td>a &lt; b</td></tr><tr><td>lessEqual</td><td><code>int</code></td><td><code>boolean</code></td><td>a &lt;= b</td></tr></tbody></table><h2 id="string" tabindex="-1">string <a class="header-anchor" href="#string" aria-label="Permalink to &quot;string&quot;">​</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 &quot;node&quot;">​</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 &quot;context&quot;">​</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$=&#39;ImageView&#39;] &gt; 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) -&gt; prev <br> getPrev(1) -&gt; prev.prev <br> getPrev(2) -&gt; prev.prev.prev</td></tr></tbody></table><h2 id="global" tabindex="-1">global <a class="header-anchor" href="#global" aria-label="Permalink to &quot;global&quot;">​</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=&#39;&#39;][prev.name=&#39;&#39;][current.name=&#39;&#39;][parent.name=&#39;&#39;]</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
+ import{_ as d,c as e,a6 as o,o as a}from"./chunks/framework.F1MJa8FF.js";const p=JSON.parse('{"title":"属性方法","description":"","frontmatter":{},"headers":[],"relativePath":"guide/node.md","filePath":"guide/node.md","lastUpdated":1730897020000}'),c={name:"guide/node.md"};function r(n,t,l,i,h,b){return a(),e("div",null,t[0]||(t[0]=[o('<h1 id="title" tabindex="-1">属性方法 <a class="header-anchor" href="#title" aria-label="Permalink to &quot;属性方法 {#title}&quot;">​</a></h1><p>此章节介绍各个类型可用的属性及其方法</p><h2 id="null" tabindex="-1">null <a class="header-anchor" href="#null" aria-label="Permalink to &quot;null&quot;">​</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 &quot;boolean&quot;">​</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 &amp;&amp; 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 &quot;int&quot;">​</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 &gt; b</td></tr><tr><td>moreEqual</td><td><code>int</code></td><td><code>boolean</code></td><td>a &gt;= b</td></tr><tr><td>less</td><td><code>int</code></td><td><code>boolean</code></td><td>a &lt; b</td></tr><tr><td>lessEqual</td><td><code>int</code></td><td><code>boolean</code></td><td>a &lt;= b</td></tr></tbody></table><h2 id="string" tabindex="-1">string <a class="header-anchor" href="#string" aria-label="Permalink to &quot;string&quot;">​</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 &quot;node&quot;">​</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 &quot;context&quot;">​</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$=&#39;ImageView&#39;] &gt; 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) -&gt; prev <br> getPrev(1) -&gt; prev.prev <br> getPrev(2) -&gt; prev.prev.prev</td></tr></tbody></table><h2 id="global" tabindex="-1">global <a class="header-anchor" href="#global" aria-label="Permalink to &quot;global&quot;">​</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=&#39;&#39;][prev.name=&#39;&#39;][current.name=&#39;&#39;][parent.name=&#39;&#39;]</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};