@gkd-kit/docs 0.0.1778124232018 → 0.0.1788031478448

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/.vitepress/dist/404.html +11 -13
  2. package/.vitepress/dist/404_.md +11 -13
  3. package/.vitepress/dist/_config.json +1 -1
  4. package/.vitepress/dist/api/index.html +16 -18
  5. package/.vitepress/dist/api/index_.md +16 -18
  6. package/.vitepress/dist/api/interfaces/RawApp.html +15 -17
  7. package/.vitepress/dist/api/interfaces/RawAppGroup.html +19 -26
  8. package/.vitepress/dist/api/interfaces/RawAppGroup_.md +19 -26
  9. package/.vitepress/dist/api/interfaces/RawAppRule.html +15 -37
  10. package/.vitepress/dist/api/interfaces/RawAppRuleProps.html +15 -17
  11. package/.vitepress/dist/api/interfaces/RawAppRuleProps_.md +15 -17
  12. package/.vitepress/dist/api/interfaces/RawAppRule_.md +15 -37
  13. package/.vitepress/dist/api/interfaces/RawApp_.md +15 -17
  14. package/.vitepress/dist/api/interfaces/RawCategory.html +15 -17
  15. package/.vitepress/dist/api/interfaces/RawCategory_.md +15 -17
  16. package/.vitepress/dist/api/interfaces/RawCommonProps.html +20 -22
  17. package/.vitepress/dist/api/interfaces/RawCommonProps_.md +20 -22
  18. package/.vitepress/dist/api/interfaces/RawGlobalApp.html +15 -17
  19. package/.vitepress/dist/api/interfaces/RawGlobalApp_.md +15 -17
  20. package/.vitepress/dist/api/interfaces/RawGlobalGroup.html +15 -22
  21. package/.vitepress/dist/api/interfaces/RawGlobalGroup_.md +15 -22
  22. package/.vitepress/dist/api/interfaces/RawGlobalRule.html +15 -37
  23. package/.vitepress/dist/api/interfaces/RawGlobalRuleProps.html +15 -17
  24. package/.vitepress/dist/api/interfaces/RawGlobalRuleProps_.md +15 -17
  25. package/.vitepress/dist/api/interfaces/RawGlobalRule_.md +15 -37
  26. package/.vitepress/dist/api/interfaces/RawGroupProps.html +15 -22
  27. package/.vitepress/dist/api/interfaces/RawGroupProps_.md +15 -22
  28. package/.vitepress/dist/api/interfaces/RawRuleProps.html +30 -37
  29. package/.vitepress/dist/api/interfaces/RawRuleProps_.md +30 -37
  30. package/.vitepress/dist/api/interfaces/RawSubscription.html +16 -18
  31. package/.vitepress/dist/api/interfaces/RawSubscription_.md +16 -18
  32. package/.vitepress/dist/api/type-aliases/IArray.html +18 -20
  33. package/.vitepress/dist/api/type-aliases/IArray_.md +18 -20
  34. package/.vitepress/dist/api/type-aliases/Integer.html +16 -18
  35. package/.vitepress/dist/api/type-aliases/IntegerMatcher.html +15 -17
  36. package/.vitepress/dist/api/type-aliases/IntegerMatcher_.md +15 -17
  37. package/.vitepress/dist/api/type-aliases/Integer_.md +16 -18
  38. package/.vitepress/dist/api/type-aliases/Position.html +22 -24
  39. package/.vitepress/dist/api/type-aliases/Position_.md +22 -24
  40. package/.vitepress/dist/api/type-aliases/StringMatcher.html +15 -17
  41. package/.vitepress/dist/api/type-aliases/StringMatcher_.md +15 -17
  42. package/.vitepress/dist/api/type-aliases/SwipeArg.html +15 -17
  43. package/.vitepress/dist/api/type-aliases/SwipeArg_.md +15 -17
  44. package/.vitepress/dist/assets/api_index.md.CjQzKled.js +1 -0
  45. package/.vitepress/dist/assets/api_index.md.CjQzKled.lean.js +1 -0
  46. package/.vitepress/dist/assets/api_interfaces_RawApp.md.BpzQ9G66.js +1 -0
  47. package/.vitepress/dist/assets/api_interfaces_RawApp.md.BpzQ9G66.lean.js +1 -0
  48. package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.Ck2PMmew.js +18 -0
  49. package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.Ck2PMmew.lean.js +1 -0
  50. package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.svCCf5YM.js +1 -0
  51. package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.svCCf5YM.lean.js +1 -0
  52. package/.vitepress/dist/assets/api_interfaces_RawAppRuleProps.md.Djcgq66H.js +1 -0
  53. package/.vitepress/dist/assets/api_interfaces_RawAppRuleProps.md.Djcgq66H.lean.js +1 -0
  54. package/.vitepress/dist/assets/api_interfaces_RawCategory.md.DHBN1t1h.js +1 -0
  55. package/.vitepress/dist/assets/api_interfaces_RawCategory.md.DHBN1t1h.lean.js +1 -0
  56. package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.BqWR20Ki.js +6 -0
  57. package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.BqWR20Ki.lean.js +1 -0
  58. package/.vitepress/dist/assets/api_interfaces_RawGlobalApp.md.nzd5SVi6.js +1 -0
  59. package/.vitepress/dist/assets/api_interfaces_RawGlobalApp.md.nzd5SVi6.lean.js +1 -0
  60. package/.vitepress/dist/assets/api_interfaces_RawGlobalGroup.md.BX5E3cY2.js +1 -0
  61. package/.vitepress/dist/assets/api_interfaces_RawGlobalGroup.md.BX5E3cY2.lean.js +1 -0
  62. package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.BBIb-pml.js +1 -0
  63. package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.BBIb-pml.lean.js +1 -0
  64. package/.vitepress/dist/assets/api_interfaces_RawGlobalRuleProps.md.CnnmlY17.js +1 -0
  65. package/.vitepress/dist/assets/api_interfaces_RawGlobalRuleProps.md.CnnmlY17.lean.js +1 -0
  66. package/.vitepress/dist/assets/api_interfaces_RawGroupProps.md.b_Emqo9z.js +1 -0
  67. package/.vitepress/dist/assets/api_interfaces_RawGroupProps.md.b_Emqo9z.lean.js +1 -0
  68. package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.Dub6x9Ex.js +1 -0
  69. package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.Dub6x9Ex.lean.js +1 -0
  70. package/.vitepress/dist/assets/api_interfaces_RawSubscription.md.DGEaq3vF.js +4 -0
  71. package/.vitepress/dist/assets/api_interfaces_RawSubscription.md.DGEaq3vF.lean.js +1 -0
  72. package/.vitepress/dist/assets/api_type-aliases_IArray.md.CaN7hADu.js +4 -0
  73. package/.vitepress/dist/assets/api_type-aliases_IArray.md.CaN7hADu.lean.js +1 -0
  74. package/.vitepress/dist/assets/api_type-aliases_Integer.md.Dm63ynqV.js +2 -0
  75. package/.vitepress/dist/assets/api_type-aliases_Integer.md.Dm63ynqV.lean.js +1 -0
  76. package/.vitepress/dist/assets/api_type-aliases_IntegerMatcher.md.BE39eIyQ.js +1 -0
  77. package/.vitepress/dist/assets/api_type-aliases_IntegerMatcher.md.BE39eIyQ.lean.js +1 -0
  78. package/.vitepress/dist/assets/api_type-aliases_Position.md.CieLiaPU.js +16 -0
  79. package/.vitepress/dist/assets/api_type-aliases_Position.md.CieLiaPU.lean.js +1 -0
  80. package/.vitepress/dist/assets/api_type-aliases_StringMatcher.md.DMiH2Jb8.js +1 -0
  81. package/.vitepress/dist/assets/api_type-aliases_StringMatcher.md.DMiH2Jb8.lean.js +1 -0
  82. package/.vitepress/dist/assets/api_type-aliases_SwipeArg.md.CJ5jBhMZ.js +1 -0
  83. package/.vitepress/dist/assets/api_type-aliases_SwipeArg.md.CJ5jBhMZ.lean.js +1 -0
  84. package/.vitepress/dist/assets/app.DsMGk2Gm.js +1 -0
  85. package/.vitepress/dist/assets/chunks/@localSearchIndexroot.DWHYjgK3.js +1 -0
  86. package/.vitepress/dist/assets/chunks/FileSaver.min.mmHyTxhb.js +1 -0
  87. package/.vitepress/dist/assets/chunks/VPLocalSearchBox.cfebC-xP.js +3 -0
  88. package/.vitepress/dist/assets/chunks/framework.bo_0njjP.js +5 -0
  89. package/.vitepress/dist/assets/chunks/metadata.0dc14c20.js +1 -0
  90. package/.vitepress/dist/assets/chunks/rolldown-runtime.CbXtAM7H.js +1 -0
  91. package/.vitepress/dist/assets/chunks/theme.BqxP_Qp6.js +1 -0
  92. package/.vitepress/dist/assets/guide_example.md.DLHK84th.js +1 -0
  93. package/.vitepress/dist/assets/guide_example.md.DLHK84th.lean.js +1 -0
  94. package/.vitepress/dist/assets/guide_external.md.gUhHg9ej.js +1 -0
  95. package/.vitepress/dist/assets/guide_external.md.gUhHg9ej.lean.js +1 -0
  96. package/.vitepress/dist/assets/guide_faq.md.DeiwxCAf.js +21 -0
  97. package/.vitepress/dist/assets/guide_faq.md.DeiwxCAf.lean.js +1 -0
  98. package/.vitepress/dist/assets/guide_index.md.6qboURPf.js +1 -0
  99. package/.vitepress/dist/assets/guide_index.md.6qboURPf.lean.js +1 -0
  100. package/.vitepress/dist/assets/guide_node.md.CwfEt3rN.js +1 -0
  101. package/.vitepress/dist/assets/guide_node.md.CwfEt3rN.lean.js +1 -0
  102. package/.vitepress/dist/assets/guide_optimize.md.FR-Zkx4h.js +1 -0
  103. package/.vitepress/dist/assets/guide_optimize.md.FR-Zkx4h.lean.js +1 -0
  104. package/.vitepress/dist/assets/guide_privacy.md.DBrgK5-u.js +1 -0
  105. package/.vitepress/dist/assets/guide_privacy.md.DBrgK5-u.lean.js +1 -0
  106. package/.vitepress/dist/assets/guide_selector.md.nAYYctX6.js +1 -0
  107. package/.vitepress/dist/assets/guide_selector.md.nAYYctX6.lean.js +1 -0
  108. package/.vitepress/dist/assets/guide_snapshot.md.AsADTlKo.js +1 -0
  109. package/.vitepress/dist/assets/guide_snapshot.md.AsADTlKo.lean.js +1 -0
  110. package/.vitepress/dist/assets/guide_sponsor.md.DZrghTwB.js +1 -0
  111. package/.vitepress/dist/assets/guide_sponsor.md.DZrghTwB.lean.js +1 -0
  112. package/.vitepress/dist/assets/{guide_subscription.md.b3kL74Yn.js → guide_subscription.md.u5UT7BiK.js} +6 -6
  113. package/.vitepress/dist/assets/guide_subscription.md.u5UT7BiK.lean.js +1 -0
  114. package/.vitepress/dist/assets/guide_terms.md.DFt17QYh.js +1 -0
  115. package/.vitepress/dist/assets/guide_terms.md.DFt17QYh.lean.js +1 -0
  116. package/.vitepress/dist/assets/guide_what-is-gkd.md.nCfci---.js +1 -0
  117. package/.vitepress/dist/assets/guide_what-is-gkd.md.nCfci---.lean.js +1 -0
  118. package/.vitepress/dist/assets/{index.md.C7gsJKtc.js → index.md.BdZV93Gs.js} +1 -1
  119. package/.vitepress/dist/assets/{index.md.C7gsJKtc.lean.js → index.md.BdZV93Gs.lean.js} +1 -1
  120. package/.vitepress/dist/assets/inter-italic-cyrillic-ext._dlW9xFb.woff2 +0 -0
  121. package/.vitepress/dist/assets/inter-italic-cyrillic.D7dRslh9.woff2 +0 -0
  122. package/.vitepress/dist/assets/inter-italic-greek-ext.Ct-Tf2bq.woff2 +0 -0
  123. package/.vitepress/dist/assets/inter-italic-greek.DNcpQ8QC.woff2 +0 -0
  124. package/.vitepress/dist/assets/inter-italic-latin-ext.DytegdRQ.woff2 +0 -0
  125. package/.vitepress/dist/assets/inter-italic-latin.CoImASkB.woff2 +0 -0
  126. package/.vitepress/dist/assets/inter-italic-symbols.DBflboKE.woff2 +0 -0
  127. package/.vitepress/dist/assets/inter-italic-vietnamese.BI5UxJD-.woff2 +0 -0
  128. package/.vitepress/dist/assets/inter-roman-cyrillic-ext.BeNbU08G.woff2 +0 -0
  129. package/.vitepress/dist/assets/inter-roman-cyrillic.CD0kT8R4.woff2 +0 -0
  130. package/.vitepress/dist/assets/inter-roman-greek-ext.CFAEQ5Ow.woff2 +0 -0
  131. package/.vitepress/dist/assets/inter-roman-greek.Dsf7YjP7.woff2 +0 -0
  132. package/.vitepress/dist/assets/inter-roman-latin-ext.Dl_ayf4-.woff2 +0 -0
  133. package/.vitepress/dist/assets/inter-roman-latin.BOE8-mWI.woff2 +0 -0
  134. package/.vitepress/dist/assets/inter-roman-symbols.w-B2-dTa.woff2 +0 -0
  135. package/.vitepress/dist/assets/inter-roman-vietnamese.CpqCnS2H.woff2 +0 -0
  136. package/.vitepress/dist/assets/polyfills.CHgXubMX.js +3 -0
  137. package/.vitepress/dist/assets/style.sQiVUa0J.css +2 -0
  138. package/.vitepress/dist/guide/example.html +15 -17
  139. package/.vitepress/dist/guide/example_.md +15 -17
  140. package/.vitepress/dist/guide/external.html +15 -17
  141. package/.vitepress/dist/guide/external_.md +15 -17
  142. package/.vitepress/dist/guide/faq.html +16 -18
  143. package/.vitepress/dist/guide/faq_.md +16 -18
  144. package/.vitepress/dist/guide/index.html +15 -17
  145. package/.vitepress/dist/guide/index_.md +15 -17
  146. package/.vitepress/dist/guide/node.html +15 -17
  147. package/.vitepress/dist/guide/node_.md +15 -17
  148. package/.vitepress/dist/guide/optimize.html +15 -17
  149. package/.vitepress/dist/guide/optimize_.md +15 -17
  150. package/.vitepress/dist/guide/privacy.html +15 -17
  151. package/.vitepress/dist/guide/privacy_.md +15 -17
  152. package/.vitepress/dist/guide/selector.html +21 -23
  153. package/.vitepress/dist/guide/selector_.md +21 -23
  154. package/.vitepress/dist/guide/snapshot.html +15 -17
  155. package/.vitepress/dist/guide/snapshot_.md +15 -17
  156. package/.vitepress/dist/guide/sponsor.html +15 -17
  157. package/.vitepress/dist/guide/sponsor_.md +15 -17
  158. package/.vitepress/dist/guide/subscription.html +20 -22
  159. package/.vitepress/dist/guide/subscription_.md +20 -22
  160. package/.vitepress/dist/guide/terms.html +15 -17
  161. package/.vitepress/dist/guide/terms_.md +15 -17
  162. package/.vitepress/dist/guide/what-is-gkd.html +15 -17
  163. package/.vitepress/dist/guide/what-is-gkd_.md +15 -17
  164. package/.vitepress/dist/hashmap.json +1 -1
  165. package/.vitepress/dist/index.html +15 -17
  166. package/.vitepress/dist/index_.md +15 -17
  167. package/_config.json +1 -1
  168. package/package.json +1 -4
  169. package/.vitepress/dist/assets/api_index.md.DbsdFYfN.js +0 -1
  170. package/.vitepress/dist/assets/api_index.md.DbsdFYfN.lean.js +0 -1
  171. package/.vitepress/dist/assets/api_interfaces_RawApp.md.VF5jpSTM.js +0 -1
  172. package/.vitepress/dist/assets/api_interfaces_RawApp.md.VF5jpSTM.lean.js +0 -1
  173. package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.CIX1JDEc.js +0 -23
  174. package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.CIX1JDEc.lean.js +0 -1
  175. package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.DhYtItNA.js +0 -1
  176. package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.DhYtItNA.lean.js +0 -1
  177. package/.vitepress/dist/assets/api_interfaces_RawAppRuleProps.md.B7FJNPoD.js +0 -1
  178. package/.vitepress/dist/assets/api_interfaces_RawAppRuleProps.md.B7FJNPoD.lean.js +0 -1
  179. package/.vitepress/dist/assets/api_interfaces_RawCategory.md.r-sNQdvB.js +0 -1
  180. package/.vitepress/dist/assets/api_interfaces_RawCategory.md.r-sNQdvB.lean.js +0 -1
  181. package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.CZf8W6jX.js +0 -6
  182. package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.CZf8W6jX.lean.js +0 -1
  183. package/.vitepress/dist/assets/api_interfaces_RawGlobalApp.md.Pg3dMO1q.js +0 -1
  184. package/.vitepress/dist/assets/api_interfaces_RawGlobalApp.md.Pg3dMO1q.lean.js +0 -1
  185. package/.vitepress/dist/assets/api_interfaces_RawGlobalGroup.md.C6tJ8Ztc.js +0 -6
  186. package/.vitepress/dist/assets/api_interfaces_RawGlobalGroup.md.C6tJ8Ztc.lean.js +0 -1
  187. package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.DKEsLdiI.js +0 -1
  188. package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.DKEsLdiI.lean.js +0 -1
  189. package/.vitepress/dist/assets/api_interfaces_RawGlobalRuleProps.md.DCuw4zBK.js +0 -1
  190. package/.vitepress/dist/assets/api_interfaces_RawGlobalRuleProps.md.DCuw4zBK.lean.js +0 -1
  191. package/.vitepress/dist/assets/api_interfaces_RawGroupProps.md.BQw600Ow.js +0 -6
  192. package/.vitepress/dist/assets/api_interfaces_RawGroupProps.md.BQw600Ow.lean.js +0 -1
  193. package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.CEwmTzSR.js +0 -1
  194. package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.CEwmTzSR.lean.js +0 -1
  195. package/.vitepress/dist/assets/api_interfaces_RawSubscription.md.DH1bY2R2.js +0 -4
  196. package/.vitepress/dist/assets/api_interfaces_RawSubscription.md.DH1bY2R2.lean.js +0 -1
  197. package/.vitepress/dist/assets/api_type-aliases_IArray.md.mS9PXjxK.js +0 -4
  198. package/.vitepress/dist/assets/api_type-aliases_IArray.md.mS9PXjxK.lean.js +0 -1
  199. package/.vitepress/dist/assets/api_type-aliases_Integer.md.CD5PaiMa.js +0 -2
  200. package/.vitepress/dist/assets/api_type-aliases_Integer.md.CD5PaiMa.lean.js +0 -1
  201. package/.vitepress/dist/assets/api_type-aliases_IntegerMatcher.md.DffqKRFD.js +0 -1
  202. package/.vitepress/dist/assets/api_type-aliases_IntegerMatcher.md.DffqKRFD.lean.js +0 -1
  203. package/.vitepress/dist/assets/api_type-aliases_Position.md.OdVVrNbs.js +0 -16
  204. package/.vitepress/dist/assets/api_type-aliases_Position.md.OdVVrNbs.lean.js +0 -1
  205. package/.vitepress/dist/assets/api_type-aliases_StringMatcher.md.Dm_IN8ij.js +0 -1
  206. package/.vitepress/dist/assets/api_type-aliases_StringMatcher.md.Dm_IN8ij.lean.js +0 -1
  207. package/.vitepress/dist/assets/api_type-aliases_SwipeArg.md.BBrbAV2_.js +0 -1
  208. package/.vitepress/dist/assets/api_type-aliases_SwipeArg.md.BBrbAV2_.lean.js +0 -1
  209. package/.vitepress/dist/assets/app.Bof6In7P.js +0 -1
  210. package/.vitepress/dist/assets/chunks/@localSearchIndexroot.CIJmSUUZ.js +0 -1
  211. package/.vitepress/dist/assets/chunks/FileSaver.min.BxHcgHsl.js +0 -1
  212. package/.vitepress/dist/assets/chunks/VPLocalSearchBox.BEJmHkAl.js +0 -2
  213. package/.vitepress/dist/assets/chunks/framework.C9O3MI31.js +0 -2
  214. package/.vitepress/dist/assets/chunks/index.BJCOYsj9.js +0 -275
  215. package/.vitepress/dist/assets/chunks/theme.HzWOLh31.js +0 -1
  216. package/.vitepress/dist/assets/guide_example.md.DQFpVk96.js +0 -1
  217. package/.vitepress/dist/assets/guide_example.md.DQFpVk96.lean.js +0 -1
  218. package/.vitepress/dist/assets/guide_external.md.jyqZleQg.js +0 -1
  219. package/.vitepress/dist/assets/guide_external.md.jyqZleQg.lean.js +0 -1
  220. package/.vitepress/dist/assets/guide_faq.md.CJ97c3Oj.js +0 -21
  221. package/.vitepress/dist/assets/guide_faq.md.CJ97c3Oj.lean.js +0 -1
  222. package/.vitepress/dist/assets/guide_index.md.DXqOoSRT.js +0 -1
  223. package/.vitepress/dist/assets/guide_index.md.DXqOoSRT.lean.js +0 -1
  224. package/.vitepress/dist/assets/guide_node.md.Dueqr68D.js +0 -1
  225. package/.vitepress/dist/assets/guide_node.md.Dueqr68D.lean.js +0 -1
  226. package/.vitepress/dist/assets/guide_optimize.md.QtHsJC_W.js +0 -1
  227. package/.vitepress/dist/assets/guide_optimize.md.QtHsJC_W.lean.js +0 -1
  228. package/.vitepress/dist/assets/guide_privacy.md.DEY7H6Xw.js +0 -1
  229. package/.vitepress/dist/assets/guide_privacy.md.DEY7H6Xw.lean.js +0 -1
  230. package/.vitepress/dist/assets/guide_selector.md.CkWe6yh0.js +0 -12
  231. package/.vitepress/dist/assets/guide_selector.md.CkWe6yh0.lean.js +0 -1
  232. package/.vitepress/dist/assets/guide_snapshot.md.CAyOxKjJ.js +0 -1
  233. package/.vitepress/dist/assets/guide_snapshot.md.CAyOxKjJ.lean.js +0 -1
  234. package/.vitepress/dist/assets/guide_sponsor.md.BcOIEi8A.js +0 -1
  235. package/.vitepress/dist/assets/guide_sponsor.md.BcOIEi8A.lean.js +0 -1
  236. package/.vitepress/dist/assets/guide_subscription.md.b3kL74Yn.lean.js +0 -1
  237. package/.vitepress/dist/assets/guide_terms.md.DfiFWTE8.js +0 -1
  238. package/.vitepress/dist/assets/guide_terms.md.DfiFWTE8.lean.js +0 -1
  239. package/.vitepress/dist/assets/guide_what-is-gkd.md.L893NqGU.js +0 -1
  240. package/.vitepress/dist/assets/guide_what-is-gkd.md.L893NqGU.lean.js +0 -1
  241. package/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  242. package/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  243. package/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  244. package/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  245. package/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  246. package/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  247. package/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  248. package/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  249. package/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  250. package/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  251. package/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  252. package/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  253. package/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  254. package/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  255. package/.vitepress/dist/assets/polyfills.-wjBxrqk.js +0 -1
  256. package/.vitepress/dist/assets/style.DmRq6upP.css +0 -1
@@ -1 +0,0 @@
1
- import{d as h,c as d,r as p,n as T,a as ne,t as S,o as r,b as _,w as v,T as Ce,e as m,_ as $,u as gt,i as _t,f as kt,g as He,h as k,j as u,k as i,l as oe,m as Ue,p as G,q as bt,s as Ae,v as yt,x as C,y as ge,z as K,A as Be,B as R,C as Ze,D as de,E as _e,F as Ge,G as H,H as E,I as J,J as g,K as q,L as Qe,M as x,N as ke,O as xe,P as he,Q as Pe,R as be,S as et,U as $t,V as wt,W as ue,X as tt,Y as nt,Z as Pt,$ as Lt,a0 as Vt,a1 as Le,a2 as St,a3 as U,a4 as Tt,a5 as It,a6 as ot,a7 as Nt,a8 as se,a9 as Mt,aa as Ct,ab as Ht,ac as At}from"./framework.C9O3MI31.js";const Bt=h({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(r(),d("span",{class:T(["VPBadge",e.type])},[p(e.$slots,"default",{},()=>[ne(S(e.text),1)])],2))}}),Et={key:0,class:"VPBackdrop"},Dt=h({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(r(),_(Ce,{name:"fade"},{default:v(()=>[e.show?(r(),d("div",Et)):m("",!0)]),_:1}))}}),Ft=$(Dt,[["__scopeId","data-v-5e267d81"]]),L=gt;function Ot(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function Ve(o){return o.startsWith("/")?o:`/${o}`}function Ee(o){const{pathname:e,search:t,hash:n,protocol:s}=new URL(o,"http://a.com");if(_t(o)||o.startsWith("#")||!s.startsWith("http")||!kt(e))return o;const{site:a}=L(),c=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,a.value.cleanUrls?"":".html")}${t}${n}`);return He(c)}function pe({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:s,hash:a}=L(),c=k(()=>{var f,b;return{label:(f=e.value.locales[t.value])==null?void 0:f.label,link:((b=e.value.locales[t.value])==null?void 0:b.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:k(()=>Object.entries(e.value.locales).flatMap(([f,b])=>c.value.label===b.label?[]:{text:b.label,link:Rt(b.link||(f==="root"?"/":`/${f}/`),s.value.i18nRouting!==!1&&o,n.value.relativePath.slice(c.value.link.length-1),!e.value.cleanUrls)+a.value})),currentLang:c}}function Rt(o,e,t,n){return e?o.replace(/\/$/,"")+Ve(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const jt={class:"NotFound"},Ut={class:"code"},Gt={class:"title"},Wt={class:"quote"},zt={class:"action"},qt=["href","aria-label"],Xt=h({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=pe();return(n,s)=>{var a,c,l,f,b,w,y,P,V,N,A,I;return r(),d("div",jt,[u("p",Ut,S((c=(a=i(e).notFound)==null?void 0:a.code)!=null?c:"404"),1),u("h1",Gt,S((f=(l=i(e).notFound)==null?void 0:l.title)!=null?f:"PAGE NOT FOUND"),1),s[0]||(s[0]=u("div",{class:"divider"},null,-1)),u("blockquote",Wt,S((w=(b=i(e).notFound)==null?void 0:b.quote)!=null?w:"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),u("div",zt,[u("a",{class:"link",href:i(He)((P=(y=i(e).notFound)==null?void 0:y.link)!=null?P:i(t).link),"aria-label":(N=(V=i(e).notFound)==null?void 0:V.linkLabel)!=null?N:"go to home"},S((I=(A=i(e).notFound)==null?void 0:A.linkText)!=null?I:"Take me home"),9,qt)])])}}}),Yt=$(Xt,[["__scopeId","data-v-9a97510e"]]);function st(o,e){if(Array.isArray(o))return ve(o);if(o==null)return[];e=Ve(e);const t=Object.keys(o).sort((s,a)=>a.split("/").length-s.split("/").length).find(s=>e.startsWith(Ve(s))),n=t?o[t]:[];return Array.isArray(n)?ve(n):ve(n.items,n.base)}function Kt(o){const e=[];let t=0;for(const n in o){const s=o[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function Jt(o){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(o),e}function Se(o,e){return Array.isArray(e)?e.some(t=>Se(o,t)):oe(o,e.link)?!0:e.items?Se(o,e.items):!1}function ve(o,e){return[...o].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=ve(n.items,s)),n})}function Zt(){const{hasSidebar:o}=Z(),e=Ue("(min-width: 960px)"),t=Ue("(min-width: 1280px)");return{isAsideEnabled:k(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const Qt=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,Te=[];function at(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function xt(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:en(t),link:"#"+t.id,level:n}});return tn(e,o)}function en(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(Qt.test(t.className))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function tn(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return sn(o,n,s)}function nn(o,e){const{isAsideEnabled:t}=Zt(),n=Ot(a,100);let s=null;G(()=>{requestAnimationFrame(a),window.addEventListener("scroll",n)}),bt(()=>{c(location.hash)}),Ae(()=>{window.removeEventListener("scroll",n)});function a(){if(!t.value)return;const l=window.scrollY,f=window.innerHeight,b=document.body.offsetHeight,w=Math.abs(l+f-b)<1,y=Te.map(({element:V,link:N})=>({link:N,top:on(V)})).filter(({top:V})=>!Number.isNaN(V)).sort((V,N)=>V.top-N.top);if(!y.length){c(null);return}if(l<1){c(null);return}if(w){c(y[y.length-1].link);return}let P=null;for(const{link:V,top:N}of y){if(N>l+yt()+4)break;P=V}c(P)}function c(l){s&&s.classList.remove("active"),l==null?s=null:s=o.value.querySelector(`a[href="${decodeURIComponent(l)}"]`);const f=s;f?(f.classList.add("active"),e.value.style.top=f.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function on(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}function sn(o,e,t){Te.length=0;const n=[],s=[];return o.forEach(a=>{const c={...a,children:[]};let l=s[s.length-1];for(;l&&l.level>=c.level;)s.pop(),l=s[s.length-1];if(c.element.classList.contains("ignore-header")||l&&"shouldIgnore"in l){s.push({level:c.level,shouldIgnore:!0});return}c.level>t||c.level<e||(Te.push({element:c.element,link:c.link}),l?l.children.push(c):n.push(c),s.push(c))}),n}const ie=C(!1);function an(o){let e;ge(()=>{e=ie.value?document.activeElement:void 0}),G(()=>{window.addEventListener("keyup",t)}),Ae(()=>{window.removeEventListener("keyup",t)});function t(n){n.key==="Escape"&&ie.value&&(o(),e==null||e.focus())}}function rn(){function o(){ie.value=!0}function e(){ie.value=!1}function t(){ie.value?e():o()}return{isOpen:ie,open:o,close:e,toggle:t}}function ln(o){const{page:e,hash:t}=L(),n=C(!1),s=k(()=>o.value.collapsed!=null),a=k(()=>!!o.value.link),c=C(!1),l=()=>{c.value=oe(e.value.relativePath,o.value.link)};K([e,o,t],l),G(l);const f=k(()=>c.value?!0:o.value.items?Se(e.value.relativePath,o.value.items):!1),b=k(()=>!!(o.value.items&&o.value.items.length));ge(()=>{n.value=!!(s.value&&o.value.collapsed)}),Be(()=>{(c.value||f.value)&&(n.value=!1)});function w(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:a,isActiveLink:c,hasActiveLink:f,hasChildren:b,toggle:w}}const Ie=R([]),ce=R([]),Ne=R(!1);function Z(){const{frontmatter:o,theme:e}=L(),t=k(()=>{var b;return!!((b=o.value.isHome)!=null?b:o.value.layout==="home")}),n=k(()=>o.value.sidebar!==!1&&ce.value.length>0&&!t.value),s=k(()=>n.value&&Ne.value),a=k(()=>n.value?Kt(ce.value):[]),c=k(()=>t.value?!1:o.value.aside!=null?!!o.value.aside:e.value.aside!==!1),l=k(()=>c.value?o.value.aside==null?e.value.aside==="left":o.value.aside==="left":!1),f=k(()=>Ie.value.length>0);return{isHome:t,sidebar:Ge(ce),sidebarGroups:a,hasSidebar:n,isSidebarEnabled:s,hasAside:c,leftAside:l,headers:Ge(Ie),hasLocalNav:f}}function cn({closeSidebar:o}){const{frontmatter:e,page:t,theme:n}=L();K(()=>[t.value.relativePath,n.value.sidebar],([a,c])=>{const l=c?st(c,a):[];JSON.stringify(l)!==JSON.stringify(ce.value)&&(ce.value=l)},{immediate:!0,deep:!0,flush:"sync"}),Ze(()=>{var a;Ie.value=xt((a=e.value.outline)!=null?a:n.value.outline)}),de&&(Ne.value=window.innerWidth>=960,window.addEventListener("resize",()=>{Ne.value=window.innerWidth>=960},{passive:!0}));const s=_e();K(()=>s.path,o),an(o)}const un=["href","title"],dn=h({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=J("VPDocOutlineItem",!0);return r(),d("ul",{class:T(["VPDocOutlineItem",t.root?"root":"nested"])},[(r(!0),d(H,null,E(t.headers,({children:a,link:c,title:l})=>(r(),d("li",null,[u("a",{class:"outline-link",href:c,onClick:e,title:l},S(l),9,un),a!=null&&a.length?(r(),_(s,{key:0,headers:a},null,8,["headers"])):m("",!0)]))),256))],2)}}}),rt=$(dn,[["__scopeId","data-v-bc34e68d"]]),pn={class:"content"},vn={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},hn=h({__name:"VPDocAsideOutline",setup(o){const{theme:e}=L(),t=C(),n=C(),{headers:s,hasLocalNav:a}=Z();return nn(t,n),(c,l)=>(r(),d("nav",{"aria-labelledby":"doc-outline-aria-label",class:T(["VPDocAsideOutline",{"has-outline":i(a)}]),ref_key:"container",ref:t},[u("div",pn,[u("div",{class:"outline-marker",ref_key:"marker",ref:n},null,512),u("div",vn,S(i(at)(i(e))),1),g(rt,{headers:i(s),root:!0},null,8,["headers"])])],2))}}),fn=$(hn,[["__scopeId","data-v-09be1c2c"]]),mn={class:"VPDocAsideCarbonAds"},gn=h({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(r(),d("div",mn,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),_n={class:"VPDocAside"},kn=h({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,n)=>(r(),d("div",_n,[p(t.$slots,"aside-top",{},void 0,!0),p(t.$slots,"aside-outline-before",{},void 0,!0),g(fn),p(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=u("div",{class:"spacer"},null,-1)),p(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(r(),_(gn,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),p(t.$slots,"aside-ads-after",{},void 0,!0),p(t.$slots,"aside-bottom",{},void 0,!0)]))}}),bn=$(kn,[["__scopeId","data-v-5b794d3b"]]);function yn(){const{theme:o,page:e}=L();return k(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function $n(){const{page:o,theme:e,frontmatter:t}=L();return k(()=>{var b,w,y,P,V,N,A,I,D,W,z,Q,F,O;const n=st(e.value.sidebar,o.value.relativePath),s=Jt(n),a=wn(s,Y=>Y.link.replace(/[?#].*$/,"")),c=a.findIndex(Y=>oe(o.value.relativePath,Y.link)),l=((b=e.value.docFooter)==null?void 0:b.prev)===!1&&!t.value.prev||t.value.prev===!1,f=((w=e.value.docFooter)==null?void 0:w.next)===!1&&!t.value.next||t.value.next===!1;return{prev:l?void 0:{text:(N=(P=typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)!=null?P:(y=a[c-1])==null?void 0:y.docFooterText)!=null?N:(V=a[c-1])==null?void 0:V.text,link:(I=typeof t.value.prev=="object"?t.value.prev.link:void 0)!=null?I:(A=a[c-1])==null?void 0:A.link},next:f?void 0:{text:(Q=(W=typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)!=null?W:(D=a[c+1])==null?void 0:D.docFooterText)!=null?Q:(z=a[c+1])==null?void 0:z.text,link:(O=typeof t.value.next=="object"?t.value.next.link:void 0)!=null?O:(F=a[c+1])==null?void 0:F.link}}})}function wn(o,e){const t=new Set;return o.filter(n=>{const s=e(n);return t.has(s)?!1:t.add(s)})}const X=h({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=k(()=>{var s;return(s=e.tag)!=null?s:e.href?"a":"span"}),n=k(()=>e.href&&Qe.test(e.href)||e.target==="_blank");return(s,a)=>{var c,l;return r(),_(q(t.value),{class:T(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?i(Ee)(s.href):void 0,target:(c=s.target)!=null?c:n.value?"_blank":void 0,rel:(l=s.rel)!=null?l:n.value?"noreferrer":void 0},{default:v(()=>[p(s.$slots,"default")]),_:3},8,["class","href","target","rel"])}}}),Pn={class:"VPLastUpdated"},Ln=["datetime"],Vn=h({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=L(),s=k(()=>new Date(t.value.lastUpdated)),a=k(()=>s.value.toISOString()),c=C("");return G(()=>{ge(()=>{var l,f,b,w;c.value=new Intl.DateTimeFormat((f=(l=e.value.lastUpdated)==null?void 0:l.formatOptions)!=null&&f.forceLocale?n.value:void 0,(w=(b=e.value.lastUpdated)==null?void 0:b.formatOptions)!=null?w:{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(l,f)=>{var b;return r(),d("p",Pn,[ne(S(((b=i(e).lastUpdated)==null?void 0:b.text)||i(e).lastUpdatedText||"Last updated")+": ",1),u("time",{datetime:a.value},S(c.value),9,Ln)])}}}),Sn=$(Vn,[["__scopeId","data-v-3c0ab652"]]),Tn={key:0,class:"VPDocFooter"},In={key:0,class:"edit-info"},Nn={key:0,class:"edit-link"},Mn={key:1,class:"last-updated"},Cn={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Hn={class:"pager"},An=["innerHTML"],Bn=["innerHTML"],En={class:"pager"},Dn=["innerHTML"],Fn=["innerHTML"],On=h({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=L(),s=yn(),a=$n(),c=k(()=>e.value.editLink&&n.value.editLink!==!1),l=k(()=>t.value.lastUpdated),f=k(()=>c.value||l.value||a.value.prev||a.value.next);return(b,w)=>{var y,P,V,N;return f.value?(r(),d("footer",Tn,[p(b.$slots,"doc-footer-before",{},void 0,!0),c.value||l.value?(r(),d("div",In,[c.value?(r(),d("div",Nn,[g(X,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:v(()=>[w[0]||(w[0]=u("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),ne(" "+S(i(s).text),1)]),_:1},8,["href"])])):m("",!0),l.value?(r(),d("div",Mn,[g(Sn)])):m("",!0)])):m("",!0),(y=i(a).prev)!=null&&y.link||(P=i(a).next)!=null&&P.link?(r(),d("nav",Cn,[w[1]||(w[1]=u("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),u("div",Hn,[(V=i(a).prev)!=null&&V.link?(r(),_(X,{key:0,class:"pager-link prev",href:i(a).prev.link},{default:v(()=>{var A;return[u("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.prev)||"Previous page"},null,8,An),u("span",{class:"title",innerHTML:i(a).prev.text},null,8,Bn)]}),_:1},8,["href"])):m("",!0)]),u("div",En,[(N=i(a).next)!=null&&N.link?(r(),_(X,{key:0,class:"pager-link next",href:i(a).next.link},{default:v(()=>{var A;return[u("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.next)||"Next page"},null,8,Dn),u("span",{class:"title",innerHTML:i(a).next.text},null,8,Fn)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),Rn=$(On,[["__scopeId","data-v-a1b438f2"]]),jn={class:"container"},Un={class:"aside-container"},Gn={class:"aside-content"},Wn={class:"content"},zn={class:"content-container"},qn={class:"main"},Xn=h({__name:"VPDoc",setup(o){const{theme:e}=L(),t=_e(),{hasSidebar:n,hasAside:s,leftAside:a}=Z(),c=k(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(l,f)=>{const b=J("Content");return r(),d("div",{class:T(["VPDoc",{"has-sidebar":i(n),"has-aside":i(s)}])},[p(l.$slots,"doc-top",{},void 0,!0),u("div",jn,[i(s)?(r(),d("div",{key:0,class:T(["aside",{"left-aside":i(a)}])},[f[0]||(f[0]=u("div",{class:"aside-curtain"},null,-1)),u("div",Un,[u("div",Gn,[g(bn,null,{"aside-top":v(()=>[p(l.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[p(l.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[p(l.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[p(l.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[p(l.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[p(l.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),u("div",Wn,[u("div",zn,[p(l.$slots,"doc-before",{},void 0,!0),u("main",qn,[g(b,{class:T(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(Rn,null,{"doc-footer-before":v(()=>[p(l.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),p(l.$slots,"doc-after",{},void 0,!0)])])]),p(l.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Yn=$(Xn,[["__scopeId","data-v-fca3d7b4"]]),Kn=h({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=k(()=>e.href&&Qe.test(e.href)),n=k(()=>e.tag||(e.href?"a":"button"));return(s,a)=>{var c,l;return r(),_(q(n.value),{class:T(["VPButton",[s.size,s.theme]]),href:s.href?i(Ee)(s.href):void 0,target:(c=e.target)!=null?c:t.value?"_blank":void 0,rel:(l=e.rel)!=null?l:t.value?"noreferrer":void 0},{default:v(()=>[p(s.$slots,"default",{},()=>[ne(S(s.text),1)],!0)]),_:3},8,["class","href","target","rel"])}}}),Jn=$(Kn,[["__scopeId","data-v-e65c33bf"]]),Zn=["src","alt"],Qn=h({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{var s;const n=J("VPImage",!0);return e.image?(r(),d(H,{key:0},[typeof e.image=="string"||"src"in e.image?(r(),d("img",x({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(He)(typeof e.image=="string"?e.image:e.image.src),alt:(s=e.alt)!=null?s:typeof e.image=="string"?"":e.image.alt||""}),null,16,Zn)):(r(),d(H,{key:1},[g(n,x({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),g(n,x({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),fe=$(Qn,[["__scopeId","data-v-4411b5a1"]]),xn={class:"container"},eo={class:"main"},to={class:"heading"},no=["innerHTML"],oo=["innerHTML"],so=["innerHTML"],ao={key:0,class:"actions"},ro={key:0,class:"image"},io={class:"image-container"},lo=h({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=ke("hero-image-slot-exists");return(t,n)=>(r(),d("div",{class:T(["VPHero",{"has-image":t.image||i(e)}])},[u("div",xn,[u("div",eo,[p(t.$slots,"home-hero-info-before",{},void 0,!0),p(t.$slots,"home-hero-info",{},()=>[u("h1",to,[t.name?(r(),d("span",{key:0,innerHTML:t.name,class:"name clip"},null,8,no)):m("",!0),t.text?(r(),d("span",{key:1,innerHTML:t.text,class:"text"},null,8,oo)):m("",!0)]),t.tagline?(r(),d("p",{key:0,innerHTML:t.tagline,class:"tagline"},null,8,so)):m("",!0)],!0),p(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(r(),d("div",ao,[(r(!0),d(H,null,E(t.actions,s=>(r(),d("div",{key:s.link,class:"action"},[g(Jn,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):m("",!0),p(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(r(),d("div",ro,[u("div",io,[n[0]||(n[0]=u("div",{class:"image-bg"},null,-1)),p(t.$slots,"home-hero-image",{},()=>[t.image?(r(),_(fe,{key:0,class:"image-src",image:t.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),co=$(lo,[["__scopeId","data-v-37aacaf6"]]),uo=h({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,n)=>i(e).hero?(r(),_(co,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":v(()=>[p(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[p(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[p(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[p(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[p(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),po={class:"box"},vo={key:0,class:"icon"},ho=["innerHTML"],fo=["innerHTML"],mo=["innerHTML"],go={key:4,class:"link-text"},_o={class:"link-text-value"},ko=h({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(r(),_(X,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[u("article",po,[typeof e.icon=="object"&&e.icon.wrap?(r(),d("div",vo,[g(fe,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(r(),_(fe,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(r(),d("div",{key:2,class:"icon",innerHTML:e.icon},null,8,ho)):m("",!0),u("h2",{class:"title",innerHTML:e.title},null,8,fo),e.details?(r(),d("p",{key:3,class:"details",innerHTML:e.details},null,8,mo)):m("",!0),e.linkText?(r(),d("div",go,[u("p",_o,[ne(S(e.linkText)+" ",1),t[0]||(t[0]=u("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),bo=$(ko,[["__scopeId","data-v-2e99674c"]]),yo={key:0,class:"VPFeatures"},$o={class:"container"},wo={class:"items"},Po=h({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=k(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(r(),d("div",yo,[u("div",$o,[u("div",wo,[(r(!0),d(H,null,E(n.features,a=>(r(),d("div",{key:a.title,class:T(["item",[t.value]])},[g(bo,{icon:a.icon,title:a.title,details:a.details,link:a.link,"link-text":a.linkText,rel:a.rel,target:a.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Lo=$(Po,[["__scopeId","data-v-4cd51504"]]),Vo=h({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,n)=>i(e).features?(r(),_(Lo,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),So=h({__name:"VPHomeContent",setup(o){const{width:e}=xe({initialWidth:0,includeScrollbar:!1});return(t,n)=>(r(),d("div",{class:"vp-doc container",style:he(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[p(t.$slots,"default",{},void 0,!0)],4))}}),To=$(So,[["__scopeId","data-v-d4f16320"]]),Io=h({__name:"VPHome",setup(o){const{frontmatter:e,theme:t}=L();return(n,s)=>{const a=J("Content");return r(),d("div",{class:T(["VPHome",{"external-link-icon-enabled":i(t).externalLinkIcon}])},[p(n.$slots,"home-hero-before",{},void 0,!0),g(uo,null,{"home-hero-info-before":v(()=>[p(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[p(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[p(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[p(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[p(n.$slots,"home-hero-image",{},void 0,!0)]),_:3}),p(n.$slots,"home-hero-after",{},void 0,!0),p(n.$slots,"home-features-before",{},void 0,!0),g(Vo),p(n.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(r(),_(To,{key:0},{default:v(()=>[g(a)]),_:1})):(r(),_(a,{key:1}))],2)}}}),No=$(Io,[["__scopeId","data-v-4b5bcac4"]]),Mo={},Co={class:"VPPage"};function Ho(o,e){const t=J("Content");return r(),d("div",Co,[p(o.$slots,"page-top"),g(t),p(o.$slots,"page-bottom")])}const Ao=$(Mo,[["render",Ho]]),Bo=h({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{isHome:n,hasSidebar:s}=Z();return(a,c)=>(r(),d("div",{class:T(["VPContent",{"has-sidebar":i(s),"is-home":i(n)}]),id:"VPContent"},[i(e).isNotFound?p(a.$slots,"not-found",{key:0},()=>[g(Yt)],!0):i(t).layout==="page"?(r(),_(Ao,{key:1},{"page-top":v(()=>[p(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[p(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(r(),_(No,{key:2},{"home-hero-before":v(()=>[p(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[p(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[p(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[p(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[p(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[p(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[p(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[p(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[p(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(r(),_(q(i(t).layout),{key:3})):(r(),_(Yn,{key:4},{"doc-top":v(()=>[p(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[p(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[p(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[p(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[p(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[p(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[p(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[p(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[p(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[p(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[p(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Eo=$(Bo,[["__scopeId","data-v-2bf60481"]]),Do={class:"container"},Fo=["innerHTML"],Oo=["innerHTML"],Ro=h({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:n}=Z();return(s,a)=>i(e).footer&&i(t).footer!==!1?(r(),d("footer",{key:0,class:T(["VPFooter",{"has-sidebar":i(n)}])},[u("div",Do,[i(e).footer.message?(r(),d("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,Fo)):m("",!0),i(e).footer.copyright?(r(),d("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,Oo)):m("",!0)])],2)):m("",!0)}}),jo=$(Ro,[["__scopeId","data-v-dfd62421"]]),Uo={class:"menu-text"},Go={class:"header"},Wo={class:"outline"},zo=h({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),n=C(!1),s=C(0),a=C(),c=C();function l(y){var P;(P=a.value)!=null&&P.contains(y.target)||(n.value=!1)}K(n,y=>{if(y){document.addEventListener("click",l);return}document.removeEventListener("click",l)}),Pe("Escape",()=>{n.value=!1}),Ze(()=>{n.value=!1});function f(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function b(y){y.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),be(()=>{n.value=!1}))}function w(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,P)=>(r(),d("div",{class:"VPLocalNavOutlineDropdown",style:he({"--vp-vh":s.value+"px"}),ref_key:"main",ref:a},[y.headers.length>0?(r(),d("button",{key:0,onClick:f,class:T({open:n.value})},[u("span",Uo,S(i(at)(i(t))),1),P[0]||(P[0]=u("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(r(),d("button",{key:1,onClick:w},S(i(t).returnToTopLabel||"Return to top"),1)),g(Ce,{name:"flyout"},{default:v(()=>[n.value?(r(),d("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:b},[u("div",Go,[u("a",{class:"top-link",href:"#",onClick:w},S(i(t).returnToTopLabel||"Return to top"),1)]),u("div",Wo,[g(rt,{headers:y.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),qo=$(zo,[["__scopeId","data-v-140ec73d"]]),Xo={class:"container"},Yo=["aria-expanded"],Ko={class:"menu-text"},Jo=h({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e}=L(),{isHome:t,hasSidebar:n,headers:s,hasLocalNav:a}=Z(),{y:c}=et(),l=C(0);G(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))});const f=k(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:!a.value,fixed:!a.value&&!n.value}));return(b,w)=>!i(t)&&(i(a)||i(n)||i(c)>=l.value)?(r(),d("div",{key:0,class:T(f.value)},[u("div",Xo,[i(n)?(r(),d("button",{key:0,class:"menu","aria-expanded":b.open,"aria-controls":"VPSidebarNav",onClick:w[0]||(w[0]=y=>b.$emit("open-menu"))},[w[1]||(w[1]=u("span",{class:"vpi-align-left menu-icon"},null,-1)),u("span",Ko,S(i(e).sidebarMenuLabel||"Menu"),1)],8,Yo)):m("",!0),g(qo,{headers:i(s),navHeight:l.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),Zo=$(Jo,[["__scopeId","data-v-184d83e3"]]);function Qo(){const o=C(!1);function e(){o.value=!0,window.addEventListener("resize",s)}function t(){o.value=!1,window.removeEventListener("resize",s)}function n(){o.value?t():e()}function s(){window.outerWidth>=768&&t()}const a=_e();return K(()=>a.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const xo={},es={class:"VPSwitch",type:"button",role:"switch"},ts={class:"check"},ns={key:0,class:"icon"};function os(o,e){return r(),d("button",es,[u("span",ts,[o.$slots.default?(r(),d("span",ns,[p(o.$slots,"default",{},void 0,!0)])):m("",!0)])])}const ss=$(xo,[["render",os],["__scopeId","data-v-4b902073"]]),as=h({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),n=ke("toggle-appearance",()=>{e.value=!e.value}),s=C("");return Be(()=>{s.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(a,c)=>(r(),_(ss,{title:s.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:v(()=>c[0]||(c[0]=[u("span",{class:"vpi-sun sun"},null,-1),u("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),De=$(as,[["__scopeId","data-v-90ab656d"]]),rs={key:0,class:"VPNavBarAppearance"},is=h({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(r(),d("div",rs,[g(De)])):m("",!0)}}),ls=$(is,[["__scopeId","data-v-61b7e458"]]),Fe=C();let it=!1,we=0;function cs(o){const e=C(!1);if(de){!it&&us(),we++;const t=K(Fe,n=>{var s,a,c;n===o.el.value||(s=o.el.value)!=null&&s.contains(n)?(e.value=!0,(a=o.onFocus)==null||a.call(o)):(e.value=!1,(c=o.onBlur)==null||c.call(o))});Ae(()=>{t(),we--,we||ds()})}return $t(e)}function us(){document.addEventListener("focusin",lt),it=!0,Fe.value=document.activeElement}function ds(){document.removeEventListener("focusin",lt)}function lt(){Fe.value=document.activeElement}const ps={class:"VPMenuLink"},vs=["innerHTML"],hs=h({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,n)=>(r(),d("div",ps,[g(X,{class:T({active:i(oe)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:v(()=>[u("span",{innerHTML:t.item.text},null,8,vs)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ye=$(hs,[["__scopeId","data-v-ef2259e2"]]),fs={class:"VPMenuGroup"},ms={key:0,class:"title"},gs=h({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(r(),d("div",fs,[e.text?(r(),d("p",ms,S(e.text),1)):m("",!0),(r(!0),d(H,null,E(e.items,n=>(r(),d(H,null,["link"in n?(r(),_(ye,{key:0,item:n},null,8,["item"])):m("",!0)],64))),256))]))}}),_s=$(gs,[["__scopeId","data-v-0e873531"]]),ks={class:"VPMenu"},bs={key:0,class:"items"},ys=h({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(r(),d("div",ks,[e.items?(r(),d("div",bs,[(r(!0),d(H,null,E(e.items,n=>(r(),d(H,{key:JSON.stringify(n)},["link"in n?(r(),_(ye,{key:0,item:n},null,8,["item"])):"component"in n?(r(),_(q(n.component),x({key:1,ref_for:!0},n.props),null,16)):(r(),_(_s,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):m("",!0),p(e.$slots,"default",{},void 0,!0)]))}}),$s=$(ys,[["__scopeId","data-v-84e140b8"]]),ws=["aria-expanded","aria-label"],Ps={key:0,class:"text"},Ls=["innerHTML"],Vs={key:1,class:"vpi-more-horizontal icon"},Ss={class:"menu"},Ts=h({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=C(!1),t=C();cs({el:t,onBlur:n});function n(){e.value=!1}return(s,a)=>(r(),d("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:a[1]||(a[1]=c=>e.value=!0),onMouseleave:a[2]||(a[2]=c=>e.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:a[0]||(a[0]=c=>e.value=!e.value)},[s.button||s.icon?(r(),d("span",Ps,[s.icon?(r(),d("span",{key:0,class:T([s.icon,"option-icon"])},null,2)):m("",!0),s.button?(r(),d("span",{key:1,innerHTML:s.button},null,8,Ls)):m("",!0),a[3]||(a[3]=u("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(r(),d("span",Vs))],8,ws),u("div",Ss,[g($s,{items:s.items},{default:v(()=>[p(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),Oe=$(Ts,[["__scopeId","data-v-39bffa16"]]),Is=["href","aria-label","innerHTML"],Ns=h({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=C();G(async()=>{var a;await be();const s=(a=t.value)==null?void 0:a.children[0];s instanceof HTMLElement&&s.className.startsWith("vpi-social-")&&(getComputedStyle(s).maskImage||getComputedStyle(s).webkitMaskImage)==="none"&&s.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const n=k(()=>typeof e.icon=="object"?e.icon.svg:`<span class="vpi-social-${e.icon}"></span>`);return(s,a)=>{var c;return r(),d("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:s.link,"aria-label":(c=s.ariaLabel)!=null?c:typeof s.icon=="string"?s.icon:"",target:"_blank",rel:"noopener",innerHTML:n.value},null,8,Is)}}}),Ms=$(Ns,[["__scopeId","data-v-407d0ee0"]]),Cs={class:"VPSocialLinks"},Hs=h({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(r(),d("div",Cs,[(r(!0),d(H,null,E(e.links,({link:n,icon:s,ariaLabel:a})=>(r(),_(Ms,{key:n,icon:s,link:n,ariaLabel:a},null,8,["icon","link","ariaLabel"]))),128))]))}}),Re=$(Hs,[["__scopeId","data-v-48a3b1ba"]]),As={key:0,class:"group translations"},Bs={class:"trans-title"},Es={key:1,class:"group"},Ds={class:"item appearance"},Fs={class:"label"},Os={class:"appearance-action"},Rs={key:2,class:"group"},js={class:"item social-links"},Us=h({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:n,currentLang:s}=pe({correspondingLink:!0}),a=k(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(c,l)=>a.value?(r(),_(Oe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(n).length&&i(s).label?(r(),d("div",As,[u("p",Bs,S(i(s).label),1),(r(!0),d(H,null,E(i(n),f=>(r(),_(ye,{key:f.link,item:f},null,8,["item"]))),128))])):m("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(r(),d("div",Es,[u("div",Ds,[u("p",Fs,S(i(t).darkModeSwitchLabel||"Appearance"),1),u("div",Os,[g(De)])])])):m("",!0),i(t).socialLinks?(r(),d("div",Rs,[u("div",js,[g(Re,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),Gs=$(Us,[["__scopeId","data-v-3eec47db"]]),Ws=["aria-expanded"],zs=h({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(r(),d("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},t[1]||(t[1]=[u("span",{class:"container"},[u("span",{class:"top"}),u("span",{class:"middle"}),u("span",{class:"bottom"})],-1)]),10,Ws))}}),qs=$(zs,[["__scopeId","data-v-65cc5a44"]]),Xs=["innerHTML"],Ys=h({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,n)=>(r(),_(X,{class:T({VPNavBarMenuLink:!0,active:i(oe)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:v(()=>[u("span",{innerHTML:t.item.text},null,8,Xs)]),_:1},8,["class","href","target","rel","no-icon"]))}}),Ks=$(Ys,[["__scopeId","data-v-ce42cd5c"]]),Js=h({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),n=a=>"component"in a?!1:"link"in a?oe(t.value.relativePath,a.link,!!e.item.activeMatch):a.items.some(n),s=k(()=>n(e.item));return(a,c)=>(r(),_(Oe,{class:T({VPNavBarMenuGroup:!0,active:i(oe)(i(t).relativePath,a.item.activeMatch,!!a.item.activeMatch)||s.value}),button:a.item.text,items:a.item.items},null,8,["class","button","items"]))}}),Zs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Qs=h({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,n)=>i(e).nav?(r(),d("nav",Zs,[n[0]||(n[0]=u("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(r(!0),d(H,null,E(i(e).nav,s=>(r(),d(H,{key:JSON.stringify(s)},["link"in s?(r(),_(Ks,{key:0,item:s},null,8,["item"])):"component"in s?(r(),_(q(s.component),x({key:1,ref_for:!0},s.props),null,16)):(r(),_(Js,{key:2,item:s},null,8,["item"]))],64))),128))])):m("",!0)}}),xs=$(Qs,[["__scopeId","data-v-59bbf754"]]);function ea(o){const{localeIndex:e,theme:t}=L();function n(s){var N,A,I,D,W,z;const a=s.split("."),c=(N=t.value.search)==null?void 0:N.options,l=c&&typeof c=="object",f=l&&((I=(A=c.locales)==null?void 0:A[e.value])==null?void 0:I.translations)||null,b=l&&c.translations||null;let w=f,y=b,P=o;const V=a.pop();for(const Q of a){let F=null;const O=P==null?void 0:P[Q];O&&(F=P=O);const Y=y==null?void 0:y[Q];Y&&(F=y=Y);const M=w==null?void 0:w[Q];M&&(F=w=M),O||(P=F),Y||(y=F),M||(w=F)}return(z=(W=(D=w==null?void 0:w[V])!=null?D:y==null?void 0:y[V])!=null?W:P==null?void 0:P[V])!=null?z:""}return n}const ta=["aria-label"],na={class:"DocSearch-Button-Container"},oa={class:"DocSearch-Button-Placeholder"},We=h({__name:"VPNavBarSearchButton",setup(o){const t=ea({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(r(),d("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[u("span",na,[s[0]||(s[0]=u("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),u("span",oa,S(i(t)("button.buttonText")),1)]),s[1]||(s[1]=u("span",{class:"DocSearch-Button-Keys"},[u("kbd",{class:"DocSearch-Button-Key"}),u("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,ta))}}),sa={class:"VPNavBarSearch"},aa={id:"local-search"},ra={key:1,id:"docsearch"},ia=h({__name:"VPNavBarSearch",setup(o){const e=wt(()=>ue(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1778124232018/files/.vitepress/dist"+u}return u})("./VPLocalSearchBox.BEJmHkAl.js")),[])),t=()=>null,{theme:n}=L(),s=C(!1),a=C(!1);G(()=>{});function c(){s.value||(s.value=!0,setTimeout(l,16))}function l(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||l()},16)}function f(y){const P=y.target,V=P.tagName;return P.isContentEditable||V==="INPUT"||V==="SELECT"||V==="TEXTAREA"}const b=C(!1);Pe("k",y=>{(y.ctrlKey||y.metaKey)&&(y.preventDefault(),b.value=!0)}),Pe("/",y=>{f(y)||(y.preventDefault(),b.value=!0)});const w="local";return(y,P)=>{var V,N;return r(),d("div",sa,[i(w)==="local"?(r(),d(H,{key:0},[b.value?(r(),_(i(e),{key:0,onClose:P[0]||(P[0]=A=>b.value=!1)})):m("",!0),u("div",aa,[g(We,{onClick:P[1]||(P[1]=A=>b.value=!0)})])],64)):i(w)==="algolia"?(r(),d(H,{key:1},[s.value?(r(),_(i(t),{key:0,algolia:(N=(V=i(n).search)==null?void 0:V.options)!=null?N:i(n).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>a.value=!0)},null,8,["algolia"])):m("",!0),a.value?m("",!0):(r(),d("div",ra,[g(We,{onClick:c})]))],64)):m("",!0)])}}}),la=h({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,n)=>i(e).socialLinks?(r(),_(Re,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),ca=$(la,[["__scopeId","data-v-8eba4111"]]),ua=["href","rel","target"],da=["innerHTML"],pa={key:2},va=h({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:n}=Z(),{currentLang:s}=pe(),a=k(()=>{var f;return typeof t.value.logoLink=="string"?t.value.logoLink:(f=t.value.logoLink)==null?void 0:f.link}),c=k(()=>{var f;return typeof t.value.logoLink=="string"||(f=t.value.logoLink)==null?void 0:f.rel}),l=k(()=>{var f;return typeof t.value.logoLink=="string"||(f=t.value.logoLink)==null?void 0:f.target});return(f,b)=>{var w;return r(),d("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(n)}])},[u("a",{class:"title",href:(w=a.value)!=null?w:i(Ee)(i(s).link),rel:c.value,target:l.value},[p(f.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(r(),_(fe,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):m("",!0),i(t).siteTitle?(r(),d("span",{key:1,innerHTML:i(t).siteTitle},null,8,da)):i(t).siteTitle===void 0?(r(),d("span",pa,S(i(e).title),1)):m("",!0),p(f.$slots,"nav-bar-title-after",{},void 0,!0)],8,ua)],2)}}}),ha=$(va,[["__scopeId","data-v-523c6416"]]),fa={class:"items"},ma={class:"title"},ga=h({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:n}=pe({correspondingLink:!0});return(s,a)=>i(t).length&&i(n).label?(r(),_(Oe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:v(()=>[u("div",fa,[u("p",ma,S(i(n).label),1),(r(!0),d(H,null,E(i(t),c=>(r(),_(ye,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),_a=$(ga,[["__scopeId","data-v-828bf90e"]]),ka={class:"wrapper"},ba={class:"container"},ya={class:"title"},$a={class:"content"},wa={class:"content-body"},Pa=h({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=et(),{isHome:n,hasSidebar:s}=Z(),a=C({});return Be(()=>{a.value={"has-sidebar":s.value,home:n.value,top:t.value===0,"screen-open":e.isScreenOpen}}),(c,l)=>(r(),d("div",{class:T(["VPNavBar",a.value])},[u("div",ka,[u("div",ba,[u("div",ya,[g(ha,null,{"nav-bar-title-before":v(()=>[p(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[p(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),u("div",$a,[u("div",wa,[p(c.$slots,"nav-bar-content-before",{},void 0,!0),g(ia,{class:"search"}),g(xs,{class:"menu"}),g(_a,{class:"translations"}),g(ls,{class:"appearance"}),g(ca,{class:"social-links"}),g(Gs,{class:"extra"}),p(c.$slots,"nav-bar-content-after",{},void 0,!0),g(qs,{class:"hamburger",active:c.isScreenOpen,onClick:l[0]||(l[0]=f=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),l[1]||(l[1]=u("div",{class:"divider"},[u("div",{class:"divider-line"})],-1))],2))}}),La=$(Pa,[["__scopeId","data-v-93e81c36"]]),Va={key:0,class:"VPNavScreenAppearance"},Sa={class:"text"},Ta=h({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(n,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(r(),d("div",Va,[u("p",Sa,S(i(t).darkModeSwitchLabel||"Appearance"),1),g(De)])):m("",!0)}}),Ia=$(Ta,[["__scopeId","data-v-941483d9"]]),Na=["innerHTML"],Ma=h({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=ke("close-screen");return(t,n)=>(r(),_(X,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:v(()=>[u("span",{innerHTML:t.item.text},null,8,Na)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ca=$(Ma,[["__scopeId","data-v-d8f476a5"]]),Ha=["innerHTML"],Aa=h({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=ke("close-screen");return(t,n)=>(r(),_(X,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:v(()=>[u("span",{innerHTML:t.item.text},null,8,Ha)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),ct=$(Aa,[["__scopeId","data-v-61bcaf81"]]),Ba={class:"VPNavScreenMenuGroupSection"},Ea={key:0,class:"title"},Da=h({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(r(),d("div",Ba,[e.text?(r(),d("p",Ea,S(e.text),1)):m("",!0),(r(!0),d(H,null,E(e.items,n=>(r(),_(ct,{key:n.text,item:n},null,8,["item"]))),128))]))}}),Fa=$(Da,[["__scopeId","data-v-a1d97f48"]]),Oa=["aria-controls","aria-expanded"],Ra=["innerHTML"],ja=["id"],Ua={key:0,class:"item"},Ga={key:1,class:"item"},Wa={key:2,class:"group"},za=h({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=C(!1),n=k(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(a,c)=>(r(),d("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[u("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[u("span",{class:"button-text",innerHTML:a.text},null,8,Ra),c[0]||(c[0]=u("span",{class:"vpi-plus button-icon"},null,-1))],8,Oa),u("div",{id:n.value,class:"items"},[(r(!0),d(H,null,E(a.items,l=>(r(),d(H,{key:JSON.stringify(l)},["link"in l?(r(),d("div",Ua,[g(ct,{item:l},null,8,["item"])])):"component"in l?(r(),d("div",Ga,[(r(),_(q(l.component),x({ref_for:!0},l.props,{"screen-menu":""}),null,16))])):(r(),d("div",Wa,[g(Fa,{text:l.text,items:l.items},null,8,["text","items"])]))],64))),128))],8,ja)],2))}}),qa=$(za,[["__scopeId","data-v-23ebbd87"]]),Xa={key:0,class:"VPNavScreenMenu"},Ya=h({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,n)=>i(e).nav?(r(),d("nav",Xa,[(r(!0),d(H,null,E(i(e).nav,s=>(r(),d(H,{key:JSON.stringify(s)},["link"in s?(r(),_(Ca,{key:0,item:s},null,8,["item"])):"component"in s?(r(),_(q(s.component),x({key:1,ref_for:!0},s.props,{"screen-menu":""}),null,16)):(r(),_(qa,{key:2,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),Ka=h({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,n)=>i(e).socialLinks?(r(),_(Re,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),Ja={class:"list"},Za=h({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=pe({correspondingLink:!0}),n=C(!1);function s(){n.value=!n.value}return(a,c)=>i(e).length&&i(t).label?(r(),d("div",{key:0,class:T(["VPNavScreenTranslations",{open:n.value}])},[u("button",{class:"title",onClick:s},[c[0]||(c[0]=u("span",{class:"vpi-languages icon lang"},null,-1)),ne(" "+S(i(t).label)+" ",1),c[1]||(c[1]=u("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),u("ul",Ja,[(r(!0),d(H,null,E(i(e),l=>(r(),d("li",{key:l.link,class:"item"},[g(X,{class:"link",href:l.link},{default:v(()=>[ne(S(l.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),Qa=$(Za,[["__scopeId","data-v-5d278ebd"]]),xa={class:"container"},er=h({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=C(null),t=tt(de?document.body:null);return(n,s)=>(r(),_(Ce,{name:"fade",onEnter:s[0]||(s[0]=a=>t.value=!0),onAfterLeave:s[1]||(s[1]=a=>t.value=!1)},{default:v(()=>[n.open?(r(),d("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[u("div",xa,[p(n.$slots,"nav-screen-content-before",{},void 0,!0),g(Ya,{class:"menu"}),g(Qa,{class:"translations"}),g(Ia,{class:"appearance"}),g(Ka,{class:"social-links"}),p(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),tr=$(er,[["__scopeId","data-v-73bcd42b"]]),nr={key:0,class:"VPNav"},or=h({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=Qo(),{frontmatter:s}=L(),a=k(()=>s.value.navbar!==!1);return nt("close-screen",t),ge(()=>{de&&document.documentElement.classList.toggle("hide-nav",!a.value)}),(c,l)=>a.value?(r(),d("header",nr,[g(La,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":v(()=>[p(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[p(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[p(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[p(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g(tr,{open:i(e)},{"nav-screen-content-before":v(()=>[p(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[p(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),sr=$(or,[["__scopeId","data-v-b47d639c"]]),ar=["role","tabindex"],rr={key:1,class:"items"},ir=h({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:s,isActiveLink:a,hasActiveLink:c,hasChildren:l,toggle:f}=ln(k(()=>e.item)),b=k(()=>l.value?"section":"div"),w=k(()=>s.value?"a":"div"),y=k(()=>l.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=k(()=>s.value?void 0:"button"),V=k(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":a.value},{"has-active":c.value}]);function N(I){"key"in I&&I.key!=="Enter"||!e.item.link&&f()}function A(){e.item.link&&f()}return(I,D)=>{const W=J("VPSidebarItem",!0);return r(),_(q(b.value),{class:T(["VPSidebarItem",V.value])},{default:v(()=>[I.item.text?(r(),d("div",x({key:0,class:"item",role:P.value},Pt(I.item.items?{click:N,keydown:N}:{},!0),{tabindex:I.item.items&&0}),[D[1]||(D[1]=u("div",{class:"indicator"},null,-1)),I.item.link?(r(),_(X,{key:0,tag:w.value,class:"link",href:I.item.link,rel:I.item.rel,target:I.item.target},{default:v(()=>[(r(),_(q(y.value),{class:"text",innerHTML:I.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(r(),_(q(y.value),{key:1,class:"text",innerHTML:I.item.text},null,8,["innerHTML"])),I.item.collapsed!=null&&I.item.items&&I.item.items.length?(r(),d("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:A,onKeydown:Lt(A,["enter"]),tabindex:"0"},D[0]||(D[0]=[u("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):m("",!0)],16,ar)):m("",!0),I.item.items&&I.item.items.length?(r(),d("div",rr,[I.depth<5?(r(!0),d(H,{key:0},E(I.item.items,z=>(r(),_(W,{key:z.text,item:z,depth:I.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),lr=$(ir,[["__scopeId","data-v-b1557fcf"]]),cr=h({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=C(!0);let t=null;return G(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Vt(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,s)=>(r(!0),d(H,null,E(n.items,a=>(r(),d("div",{key:a.text,class:T(["group",{"no-transition":e.value}])},[g(lr,{item:a,depth:0},null,8,["item"])],2))),128))}}),ur=$(cr,[["__scopeId","data-v-c211cde9"]]),dr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},pr=h({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=Z(),n=o,s=C(null),a=tt(de?document.body:null);K([n,s],()=>{var l;n.open?(a.value=!0,(l=s.value)==null||l.focus()):a.value=!1},{immediate:!0,flush:"post"});const c=C(0);return K(e,()=>{c.value+=1},{deep:!0}),(l,f)=>i(t)?(r(),d("aside",{key:0,class:T(["VPSidebar",{open:l.open}]),ref_key:"navEl",ref:s,onClick:f[0]||(f[0]=Le(()=>{},["stop"]))},[f[2]||(f[2]=u("div",{class:"curtain"},null,-1)),u("nav",dr,[f[1]||(f[1]=u("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),p(l.$slots,"sidebar-nav-before",{},void 0,!0),(r(),_(ur,{items:i(e),key:c.value},null,8,["items"])),p(l.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),vr=$(pr,[["__scopeId","data-v-f106dd72"]]),hr=h({__name:"VPSkipLink",setup(o){const{theme:e}=L(),t=_e(),n=C();K(()=>t.path,()=>n.value.focus());function s({target:a}){const c=document.getElementById(decodeURIComponent(a.hash).slice(1));if(c){const l=()=>{c.removeAttribute("tabindex"),c.removeEventListener("blur",l)};c.setAttribute("tabindex","-1"),c.addEventListener("blur",l),c.focus(),window.scrollTo(0,0)}}return(a,c)=>(r(),d(H,null,[u("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s},S(i(e).skipToContentLabel||"Skip to content"),1)],64))}}),fr=$(hr,[["__scopeId","data-v-b96917a7"]]),mr=h({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=rn();cn({closeSidebar:n});const{frontmatter:s}=L(),a=St(),c=k(()=>!!a["home-hero-image"]);return nt("hero-image-slot-exists",c),(l,f)=>{const b=J("Content");return i(s).layout!==!1?(r(),d("div",{key:0,class:T(["Layout",i(s).pageClass])},[p(l.$slots,"layout-top",{},void 0,!0),g(fr),g(Ft,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),g(sr,null,{"nav-bar-title-before":v(()=>[p(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[p(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[p(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[p(l.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[p(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[p(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(Zo,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(vr,{open:i(e)},{"sidebar-nav-before":v(()=>[p(l.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[p(l.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(Eo,null,{"page-top":v(()=>[p(l.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[p(l.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[p(l.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[p(l.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[p(l.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[p(l.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[p(l.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[p(l.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[p(l.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[p(l.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[p(l.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[p(l.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[p(l.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[p(l.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[p(l.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[p(l.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[p(l.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[p(l.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[p(l.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[p(l.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[p(l.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[p(l.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[p(l.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(jo),p(l.$slots,"layout-bottom",{},void 0,!0)],2)):(r(),_(b,{key:1}))}}}),gr=$(mr,[["__scopeId","data-v-c1ec0855"]]),ze={Layout:gr,enhanceApp:({app:o})=>{o.component("Badge",Bt)}},_r=["data-href"],kr={key:0,"pointer-events-none":"",absolute:"",left:"1/1","top-0":"","bottom-0":"",flex:"","items-center":"","pl-4px":""},qe=h({__name:"DownloadText",props:{href:{},name:{},type:{default:"application/vnd.android.package-archive"}},setup(o){const e=o,t=R(!1),n=async()=>{if(t.value)return;t.value=!0,ue(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1778124232018/files/.vitepress/dist"+u}return u})("./FileSaver.min.BxHcgHsl.js")).then(a=>a.F),[]);const s=`gkd-${e.name}`;try{const a=await fetch(e.href).then(l=>l.arrayBuffer()).then(l=>new File([l],s,{type:e.type})),{saveAs:c}=await ue(async()=>{const{saveAs:l}=await import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1778124232018/files/.vitepress/dist"+u}return u})("./FileSaver.min.BxHcgHsl.js")).then(f=>f.F);return{saveAs:l}},[]);c(a,s)}finally{t.value=!1}};return(s,a)=>(r(),d("a",{relative:"",class:T({"cursor-progress":t.value,"cursor-pointer":!t.value}),onClick:n,"data-href":s.href},[u("span",{class:T({"opacity-50":t.value})},S(s.name),3),t.value?(r(),d("div",kr,a[0]||(a[0]=[u("svg",{"animate-spin":"","size-16px":"",viewBox:"0 0 16 16",fill:"none"},[u("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor","stroke-opacity":"0.25","stroke-width":"2","vector-effect":"non-scaling-stroke"}),u("path",{d:"M15 8a7.002 7.002 0 00-7-7",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","vector-effect":"non-scaling-stroke"})],-1)]))):m("",!0)],10,_r))}}),br={name:"1.12.0-beta.8",href:"https://registry.npmmirror.com/@gkd-kit/app-beta/0.0.50/files/dist/gkd-v1.12.0-beta.8.wasm",date:"2026-04-29",filename:"v1.12.0-beta.8.apk",fileSizeDesc:"3.21MB"},yr={name:"1.11.6",href:"https://registry.npmmirror.com/@gkd-kit/app/2.0.39/files/dist/gkd-v1.11.6.wasm",date:"2025-12-14",filename:"v1.11.6.apk",fileSizeDesc:"3.87MB"},$r=10,wr=async(o,e)=>{let t=$r;for(;;)try{return await fetch(o,e)}catch(n){if(t--,t<=0)throw n;await new Promise(s=>setTimeout(s,500))}},Pr=o=>o<1024?o+"B":o<1024*1024?(o/1024).toFixed(2)+"KB":o<1024*1024*1024?(o/(1024*1024)).toFixed(2)+"MB":(o/(1024*1024*1024)).toFixed(2)+"GB",Lr=async o=>{const e=await wr(o),t=await e.json();return{name:t.versionName,href:new URL(t.downloadUrl,e.url).href,date:t.date,filename:"v"+t.versionName+".apk",fileSizeDesc:Pr(t.fileSize)}},Xe=async o=>Lr(o?"https://registry.npmmirror.com/@gkd-kit/app/latest/files/index.json":"https://registry.npmmirror.com/@gkd-kit/app-beta/latest/files/index.json"),ae=R(yr),re=R(br);let Ye=!1;const Vr=async()=>{Ye||(Ye=!0,await Promise.all([Xe(!0).then(o=>{ae.value=o}),Xe(!1).then(o=>{re.value=o})]))},Sr={key:0},Tr=h({__name:"ApkTable",setup(o){return G(Vr),(e,t)=>(r(),d("table",null,[t[4]||(t[4]=u("thead",null,[u("tr",null,[u("th",null,"版本"),u("th",null,"下载"),u("th",null,"大小"),u("th",null,"日期"),u("th",null,"备注")])],-1)),u("tbody",null,[u("tr",null,[t[0]||(t[0]=u("td",null,"正式版",-1)),u("td",null,[g(qe,{href:i(ae).href,name:i(ae).filename},null,8,["href","name"])]),u("td",null,S(i(ae).fileSizeDesc),1),u("td",null,S(i(ae).date),1),t[1]||(t[1]=u("td",null,"稳定版",-1))]),i(re).filename!==i(ae).filename?(r(),d("tr",Sr,[t[2]||(t[2]=u("td",null,"测试版",-1)),u("td",null,[g(qe,{href:i(re).href,name:i(re).filename},null,8,["href","name"])]),u("td",null,S(i(re).fileSizeDesc),1),u("td",null,S(i(re).date),1),t[3]||(t[3]=u("td",null,"更新快不稳定",-1))])):m("",!0)])]))}}),Ir=h((o,e)=>()=>{var t,n;return(n=(t=e.slots).default)==null?void 0:n.call(t)}),ut=o=>(o.loader(),h((e,t)=>{const n=R();return n.value||o.loader().then(s=>{n.value=s}),()=>n.value?U(n.value,e,t.slots):U(o.placeholder,e,t.slots)},{props:o.props})),dt=["alt","height","imgProps","previewedImgProps","lazy","intersectionObserverOptions","objectFit","previewSrc","fallbackSrc","width","src","previewDisabled","loadDescription","onError","onLoad","theme","themeOverrides","builtinThemeOverrides","onPreviewPrev","onPreviewNext","showToolbar","showToolbarTooltip","renderToolbar"],Nr=h((o,e)=>()=>U("div",{class:"n-image"},U("img",o,e.slots)),{props:dt}),pt=ut({loader:()=>ue(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1778124232018/files/.vitepress/dist"+u}return u})("./index.BJCOYsj9.js")),[]).then(o=>o.NImage),placeholder:Nr,props:dt}),vt=ut({loader:()=>ue(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1778124232018/files/.vitepress/dist"+u}return u})("./index.BJCOYsj9.js")),[]).then(o=>o.NImageGroup),placeholder:Ir}),Mr={NImage:pt,NImageGroup:vt},Cr="https://registry.npmmirror.com/@gkd-kit/assets/0.0.21/files/assets/",Hr=[{name:"0001.png",width:816,height:1808},{name:"0002.png",width:613,height:1363},{name:"0003.png",width:613,height:1363},{name:"0004.png",width:613,height:1363},{name:"0005.png",width:613,height:1363},{name:"0006.png",width:613,height:1363},{name:"0007.png",width:613,height:1363},{name:"0008.png",width:613,height:1363},{name:"0009.png",width:613,height:1363},{name:"0010.png",width:613,height:1363},{name:"0011.png",width:613,height:1363},{name:"0012.png",width:613,height:1363},{name:"0013.png",width:1080,height:2400},{name:"0014.png",width:1080,height:2400},{name:"0015.png",width:1080,height:2400},{name:"0016.png",width:1080,height:2400},{name:"0017.png",width:1080,height:2400},{name:"0018.png",width:1080,height:2400},{name:"0019.gif",width:536,height:1204},{name:"0020.png",width:927,height:927},{name:"0021.png",width:927,height:927},{name:"0022.png",width:927,height:927},{name:"0023.png",width:927,height:927},{name:"0024.png",width:927,height:927},{name:"0025.png",width:445,height:75},{name:"0026.png",width:816,height:1814},{name:"0027.png",width:816,height:1808},{name:"0028.png",width:816,height:1808},{name:"0029.png",width:816,height:1808},{name:"0030.png",width:816,height:1808},{name:"0031.png",width:816,height:1808},{name:"0032.png",width:816,height:1808},{name:"0033.png",width:816,height:1808},{name:"0034.png",width:1920,height:1080},{name:"0035.png",width:810,height:1808},{name:"0036.png",width:810,height:1808},{name:"0037.png",width:816,height:1808},{name:"0038.jpg",width:1280,height:2800},{name:"0039.jpg",width:1200,height:2670},{name:"0040.jpg",width:1080,height:2400},{name:"0041.jpg",width:1220,height:2712},{name:"0042.jpg",width:1080,height:2340},{name:"0043.jpg",width:1080,height:2340},{name:"0044.jpg",width:1080,height:2340},{name:"0045.jpg",width:1080,height:2340},{name:"0046.png",width:1e3,height:1080},{name:"0047.png",width:1e3,height:1080},{name:"0048.png",width:1280,height:2772},{name:"0049.png",width:1280,height:2772},{name:"0050.png",width:1280,height:2772},{name:"0051.png",width:1280,height:2772},{name:"0052.png",width:1280,height:2772},{name:"0053.png",width:1280,height:2772},{name:"0054.png",width:1280,height:2772},{name:"0055.png",width:1280,height:2772}],ht=o=>o.startsWith("https:")?o:Cr+o,ft=Tt({}),Ar=async o=>{const e=new Image;e.src=o,await new Promise((t,n)=>{e.onload=()=>t(),e.onerror=n}),ft[o]=!0},Br=o=>{Ar(o);const e=Hr.find(t=>o.endsWith(t.name));return e?"data:image/svg+xml,"+encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="${e.width}" height="${e.height}" viewBox="0 0 ${e.width} ${e.height}"></svg>`):(console.error(`Image size not found for ${o}`),o)},mt=h((o,e)=>{const t=k(()=>ht(o.src)),n=k(()=>ft[t.value]?t.value:Br(t.value));return()=>U(pt,{src:n.value,"data-src":t.value,...e.attrs})},{props:["src"]}),Er=h({__name:"IdentifierField",setup(o){const e=R(""),t=/^[_a-zA-Z][a-zA-Z0-9_]*$/,n=It(e,300),s=k(()=>n.value!=="null"&&n.value!=="true"&&n.value!=="false"&&t.test(n.value));return(a,c)=>(r(),d("div",null,[ot(u("input",{placeholder:"请输入标识符测试是否合法",type:"text","onUpdate:modelValue":c[0]||(c[0]=l=>e.value=l),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),[[Nt,e.value]]),u("div",{"mt-4px":"",class:T({"color-red":!s.value,"opacity-0":!i(n)||!e.value})},S(s.value?"合法标识符✅":"非法标识符❌"),3)]))}}),Dr=h({__name:"ImageTable",props:{images:{}},setup(o){return(e,t)=>(r(),d("table",null,[u("tbody",null,[g(i(vt),null,{default:v(()=>[(r(!0),d(H,null,E(e.images,(n,s)=>(r(),d("tr",{key:s},[(r(!0),d(H,null,E(n,a=>(r(),d("td",{key:a},[g(i(mt),{src:i(ht)(a)},null,8,["src"])]))),128))]))),128))]),_:1})])]))}}),Fr=h({__name:"GkdOnly",setup(o){const e=()=>Reflect.get(globalThis,"gkd");return(t,n)=>{const s=J("ClientOnly");return r(),_(s,null,{default:v(()=>[e()?p(t.$slots,"default",{key:0}):m("",!0)]),_:3})}}}),Or=h({__name:"MobileOnly",setup(o){const e=()=>globalThis.document&&"ontouchstart"in globalThis.document.documentElement;return(t,n)=>{const s=J("ClientOnly");return r(),_(s,null,{default:v(()=>[e()?p(t.$slots,"default",{key:0}):m("",!0)]),_:3})}}}),Rr={...Mr,GImg:mt,ImageTable:Dr,IdentifierField:Er,ApkTable:Tr,GkdOnly:Fr,MobileOnly:Or},jr={fixed:"","z-100":"",class:"BodyScrollbar"},Ke=2,Ur=h({__name:"BodyScrollbar",setup(o){const e=R(0),t=R(0),n=M=>{window.scroll({left:M})},s=M=>{window.scroll({top:M})};se("scroll",()=>{e.value=window.scrollX,t.value=window.scrollY});const{height:a,width:c}=xe(),l=Mt(document.body),f=k(()=>l.height.value>a.value+Ke),b=k(()=>{const B=l.height.value;return a.value/B*a.value}),w=k(()=>{const M=l.height.value,B=b.value;return t.value/(M-a.value)*(a.value-B)}),y=k(()=>f.value?{transform:`translateY(${w.value}px)`,height:`${b.value}px`}:{}),P=async M=>{const B=b.value*.9*(M.clientY<b.value+w.value?-1:1),j=l.height.value,ee=j,te=a.value/ee*a.value;s(t.value+B/(a.value-te)*(j-a.value))},V=R(!1);let N;const A=M=>{N=M,V.value=!0};se("pointermove",M=>{if(!N)return;const B=M.clientY-N.clientY;N=M;const j=l.height.value,ee=j,te=a.value/ee*a.value;s(t.value+B/(a.value-te)*(j-a.value))}),se("pointerup",()=>{N=void 0,V.value=!1});const I=k(()=>l.width.value>c.value+Ke),D=k(()=>{const B=l.width.value;return c.value/B*c.value}),W=k(()=>{const M=l.width.value,B=D.value;return e.value/(M-c.value)*(c.value-B)}),z=k(()=>I.value?{transform:`translateX(${W.value}px)`,width:`${D.value}px`}:{}),Q=M=>{const B=D.value*.9*(M.clientX<D.value+W.value?-1:1),j=l.width.value,ee=j,te=c.value/ee*c.value,$e=e.value+B/(c.value-te)*(j-c.value);n($e)},F=R(!1);let O;const Y=M=>{O=M,F.value=!0};return se("pointermove",M=>{if(!O)return;const B=M.clientX-O.clientX;O=M;const j=l.width.value,ee=j,te=c.value/ee*c.value,$e=e.value+B/(c.value-te)*(j-c.value);n($e)}),se("pointerup",()=>{O=void 0,F.value=!1}),se("selectstart",M=>{(O||N)&&M.preventDefault()}),(M,B)=>(r(),d("div",jr,[ot(u("div",{"scrollbar-y":"",fixed:"","right-2px":"","top-0":"","bottom-0":"","w-8px":"",onPointerdown:A,onClick:P},[u("div",{onClick:B[0]||(B[0]=Le(()=>{},["stop"])),"w-full":"",bg:"#909399","opacity-30":"","hover:opacity":"50",style:he(y.value),class:T({"opacity-50":V.value})},null,6)],544),[[Ct,f.value]]),I.value?(r(),d("div",{key:0,"scrollbar-x":"",fixed:"","bottom-2px":"","left-0":"","right-0":"","h-8px":"",onPointerdown:Y,onClick:Q},[u("div",{onClick:B[1]||(B[1]=Le(()=>{},["stop"])),"h-full":"",bg:"#909399","opacity-30":"","hover:opacity":"50",style:he(z.value),class:T({"opacity-50":F.value})},null,6)],32)):m("",!0)]))}}),Gr=h(()=>{const o=R(!1);return G(()=>{const e="ontouchstart"in document.documentElement;o.value=!e,e&&(document.body.classList.add("mobile"),document.documentElement.classList.add("mobile"))}),()=>o.value?U(Ht,{to:document.body},U(Ur)):void 0}),Wr=o=>{const e=o.getBoundingClientRect(),t=window.innerHeight*.15;return e.top-t>=0&&e.bottom+t<=window.innerHeight},zr=()=>{const o=document.images;for(let e=0;e<o.length;e++)if(!o[e].complete)return!1;return!0},me=(o=0)=>new Promise(e=>setTimeout(e,o));let le,Me=!0;setTimeout(()=>{Me=!1},1e3);const je=async o=>{if(location.hash&&(o!=null||(o=document.querySelector(location.hash)||void 0)),!o)return;const e="animate-hash-hint";le&&le.classList.remove(e),o.classList.contains(e)&&(o.classList.remove(e),await me(25)),o.classList.add(e),le=o;const t=500*2*(Me?5:2);Me=!1,await me(t),o.classList.remove(e),le===o&&(le=void 0)},qr=()=>new URLSearchParams(location.search).get("r")||"",Je=()=>{var e;const o=document.getElementById("hidden-layout-style");o&&((e=o.parentElement)==null||e.removeChild(o))},Xr=async o=>{const e=location.href.substring(location.origin.length),t=async n=>{history.replaceState(null,"",n),await o.go(n)};if(location.pathname.startsWith("/selector/"))location.pathname.at(-1)==="/"?t("/guide/selector"):t(location.pathname.replace("/selector/","/guide/"));else if(location.pathname==="/subscription/"||location.pathname==="/subscription")await t("/guide/subscription");else if(location.pathname==="/"){const n=qr(),s=async a=>{await o.go(a),Je()};n==="1"?s("/guide/snapshot#how-to-upload"):n==="2"?s("/guide/faq#restriction"):n==="3"?s("/guide/faq#adb_failed"):n==="4"?s("/guide/faq#shizuku"):n==="5"?s("/guide/subscription"):n==="6"?s("/guide/faq#power"):n==="7"?s("/guide/faq#exact-activity"):n==="8"?s("/guide/faq#forced-tap"):n==="9"?s("/guide/faq#work-profile"):n==="10"?s("/guide/sponsor"):n==="11"?s("/guide/privacy"):n==="12"?s("/guide/terms"):n==="13"?s("/guide/#install"):n==="14"?s("/guide/faq#shizuku"):n==="15"?s("/guide/snapshot#by-screenshot"):Je()}else e==="/guide/faq#fail_setting_secure_settings"&&(location.hash="adb_failed");if(await be(),location.hash){const n=await(async()=>{const s=location.href;let a=0;for(;a<25;){if(s!==location.href)return;const c=document.querySelector(location.hash);if(c)return c;a++,await me(100)}})();if(n){if(!Wr(n)){let s=0;for(;s<25&&!zr();)await new Promise(c=>setTimeout(c,100)),s++;const a=document.querySelector(`a.header-anchor[href="${location.hash}"]`);a?a.click():n.scrollIntoView({behavior:"smooth",block:"center"})}je(n)}}};window.addEventListener("hashchange",async()=>{je()});const Yr=h(()=>{const o=At();return G(()=>{Xr(o),o.onAfterPageLoad=()=>{be().then(async()=>{await me(100),je()})}}),()=>{}}),Jr={extends:ze,Layout(){return U(H,null,[U(ze.Layout),U(Gr),U(Yr)])},enhanceApp({app:o}){Object.entries(Rr).forEach(([e,t])=>{o.component(e,t)})}};export{Jr as R,ea as c,L as u};
@@ -1 +0,0 @@
1
- import{_ as t,c as o,o as d,aq as a}from"./chunks/framework.C9O3MI31.js";const g=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md","lastUpdated":1778124209000}'),l={name:"guide/example.md"};function i(r,e,c,u,n,p){return d(),o("div",null,e[0]||(e[0]=[a('<h1 id="title" tabindex="-1">选择示例 <a class="header-anchor" href="#title" aria-label="Permalink to “选择示例”">​</a></h1><p>一些选择器及其相关作用说明</p><h2 id="e-1" tabindex="-1">选择根节点 <a class="header-anchor" href="#e-1" aria-label="Permalink to “选择根节点”">​</a></h2><ul><li><code>[parent=null]</code></li><li><code>[depth=0]</code></li></ul><h2 id="e-2" tabindex="-1">选择子节点 <a class="header-anchor" href="#e-2" aria-label="Permalink to “选择子节点”">​</a></h2><p>选择一个 <code>ImageView</code> 节点, 并要求其父节点是 <code>LinearLayout</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=TGluZWFyTGF5b3V0ID4gSW1hZ2VWaWV3" target="_blank" rel="noreferrer"><code>LinearLayout &gt; ImageView</code></a></p><p>选择一个 <code>ImageView</code> 节点, 并要求其父节点的父节点是 <code>ViewGroup[vid=&quot;avatar_layout&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0iYXZhdGFyX2xheW91dCJdID4yIEltYWdlVmlldw" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;avatar_layout&quot;] &gt;2 ImageView</code></a></p><p>选择一个 <code>ImageView[vid=&quot;search_icon&quot;]</code> 节点, 并要求祖先节点是 <code>FrameLayout[vid=&quot;content_layout&quot;]</code>, <code>n</code>可以是任意正整数, 下同</p><p><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb250ZW50X2xheW91dCJdIEltYWdlVmlld1t2aWQ9InNlYXJjaF9pY29uIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;content_layout&quot;] &gt;n ImageView[vid=&quot;search_icon&quot;]</code></a></p><h2 id="e-3" tabindex="-1">末尾子节点 <a class="header-anchor" href="#e-3" aria-label="Permalink to “末尾子节点”">​</a></h2><p>选择一个 <code>ImageView</code> 节点, 并要求是其父节点是最后一个子节点</p><p><a href="https://i.gkd.li/i/16076188?gkd=SW1hZ2VWaWV3W2luZGV4PXBhcmVudC5jaGlsZENvdW50Lm1pbnVzKDEpXQ" target="_blank" rel="noreferrer"><code>ImageView[index=parent.childCount.minus(1)]</code></a></p><h2 id="e-4" tabindex="-1">选择兄弟节点 <a class="header-anchor" href="#e-4" aria-label="Permalink to “选择兄弟节点”">​</a></h2><p>选择一个 <code>LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code> 节点, 并要求其兄弟节点是 <code>ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2M9IuS4quS6uuS4u-mhte-8jOaMiemSriJdICsgTGluZWFyTGF5b3V0W2Rlc2M9IuaQnOe0ouagj--8jOaMiemSriJd" target="_blank" rel="noreferrer"><code>ViewGroup[desc=&quot;个人主页,按钮&quot;] + LinearLayout[desc=&quot;搜索栏,按钮&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QExpbmVhckxheW91dFtkZXNjPSLmkJzntKLmoI_vvIzmjInpkq4iXSAtIFZpZXdHcm91cFtkZXNjPSLkuKrkurrkuLvpobXvvIzmjInpkq4iXQ" target="_blank" rel="noreferrer"><code>@LinearLayout[desc=&quot;搜索栏,按钮&quot;] - ViewGroup[desc=&quot;个人主页,按钮&quot;]</code></a></li></ul><p>选择一个 <code>[text$=&quot;顶级入耳&quot;]</code> 节点, 并要求其兄弟节点是 <code>[vid=&quot;cover_layout&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=W3ZpZD0iY292ZXJfbGF5b3V0Il0gK24gW3RleHQkPSLpobbnuqflhaXogLMiXQ" target="_blank" rel="noreferrer"><code>[vid=&quot;cover_layout&quot;] +n [text$=&quot;顶级入耳&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0JD0i6aG257qn5YWl6ICzIl0gLW4gW3ZpZD0iY292ZXJfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>@[text$=&quot;顶级入耳&quot;] -n [vid=&quot;cover_layout&quot;]</code></a></li></ul><h2 id="e-5" tabindex="-1">选择父节点 <a class="header-anchor" href="#e-5" aria-label="Permalink to “选择父节点”">​</a></h2><p>选择一个 <code>ViewGroup[desc^=&quot;直播&quot;]</code> 节点, 并要求其子节点是 <code>FrameLayout[vid=&quot;cover_layout&quot;]</code> 或 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 或 <code>TextView[vid=&quot;title_v2&quot;]</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=RnJhbWVMYXlvdXRbdmlkPSJjb3Zlcl9sYXlvdXQiXSA8IFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>FrameLayout[vid=&quot;cover_layout&quot;] &lt; ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJdIDwzIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>ViewGroup[vid=&quot;live_text_container&quot;] &lt;3 ViewGroup[desc^=&quot;直播&quot;]</code></a></li><li><a href="https://i.gkd.li/i/16076188?gkd=VGV4dFZpZXdbdmlkPSJ0aXRsZV92MiJdIDxuIFZpZXdHcm91cFtkZXNjXj0i55u05pKtIl0" target="_blank" rel="noreferrer"><code>TextView[vid=&quot;title_v2&quot;] &lt;n ViewGroup[desc^=&quot;直播&quot;]</code></a></li></ul><h2 id="e-6" tabindex="-1">在指定节点的子节点内查找指定选择器 <a class="header-anchor" href="#e-6" aria-label="Permalink to “在指定节点的子节点内查找指定选择器”">​</a></h2><p>一般在末尾节点支持 <a href="/guide/optimize#fast-query">快速查询</a> 的情况下使用</p><p>在节点 <code>ViewGroup[vid=&quot;live_text_container&quot;]</code> 的子节点内查找 <code>[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=QFt0ZXh0PSLnm7Tmkq0iXSA8PG4gVmlld0dyb3VwW3ZpZD0ibGl2ZV90ZXh0X2NvbnRhaW5lciJd" target="_blank" rel="noreferrer"><code>@[text=&quot;直播&quot;] &lt;&lt;n ViewGroup[vid=&quot;live_text_container&quot;]</code></a></p><p>在节点 <code>FrameLayout[vid=&quot;swipe_layout&quot;]</code> 的子节点内查找 <code>LinearLayout &gt; @[text=&quot;直播&quot;]</code></p><p><a href="https://i.gkd.li/i/16076188?gkd=TGluZWFyTGF5b3V0ID4gQFt0ZXh0PSLnm7Tmkq0iXSA8PG4gW3ZpZD0ic3dpcGVfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>LinearLayout &gt; @[text=&quot;直播&quot;] &lt;&lt;n [vid=&quot;swipe_layout&quot;]</code></a></p><h2 id="e-7" tabindex="-1">组合使用 <a class="header-anchor" href="#e-7" aria-label="Permalink to “组合使用”">​</a></h2><p><a href="https://i.gkd.li/i/16076188?gkd=SW1hZ2VWaWV3IDwgRnJhbWVMYXlvdXQgPG4gVmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXSAtIFZpZXdHcm91cCA-NCBGcmFtZUxheW91dFtpbmRleD0wXSArMiBGcmFtZUxheW91dCA-IEBUZXh0Vmlld1tpbmRleD1wYXJlbnQuY2hpbGRDb3VudC5taW51cygxKV0gPDxuIEZyYW1lTGF5b3V0W3ZpZD0iY29udGVudCJd" target="_blank" rel="noreferrer"><code>ImageView &lt; FrameLayout &lt;n ViewGroup[desc^=&quot;直播&quot;] - ViewGroup &gt;4 FrameLayout[index=0] +2 FrameLayout &gt; @TextView[index=parent.childCount.minus(1)] &lt;&lt;n FrameLayout[vid=&quot;content&quot;]</code></a></p><h2 id="e-8" tabindex="-1">一些方法用例 <a class="header-anchor" href="#e-8" aria-label="Permalink to “一些方法用例”">​</a></h2><h3 id="node类型的getchild" tabindex="-1"><a href="/guide/node#node">node</a>类型的<code>getChild()</code> <a class="header-anchor" href="#node类型的getchild" aria-label="Permalink to “node类型的getChild()”">​</a></h3><p>选择一个 <code>ViewGroup[desc^=&quot;直播&quot;]</code> 节点, 并要求其<strong>第1位子节点</strong>的<code>vid</code>等于 <code>cover_layout</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXVtnZXRDaGlsZCgwKS52aWQ9ImNvdmVyX2xheW91dCJd" target="_blank" rel="noreferrer"><code>ViewGroup[desc^=&quot;直播&quot;][getChild(0).vid=&quot;cover_layout&quot;]</code></a></li></ul><p>选择一个 <code>ViewGroup[desc^=&quot;直播&quot;]</code> 节点, 并要求其<strong>第3位子节点内的第1位子节点</strong>类型为 <code>TextView</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXVtnZXRDaGlsZCgyKS5nZXRDaGlsZCgwKS5uYW1lJD0iVGV4dFZpZXciXQ" target="_blank" rel="noreferrer"><code>ViewGroup[desc^=&quot;直播&quot;][getChild(2).getChild(0).name$=&quot;TextView&quot;]</code></a></li></ul><p>选择一个 <code>ViewGroup[desc^=&quot;直播&quot;]</code> 节点, 并要求其<strong>末尾子节点</strong>的<code>vid</code>等于 <code>more</code></p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=Vmlld0dyb3VwW2Rlc2NePSLnm7Tmkq0iXVtnZXRDaGlsZChjaGlsZENvdW50Lm1pbnVzKDEpKS52aWQ9Im1vcmUiXQ" target="_blank" rel="noreferrer"><code>ViewGroup[desc^=&quot;直播&quot;][getChild(childCount.minus(1)).vid=&quot;more&quot;]</code></a></li></ul><h3 id="context类型的getprev" tabindex="-1"><a href="/guide/node#context">context</a>类型的<code>getPrev()</code> <a class="header-anchor" href="#context类型的getprev" aria-label="Permalink to “context类型的getPrev()”">​</a></h3><p>已知符合选择器 <a href="https://i.gkd.li/i/16076188?gkd=QFtjbGlja2FibGU9dHJ1ZV0gPigxLDIpIFt2aWQ9ImNvdmVyIl0" target="_blank" rel="noreferrer">@[clickable=true] &gt;(1,2) [vid=&quot;cover&quot;]</a> 的节点有6个,现要求根据屏幕分辨率对节点位置作出限制。</p><blockquote><p>思路:从右侧根节点处获取屏幕宽高,通过<code>getPrev()</code>传到左侧目标节点,随后根据要求做限制</p><p>另外由于使用了<code>&lt;&lt;n [parent=null]</code>,所以结果仅显示第一个,具体缘由请看<a href="/guide/optimize#enforce">主动查询</a></p></blockquote><p>限制在左半屏:</p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=QFtjbGlja2FibGU9dHJ1ZV1bcmlnaHQ8Z2V0UHJldigxKS53aWR0aC5kaXYoMildID4oMSwyKSBbdmlkPSJjb3ZlciJdIDw8biBbcGFyZW50PW51bGxd" target="_blank" rel="noreferrer"><code>@[clickable=true][right&lt;getPrev(1).width.div(2)] &gt;(1,2) [vid=&quot;cover&quot;] &lt;&lt;n [parent=null]</code></a></li></ul><p>限制在右下(1/4)屏:</p><ul><li><a href="https://i.gkd.li/i/16076188?gkd=QFtjbGlja2FibGU9dHJ1ZV1bbGVmdD5nZXRQcmV2KDEpLndpZHRoLmRpdigyKV1bdG9wPmdldFByZXYoMSkuaGVpZ2h0LmRpdigyKV0gPigxLDIpIFt2aWQ9ImNvdmVyIl0gPDxuIFtwYXJlbnQ9bnVsbF0" target="_blank" rel="noreferrer"><code>@[clickable=true][left&gt;getPrev(1).width.div(2)][top&gt;getPrev(1).height.div(2)] &gt;(1,2) [vid=&quot;cover&quot;] &lt;&lt;n [parent=null]</code></a></li></ul>',45)]))}const q=t(l,[["render",i]]);export{g as __pageData,q as default};
@@ -1 +0,0 @@
1
- import{_ as t,c as o,o as d,aq as a}from"./chunks/framework.C9O3MI31.js";const g=JSON.parse('{"title":"选择示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md","lastUpdated":1778124209000}'),l={name:"guide/example.md"};function i(r,e,c,u,n,p){return d(),o("div",null,e[0]||(e[0]=[a("",45)]))}const q=t(l,[["render",i]]);export{g as __pageData,q as default};
@@ -1 +0,0 @@
1
- import{_ as a,c as e,o as d,aq as r}from"./chunks/framework.C9O3MI31.js";const _=JSON.parse('{"title":"外部交互","description":"","frontmatter":{},"headers":[],"relativePath":"guide/external.md","filePath":"guide/external.md","lastUpdated":1778124209000}'),l={name:"guide/external.md"};function i(p,t,o,h,n,c){return d(),e("div",null,t[0]||(t[0]=[r('<h1 id="title" tabindex="-1">外部交互 <a class="header-anchor" href="#title" aria-label="Permalink to “外部交互”">​</a></h1><p>一些无法在应用内界面上直接使用的功能</p><h2 id="app-icon" tabindex="-1">应用图标 <a class="header-anchor" href="#app-icon" aria-label="Permalink to “应用图标”">​</a></h2><p>GKD 有两种应用图标</p><ul><li>默认图标</li><li>深色模式下的图标</li></ul><p>一般来说, 第一次显示的图标取决于安装时的系统深色模式设置</p><p>而且系统貌似不会在切换深色模式自动切换图标, 你可以通过以下方式切换</p><ul><li>到 系统主题-图标包 切换其他后再切换回来</li><li>重启手机</li><li>同版本覆盖安装 GKD, 无需卸载</li></ul><h2 id="scheme" tabindex="-1">跳转应用 <a class="header-anchor" href="#scheme" aria-label="Permalink to “跳转应用”">​</a></h2><p>可以在浏览器或其他应用打开特定链接来跳转到应用内页面</p><table tabindex="0"><thead><tr><th>页面</th><th>链接</th></tr></thead><tbody><tr><td>首页</td><td><code>gkd://page</code></td></tr><tr><td>高级设置</td><td><code>gkd://page/1</code></td></tr><tr><td>快照记录</td><td><code>gkd://page/2</code></td></tr></tbody></table><h2 id="shortcut" tabindex="-1">快捷开关 <a class="header-anchor" href="#shortcut" aria-label="Permalink to “快捷开关”">​</a></h2><p>GKD 在通知栏面板声明了一些快捷开关, 可快捷使用一些功能</p><table tabindex="0"><thead><tr><th>名称</th><th>功能</th></tr></thead><tbody><tr><td>GKD</td><td>打开或关闭无障碍权限</td></tr><tr><td>HTTP服务</td><td>打开或关闭HTTP服务</td></tr><tr><td>悬浮按钮</td><td>打开或关闭悬浮按钮, 点击出现的按钮可捕获快照</td></tr><tr><td>捕获快照</td><td>点击后捕获当前应用界面快照</td></tr></tbody></table><h2 id="import-data" tabindex="-1">导入数据 <a class="header-anchor" href="#import-data" aria-label="Permalink to “导入数据”">​</a></h2><p>你可以在 主页-订阅-右上角菜单-导入数据 中导入订阅规则数据</p><p>但是这样需要在打开的文件管理器中手动选择路径不太方便</p><p>另一个更方便的迁移数据的方式是</p><ul><li><p>旧设备: 导出数据 - 选择分享到 QQ 发送给自己</p></li><li><p>新设备: 在 QQ 中打开分享的文件 - 用其他应用打开 - 选择 GKD 导入数据</p></li></ul><p>上面的 QQ 也可以是其他传送软件, 只要支持用其他应用打开的时候有 GKD 即可</p>',20)]))}const b=a(l,[["render",i]]);export{_ as __pageData,b as default};
@@ -1 +0,0 @@
1
- import{_ as a,c as e,o as d,aq as r}from"./chunks/framework.C9O3MI31.js";const _=JSON.parse('{"title":"外部交互","description":"","frontmatter":{},"headers":[],"relativePath":"guide/external.md","filePath":"guide/external.md","lastUpdated":1778124209000}'),l={name:"guide/external.md"};function i(p,t,o,h,n,c){return d(),e("div",null,t[0]||(t[0]=[r("",20)]))}const b=a(l,[["render",i]]);export{_ as __pageData,b as default};
@@ -1,21 +0,0 @@
1
- import{_ as o,I as r,c as d,o as g,aq as i,J as s,j as e,a as n,w as u}from"./chunks/framework.C9O3MI31.js";const x=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1778124209000}'),m={name:"guide/faq.md"};function c(h,a,k,b,P,S){const l=r("GImg"),t=r("ImageTable"),p=r("NImageGroup");return g(),d("div",null,[a[4]||(a[4]=i('<h1 id="title" tabindex="-1">常见问题 <a class="header-anchor" href="#title" aria-label="Permalink to “常见问题”">​</a></h1><p>一些可能影响使用体验的问题和对应解决方案, 某些方案可能并不适用您的机型系统</p><p>如您有更好的方案或想对现有方案进行补充, 请点击底部 <code>为此页提供修改建议</code></p><h2 id="play-diff" tabindex="-1">渠道区别 <a class="header-anchor" href="#play-diff" aria-label="Permalink to “渠道区别”">​</a></h2><p>目前有两个渠道在使用,它们可互相安装覆盖,但存在区别</p><table tabindex="0"><thead><tr><th style="text-align:center;">渠道</th><th style="text-align:center;">下载方式</th><th style="text-align:center;">自更新逻辑</th><th style="text-align:center;"><a href="#restriction">受限制的设置</a></th><th style="text-align:center;">无障碍工具声明</th></tr></thead><tbody><tr><td style="text-align:center;">gkd</td><td style="text-align:center;"><a href="/guide/">官网/GitHub</a></td><td style="text-align:center;">弹窗更新(镜像加速)</td><td style="text-align:center;">可能受限</td><td style="text-align:center;">有</td></tr><tr><td style="text-align:center;">play</td><td style="text-align:center;"><a href="https://play.google.com/store/apps/details?id=li.songe.gkd" target="_blank" rel="noreferrer">Google Play</a></td><td style="text-align:center;">无(必须Google Play)</td><td style="text-align:center;">不会</td><td style="text-align:center;">无</td></tr></tbody></table><p>根据 <a href="https://support.google.com/googleplay/android-developer/answer/10964491?hl=zh-Hans" target="_blank" rel="noreferrer">Google Play 政策</a>,必须以 <strong>支持残障人士为主要用途</strong> 才能使用 <strong>无障碍工具声明</strong></p><p>如果没有这个声明,系统会隔段时间显示通知(<a href="https://github.com/orgs/gkd-kit/discussions/744" target="_blank" rel="noreferrer">discussions#744</a>),内容如下</p><p><code>查看权限设置(GKD可以查看和控制您的屏幕。点按即可查看。)</code></p><p>如果你无法忍受这个通知,切换到 gkd 渠道即可</p><h2 id="power" tabindex="-1">耗电说明 <a class="header-anchor" href="#power" aria-label="Permalink to “耗电说明”">​</a></h2><p>首先 GKD 默认情况下并不耗电,有的人以为关闭更新检测,关闭日志就能减少耗电,并不正确</p><p>真正的耗电在于 启用的规则 和 当前应用界面无障碍节点数量及无障碍事件刷新频率</p><p>如果想追求低耗电,那应该开启少量的规则,由于之前的默认规则数量有 1300+,很多人喜欢无脑开启规则</p><p>甚至有的用户同时开启多个订阅, 而这些订阅基本都 fork 自默认订阅, 这相当于同时开启多个重复规则</p><p>开启这么多规则,并且在这些规则匹配的界面使用手机,不耗电是不可能的</p><p>此外,某些软件如抖音的无障碍节点数量比较多,并且产生无障碍事件频率也比较高</p><p>长时间下使用此类软件的规则会比较耗电,请自行考虑后再启用</p><h2 id="shizuku" tabindex="-1">shizuku <a class="header-anchor" href="#shizuku" aria-label="Permalink to “shizuku”">​</a></h2><p>shizuku 是一个能让普通应用通过 ADB 或 Root 权限直接调用 Android 系统 API 的框架</p><p>简而言之, <strong>授权 shizuku 后 GKD 可以调用更多系统 API 获取更多状态,启用更多优化</strong></p><p>官方原版 <a href="https://github.com/RikkaApps/Shizuku" target="_blank" rel="noreferrer">RikkaApps/Shizuku</a> 已很久未有维护记录,issue/pr 也被垃圾机器人淹没</p><p>此外在某些设备上原版 shizuku 只能部分工作,此时 GKD 会提示 <code>服务连接部分失败</code></p><p>目前建议使用另一位开发者的分支项目 <a href="https://github.com/thedjchi/Shizuku" target="_blank" rel="noreferrer">thedjchi/Shizuku</a>,或<a href="https://github.com/thedjchi/Shizuku/releases/latest" target="_blank" rel="noreferrer">点击前往下载</a></p><h2 id="persistent" tabindex="-1">后台运行 <a class="header-anchor" href="#persistent" aria-label="Permalink to “后台运行”">​</a></h2><p>如何尽量保持后台运行不被系统暂停/杀死</p><ul><li>任务切换界面给 GKD 应用卡片加锁即可</li></ul><p>一般情况下, 使用此项即可正常后台运行, 如果不行请使用下面的步骤</p><ul><li>打开 GKD 首页, 开启 <code>常驻通知</code></li><li>允许后台活动, 关闭省电策略, 或者设置 GKD 的省电策略为无限制</li><li>允许 GKD 自启动</li></ul><p>某些系统如 MagicOS9 需要打开 <code>允许后台活动</code>, 否则 GKD 在后台时会被系统暂停执行</p>',30)),s(l,{src:"0038.jpg"}),a[5]||(a[5]=e("h2",{id:"restriction",tabindex:"-1"},[n("受限制的设置 "),e("a",{class:"header-anchor",href:"#restriction","aria-label":"Permalink to “受限制的设置”"},"​")],-1)),a[6]||(a[6]=e("p",null,"无障碍列表界面提示",-1)),a[7]||(a[7]=e("blockquote",null,[e("p",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1)),a[8]||(a[8]=e("p",null,"或提示",-1)),a[9]||(a[9]=e("blockquote",null,[e("p",null,"系统已拒绝向此应用授予访问权限")],-1)),s(t,{images:[["0014.png","0039.jpg"]]}),a[10]||(a[10]=e("p",null,"这是因为某些系统对于 不在应用商店等可信任来源安装的 不能直接开启无障碍权限",-1)),a[11]||(a[11]=e("p",null,"解除步骤: GKD 应用信息 - 允许受限制的设置, 注意某些设备位置不太一样",-1)),e("table",null,[a[0]||(a[0]=e("thead",null,[e("tr",null,[e("th",{class:"text-center!"},[n("原生系统 "),e("br"),n(" 应用信息 - 右上角 - 允许受限制的设置")]),e("th",{class:"text-center!"},[n("小米系统 "),e("br"),n(" 应用信息 - 高级设置 - 允许受限制的设置")])])],-1)),e("tbody",null,[s(p,null,{default:u(()=>[e("tr",null,[e("td",null,[s(l,{src:"0016.png"})]),e("td",null,[s(l,{src:"0040.jpg"})])])]),_:1})])]),a[12]||(a[12]=i('<p>如果按步骤开启后 无障碍列表 仍然提示不可用, 可尝试 <strong>重启设备</strong></p><p>如果应用信息右上角没有 <code>允许受限制的设置</code> 选项, 请参考下一节方案</p><h2 id="unable_open_a11y" tabindex="-1">无法开启无障碍 <a class="header-anchor" href="#unable_open_a11y" aria-label="Permalink to “无法开启无障碍”">​</a></h2><p>某些系统如 ColorOS 有更严格的无障碍限制</p><p>如果你是其他来源安装或 GKD 内部更新后也会无法开启无障碍, 表现以下行为</p><ul><li>提示 受限制的设置, 但是没有找到 允许受限制的设置 的选项</li><li>不提示 受限制的设置, 无障碍开启按钮可点击, 但点击后没有响应, 无法开启</li></ul><p>可以通过以下方式解决, 可在 设置 - 关于 - 分享应用 获取 APK 文件</p>',7)),e("ul",null,[a[2]||(a[2]=e("li",null,[e("p",null,"使用系统信任的方式进行安装, 例如在系统文件管理中查看 APK 文件后点击安装, 是覆盖安装无需卸载")],-1)),a[3]||(a[3]=e("li",null,[e("p",null,[n("如果使用系统安装器, 但是在冻结了应用安装器 "),e("code",null,"com.oplus.appdetail"),n(" 状态下安装的 APK, 需解冻后重新安装")])],-1)),e("li",null,[a[1]||(a[1]=e("p",null,[n("使用 "),e("a",{href:"https://appops.rikka.app/",target:"_blank",rel:"noreferrer"},"App Ops"),n(" 在权限管理中手动授予 ACCESS_RESTRICTED_SETTINGS 权限")],-1)),s(l,{src:"0037.png"})])]),a[13]||(a[13]=e("h2",{id:"close_warn_dialog",tabindex:"-1"},[n("关闭无障碍警告弹窗 "),e("a",{class:"header-anchor",href:"#close_warn_dialog","aria-label":"Permalink to “关闭无障碍警告弹窗”"},"​")],-1)),a[14]||(a[14]=e("div",{class:"tip custom-block github-alert"},[e("p",{class:"custom-block-title"},"建议"),e("p",null,[n("授予 "),e("code",null,"写入安全设置权限"),n(" 后可自行开启无障碍, 而无需设置此项")])],-1)),a[15]||(a[15]=e("p",null,"这个方案不一定适用所有机型",-1)),a[16]||(a[16]=e("p",null,"大多数设备开启无障碍时都会出现 10s 的无障碍警告弹窗",-1)),a[17]||(a[17]=e("p",null,"若是只需要开启一次则无所谓但是如果开启次数比较多每次都有这个警告等待就很烦人了",-1)),s(t,{images:[["0004.png","0005.png"]]}),a[18]||(a[18]=e("p",null,[n("你可能已经看到这个界面还有一个开关, 也就是下方的 "),e("code",null,"快捷方式"),n(" 开关")],-1)),a[19]||(a[19]=e("p",null,"打开一次下面这个快捷方式开关后, 上面的的开启按钮就不会出现警告弹窗了, 但是你会发现屏幕侧边出现了一个应用小图标, 多数情况下我们并不需要这个图标",-1)),a[20]||(a[20]=e("p",null,'到无障碍界面-"无障碍"按钮-使用按钮或手势-点击切换为手势即可隐藏',-1)),a[21]||(a[21]=e("p",null,"以 Xiaomi HyperOS 为例子, 下面是完整的关闭弹窗流程截图",-1)),s(t,{images:[["0009.png","0010.png","0011.png","0012.png"]]}),a[22]||(a[22]=i(`<h2 id="adb_failed" tabindex="-1">adb 授权失败 <a class="header-anchor" href="#adb_failed" aria-label="Permalink to “adb 授权失败”">​</a></h2><p>在使用 adb 手动授予 <code>写入安全设置权限</code> 时可能会提示权限不够,具体报错如下:</p><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0" dir="ltr"><code><span class="line"><span>adb shell pm grant li.songe.gkd android.permission.WRITE_SECURE_SETTINGS</span></span>
2
- <span class="line"><span></span></span>
3
- <span class="line"><span>Exception occurred while executing &#39;grant&#39;:</span></span>
4
- <span class="line"><span>java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS.</span></span>
5
- <span class="line"><span> at android.app.ContextImpl.enforce(ContextImpl.java:2384)</span></span>
6
- <span class="line"><span> at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2412)</span></span>
7
- <span class="line"><span> at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermissionInternal(PermissionManagerServiceImpl.java:1383)</span></span>
8
- <span class="line"><span> at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermission(PermissionManagerServiceImpl.java:1365)</span></span>
9
- <span class="line"><span> at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:573)</span></span>
10
- <span class="line"><span> at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:610)</span></span>
11
- <span class="line"><span> at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2717)</span></span>
12
- <span class="line"><span> at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:301)</span></span>
13
- <span class="line"><span> at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)</span></span>
14
- <span class="line"><span> at android.os.ShellCommand.exec(ShellCommand.java:38)</span></span>
15
- <span class="line"><span> at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:6840)</span></span>
16
- <span class="line"><span> at android.os.Binder.shellCommand(Binder.java:1092)</span></span>
17
- <span class="line"><span> at android.os.Binder.onTransact(Binder.java:912)</span></span>
18
- <span class="line"><span> at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4352)</span></span>
19
- <span class="line"><span> at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6824)</span></span>
20
- <span class="line"><span> at android.os.Binder.execTransactInternal(Binder.java:1392)</span></span>
21
- <span class="line"><span> at android.os.Binder.execTransact(Binder.java:1299)</span></span></code></pre></div><p>下面参考 <a href="https://shizuku.rikka.app/guide/setup/#faq" target="_blank" rel="noreferrer">shizuku 文档</a> 的解决方案</p><ul><li><p>HyperOS/MIUI(小米、POCO)<br> 在 <code>开发者选项</code> 中开启 <code>USB 调试(安全设置)</code>,注意不是 <code>USB 调试</code><br> 如果开启 <code>USB 调试(安全设置)</code>后继续报错,可以尝试在 adb 命令前添加 sudo <br> 提升权限后再执行 adb 命令</p></li><li><p>ColorOS(OPPO &amp; OnePlus)<br> 在 <code>开发者选项</code> 中关闭 <code>权限监控</code> 或打开 <code>禁止权限监控</code></p></li><li><p>Flyme(魅族)<br> 在 <code>开发者选项</code> 中关闭 <code>Flyme 支付保护</code></p></li></ul><p>关闭限制后重新运行命令即可</p>`,6))])}const v=o(m,[["render",c]]);export{x as __pageData,v as default};
@@ -1 +0,0 @@
1
- import{_ as o,I as r,c as d,o as g,aq as i,J as s,j as e,a as n,w as u}from"./chunks/framework.C9O3MI31.js";const x=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1778124209000}'),m={name:"guide/faq.md"};function c(h,a,k,b,P,S){const l=r("GImg"),t=r("ImageTable"),p=r("NImageGroup");return g(),d("div",null,[a[4]||(a[4]=i("",30)),s(l,{src:"0038.jpg"}),a[5]||(a[5]=e("h2",{id:"restriction",tabindex:"-1"},[n("受限制的设置 "),e("a",{class:"header-anchor",href:"#restriction","aria-label":"Permalink to “受限制的设置”"},"​")],-1)),a[6]||(a[6]=e("p",null,"无障碍列表界面提示",-1)),a[7]||(a[7]=e("blockquote",null,[e("p",null,"受限制的设置(出于安全考虑,此设置目前不可用)")],-1)),a[8]||(a[8]=e("p",null,"或提示",-1)),a[9]||(a[9]=e("blockquote",null,[e("p",null,"系统已拒绝向此应用授予访问权限")],-1)),s(t,{images:[["0014.png","0039.jpg"]]}),a[10]||(a[10]=e("p",null,"这是因为某些系统对于 不在应用商店等可信任来源安装的 不能直接开启无障碍权限",-1)),a[11]||(a[11]=e("p",null,"解除步骤: GKD 应用信息 - 允许受限制的设置, 注意某些设备位置不太一样",-1)),e("table",null,[a[0]||(a[0]=e("thead",null,[e("tr",null,[e("th",{class:"text-center!"},[n("原生系统 "),e("br"),n(" 应用信息 - 右上角 - 允许受限制的设置")]),e("th",{class:"text-center!"},[n("小米系统 "),e("br"),n(" 应用信息 - 高级设置 - 允许受限制的设置")])])],-1)),e("tbody",null,[s(p,null,{default:u(()=>[e("tr",null,[e("td",null,[s(l,{src:"0016.png"})]),e("td",null,[s(l,{src:"0040.jpg"})])])]),_:1})])]),a[12]||(a[12]=i("",7)),e("ul",null,[a[2]||(a[2]=e("li",null,[e("p",null,"使用系统信任的方式进行安装, 例如在系统文件管理中查看 APK 文件后点击安装, 是覆盖安装无需卸载")],-1)),a[3]||(a[3]=e("li",null,[e("p",null,[n("如果使用系统安装器, 但是在冻结了应用安装器 "),e("code",null,"com.oplus.appdetail"),n(" 状态下安装的 APK, 需解冻后重新安装")])],-1)),e("li",null,[a[1]||(a[1]=e("p",null,[n("使用 "),e("a",{href:"https://appops.rikka.app/",target:"_blank",rel:"noreferrer"},"App Ops"),n(" 在权限管理中手动授予 ACCESS_RESTRICTED_SETTINGS 权限")],-1)),s(l,{src:"0037.png"})])]),a[13]||(a[13]=e("h2",{id:"close_warn_dialog",tabindex:"-1"},[n("关闭无障碍警告弹窗 "),e("a",{class:"header-anchor",href:"#close_warn_dialog","aria-label":"Permalink to “关闭无障碍警告弹窗”"},"​")],-1)),a[14]||(a[14]=e("div",{class:"tip custom-block github-alert"},[e("p",{class:"custom-block-title"},"建议"),e("p",null,[n("授予 "),e("code",null,"写入安全设置权限"),n(" 后可自行开启无障碍, 而无需设置此项")])],-1)),a[15]||(a[15]=e("p",null,"这个方案不一定适用所有机型",-1)),a[16]||(a[16]=e("p",null,"大多数设备开启无障碍时都会出现 10s 的无障碍警告弹窗",-1)),a[17]||(a[17]=e("p",null,"若是只需要开启一次则无所谓但是如果开启次数比较多每次都有这个警告等待就很烦人了",-1)),s(t,{images:[["0004.png","0005.png"]]}),a[18]||(a[18]=e("p",null,[n("你可能已经看到这个界面还有一个开关, 也就是下方的 "),e("code",null,"快捷方式"),n(" 开关")],-1)),a[19]||(a[19]=e("p",null,"打开一次下面这个快捷方式开关后, 上面的的开启按钮就不会出现警告弹窗了, 但是你会发现屏幕侧边出现了一个应用小图标, 多数情况下我们并不需要这个图标",-1)),a[20]||(a[20]=e("p",null,'到无障碍界面-"无障碍"按钮-使用按钮或手势-点击切换为手势即可隐藏',-1)),a[21]||(a[21]=e("p",null,"以 Xiaomi HyperOS 为例子, 下面是完整的关闭弹窗流程截图",-1)),s(t,{images:[["0009.png","0010.png","0011.png","0012.png"]]}),a[22]||(a[22]=i("",6))])}const v=o(m,[["render",c]]);export{x as __pageData,v as default};
@@ -1 +0,0 @@
1
- import{_ as i,I as l,c as d,o as p,j as a,J as r,aq as g,a as t,w as m}from"./chunks/framework.C9O3MI31.js";const T=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1778124209000}'),c={name:"guide/index.md"};function u(f,e,_,b,h,k){const s=l("GkdOnly"),n=l("ApkTable"),o=l("ImageTable");return p(),d("div",null,[e[1]||(e[1]=a("h1",{id:"title",tabindex:"-1"},[t("开始使用 "),a("a",{class:"header-anchor",href:"#title","aria-label":"Permalink to “开始使用”"},"​")],-1)),e[2]||(e[2]=a("h2",{id:"install",tabindex:"-1"},[t("安装 "),a("a",{class:"header-anchor",href:"#install","aria-label":"Permalink to “安装”"},"​")],-1)),r(s,null,{default:m(()=>e[0]||(e[0]=[a("div",{class:"tip custom-block github-alert"},[a("p",{class:"custom-block-title"},"下载提示"),a("p",null,"检测到您在应用内无法下载 APK,请点击右上角-外部打开后下载")],-1)])),_:1}),r(n),e[3]||(e[3]=g('<details class="details custom-block"><summary>手机浏览器下载失败?</summary><p>某些手机浏览器存在自定义拦截会导致下载失败, 建议使用 <a href="https://viayoo.com" target="_blank" rel="noreferrer">Via</a> 浏览器下载</p></details><p>其它下载方式</p><ul><li><a href="https://play.google.com/store/apps/details?id=li.songe.gkd" target="_blank" rel="noreferrer">Google Play</a>   <a href="./faq#play-diff">区别</a></li><li><a href="https://github.com/gkd-kit/gkd/releases" target="_blank" rel="noreferrer">Github Releases</a></li></ul><p>下载完毕后, 在您的 Android 手机上安装并打开</p><h2 id="usage" tabindex="-1">使用 <a class="header-anchor" href="#usage" aria-label="Permalink to “使用”">​</a></h2><p>打开后进入 GKD 的首页, 要想 GKD 正常工作需要授权无障碍权限</p><p>点击无障碍权限右侧的 <code>授权</code> 按钮即可前往设置的无障碍界面授权</p><p>以 Xiaomi HyperOS 为例, 下面为完整的授权流程截图</p>',8)),r(o,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),e[4]||(e[4]=a("p",null,[t("如遇到问题可在 "),a("a",{href:"/guide/faq"},"常见问题"),t(" 查阅解决方案")],-1))])}const y=i(c,[["render",u]]);export{T as __pageData,y as default};
@@ -1 +0,0 @@
1
- import{_ as i,I as l,c as d,o as p,j as a,J as r,aq as g,a as t,w as m}from"./chunks/framework.C9O3MI31.js";const T=JSON.parse('{"title":"开始使用","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md","lastUpdated":1778124209000}'),c={name:"guide/index.md"};function u(f,e,_,b,h,k){const s=l("GkdOnly"),n=l("ApkTable"),o=l("ImageTable");return p(),d("div",null,[e[1]||(e[1]=a("h1",{id:"title",tabindex:"-1"},[t("开始使用 "),a("a",{class:"header-anchor",href:"#title","aria-label":"Permalink to “开始使用”"},"​")],-1)),e[2]||(e[2]=a("h2",{id:"install",tabindex:"-1"},[t("安装 "),a("a",{class:"header-anchor",href:"#install","aria-label":"Permalink to “安装”"},"​")],-1)),r(s,null,{default:m(()=>e[0]||(e[0]=[a("div",{class:"tip custom-block github-alert"},[a("p",{class:"custom-block-title"},"下载提示"),a("p",null,"检测到您在应用内无法下载 APK,请点击右上角-外部打开后下载")],-1)])),_:1}),r(n),e[3]||(e[3]=g("",8)),r(o,{images:[["0001.png","0002.png","0003.png","0004.png"],["0005.png","0006.png","0007.png","0008.png"]]}),e[4]||(e[4]=a("p",null,[t("如遇到问题可在 "),a("a",{href:"/guide/faq"},"常见问题"),t(" 查阅解决方案")],-1))])}const y=i(c,[["render",u]]);export{T as __pageData,y as default};
@@ -1 +0,0 @@
1
- import{_ as d,c as e,o,aq as a}from"./chunks/framework.C9O3MI31.js";const g=JSON.parse('{"title":"属性方法","description":"","frontmatter":{},"headers":[],"relativePath":"guide/node.md","filePath":"guide/node.md","lastUpdated":1778124209000}'),r={name:"guide/node.md"};function c(n,t,i,l,h,b){return o(),e("div",null,t[0]||(t[0]=[a('<h1 id="title" tabindex="-1">属性方法 <a class="header-anchor" href="#title" aria-label="Permalink to “属性方法”">​</a></h1><p>此章节介绍各个类型可用的属性及其方法</p><h2 id="null" tabindex="-1">null <a class="header-anchor" href="#null" aria-label="Permalink to “null”">​</a></h2><div class="note custom-block github-alert"><p class="custom-block-title">提示</p><p><code>null</code> 无任何属性方法, 并且在无特殊说明时, 属性方法当调用者或者参数是 <code>null</code> 时, 均返回 <code>null</code></p></div><p>当 <code>name</code> 是 <code>null</code> 时, <code>name.length</code> 为 <code>null</code></p><p>当 <code>parent</code> 是 <code>null</code> 时, <code>parent.getChild(0)</code> 为 <code>null</code></p><p>当 <code>index</code> 是 <code>null</code> 时, <code>parent.getChild(index)</code> 为 <code>null</code></p><h2 id="boolean" tabindex="-1">boolean <a class="header-anchor" href="#boolean" aria-label="Permalink to “boolean”">​</a></h2><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>toInt</td><td></td><td><code>int</code></td><td>转为 0 或 1</td></tr><tr><td>or</td><td><code>boolean</code></td><td><code>boolean</code></td><td>a || b</td></tr><tr><td>and</td><td><code>boolean</code></td><td><code>boolean</code></td><td>a &amp;&amp; b</td></tr><tr><td>not</td><td></td><td><code>boolean</code></td><td>!a</td></tr><tr><td>ifElse</td><td><code>T</code>, <code>T</code></td><td><code>T</code></td><td>if(a) T else T <br> T 是任意类型, 两个参数均支持为 null</td></tr></tbody></table><h2 id="int" tabindex="-1">int <a class="header-anchor" href="#int" aria-label="Permalink to “int”">​</a></h2><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>toString</td><td></td><td><a href="#string"><code>string</code></a></td><td>转为10进制字符串</td></tr><tr><td>toString</td><td><code>int</code></td><td><code>string</code></td><td>转为对应进制的字符串</td></tr><tr><td>plus</td><td><code>int</code></td><td><code>string</code></td><td>加上</td></tr><tr><td>minus</td><td><code>int</code></td><td><code>string</code></td><td>减去</td></tr><tr><td>times</td><td><code>int</code></td><td><code>string</code></td><td>乘以</td></tr><tr><td>div</td><td><code>int</code></td><td><code>string</code></td><td>除以</td></tr><tr><td>rem</td><td><code>int</code></td><td><code>string</code></td><td>取余</td></tr><tr><td>more</td><td><code>int</code></td><td><a href="#boolean"><code>boolean</code></a></td><td>a &gt; b</td></tr><tr><td>moreEqual</td><td><code>int</code></td><td><code>boolean</code></td><td>a &gt;= b</td></tr><tr><td>less</td><td><code>int</code></td><td><code>boolean</code></td><td>a &lt; b</td></tr><tr><td>lessEqual</td><td><code>int</code></td><td><code>boolean</code></td><td>a &lt;= b</td></tr></tbody></table><h2 id="string" tabindex="-1">string <a class="header-anchor" href="#string" aria-label="Permalink to “string”">​</a></h2><table tabindex="0"><thead><tr><th>标识符</th><th>属性类型</th><th>描述</th></tr></thead><tbody><tr><td>length</td><td><a href="#int"><code>int</code></a></td><td>字符串长度</td></tr></tbody></table><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>get</td><td><a href="#int"><code>int</code></a></td><td><code>string</code></td><td>获取对应索引字符串</td></tr><tr><td>at</td><td><code>int</code></td><td><code>string</code></td><td>同上,但是参数传负数时从最后一个字符取</td></tr><tr><td>substring</td><td><code>int</code></td><td><code>string</code></td><td>截取指定索引到结尾字符串</td></tr><tr><td>substring</td><td><code>int</code>,<code>int</code></td><td><code>string</code></td><td>截取指定间隔字符串</td></tr><tr><td>toInt</td><td></td><td><code>int</code></td><td>转为10进制数字</td></tr><tr><td>toInt</td><td><code>int</code></td><td><code>int</code></td><td>转为指定进制的数字</td></tr><tr><td>indexOf</td><td><code>string</code></td><td><code>int</code></td><td>查找指定字符串的索引</td></tr><tr><td>indexOf</td><td><code>string</code>,<code>int</code></td><td><code>int</code></td><td>从指定索引开始查找指定字符串的索引</td></tr></tbody></table><h2 id="node" tabindex="-1">node <a class="header-anchor" href="#node" aria-label="Permalink to “node”">​</a></h2><div class="important custom-block github-alert"><p class="custom-block-title">重要提示</p><p>此类型下以 _ 开头的属性只能在网页快照调试工具上使用, 真机不可用</p></div><table tabindex="0"><thead><tr><th>标识符</th><th>属性类型</th><th>描述</th></tr></thead><tbody><tr><td>_id</td><td><a href="#int"><code>int</code></a></td><td></td></tr><tr><td>_pid</td><td><code>int</code></td><td></td></tr><tr><td>id</td><td><a href="#string"><code>string</code></a></td><td></td></tr><tr><td>vid</td><td><code>string</code></td><td></td></tr><tr><td>name</td><td><code>string</code></td><td></td></tr><tr><td>text</td><td><code>string</code></td><td></td></tr><tr><td>desc</td><td><code>string</code></td><td></td></tr><tr><td>clickable</td><td><code>boolean</code></td><td></td></tr><tr><td>focusable</td><td><code>boolean</code></td><td></td></tr><tr><td>checkable</td><td><code>boolean</code></td><td></td></tr><tr><td>checked</td><td><code>boolean</code></td><td></td></tr><tr><td>editable</td><td><code>boolean</code></td><td></td></tr><tr><td>longClickable</td><td><code>boolean</code></td><td></td></tr><tr><td>visibleToUser</td><td><code>boolean</code></td><td></td></tr><tr><td>left</td><td><code>int</code></td><td></td></tr><tr><td>top</td><td><code>int</code></td><td></td></tr><tr><td>right</td><td><code>int</code></td><td></td></tr><tr><td>bottom</td><td><code>int</code></td><td></td></tr><tr><td>width</td><td><code>int</code></td><td></td></tr><tr><td>height</td><td><code>int</code></td><td></td></tr><tr><td>childCount</td><td><code>int</code></td><td></td></tr><tr><td>index</td><td><code>int</code></td><td></td></tr><tr><td>depth</td><td><code>int</code></td><td></td></tr><tr><td>parent</td><td><a href="#node"><code>node</code></a></td><td>获取父节点</td></tr></tbody></table><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>getChild</td><td><code>int</code></td><td><a href="#node"><code>node</code></a></td><td>获取指定索引的子节点</td></tr></tbody></table><h2 id="context" tabindex="-1">context <a class="header-anchor" href="#context" aria-label="Permalink to “context”">​</a></h2><p>context 具有 <a href="#node">node</a> 的所有属性方法, 下面只介绍额外属性方法</p><table tabindex="0"><thead><tr><th>标识符</th><th>属性类型</th><th>描述</th></tr></thead><tbody><tr><td>prev</td><td><a href="#context"><code>context</code></a></td><td>右侧属性选择器的节点上下文 <br> 最右侧的 prev=null</td></tr><tr><td>current</td><td><a href="#node"><code>node</code></a></td><td>当前节点 <br> current.id=id</td></tr></tbody></table><p>示例</p><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0" dir="ltr"><code><span class="line"><span>FrameLayout[prev.name$=&#39;ImageView&#39;] &gt; ImageView[current.name=name]</span></span></code></pre></div><p>中的 prev 就是 FrameLayout 右侧的 ImageView, current 就是 ImageView</p><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>getPrev</td><td>int</td><td><a href="#context"><code>context</code></a></td><td>快捷获取深层 prev <br> getPrev(0) -&gt; prev <br> getPrev(1) -&gt; prev.prev <br> getPrev(2) -&gt; prev.prev.prev</td></tr></tbody></table><h2 id="global" tabindex="-1">global <a class="header-anchor" href="#global" aria-label="Permalink to “global”">​</a></h2><p>global 具有 <a href="#context">context</a> 的所有属性方法, 并且没有任何属性方法能获取 global 的引用, 下面只介绍额外属性方法</p><table tabindex="0"><thead><tr><th>方法名</th><th>参数</th><th>返回类型</th><th>描述</th></tr></thead><tbody><tr><td>equal</td><td><code>T</code>, <code>T</code></td><td><a href="#boolean"><code>boolean</code></a></td><td>a==b <br> T 是任意类型, a,b 允许 null</td></tr><tr><td>notEqual</td><td><code>T</code>, <code>T</code></td><td><code>boolean</code></td><td>a!=b</td></tr></tbody></table><p>示例</p><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0" dir="ltr"><code><span class="line"><span>[name=&#39;&#39;][prev.name=&#39;&#39;][current.name=&#39;&#39;][parent.name=&#39;&#39;]</span></span></code></pre></div><ul><li>第一个 <code>name</code> 来自 <a href="#global">global</a>, 实际上任何 <code>xxx</code>/<code>xxx()</code> 都来自 global</li><li>第二个 <code>prev.name</code> 来自 <a href="#context">context</a></li><li>后续的 <code>current.name</code>/<code>parent.name</code> 都来自 <a href="#node">node</a></li></ul>',31)]))}const p=d(r,[["render",c]]);export{g as __pageData,p as default};
@@ -1 +0,0 @@
1
- import{_ as d,c as e,o,aq as a}from"./chunks/framework.C9O3MI31.js";const g=JSON.parse('{"title":"属性方法","description":"","frontmatter":{},"headers":[],"relativePath":"guide/node.md","filePath":"guide/node.md","lastUpdated":1778124209000}'),r={name:"guide/node.md"};function c(n,t,i,l,h,b){return o(),e("div",null,t[0]||(t[0]=[a("",31)]))}const p=d(r,[["render",c]]);export{g as __pageData,p as default};
@@ -1 +0,0 @@
1
- import{_ as d,c as o,o as c,aq as i}from"./chunks/framework.C9O3MI31.js";const b=JSON.parse('{"title":"查询优化","description":"","frontmatter":{},"headers":[],"relativePath":"guide/optimize.md","filePath":"guide/optimize.md","lastUpdated":1778124209000}'),t={name:"guide/optimize.md"};function l(a,e,n,r,p,u){return c(),o("div",null,e[0]||(e[0]=[i('<h1 id="title" tabindex="-1">查询优化 <a class="header-anchor" href="#title" aria-label="Permalink to “查询优化”">​</a></h1><p>一些关于查询优化的说明</p><h2 id="query-root" tabindex="-1">查找根节点 <a class="header-anchor" href="#query-root" aria-label="Permalink to “查找根节点”">​</a></h2><p>选择器通过满足下列格式的属性选择器标识根节点</p><ul><li><code>[parent=null]</code></li><li><code>A[id=&#39;xxx&#39;][parent=null][text=&#39;xxx&#39;]</code></li></ul><p>即只需存在一个 <code>[parent=null]</code> 就满足条件, 以下是对此的优化</p><h3 id="enforce" tabindex="-1">主动查询 <a class="header-anchor" href="#enforce" aria-label="Permalink to “主动查询”">​</a></h3><p>一般的选择器如 <code>LinearLayout &gt; TextView</code>, 选择器需要从 根节点/事件节点 使用深度先序顺序遍历子孙节点并判断是否满足条件</p><p>如果屏幕上有 n 个节点, 判断逻辑需要运行 n 次</p><p>但是如果选择器是类似 <code>TextView &lt;3 LinearLayout &lt;2 [parent=null]</code>, 由于在右侧标明了从根节点查找</p><p>因此上面的 <code>深度先序顺序遍历子孙节点</code> 将省略, 只进行一次判断, 不需要判断 n 次</p><p>但是如果你在子查询里使用 <code>&lt;&lt;n</code>, 例如 <code>TextView &lt;&lt;n [parent=null]</code></p><p>根据上面说明的优化, 虽然也只有一次判断, 但是由于 <code>&lt;&lt;n</code> 导致内部的子判断也是 n 次, 实际上没有优化判断次数</p><div class="tip custom-block github-alert"><p class="custom-block-title">提示</p><p>实际上从根节点开始匹配并且目标不是根节点的选择器如 <code>A &gt; B</code> 都可等价为 <code>A &gt; @B &lt;&lt;n [parent=null]</code></p></div><h3 id="ancestor" tabindex="-1">祖先节点 <a class="header-anchor" href="#ancestor" aria-label="Permalink to “祖先节点”">​</a></h3><p>在示例 <code>A &lt;3 [parent=null] &gt;n TextView</code> 中, 选择器找到 <code>TextView</code> 后, 根据 <code>&gt;n</code> 表示任意祖先节点</p><p>在默认情况下, 如果 <code>TextView</code> 的层级很深, 那必然需要多次调用 获取父节点 才能最终匹配</p><p>但是如果左侧的选择器是 <code>[parent=null] &gt;n</code>, 这表示找到根节点, 选择器此时不会去执行多次调用 获取父节点</p><p>在 GKD 内部, 根节点可以直接通过 API 获取, 因此 <code>[parent=null] &gt;n</code> 只需要调用一次方法</p><h2 id="fast-query" tabindex="-1">快速查询 <a class="header-anchor" href="#fast-query" aria-label="Permalink to “快速查询”">​</a></h2><div class="note custom-block github-alert"><p class="custom-block-title">注意</p><p>此优化需要设置 <a href="/api/interfaces/RawCommonProps#fastquery">fastQuery</a> 来启用<br> 并且节点在快照面板被标识 <code>可快速查找</code>, 否则查找不到</p></div><h3 id="query-scene" tabindex="-1">查询场景 <a class="header-anchor" href="#query-scene" aria-label="Permalink to “查询场景”">​</a></h3><p>一般情况下, 选择器 <code>[vid=&quot;name&quot;]</code> 需要从 根节点/事件节点 使用深度先序顺序遍历子孙节点并判断是否满足条件</p><p>但是 Android 提供了如下两个快速获取节点的 Api</p><ul><li><a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByViewId(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByViewId</a></li><li><a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByText(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByText</a></li></ul><p>这使得可以通过 <code>id</code>/<code>vid</code>/<code>text</code> 直接获取子孙节点</p><p>对此我们需要规定符合特定条件的选择器来调用这些 Api 从而跳过手动遍历子孙节点</p><h3 id="rule-format" tabindex="-1">规定格式 <a class="header-anchor" href="#rule-format" aria-label="Permalink to “规定格式”">​</a></h3><p>所有 <code>末尾属性选择器</code>的<code>第一个属性选择表达式</code>符合下面的结构之一</p><ul><li><code>[id=&#39;abc&#39;]</code></li><li><code>[vid=&#39;abc&#39;]</code></li><li><code>[text=&#39;abc&#39;]</code></li><li><code>[text^=&#39;abc&#39;]</code></li><li><code>[text*=&#39;abc&#39;]</code></li><li><code>[text$=&#39;abc&#39;]</code></li></ul><p>或者使用 <code>||</code> 将它们连接形成的逻辑表达式也符合条件, 即如下格式</p><ul><li><code>[id=&#39;abc&#39; || id=&#39;abc2&#39;]</code></li><li><code>[id=&#39;abc&#39; || vid=&#39;abc&#39; || text=&#39;abc&#39; || text^=&#39;abc&#39; || text*=&#39;abc&#39; || text$=&#39;abc&#39;]</code></li></ul><p>这些规定的格式都是为了提取 <code>id</code>/<code>vid</code>/<code>text</code> 来调用上面的两个 Android Api</p><p>下面给出实际示例: ✅ 表示符合格式, ❎ 表示不符合格式</p><ul><li><code>A &gt; B + C[id=&#39;x&#39;][childCount=2]</code> ✅</li><li><code>A &gt; B + C[childCount=2][id=&#39;x&#39;]</code> ❎</li><li><code>A &gt; B + C[id=&#39;x&#39; || text=&#39;manbaout&#39; || text*=&#39;ikun&#39;][childCount=2]</code> ✅</li><li><code>A &gt; B + C[childCount=2][id=&#39;x&#39; || text=&#39;manbaout&#39; || text*=&#39;ikun&#39;]</code> ❎</li></ul><p>这样一个选择器只能在右侧使用快速查询, 为了在中间的子选择器也能使用</p><p>额外规定如果属性选择器如果符合上面格式并且右侧是 <code>&lt;&lt;n</code>, 也能在局部使用快速查找</p><p>示例 <code>A &gt; B + C[id=&#39;x&#39;][childCount=2] &lt;&lt;n D</code> 中的 <code>C[id=&#39;x&#39;][childCount=2] &lt;&lt;n</code> 可以使用局部快速查找</p><p>下面给出满足局部查询优化的示例: ✅ 表示符合格式, ❎ 表示不符合格式</p><ul><li><code>A &gt; B + C[id=&#39;x&#39;][childCount=2] &lt;&lt;n D</code> ✅</li><li><code>A &gt; B + C[childCount=2][id=&#39;x&#39;] &lt;&lt;n D</code> ❎</li></ul><p>上面介绍的是只有一个局部选择器的情况, 下面给出多个局部快速查找的的示例</p><p>如 <code>A &gt; C[id=&#39;x&#39;] &lt;&lt;n D[id=&#39;y&#39;] &lt;&lt;n E</code>, 其中的 <code>C[id=&#39;x&#39;] &lt;&lt;n</code> 和 <code>D[id=&#39;y&#39;] &lt;&lt;n</code> 都可以使用局部快速查找</p><p>如果使用 <code>||</code>, <code>&amp;&amp;</code> 连接多个选择器时, 快速查询为它们的并集</p><p>如果选择器被 <code>!(xxx)</code> 包裹, 则不符合快速查询格式, 也就是 <code>!</code> 会取消其内部所有的快速查询</p><ul><li><code>(A + B[id=&#39;b&#39;]) || (C + D[id=&#39;d&#39;])</code> 的快速查询为 <code>id=&#39;b&#39;</code>, <code>id=&#39;d&#39;</code></li><li><code>(A + B[id=&#39;b&#39;]) &amp;&amp; (C + D[id=&#39;d&#39;])</code> 的快速查询为 <code>id=&#39;b&#39;</code>, <code>id=&#39;d&#39;</code></li><li><code>(A + B[id=&#39;b&#39;]) &amp;&amp; !(C + D[id=&#39;d&#39;])</code> 的快速查询为 <code>id=&#39;b&#39;</code></li></ul><p>需要注意的是它们内部的 局部快速查找 仍然独立成立</p><ul><li><code>(X[id=&#39;x&#39;] &lt;&lt;n A + B[id=&#39;b&#39;]) &amp;&amp; !(Y[id=&#39;y&#39;] &lt;&lt;n C + D[id=&#39;d&#39;])</code> 的快速查询为 <code>id=&#39;b&#39;</code>, 局部快速查询分别是 <code>id=&#39;x&#39;</code>, <code>id=&#39;y&#39;</code></li></ul><div class="note custom-block github-alert"><p class="custom-block-title">注意</p><p>如果选择器不存在满足快速查找的格式, fastQuery 是否开启都不影响查询复杂度</p></div><h3 id="optimize-example" tabindex="-1">优化示例 <a class="header-anchor" href="#optimize-example" aria-label="Permalink to “优化示例”">​</a></h3><p>以 <a href="https://i.gkd.li/i/16201605?gkd=W3ZpZD0iaW1hZ2UiXSA8PG4gW3ZpZD0icmVjeWNsZXJWaWV3Il0gPDxuIFt2aWQ9ImNvbnRlbnRfbGF5b3V0Il0" target="_blank" rel="noreferrer"><code>[vid=&quot;image&quot;] &lt;&lt;n [vid=&quot;recyclerView&quot;] &lt;&lt;n [vid=&quot;content_layout&quot;]</code></a> 为例</p><p>上面的选择器存在 3 个快速查找优化</p><ul><li><code>[vid=&quot;content_layout&quot;]</code> 从 根节点 优化查询找到 <code>content_layout</code></li><li><code>[vid=&quot;recyclerView&quot;]</code> 从 <code>content_layout</code> 优化查询找到 <code>recyclerView</code></li><li><code>[vid=&quot;image&quot;]</code> 从 <code>recyclerView</code> 优化查询找到 <code>image</code></li></ul><p>也就是只需要调用 <code>findAccessibilityNodeInfosByViewId</code> 3 次即可得到目标节点</p><p>如果是从根节点开始查询, 根据快照内的 选择器路径视图</p><ul><li><code>[vid=&quot;content_layout&quot;]</code> 从 根节点 需要 7 次找到 <code>content_layout</code></li><li><code>[vid=&quot;recyclerView&quot;]</code> 从 <code>content_layout</code> 需要 48 次找到 <code>recyclerView</code></li><li><code>[vid=&quot;image&quot;]</code> 从 <code>recyclerView</code> 需要 44 次找到 <code>image</code></li></ul>',55)]))}const h=d(t,[["render",l]]);export{b as __pageData,h as default};
@@ -1 +0,0 @@
1
- import{_ as d,c as o,o as c,aq as i}from"./chunks/framework.C9O3MI31.js";const b=JSON.parse('{"title":"查询优化","description":"","frontmatter":{},"headers":[],"relativePath":"guide/optimize.md","filePath":"guide/optimize.md","lastUpdated":1778124209000}'),t={name:"guide/optimize.md"};function l(a,e,n,r,p,u){return c(),o("div",null,e[0]||(e[0]=[i("",55)]))}const h=d(t,[["render",l]]);export{b as __pageData,h as default};
@@ -1 +0,0 @@
1
- import{_ as d,c as a,o as r,aq as e}from"./chunks/framework.C9O3MI31.js";const b=JSON.parse('{"title":"隐私政策","description":"","frontmatter":{},"headers":[],"relativePath":"guide/privacy.md","filePath":"guide/privacy.md","lastUpdated":1778124209000}'),i={name:"guide/privacy.md"};function l(h,t,n,o,p,s){return r(),a("div",null,t[0]||(t[0]=[e('<h1 id="title" tabindex="-1">隐私政策 <a class="header-anchor" href="#title" aria-label="Permalink to “隐私政策”">​</a></h1><p><strong>版本号:1.0</strong><br><strong>生效日期:以应用版本发布日期为准</strong></p><p>本隐私政策旨在说明我们如何处理您的数据。</p><p>GKD 应用秉持 “本地优先、最小权限、完全离线” 原则。</p><p><strong>我们不会收集、存储或上传任何用户隐私数据</strong>。</p><h2 id="p1" tabindex="-1">一、我们如何处理您的数据 <a class="header-anchor" href="#p1" aria-label="Permalink to “一、我们如何处理您的数据”">​</a></h2><table tabindex="0"><thead><tr><th>数据类型</th><th>使用目的</th><th>是否上传</th><th>存储位置</th></tr></thead><tbody><tr><td>本地规则与配置</td><td>用户自定义自动化行为</td><td>否</td><td>本地</td></tr><tr><td>屏幕截图(仅调试)</td><td>用户调试辅助功能</td><td>否</td><td>本地</td></tr><tr><td>屏幕文本信息</td><td>文本识别以实现查询功能</td><td>否</td><td>本地</td></tr><tr><td>本地日志</td><td>保存运行或报错信息供调试</td><td>否</td><td>本地</td></tr><tr><td>数据导出(配置/规则)</td><td>用户自行备份与迁移</td><td>否</td><td>本地或自行分享</td></tr></tbody></table><h2 id="p2" tabindex="-1">二、权限使用说明 <a class="header-anchor" href="#p2" aria-label="Permalink to “二、权限使用说明”">​</a></h2><table tabindex="0"><thead><tr><th>权限</th><th>是否必须</th><th>用途说明</th></tr></thead><tbody><tr><td>无障碍服务</td><td>❌ 否</td><td>用于模拟点击和界面读取(选用功能)</td></tr><tr><td>屏幕截图权限</td><td>❌ 否</td><td>调试界面内容(选用功能)</td></tr><tr><td>网络权限</td><td>❌ 否</td><td>检测更新或导入订阅或网络调试(选用功能)</td></tr><tr><td>外部存储写权限</td><td>❌ 否</td><td>部分旧设备导出文件时使用(选用功能)</td></tr></tbody></table><h2 id="p3" tabindex="-1">三、数据导入与导出说明 <a class="header-anchor" href="#p3" aria-label="Permalink to “三、数据导入与导出说明”">​</a></h2><ul><li>所有规则、配置、日志等数据仅保存在用户本地;</li><li>用户可通过系统分享功能导出文件,无需申请权限;</li><li>部分旧设备或旧系统中,普通版导出文件可能会申请写入下载目录权限,且用途仅限导出功能。</li></ul><h2 id="p4" tabindex="-1">四、第三方库说明 <a class="header-anchor" href="#p4" aria-label="Permalink to “四、第三方库说明”">​</a></h2><p>本应用所使用的第三方库均为开源项目,不包含任何用户跟踪、统计或联网行为。完整依赖列表可在项目开源仓库中查看。</p><h2 id="p5" tabindex="-1">五、用户权利 <a class="header-anchor" href="#p5" aria-label="Permalink to “五、用户权利”">​</a></h2><p>您有权:</p><ul><li>拒绝授予任何权限</li><li>随时导出、编辑或删除本地数据</li><li>卸载应用以终止使用</li></ul><h2 id="p6" tabindex="-1">六、隐私政策变更 <a class="header-anchor" href="#p6" aria-label="Permalink to “六、隐私政策变更”">​</a></h2><p>如隐私政策有更新,将随应用更新发布。您可在官网或应用内查阅最新版,继续使用即视为接受变更。</p>',18)]))}const _=d(i,[["render",l]]);export{b as __pageData,_ as default};
@@ -1 +0,0 @@
1
- import{_ as d,c as a,o as r,aq as e}from"./chunks/framework.C9O3MI31.js";const b=JSON.parse('{"title":"隐私政策","description":"","frontmatter":{},"headers":[],"relativePath":"guide/privacy.md","filePath":"guide/privacy.md","lastUpdated":1778124209000}'),i={name:"guide/privacy.md"};function l(h,t,n,o,p,s){return r(),a("div",null,t[0]||(t[0]=[e("",18)]))}const _=d(i,[["render",l]]);export{b as __pageData,_ as default};