@gkd-kit/docs 0.0.1721312569876 → 0.0.1721382969248
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vitepress/dist/404.html +4 -4
- package/.vitepress/dist/api/index.html +7 -7
- package/.vitepress/dist/api/interfaces/RawApp.html +7 -7
- package/.vitepress/dist/api/interfaces/RawAppGroup.html +7 -7
- package/.vitepress/dist/api/interfaces/RawAppRule.html +7 -7
- package/.vitepress/dist/api/interfaces/RawAppRuleProps.html +7 -7
- package/.vitepress/dist/api/interfaces/RawCategory.html +7 -7
- package/.vitepress/dist/api/interfaces/RawCommonProps.html +7 -7
- package/.vitepress/dist/api/interfaces/RawGlobalApp.html +7 -7
- package/.vitepress/dist/api/interfaces/RawGlobalGroup.html +7 -7
- package/.vitepress/dist/api/interfaces/RawGlobalRule.html +7 -7
- package/.vitepress/dist/api/interfaces/RawGlobalRuleProps.html +7 -7
- package/.vitepress/dist/api/interfaces/RawGroupProps.html +7 -7
- package/.vitepress/dist/api/interfaces/RawRuleProps.html +7 -7
- package/.vitepress/dist/api/interfaces/RawSubscription.html +7 -7
- package/.vitepress/dist/api/type-aliases/IArray.html +7 -7
- package/.vitepress/dist/api/type-aliases/Integer.html +7 -7
- package/.vitepress/dist/api/type-aliases/Position.html +7 -7
- package/.vitepress/dist/assets/{api_index.md.3PRXJson.js → api_index.md.B_aYOoV1.js} +1 -1
- package/.vitepress/dist/assets/api_index.md.B_aYOoV1.lean.js +1 -0
- package/.vitepress/dist/assets/{api_interfaces_RawApp.md.8sLmHweB.js → api_interfaces_RawApp.md.Bp5w73RS.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawApp.md.8sLmHweB.lean.js → api_interfaces_RawApp.md.Bp5w73RS.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawAppGroup.md.DdwJRj99.js → api_interfaces_RawAppGroup.md.jeT3_cxo.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawAppGroup.md.DdwJRj99.lean.js → api_interfaces_RawAppGroup.md.jeT3_cxo.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawAppRule.md.DOjDKktq.js → api_interfaces_RawAppRule.md.CbLX8P8G.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawAppRule.md.DOjDKktq.lean.js → api_interfaces_RawAppRule.md.CbLX8P8G.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawAppRuleProps.md.WEps3B2Z.js → api_interfaces_RawAppRuleProps.md.mDHegsKi.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawAppRuleProps.md.WEps3B2Z.lean.js → api_interfaces_RawAppRuleProps.md.mDHegsKi.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawCategory.md.DQKPbY5o.js → api_interfaces_RawCategory.md.DUdjgczY.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawCategory.md.DQKPbY5o.lean.js → api_interfaces_RawCategory.md.DUdjgczY.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawCommonProps.md.BoObWunG.js → api_interfaces_RawCommonProps.md.CtSInFSc.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawCommonProps.md.BoObWunG.lean.js → api_interfaces_RawCommonProps.md.CtSInFSc.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalApp.md.DTFuY6sg.js → api_interfaces_RawGlobalApp.md.CBmfAnb3.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalApp.md.DTFuY6sg.lean.js → api_interfaces_RawGlobalApp.md.CBmfAnb3.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalGroup.md.CI-pj5AD.js → api_interfaces_RawGlobalGroup.md.BZQPgreG.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalGroup.md.CI-pj5AD.lean.js → api_interfaces_RawGlobalGroup.md.BZQPgreG.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalRule.md.ButOuD_j.js → api_interfaces_RawGlobalRule.md.r5Lzge_Q.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalRule.md.ButOuD_j.lean.js → api_interfaces_RawGlobalRule.md.r5Lzge_Q.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalRuleProps.md.jof0OV0K.js → api_interfaces_RawGlobalRuleProps.md.DaMg9gj5.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalRuleProps.md.jof0OV0K.lean.js → api_interfaces_RawGlobalRuleProps.md.DaMg9gj5.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGroupProps.md.CzfLdQXT.js → api_interfaces_RawGroupProps.md.CZ0hUrWr.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGroupProps.md.CzfLdQXT.lean.js → api_interfaces_RawGroupProps.md.CZ0hUrWr.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawRuleProps.md.BAzarHNi.js → api_interfaces_RawRuleProps.md.DkIc0L7c.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawRuleProps.md.BAzarHNi.lean.js → api_interfaces_RawRuleProps.md.DkIc0L7c.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawSubscription.md.Dc51XN4e.js → api_interfaces_RawSubscription.md.CKljwK0U.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawSubscription.md.Dc51XN4e.lean.js → api_interfaces_RawSubscription.md.CKljwK0U.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_IArray.md.oRXi7ugr.js → api_type-aliases_IArray.md.DBIZ7Hb2.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_IArray.md.oRXi7ugr.lean.js → api_type-aliases_IArray.md.DBIZ7Hb2.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_Integer.md.D6h74cIH.js → api_type-aliases_Integer.md.B1mLD5vo.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_Integer.md.D6h74cIH.lean.js → api_type-aliases_Integer.md.B1mLD5vo.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_Position.md.CdkdhAt0.js → api_type-aliases_Position.md.CgxnJPJO.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_Position.md.CdkdhAt0.lean.js → api_type-aliases_Position.md.CgxnJPJO.lean.js} +1 -1
- package/.vitepress/dist/assets/app.CJsRL6DI.js +1 -0
- package/.vitepress/dist/assets/chunks/@localSearchIndexroot.DNYdB9Q4.js +1 -0
- package/.vitepress/dist/assets/chunks/{VPLocalSearchBox.eYtt4ge9.js → VPLocalSearchBox.BWhTmwu8.js} +2 -2
- package/.vitepress/dist/assets/chunks/{framework.CSd4LtKr.js → framework.DAuRlsJR.js} +1 -1
- package/.vitepress/dist/assets/chunks/{index.R0h7RKsp.js → index.B6slXCSj.js} +1 -1
- package/.vitepress/dist/assets/chunks/theme.Ct42Rw2h.js +1 -0
- package/.vitepress/dist/assets/{guide_faq.md.B9Ah14lM.js → guide_faq.md.CQh24LD7.js} +1 -1
- package/.vitepress/dist/assets/{guide_faq.md.B9Ah14lM.lean.js → guide_faq.md.CQh24LD7.lean.js} +1 -1
- package/.vitepress/dist/assets/guide_index.md.C19r84dZ.js +1 -0
- package/.vitepress/dist/assets/guide_index.md.C19r84dZ.lean.js +1 -0
- package/.vitepress/dist/assets/{guide_snapshot.md.BcNduC28.js → guide_snapshot.md.DdWrSBgV.js} +1 -1
- package/.vitepress/dist/assets/{guide_snapshot.md.BcNduC28.lean.js → guide_snapshot.md.DdWrSBgV.lean.js} +1 -1
- package/.vitepress/dist/assets/{guide_subscription.md.BDMLB3yr.js → guide_subscription.md.BMiwrNPy.js} +1 -1
- package/.vitepress/dist/assets/{guide_subscription.md.BDMLB3yr.lean.js → guide_subscription.md.BMiwrNPy.lean.js} +1 -1
- package/.vitepress/dist/assets/{guide_what-is-gkd.md.8PjQDyPD.js → guide_what-is-gkd.md.C31ijX-g.js} +1 -1
- package/.vitepress/dist/assets/guide_what-is-gkd.md.C31ijX-g.lean.js +1 -0
- package/.vitepress/dist/assets/{index.md.BIe7A5q2.js → index.md.DTAaOzk1.js} +1 -1
- package/.vitepress/dist/assets/{index.md.BIe7A5q2.lean.js → index.md.DTAaOzk1.lean.js} +1 -1
- package/.vitepress/dist/assets/{selector_example.md.CuUVYz1m.js → selector_example.md.-3DFvS7c.js} +1 -1
- package/.vitepress/dist/assets/selector_example.md.-3DFvS7c.lean.js +1 -0
- package/.vitepress/dist/assets/selector_index.md.vTFQ7m-J.js +12 -0
- package/.vitepress/dist/assets/selector_index.md.vTFQ7m-J.lean.js +1 -0
- package/.vitepress/dist/assets/{selector_node.md.D9P0EESL.js → selector_node.md.C9SxSLjc.js} +1 -1
- package/.vitepress/dist/assets/selector_node.md.C9SxSLjc.lean.js +1 -0
- package/.vitepress/dist/assets/{selector_optimize.md.DHOZlZAJ.js → selector_optimize.md.qZxu6dCr.js} +1 -1
- package/.vitepress/dist/assets/selector_optimize.md.qZxu6dCr.lean.js +1 -0
- package/.vitepress/dist/assets/{snapshot_index.md.BgTjn8Ut.js → snapshot_index.md.kVTiIPnR.js} +1 -1
- package/.vitepress/dist/assets/{snapshot_index.md.BgTjn8Ut.lean.js → snapshot_index.md.kVTiIPnR.lean.js} +1 -1
- package/.vitepress/dist/assets/style.DU-YwcM_.css +1 -1
- package/.vitepress/dist/guide/faq.html +8 -8
- package/.vitepress/dist/guide/index.html +8 -8
- package/.vitepress/dist/guide/snapshot.html +8 -8
- package/.vitepress/dist/guide/subscription.html +8 -8
- package/.vitepress/dist/guide/what-is-gkd.html +8 -8
- package/.vitepress/dist/hashmap.json +1 -1
- package/.vitepress/dist/index.html +7 -7
- package/.vitepress/dist/selector/example.html +8 -8
- package/.vitepress/dist/selector/index.html +9 -9
- package/.vitepress/dist/selector/node.html +8 -8
- package/.vitepress/dist/selector/optimize.html +8 -8
- package/.vitepress/dist/snapshot/index.html +8 -8
- package/package.json +1 -1
- package/.vitepress/dist/assets/api_index.md.3PRXJson.lean.js +0 -1
- package/.vitepress/dist/assets/app.DqzQBrqq.js +0 -1
- package/.vitepress/dist/assets/chunks/@localSearchIndexroot.CQRgRmWG.js +0 -1
- package/.vitepress/dist/assets/chunks/theme.u-UTZ1M2.js +0 -1
- package/.vitepress/dist/assets/guide_index.md.C6EnGW7N.js +0 -1
- package/.vitepress/dist/assets/guide_index.md.C6EnGW7N.lean.js +0 -1
- package/.vitepress/dist/assets/guide_what-is-gkd.md.8PjQDyPD.lean.js +0 -1
- package/.vitepress/dist/assets/selector_example.md.CuUVYz1m.lean.js +0 -1
- package/.vitepress/dist/assets/selector_index.md.Dq6qdIFi.js +0 -12
- package/.vitepress/dist/assets/selector_index.md.Dq6qdIFi.lean.js +0 -1
- package/.vitepress/dist/assets/selector_node.md.D9P0EESL.lean.js +0 -1
- package/.vitepress/dist/assets/selector_optimize.md.DHOZlZAJ.lean.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as Se,a as _,_ as ve,h as Ie,o as a,c as l,r as c,n as N,b as O,t as T,e as k,w as d,T as pe,f,g as $,u as Je,i as Ye,j as Xe,k as he,l as y,m as v,p as r,q as H,s as E,v as W,x as ie,y as w,z as G,A as Z,B as q,C as fe,D as _e,E as Qe,F as Ze,G as K,H as M,I as B,J as Te,K as x,L as m,M as D,N as we,O as ee,P as R,Q as te,R as xe,S as Ne,U as le,V as et,W as Me,X as oe,Y as tt,Z as Ae,$ as Ce,a0 as ot,a1 as nt,a2 as st,a3 as at,a4 as rt}from"./framework.CSd4LtKr.js";const it=_((o,e)=>()=>{var t,s;return(s=(t=e.slots).default)==null?void 0:s.call(t)}),Be=o=>(o.loader(),Se(o)),lt=_((o,e)=>()=>Ie("img",{...e.attrs,...o}),{props:["src"]}),He=Be({loader:()=>ve(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1721312569876/files/.vitepress/dist"+u}return u})("./index.R0h7RKsp.js")),[]).then(o=>o.NImage),loadingComponent:lt}),ct=Be({loader:()=>ve(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1721312569876/files/.vitepress/dist"+u}return u})("./index.R0h7RKsp.js")),[]).then(o=>o.NImageGroup),loadingComponent:it}),Pe=()=>"https://registry.npmmirror.com/@gkd-kit/assets/0.0.6/files/assets/",Ve="https://a.gkd.li/",Ee=o=>o&&o.startsWith("https:")?o.startsWith(Ve)?Pe()+o.slice(Ve.length):o:Pe()+o,Tr=_(o=>()=>Ie(He,{src:Ee(o.src),width:o.width}),{props:["src","width"]}),ut=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),l("span",{class:N(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[O(T(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},vt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),k(pe,{name:"fade"},{default:d(()=>[e.show?(a(),l("div",dt)):f("",!0)]),_:1}))}}),pt=$(vt,[["__scopeId","data-v-7a2b0422"]]),P=Je;function ht(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ce(o){return/^\//.test(o)?o:`/${o}`}function me(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(Ye(o)||o.startsWith("#")||!n.startsWith("http")||!Xe(e))return o;const{site:i}=P(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return he(u)}function Y({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:i}=P(),u=y(()=>{var p,g;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([p,g])=>u.value.label===g.label?[]:{text:g.label,link:ft(g.link||(p==="root"?"/":`/${p}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:u}}function ft(o,e,t,s){return e?o.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const _t=o=>(H("data-v-24d3c900"),o=o(),E(),o),mt={class:"NotFound"},kt={class:"code"},bt={class:"title"},$t=_t(()=>v("div",{class:"divider"},null,-1)),gt={class:"quote"},yt={class:"action"},Pt=["href","aria-label"],Vt=_({__name:"NotFound",setup(o){const{theme:e}=P(),{currentLang:t}=Y();return(s,n)=>{var i,u,h,p,g;return a(),l("div",mt,[v("p",kt,T(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),v("h1",bt,T(((u=r(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),$t,v("blockquote",gt,T(((h=r(e).notFound)==null?void 0:h.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),v("div",yt,[v("a",{class:"link",href:r(he)(r(t).link),"aria-label":((p=r(e).notFound)==null?void 0:p.linkLabel)??"go to home"},T(((g=r(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,Pt)])])}}}),Lt=$(Vt,[["__scopeId","data-v-24d3c900"]]);function De(o,e){if(Array.isArray(o))return X(o);if(o==null)return[];e=ce(e);const t=Object.keys(o).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(ce(n))),s=t?o[t]:[];return Array.isArray(s)?X(s):X(s.items,s.base)}function St(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function It(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):W(o,e.link)?!0:e.items?ue(o,e.items):!1}function X(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=X(s.items,n)),s})}function U(){const{frontmatter:o,page:e,theme:t}=P(),s=ie("(min-width: 960px)"),n=w(!1),i=y(()=>{const C=t.value.sidebar,S=e.value.relativePath;return C?De(C,S):[]}),u=w(i.value);G(i,(C,S)=>{JSON.stringify(C)!==JSON.stringify(S)&&(u.value=i.value)});const h=y(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),p=y(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),L=y(()=>h.value&&s.value),b=y(()=>h.value?St(u.value):[]);function V(){n.value=!0}function I(){n.value=!1}function A(){n.value?I():V()}return{isOpen:n,sidebar:u,sidebarGroups:b,hasSidebar:h,hasAside:g,leftAside:p,isSidebarEnabled:L,open:V,close:I,toggle:A}}function Tt(o,e){let t;Z(()=>{t=o.value?document.activeElement:void 0}),q(()=>{window.addEventListener("keyup",s)}),fe(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function wt(o){const{page:e,hash:t}=P(),s=w(!1),n=y(()=>o.value.collapsed!=null),i=y(()=>!!o.value.link),u=w(!1),h=()=>{u.value=W(e.value.relativePath,o.value.link)};G([e,o,t],h),q(h);const p=y(()=>u.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),g=y(()=>!!(o.value.items&&o.value.items.length));Z(()=>{s.value=!!(n.value&&o.value.collapsed)}),_e(()=>{(u.value||p.value)&&(s.value=!1)});function L(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:i,isActiveLink:u,hasActiveLink:p,hasChildren:g,toggle:L}}function Nt(){const{hasSidebar:o}=U(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const de=[];function Fe(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function ke(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Mt(t),link:"#"+t.id,level:s}});return At(e,o)}function Mt(o){let e="";for(const t of o.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 At(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=s&&u.level<=n),de.length=0;for(const{element:u,link:h}of o)de.push({element:u,link:h});const i=[];e:for(let u=0;u<o.length;u++){const h=o[u];if(u===0)i.push(h);else{for(let p=u-1;p>=0;p--){const g=o[p];if(g.level<h.level){(g.children||(g.children=[])).push(h);continue e}}i.push(h)}}return i}function Ct(o,e){const{isAsideEnabled:t}=Nt(),s=ht(i,100);let n=null;q(()=>{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Qe(()=>{u(location.hash)}),fe(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const h=window.scrollY,p=window.innerHeight,g=document.body.offsetHeight,L=Math.abs(h+p-g)<1,b=de.map(({element:I,link:A})=>({link:A,top:Bt(I)})).filter(({top:I})=>!Number.isNaN(I)).sort((I,A)=>I.top-A.top);if(!b.length){u(null);return}if(h<1){u(null);return}if(L){u(b[b.length-1].link);return}let V=null;for(const{link:I,top:A}of b){if(A>h+Ze()+4)break;V=I}u(V)}function u(h){n&&n.classList.remove("active"),h==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const Ht=["href","title"],Et=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const s=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(s));n==null||n.focus({preventScroll:!0})}return(t,s)=>{const n=K("VPDocOutlineItem",!0);return a(),l("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),l(M,null,B(t.headers,({children:i,link:u,title:h})=>(a(),l("li",null,[v("a",{class:"outline-link",href:u,onClick:e,title:h},T(h),9,Ht),i!=null&&i.length?(a(),k(n,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Oe=$(Et,[["__scopeId","data-v-f79973e7"]]),Dt={class:"content"},Ft={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ot=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=P(),s=Te([]);x(()=>{s.value=ke(e.value.outline??t.value.outline)});const n=w(),i=w();return Ct(n,i),(u,h)=>(a(),l("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[v("div",Dt,[v("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),v("div",Ft,T(r(Fe)(r(t))),1),m(Oe,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),Gt=$(Ot,[["__scopeId","data-v-f221d76e"]]),Ut={class:"VPDocAsideCarbonAds"},jt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),l("div",Ut,[m(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),zt=o=>(H("data-v-79c6c827"),o=o(),E(),o),Rt={class:"VPDocAside"},Wt=zt(()=>v("div",{class:"spacer"},null,-1)),qt=_({__name:"VPDocAside",setup(o){const{theme:e}=P();return(t,s)=>(a(),l("div",Rt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),m(Gt),c(t.$slots,"aside-outline-after",{},void 0,!0),Wt,c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(jt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Kt=$(qt,[["__scopeId","data-v-79c6c827"]]);function Jt(){const{theme:o,page:e}=P();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Yt(){const{page:o,theme:e,frontmatter:t}=P();return y(()=>{var g,L,b,V,I,A,C,S;const s=De(e.value.sidebar,o.value.relativePath),n=It(s),i=Xt(n,j=>j.link.replace(/[?#].*$/,"")),u=i.findIndex(j=>W(o.value.relativePath,j.link)),h=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:h?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[u-1])==null?void 0:b.docFooterText)??((V=i[u-1])==null?void 0:V.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((I=i[u-1])==null?void 0:I.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[u+1])==null?void 0:A.docFooterText)??((C=i[u+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[u+1])==null?void 0:S.link)}}})}function Xt(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&we.test(e.href)||e.target==="_blank");return(n,i)=>(a(),k(D(t.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?r(me)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:d(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Qt={class:"VPLastUpdated"},Zt=["datetime"],xt=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=P(),n=y(()=>new Date(t.value.lastUpdated)),i=y(()=>n.value.toISOString()),u=w("");return q(()=>{Z(()=>{var h,p,g;u.value=new Intl.DateTimeFormat((p=(h=e.value.lastUpdated)==null?void 0:h.formatOptions)!=null&&p.forceLocale?s.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(h,p)=>{var g;return a(),l("p",Qt,[O(T(((g=r(e).lastUpdated)==null?void 0:g.text)||r(e).lastUpdatedText||"Last updated")+": ",1),v("time",{datetime:i.value},T(u.value),9,Zt)])}}}),eo=$(xt,[["__scopeId","data-v-ae16f668"]]),Ge=o=>(H("data-v-e502f8cb"),o=o(),E(),o),to={key:0,class:"VPDocFooter"},oo={key:0,class:"edit-info"},no={key:0,class:"edit-link"},so=Ge(()=>v("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),ao={key:1,class:"last-updated"},ro={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},io=Ge(()=>v("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),lo={class:"pager"},co=["innerHTML"],uo=["innerHTML"],vo={class:"pager"},po=["innerHTML"],ho=["innerHTML"],fo=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=P(),n=Jt(),i=Yt(),u=y(()=>e.value.editLink&&s.value.editLink!==!1),h=y(()=>t.value.lastUpdated),p=y(()=>u.value||h.value||i.value.prev||i.value.next);return(g,L)=>{var b,V,I,A;return p.value?(a(),l("footer",to,[c(g.$slots,"doc-footer-before",{},void 0,!0),u.value||h.value?(a(),l("div",oo,[u.value?(a(),l("div",no,[m(F,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:d(()=>[so,O(" "+T(r(n).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),l("div",ao,[m(eo)])):f("",!0)])):f("",!0),(b=r(i).prev)!=null&&b.link||(V=r(i).next)!=null&&V.link?(a(),l("nav",ro,[io,v("div",lo,[(I=r(i).prev)!=null&&I.link?(a(),k(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,co),v("span",{class:"title",innerHTML:r(i).prev.text},null,8,uo)]}),_:1},8,["href"])):f("",!0)]),v("div",vo,[(A=r(i).next)!=null&&A.link?(a(),k(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:d(()=>{var C;return[v("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,po),v("span",{class:"title",innerHTML:r(i).next.text},null,8,ho)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),_o=$(fo,[["__scopeId","data-v-e502f8cb"]]),mo=o=>(H("data-v-16b3672a"),o=o(),E(),o),ko={class:"container"},bo=mo(()=>v("div",{class:"aside-curtain"},null,-1)),$o={class:"aside-container"},go={class:"aside-content"},yo={class:"content"},Po={class:"content-container"},Vo={class:"main"},Lo=_({__name:"VPDoc",setup(o){const{theme:e}=P(),t=ee(),{hasSidebar:s,hasAside:n,leftAside:i}=U(),u=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,p)=>{const g=K("Content");return a(),l("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(n)}])},[c(h.$slots,"doc-top",{},void 0,!0),v("div",ko,[r(n)?(a(),l("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[bo,v("div",$o,[v("div",go,[m(Kt,null,{"aside-top":d(()=>[c(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[c(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[c(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[c(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[c(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[c(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),v("div",yo,[v("div",Po,[c(h.$slots,"doc-before",{},void 0,!0),v("main",Vo,[m(g,{class:N(["vp-doc",[u.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),m(_o,null,{"doc-footer-before":d(()=>[c(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(h.$slots,"doc-after",{},void 0,!0)])])]),c(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),So=$(Lo,[["__scopeId","data-v-16b3672a"]]),Io=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&we.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(n,i)=>(a(),k(D(s.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?r(me)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:d(()=>[O(T(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),To=$(Io,[["__scopeId","data-v-90726587"]]),wo=["src","alt"],No=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=K("VPImage",!0);return e.image?(a(),l(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",R({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,wo)):(a(),l(M,{key:1},[m(s,R({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),m(s,R({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Q=$(No,[["__scopeId","data-v-8cae6bf8"]]),Mo=o=>(H("data-v-0c1ee86c"),o=o(),E(),o),Ao={class:"container"},Co={class:"main"},Bo={key:0,class:"name"},Ho=["innerHTML"],Eo=["innerHTML"],Do=["innerHTML"],Fo={key:0,class:"actions"},Oo={key:0,class:"image"},Go={class:"image-container"},Uo=Mo(()=>v("div",{class:"image-bg"},null,-1)),jo=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=te("hero-image-slot-exists");return(t,s)=>(a(),l("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[v("div",Ao,[v("div",Co,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",Bo,[v("span",{innerHTML:t.name,class:"clip"},null,8,Ho)])):f("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Eo)):f("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Do)):f("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),l("div",Fo,[(a(!0),l(M,null,B(t.actions,n=>(a(),l("div",{key:n.link,class:"action"},[m(To,{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))])):f("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),l("div",Oo,[v("div",Go,[Uo,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),zo=$(jo,[["__scopeId","data-v-0c1ee86c"]]),Ro=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=P();return(t,s)=>r(e).hero?(a(),k(zo,{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":d(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":d(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":d(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":d(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":d(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Wo=o=>(H("data-v-48a86318"),o=o(),E(),o),qo={class:"box"},Ko={key:0,class:"icon"},Jo=["innerHTML"],Yo=["innerHTML"],Xo=["innerHTML"],Qo={key:4,class:"link-text"},Zo={class:"link-text-value"},xo=Wo(()=>v("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),en=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),k(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:d(()=>[v("article",qo,[typeof e.icon=="object"&&e.icon.wrap?(a(),l("div",Ko,[m(Q,{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(Q,{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(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Jo)):f("",!0),v("h2",{class:"title",innerHTML:e.title},null,8,Yo),e.details?(a(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Xo)):f("",!0),e.linkText?(a(),l("div",Qo,[v("p",Zo,[O(T(e.linkText)+" ",1),xo])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),tn=$(en,[["__scopeId","data-v-48a86318"]]),on={key:0,class:"VPFeatures"},nn={class:"container"},sn={class:"items"},an=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),l("div",on,[v("div",nn,[v("div",sn,[(a(!0),l(M,null,B(s.features,i=>(a(),l("div",{key:i.title,class:N(["item",[t.value]])},[m(tn,{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))])])])):f("",!0)}}),rn=$(an,[["__scopeId","data-v-f47f4d88"]]),ln=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=P();return(t,s)=>r(e).features?(a(),k(rn,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),cn=_({__name:"VPHomeContent",setup(o){const{width:e}=xe({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),l("div",{class:"vp-doc container",style:Ne(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),un=$(cn,[["__scopeId","data-v-263a52f8"]]),dn={class:"VPHome"},vn=_({__name:"VPHome",setup(o){const{frontmatter:e}=P();return(t,s)=>{const n=K("Content");return a(),l("div",dn,[c(t.$slots,"home-hero-before",{},void 0,!0),m(Ro,null,{"home-hero-info-before":d(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),m(ln),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),k(un,{key:0},{default:d(()=>[m(n)]),_:1})):(a(),k(n,{key:1}))])}}}),pn=$(vn,[["__scopeId","data-v-bf2197c9"]]),hn={},fn={class:"VPPage"};function _n(o,e){const t=K("Content");return a(),l("div",fn,[c(o.$slots,"page-top"),m(t),c(o.$slots,"page-bottom")])}const mn=$(hn,[["render",_n]]),kn=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=P(),{hasSidebar:s}=U();return(n,i)=>(a(),l("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[m(Lt)],!0):r(t).layout==="page"?(a(),k(mn,{key:1},{"page-top":d(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(pn,{key:2},{"home-hero-before":d(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(D(r(t).layout),{key:3})):(a(),k(So,{key:4},{"doc-top":d(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":d(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":d(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":d(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":d(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),bn=$(kn,[["__scopeId","data-v-d3188071"]]),$n={class:"container"},gn=["innerHTML"],yn=["innerHTML"],Pn=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=U();return(n,i)=>r(e).footer&&r(t).footer!==!1?(a(),l("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[v("div",$n,[r(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,gn)):f("",!0),r(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,yn)):f("",!0)])],2)):f("",!0)}}),Vn=$(Pn,[["__scopeId","data-v-71ff86a9"]]);function Ln(){const{theme:o,frontmatter:e}=P(),t=Te([]),s=y(()=>t.value.length>0);return x(()=>{t.value=ke(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const Sn=o=>(H("data-v-87bf98cb"),o=o(),E(),o),In={class:"menu-text"},Tn=Sn(()=>v("span",{class:"vpi-chevron-right icon"},null,-1)),wn={class:"header"},Nn={class:"outline"},Mn=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=P(),s=w(!1),n=w(0),i=w(),u=w();function h(b){var V;(V=i.value)!=null&&V.contains(b.target)||(s.value=!1)}G(s,b=>{if(b){document.addEventListener("click",h);return}document.removeEventListener("click",h)}),le("Escape",()=>{s.value=!1}),x(()=>{s.value=!1});function p(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g(b){b.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),et(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,V)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:Ne({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),l("button",{key:0,onClick:p,class:N({open:s.value})},[v("span",In,T(r(Fe)(r(t))),1),Tn],2)):(a(),l("button",{key:1,onClick:L},T(r(t).returnToTopLabel||"Return to top"),1)),m(pe,{name:"flyout"},{default:d(()=>[s.value?(a(),l("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[v("div",wn,[v("a",{class:"top-link",href:"#",onClick:L},T(r(t).returnToTopLabel||"Return to top"),1)]),v("div",Nn,[m(Oe,{headers:b.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),An=$(Mn,[["__scopeId","data-v-87bf98cb"]]),Cn=o=>(H("data-v-67540fd2"),o=o(),E(),o),Bn={class:"container"},Hn=["aria-expanded"],En=Cn(()=>v("span",{class:"vpi-align-left menu-icon"},null,-1)),Dn={class:"menu-text"},Fn=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=P(),{hasSidebar:s}=U(),{headers:n}=Ln(),{y:i}=Me(),u=w(0);q(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{n.value=ke(t.value.outline??e.value.outline)});const h=y(()=>n.value.length===0),p=y(()=>h.value&&!s.value),g=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:h.value,fixed:p.value}));return(L,b)=>r(t).layout!=="home"&&(!p.value||r(i)>=u.value)?(a(),l("div",{key:0,class:N(g.value)},[v("div",Bn,[r(s)?(a(),l("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=V=>L.$emit("open-menu"))},[En,v("span",Dn,T(r(e).sidebarMenuLabel||"Menu"),1)],8,Hn)):f("",!0),m(An,{headers:r(n),navHeight:u.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),On=$(Fn,[["__scopeId","data-v-67540fd2"]]);function Gn(){const o=w(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=ee();return G(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const Un={},jn={class:"VPSwitch",type:"button",role:"switch"},zn={class:"check"},Rn={key:0,class:"icon"};function Wn(o,e){return a(),l("button",jn,[v("span",zn,[o.$slots.default?(a(),l("span",Rn,[c(o.$slots,"default",{},void 0,!0)])):f("",!0)])])}const qn=$(Un,[["render",Wn],["__scopeId","data-v-1f47877a"]]),Ue=o=>(H("data-v-a3498195"),o=o(),E(),o),Kn=Ue(()=>v("span",{class:"vpi-sun sun"},null,-1)),Jn=Ue(()=>v("span",{class:"vpi-moon moon"},null,-1)),Yn=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=P(),s=te("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,u)=>(a(),k(qn,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:d(()=>[Kn,Jn]),_:1},8,["title","aria-checked","onClick"]))}}),be=$(Yn,[["__scopeId","data-v-a3498195"]]),Xn={key:0,class:"VPNavBarAppearance"},Qn=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=P();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),l("div",Xn,[m(be)])):f("",!0)}}),Zn=$(Qn,[["__scopeId","data-v-fe4284af"]]),$e=w();let je=!1,re=0;function xn(o){const e=w(!1);if(oe){!je&&es(),re++;const t=G($e,s=>{var n,i,u;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});fe(()=>{t(),re--,re||ts()})}return tt(e)}function es(){document.addEventListener("focusin",ze),je=!0,$e.value=document.activeElement}function ts(){document.removeEventListener("focusin",ze)}function ze(){$e.value=document.activeElement}const os={class:"VPMenuLink"},ns=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,s)=>(a(),l("div",os,[m(F,{class:N({active:r(W)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:d(()=>[O(T(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=$(ns,[["__scopeId","data-v-18f7e3ed"]]),ss={class:"VPMenuGroup"},as={key:0,class:"title"},rs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),l("div",ss,[e.text?(a(),l("p",as,T(e.text),1)):f("",!0),(a(!0),l(M,null,B(e.items,s=>(a(),l(M,null,["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):f("",!0)],64))),256))]))}}),is=$(rs,[["__scopeId","data-v-f679b301"]]),ls={class:"VPMenu"},cs={key:0,class:"items"},us=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),l("div",ls,[e.items?(a(),l("div",cs,[(a(!0),l(M,null,B(e.items,s=>(a(),l(M,{key:JSON.stringify(s)},["link"in s?(a(),k(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),k(D(s.component),R({key:1,ref_for:!0},s.props),null,16)):(a(),k(is,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):f("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),ds=$(us,[["__scopeId","data-v-91375545"]]),vs=o=>(H("data-v-a4533092"),o=o(),E(),o),ps=["aria-expanded","aria-label"],hs={key:0,class:"text"},fs=["innerHTML"],_s=vs(()=>v("span",{class:"vpi-chevron-down text-icon"},null,-1)),ms={key:1,class:"vpi-more-horizontal icon"},ks={class:"menu"},bs=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=w(!1),t=w();xn({el:t,onBlur:s});function s(){e.value=!1}return(n,i)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=u=>e.value=!0),onMouseleave:i[2]||(i[2]=u=>e.value=!1)},[v("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=u=>e.value=!e.value)},[n.button||n.icon?(a(),l("span",hs,[n.icon?(a(),l("span",{key:0,class:N([n.icon,"option-icon"])},null,2)):f("",!0),n.button?(a(),l("span",{key:1,innerHTML:n.button},null,8,fs)):f("",!0),_s])):(a(),l("span",ms))],8,ps),v("div",ks,[m(ds,{items:n.items},{default:d(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ge=$(bs,[["__scopeId","data-v-a4533092"]]),$s=["href","aria-label","innerHTML"],gs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=y(()=>typeof e.icon=="object"?e.icon.svg:`<span class="vpi-social-${e.icon}" />`);return(s,n)=>(a(),l("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,$s))}}),ys=$(gs,[["__scopeId","data-v-e0d70bf0"]]),Ps={class:"VPSocialLinks"},Vs=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),l("div",Ps,[(a(!0),l(M,null,B(e.links,({link:s,icon:n,ariaLabel:i})=>(a(),k(ys,{key:s,icon:n,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=$(Vs,[["__scopeId","data-v-3449af14"]]),Ls={key:0,class:"group translations"},Ss={class:"trans-title"},Is={key:1,class:"group"},Ts={class:"item appearance"},ws={class:"label"},Ns={class:"appearance-action"},Ms={key:2,class:"group"},As={class:"item social-links"},Cs=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=P(),{localeLinks:s,currentLang:n}=Y({correspondingLink:!0}),i=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(u,h)=>i.value?(a(),k(ge,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:d(()=>[r(s).length&&r(n).label?(a(),l("div",Ls,[v("p",Ss,T(r(n).label),1),(a(!0),l(M,null,B(r(s),p=>(a(),k(ne,{key:p.link,item:p},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),l("div",Is,[v("div",Ts,[v("p",ws,T(r(t).darkModeSwitchLabel||"Appearance"),1),v("div",Ns,[m(be)])])])):f("",!0),r(t).socialLinks?(a(),l("div",Ms,[v("div",As,[m(ye,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),Bs=$(Cs,[["__scopeId","data-v-69fbf2ae"]]),Hs=o=>(H("data-v-9f03ec8e"),o=o(),E(),o),Es=["aria-expanded"],Ds=Hs(()=>v("span",{class:"container"},[v("span",{class:"top"}),v("span",{class:"middle"}),v("span",{class:"bottom"})],-1)),Fs=[Ds],Os=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),l("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]=s=>e.$emit("click"))},Fs,10,Es))}}),Gs=$(Os,[["__scopeId","data-v-9f03ec8e"]]),Us=["innerHTML"],js=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=P();return(t,s)=>(a(),k(F,{class:N({VPNavBarMenuLink:!0,active:r(W)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:d(()=>[v("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["class","href","noIcon","target","rel"]))}}),zs=$(js,[["__scopeId","data-v-7207a46d"]]),Rs=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=P(),s=i=>"component"in i?!1:"link"in i?W(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),n=y(()=>s(e.item));return(i,u)=>(a(),k(ge,{class:N({VPNavBarMenuGroup:!0,active:r(W)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Ws=o=>(H("data-v-7ee39415"),o=o(),E(),o),qs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ks=Ws(()=>v("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Js=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=P();return(t,s)=>r(e).nav?(a(),l("nav",qs,[Ks,(a(!0),l(M,null,B(r(e).nav,n=>(a(),l(M,{key:JSON.stringify(n)},["link"in n?(a(),k(zs,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(D(n.component),R({key:1,ref_for:!0},n.props),null,16)):(a(),k(Rs,{key:2,item:n},null,8,["item"]))],64))),128))])):f("",!0)}}),Ys=$(Js,[["__scopeId","data-v-7ee39415"]]);function Xs(o){const{localeIndex:e,theme:t}=P();function s(n){var A,C,S;const i=n.split("."),u=(A=t.value.search)==null?void 0:A.options,h=u&&typeof u=="object",p=h&&((S=(C=u.locales)==null?void 0:C[e.value])==null?void 0:S.translations)||null,g=h&&u.translations||null;let L=p,b=g,V=o;const I=i.pop();for(const j of i){let z=null;const J=V==null?void 0:V[j];J&&(z=V=J);const se=b==null?void 0:b[j];se&&(z=b=se);const ae=L==null?void 0:L[j];ae&&(z=L=ae),J||(V=z),se||(b=z),ae||(L=z)}return(L==null?void 0:L[I])??(b==null?void 0:b[I])??(V==null?void 0:V[I])??""}return s}const Qs=["aria-label"],Zs={class:"DocSearch-Button-Container"},xs=v("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ea={class:"DocSearch-Button-Placeholder"},ta=v("span",{class:"DocSearch-Button-Keys"},[v("kbd",{class:"DocSearch-Button-Key"}),v("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Le=_({__name:"VPNavBarSearchButton",setup(o){const t=Xs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[v("span",Zs,[xs,v("span",ea,T(r(t)("button.buttonText")),1)]),ta],8,Qs))}}),oa={class:"VPNavBarSearch"},na={id:"local-search"},sa={key:1,id:"docsearch"},aa=_({__name:"VPNavBarSearch",setup(o){const e=Se(()=>ve(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1721312569876/files/.vitepress/dist"+u}return u})("./VPLocalSearchBox.eYtt4ge9.js")),[])),t=()=>null,{theme:s}=P(),n=w(!1),i=w(!1);q(()=>{});function u(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function p(b){const V=b.target,I=V.tagName;return V.isContentEditable||I==="INPUT"||I==="SELECT"||I==="TEXTAREA"}const g=w(!1);le("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),g.value=!0)}),le("/",b=>{p(b)||(b.preventDefault(),g.value=!0)});const L="local";return(b,V)=>{var I;return a(),l("div",oa,[r(L)==="local"?(a(),l(M,{key:0},[g.value?(a(),k(r(e),{key:0,onClose:V[0]||(V[0]=A=>g.value=!1)})):f("",!0),v("div",na,[m(Le,{onClick:V[1]||(V[1]=A=>g.value=!0)})])],64)):r(L)==="algolia"?(a(),l(M,{key:1},[n.value?(a(),k(r(t),{key:0,algolia:((I=r(s).search)==null?void 0:I.options)??r(s).algolia,onVnodeBeforeMount:V[2]||(V[2]=A=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),l("div",sa,[m(Le,{onClick:u})]))],64)):f("",!0)])}}}),ra=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=P();return(t,s)=>r(e).socialLinks?(a(),k(ye,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),ia=$(ra,[["__scopeId","data-v-9131d9e0"]]),la=["href","rel","target"],ca={key:1},ua={key:2},da=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=P(),{hasSidebar:s}=U(),{currentLang:n}=Y(),i=y(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),u=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),h=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,g)=>(a(),l("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[v("a",{class:"title",href:i.value??r(me)(r(n).link),rel:u.value,target:h.value},[c(p.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(Q,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),l("span",ca,T(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),l("span",ua,T(r(e).title),1)):f("",!0),c(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,la)],2))}}),va=$(da,[["__scopeId","data-v-48d13375"]]),pa={class:"items"},ha={class:"title"},fa=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=P(),{localeLinks:t,currentLang:s}=Y({correspondingLink:!0});return(n,i)=>r(t).length&&r(s).label?(a(),k(ge,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:d(()=>[v("div",pa,[v("p",ha,T(r(s).label),1),(a(!0),l(M,null,B(r(t),u=>(a(),k(ne,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),_a=$(fa,[["__scopeId","data-v-6f673c27"]]),ma=o=>(H("data-v-daf9281d"),o=o(),E(),o),ka={class:"wrapper"},ba={class:"container"},$a={class:"title"},ga={class:"content"},ya={class:"content-body"},Pa=ma(()=>v("div",{class:"divider"},[v("div",{class:"divider-line"})],-1)),Va=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Me(),{hasSidebar:s}=U(),{frontmatter:n}=P(),i=w({});return _e(()=>{i.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,h)=>(a(),l("div",{class:N(["VPNavBar",i.value])},[v("div",ka,[v("div",ba,[v("div",$a,[m(va,null,{"nav-bar-title-before":d(()=>[c(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[c(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),v("div",ga,[v("div",ya,[c(u.$slots,"nav-bar-content-before",{},void 0,!0),m(aa,{class:"search"}),m(Ys,{class:"menu"}),m(_a,{class:"translations"}),m(Zn,{class:"appearance"}),m(ia,{class:"social-links"}),m(Bs,{class:"extra"}),c(u.$slots,"nav-bar-content-after",{},void 0,!0),m(Gs,{class:"hamburger",active:u.isScreenOpen,onClick:h[0]||(h[0]=p=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),Pa],2))}}),La=$(Va,[["__scopeId","data-v-daf9281d"]]),Sa={key:0,class:"VPNavScreenAppearance"},Ia={class:"text"},Ta=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=P();return(s,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),l("div",Sa,[v("p",Ia,T(r(t).darkModeSwitchLabel||"Appearance"),1),m(be)])):f("",!0)}}),wa=$(Ta,[["__scopeId","data-v-62fe2233"]]),Na=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,s)=>(a(),k(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ma=$(Na,[["__scopeId","data-v-6c9cb97f"]]),Aa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=te("close-screen");return(t,s)=>(a(),k(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:d(()=>[O(T(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Re=$(Aa,[["__scopeId","data-v-3cb35375"]]),Ca={class:"VPNavScreenMenuGroupSection"},Ba={key:0,class:"title"},Ha=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),l("div",Ca,[e.text?(a(),l("p",Ba,T(e.text),1)):f("",!0),(a(!0),l(M,null,B(e.items,s=>(a(),k(Re,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ea=$(Ha,[["__scopeId","data-v-0ad6beaa"]]),Da=o=>(H("data-v-14f5db95"),o=o(),E(),o),Fa=["aria-controls","aria-expanded"],Oa=["innerHTML"],Ga=Da(()=>v("span",{class:"vpi-plus button-icon"},null,-1)),Ua=["id"],ja={key:0,class:"item"},za={key:1,class:"item"},Ra={key:2,class:"group"},Wa=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=w(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,u)=>(a(),l("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[v("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[v("span",{class:"button-text",innerHTML:i.text},null,8,Oa),Ga],8,Fa),v("div",{id:s.value,class:"items"},[(a(!0),l(M,null,B(i.items,h=>(a(),l(M,{key:JSON.stringify(h)},["link"in h?(a(),l("div",ja,[m(Re,{item:h},null,8,["item"])])):"component"in h?(a(),l("div",za,[(a(),k(D(h.component),R({ref_for:!0},h.props,{"screen-menu":""}),null,16))])):(a(),l("div",Ra,[m(Ea,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,Ua)],2))}}),qa=$(Wa,[["__scopeId","data-v-14f5db95"]]),Ka={key:0,class:"VPNavScreenMenu"},Ja=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=P();return(t,s)=>r(e).nav?(a(),l("nav",Ka,[(a(!0),l(M,null,B(r(e).nav,n=>(a(),l(M,{key:JSON.stringify(n)},["link"in n?(a(),k(Ma,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(D(n.component),R({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),k(qa,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Ya=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=P();return(t,s)=>r(e).socialLinks?(a(),k(ye,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),We=o=>(H("data-v-d7a94d90"),o=o(),E(),o),Xa=We(()=>v("span",{class:"vpi-languages icon lang"},null,-1)),Qa=We(()=>v("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Za={class:"list"},xa=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),s=w(!1);function n(){s.value=!s.value}return(i,u)=>r(e).length&&r(t).label?(a(),l("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[v("button",{class:"title",onClick:n},[Xa,O(" "+T(r(t).label)+" ",1),Qa]),v("ul",Za,[(a(!0),l(M,null,B(r(e),h=>(a(),l("li",{key:h.link,class:"item"},[m(F,{class:"link",href:h.link},{default:d(()=>[O(T(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),er=$(xa,[["__scopeId","data-v-d7a94d90"]]),tr={class:"container"},or=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=w(null),t=Ae(oe?document.body:null);return(s,n)=>(a(),k(pe,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:d(()=>[s.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[v("div",tr,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),m(Ja,{class:"menu"}),m(er,{class:"translations"}),m(wa,{class:"appearance"}),m(Ya,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),nr=$(or,[["__scopeId","data-v-5b7b3bfb"]]),sr={key:0,class:"VPNav"},ar=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=Gn(),{frontmatter:n}=P(),i=y(()=>n.value.navbar!==!1);return Ce("close-screen",t),Z(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(u,h)=>i.value?(a(),l("header",sr,[m(La,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":d(()=>[c(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[c(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[c(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[c(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),m(nr,{open:r(e)},{"nav-screen-content-before":d(()=>[c(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[c(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),rr=$(ar,[["__scopeId","data-v-13513e83"]]),qe=o=>(H("data-v-e05ac508"),o=o(),E(),o),ir=["role","tabindex"],lr=qe(()=>v("div",{class:"indicator"},null,-1)),cr=qe(()=>v("span",{class:"vpi-chevron-right caret-icon"},null,-1)),ur=[cr],dr={key:1,class:"items"},vr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:i,hasActiveLink:u,hasChildren:h,toggle:p}=wt(y(()=>e.item)),g=y(()=>h.value?"section":"div"),L=y(()=>n.value?"a":"div"),b=y(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=y(()=>n.value?void 0:"button"),I=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":u.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&p()}function C(){e.item.link&&p()}return(S,j)=>{const z=K("VPSidebarItem",!0);return a(),k(D(g.value),{class:N(["VPSidebarItem",I.value])},{default:d(()=>[S.item.text?(a(),l("div",R({key:0,class:"item",role:V.value},nt(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[lr,S.item.link?(a(),k(F,{key:0,tag:L.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:d(()=>[(a(),k(D(b.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(D(b.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:ot(C,["enter"]),tabindex:"0"},ur,32)):f("",!0)],16,ir)):f("",!0),S.item.items&&S.item.items.length?(a(),l("div",dr,[S.depth<5?(a(!0),l(M,{key:0},B(S.item.items,J=>(a(),k(z,{key:J.text,item:J,depth:S.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),pr=$(vr,[["__scopeId","data-v-e05ac508"]]),hr=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=w(!0);let t=null;return q(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),st(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),l(M,null,B(s.items,i=>(a(),l("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[m(pr,{item:i,depth:0},null,8,["item"])],2))),128))}}),fr=$(hr,[["__scopeId","data-v-9c4ee204"]]),Ke=o=>(H("data-v-801d4e4b"),o=o(),E(),o),_r=Ke(()=>v("div",{class:"curtain"},null,-1)),mr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},kr=Ke(()=>v("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),br=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=U(),s=o,n=w(null),i=Ae(oe?document.body:null);G([s,n],()=>{var h;s.open?(i.value=!0,(h=n.value)==null||h.focus()):i.value=!1},{immediate:!0,flush:"post"});const u=w(0);return G(e,()=>{u.value+=1},{deep:!0}),(h,p)=>r(t)?(a(),l("aside",{key:0,class:N(["VPSidebar",{open:h.open}]),ref_key:"navEl",ref:n,onClick:p[0]||(p[0]=at(()=>{},["stop"]))},[_r,v("nav",mr,[kr,c(h.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k(fr,{items:r(e),key:u.value},null,8,["items"])),c(h.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),$r=$(br,[["__scopeId","data-v-801d4e4b"]]),gr=_({__name:"VPSkipLink",setup(o){const e=ee(),t=w();G(()=>e.path,()=>t.value.focus());function s({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const u=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",u)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",u),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(a(),l(M,null,[v("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),v("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),yr=$(gr,[["__scopeId","data-v-0685e330"]]),Pr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=U(),n=ee();G(()=>n.path,s),Tt(e,s);const{frontmatter:i}=P(),u=rt(),h=y(()=>!!u["home-hero-image"]);return Ce("hero-image-slot-exists",h),(p,g)=>{const L=K("Content");return r(i).layout!==!1?(a(),l("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(p.$slots,"layout-top",{},void 0,!0),m(yr),m(pt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),m(rr,null,{"nav-bar-title-before":d(()=>[c(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":d(()=>[c(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":d(()=>[c(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":d(()=>[c(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":d(()=>[c(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":d(()=>[c(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),m(On,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),m($r,{open:r(e)},{"sidebar-nav-before":d(()=>[c(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":d(()=>[c(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),m(bn,null,{"page-top":d(()=>[c(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":d(()=>[c(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":d(()=>[c(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":d(()=>[c(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":d(()=>[c(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":d(()=>[c(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":d(()=>[c(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":d(()=>[c(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":d(()=>[c(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":d(()=>[c(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":d(()=>[c(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":d(()=>[c(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":d(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":d(()=>[c(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":d(()=>[c(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":d(()=>[c(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":d(()=>[c(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":d(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":d(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":d(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":d(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":d(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":d(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),m(Vn),c(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(L,{key:1}))}}}),Vr=$(Pr,[["__scopeId","data-v-03d7f5d7"]]),Lr={Layout:Vr,enhanceApp:({app:o})=>{o.component("Badge",ut)}},Sr=_({__name:"ImageTable",props:{images:{}},setup(o){return(e,t)=>(a(),l("table",null,[v("tbody",null,[m(r(ct),null,{default:d(()=>[(a(!0),l(M,null,B(e.images,(s,n)=>(a(),l("tr",{key:n},[(a(!0),l(M,null,B(s,i=>(a(),l("td",{key:i},[m(r(He),{src:r(Ee)(i)},null,8,["src"])]))),128))]))),128))]),_:1})])]))}}),wr={extends:Lr,enhanceApp({app:o}){o.component("ImageTable",Sr)}};export{Tr as G,wr as R,Xs as c,P as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as L,J as E,l as R,B as S,o as k,c as y,m as n,t as T,n as B,f as O,G as M,b as r,L as U}from"./chunks/framework.CSd4LtKr.js";var f=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},A={exports:{}};(function(_,c){(function(u,l){l()})(f,function(){function u(e,t){return typeof t>"u"?t={autoBom:!1}:typeof t!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\uFEFF",e],{type:e.type}):e}function l(e,t,i){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="blob",o.onload=function(){m(o.response,t,i)},o.onerror=function(){console.error("could not download file")},o.send()}function h(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function d(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof f=="object"&&f.global===f?f:void 0,v=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),m=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!v?function(e,t,i){var o=a.URL||a.webkitURL,s=document.createElement("a");t=t||e.name||"download",s.download=t,s.rel="noopener",typeof e=="string"?(s.href=e,s.origin===location.origin?d(s):h(s.href)?l(e,t,i):d(s,s.target="_blank")):(s.href=o.createObjectURL(e),setTimeout(function(){o.revokeObjectURL(s.href)},4e4),setTimeout(function(){d(s)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,i){if(t=t||e.name||"download",typeof e!="string")navigator.msSaveOrOpenBlob(u(e,i),t);else if(h(e))l(e,t,i);else{var o=document.createElement("a");o.href=e,o.target="_blank",setTimeout(function(){d(o)})}}:function(e,t,i,o){if(o=o||open("","_blank"),o&&(o.document.title=o.document.body.innerText="downloading..."),typeof e=="string")return l(e,t,i);var s=e.type==="application/octet-stream",j=/constructor/i.test(a.HTMLElement)||a.safari,b=/CriOS\/[\d]+/.test(navigator.userAgent);if((b||s&&j||v)&&typeof FileReader<"u"){var g=new FileReader;g.onloadend=function(){var p=g.result;p=b?p:p.replace(/^data:[^;]*;/,"data:attachment/file;"),o?o.location.href=p:location=p,o=null},g.readAsDataURL(e)}else{var x=a.URL||a.webkitURL,w=x.createObjectURL(e);o?o.location=w:location.href=w,o=null,setTimeout(function(){x.revokeObjectURL(w)},4e4)}});a.saveAs=m.saveAs=m,_.exports=m})})(A);var D=A.exports;const C={"inline-flex":"","items-center":"","gap-10px":""},F={key:0,"animate-spin":"","size-16px":"",viewBox:"0 0 16 16",fill:"none"},G=n("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor","stroke-opacity":"0.25","stroke-width":"2","vector-effect":"non-scaling-stroke"},null,-1),H=n("path",{d:"M15 8a7.002 7.002 0 00-7-7",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","vector-effect":"non-scaling-stroke"},null,-1),N=[G,H],$=L({__name:"ApkDownloadButton",setup(_){const c=E(""),u=R(()=>(c.value.split("/").at(-1)||"").replace(".wasm",".apk")),l=E(!1),h=async()=>{if(!c.value||l.value)return;l.value=!0;const d=await fetch(c.value).then(a=>a.arrayBuffer()).then(a=>new File([a],u.value,{type:"application/vnd.android.package-archive"})).finally(()=>{l.value=!1});D.saveAs(d,u.value)};return S(async()=>{c.value=localStorage.getItem("apkUrl")||"";const a=await fetch("https://registry.npmmirror.com/@gkd-kit/app/latest/files"),v=await a.json();c.value=new URL(v.downloadUrl,a.url).href,localStorage.setItem("apkUrl",c.value)}),(d,a)=>(k(),y("div",C,[n("a",{class:B({"cursor-progress":l.value,"opacity-50":l.value,"cursor-pointer":!l.value}),onClick:h},T(u.value),3),l.value?(k(),y("svg",F,N)):O("",!0)]))}}),P=n("h1",{id:"title",tabindex:"-1"},[r("开始使用 "),n("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "开始使用 {#title}"'},"")],-1),I=n("h2",{id:"install",tabindex:"-1"},[r("下载安装 "),n("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "下载安装 {#install}"'},"")],-1),K=n("li",null,[n("p",null,[r("Github "),n("a",{href:"https://github.com/gkd-kit/gkd/releases/latest",target:"_blank",rel:"noreferrer"},"releases")])],-1),V=n("p",null,"下载完毕后, 在您的 Android 手机上安装并打开",-1),q=n("h2",{id:"usage",tabindex:"-1"},[r("授权使用 "),n("a",{class:"header-anchor",href:"#usage","aria-label":'Permalink to "授权使用 {#usage}"'},"")],-1),X=n("p",null,"打开后进入 GKD 的首页, 要想 GKD 正常工作需要授权无障碍权限",-1),z=n("p",null,[r("点击无障碍权限右侧的 "),n("code",null,"授权"),r(" 按钮即可前往设置的无障碍界面授权")],-1),J=n("p",null,"以 Xiaomi HyperOS 为例, 下面为完整的授权流程截图",-1),W=n("p",null,[r("如果您的手机的无障碍列表界面无法授权 GKD 或者显示 "),n("code",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1),Q=n("p",null,"这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限",-1),Y=n("p",null,[r("您需要解除这个限制, 解除限制的方法在 "),n("a",{href:"/guide/faq"},"疑难解答")],-1),Z=n("p",null,"限制解除后, 重新按照上面的授权流程即可开启无障碍权限",-1),ne=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1721312533000}'),ee={name:"guide/index.md"},oe=Object.assign(ee,{setup(_){return(c,u)=>{const l=M("ImageTable");return k(),y("div",null,[P,I,n("ul",null,[n("li",null,[n("p",null,[r("镜像加速 "),U($)])]),K]),V,q,X,z,J,U(l,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),W,Q,Y,Z])}}});export{ne as __pageData,oe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as L,J as E,l as R,B as S,o as k,c as y,m as n,t as T,n as B,f as O,G as M,b as r,L as U}from"./chunks/framework.CSd4LtKr.js";var f=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},A={exports:{}};(function(_,c){(function(u,l){l()})(f,function(){function u(e,t){return typeof t>"u"?t={autoBom:!1}:typeof t!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\uFEFF",e],{type:e.type}):e}function l(e,t,i){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="blob",o.onload=function(){m(o.response,t,i)},o.onerror=function(){console.error("could not download file")},o.send()}function h(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function d(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var a=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof f=="object"&&f.global===f?f:void 0,v=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),m=a.saveAs||(typeof window!="object"||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!v?function(e,t,i){var o=a.URL||a.webkitURL,s=document.createElement("a");t=t||e.name||"download",s.download=t,s.rel="noopener",typeof e=="string"?(s.href=e,s.origin===location.origin?d(s):h(s.href)?l(e,t,i):d(s,s.target="_blank")):(s.href=o.createObjectURL(e),setTimeout(function(){o.revokeObjectURL(s.href)},4e4),setTimeout(function(){d(s)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,i){if(t=t||e.name||"download",typeof e!="string")navigator.msSaveOrOpenBlob(u(e,i),t);else if(h(e))l(e,t,i);else{var o=document.createElement("a");o.href=e,o.target="_blank",setTimeout(function(){d(o)})}}:function(e,t,i,o){if(o=o||open("","_blank"),o&&(o.document.title=o.document.body.innerText="downloading..."),typeof e=="string")return l(e,t,i);var s=e.type==="application/octet-stream",j=/constructor/i.test(a.HTMLElement)||a.safari,b=/CriOS\/[\d]+/.test(navigator.userAgent);if((b||s&&j||v)&&typeof FileReader<"u"){var g=new FileReader;g.onloadend=function(){var p=g.result;p=b?p:p.replace(/^data:[^;]*;/,"data:attachment/file;"),o?o.location.href=p:location=p,o=null},g.readAsDataURL(e)}else{var x=a.URL||a.webkitURL,w=x.createObjectURL(e);o?o.location=w:location.href=w,o=null,setTimeout(function(){x.revokeObjectURL(w)},4e4)}});a.saveAs=m.saveAs=m,_.exports=m})})(A);var D=A.exports;const C={"inline-flex":"","items-center":"","gap-10px":""},F={key:0,"animate-spin":"","size-16px":"",viewBox:"0 0 16 16",fill:"none"},G=n("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor","stroke-opacity":"0.25","stroke-width":"2","vector-effect":"non-scaling-stroke"},null,-1),H=n("path",{d:"M15 8a7.002 7.002 0 00-7-7",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","vector-effect":"non-scaling-stroke"},null,-1),N=[G,H],$=L({__name:"ApkDownloadButton",setup(_){const c=E(""),u=R(()=>(c.value.split("/").at(-1)||"").replace(".wasm",".apk")),l=E(!1),h=async()=>{if(!c.value||l.value)return;l.value=!0;const d=await fetch(c.value).then(a=>a.arrayBuffer()).then(a=>new File([a],u.value,{type:"application/vnd.android.package-archive"})).finally(()=>{l.value=!1});D.saveAs(d,u.value)};return S(async()=>{c.value=localStorage.getItem("apkUrl")||"";const a=await fetch("https://registry.npmmirror.com/@gkd-kit/app/latest/files"),v=await a.json();c.value=new URL(v.downloadUrl,a.url).href,localStorage.setItem("apkUrl",c.value)}),(d,a)=>(k(),y("div",C,[n("a",{class:B({"cursor-progress":l.value,"opacity-50":l.value,"cursor-pointer":!l.value}),onClick:h},T(u.value),3),l.value?(k(),y("svg",F,N)):O("",!0)]))}}),P=n("h1",{id:"title",tabindex:"-1"},[r("开始使用 "),n("a",{class:"header-anchor",href:"#title","aria-label":'Permalink to "开始使用 {#title}"'},"")],-1),I=n("h2",{id:"install",tabindex:"-1"},[r("下载安装 "),n("a",{class:"header-anchor",href:"#install","aria-label":'Permalink to "下载安装 {#install}"'},"")],-1),K=n("li",null,[n("p",null,[r("Github "),n("a",{href:"https://github.com/gkd-kit/gkd/releases/latest",target:"_blank",rel:"noreferrer"},"releases")])],-1),V=n("p",null,"下载完毕后, 在您的 Android 手机上安装并打开",-1),q=n("h2",{id:"usage",tabindex:"-1"},[r("授权使用 "),n("a",{class:"header-anchor",href:"#usage","aria-label":'Permalink to "授权使用 {#usage}"'},"")],-1),X=n("p",null,"打开后进入 GKD 的首页, 要想 GKD 正常工作需要授权无障碍权限",-1),z=n("p",null,[r("点击无障碍权限右侧的 "),n("code",null,"授权"),r(" 按钮即可前往设置的无障碍界面授权")],-1),J=n("p",null,"以 Xiaomi HyperOS 为例, 下面为完整的授权流程截图",-1),W=n("p",null,[r("如果您的手机的无障碍列表界面无法授权 GKD 或者显示 "),n("code",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1),Q=n("p",null,"这是 Android13 的限制, 对于不在应用商店等可信任来源安装的应用不能直接开启无障碍权限",-1),Y=n("p",null,[r("您需要解除这个限制, 解除限制的方法在 "),n("a",{href:"/guide/faq"},"疑难解答")],-1),Z=n("p",null,"限制解除后, 重新按照上面的授权流程即可开启无障碍权限",-1),ne=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1721312533000}'),ee={name:"guide/index.md"},oe=Object.assign(ee,{setup(_){return(c,u)=>{const l=M("ImageTable");return k(),y("div",null,[P,I,n("ul",null,[n("li",null,[n("p",null,[r("镜像加速 "),U($)])]),K]),V,q,X,z,J,U(l,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),W,Q,Y,Z])}}});export{ne as __pageData,oe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as a,G as t,c as s,L as d,a5 as c,o as i}from"./chunks/framework.CSd4LtKr.js";const u=JSON.parse('{"title":"GKD 是什么?","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is-gkd.md","filePath":"guide/what-is-gkd.md","lastUpdated":1721312533000}'),o={name:"guide/what-is-gkd.md"},r=c("",6);function l(n,h,p,_,b,g){const e=t("ImageTable");return i(),s("div",null,[r,d(e,{images:[["https://e.gkd.li/79b8a829-4106-415f-9659-2920f7b5ccb5","https://e.gkd.li/6755a005-33c2-4db9-acda-bac1e7a3632d","https://e.gkd.li/91ea9329-e943-4ea8-bb6e-987c22ac7b4d","https://e.gkd.li/1d672345-cf3e-4b2c-a606-53a53642abda"],["https://e.gkd.li/b600fa5d-284d-4dc8-9f8b-095826a73d95","https://e.gkd.li/aad60a98-ffa2-4c23-a934-92e65f6018ec","https://e.gkd.li/544c6aad-e2ee-42d6-9a1a-967d9d426bc9","https://e.gkd.li/dd262506-b1d3-4c25-b52c-765ad6de6a1e"]]})])}const k=a(o,[["render",l]]);export{u as __pageData,k as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e,c as a,o as t,a5 as r}from"./chunks/framework.CSd4LtKr.js";const u=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"selector/example.md","filePath":"selector/example.md","lastUpdated":1721312533000}'),o={name:"selector/example.md"},l=r("",7),i=[l];function c(d,n,s,_,h,p){return t(),a("div",null,i)}const f=e(o,[["render",c]]);export{u as __pageData,f as default};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{a as x,J as u,a6 as y,l as k,o as r,c as p,a7 as b,a8 as _,m as t,t as m,n as v,p as a,L as e,a5 as i}from"./chunks/framework.CSd4LtKr.js";import{G as d}from"./chunks/theme.u-UTZ1M2.js";const f=x({__name:"IdentifierField",setup(h){const l=u(""),s=/^[_a-zA-Z][a-zA-Z0-9_]*$/,n=y(l,300),o=k(()=>n.value!=="null"&&n.value!=="true"&&n.value!=="false"&&s.test(n.value));return(H,c)=>(r(),p("div",null,[b(t("input",{placeholder:"请输入标识符测试是否合法",type:"text","onUpdate:modelValue":c[0]||(c[0]=g=>l.value=g),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),[[_,l.value]]),t("div",{"mt-4px":"",class:v({"color-red":!o.value,"opacity-0":!a(n)||!l.value})},m(o.value?"合法标识符✅":"非法标识符❌"),3)]))}}),E=i('<h1 id="title" tabindex="-1">选择器 <a class="header-anchor" href="#title" aria-label="Permalink to "选择器 {#title}""></a></h1><p>一个类似 CSS 选择器的选择器, 能联系节点上下文信息, 更容易也更精确找到目标节点</p><h2 id="why" tabindex="-1">为什么需要选择器 <a class="header-anchor" href="#why" aria-label="Permalink to "为什么需要选择器 {#why}""></a></h2><p>我们的目的是查询获取屏幕上的某个节点, 最简单的情况下, 目标节点已经有唯一的 id/text 标识</p><p>这时只需要配置 id/text 就能简单执行点击, 但实际情况很多节点都缺失了这些信息, 无法简单查询获取</p><p>节点还存在很多额外信息没有被利用到, 节点所有属性可以在 <a href="https://i.gkd.li/i/14045424" target="_blank" rel="noreferrer">快照-14045424</a> 的属性面板看到</p><p>另一种常见的情况是节点没有有效属性, 这时我们需要根据周围的节点去定位</p><p>选择器就是为了解决这些问题而开发的, 下面是对选择器语法的详细介绍</p><div class="tip custom-block github-alert"><p class="custom-block-title">提示</p><p>本文是从 <strong>抽象语法树(AST)</strong> 的角度去完备地介绍选择器结构<br> 如果你是初学者, 建议你直接看 <a href="./example">选择器-示例</a></p></div><h2 id="syntax" tabindex="-1">语法 <a class="header-anchor" href="#syntax" aria-label="Permalink to "语法 {#syntax}""></a></h2><p>与 CSS 类似, 一个选择器由 属性选择器 和 关系选择器 交叉组成, 并且开头末尾必须是 属性选择器</p><p>示例 <code>div > img</code> 的结构是 <code>属性选择器 关系选择器 属性选择器</code>, 它表示选择父节点是 <code>div</code> 的 <code>img</code> 节点, 这与 <a href="https://developer.mozilla.org/zh-CN/docs/Web/CSS/Child_combinator" target="_blank" rel="noreferrer">相同 CSS 语法</a> 语义一致</p><p>另外 属性选择器 和 关系选择器 之间必须<strong>强制</strong>用 空白字符(空格/换行/回车/制表) 隔开</p><p>即 <code>div>img</code> 非法, 必须写成 <code>div > img</code></p><p>下面分别介绍 <a href="#attr">属性选择器</a> 和 <a href="#connect">关系选择器</a></p><h2 id="attr" tabindex="-1">属性选择 <a class="header-anchor" href="#attr" aria-label="Permalink to "属性选择 {#attr}""></a></h2><p>它和 CSS 语法的 属性选择器很相似, 但更强大, 如下是一个示例</p><p><code>@TextView[a=1][b^='2'][c*='a'||d.length>7&&e=false][!(f=true)][g.plus(1)>0]</code></p><p><code>@</code> 表示选择此节点, 一条规则最后属性选择器 <code>@</code> 生效, 如果没有 <code>@</code>, 取最后一个属性选择器</p><p><code>TextView</code> 代表节点的 name 属性, 而且与 CSS 相似, <code>*</code> 表示匹配任意属性</p><p>由于该选择器主要用于 Android 平台, 节点的 name 都是 java 类如 android.text.TextView 这种形式</p><p>为了方便书写规则, 上述 <code>TextView</code> 等价 <code>[name='TextView'||name$='.TextView']</code></p><p><code>[]</code> 内部是一个 逻辑表达式/布尔表达式/取反表达式</p><ul><li>逻辑表达式 -> <code>name='TextView'||name$='.TextView'</code></li><li>布尔表达式 -> <code>name='TextView'</code></li><li>取反表达式 -> <code>!(name$='TextView')</code>, <code>!(name='TextView'||name$='.TextView')</code></li></ul><p>注意 取反表达式 后面必须是 <code>(...)</code>, <code>!!(...)</code> 是非法的</p><p>逻辑表达式 有两个操作符 <code>||</code> 和 <code>&&</code>. <code>&&</code> 优先级更高</p><p>即 <code>[a>1||b>1&&c>1||d>1]</code> 等价于 <code>[a>1||(b>1&&c>1)||d>1]</code></p><p>并列的 <code>[]</code> 视为使用 <code>&&</code> 的逻辑表达式, 即 <code>[a=1][b=1]</code> 等价于 <code>[a=1&&b=1]</code></p><p>布尔表达式 由 <code>左值 操作符 右值</code> 构成, 左值/右值 是一个 值表达式</p><p>下面分别介绍 <a href="#value-exp">值表达式</a> 和 <a href="#attr-operator">操作符</a></p><h2 id="value-exp" tabindex="-1">值表达式 <a class="header-anchor" href="#value-exp" aria-label="Permalink to "值表达式 {#value-exp}""></a></h2><p>值表达式分两类: 变量 和 字面量, 下图是关系表格</p>',32),C=t("table",null,[t("thead",null,[t("tr",null,[t("th",{colspan:"2"},[t("div",{"text-center":""},"值表达式")]),t("th",null,"示例")])]),t("tbody",null,[t("tr",null,[t("td",{rowspan:"3"},"变量"),t("td",null,"标识符"),t("td",null,[t("code",null," a ")])]),t("tr",null,[t("td",null,"成员表达式"),t("td",null,[t("code",null,"a.b")])]),t("tr",null,[t("td",null,"调用表达式"),t("td",null,[t("code",null,"a(b,c)")])]),t("tr",null,[t("td",{rowspan:"4"},"字面量"),t("td",null,"null"),t("td",null,[t("code",null,"null")])]),t("tr",null,[t("td",null,"boolean"),t("td",null,[t("code",null,"false")])]),t("tr",null,[t("td",null,"int"),t("td",null,[t("code",null,"114514")])]),t("tr",null,[t("td",null,"string"),t("td",null,[t("code",null,"'ikun'")])])])],-1),q=i('<p>每个值表达式都有其类型, 可细分为两类</p><p>基础类型: <code>null</code> <code>boolean</code> <code>int</code> <code>string</code></p><p>对象类型: <code>object</code></p><p>对象类型可细分为 <code>context</code> 和 <code>node</code> 两种类型</p><p>比如选择器 <code>[parent=null]</code> 代表选择一个父节点是 null 的节点, 即根节点</p><p>上面的 <code>parent</code> 属于 值表达式/变量/标识符, 类型是 <code>node</code></p><p><code>context</code> 类型指代当前节点的上下文, 当想使用不属于 <code>node</code> 上的属性方法时就需要 <code>context</code></p><p>你可以在 <a href="./node">选择器-属性方法</a> 查看所有类型和对应属性方法</p><h3 id="var" tabindex="-1">变量 <a class="header-anchor" href="#var" aria-label="Permalink to "变量 {#var}""></a></h3><p>首先需要了解 <strong>标识符</strong>: 正则匹配 <code>^[_a-zA-Z][a-zA-Z0-9_]*$</code> 并且不是 <code>null</code>/<code>true</code>/<code>false</code> 的字符串</p><p>示例合法变量名: <code>a</code> <code>ikun</code> <code>manbaout</code>, 下面可输入字符测试否是合法</p>',11),F={class:"vp-raw"},T=i('<hr><p>接下来了解 <strong>成员表达式</strong> <code>a.b</code>, 它被 <code>.</code> 分为两个部分, 前部分是另一个变量, 后部分是一个标识符作为属性</p><p>同理 <code>a.b.c</code> 也是一个 成员表达式, 其中 <code>a.b</code> 是它的变量部分, <code>c</code> 是一个合法的标识符作为属性</p><p>根据上面标识符的规则, <code>a.1</code>, <code>a.null</code>, <code>a.true</code> 都是非法成员表达式</p><hr><p>最后了解 <strong>调用表达式</strong> <code>a(b,c)</code>, 它由两个部分构成, <code>(</code> 的左侧 <code>a</code> 是一个变量作为 调用者</p><p><code>(c,d)</code> 作为调用参数(值类型), 调用参数数量可以是 0 或任意个, 即 <code>a()</code> 也是合法的</p><p>合法的其它例子: <code>a.b(c,d).e(f).g(1,2,true)</code></p><p>需要注意调用者不能是 调用表达式, 即 <code>a()()</code> 非法</p><h3 id="literal" tabindex="-1">字面量 <a class="header-anchor" href="#literal" aria-label="Permalink to "字面量 {#literal}""></a></h3><p>根据上面的表格, 字面量有 4 种: <code>null</code>, <code>boolean</code>, <code>int</code>, <code>string</code></p><ul><li>null</li><li>boolean 使用 <code>true</code>/<code>false</code></li><li>int 匹配 <code>^-?[0-9]$</code>, 即10进制自然数, 示例 <code>-1</code>,<code>0</code>,<code>1</code>, 不支持 <code>+1</code> 这种写法</li><li>string 使用 ' ` " 之一成对包裹, 内部字符转义使用 <code>\\</code><br> 所有的转义字符示例 <code>\\\\</code>, <code>\\'</code>, <code>\\"</code>, <code>\\`</code>, <code>\\n</code>, <code>\\r</code>, <code>\\t</code>, <code>\\b</code>, <code>\\xfF</code>, <code>\\uffFF</code><br> 不支持多行字符, 处于 <code>[0, 0x1F]</code> 的控制字符必须使用转义字符表示</li></ul><p>此外使用 string 时需要了解 <a href="#nest-escape">嵌套转义字符</a> 以避免出现错误</p><h2 id="attr-operator" tabindex="-1">操作符 <a class="header-anchor" href="#attr-operator" aria-label="Permalink to "操作符 {#attr-operator}""></a></h2><p>操作符 用于连接两个 值表达式</p><table tabindex="0"><thead><tr><th style="text-align:center;">操作符</th><th style="text-align:center;">名称</th><th style="text-align:center;">说明</th></tr></thead><tbody><tr><td style="text-align:center;">=</td><td style="text-align:center;">equal</td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;">!=</td><td style="text-align:center;">notEqual</td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;">></td><td style="text-align:center;">more</td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;">>=</td><td style="text-align:center;">moreEqual</td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;"><</td><td style="text-align:center;">less</td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;"><=</td><td style="text-align:center;">lessEqual</td><td style="text-align:center;"></td></tr><tr><td style="text-align:center;">^=</td><td style="text-align:center;">startsWith</td><td style="text-align:center;">以...开头</td></tr><tr><td style="text-align:center;">!^=</td><td style="text-align:center;">notStartsWith</td><td style="text-align:center;">不以...开头</td></tr><tr><td style="text-align:center;">*=</td><td style="text-align:center;">contains</td><td style="text-align:center;">包含...</td></tr><tr><td style="text-align:center;">!^=</td><td style="text-align:center;">notContains</td><td style="text-align:center;">不包含...</td></tr><tr><td style="text-align:center;">$=</td><td style="text-align:center;">endsWith</td><td style="text-align:center;">以...结尾</td></tr><tr><td style="text-align:center;">!$=</td><td style="text-align:center;">notEndsWith</td><td style="text-align:center;">不以...结尾</td></tr><tr><td style="text-align:center;">~=</td><td style="text-align:center;">matches</td><td style="text-align:center;">正则匹配...</td></tr><tr><td style="text-align:center;">!~=</td><td style="text-align:center;">notMatches</td><td style="text-align:center;">正则不匹配...</td></tr></tbody></table><p>附加说明: <code>matches</code>/<code>notMatches</code> 要求 值 必须是合法的 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html" target="_blank" rel="noreferrer">Java/Kotlin 正则表达式</a>, 否则提示语法错误</p><p>并且 <code>matches</code>/<code>notMatches</code> 右侧的值只能是 字面量/字符串</p><p>操作符只能使用在对应的类型的值, 比如 <code>a>''</code> 类型不匹配, 将提示 <code>非法类型</code></p><p>下面表格中 <code>-</code> 表示类型不匹配</p><table tabindex="0"><thead><tr><th style="text-align:center;"></th><th style="text-align:center;">null</th><th style="text-align:center;">boolean</th><th style="text-align:center;">int</th><th style="text-align:center;">string</th></tr></thead><tbody><tr><td style="text-align:center;">=</td><td style="text-align:center;">✔</td><td style="text-align:center;">✔</td><td style="text-align:center;">✔</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">!=</td><td style="text-align:center;">✔</td><td style="text-align:center;">✔</td><td style="text-align:center;">✔</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">></td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td><td style="text-align:center;">-</td></tr><tr><td style="text-align:center;">>=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td><td style="text-align:center;">-</td></tr><tr><td style="text-align:center;"><</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td><td style="text-align:center;">-</td></tr><tr><td style="text-align:center;"><=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td><td style="text-align:center;">-</td></tr><tr><td style="text-align:center;">^=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">!^=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">*=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">!*=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">$=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">!$=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">~=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td></tr><tr><td style="text-align:center;">!~=</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">-</td><td style="text-align:center;">✔</td></tr></tbody></table><p>除 <code>=</code>/<code>!=</code> 以外的操作符, 当节点属性是 null 时表达式为 <code>false</code></p><ul><li>a > 233</li><li>a >= 233</li><li>a < 233</li><li>a <= 233</li><li>a ^= 'xxx'</li><li>a !^= 'xxx'</li><li>a *= 'xxx'</li><li>a !* 'xxx'</li><li>a $= 'xxx'</li><li>a !$= 'xxx'</li><li>a ~= 'xxx'</li><li>a !~= 'xxx'</li></ul><p>即当 a 是 <code>null</code> 时以上表达式为 <code>false</code></p><p>你可能会对 <code>a !$= 'xxx'</code> 在 a 是 <code>null</code> 表达式为 <code>false</code> 感到奇怪</p><p>那你可以换一种写法使用 <code>a=null || a!$='xxx'</code> 或 <code>!(a$='xxx')</code></p><h2 id="connect" tabindex="-1">关系选择 <a class="header-anchor" href="#connect" aria-label="Permalink to "关系选择 {#connect}""></a></h2><p>关系选择器 由 关系操作符 和 关系表达式 构成, 用于连接两个属性选择器</p><p>简单示例: <code>div > a</code>, 它 表示/约束 两个节点之间的关系, 下面介绍 <a href="#connect-operator">关系操作符</a> 和 <a href="#connect-exp">关系表达式</a></p><h3 id="connect-exp" tabindex="-1">关系表达式 <a class="header-anchor" href="#connect-exp" aria-label="Permalink to "关系表达式 {#connect-exp}""></a></h3><p>关系表达式 表示查找节点的范围, 有两种</p><ul><li>元组表达式 <code>(a1,a2,a3,a_n)</code>, 其中 a1, a2, a3, a_n 是常量有序递增正整数, 示例 <code>(1)</code>, <code>(2,3,5)</code></li><li>多项式表达式 <code>(an+b)</code>, 其中 a 和 b 是常量整数, 它是元组表达式的另一种表示, 这个元组的数字满足集合 <code>{an+b|an+b>=1,n>=1}</code> 如果集合为空集则表达式非法<br> 当 a<=0 时, 它具有等价的元组表达式<br> 示例 <code>(-n+4)</code> 等价于 <code>(1,2,3)</code><br> 示例 <code>(-3n+10)</code> 等价于 <code>(1,4,7)</code><br> 当 a>0 时, 它表示无限的元组表达式<br> 示例 <code>(n)</code>, 它表示 <code>(1,2,3,...)</code> 一个无限的元组<br> 示例 <code>(2n-1)</code>, 它表示 <code>(1,3,5,...)</code> 一个无限的元组</li></ul><h3 id="connect-operator" tabindex="-1">关系操作符 <a class="header-anchor" href="#connect-operator" aria-label="Permalink to "关系操作符 {#connect-operator}""></a></h3><p>关系操作符 表示查找节点的方向, 有 5 种关系操作符, <code>+</code>, <code>-</code>, <code>></code>, <code><</code>, <code><<</code></p>',34),A={tabindex:"0"},w=t("thead",null,[t("tr",null,[t("th",{style:{"text-align":"center"}},"操作符"),t("th",{style:{"text-align":"center"}},"名称"),t("th",{style:{"text-align":"center"}},"图例"),t("th",{style:{"text-align":"center"}},"选择器")])],-1),B=t("td",{style:{"text-align":"center"}},"+",-1),V=t("td",{style:{"text-align":"center"}},"前置兄弟节点",-1),S={style:{"text-align":"center"}},P=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiArIFtfaWQ9MzNd",target:"_blank",rel:"noreferrer"},"* + [_id=33]")],-1),J=t("td",{style:{"text-align":"center"}},"-",-1),j=t("td",{style:{"text-align":"center"}},"后置兄弟节点",-1),W={style:{"text-align":"center"}},$=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiAtIFtfaWQ9MzJd",target:"_blank",rel:"noreferrer"},"* - [_id=32]")],-1),D=t("td",{style:{"text-align":"center"}},">",-1),I=t("td",{style:{"text-align":"center"}},"祖先节点",-1),K={style:{"text-align":"center"}},z=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiA-IFtfaWQ9OTBd",target:"_blank",rel:"noreferrer"},"* > [_id=90]")],-1),L=t("td",{style:{"text-align":"center"}},"<",-1),N=t("td",{style:{"text-align":"center"}},"直接子节点",-1),G={style:{"text-align":"center"}},M=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiA8IFtfaWQ9ODld",target:"_blank",rel:"noreferrer"},"* < [_id=89]")],-1),R=t("td",{style:{"text-align":"center"}},"<<",-1),O=t("td",{style:{"text-align":"center"}},"子孙节点(深度先序)",-1),Z={style:{"text-align":"center"}},Q=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiA8PDIgW19pZD0yOV0",target:"_blank",rel:"noreferrer"},"* <<2 [_id=29]")],-1),U=i('<p>将 关系操作符 和 关系表达式 连接起来就得到了 关系选择器</p><p><code>A +(a1,a2,a3,a_n) B</code> : A 是 B 的前置兄弟节点, 并且 A.index 满足 B.index-(a_m), 其中 a_m 是元组的任意一个数字</p><p><code>A -(a1,a2,a3,a_n) B</code> : A 是 B 的后置兄弟节点, 并且 A.index 满足 B.index+(a_m)</p><p><code>A >(a1,a2,a3,a_n) B</code> : A 是 B 的祖先节点, 并且 A.depth 满足 B.depth-(a_m), 根节点的 depth=0</p><p><code>A <(a1,a2,a3,a_n) B</code> : A 是 B 的直接子节点, 并且 A.index 满足 a_m-1</p><p><code>A <<(a1,a2,a3,a_n) B</code> : A 是 B 的子孙节点, 并且 A.order 满足 a_m-1, A.order 是深度优先先序遍历的索引</p><h3 id="connect-shortcut" tabindex="-1">表达式简写 <a class="header-anchor" href="#connect-shortcut" aria-label="Permalink to "表达式简写 {#connect-shortcut}""></a></h3><p>一般情况下, 并不需要写严格完整的表达式, 使用简化写法更方便快捷</p><p>下面是一些特殊情况下的简写表示</p><p>当 a=0 或 b=0 时, 括号可以省略, 以 <code>+</code> 为例</p><ul><li><code>A +(3n+0) B</code> -> <code>A +(3n) B</code> -> <code>A +3n B</code></li><li><code>A +(0n+3) B</code> -> <code>A +(+3) B</code> -> <code>A +3 B</code></li></ul><p>当 a=0 且 b=1 时, an+b 可以省略, 以 <code>+</code> 为例</p><ul><li><code>A +(0n+1) B</code> -> <code>A + B</code></li></ul><p>此外 <code>A + B</code>,<code>A > B</code> 都与等价的 CSS 语法语义相同</p><p>当 a=1 且 b=0 且操作符是 <code>></code>, 可以进一步简写, 比如</p><ul><li><code>A >(1n+0) B</code> -> <code>A >n B</code> -> <code>A B</code></li></ul><p>这与等价的 CSS 语法语义相同</p><h2 id="example" tabindex="-1">示例 <a class="header-anchor" href="#example" aria-label="Permalink to "示例 {#example}""></a></h2><div class="language-txt vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>@LinearLayout > TextView[id=`com.byted.pangle:id/tt_item_tv`][text=`不感兴趣`]</span></span></code></pre></div><p>选择器从末尾开始查找, 首先找到 id=`com.byted.pangle:id/tt_item_tv` 和 text=`不感兴趣` 的 TextView, 并且父节点是 LinearLayout 的节点</p><p>此时我们得到两个节点 [LinearLayout, TextView] 根据 <code>@</code> 知道目标节点是 LinearLayout</p><p>实际上它与</p><div class="language-txt vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>TextView[id=`com.byted.pangle:id/tt_item_tv`][text=`不感兴趣`] <n LinearLayout</span></span></code></pre></div><p>的目标匹配节点是等价的, 但是在查询算法时间复杂度上, 后者更慢</p><p>如下是网页无障碍快照审查工具, 使用它的搜索框的选择器查询可以实时测试编写的选择器</p><ul><li><a href="https://i.gkd.li/i/14045424" target="_blank" rel="noreferrer">https://i.gkd.li/i/14045424</a></li><li><a href="https://i.gkd.li/i/14034770" target="_blank" rel="noreferrer">https://i.gkd.li/i/14034770</a></li><li><a href="https://i.gkd.li/i/14031920" target="_blank" rel="noreferrer">https://i.gkd.li/i/14031920</a></li><li><a href="https://i.gkd.li/i/14018243" target="_blank" rel="noreferrer">https://i.gkd.li/i/14018243</a></li><li><a href="https://i.gkd.li/i/14011298" target="_blank" rel="noreferrer">https://i.gkd.li/i/14011298</a></li><li><a href="https://i.gkd.li/i/13999908" target="_blank" rel="noreferrer">https://i.gkd.li/i/13999908</a></li></ul><h2 id="note" tabindex="-1">一些注意 <a class="header-anchor" href="#note" aria-label="Permalink to "一些注意 {#note}""></a></h2><h3 id="match-order" tabindex="-1">匹配顺序 <a class="header-anchor" href="#match-order" aria-label="Permalink to "匹配顺序 {#match-order}""></a></h3><p>选择器的匹配顺序是 <strong>从右往左匹配</strong></p><p>例如 <code>FrameLayout > TextView</code>, 它是先从 根节点/事件节点 找到 <code>TextView</code>, 然后再判断 parent 是不是 <code>FrameLayout</code></p><p>并不是先找到 <code>FrameLayout</code> 然后再判断 child 是否有 <code>TextView</code></p><p>同时在 <a href="https://i.gkd.li/i/15747758?gkd=RnJhbWVMYXlvdXQgPiBUZXh0Vmlldw" target="_blank" rel="noreferrer">选择器路径视图</a> 也会标明匹配顺序和查找方向</p><h3 id="regex-optimization" tabindex="-1">正则表达式优化 <a class="header-anchor" href="#regex-optimization" aria-label="Permalink to "正则表达式优化 {#regex-optimization}""></a></h3><p>对 <code>matches</code>/<code>notMatches</code> 的优化: 如果正则表达式满足下面的条件, 选择器将使用内置的简单的函数匹配, 而不是真正地去运行一个正则表达式</p><ul><li><code>[text~="(?is)abc.*"]</code> -> <code>startsWith('abc', ignoreCase = true)</code></li><li><code>[text~="(?is).*abc.*"]</code> -> <code>contains('abc', ignoreCase = true)</code></li><li><code>[text~="(?is).*abc"]</code> -> <code>endsWith('abc', ignoreCase = true)</code></li><li><code>[text!~="(?is)abc.*"]</code> -> <code>notStartsWith('abc', ignoreCase = true)</code></li><li><code>[text!~="(?is).*abc.*"]</code> -> <code>notContains('abc', ignoreCase = true)</code></li><li><code>[text!~="(?is).*abc"]</code> -> <code>notEndsWith('abc', ignoreCase = true)</code></li></ul><p>上面的 <code>abc</code> 指代不包含 <code>\\^$.?*|+()[]{}</code> 这类特殊正则字符的任意字符串, 如 <code>ikun</code> 符合, <code>ikun?</code> 不符合</p><p>简单来说就是如果你只想忽略大小写去简单匹配或不匹配一些字符, 那么直接使用上面的格式</p><h3 id="regex-multiplatform" tabindex="-1">正则表达式一致性 <a class="header-anchor" href="#regex-multiplatform" aria-label="Permalink to "正则表达式一致性 {#regex-multiplatform}""></a></h3><p>由于 选择器 需要同时满足 浏览器/Js(审查工具), Android/Java(GKD) 运行, 而这两个平台的正则表达式的底层实现和语法表示略有不同</p><p>因此为了在 Js 端实现和 Java 一致的正则表达式规范, 网页审查工具借助 <a href="https://kotlinlang.org/docs/wasm-overview.html" target="_blank" rel="noreferrer">Kotlin Wasm</a> 将正则表达式的 matches 函数接口编译为 wasm 提供给 Js 调用</p><p>Kotlin Wasm 需要你的浏览器支持 <a href="https://developer.chrome.com/blog/wasmgc?hl=zh-cn" target="_blank" rel="noreferrer">WasmGC</a>, 也就是版本需要满足下列条件</p>',41),X=i(`<p>如果你在 nodejs 使用 gkd 选择器, 需要 node>=22 版本</p><p>如果你的 浏览器/nodejs 版本不满足, 正则表达式将自动回退到 Js 端实现, 以下是在 Js 端使用正则表达式需要注意的地方</p><p>比如上面的正则表达式优化例子中开头的 <code>(?is)</code> 是 Java 正则表达式的 inline flags 语法, 但实际上 Js 并不支持这样写, 只是选择器内部做了一些兼容让它支持</p><p>并且选择器的 Js 端只兼容在开头的 flags, 在内部的 flags 不支持, 此外 Java 和 Js 支持的 flags 也有不同, 某些特殊的表达式也表现也不一致</p><p>总之不要使用太过复杂(多复杂我也不知道)的正则表达式, 某些正则表达式有可能在审查工具上匹配, 但是在 GKD 上不匹配</p><p>如果你能确保正则表达式在 Js 和 Java/Kotlin 的匹配行为一致, 那就没问题</p><p>总之两种情况</p><ul><li>高版本 浏览器/nodejs 可以使用 <strong>完整一致</strong> 的正则表达式</li><li>低版本 浏览器/nodejs 使用 <strong>小范围不完整不一致</strong> 的正则表达式</li></ul><p>如果你的选择器没有使用正则表达式则不用关心此问题</p><h3 id="nest-escape" tabindex="-1">嵌套转义字符 <a class="header-anchor" href="#nest-escape" aria-label="Permalink to "嵌套转义字符 {#nest-escape}""></a></h3><p>转义字符一般用于表示不能直接显示具体特殊意义的字符</p><p>对于 GKD 的选择器而言, 转义字符使用示例如下</p><div class="language-txt vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>TextView[text="\\\\\\n"]</span></span></code></pre></div><p>这表达选择一个 TextView 它的 text 长度为 2, 开头是 <code>\\</code> 末尾是换行</p><p>这和平常写的代码里面的 string 声明用法一模一样</p><p>但是选择器最终放在规则的字段里面, 也就是这个选择器字符串处于 JSON 的 string 内</p><p>如果你想当然地直接手动复制插入到编辑器里出现下面这种规则</p><div class="language-json5 vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json5</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
|
|
2
|
-
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> matches</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'TextView[text="</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\\\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"]'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
|
3
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>由于 JSON 也有自己的转义, 规则与 GKD 的转义基本一致, 因此你的实际选择器实际变成了</p><div class="language-txt vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>TextView[text="\\</span></span>
|
|
4
|
-
<span class="line"><span>"]</span></span></code></pre></div><p>这明显是一个非法的选择器</p><p>解决方式也很简单, 手动插入的时候将你的 <code>\\</code> 变成 <code>\\\\</code>, 正确的规则如下</p><div class="language-json5 vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json5</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
|
|
5
|
-
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> matches</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'TextView[text="</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\\\\\\\\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">n"]'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
|
6
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>这是普通字符串的情况, 如果你使用 <code>~=</code>/<code>!~=</code>, 则还需要多转义一次, 因为正则表达式也有自己的转义字符</p><p>比如我们想匹配一个 TextView 并且 text 是任意一个数字, 我们想当然地用 <code>\\d</code>, 所以你可能会写</p><div class="language-txt vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>TextView[text~="\\d"]</span></span></code></pre></div><p>但是你在网页审查工具输入并回车搜索会提示 非法选择器, 这是因为 <code>\\d</code> 处于 GKD 的 string 内, 会被转义一次, 正确的用法是写 <code>\\\\d</code></p><div class="language-txt vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>TextView[text~="\\\\d"]</span></span></code></pre></div><p>实际上这部分等价的 Kotlin/Java 代码可以简单是</p><div class="language-txt vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">txt</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>Regex("\\\\d").matches(text)</span></span></code></pre></div><p>接下来把选择器放到规则里面, 根据上面的描述, 规则应该是</p><div class="language-json5 vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json5</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
|
|
7
|
-
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> matches</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'TextView[text~="</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\\\\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">d"]'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
|
8
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>如果想用正则匹配一个 <code>\\</code> 字符, 最终规则应该写成</p><div class="language-json5 vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json5</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
|
|
9
|
-
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> matches</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'TextView[text~="</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\\\\\\\\\\\\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"]'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
|
10
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>实现和上面相同的结果, 即用 <code>=</code> 匹配一个 <code>\\</code> 字符, 最终规则应该写成</p><div class="language-json5 vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json5</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
|
|
11
|
-
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> matches</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'TextView[text="</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">\\\\\\\\</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">"]'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
|
12
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>类似的问题 <a href="https://github.com/gkd-kit/gkd/issues/603" target="_blank" rel="noreferrer">gkd-kit/gkd#603</a></p>`,37),at=JSON.parse('{"title":"选择器","description":"","frontmatter":{},"headers":[],"relativePath":"selector/index.md","filePath":"selector/index.md","lastUpdated":1721312533000}'),Y={name:"selector/index.md"},dt=Object.assign(Y,{setup(h){return(l,s)=>(r(),p("div",null,[E,C,q,t("div",F,[e(f)]),T,t("table",A,[w,t("tbody",null,[t("tr",null,[B,V,t("td",S,[e(a(d),{src:"0020.png",width:"250"})]),P]),t("tr",null,[J,j,t("td",W,[e(a(d),{src:"0021.png",width:"250"})]),$]),t("tr",null,[D,I,t("td",K,[e(a(d),{src:"0022.png",width:"250"})]),z]),t("tr",null,[L,N,t("td",G,[e(a(d),{src:"0023.png",width:"250"})]),M]),t("tr",null,[R,O,t("td",Z,[e(a(d),{src:"0024.png",width:"250"})]),Q])])]),U,e(a(d),{src:"0025.png"}),X]))}});export{at as __pageData,dt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as x,J as u,a6 as y,l as k,o as r,c as p,a7 as b,a8 as _,m as t,t as m,n as v,p as a,L as e,a5 as i}from"./chunks/framework.CSd4LtKr.js";import{G as d}from"./chunks/theme.u-UTZ1M2.js";const f=x({__name:"IdentifierField",setup(h){const l=u(""),s=/^[_a-zA-Z][a-zA-Z0-9_]*$/,n=y(l,300),o=k(()=>n.value!=="null"&&n.value!=="true"&&n.value!=="false"&&s.test(n.value));return(H,c)=>(r(),p("div",null,[b(t("input",{placeholder:"请输入标识符测试是否合法",type:"text","onUpdate:modelValue":c[0]||(c[0]=g=>l.value=g),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),[[_,l.value]]),t("div",{"mt-4px":"",class:v({"color-red":!o.value,"opacity-0":!a(n)||!l.value})},m(o.value?"合法标识符✅":"非法标识符❌"),3)]))}}),E=i("",32),C=t("table",null,[t("thead",null,[t("tr",null,[t("th",{colspan:"2"},[t("div",{"text-center":""},"值表达式")]),t("th",null,"示例")])]),t("tbody",null,[t("tr",null,[t("td",{rowspan:"3"},"变量"),t("td",null,"标识符"),t("td",null,[t("code",null," a ")])]),t("tr",null,[t("td",null,"成员表达式"),t("td",null,[t("code",null,"a.b")])]),t("tr",null,[t("td",null,"调用表达式"),t("td",null,[t("code",null,"a(b,c)")])]),t("tr",null,[t("td",{rowspan:"4"},"字面量"),t("td",null,"null"),t("td",null,[t("code",null,"null")])]),t("tr",null,[t("td",null,"boolean"),t("td",null,[t("code",null,"false")])]),t("tr",null,[t("td",null,"int"),t("td",null,[t("code",null,"114514")])]),t("tr",null,[t("td",null,"string"),t("td",null,[t("code",null,"'ikun'")])])])],-1),q=i("",11),F={class:"vp-raw"},T=i("",34),A={tabindex:"0"},w=t("thead",null,[t("tr",null,[t("th",{style:{"text-align":"center"}},"操作符"),t("th",{style:{"text-align":"center"}},"名称"),t("th",{style:{"text-align":"center"}},"图例"),t("th",{style:{"text-align":"center"}},"选择器")])],-1),B=t("td",{style:{"text-align":"center"}},"+",-1),V=t("td",{style:{"text-align":"center"}},"前置兄弟节点",-1),S={style:{"text-align":"center"}},P=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiArIFtfaWQ9MzNd",target:"_blank",rel:"noreferrer"},"* + [_id=33]")],-1),J=t("td",{style:{"text-align":"center"}},"-",-1),j=t("td",{style:{"text-align":"center"}},"后置兄弟节点",-1),W={style:{"text-align":"center"}},$=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiAtIFtfaWQ9MzJd",target:"_blank",rel:"noreferrer"},"* - [_id=32]")],-1),D=t("td",{style:{"text-align":"center"}},">",-1),I=t("td",{style:{"text-align":"center"}},"祖先节点",-1),K={style:{"text-align":"center"}},z=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiA-IFtfaWQ9OTBd",target:"_blank",rel:"noreferrer"},"* > [_id=90]")],-1),L=t("td",{style:{"text-align":"center"}},"<",-1),N=t("td",{style:{"text-align":"center"}},"直接子节点",-1),G={style:{"text-align":"center"}},M=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiA8IFtfaWQ9ODld",target:"_blank",rel:"noreferrer"},"* < [_id=89]")],-1),R=t("td",{style:{"text-align":"center"}},"<<",-1),O=t("td",{style:{"text-align":"center"}},"子孙节点(深度先序)",-1),Z={style:{"text-align":"center"}},Q=t("td",{style:{"text-align":"center"}},[t("a",{href:"https://i.gkd.li/i/14045424?gkd=KiA8PDIgW19pZD0yOV0",target:"_blank",rel:"noreferrer"},"* <<2 [_id=29]")],-1),U=i("",41),X=i("",37),at=JSON.parse('{"title":"选择器","description":"","frontmatter":{},"headers":[],"relativePath":"selector/index.md","filePath":"selector/index.md","lastUpdated":1721312533000}'),Y={name:"selector/index.md"},dt=Object.assign(Y,{setup(h){return(l,s)=>(r(),p("div",null,[E,C,q,t("div",F,[e(f)]),T,t("table",A,[w,t("tbody",null,[t("tr",null,[B,V,t("td",S,[e(a(d),{src:"0020.png",width:"250"})]),P]),t("tr",null,[J,j,t("td",W,[e(a(d),{src:"0021.png",width:"250"})]),$]),t("tr",null,[D,I,t("td",K,[e(a(d),{src:"0022.png",width:"250"})]),z]),t("tr",null,[L,N,t("td",G,[e(a(d),{src:"0023.png",width:"250"})]),M]),t("tr",null,[R,O,t("td",Z,[e(a(d),{src:"0024.png",width:"250"})]),Q])])]),U,e(a(d),{src:"0025.png"}),X]))}});export{at as __pageData,dt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as t,c as d,o as e,a5 as o}from"./chunks/framework.CSd4LtKr.js";const u=JSON.parse('{"title":"属性方法","description":"","frontmatter":{},"headers":[],"relativePath":"selector/node.md","filePath":"selector/node.md","lastUpdated":1721312533000}'),r={name:"selector/node.md"},c=o("",23),a=[c];function n(i,h,l,s,b,g){return e(),d("div",null,a)}const m=t(r,[["render",n]]);export{u as __pageData,m as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e,c as o,o as t,a5 as c}from"./chunks/framework.CSd4LtKr.js";const b=JSON.parse('{"title":"查询优化","description":"","frontmatter":{},"headers":[],"relativePath":"selector/optimize.md","filePath":"selector/optimize.md","lastUpdated":1721312533000}'),d={name:"selector/optimize.md"},i=c("",48),l=[i];function a(n,r,p,u,s,h){return t(),o("div",null,l)}const f=e(d,[["render",a]]);export{b as __pageData,f as default};
|