@gkd-kit/docs 0.0.1707310164513 → 0.0.1707311575305
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vitepress/dist/404.html +6 -6
- package/.vitepress/dist/api/index.html +9 -9
- package/.vitepress/dist/api/interfaces/RawApp.html +9 -9
- package/.vitepress/dist/api/interfaces/RawAppGroup.html +10 -10
- package/.vitepress/dist/api/interfaces/RawAppRule.html +10 -10
- package/.vitepress/dist/api/interfaces/RawAppRuleProps.html +9 -9
- package/.vitepress/dist/api/interfaces/RawCategory.html +9 -9
- package/.vitepress/dist/api/interfaces/RawCommonProps.html +10 -10
- package/.vitepress/dist/api/interfaces/RawGlobalApp.html +9 -9
- package/.vitepress/dist/api/interfaces/RawGlobalGroup.html +10 -10
- package/.vitepress/dist/api/interfaces/RawGlobalRule.html +10 -10
- package/.vitepress/dist/api/interfaces/RawGlobalRuleProps.html +9 -9
- package/.vitepress/dist/api/interfaces/RawGroupProps.html +10 -10
- package/.vitepress/dist/api/interfaces/RawRuleProps.html +10 -10
- package/.vitepress/dist/api/interfaces/RawSubscription.html +9 -9
- package/.vitepress/dist/api/type-aliases/IArray.html +10 -10
- package/.vitepress/dist/api/type-aliases/Integer.html +10 -10
- package/.vitepress/dist/assets/{api_index.md.qg0PTsXu.js → api_index.md.Fnn7fAQP.js} +1 -1
- package/.vitepress/dist/assets/{api_index.md.qg0PTsXu.lean.js → api_index.md.Fnn7fAQP.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawApp.md.Xx6Gl_Vo.js → api_interfaces_RawApp.md.fc6I_RrC.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawApp.md.Xx6Gl_Vo.lean.js → api_interfaces_RawApp.md.fc6I_RrC.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawAppGroup.md.iPH_Ryur.js → api_interfaces_RawAppGroup.md.SHWJVcBG.js} +2 -2
- package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.SHWJVcBG.lean.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.kYKCOA_r.js +1 -0
- package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.kYKCOA_r.lean.js +1 -0
- package/.vitepress/dist/assets/{api_interfaces_RawAppRuleProps.md.CpnBN4T3.js → api_interfaces_RawAppRuleProps.md.kUOun-J5.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawAppRuleProps.md.CpnBN4T3.lean.js → api_interfaces_RawAppRuleProps.md.kUOun-J5.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawCategory.md.BbftQkeU.js → api_interfaces_RawCategory.md.04prqjmH.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawCategory.md.BbftQkeU.lean.js → api_interfaces_RawCategory.md.04prqjmH.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawCommonProps.md.8WCrzJDv.js → api_interfaces_RawCommonProps.md.4nTNWagF.js} +2 -2
- package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.4nTNWagF.lean.js +1 -0
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalApp.md.8gQwMn0O.js → api_interfaces_RawGlobalApp.md.XyhntH0b.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalApp.md.8gQwMn0O.lean.js → api_interfaces_RawGlobalApp.md.XyhntH0b.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalGroup.md.lXW_7uu9.js → api_interfaces_RawGlobalGroup.md.kWrK2iA4.js} +2 -2
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalGroup.md.lXW_7uu9.lean.js → api_interfaces_RawGlobalGroup.md.kWrK2iA4.lean.js} +1 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.LmghVfhf.js +1 -0
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalRule.md.6Wxn9D87.lean.js → api_interfaces_RawGlobalRule.md.LmghVfhf.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalRuleProps.md.IJsPvxKw.js → api_interfaces_RawGlobalRuleProps.md.C4GPyQwY.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGlobalRuleProps.md.IJsPvxKw.lean.js → api_interfaces_RawGlobalRuleProps.md.C4GPyQwY.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawGroupProps.md.6EBSrEzq.js → api_interfaces_RawGroupProps.md.uRczOUfY.js} +2 -2
- package/.vitepress/dist/assets/{api_interfaces_RawGroupProps.md.6EBSrEzq.lean.js → api_interfaces_RawGroupProps.md.uRczOUfY.lean.js} +1 -1
- package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.rT7xv_SO.js +1 -0
- package/.vitepress/dist/assets/{api_interfaces_RawRuleProps.md.4rWePZDv.lean.js → api_interfaces_RawRuleProps.md.rT7xv_SO.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawSubscription.md.TtRucg5C.js → api_interfaces_RawSubscription.md.KS-qtgFO.js} +1 -1
- package/.vitepress/dist/assets/{api_interfaces_RawSubscription.md.TtRucg5C.lean.js → api_interfaces_RawSubscription.md.KS-qtgFO.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_IArray.md.SzXlEqwS.js → api_type-aliases_IArray.md.YOTqGaCi.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_IArray.md.SzXlEqwS.lean.js → api_type-aliases_IArray.md.YOTqGaCi.lean.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_Integer.md.ZefQAXKm.js → api_type-aliases_Integer.md.EMl-Vf1_.js} +1 -1
- package/.vitepress/dist/assets/{api_type-aliases_Integer.md.ZefQAXKm.lean.js → api_type-aliases_Integer.md.EMl-Vf1_.lean.js} +1 -1
- package/.vitepress/dist/assets/{app.b-uREc2D.js → app.DazYiPtw.js} +1 -1
- package/.vitepress/dist/assets/chunks/{@localSearchIndexroot.0lVEGynl.js → @localSearchIndexroot.3CEFalsb.js} +1 -1
- package/.vitepress/dist/assets/chunks/{VPLocalSearchBox.oasC-smd.js → VPLocalSearchBox.RgXUfnEK.js} +2 -2
- package/.vitepress/dist/assets/chunks/{framework.IfA2_2T5.js → framework.CR5kvWbS.js} +4 -4
- package/.vitepress/dist/assets/chunks/theme.prJi8Rkb.js +9 -0
- package/.vitepress/dist/assets/{faq_index.md.UKJ7UpJ0.js → faq_index.md.uJMFdSCI.js} +1 -1
- package/.vitepress/dist/assets/{faq_index.md.UKJ7UpJ0.lean.js → faq_index.md.uJMFdSCI.lean.js} +1 -1
- package/.vitepress/dist/assets/{guide_index.md.AnsVcmGC.js → guide_index.md.lL_UC74O.js} +2 -2
- package/.vitepress/dist/assets/{guide_index.md.AnsVcmGC.lean.js → guide_index.md.lL_UC74O.lean.js} +2 -2
- package/.vitepress/dist/assets/{index.md.DPFMZPAE.js → index.md.ysASpwwR.js} +1 -1
- package/.vitepress/dist/assets/{index.md.DPFMZPAE.lean.js → index.md.ysASpwwR.lean.js} +1 -1
- package/.vitepress/dist/assets/{scription_index.md.gqW_rGK0.js → scription_index.md.txihUAHs.js} +1 -1
- package/.vitepress/dist/assets/{scription_index.md.gqW_rGK0.lean.js → scription_index.md.txihUAHs.lean.js} +1 -1
- package/.vitepress/dist/assets/{selector_index.md.4OmFycFK.js → selector_index.md.a_RVIBQi.js} +1 -1
- package/.vitepress/dist/assets/{selector_index.md.4OmFycFK.lean.js → selector_index.md.a_RVIBQi.lean.js} +1 -1
- package/.vitepress/dist/assets/{style.WoxoFVlf.css → style.neYbxcEm.css} +1 -1
- package/.vitepress/dist/faq/index.html +9 -9
- package/.vitepress/dist/guide/index.html +9 -9
- package/.vitepress/dist/hashmap.json +1 -1
- package/.vitepress/dist/index.html +9 -9
- package/.vitepress/dist/scription/index.html +9 -9
- package/.vitepress/dist/selector/index.html +9 -9
- package/package.json +1 -1
- package/.vitepress/dist/assets/api_interfaces_RawAppGroup.md.iPH_Ryur.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.yCCkftbY.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawAppRule.md.yCCkftbY.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawCommonProps.md.8WCrzJDv.lean.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawGlobalRule.md.6Wxn9D87.js +0 -1
- package/.vitepress/dist/assets/api_interfaces_RawRuleProps.md.4rWePZDv.js +0 -1
- package/.vitepress/dist/assets/chunks/theme.LuVFQIpW.js +0 -9
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as a,o as r,V as o}from"./chunks/framework.IfA2_2T5.js";const f=JSON.parse('{"title":"RawAppGroup","description":"","frontmatter":{},"headers":[],"relativePath":"api/interfaces/RawAppGroup.md","filePath":"api/interfaces/RawAppGroup.md","lastUpdated":null}'),t={name:"api/interfaces/RawAppGroup.md"},i=o("",170),s=[i];function d(h,l,c,p,n,u){return r(),a("div",null,s)}const b=e(t,[["render",d]]);export{f as __pageData,b as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as a,o as t,V as i}from"./chunks/framework.IfA2_2T5.js";const k=JSON.parse('{"title":"RawAppRule","description":"","frontmatter":{},"headers":[],"relativePath":"api/interfaces/RawAppRule.md","filePath":"api/interfaces/RawAppRule.md","lastUpdated":null}'),o={name:"api/interfaces/RawAppRule.md"},r=i('<h1 id="rawapprule" tabindex="-1">RawAppRule <a class="header-anchor" href="#rawapprule" aria-label="Permalink to "RawAppRule""></a></h1><p>应用规则</p><h2 id="extends" tabindex="-1">Extends <a class="header-anchor" href="#extends" aria-label="Permalink to "Extends""></a></h2><ul><li><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawAppRuleProps.html"><code>RawAppRuleProps</code></a></li></ul><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties""></a></h2><h3 id="actioncd" tabindex="-1">actionCd? <a class="header-anchor" href="#actioncd" aria-label="Permalink to "actionCd?""></a></h3><blockquote><p><strong>actionCd</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>当前规则的冷却时间, 或者执行 action 最小间隔</p><h4 id="default" tabindex="-1">Default <a class="header-anchor" href="#default" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1000</span></span></code></pre></div><h4 id="inherited-from" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actioncd"><code>actionCd</code></a></p><hr><h3 id="actiondelay" tabindex="-1">actionDelay? <a class="header-anchor" href="#actiondelay" aria-label="Permalink to "actionDelay?""></a></h3><blockquote><p><strong>actionDelay</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>延迟执行: 查询到节点->等待一段时间->再次查询到节点则执行对应 action</p><h4 id="inherited-from-1" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-1" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actiondelay"><code>actionDelay</code></a></p><hr><h3 id="quickfind" tabindex="-1">quickFind? <a class="header-anchor" href="#quickfind" aria-label="Permalink to "quickFind?""></a></h3><blockquote><p><strong>quickFind</strong>?: <code>boolean</code></p></blockquote><p>如果开启, 此规则下的所有 <code>末尾属性选择器</code>的<code>第一个属性选择表达式</code>符合下面的结构之一的选择器 将使用快速查找</p><ul><li>[id='abc']</li><li>[vid='abc']</li><li>[text='abc']</li><li>[text^='abc']</li><li>[text*='abc']</li><li>[text$='abc']</li></ul><p>比如 <code>A > B + C[id='x'][childCount=2]</code> 符合, 但 <code>A > B + C[childCount=2][id='x']</code> 不符合</p><p>它的底层原理是 跳过手动遍历所有节点 直接调用 <a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByViewId(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByViewId</a> / <a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByText(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByText</a> 得到可匹配节点</p><p>大多数情况下都能查询到, 在少数某些复杂结构下, 即使目标节点存在, 快速查询也不一定查询到</p><p>比如 <a href="https://github.com/gkd-kit/subscription/blob/1ae87452d287b558f58f9c4e4448a3190e212ca1/src/apps/com.zidongdianji.ts#L26" target="_blank" rel="noreferrer">Image <code>< &#64;View + View ></code>2 [text*='广告']</a> 虽然符合快速查询的条件但是使用 <code>findAccessibilityNodeInfosByText("广告")</code> 并不能查询到节点</p><p>它是优点是快速, 因为遍历所有节点是一个耗时行为, 虽然多数情况下这种耗时较低</p><p>但是在某些软件比如 哔哩哔哩 的开屏广告在这种耗时下延迟可达 1-2s, 这也是导致 <a href="https://github.com/gkd-kit/gkd/issues/60" target="_blank" rel="noreferrer">gkd-kit/gkd#60</a> 的原因</p><hr><p>v1.4.1 版本后生成的快照时将标识每个节点是否可 quickFind, 网页审查工具属性面板顶部会注明这个标识, 同时节点树如果字体的标粗体也表示这个节点可 quickFind</p><p><a href="https://i.gkd.li/import/13316168" target="_blank" rel="noreferrer"><img src="https://github.com/gkd-kit/subscription/assets/38517192/80cdbad1-fa8d-4415-81a1-cecaa7d69e33" alt="image"></a></p><h4 id="inherited-from-2" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-2" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#quickfind"><code>quickFind</code></a></p><hr><h3 id="matchdelay" tabindex="-1">matchDelay? <a class="header-anchor" href="#matchdelay" aria-label="Permalink to "matchDelay?""></a></h3><blockquote><p><strong>matchDelay</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>匹配延迟</p><p>规则准备匹配/或被唤醒时, 等待一段时间, 使此规则参与查询屏幕节点</p><h4 id="inherited-from-3" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-3" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#matchdelay"><code>matchDelay</code></a></p><hr><h3 id="matchtime" tabindex="-1">matchTime? <a class="header-anchor" href="#matchtime" aria-label="Permalink to "matchTime?""></a></h3><blockquote><p><strong>matchTime</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>规则匹配时间, 此规则参与查询屏幕节点时, 等待一段时间, 休眠此规则</p><p>例如某些应用的 开屏广告 的 activityId 容易误触/太广泛, 而开屏广告几乎只在应用切出来时出现, 设置一个有限匹配时间能避免后续的误触</p><h4 id="inherited-from-4" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-4" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#matchtime"><code>matchTime</code></a></p><hr><h3 id="actionmaximum" tabindex="-1">actionMaximum? <a class="header-anchor" href="#actionmaximum" aria-label="Permalink to "actionMaximum?""></a></h3><blockquote><p><strong>actionMaximum</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>最大执行次数</p><p>规则的 action 被执行的最大次数, 达到最大次数时, 休眠此规则</p><p>功能类似 matchTime, 适用于只需要执行一次的: 开屏广告/更新弹窗/青少年弹窗 一类规则</p><p>当规则准备匹配/或被唤醒时, 将重新计算次数</p><h4 id="inherited-from-5" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-5" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actionmaximum"><code>actionMaximum</code></a></p><hr><h3 id="resetmatch" tabindex="-1">resetMatch? <a class="header-anchor" href="#resetmatch" aria-label="Permalink to "resetMatch?""></a></h3><blockquote><p><strong>resetMatch</strong>?: <code>"activity"</code> | <code>"app"</code></p></blockquote><p>当规则因为 matchTime/actionMaximum 而休眠时, 如何唤醒此规则</p><h4 id="default-1" tabindex="-1">Default <a class="header-anchor" href="#default-1" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'activity'</span></span></code></pre></div><h4 id="example" tabindex="-1">Example <a class="header-anchor" href="#example" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'activity'</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 当 activity 刷新时, 唤醒规则</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 刷新 activity 并不代表 activityId 变化</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如 哔哩哔哩视频播放页 底部点击推荐视频 进入另一个 视频播放页, 进入了新 activity 但是 activityId 并没有变化</span></span></code></pre></div><h4 id="example-1" tabindex="-1">Example <a class="header-anchor" href="#example-1" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'app'</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 重新进入 app 时, 唤醒规则</span></span></code></pre></div><h4 id="inherited-from-6" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-6" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#resetmatch"><code>resetMatch</code></a></p><hr><h3 id="actioncdkey" tabindex="-1">actionCdKey? <a class="header-anchor" href="#actioncdkey" aria-label="Permalink to "actionCdKey?""></a></h3><blockquote><p><strong>actionCdKey</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>与这个 key 的 rule 共享 cd</p><p>比如开屏广告可能需要多个 rule 去匹配, 当一个 rule 触发时, 其它 rule 的触发是无意义的</p><p>如果你对这个 key 的 rule 设置 actionCd=3000, 那么当这个 rule 和 本 rule 触发任意一个时, 在 3000毫秒 内两个 rule 都将进入 cd</p><h4 id="inherited-from-7" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-7" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actioncdkey"><code>actionCdKey</code></a></p><hr><h3 id="actionmaximumkey" tabindex="-1">actionMaximumKey? <a class="header-anchor" href="#actionmaximumkey" aria-label="Permalink to "actionMaximumKey?""></a></h3><blockquote><p><strong>actionMaximumKey</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>与这个 key 的 rule 共享次数</p><p>比如开屏广告可能需要多个 rule 去匹配, 当一个 rule 触发时, 其它 rule 的触发是无意义的</p><p>如果你对这个 key 的 rule 设置 actionMaximum=1, 那么当这个 rule 和 本 rule 触发任意一个时, 两个 rule 都将进入休眠</p><h4 id="inherited-from-8" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-8" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actionmaximumkey"><code>actionMaximumKey</code></a></p><hr><h3 id="order" tabindex="-1">order? <a class="header-anchor" href="#order" aria-label="Permalink to "order?""></a></h3><blockquote><p><strong>order</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>规则参与匹配的顺序, 数字越小越先匹配</p><p>如果两个规则 order 相同, 按照 groups 中的数组顺序匹配, app 类型规则顺序优先于 global 类型规则</p><p>属于不同订阅的规则按照订阅列表中顺序匹配, 长按订阅卡片可以拖动排序</p><h4 id="default-2" tabindex="-1">Default <a class="header-anchor" href="#default-2" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span></span></code></pre></div><h4 id="inherited-from-9" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-9" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#order"><code>order</code></a></p><hr><h3 id="snapshoturls" tabindex="-1">snapshotUrls? <a class="header-anchor" href="#snapshoturls" aria-label="Permalink to "snapshotUrls?""></a></h3><blockquote><p><strong>snapshotUrls</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>当前 规则/规则组 的快照链接, 增强订阅可维护性</p><h4 id="inherited-from-10" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-10" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#snapshoturls"><code>snapshotUrls</code></a></p><hr><h3 id="exampleurls" tabindex="-1">exampleUrls? <a class="header-anchor" href="#exampleurls" aria-label="Permalink to "exampleUrls?""></a></h3><blockquote><p><strong>exampleUrls</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>当前 规则/规则组 的规则在手机上的运行示例, 支持 jpg/png/webp/gif</p><p>如果规则是多个规则组合起来的, 可以更好看懂规则到底在干啥, 比如 点击关闭按钮-选择关闭原因-确认关闭 这种广告用 gif 看着更清楚在干啥</p><h4 id="inherited-from-11" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-11" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#exampleurls"><code>exampleUrls</code></a></p><hr><h3 id="key" tabindex="-1">key? <a class="header-anchor" href="#key" aria-label="Permalink to "key?""></a></h3><blockquote><p><strong>key</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>当前规则在列表中的唯一标识</p><p>key 没有顺序大小之分, 可以是任意数字</p><p>设置后不可更改, 否则造成点击记录错乱</p><h4 id="inherited-from-12" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-12" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#key"><code>key</code></a></p><hr><h3 id="name" tabindex="-1">name? <a class="header-anchor" href="#name" aria-label="Permalink to "name?""></a></h3><blockquote><p><strong>name</strong>?: <code>string</code></p></blockquote><p>规则名称</p><h4 id="inherited-from-13" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-13" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#name"><code>name</code></a></p><hr><h3 id="prekeys" tabindex="-1">preKeys? <a class="header-anchor" href="#prekeys" aria-label="Permalink to "preKeys?""></a></h3><blockquote><p><strong>preKeys</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<a href="./../type-aliases/Integer.html"><code>Integer</code></a>></p></blockquote><p>要求当前列表里某个 key 刚刚执行</p><p>比如点击关闭按钮-选择关闭原因-确认关闭, key 分别是 1,2,3, preKeys 分别是 [],[1],[2]</p><p>那么 选择关闭原因 必须要求 比如点击关闭按钮 刚刚点击过才能执行, 确认关闭 也要求 选择关闭原因 刚刚点击过才执行</p><p>否则后面的规则不会触发, 也就是要求规则按顺序执行, 这是为了防止规则匹配范围太过广泛而误触</p><h4 id="inherited-from-14" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-14" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#prekeys"><code>preKeys</code></a></p><hr><h3 id="action" tabindex="-1">action? <a class="header-anchor" href="#action" aria-label="Permalink to "action?""></a></h3><blockquote><p><strong>action</strong>?: <code>"click"</code> | <code>"clickNode"</code> | <code>"clickCenter"</code> | <code>"back"</code> | <code>"longClick"</code> | <code>"longClickNode"</code> | <code>"longClickCenter"</code></p></blockquote><h4 id="example-2" tabindex="-1">Example <a class="header-anchor" href="#example-2" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`click`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 为默认值, 如果目标节点是 clickable 的, 则使用 `clickNode`, 反之使用 `clickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 并且当 `clickNode` 事件没有被应用接收时, 则使用 `clickCenter`</span></span></code></pre></div><h4 id="example-3" tabindex="-1">Example <a class="header-anchor" href="#example-3" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`clickNode`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个点击无障碍节点事件. 即使节点在屏幕外部/或者被其它节点遮挡,也依然能够正确触发点击目标节点</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 但是如果目标节点不是 clickable 的, 目标应用通常不响应这个点击事件, 也就是点击无效果</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 在极少数情况下, 即使节点是 clickable 的,应用显示接收但是不响应节点点击事件, 此时需要手动设置 `clickCenter`</span></span></code></pre></div><h4 id="example-4" tabindex="-1">Example <a class="header-anchor" href="#example-4" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`clickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 计算出此控件的中心的坐标并且如果这个坐标在屏幕内部,那么就向系统发起一个点击屏幕坐标事件</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如果这个坐标不在屏幕内部, 当作未匹配</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 另外如果目标节点的位置被其它节点遮挡覆盖, 则会点击触发最上层的节点(可能不是目标节点)</span></span></code></pre></div><h4 id="example-5" tabindex="-1">Example <a class="header-anchor" href="#example-5" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`back`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个返回事件, 相当于按下返回键</span></span></code></pre></div><h4 id="example-6" tabindex="-1">Example <a class="header-anchor" href="#example-6" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClick`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如果目标节点是 longClickable 的, 则使用 `longClickNode`, 反之使用 `longClickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 并且当 `longClickNode` 事件没有被应用接收时, 则使用 `longClickCenter`</span></span></code></pre></div><h4 id="example-7" tabindex="-1">Example <a class="header-anchor" href="#example-7" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClickNode`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个长按无障碍节点事件,与 clickNode 类似</span></span></code></pre></div><h4 id="example-8" tabindex="-1">Example <a class="header-anchor" href="#example-8" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 与 clickCenter 类似, 长按时间为 400 毫秒</span></span></code></pre></div><h4 id="inherited-from-15" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-15" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#action"><code>action</code></a></p><hr><h3 id="matches" tabindex="-1">matches? <a class="header-anchor" href="#matches" aria-label="Permalink to "matches?""></a></h3><blockquote><p><strong>matches</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>一个或者多个合法的 GKD 选择器, 如果每个选择器都能匹配上节点, 那么点击最后一个选择器的目标节点</p><h4 id="inherited-from-16" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-16" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#matches"><code>matches</code></a></p><hr><h3 id="excludematches" tabindex="-1">excludeMatches? <a class="header-anchor" href="#excludematches" aria-label="Permalink to "excludeMatches?""></a></h3><blockquote><p><strong>excludeMatches</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>一个或者多个合法的 GKD 选择器, 如果存在一个选择器匹配上节点, 则停止匹配此规则</p><h4 id="inherited-from-17" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-17" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#excludematches"><code>excludeMatches</code></a></p><hr><h3 id="activityids" tabindex="-1">activityIds? <a class="header-anchor" href="#activityids" aria-label="Permalink to "activityIds?""></a></h3><blockquote><p><strong>activityIds</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>如果 设备界面Id startWith activityIds 的任意一项, 则匹配</p><p>如果要匹配所有界面: <code>undefined</code> (不填写) 或者 <code>[]</code> (避免使用上级属性)</p><h4 id="inherited-from-18" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-18" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawAppRuleProps.html"><code>RawAppRuleProps</code></a>.<a href="./RawAppRuleProps.html#activityids"><code>activityIds</code></a></p><hr><h3 id="excludeactivityids" tabindex="-1">excludeActivityIds? <a class="header-anchor" href="#excludeactivityids" aria-label="Permalink to "excludeActivityIds?""></a></h3><blockquote><p><strong>excludeActivityIds</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>如果 设备界面Id startWith excludeActivityIds 的任意一项, 则排除匹配</p><p>优先级高于 activityIds</p><h4 id="inherited-from-19" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-19" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawAppRuleProps.html"><code>RawAppRuleProps</code></a>.<a href="./RawAppRuleProps.html#excludeactivityids"><code>excludeActivityIds</code></a></p>',180),s=[r];function l(h,n,c,d,p,u){return t(),a("div",null,s)}const f=e(o,[["render",l]]);export{k as __pageData,f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as a,o as t,V as i}from"./chunks/framework.IfA2_2T5.js";const k=JSON.parse('{"title":"RawAppRule","description":"","frontmatter":{},"headers":[],"relativePath":"api/interfaces/RawAppRule.md","filePath":"api/interfaces/RawAppRule.md","lastUpdated":null}'),o={name:"api/interfaces/RawAppRule.md"},r=i("",180),s=[r];function l(h,n,c,d,p,u){return t(),a("div",null,s)}const f=e(o,[["render",l]]);export{k as __pageData,f as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as a,o as t,V as i}from"./chunks/framework.IfA2_2T5.js";const g=JSON.parse('{"title":"RawCommonProps","description":"","frontmatter":{},"headers":[],"relativePath":"api/interfaces/RawCommonProps.md","filePath":"api/interfaces/RawCommonProps.md","lastUpdated":null}'),o={name:"api/interfaces/RawCommonProps.md"},s=i("",88),r=[s];function l(n,c,p,d,h,u){return t(),a("div",null,r)}const b=e(o,[["render",l]]);export{g as __pageData,b as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as a,o as t,V as o}from"./chunks/framework.IfA2_2T5.js";const k=JSON.parse('{"title":"RawGlobalRule","description":"","frontmatter":{},"headers":[],"relativePath":"api/interfaces/RawGlobalRule.md","filePath":"api/interfaces/RawGlobalRule.md","lastUpdated":null}'),i={name:"api/interfaces/RawGlobalRule.md"},l=o('<h1 id="rawglobalrule" tabindex="-1">RawGlobalRule <a class="header-anchor" href="#rawglobalrule" aria-label="Permalink to "RawGlobalRule""></a></h1><p>全局规则</p><h2 id="extends" tabindex="-1">Extends <a class="header-anchor" href="#extends" aria-label="Permalink to "Extends""></a></h2><ul><li><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawGlobalRuleProps.html"><code>RawGlobalRuleProps</code></a></li></ul><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties""></a></h2><h3 id="actioncd" tabindex="-1">actionCd? <a class="header-anchor" href="#actioncd" aria-label="Permalink to "actionCd?""></a></h3><blockquote><p><strong>actionCd</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>当前规则的冷却时间, 或者执行 action 最小间隔</p><h4 id="default" tabindex="-1">Default <a class="header-anchor" href="#default" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1000</span></span></code></pre></div><h4 id="inherited-from" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actioncd"><code>actionCd</code></a></p><hr><h3 id="actiondelay" tabindex="-1">actionDelay? <a class="header-anchor" href="#actiondelay" aria-label="Permalink to "actionDelay?""></a></h3><blockquote><p><strong>actionDelay</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>延迟执行: 查询到节点->等待一段时间->再次查询到节点则执行对应 action</p><h4 id="inherited-from-1" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-1" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actiondelay"><code>actionDelay</code></a></p><hr><h3 id="quickfind" tabindex="-1">quickFind? <a class="header-anchor" href="#quickfind" aria-label="Permalink to "quickFind?""></a></h3><blockquote><p><strong>quickFind</strong>?: <code>boolean</code></p></blockquote><p>如果开启, 此规则下的所有 <code>末尾属性选择器</code>的<code>第一个属性选择表达式</code>符合下面的结构之一的选择器 将使用快速查找</p><ul><li>[id='abc']</li><li>[vid='abc']</li><li>[text='abc']</li><li>[text^='abc']</li><li>[text*='abc']</li><li>[text$='abc']</li></ul><p>比如 <code>A > B + C[id='x'][childCount=2]</code> 符合, 但 <code>A > B + C[childCount=2][id='x']</code> 不符合</p><p>它的底层原理是 跳过手动遍历所有节点 直接调用 <a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByViewId(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByViewId</a> / <a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByText(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByText</a> 得到可匹配节点</p><p>大多数情况下都能查询到, 在少数某些复杂结构下, 即使目标节点存在, 快速查询也不一定查询到</p><p>比如 <a href="https://github.com/gkd-kit/subscription/blob/1ae87452d287b558f58f9c4e4448a3190e212ca1/src/apps/com.zidongdianji.ts#L26" target="_blank" rel="noreferrer">Image <code>< &#64;View + View ></code>2 [text*='广告']</a> 虽然符合快速查询的条件但是使用 <code>findAccessibilityNodeInfosByText("广告")</code> 并不能查询到节点</p><p>它是优点是快速, 因为遍历所有节点是一个耗时行为, 虽然多数情况下这种耗时较低</p><p>但是在某些软件比如 哔哩哔哩 的开屏广告在这种耗时下延迟可达 1-2s, 这也是导致 <a href="https://github.com/gkd-kit/gkd/issues/60" target="_blank" rel="noreferrer">gkd-kit/gkd#60</a> 的原因</p><hr><p>v1.4.1 版本后生成的快照时将标识每个节点是否可 quickFind, 网页审查工具属性面板顶部会注明这个标识, 同时节点树如果字体的标粗体也表示这个节点可 quickFind</p><p><a href="https://i.gkd.li/import/13316168" target="_blank" rel="noreferrer"><img src="https://github.com/gkd-kit/subscription/assets/38517192/80cdbad1-fa8d-4415-81a1-cecaa7d69e33" alt="image"></a></p><h4 id="inherited-from-2" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-2" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#quickfind"><code>quickFind</code></a></p><hr><h3 id="matchdelay" tabindex="-1">matchDelay? <a class="header-anchor" href="#matchdelay" aria-label="Permalink to "matchDelay?""></a></h3><blockquote><p><strong>matchDelay</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>匹配延迟</p><p>规则准备匹配/或被唤醒时, 等待一段时间, 使此规则参与查询屏幕节点</p><h4 id="inherited-from-3" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-3" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#matchdelay"><code>matchDelay</code></a></p><hr><h3 id="matchtime" tabindex="-1">matchTime? <a class="header-anchor" href="#matchtime" aria-label="Permalink to "matchTime?""></a></h3><blockquote><p><strong>matchTime</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>规则匹配时间, 此规则参与查询屏幕节点时, 等待一段时间, 休眠此规则</p><p>例如某些应用的 开屏广告 的 activityId 容易误触/太广泛, 而开屏广告几乎只在应用切出来时出现, 设置一个有限匹配时间能避免后续的误触</p><h4 id="inherited-from-4" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-4" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#matchtime"><code>matchTime</code></a></p><hr><h3 id="actionmaximum" tabindex="-1">actionMaximum? <a class="header-anchor" href="#actionmaximum" aria-label="Permalink to "actionMaximum?""></a></h3><blockquote><p><strong>actionMaximum</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>最大执行次数</p><p>规则的 action 被执行的最大次数, 达到最大次数时, 休眠此规则</p><p>功能类似 matchTime, 适用于只需要执行一次的: 开屏广告/更新弹窗/青少年弹窗 一类规则</p><p>当规则准备匹配/或被唤醒时, 将重新计算次数</p><h4 id="inherited-from-5" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-5" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actionmaximum"><code>actionMaximum</code></a></p><hr><h3 id="resetmatch" tabindex="-1">resetMatch? <a class="header-anchor" href="#resetmatch" aria-label="Permalink to "resetMatch?""></a></h3><blockquote><p><strong>resetMatch</strong>?: <code>"activity"</code> | <code>"app"</code></p></blockquote><p>当规则因为 matchTime/actionMaximum 而休眠时, 如何唤醒此规则</p><h4 id="default-1" tabindex="-1">Default <a class="header-anchor" href="#default-1" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'activity'</span></span></code></pre></div><h4 id="example" tabindex="-1">Example <a class="header-anchor" href="#example" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'activity'</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 当 activity 刷新时, 唤醒规则</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 刷新 activity 并不代表 activityId 变化</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如 哔哩哔哩视频播放页 底部点击推荐视频 进入另一个 视频播放页, 进入了新 activity 但是 activityId 并没有变化</span></span></code></pre></div><h4 id="example-1" tabindex="-1">Example <a class="header-anchor" href="#example-1" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'app'</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 重新进入 app 时, 唤醒规则</span></span></code></pre></div><h4 id="inherited-from-6" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-6" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#resetmatch"><code>resetMatch</code></a></p><hr><h3 id="actioncdkey" tabindex="-1">actionCdKey? <a class="header-anchor" href="#actioncdkey" aria-label="Permalink to "actionCdKey?""></a></h3><blockquote><p><strong>actionCdKey</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>与这个 key 的 rule 共享 cd</p><p>比如开屏广告可能需要多个 rule 去匹配, 当一个 rule 触发时, 其它 rule 的触发是无意义的</p><p>如果你对这个 key 的 rule 设置 actionCd=3000, 那么当这个 rule 和 本 rule 触发任意一个时, 在 3000毫秒 内两个 rule 都将进入 cd</p><h4 id="inherited-from-7" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-7" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actioncdkey"><code>actionCdKey</code></a></p><hr><h3 id="actionmaximumkey" tabindex="-1">actionMaximumKey? <a class="header-anchor" href="#actionmaximumkey" aria-label="Permalink to "actionMaximumKey?""></a></h3><blockquote><p><strong>actionMaximumKey</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>与这个 key 的 rule 共享次数</p><p>比如开屏广告可能需要多个 rule 去匹配, 当一个 rule 触发时, 其它 rule 的触发是无意义的</p><p>如果你对这个 key 的 rule 设置 actionMaximum=1, 那么当这个 rule 和 本 rule 触发任意一个时, 两个 rule 都将进入休眠</p><h4 id="inherited-from-8" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-8" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#actionmaximumkey"><code>actionMaximumKey</code></a></p><hr><h3 id="order" tabindex="-1">order? <a class="header-anchor" href="#order" aria-label="Permalink to "order?""></a></h3><blockquote><p><strong>order</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>规则参与匹配的顺序, 数字越小越先匹配</p><p>如果两个规则 order 相同, 按照 groups 中的数组顺序匹配, app 类型规则顺序优先于 global 类型规则</p><p>属于不同订阅的规则按照订阅列表中顺序匹配, 长按订阅卡片可以拖动排序</p><h4 id="default-2" tabindex="-1">Default <a class="header-anchor" href="#default-2" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span></span></code></pre></div><h4 id="inherited-from-9" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-9" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#order"><code>order</code></a></p><hr><h3 id="snapshoturls" tabindex="-1">snapshotUrls? <a class="header-anchor" href="#snapshoturls" aria-label="Permalink to "snapshotUrls?""></a></h3><blockquote><p><strong>snapshotUrls</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>当前 规则/规则组 的快照链接, 增强订阅可维护性</p><h4 id="inherited-from-10" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-10" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#snapshoturls"><code>snapshotUrls</code></a></p><hr><h3 id="exampleurls" tabindex="-1">exampleUrls? <a class="header-anchor" href="#exampleurls" aria-label="Permalink to "exampleUrls?""></a></h3><blockquote><p><strong>exampleUrls</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>当前 规则/规则组 的规则在手机上的运行示例, 支持 jpg/png/webp/gif</p><p>如果规则是多个规则组合起来的, 可以更好看懂规则到底在干啥, 比如 点击关闭按钮-选择关闭原因-确认关闭 这种广告用 gif 看着更清楚在干啥</p><h4 id="inherited-from-11" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-11" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#exampleurls"><code>exampleUrls</code></a></p><hr><h3 id="key" tabindex="-1">key? <a class="header-anchor" href="#key" aria-label="Permalink to "key?""></a></h3><blockquote><p><strong>key</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>当前规则在列表中的唯一标识</p><p>key 没有顺序大小之分, 可以是任意数字</p><p>设置后不可更改, 否则造成点击记录错乱</p><h4 id="inherited-from-12" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-12" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#key"><code>key</code></a></p><hr><h3 id="name" tabindex="-1">name? <a class="header-anchor" href="#name" aria-label="Permalink to "name?""></a></h3><blockquote><p><strong>name</strong>?: <code>string</code></p></blockquote><p>规则名称</p><h4 id="inherited-from-13" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-13" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#name"><code>name</code></a></p><hr><h3 id="prekeys" tabindex="-1">preKeys? <a class="header-anchor" href="#prekeys" aria-label="Permalink to "preKeys?""></a></h3><blockquote><p><strong>preKeys</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<a href="./../type-aliases/Integer.html"><code>Integer</code></a>></p></blockquote><p>要求当前列表里某个 key 刚刚执行</p><p>比如点击关闭按钮-选择关闭原因-确认关闭, key 分别是 1,2,3, preKeys 分别是 [],[1],[2]</p><p>那么 选择关闭原因 必须要求 比如点击关闭按钮 刚刚点击过才能执行, 确认关闭 也要求 选择关闭原因 刚刚点击过才执行</p><p>否则后面的规则不会触发, 也就是要求规则按顺序执行, 这是为了防止规则匹配范围太过广泛而误触</p><h4 id="inherited-from-14" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-14" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#prekeys"><code>preKeys</code></a></p><hr><h3 id="action" tabindex="-1">action? <a class="header-anchor" href="#action" aria-label="Permalink to "action?""></a></h3><blockquote><p><strong>action</strong>?: <code>"click"</code> | <code>"clickNode"</code> | <code>"clickCenter"</code> | <code>"back"</code> | <code>"longClick"</code> | <code>"longClickNode"</code> | <code>"longClickCenter"</code></p></blockquote><h4 id="example-2" tabindex="-1">Example <a class="header-anchor" href="#example-2" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`click`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 为默认值, 如果目标节点是 clickable 的, 则使用 `clickNode`, 反之使用 `clickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 并且当 `clickNode` 事件没有被应用接收时, 则使用 `clickCenter`</span></span></code></pre></div><h4 id="example-3" tabindex="-1">Example <a class="header-anchor" href="#example-3" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`clickNode`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个点击无障碍节点事件. 即使节点在屏幕外部/或者被其它节点遮挡,也依然能够正确触发点击目标节点</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 但是如果目标节点不是 clickable 的, 目标应用通常不响应这个点击事件, 也就是点击无效果</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 在极少数情况下, 即使节点是 clickable 的,应用显示接收但是不响应节点点击事件, 此时需要手动设置 `clickCenter`</span></span></code></pre></div><h4 id="example-4" tabindex="-1">Example <a class="header-anchor" href="#example-4" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`clickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 计算出此控件的中心的坐标并且如果这个坐标在屏幕内部,那么就向系统发起一个点击屏幕坐标事件</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如果这个坐标不在屏幕内部, 当作未匹配</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 另外如果目标节点的位置被其它节点遮挡覆盖, 则会点击触发最上层的节点(可能不是目标节点)</span></span></code></pre></div><h4 id="example-5" tabindex="-1">Example <a class="header-anchor" href="#example-5" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`back`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个返回事件, 相当于按下返回键</span></span></code></pre></div><h4 id="example-6" tabindex="-1">Example <a class="header-anchor" href="#example-6" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClick`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如果目标节点是 longClickable 的, 则使用 `longClickNode`, 反之使用 `longClickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 并且当 `longClickNode` 事件没有被应用接收时, 则使用 `longClickCenter`</span></span></code></pre></div><h4 id="example-7" tabindex="-1">Example <a class="header-anchor" href="#example-7" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClickNode`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个长按无障碍节点事件,与 clickNode 类似</span></span></code></pre></div><h4 id="example-8" tabindex="-1">Example <a class="header-anchor" href="#example-8" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 与 clickCenter 类似, 长按时间为 400 毫秒</span></span></code></pre></div><h4 id="inherited-from-15" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-15" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#action"><code>action</code></a></p><hr><h3 id="matches" tabindex="-1">matches? <a class="header-anchor" href="#matches" aria-label="Permalink to "matches?""></a></h3><blockquote><p><strong>matches</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>一个或者多个合法的 GKD 选择器, 如果每个选择器都能匹配上节点, 那么点击最后一个选择器的目标节点</p><h4 id="inherited-from-16" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-16" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#matches"><code>matches</code></a></p><hr><h3 id="excludematches" tabindex="-1">excludeMatches? <a class="header-anchor" href="#excludematches" aria-label="Permalink to "excludeMatches?""></a></h3><blockquote><p><strong>excludeMatches</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>一个或者多个合法的 GKD 选择器, 如果存在一个选择器匹配上节点, 则停止匹配此规则</p><h4 id="inherited-from-17" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-17" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawRuleProps.html"><code>RawRuleProps</code></a>.<a href="./RawRuleProps.html#excludematches"><code>excludeMatches</code></a></p><hr><h3 id="matchanyapp" tabindex="-1">matchAnyApp? <a class="header-anchor" href="#matchanyapp" aria-label="Permalink to "matchAnyApp?""></a></h3><blockquote><p><strong>matchAnyApp</strong>?: <code>boolean</code></p></blockquote><p>true => 匹配任意应用</p><p>false => 仅匹配 apps 里面的应用</p><h4 id="default-3" tabindex="-1">Default <a class="header-anchor" href="#default-3" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span></code></pre></div><h4 id="inherited-from-18" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-18" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawGlobalRuleProps.html"><code>RawGlobalRuleProps</code></a>.<a href="./RawGlobalRuleProps.html#matchanyapp"><code>matchAnyApp</code></a></p><hr><h3 id="matchlauncher" tabindex="-1">matchLauncher? <a class="header-anchor" href="#matchlauncher" aria-label="Permalink to "matchLauncher?""></a></h3><blockquote><p><strong>matchLauncher</strong>?: <code>boolean</code></p></blockquote><p>是否匹配桌面, 仅全局规则可用</p><p>如果你切换了桌面, 你需要打开 GKD 的界面触发识别新桌面</p><h4 id="default-4" tabindex="-1">Default <a class="header-anchor" href="#default-4" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span></span></code></pre></div><h4 id="inherited-from-19" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-19" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawGlobalRuleProps.html"><code>RawGlobalRuleProps</code></a>.<a href="./RawGlobalRuleProps.html#matchlauncher"><code>matchLauncher</code></a></p><hr><h3 id="matchsystemapp" tabindex="-1">matchSystemApp? <a class="header-anchor" href="#matchsystemapp" aria-label="Permalink to "matchSystemApp?""></a></h3><blockquote><p><strong>matchSystemApp</strong>?: <code>boolean</code></p></blockquote><p>是否匹配系统应用, 仅全局规则可用</p><h4 id="default-5" tabindex="-1">Default <a class="header-anchor" href="#default-5" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span></span></code></pre></div><h4 id="inherited-from-20" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-20" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawGlobalRuleProps.html"><code>RawGlobalRuleProps</code></a>.<a href="./RawGlobalRuleProps.html#matchsystemapp"><code>matchSystemApp</code></a></p><hr><h3 id="apps" tabindex="-1">apps? <a class="header-anchor" href="#apps" aria-label="Permalink to "apps?""></a></h3><blockquote><p><strong>apps</strong>?: <a href="./RawGlobalApp.html"><code>RawGlobalApp</code></a>[]</p></blockquote><p>应用配置列表, 配置应用内界面如何匹配或不匹配</p><h4 id="inherited-from-21" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-21" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawGlobalRuleProps.html"><code>RawGlobalRuleProps</code></a>.<a href="./RawGlobalRuleProps.html#apps"><code>apps</code></a></p>',198),r=[l];function s(h,n,c,d,p,u){return t(),a("div",null,r)}const b=e(i,[["render",s]]);export{k as __pageData,b as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as e,c as a,o as t,V as o}from"./chunks/framework.IfA2_2T5.js";const k=JSON.parse('{"title":"RawRuleProps","description":"","frontmatter":{},"headers":[],"relativePath":"api/interfaces/RawRuleProps.md","filePath":"api/interfaces/RawRuleProps.md","lastUpdated":null}'),i={name:"api/interfaces/RawRuleProps.md"},s=o('<h1 id="rawruleprops" tabindex="-1">RawRuleProps <a class="header-anchor" href="#rawruleprops" aria-label="Permalink to "RawRuleProps""></a></h1><p>全局规则和应用规则的基础通用属性</p><h2 id="extends" tabindex="-1">Extends <a class="header-anchor" href="#extends" aria-label="Permalink to "Extends""></a></h2><ul><li><a href="./RawCommonProps.html"><code>RawCommonProps</code></a></li></ul><h2 id="properties" tabindex="-1">Properties <a class="header-anchor" href="#properties" aria-label="Permalink to "Properties""></a></h2><h3 id="actioncd" tabindex="-1">actionCd? <a class="header-anchor" href="#actioncd" aria-label="Permalink to "actionCd?""></a></h3><blockquote><p><strong>actionCd</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>当前规则的冷却时间, 或者执行 action 最小间隔</p><h4 id="default" tabindex="-1">Default <a class="header-anchor" href="#default" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">1000</span></span></code></pre></div><h4 id="inherited-from" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#actioncd"><code>actionCd</code></a></p><hr><h3 id="actiondelay" tabindex="-1">actionDelay? <a class="header-anchor" href="#actiondelay" aria-label="Permalink to "actionDelay?""></a></h3><blockquote><p><strong>actionDelay</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>延迟执行: 查询到节点->等待一段时间->再次查询到节点则执行对应 action</p><h4 id="inherited-from-1" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-1" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#actiondelay"><code>actionDelay</code></a></p><hr><h3 id="quickfind" tabindex="-1">quickFind? <a class="header-anchor" href="#quickfind" aria-label="Permalink to "quickFind?""></a></h3><blockquote><p><strong>quickFind</strong>?: <code>boolean</code></p></blockquote><p>如果开启, 此规则下的所有 <code>末尾属性选择器</code>的<code>第一个属性选择表达式</code>符合下面的结构之一的选择器 将使用快速查找</p><ul><li>[id='abc']</li><li>[vid='abc']</li><li>[text='abc']</li><li>[text^='abc']</li><li>[text*='abc']</li><li>[text$='abc']</li></ul><p>比如 <code>A > B + C[id='x'][childCount=2]</code> 符合, 但 <code>A > B + C[childCount=2][id='x']</code> 不符合</p><p>它的底层原理是 跳过手动遍历所有节点 直接调用 <a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByViewId(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByViewId</a> / <a href="https://developer.android.google.cn/reference/android/view/accessibility/AccessibilityNodeInfo#findAccessibilityNodeInfosByText(java.lang.String)" target="_blank" rel="noreferrer">findAccessibilityNodeInfosByText</a> 得到可匹配节点</p><p>大多数情况下都能查询到, 在少数某些复杂结构下, 即使目标节点存在, 快速查询也不一定查询到</p><p>比如 <a href="https://github.com/gkd-kit/subscription/blob/1ae87452d287b558f58f9c4e4448a3190e212ca1/src/apps/com.zidongdianji.ts#L26" target="_blank" rel="noreferrer">Image <code>< &#64;View + View ></code>2 [text*='广告']</a> 虽然符合快速查询的条件但是使用 <code>findAccessibilityNodeInfosByText("广告")</code> 并不能查询到节点</p><p>它是优点是快速, 因为遍历所有节点是一个耗时行为, 虽然多数情况下这种耗时较低</p><p>但是在某些软件比如 哔哩哔哩 的开屏广告在这种耗时下延迟可达 1-2s, 这也是导致 <a href="https://github.com/gkd-kit/gkd/issues/60" target="_blank" rel="noreferrer">gkd-kit/gkd#60</a> 的原因</p><hr><p>v1.4.1 版本后生成的快照时将标识每个节点是否可 quickFind, 网页审查工具属性面板顶部会注明这个标识, 同时节点树如果字体的标粗体也表示这个节点可 quickFind</p><p><a href="https://i.gkd.li/import/13316168" target="_blank" rel="noreferrer"><img src="https://github.com/gkd-kit/subscription/assets/38517192/80cdbad1-fa8d-4415-81a1-cecaa7d69e33" alt="image"></a></p><h4 id="inherited-from-2" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-2" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#quickfind"><code>quickFind</code></a></p><hr><h3 id="matchdelay" tabindex="-1">matchDelay? <a class="header-anchor" href="#matchdelay" aria-label="Permalink to "matchDelay?""></a></h3><blockquote><p><strong>matchDelay</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>匹配延迟</p><p>规则准备匹配/或被唤醒时, 等待一段时间, 使此规则参与查询屏幕节点</p><h4 id="inherited-from-3" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-3" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#matchdelay"><code>matchDelay</code></a></p><hr><h3 id="matchtime" tabindex="-1">matchTime? <a class="header-anchor" href="#matchtime" aria-label="Permalink to "matchTime?""></a></h3><blockquote><p><strong>matchTime</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>单位: 毫秒</p><p>规则匹配时间, 此规则参与查询屏幕节点时, 等待一段时间, 休眠此规则</p><p>例如某些应用的 开屏广告 的 activityId 容易误触/太广泛, 而开屏广告几乎只在应用切出来时出现, 设置一个有限匹配时间能避免后续的误触</p><h4 id="inherited-from-4" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-4" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#matchtime"><code>matchTime</code></a></p><hr><h3 id="actionmaximum" tabindex="-1">actionMaximum? <a class="header-anchor" href="#actionmaximum" aria-label="Permalink to "actionMaximum?""></a></h3><blockquote><p><strong>actionMaximum</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>最大执行次数</p><p>规则的 action 被执行的最大次数, 达到最大次数时, 休眠此规则</p><p>功能类似 matchTime, 适用于只需要执行一次的: 开屏广告/更新弹窗/青少年弹窗 一类规则</p><p>当规则准备匹配/或被唤醒时, 将重新计算次数</p><h4 id="inherited-from-5" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-5" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#actionmaximum"><code>actionMaximum</code></a></p><hr><h3 id="resetmatch" tabindex="-1">resetMatch? <a class="header-anchor" href="#resetmatch" aria-label="Permalink to "resetMatch?""></a></h3><blockquote><p><strong>resetMatch</strong>?: <code>"activity"</code> | <code>"app"</code></p></blockquote><p>当规则因为 matchTime/actionMaximum 而休眠时, 如何唤醒此规则</p><h4 id="default-1" tabindex="-1">Default <a class="header-anchor" href="#default-1" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'activity'</span></span></code></pre></div><h4 id="example" tabindex="-1">Example <a class="header-anchor" href="#example" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'activity'</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 当 activity 刷新时, 唤醒规则</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 刷新 activity 并不代表 activityId 变化</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如 哔哩哔哩视频播放页 底部点击推荐视频 进入另一个 视频播放页, 进入了新 activity 但是 activityId 并没有变化</span></span></code></pre></div><h4 id="example-1" tabindex="-1">Example <a class="header-anchor" href="#example-1" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'app'</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 重新进入 app 时, 唤醒规则</span></span></code></pre></div><h4 id="inherited-from-6" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-6" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#resetmatch"><code>resetMatch</code></a></p><hr><h3 id="actioncdkey" tabindex="-1">actionCdKey? <a class="header-anchor" href="#actioncdkey" aria-label="Permalink to "actionCdKey?""></a></h3><blockquote><p><strong>actionCdKey</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>与这个 key 的 rule 共享 cd</p><p>比如开屏广告可能需要多个 rule 去匹配, 当一个 rule 触发时, 其它 rule 的触发是无意义的</p><p>如果你对这个 key 的 rule 设置 actionCd=3000, 那么当这个 rule 和 本 rule 触发任意一个时, 在 3000毫秒 内两个 rule 都将进入 cd</p><h4 id="inherited-from-7" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-7" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#actioncdkey"><code>actionCdKey</code></a></p><hr><h3 id="actionmaximumkey" tabindex="-1">actionMaximumKey? <a class="header-anchor" href="#actionmaximumkey" aria-label="Permalink to "actionMaximumKey?""></a></h3><blockquote><p><strong>actionMaximumKey</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>与这个 key 的 rule 共享次数</p><p>比如开屏广告可能需要多个 rule 去匹配, 当一个 rule 触发时, 其它 rule 的触发是无意义的</p><p>如果你对这个 key 的 rule 设置 actionMaximum=1, 那么当这个 rule 和 本 rule 触发任意一个时, 两个 rule 都将进入休眠</p><h4 id="inherited-from-8" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-8" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#actionmaximumkey"><code>actionMaximumKey</code></a></p><hr><h3 id="order" tabindex="-1">order? <a class="header-anchor" href="#order" aria-label="Permalink to "order?""></a></h3><blockquote><p><strong>order</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>规则参与匹配的顺序, 数字越小越先匹配</p><p>如果两个规则 order 相同, 按照 groups 中的数组顺序匹配, app 类型规则顺序优先于 global 类型规则</p><p>属于不同订阅的规则按照订阅列表中顺序匹配, 长按订阅卡片可以拖动排序</p><h4 id="default-2" tabindex="-1">Default <a class="header-anchor" href="#default-2" aria-label="Permalink to "Default""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">0</span></span></code></pre></div><h4 id="inherited-from-9" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-9" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#order"><code>order</code></a></p><hr><h3 id="snapshoturls" tabindex="-1">snapshotUrls? <a class="header-anchor" href="#snapshoturls" aria-label="Permalink to "snapshotUrls?""></a></h3><blockquote><p><strong>snapshotUrls</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>当前 规则/规则组 的快照链接, 增强订阅可维护性</p><h4 id="inherited-from-10" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-10" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#snapshoturls"><code>snapshotUrls</code></a></p><hr><h3 id="exampleurls" tabindex="-1">exampleUrls? <a class="header-anchor" href="#exampleurls" aria-label="Permalink to "exampleUrls?""></a></h3><blockquote><p><strong>exampleUrls</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>当前 规则/规则组 的规则在手机上的运行示例, 支持 jpg/png/webp/gif</p><p>如果规则是多个规则组合起来的, 可以更好看懂规则到底在干啥, 比如 点击关闭按钮-选择关闭原因-确认关闭 这种广告用 gif 看着更清楚在干啥</p><h4 id="inherited-from-11" tabindex="-1">Inherited from <a class="header-anchor" href="#inherited-from-11" aria-label="Permalink to "Inherited from""></a></h4><p><a href="./RawCommonProps.html"><code>RawCommonProps</code></a>.<a href="./RawCommonProps.html#exampleurls"><code>exampleUrls</code></a></p><hr><h3 id="key" tabindex="-1">key? <a class="header-anchor" href="#key" aria-label="Permalink to "key?""></a></h3><blockquote><p><strong>key</strong>?: <a href="./../type-aliases/Integer.html"><code>Integer</code></a></p></blockquote><p>当前规则在列表中的唯一标识</p><p>key 没有顺序大小之分, 可以是任意数字</p><p>设置后不可更改, 否则造成点击记录错乱</p><hr><h3 id="name" tabindex="-1">name? <a class="header-anchor" href="#name" aria-label="Permalink to "name?""></a></h3><blockquote><p><strong>name</strong>?: <code>string</code></p></blockquote><p>规则名称</p><hr><h3 id="prekeys" tabindex="-1">preKeys? <a class="header-anchor" href="#prekeys" aria-label="Permalink to "preKeys?""></a></h3><blockquote><p><strong>preKeys</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<a href="./../type-aliases/Integer.html"><code>Integer</code></a>></p></blockquote><p>要求当前列表里某个 key 刚刚执行</p><p>比如点击关闭按钮-选择关闭原因-确认关闭, key 分别是 1,2,3, preKeys 分别是 [],[1],[2]</p><p>那么 选择关闭原因 必须要求 比如点击关闭按钮 刚刚点击过才能执行, 确认关闭 也要求 选择关闭原因 刚刚点击过才执行</p><p>否则后面的规则不会触发, 也就是要求规则按顺序执行, 这是为了防止规则匹配范围太过广泛而误触</p><hr><h3 id="action" tabindex="-1">action? <a class="header-anchor" href="#action" aria-label="Permalink to "action?""></a></h3><blockquote><p><strong>action</strong>?: <code>"click"</code> | <code>"clickNode"</code> | <code>"clickCenter"</code> | <code>"back"</code> | <code>"longClick"</code> | <code>"longClickNode"</code> | <code>"longClickCenter"</code></p></blockquote><h4 id="example-2" tabindex="-1">Example <a class="header-anchor" href="#example-2" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`click`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 为默认值, 如果目标节点是 clickable 的, 则使用 `clickNode`, 反之使用 `clickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 并且当 `clickNode` 事件没有被应用接收时, 则使用 `clickCenter`</span></span></code></pre></div><h4 id="example-3" tabindex="-1">Example <a class="header-anchor" href="#example-3" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`clickNode`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个点击无障碍节点事件. 即使节点在屏幕外部/或者被其它节点遮挡,也依然能够正确触发点击目标节点</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 但是如果目标节点不是 clickable 的, 目标应用通常不响应这个点击事件, 也就是点击无效果</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 在极少数情况下, 即使节点是 clickable 的,应用显示接收但是不响应节点点击事件, 此时需要手动设置 `clickCenter`</span></span></code></pre></div><h4 id="example-4" tabindex="-1">Example <a class="header-anchor" href="#example-4" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`clickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 计算出此控件的中心的坐标并且如果这个坐标在屏幕内部,那么就向系统发起一个点击屏幕坐标事件</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如果这个坐标不在屏幕内部, 当作未匹配</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 另外如果目标节点的位置被其它节点遮挡覆盖, 则会点击触发最上层的节点(可能不是目标节点)</span></span></code></pre></div><h4 id="example-5" tabindex="-1">Example <a class="header-anchor" href="#example-5" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`back`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个返回事件, 相当于按下返回键</span></span></code></pre></div><h4 id="example-6" tabindex="-1">Example <a class="header-anchor" href="#example-6" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClick`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 如果目标节点是 longClickable 的, 则使用 `longClickNode`, 反之使用 `longClickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 并且当 `longClickNode` 事件没有被应用接收时, 则使用 `longClickCenter`</span></span></code></pre></div><h4 id="example-7" tabindex="-1">Example <a class="header-anchor" href="#example-7" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClickNode`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 向系统发起一个长按无障碍节点事件,与 clickNode 类似</span></span></code></pre></div><h4 id="example-8" tabindex="-1">Example <a class="header-anchor" href="#example-8" aria-label="Permalink to "Example""></a></h4><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">`longClickCenter`</span></span>\n<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 与 clickCenter 类似, 长按时间为 400 毫秒</span></span></code></pre></div><hr><h3 id="matches" tabindex="-1">matches? <a class="header-anchor" href="#matches" aria-label="Permalink to "matches?""></a></h3><blockquote><p><strong>matches</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>一个或者多个合法的 GKD 选择器, 如果每个选择器都能匹配上节点, 那么点击最后一个选择器的目标节点</p><hr><h3 id="excludematches" tabindex="-1">excludeMatches? <a class="header-anchor" href="#excludematches" aria-label="Permalink to "excludeMatches?""></a></h3><blockquote><p><strong>excludeMatches</strong>?: <a href="./../type-aliases/IArray.html"><code>IArray</code></a><<code>string</code>></p></blockquote><p>一个或者多个合法的 GKD 选择器, 如果存在一个选择器匹配上节点, 则停止匹配此规则</p>',154),r=[s];function l(n,h,c,d,p,m){return t(),a("div",null,r)}const g=e(i,[["render",l]]);export{k as __pageData,g as default};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{d as b,o as s,c as l,r as d,n as B,a as q,t as I,b as $,w as p,e as _,T as Be,_ as g,u as Vt,i as St,f as zt,g as Oe,h as N,j as de,k as w,l as ne,m as u,p as i,q as X,s as J,v as se,x as Ie,y as re,z as $e,A as ye,B as Je,C as Mt,D as Ct,E as ie,F as E,G as R,H as Qe,I as we,J as f,K as et,L as ae,M as Le,N as _e,O as Pe,P as Tt,Q as He,R as It,S as Ht,U as tt,V as Nt,W as Et,X as At,Y as Bt,Z as nt,$ as ot,a0 as Ot,a1 as xt,a2 as Ft,a3 as Dt}from"./framework.IfA2_2T5.js";/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var oe=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=t[o])}return n},fe=function(e){return e.tagName==="IMG"},jt=function(e){return NodeList.prototype.isPrototypeOf(e)},ge=function(e){return e&&e.nodeType===1},We=function(e){var t=e.currentSrc||e.src;return t.substr(-4).toLowerCase()===".svg"},Ye=function(e){try{return Array.isArray(e)?e.filter(fe):jt(e)?[].slice.call(e).filter(fe):ge(e)?[e].filter(fe):typeof e=="string"?[].slice.call(document.querySelectorAll(e)).filter(fe):[]}catch{throw new TypeError(`The provided selector is invalid.
|
|
2
|
-
Expects a CSS selector, a Node element, a NodeList or an array.
|
|
3
|
-
See: https://github.com/francoischalifour/medium-zoom`)}},Ut=function(e){var t=document.createElement("div");return t.classList.add("medium-zoom-overlay"),t.style.background=e,t},Gt=function(e){var t=e.getBoundingClientRect(),o=t.top,a=t.left,r=t.width,c=t.height,v=e.cloneNode(),m=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,k=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;return v.removeAttribute("id"),v.style.position="absolute",v.style.top=o+m+"px",v.style.left=a+k+"px",v.style.width=r+"px",v.style.height=c+"px",v.style.transform="",v},ue=function(e,t){var o=oe({bubbles:!1,cancelable:!1,detail:void 0},t);if(typeof window.CustomEvent=="function")return new CustomEvent(e,o);var a=document.createEvent("CustomEvent");return a.initCustomEvent(e,o.bubbles,o.cancelable,o.detail),a},Rt=function n(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=window.Promise||function(P){function S(){}P(S,S)},a=function(P){var S=P.target;if(S===pe){C();return}F.indexOf(S)!==-1&&x({target:S})},r=function(){if(!(Y||!h.original)){var P=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(qe-P)>A.scrollOffset&&setTimeout(C,150)}},c=function(P){var S=P.key||P.keyCode;(S==="Escape"||S==="Esc"||S===27)&&C()},v=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},S=P;if(P.background&&(pe.style.background=P.background),P.container&&P.container instanceof Object&&(S.container=oe({},A.container,P.container)),P.template){var O=ge(P.template)?P.template:document.querySelector(P.template);S.template=O}return A=oe({},A,S),F.forEach(function(D){D.dispatchEvent(ue("medium-zoom:update",{detail:{zoom:j}}))}),j},m=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return n(oe({},A,P))},k=function(){for(var P=arguments.length,S=Array(P),O=0;O<P;O++)S[O]=arguments[O];var D=S.reduce(function(M,G){return[].concat(M,Ye(G))},[]);return D.filter(function(M){return F.indexOf(M)===-1}).forEach(function(M){F.push(M),M.classList.add("medium-zoom-image")}),ee.forEach(function(M){var G=M.type,K=M.listener,ce=M.options;D.forEach(function(te){te.addEventListener(G,K,ce)})}),j},L=function(){for(var P=arguments.length,S=Array(P),O=0;O<P;O++)S[O]=arguments[O];h.zoomed&&C();var D=S.length>0?S.reduce(function(M,G){return[].concat(M,Ye(G))},[]):F;return D.forEach(function(M){M.classList.remove("medium-zoom-image"),M.dispatchEvent(ue("medium-zoom:detach",{detail:{zoom:j}}))}),F=F.filter(function(M){return D.indexOf(M)===-1}),j},y=function(P,S){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return F.forEach(function(D){D.addEventListener("medium-zoom:"+P,S,O)}),ee.push({type:"medium-zoom:"+P,listener:S,options:O}),j},z=function(P,S){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return F.forEach(function(D){D.removeEventListener("medium-zoom:"+P,S,O)}),ee=ee.filter(function(D){return!(D.type==="medium-zoom:"+P&&D.listener.toString()===S.toString())}),j},T=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},S=P.target,O=function(){var M={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},G=void 0,K=void 0;if(A.container)if(A.container instanceof Object)M=oe({},M,A.container),G=M.width-M.left-M.right-A.margin*2,K=M.height-M.top-M.bottom-A.margin*2;else{var ce=ge(A.container)?A.container:document.querySelector(A.container),te=ce.getBoundingClientRect(),Se=te.width,ht=te.height,ft=te.left,_t=te.top;M=oe({},M,{width:Se,height:ht,left:ft,top:_t})}G=G||M.width-A.margin*2,K=K||M.height-A.margin*2;var ve=h.zoomedHd||h.original,gt=We(ve)?G:ve.naturalWidth||G,bt=We(ve)?K:ve.naturalHeight||K,he=ve.getBoundingClientRect(),kt=he.top,$t=he.left,ze=he.width,Me=he.height,yt=Math.min(Math.max(ze,gt),G)/ze,wt=Math.min(Math.max(Me,bt),K)/Me,Ce=Math.min(yt,wt),Lt=(-$t+(G-ze)/2+A.margin+M.left)/Ce,Pt=(-kt+(K-Me)/2+A.margin+M.top)/Ce,Ke="scale("+Ce+") translate3d("+Lt+"px, "+Pt+"px, 0)";h.zoomed.style.transform=Ke,h.zoomedHd&&(h.zoomedHd.style.transform=Ke)};return new o(function(D){if(S&&F.indexOf(S)===-1){D(j);return}var M=function Se(){Y=!1,h.zoomed.removeEventListener("transitionend",Se),h.original.dispatchEvent(ue("medium-zoom:opened",{detail:{zoom:j}})),D(j)};if(h.zoomed){D(j);return}if(S)h.original=S;else if(F.length>0){var G=F;h.original=G[0]}else{D(j);return}if(h.original.dispatchEvent(ue("medium-zoom:open",{detail:{zoom:j}})),qe=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,Y=!0,h.zoomed=Gt(h.original),document.body.appendChild(pe),A.template){var K=ge(A.template)?A.template:document.querySelector(A.template);h.template=document.createElement("div"),h.template.appendChild(K.content.cloneNode(!0)),document.body.appendChild(h.template)}if(h.original.parentElement&&h.original.parentElement.tagName==="PICTURE"&&h.original.currentSrc&&(h.zoomed.src=h.original.currentSrc),document.body.appendChild(h.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),h.original.classList.add("medium-zoom-image--hidden"),h.zoomed.classList.add("medium-zoom-image--opened"),h.zoomed.addEventListener("click",C),h.zoomed.addEventListener("transitionend",M),h.original.getAttribute("data-zoom-src")){h.zoomedHd=h.zoomed.cloneNode(),h.zoomedHd.removeAttribute("srcset"),h.zoomedHd.removeAttribute("sizes"),h.zoomedHd.removeAttribute("loading"),h.zoomedHd.src=h.zoomed.getAttribute("data-zoom-src"),h.zoomedHd.onerror=function(){clearInterval(ce),console.warn("Unable to reach the zoom image target "+h.zoomedHd.src),h.zoomedHd=null,O()};var ce=setInterval(function(){h.zoomedHd.complete&&(clearInterval(ce),h.zoomedHd.classList.add("medium-zoom-image--opened"),h.zoomedHd.addEventListener("click",C),document.body.appendChild(h.zoomedHd),O())},10)}else if(h.original.hasAttribute("srcset")){h.zoomedHd=h.zoomed.cloneNode(),h.zoomedHd.removeAttribute("sizes"),h.zoomedHd.removeAttribute("loading");var te=h.zoomedHd.addEventListener("load",function(){h.zoomedHd.removeEventListener("load",te),h.zoomedHd.classList.add("medium-zoom-image--opened"),h.zoomedHd.addEventListener("click",C),document.body.appendChild(h.zoomedHd),O()})}else O()})},C=function(){return new o(function(P){if(Y||!h.original){P(j);return}var S=function O(){h.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(h.zoomed),h.zoomedHd&&document.body.removeChild(h.zoomedHd),document.body.removeChild(pe),h.zoomed.classList.remove("medium-zoom-image--opened"),h.template&&document.body.removeChild(h.template),Y=!1,h.zoomed.removeEventListener("transitionend",O),h.original.dispatchEvent(ue("medium-zoom:closed",{detail:{zoom:j}})),h.original=null,h.zoomed=null,h.zoomedHd=null,h.template=null,P(j)};Y=!0,document.body.classList.remove("medium-zoom--opened"),h.zoomed.style.transform="",h.zoomedHd&&(h.zoomedHd.style.transform=""),h.template&&(h.template.style.transition="opacity 150ms",h.template.style.opacity=0),h.original.dispatchEvent(ue("medium-zoom:close",{detail:{zoom:j}})),h.zoomed.addEventListener("transitionend",S)})},x=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},S=P.target;return h.original?C():T({target:S})},H=function(){return A},le=function(){return F},W=function(){return h.original},F=[],ee=[],Y=!1,qe=0,A=t,h={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(e)==="[object Object]"?A=e:(e||typeof e=="string")&&k(e),A=oe({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},A);var pe=Ut(A.background);document.addEventListener("click",a),document.addEventListener("keyup",c),document.addEventListener("scroll",r),window.addEventListener("resize",C);var j={open:T,close:C,toggle:x,update:v,clone:m,attach:k,detach:L,on:y,off:z,getOptions:H,getImages:le,getZoomedImage:W};return j};function qt(n,e){e===void 0&&(e={});var t=e.insertAt;if(!(!n||typeof document>"u")){var o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t==="top"&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=n:a.appendChild(document.createTextNode(n))}}var Kt=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";qt(Kt);const Wt=Rt,Yt=b({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(s(),l("span",{class:B(["VPBadge",e.type])},[d(e.$slots,"default",{},()=>[q(I(e.text),1)])],2))}}),Zt={key:0,class:"VPBackdrop"},Xt=b({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(s(),$(Be,{name:"fade"},{default:p(()=>[e.show?(s(),l("div",Zt)):_("",!0)]),_:1}))}}),Jt=g(Xt,[["__scopeId","data-v-5d7e0c49"]]),V=Vt;function Qt(n,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(n,e):(n(),(o=!0)&&setTimeout(()=>o=!1,e))}}function Ne(n){return/^\//.test(n)?n:`/${n}`}function xe(n){const{pathname:e,search:t,hash:o,protocol:a}=new URL(n,"http://a.com");if(St(n)||n.startsWith("#")||!a.startsWith("http")||!zt(e))return n;const{site:r}=V(),c=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${o}`);return Oe(c)}const Fe=N(de?location.hash:"");de&&window.addEventListener("hashchange",()=>{Fe.value=location.hash});function me({removeCurrent:n=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:o,page:a,theme:r}=V(),c=w(()=>{var m,k;return{label:(m=t.value.locales[o.value])==null?void 0:m.label,link:((k=t.value.locales[o.value])==null?void 0:k.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:w(()=>Object.entries(t.value.locales).flatMap(([m,k])=>n&&c.value.label===k.label?[]:{text:k.label,link:en(k.link||(m==="root"?"/":`/${m}/`),r.value.i18nRouting!==!1&&e,a.value.relativePath.slice(c.value.link.length-1),!t.value.cleanUrls)+Fe.value})),currentLang:c}}function en(n,e,t,o){return e?n.replace(/\/$/,"")+Ne(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):n}const tn=n=>(X("data-v-b7f9c965"),n=n(),J(),n),nn={class:"NotFound"},on={class:"code"},an={class:"title"},sn=tn(()=>u("div",{class:"divider"},null,-1)),rn={class:"quote"},ln={class:"action"},cn=["href","aria-label"],un=b({__name:"NotFound",setup(n){const{site:e,theme:t}=V(),{localeLinks:o}=me({removeCurrent:!1}),a=N("/");return ne(()=>{var c;const r=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");o.value.length&&(a.value=((c=o.value.find(({link:v})=>v.startsWith(r)))==null?void 0:c.link)||o.value[0].link)}),(r,c)=>{var v,m,k,L,y;return s(),l("div",nn,[u("p",on,I(((v=i(t).notFound)==null?void 0:v.code)??"404"),1),u("h1",an,I(((m=i(t).notFound)==null?void 0:m.title)??"PAGE NOT FOUND"),1),sn,u("blockquote",rn,I(((k=i(t).notFound)==null?void 0:k.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),u("div",ln,[u("a",{class:"link",href:i(Oe)(a.value),"aria-label":((L=i(t).notFound)==null?void 0:L.linkLabel)??"go to home"},I(((y=i(t).notFound)==null?void 0:y.linkText)??"Take me home"),9,cn)])])}}}),dn=g(un,[["__scopeId","data-v-b7f9c965"]]);function at(n,e){if(Array.isArray(n))return be(n);if(n==null)return[];e=Ne(e);const t=Object.keys(n).sort((a,r)=>r.split("/").length-a.split("/").length).find(a=>e.startsWith(Ne(a))),o=t?n[t]:[];return Array.isArray(o)?be(o):be(o.items,o.base)}function vn(n){const e=[];let t=0;for(const o in n){const a=n[o];if(a.items){t=e.push(a);continue}e[t]||e.push({items:[]}),e[t].items.push(a)}return e}function mn(n){const e=[];function t(o){for(const a of o)a.text&&a.link&&e.push({text:a.text,link:a.link,docFooterText:a.docFooterText}),a.items&&t(a.items)}return t(n),e}function Ee(n,e){return Array.isArray(e)?e.some(t=>Ee(n,t)):se(n,e.link)?!0:e.items?Ee(n,e.items):!1}function be(n,e){return[...n].map(t=>{const o={...t},a=o.base||e;return a&&o.link&&(o.link=a+o.link),o.items&&(o.items=be(o.items,a)),o})}function Q(){const{frontmatter:n,page:e,theme:t}=V(),o=Ie("(min-width: 960px)"),a=N(!1),r=w(()=>{const x=t.value.sidebar,H=e.value.relativePath;return x?at(x,H):[]}),c=N(r.value);re(r,(x,H)=>{JSON.stringify(x)!==JSON.stringify(H)&&(c.value=r.value)});const v=w(()=>n.value.sidebar!==!1&&c.value.length>0&&n.value.layout!=="home"),m=w(()=>k?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),k=w(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),L=w(()=>v.value&&o.value),y=w(()=>v.value?vn(c.value):[]);function z(){a.value=!0}function T(){a.value=!1}function C(){a.value?T():z()}return{isOpen:a,sidebar:c,sidebarGroups:y,hasSidebar:v,hasAside:k,leftAside:m,isSidebarEnabled:L,open:z,close:T,toggle:C}}function pn(n,e){let t;$e(()=>{t=n.value?document.activeElement:void 0}),ne(()=>{window.addEventListener("keyup",o)}),ye(()=>{window.removeEventListener("keyup",o)});function o(a){a.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function hn(n){const{page:e}=V(),t=N(!1),o=w(()=>n.value.collapsed!=null),a=w(()=>!!n.value.link),r=N(!1),c=()=>{r.value=se(e.value.relativePath,n.value.link)};re([e,n,Fe],c),ne(c);const v=w(()=>r.value?!0:n.value.items?Ee(e.value.relativePath,n.value.items):!1),m=w(()=>!!(n.value.items&&n.value.items.length));$e(()=>{t.value=!!(o.value&&n.value.collapsed)}),Je(()=>{(r.value||v.value)&&(t.value=!1)});function k(){o.value&&(t.value=!t.value)}return{collapsed:t,collapsible:o,isLink:a,isActiveLink:r,hasActiveLink:v,hasChildren:m,toggle:k}}function fn(){const{hasSidebar:n}=Q(),e=Ie("(min-width: 960px)"),t=Ie("(min-width: 1280px)");return{isAsideEnabled:w(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const Ae=[];function st(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function De(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{element:t,title:_n(t),link:"#"+t.id,level:o}});return gn(e,n)}function _n(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function gn(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,a]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(c=>c.level>=o&&c.level<=a),Ae.length=0;for(const{element:c,link:v}of n)Ae.push({element:c,link:v});const r=[];e:for(let c=0;c<n.length;c++){const v=n[c];if(c===0)r.push(v);else{for(let m=c-1;m>=0;m--){const k=n[m];if(k.level<v.level){(k.children||(k.children=[])).push(v);continue e}}r.push(v)}}return r}function bn(n,e){const{isAsideEnabled:t}=fn(),o=Qt(r,100);let a=null;ne(()=>{requestAnimationFrame(r),window.addEventListener("scroll",o)}),Mt(()=>{c(location.hash)}),ye(()=>{window.removeEventListener("scroll",o)});function r(){if(!t.value)return;const v=window.scrollY,m=window.innerHeight,k=document.body.offsetHeight,L=Math.abs(v+m-k)<1,y=Ae.map(({element:T,link:C})=>({link:C,top:kn(T)})).filter(({top:T})=>!Number.isNaN(T)).sort((T,C)=>T.top-C.top);if(!y.length){c(null);return}if(v<1){c(null);return}if(L){c(y[y.length-1].link);return}let z=null;for(const{link:T,top:C}of y){if(C>v+Ct()+4)break;z=T}c(z)}function c(v){a&&a.classList.remove("active"),v==null?a=null:a=n.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const m=a;m?(m.classList.add("active"),e.value.style.top=m.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function kn(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}const $n=["href","title"],yn=b({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(n){function e({target:t}){const o=t.href.split("#")[1],a=document.getElementById(decodeURIComponent(o));a==null||a.focus({preventScroll:!0})}return(t,o)=>{const a=ie("VPDocOutlineItem",!0);return s(),l("ul",{class:B(["VPDocOutlineItem",t.root?"root":"nested"])},[(s(!0),l(E,null,R(t.headers,({children:r,link:c,title:v})=>(s(),l("li",null,[u("a",{class:"outline-link",href:c,onClick:e,title:v},I(v),9,$n),r!=null&&r.length?(s(),$(a,{key:0,headers:r},null,8,["headers"])):_("",!0)]))),256))],2)}}}),rt=g(yn,[["__scopeId","data-v-02b247a1"]]),wn=n=>(X("data-v-d29ebff4"),n=n(),J(),n),Ln={class:"content"},Pn={class:"outline-title",role:"heading","aria-level":"2"},Vn={"aria-labelledby":"doc-outline-aria-label"},Sn=wn(()=>u("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),zn=b({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),o=Qe([]);we(()=>{o.value=De(e.value.outline??t.value.outline)});const a=N(),r=N();return bn(a,r),(c,v)=>(s(),l("div",{class:B(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:a,role:"navigation"},[u("div",Ln,[u("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),u("div",Pn,I(i(st)(i(t))),1),u("nav",Vn,[Sn,f(rt,{headers:o.value,root:!0},null,8,["headers"])])])],2))}}),Mn=g(zn,[["__scopeId","data-v-d29ebff4"]]),Cn={class:"VPDocAsideCarbonAds"},Tn=b({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,o)=>(s(),l("div",Cn,[f(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),In=n=>(X("data-v-30b70da2"),n=n(),J(),n),Hn={class:"VPDocAside"},Nn=In(()=>u("div",{class:"spacer"},null,-1)),En=b({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,o)=>(s(),l("div",Hn,[d(t.$slots,"aside-top",{},void 0,!0),d(t.$slots,"aside-outline-before",{},void 0,!0),f(Mn),d(t.$slots,"aside-outline-after",{},void 0,!0),Nn,d(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(s(),$(Tn,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):_("",!0),d(t.$slots,"aside-ads-after",{},void 0,!0),d(t.$slots,"aside-bottom",{},void 0,!0)]))}}),An=g(En,[["__scopeId","data-v-30b70da2"]]);function Bn(){const{theme:n,page:e}=V();return w(()=>{const{text:t="Edit this page",pattern:o=""}=n.value.editLink||{};let a;return typeof o=="function"?a=o(e.value):a=o.replace(/:path/g,e.value.filePath),{url:a,text:t}})}function On(){const{page:n,theme:e,frontmatter:t}=V();return w(()=>{var m,k,L,y,z,T,C,x;const o=at(e.value.sidebar,n.value.relativePath),a=mn(o),r=a.findIndex(H=>se(n.value.relativePath,H.link)),c=((m=e.value.docFooter)==null?void 0:m.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((k=e.value.docFooter)==null?void 0:k.next)===!1&&!t.value.next||t.value.next===!1;return{prev:c?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((L=a[r-1])==null?void 0:L.docFooterText)??((y=a[r-1])==null?void 0:y.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((z=a[r-1])==null?void 0:z.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((T=a[r+1])==null?void 0:T.docFooterText)??((C=a[r+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((x=a[r+1])==null?void 0:x.link)}}})}const xn={},Fn={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Dn=u("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),jn=u("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),Un=[Dn,jn];function Gn(n,e){return s(),l("svg",Fn,Un)}const Rn=g(xn,[["render",Gn]]),Z=b({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=w(()=>e.tag??(e.href?"a":"span")),o=w(()=>e.href&&et.test(e.href));return(a,r)=>(s(),$(ae(t.value),{class:B(["VPLink",{link:a.href,"vp-external-link-icon":o.value,"no-icon":a.noIcon}]),href:a.href?i(xe)(a.href):void 0,target:a.target??(o.value?"_blank":void 0),rel:a.rel??(o.value?"noreferrer":void 0)},{default:p(()=>[d(a.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),qn={class:"VPLastUpdated"},Kn=["datetime"],Wn=b({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,frontmatter:o,lang:a}=V(),r=w(()=>new Date(o.value.lastUpdated??t.value.lastUpdated)),c=w(()=>r.value.toISOString()),v=N("");return ne(()=>{$e(()=>{var m,k,L;v.value=new Intl.DateTimeFormat((k=(m=e.value.lastUpdated)==null?void 0:m.formatOptions)!=null&&k.forceLocale?a.value:void 0,((L=e.value.lastUpdated)==null?void 0:L.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(m,k)=>{var L;return s(),l("p",qn,[q(I(((L=i(e).lastUpdated)==null?void 0:L.text)||i(e).lastUpdatedText||"Last updated")+": ",1),u("time",{datetime:c.value},I(v.value),9,Kn)])}}}),Yn=g(Wn,[["__scopeId","data-v-95bc3c87"]]),Zn={key:0,class:"VPDocFooter"},Xn={key:0,class:"edit-info"},Jn={key:0,class:"edit-link"},Qn={key:1,class:"last-updated"},eo={key:1,class:"prev-next"},to={class:"pager"},no=["innerHTML"],oo=["innerHTML"],ao={class:"pager"},so=["innerHTML"],ro=["innerHTML"],io=b({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:o}=V(),a=Bn(),r=On(),c=w(()=>e.value.editLink&&o.value.editLink!==!1),v=w(()=>t.value.lastUpdated&&o.value.lastUpdated!==!1),m=w(()=>c.value||v.value||r.value.prev||r.value.next);return(k,L)=>{var y,z,T,C;return m.value?(s(),l("footer",Zn,[d(k.$slots,"doc-footer-before",{},void 0,!0),c.value||v.value?(s(),l("div",Xn,[c.value?(s(),l("div",Jn,[f(Z,{class:"edit-link-button",href:i(a).url,"no-icon":!0},{default:p(()=>[f(Rn,{class:"edit-link-icon","aria-label":"edit icon"}),q(" "+I(i(a).text),1)]),_:1},8,["href"])])):_("",!0),v.value?(s(),l("div",Qn,[f(Yn)])):_("",!0)])):_("",!0),(y=i(r).prev)!=null&&y.link||(z=i(r).next)!=null&&z.link?(s(),l("nav",eo,[u("div",to,[(T=i(r).prev)!=null&&T.link?(s(),$(Z,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:p(()=>{var x;return[u("span",{class:"desc",innerHTML:((x=i(e).docFooter)==null?void 0:x.prev)||"Previous page"},null,8,no),u("span",{class:"title",innerHTML:i(r).prev.text},null,8,oo)]}),_:1},8,["href"])):_("",!0)]),u("div",ao,[(C=i(r).next)!=null&&C.link?(s(),$(Z,{key:0,class:"pager-link next",href:i(r).next.link},{default:p(()=>{var x;return[u("span",{class:"desc",innerHTML:((x=i(e).docFooter)==null?void 0:x.next)||"Next page"},null,8,so),u("span",{class:"title",innerHTML:i(r).next.text},null,8,ro)]}),_:1},8,["href"])):_("",!0)])])):_("",!0)])):_("",!0)}}}),lo=g(io,[["__scopeId","data-v-87c05cf1"]]),co=n=>(X("data-v-7d1bc5a0"),n=n(),J(),n),uo={class:"container"},vo=co(()=>u("div",{class:"aside-curtain"},null,-1)),mo={class:"aside-container"},po={class:"aside-content"},ho={class:"content"},fo={class:"content-container"},_o={class:"main"},go=b({__name:"VPDoc",setup(n){const{theme:e}=V(),t=Le(),{hasSidebar:o,hasAside:a,leftAside:r}=Q(),c=w(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,m)=>{const k=ie("Content");return s(),l("div",{class:B(["VPDoc",{"has-sidebar":i(o),"has-aside":i(a)}])},[d(v.$slots,"doc-top",{},void 0,!0),u("div",uo,[i(a)?(s(),l("div",{key:0,class:B(["aside",{"left-aside":i(r)}])},[vo,u("div",mo,[u("div",po,[f(An,null,{"aside-top":p(()=>[d(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[d(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[d(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):_("",!0),u("div",ho,[u("div",fo,[d(v.$slots,"doc-before",{},void 0,!0),u("main",_o,[f(k,{class:B(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),f(lo,null,{"doc-footer-before":p(()=>[d(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),d(v.$slots,"doc-after",{},void 0,!0)])])]),d(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),bo=g(go,[["__scopeId","data-v-7d1bc5a0"]]),ko=b({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{}},setup(n){const e=n,t=w(()=>e.href&&et.test(e.href)),o=w(()=>e.tag||e.href?"a":"button");return(a,r)=>(s(),$(ae(o.value),{class:B(["VPButton",[a.size,a.theme]]),href:a.href?i(xe)(a.href):void 0,target:t.value?"_blank":void 0,rel:t.value?"noreferrer":void 0},{default:p(()=>[q(I(a.text),1)]),_:1},8,["class","href","target","rel"]))}}),$o=g(ko,[["__scopeId","data-v-a5909b00"]]),yo=["src","alt"],wo=b({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const o=ie("VPImage",!0);return e.image?(s(),l(E,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),l("img",_e({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(Oe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,yo)):(s(),l(E,{key:1},[f(o,_e({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),f(o,_e({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):_("",!0)}}}),ke=g(wo,[["__scopeId","data-v-2c32c815"]]),Lo=n=>(X("data-v-02f2b687"),n=n(),J(),n),Po={class:"container"},Vo={class:"main"},So={key:0,class:"name"},zo=["innerHTML"],Mo=["innerHTML"],Co=["innerHTML"],To={key:0,class:"actions"},Io={key:0,class:"image"},Ho={class:"image-container"},No=Lo(()=>u("div",{class:"image-bg"},null,-1)),Eo=b({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=Pe("hero-image-slot-exists");return(t,o)=>(s(),l("div",{class:B(["VPHero",{"has-image":t.image||i(e)}])},[u("div",Po,[u("div",Vo,[d(t.$slots,"home-hero-info",{},()=>[t.name?(s(),l("h1",So,[u("span",{innerHTML:t.name,class:"clip"},null,8,zo)])):_("",!0),t.text?(s(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Mo)):_("",!0),t.tagline?(s(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Co)):_("",!0)],!0),t.actions?(s(),l("div",To,[(s(!0),l(E,null,R(t.actions,a=>(s(),l("div",{key:a.link,class:"action"},[f($o,{tag:"a",size:"medium",theme:a.theme,text:a.text,href:a.link},null,8,["theme","text","href"])]))),128))])):_("",!0)]),t.image||i(e)?(s(),l("div",Io,[u("div",Ho,[No,d(t.$slots,"home-hero-image",{},()=>[t.image?(s(),$(ke,{key:0,class:"image-src",image:t.image},null,8,["image"])):_("",!0)],!0)])])):_("",!0)])],2))}}),Ao=g(Eo,[["__scopeId","data-v-02f2b687"]]),Bo=b({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,o)=>i(e).hero?(s(),$(Ao,{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":p(()=>[d(t.$slots,"home-hero-info")]),"home-hero-image":p(()=>[d(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):_("",!0)}}),Oo={},xo={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Fo=u("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),Do=[Fo];function jo(n,e){return s(),l("svg",xo,Do)}const Uo=g(Oo,[["render",jo]]),Go={class:"box"},Ro={key:0,class:"icon"},qo=["innerHTML"],Ko=["innerHTML"],Wo=["innerHTML"],Yo={key:4,class:"link-text"},Zo={class:"link-text-value"},Xo=b({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(s(),$(Z,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[u("article",Go,[typeof e.icon=="object"&&e.icon.wrap?(s(),l("div",Ro,[f(ke,{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"?(s(),$(ke,{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?(s(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,qo)):_("",!0),u("h2",{class:"title",innerHTML:e.title},null,8,Ko),e.details?(s(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Wo)):_("",!0),e.linkText?(s(),l("div",Yo,[u("p",Zo,[q(I(e.linkText)+" ",1),f(Uo,{class:"link-text-icon"})])])):_("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Jo=g(Xo,[["__scopeId","data-v-27bbe751"]]),Qo={key:0,class:"VPFeatures"},ea={class:"container"},ta={class:"items"},na=b({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=w(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,a)=>o.features?(s(),l("div",Qo,[u("div",ea,[u("div",ta,[(s(!0),l(E,null,R(o.features,r=>(s(),l("div",{key:r.title,class:B(["item",[t.value]])},[f(Jo,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):_("",!0)}}),oa=g(na,[["__scopeId","data-v-eb209dd3"]]),aa=b({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,o)=>i(e).features?(s(),$(oa,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):_("",!0)}}),sa={class:"VPHome"},ra=b({__name:"VPHome",setup(n){return(e,t)=>{const o=ie("Content");return s(),l("div",sa,[d(e.$slots,"home-hero-before",{},void 0,!0),f(Bo,null,{"home-hero-info":p(()=>[d(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),d(e.$slots,"home-hero-after",{},void 0,!0),d(e.$slots,"home-features-before",{},void 0,!0),f(aa),d(e.$slots,"home-features-after",{},void 0,!0),f(o)])}}}),ia=g(ra,[["__scopeId","data-v-d5c6fc91"]]),la={},ca={class:"VPPage"};function ua(n,e){const t=ie("Content");return s(),l("div",ca,[d(n.$slots,"page-top"),f(t),d(n.$slots,"page-bottom")])}const da=g(la,[["render",ua]]),va=b({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:o}=Q();return(a,r)=>(s(),l("div",{class:B(["VPContent",{"has-sidebar":i(o),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?d(a.$slots,"not-found",{key:0},()=>[f(dn)],!0):i(t).layout==="page"?(s(),$(da,{key:1},{"page-top":p(()=>[d(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[d(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(s(),$(ia,{key:2},{"home-hero-before":p(()=>[d(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[d(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[d(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[d(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[d(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(s(),$(ae(i(t).layout),{key:3})):(s(),$(bo,{key:4},{"doc-top":p(()=>[d(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[d(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[d(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[d(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[d(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[d(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[d(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[d(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ma=g(va,[["__scopeId","data-v-a1607026"]]),pa={class:"container"},ha=["innerHTML"],fa=["innerHTML"],_a=b({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:o}=Q();return(a,r)=>i(e).footer&&i(t).footer!==!1?(s(),l("footer",{key:0,class:B(["VPFooter",{"has-sidebar":i(o)}])},[u("div",pa,[i(e).footer.message?(s(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,ha)):_("",!0),i(e).footer.copyright?(s(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,fa)):_("",!0)])],2)):_("",!0)}}),ga=g(_a,[["__scopeId","data-v-9d57a1d7"]]);function it(){const{theme:n,frontmatter:e}=V(),t=Qe([]),o=w(()=>t.value.length>0);return we(()=>{t.value=De(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:o}}const ba={},ka={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},$a=u("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),ya=[$a];function wa(n,e){return s(),l("svg",ka,ya)}const lt=g(ba,[["render",wa]]),La={class:"header"},Pa={class:"outline"},Va=b({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=V(),o=N(!1),a=N(0),r=N(),c=N();Tt(r,()=>{o.value=!1}),He("Escape",()=>{o.value=!1}),we(()=>{o.value=!1});function v(){o.value=!o.value,a.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function m(L){L.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Ht(()=>{o.value=!1}))}function k(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(L,y)=>(s(),l("div",{class:"VPLocalNavOutlineDropdown",style:It({"--vp-vh":a.value+"px"}),ref_key:"main",ref:r},[L.headers.length>0?(s(),l("button",{key:0,onClick:v,class:B({open:o.value})},[q(I(i(st)(i(t)))+" ",1),f(lt,{class:"icon"})],2)):(s(),l("button",{key:1,onClick:k},I(i(t).returnToTopLabel||"Return to top"),1)),f(Be,{name:"flyout"},{default:p(()=>[o.value?(s(),l("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:m},[u("div",La,[u("a",{class:"top-link",href:"#",onClick:k},I(i(t).returnToTopLabel||"Return to top"),1)]),u("div",Pa,[f(rt,{headers:L.headers},null,8,["headers"])])],512)):_("",!0)]),_:1})],4))}}),Sa=g(Va,[["__scopeId","data-v-de3bc88c"]]),za={},Ma={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ca=u("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),Ta=u("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),Ia=u("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),Ha=u("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),Na=[Ca,Ta,Ia,Ha];function Ea(n,e){return s(),l("svg",Ma,Na)}const Aa=g(za,[["render",Ea]]),Ba={class:"container"},Oa=["aria-expanded"],xa={class:"menu-text"},Fa=b({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:o}=Q(),{headers:a}=it(),{y:r}=tt(),c=N(0);ne(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),we(()=>{a.value=De(t.value.outline??e.value.outline)});const v=w(()=>a.value.length===0),m=w(()=>v.value&&!o.value),k=w(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:v.value,fixed:m.value}));return(L,y)=>i(t).layout!=="home"&&(!m.value||i(r)>=c.value)?(s(),l("div",{key:0,class:B(k.value)},[u("div",Ba,[i(o)?(s(),l("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:y[0]||(y[0]=z=>L.$emit("open-menu"))},[f(Aa,{class:"menu-icon"}),u("span",xa,I(i(e).sidebarMenuLabel||"Menu"),1)],8,Oa)):_("",!0),f(Sa,{headers:i(a),navHeight:c.value},null,8,["headers","navHeight"])])],2)):_("",!0)}}),Da=g(Fa,[["__scopeId","data-v-1a6fa019"]]);function ja(){const n=N(!1);function e(){n.value=!0,window.addEventListener("resize",a)}function t(){n.value=!1,window.removeEventListener("resize",a)}function o(){n.value?t():e()}function a(){window.outerWidth>=768&&t()}const r=Le();return re(()=>r.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:o}}const Ua={},Ga={class:"VPSwitch",type:"button",role:"switch"},Ra={class:"check"},qa={key:0,class:"icon"};function Ka(n,e){return s(),l("button",Ga,[u("span",Ra,[n.$slots.default?(s(),l("span",qa,[d(n.$slots,"default",{},void 0,!0)])):_("",!0)])])}const Wa=g(Ua,[["render",Ka],["__scopeId","data-v-3dc7ea7b"]]),Ya={},Za={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Xa=u("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),Ja=[Xa];function Qa(n,e){return s(),l("svg",Za,Ja)}const es=g(Ya,[["render",Qa]]),ts={},ns={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},os=Nt('<path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path>',9),as=[os];function ss(n,e){return s(),l("svg",ns,as)}const rs=g(ts,[["render",ss]]),is=b({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=V(),o=Pe("toggle-appearance",()=>{e.value=!e.value}),a=w(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(r,c)=>(s(),$(Wa,{title:a.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(o)},{default:p(()=>[f(rs,{class:"sun"}),f(es,{class:"moon"})]),_:1},8,["title","aria-checked","onClick"]))}}),je=g(is,[["__scopeId","data-v-3be8a232"]]),ls={key:0,class:"VPNavBarAppearance"},cs=b({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,o)=>i(e).appearance&&i(e).appearance!=="force-dark"?(s(),l("div",ls,[f(je)])):_("",!0)}}),us=g(cs,[["__scopeId","data-v-a8ef30e9"]]),Ue=N();let ct=!1,Te=0;function ds(n){const e=N(!1);if(de){!ct&&vs(),Te++;const t=re(Ue,o=>{var a,r,c;o===n.el.value||(a=n.el.value)!=null&&a.contains(o)?(e.value=!0,(r=n.onFocus)==null||r.call(n)):(e.value=!1,(c=n.onBlur)==null||c.call(n))});ye(()=>{t(),Te--,Te||ms()})}return Et(e)}function vs(){document.addEventListener("focusin",ut),ct=!0,Ue.value=document.activeElement}function ms(){document.removeEventListener("focusin",ut)}function ut(){Ue.value=document.activeElement}const ps={},hs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},fs=u("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),_s=[fs];function gs(n,e){return s(),l("svg",hs,_s)}const dt=g(ps,[["render",gs]]),bs={},ks={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},$s=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),ys=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),ws=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Ls=[$s,ys,ws];function Ps(n,e){return s(),l("svg",ks,Ls)}const Vs=g(bs,[["render",Ps]]),Ss={class:"VPMenuLink"},zs=b({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,o)=>(s(),l("div",Ss,[f(Z,{class:B({active:i(se)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:p(()=>[q(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),Ve=g(zs,[["__scopeId","data-v-560f3059"]]),Ms={class:"VPMenuGroup"},Cs={key:0,class:"title"},Ts=b({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(s(),l("div",Ms,[e.text?(s(),l("p",Cs,I(e.text),1)):_("",!0),(s(!0),l(E,null,R(e.items,o=>(s(),l(E,null,["link"in o?(s(),$(Ve,{key:0,item:o},null,8,["item"])):_("",!0)],64))),256))]))}}),Is=g(Ts,[["__scopeId","data-v-63fd76eb"]]),Hs={class:"VPMenu"},Ns={key:0,class:"items"},Es=b({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(s(),l("div",Hs,[e.items?(s(),l("div",Ns,[(s(!0),l(E,null,R(e.items,o=>(s(),l(E,{key:o.text},["link"in o?(s(),$(Ve,{key:0,item:o},null,8,["item"])):(s(),$(Is,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):_("",!0),d(e.$slots,"default",{},void 0,!0)]))}}),As=g(Es,[["__scopeId","data-v-267dc1cb"]]),Bs=["aria-expanded","aria-label"],Os={key:0,class:"text"},xs=["innerHTML"],Fs={class:"menu"},Ds=b({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=N(!1),t=N();ds({el:t,onBlur:o});function o(){e.value=!1}return(a,r)=>(s(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=c=>e.value=!0),onMouseleave:r[2]||(r[2]=c=>e.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":a.label,onClick:r[0]||(r[0]=c=>e.value=!e.value)},[a.button||a.icon?(s(),l("span",Os,[a.icon?(s(),$(ae(a.icon),{key:0,class:"option-icon"})):_("",!0),a.button?(s(),l("span",{key:1,innerHTML:a.button},null,8,xs)):_("",!0),f(dt,{class:"text-icon"})])):(s(),$(Vs,{key:1,class:"icon"}))],8,Bs),u("div",Fs,[f(As,{items:a.items},{default:p(()=>[d(a.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),Ge=g(Ds,[["__scopeId","data-v-f028a3c7"]]),js={discord:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Discord</title><path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"/></svg>',facebook:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>',github:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>',instagram:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Instagram</title><path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/></svg>',linkedin:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>LinkedIn</title><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>',mastodon:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Mastodon</title><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z"/></svg>',npm:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>npm</title><path d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"/></svg>',slack:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Slack</title><path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"/></svg>',twitter:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M21.543 7.104c.015.211.015.423.015.636 0 6.507-4.954 14.01-14.01 14.01v-.003A13.94 13.94 0 0 1 0 19.539a9.88 9.88 0 0 0 7.287-2.041 4.93 4.93 0 0 1-4.6-3.42 4.916 4.916 0 0 0 2.223-.084A4.926 4.926 0 0 1 .96 9.167v-.062a4.887 4.887 0 0 0 2.235.616A4.928 4.928 0 0 1 1.67 3.148 13.98 13.98 0 0 0 11.82 8.292a4.929 4.929 0 0 1 8.39-4.49 9.868 9.868 0 0 0 3.128-1.196 4.941 4.941 0 0 1-2.165 2.724A9.828 9.828 0 0 0 24 4.555a10.019 10.019 0 0 1-2.457 2.549z"/></svg>',x:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>X</title><path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"/></svg>',youtube:'<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>YouTube</title><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>'},Us=["href","aria-label","innerHTML"],Gs=b({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=w(()=>typeof e.icon=="object"?e.icon.svg:js[e.icon]);return(o,a)=>(s(),l("a",{class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Us))}}),Rs=g(Gs,[["__scopeId","data-v-771e0054"]]),qs={class:"VPSocialLinks"},Ks=b({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(s(),l("div",qs,[(s(!0),l(E,null,R(e.links,({link:o,icon:a,ariaLabel:r})=>(s(),$(Rs,{key:o,icon:a,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Re=g(Ks,[["__scopeId","data-v-abd8961f"]]),Ws={key:0,class:"group translations"},Ys={class:"trans-title"},Zs={key:1,class:"group"},Xs={class:"item appearance"},Js={class:"label"},Qs={class:"appearance-action"},er={key:2,class:"group"},tr={class:"item social-links"},nr=b({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:o,currentLang:a}=me({correspondingLink:!0}),r=w(()=>o.value.length&&a.value.label||e.value.appearance||t.value.socialLinks);return(c,v)=>r.value?(s(),$(Ge,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(o).length&&i(a).label?(s(),l("div",Ws,[u("p",Ys,I(i(a).label),1),(s(!0),l(E,null,R(i(o),m=>(s(),$(Ve,{key:m.link,item:m},null,8,["item"]))),128))])):_("",!0),i(e).appearance&&i(e).appearance!=="force-dark"?(s(),l("div",Zs,[u("div",Xs,[u("p",Js,I(i(t).darkModeSwitchLabel||"Appearance"),1),u("div",Qs,[f(je)])])])):_("",!0),i(t).socialLinks?(s(),l("div",er,[u("div",tr,[f(Re,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):_("",!0)]),_:1})):_("",!0)}}),or=g(nr,[["__scopeId","data-v-c00b8f8e"]]),ar=n=>(X("data-v-979783af"),n=n(),J(),n),sr=["aria-expanded"],rr=ar(()=>u("span",{class:"container"},[u("span",{class:"top"}),u("span",{class:"middle"}),u("span",{class:"bottom"})],-1)),ir=[rr],lr=b({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(s(),l("button",{type:"button",class:B(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=o=>e.$emit("click"))},ir,10,sr))}}),cr=g(lr,[["__scopeId","data-v-979783af"]]),ur=["innerHTML"],dr=b({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,o)=>(s(),$(Z,{class:B({VPNavBarMenuLink:!0,active:i(se)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:p(()=>[u("span",{innerHTML:t.item.text},null,8,ur)]),_:1},8,["class","href","target","rel"]))}}),vr=g(dr,[["__scopeId","data-v-81b8bea3"]]),mr=b({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=V(),o=r=>"link"in r?se(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(o),a=w(()=>o(e.item));return(r,c)=>(s(),$(Ge,{class:B({VPNavBarMenuGroup:!0,active:i(se)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||a.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),pr=n=>(X("data-v-dd4b0fab"),n=n(),J(),n),hr={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},fr=pr(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),_r=b({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,o)=>i(e).nav?(s(),l("nav",hr,[fr,(s(!0),l(E,null,R(i(e).nav,a=>(s(),l(E,{key:a.text},["link"in a?(s(),$(vr,{key:0,item:a},null,8,["item"])):(s(),$(mr,{key:1,item:a},null,8,["item"]))],64))),128))])):_("",!0)}}),gr=g(_r,[["__scopeId","data-v-dd4b0fab"]]);function br(n){const{localeIndex:e,theme:t}=V();function o(a){var C,x,H;const r=a.split("."),c=(C=t.value.search)==null?void 0:C.options,v=c&&typeof c=="object",m=v&&((H=(x=c.locales)==null?void 0:x[e.value])==null?void 0:H.translations)||null,k=v&&c.translations||null;let L=m,y=k,z=n;const T=r.pop();for(const le of r){let W=null;const F=z==null?void 0:z[le];F&&(W=z=F);const ee=y==null?void 0:y[le];ee&&(W=y=ee);const Y=L==null?void 0:L[le];Y&&(W=L=Y),F||(z=W),ee||(y=W),Y||(L=W)}return(L==null?void 0:L[T])??(y==null?void 0:y[T])??(z==null?void 0:z[T])??""}return o}const kr=["aria-label"],$r={class:"DocSearch-Button-Container"},yr=u("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[u("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),wr={class:"DocSearch-Button-Placeholder"},Lr=u("span",{class:"DocSearch-Button-Keys"},[u("kbd",{class:"DocSearch-Button-Key"}),u("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Ze=b({__name:"VPNavBarSearchButton",setup(n){const t=br({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,a)=>(s(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[u("span",$r,[yr,u("span",wr,I(i(t)("button.buttonText")),1)]),Lr],8,kr))}}),Pr={class:"VPNavBarSearch"},Vr={id:"local-search"},Sr={key:1,id:"docsearch"},zr=b({__name:"VPNavBarSearch",setup(n){const e=At(()=>Bt(()=>import(((u)=>{if(u.startsWith('/')){return"https://registry.npmmirror.com/@gkd-kit/docs/0.0.1707310164513/files/.vitepress/dist"+u}return u})("./VPLocalSearchBox.oasC-smd.js")),__vite__mapDeps([]))),t=()=>null,{theme:o}=V(),a=N(!1),r=N(!1);ne(()=>{});function c(){a.value||(a.value=!0,setTimeout(v,16))}function v(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function m(y){const z=y.target,T=z.tagName;return z.isContentEditable||T==="INPUT"||T==="SELECT"||T==="TEXTAREA"}const k=N(!1);He("k",y=>{(y.ctrlKey||y.metaKey)&&(y.preventDefault(),k.value=!0)}),He("/",y=>{m(y)||(y.preventDefault(),k.value=!0)});const L="local";return(y,z)=>{var T;return s(),l("div",Pr,[i(L)==="local"?(s(),l(E,{key:0},[k.value?(s(),$(i(e),{key:0,onClose:z[0]||(z[0]=C=>k.value=!1)})):_("",!0),u("div",Vr,[f(Ze,{onClick:z[1]||(z[1]=C=>k.value=!0)})])],64)):i(L)==="algolia"?(s(),l(E,{key:1},[a.value?(s(),$(i(t),{key:0,algolia:((T=i(o).search)==null?void 0:T.options)??i(o).algolia,onVnodeBeforeMount:z[2]||(z[2]=C=>r.value=!0)},null,8,["algolia"])):_("",!0),r.value?_("",!0):(s(),l("div",Sr,[f(Ze,{onClick:c})]))],64)):_("",!0)])}}}),Mr=b({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,o)=>i(e).socialLinks?(s(),$(Re,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):_("",!0)}}),Cr=g(Mr,[["__scopeId","data-v-c6add933"]]),Tr=["href","rel","target"],Ir=b({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:o}=Q(),{currentLang:a}=me(),r=w(()=>{var m;return typeof t.value.logoLink=="string"?t.value.logoLink:(m=t.value.logoLink)==null?void 0:m.link}),c=w(()=>{var m;return typeof t.value.logoLink=="string"||(m=t.value.logoLink)==null?void 0:m.rel}),v=w(()=>{var m;return typeof t.value.logoLink=="string"||(m=t.value.logoLink)==null?void 0:m.target});return(m,k)=>(s(),l("div",{class:B(["VPNavBarTitle",{"has-sidebar":i(o)}])},[u("a",{class:"title",href:r.value??i(xe)(i(a).link),rel:c.value,target:v.value},[d(m.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(s(),$(ke,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):_("",!0),i(t).siteTitle?(s(),l(E,{key:1},[q(I(i(t).siteTitle),1)],64)):i(t).siteTitle===void 0?(s(),l(E,{key:2},[q(I(i(e).title),1)],64)):_("",!0),d(m.$slots,"nav-bar-title-after",{},void 0,!0)],8,Tr)],2))}}),Hr=g(Ir,[["__scopeId","data-v-75db0c0d"]]),Nr={},Er={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ar=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),Br=u("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),Or=[Ar,Br];function xr(n,e){return s(),l("svg",Er,Or)}const vt=g(Nr,[["render",xr]]),Fr={class:"items"},Dr={class:"title"},jr=b({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:o}=me({correspondingLink:!0});return(a,r)=>i(t).length&&i(o).label?(s(),$(Ge,{key:0,class:"VPNavBarTranslations",icon:vt,label:i(e).langMenuLabel||"Change language"},{default:p(()=>[u("div",Fr,[u("p",Dr,I(i(o).label),1),(s(!0),l(E,null,R(i(t),c=>(s(),$(Ve,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):_("",!0)}}),Ur=g(jr,[["__scopeId","data-v-26b14f47"]]),Gr=n=>(X("data-v-d8387026"),n=n(),J(),n),Rr={class:"wrapper"},qr={class:"container"},Kr={class:"title"},Wr={class:"content"},Yr={class:"content-body"},Zr=Gr(()=>u("div",{class:"divider"},[u("div",{class:"divider-line"})],-1)),Xr=b({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const{y:e}=tt(),{hasSidebar:t}=Q(),{hasLocalNav:o}=it(),{frontmatter:a}=V(),r=N({});return Je(()=>{r.value={"has-sidebar":t.value,"has-local-nav":o.value,top:a.value.layout==="home"&&e.value===0}}),(c,v)=>(s(),l("div",{class:B(["VPNavBar",r.value])},[u("div",Rr,[u("div",qr,[u("div",Kr,[f(Hr,null,{"nav-bar-title-before":p(()=>[d(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),u("div",Wr,[u("div",Yr,[d(c.$slots,"nav-bar-content-before",{},void 0,!0),f(zr,{class:"search"}),f(gr,{class:"menu"}),f(Ur,{class:"translations"}),f(us,{class:"appearance"}),f(Cr,{class:"social-links"}),f(or,{class:"extra"}),d(c.$slots,"nav-bar-content-after",{},void 0,!0),f(cr,{class:"hamburger",active:c.isScreenOpen,onClick:v[0]||(v[0]=m=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),Zr],2))}}),Jr=g(Xr,[["__scopeId","data-v-d8387026"]]),Qr={key:0,class:"VPNavScreenAppearance"},ei={class:"text"},ti=b({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(o,a)=>i(e).appearance&&i(e).appearance!=="force-dark"?(s(),l("div",Qr,[u("p",ei,I(i(t).darkModeSwitchLabel||"Appearance"),1),f(je)])):_("",!0)}}),ni=g(ti,[["__scopeId","data-v-710d002f"]]),oi=b({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=Pe("close-screen");return(t,o)=>(s(),$(Z,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[q(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),ai=g(oi,[["__scopeId","data-v-89a8ea94"]]),si={},ri={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ii=u("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),li=[ii];function ci(n,e){return s(),l("svg",ri,li)}const ui=g(si,[["render",ci]]),di=b({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=Pe("close-screen");return(t,o)=>(s(),$(Z,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[q(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),mt=g(di,[["__scopeId","data-v-91e8f87b"]]),vi={class:"VPNavScreenMenuGroupSection"},mi={key:0,class:"title"},pi=b({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(s(),l("div",vi,[e.text?(s(),l("p",mi,I(e.text),1)):_("",!0),(s(!0),l(E,null,R(e.items,o=>(s(),$(mt,{key:o.text,item:o},null,8,["item"]))),128))]))}}),hi=g(pi,[["__scopeId","data-v-b1e9e41a"]]),fi=["aria-controls","aria-expanded"],_i=["innerHTML"],gi=["id"],bi={key:1,class:"group"},ki=b({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=N(!1),o=w(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function a(){t.value=!t.value}return(r,c)=>(s(),l("div",{class:B(["VPNavScreenMenuGroup",{open:t.value}])},[u("button",{class:"button","aria-controls":o.value,"aria-expanded":t.value,onClick:a},[u("span",{class:"button-text",innerHTML:r.text},null,8,_i),f(ui,{class:"button-icon"})],8,fi),u("div",{id:o.value,class:"items"},[(s(!0),l(E,null,R(r.items,v=>(s(),l(E,{key:v.text},["link"in v?(s(),l("div",{key:v.text,class:"item"},[f(mt,{item:v},null,8,["item"])])):(s(),l("div",bi,[f(hi,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,gi)],2))}}),$i=g(ki,[["__scopeId","data-v-0db373b5"]]),yi={key:0,class:"VPNavScreenMenu"},wi=b({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,o)=>i(e).nav?(s(),l("nav",yi,[(s(!0),l(E,null,R(i(e).nav,a=>(s(),l(E,{key:a.text},["link"in a?(s(),$(ai,{key:0,item:a},null,8,["item"])):(s(),$($i,{key:1,text:a.text||"",items:a.items},null,8,["text","items"]))],64))),128))])):_("",!0)}}),Li=b({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,o)=>i(e).socialLinks?(s(),$(Re,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):_("",!0)}}),Pi={class:"list"},Vi=b({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=me({correspondingLink:!0}),o=N(!1);function a(){o.value=!o.value}return(r,c)=>i(e).length&&i(t).label?(s(),l("div",{key:0,class:B(["VPNavScreenTranslations",{open:o.value}])},[u("button",{class:"title",onClick:a},[f(vt,{class:"icon lang"}),q(" "+I(i(t).label)+" ",1),f(dt,{class:"icon chevron"})]),u("ul",Pi,[(s(!0),l(E,null,R(i(e),v=>(s(),l("li",{key:v.link,class:"item"},[f(Z,{class:"link",href:v.link},{default:p(()=>[q(I(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):_("",!0)}}),Si=g(Vi,[["__scopeId","data-v-f1df4b71"]]),zi={class:"container"},Mi=b({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=N(null),t=nt(de?document.body:null);return(o,a)=>(s(),$(Be,{name:"fade",onEnter:a[0]||(a[0]=r=>t.value=!0),onAfterLeave:a[1]||(a[1]=r=>t.value=!1)},{default:p(()=>[o.open?(s(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[u("div",zi,[d(o.$slots,"nav-screen-content-before",{},void 0,!0),f(wi,{class:"menu"}),f(Si,{class:"translations"}),f(ni,{class:"appearance"}),f(Li,{class:"social-links"}),d(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):_("",!0)]),_:3}))}}),Ci=g(Mi,[["__scopeId","data-v-21bcad89"]]),Ti={key:0,class:"VPNav"},Ii=b({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=ja(),{frontmatter:a}=V(),r=w(()=>a.value.navbar!==!1);return ot("close-screen",t),$e(()=>{de&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,v)=>r.value?(s(),l("header",Ti,[f(Jr,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":p(()=>[d(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[d(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[d(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),f(Ci,{open:i(e)},{"nav-screen-content-before":p(()=>[d(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[d(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):_("",!0)}}),Hi=g(Ii,[["__scopeId","data-v-3e747cf9"]]),Ni=n=>(X("data-v-d47475d6"),n=n(),J(),n),Ei=["role","tabindex"],Ai=Ni(()=>u("div",{class:"indicator"},null,-1)),Bi={key:1,class:"items"},Oi=b({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:o,isLink:a,isActiveLink:r,hasActiveLink:c,hasChildren:v,toggle:m}=hn(w(()=>e.item)),k=w(()=>v.value?"section":"div"),L=w(()=>a.value?"a":"div"),y=w(()=>v.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),z=w(()=>a.value?void 0:"button"),T=w(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:t.value},{"is-link":a.value},{"is-active":r.value},{"has-active":c.value}]);function C(H){"key"in H&&H.key!=="Enter"||!e.item.link&&m()}function x(){e.item.link&&m()}return(H,le)=>{const W=ie("VPSidebarItem",!0);return s(),$(ae(k.value),{class:B(["VPSidebarItem",T.value])},{default:p(()=>[H.item.text?(s(),l("div",_e({key:0,class:"item",role:z.value},Ot(H.item.items?{click:C,keydown:C}:{},!0),{tabindex:H.item.items&&0}),[Ai,H.item.link?(s(),$(Z,{key:0,tag:L.value,class:"link",href:H.item.link,rel:H.item.rel,target:H.item.target},{default:p(()=>[(s(),$(ae(y.value),{class:"text",innerHTML:H.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),$(ae(y.value),{key:1,class:"text",innerHTML:H.item.text},null,8,["innerHTML"])),H.item.collapsed!=null?(s(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:x,onKeydown:xt(x,["enter"]),tabindex:"0"},[f(lt,{class:"caret-icon"})],32)):_("",!0)],16,Ei)):_("",!0),H.item.items&&H.item.items.length?(s(),l("div",Bi,[H.depth<5?(s(!0),l(E,{key:0},R(H.item.items,F=>(s(),$(W,{key:F.text,item:F,depth:H.depth+1},null,8,["item","depth"]))),128)):_("",!0)])):_("",!0)]),_:1},8,["class"])}}}),xi=g(Oi,[["__scopeId","data-v-d47475d6"]]),pt=n=>(X("data-v-03ba6490"),n=n(),J(),n),Fi=pt(()=>u("div",{class:"curtain"},null,-1)),Di={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ji=pt(()=>u("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Ui=b({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=Q(),o=n,a=N(null),r=nt(de?document.body:null);return re([o,a],()=>{var c;o.open?(r.value=!0,(c=a.value)==null||c.focus()):r.value=!1},{immediate:!0,flush:"post"}),(c,v)=>i(t)?(s(),l("aside",{key:0,class:B(["VPSidebar",{open:c.open}]),ref_key:"navEl",ref:a,onClick:v[0]||(v[0]=Ft(()=>{},["stop"]))},[Fi,u("nav",Di,[ji,d(c.$slots,"sidebar-nav-before",{},void 0,!0),(s(!0),l(E,null,R(i(e),m=>(s(),l("div",{key:m.text,class:"group"},[f(xi,{item:m,depth:0},null,8,["item"])]))),128)),d(c.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):_("",!0)}}),Gi=g(Ui,[["__scopeId","data-v-03ba6490"]]),Ri=b({__name:"VPSkipLink",setup(n){const e=Le(),t=N();re(()=>e.path,()=>t.value.focus());function o({target:a}){const r=document.getElementById(decodeURIComponent(a.hash).slice(1));if(r){const c=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",c)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",c),r.focus(),window.scrollTo(0,0)}}return(a,r)=>(s(),l(E,null,[u("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}}),qi=g(Ri,[["__scopeId","data-v-90bcf273"]]),Ki=b({__name:"Layout",setup(n){const{isOpen:e,open:t,close:o}=Q(),a=Le();re(()=>a.path,o),pn(e,o);const{frontmatter:r}=V(),c=Dt(),v=w(()=>!!c["home-hero-image"]);return ot("hero-image-slot-exists",v),(m,k)=>{const L=ie("Content");return i(r).layout!==!1?(s(),l("div",{key:0,class:B(["Layout",i(r).pageClass])},[d(m.$slots,"layout-top",{},void 0,!0),f(qi),f(Jt,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),f(Hi,null,{"nav-bar-title-before":p(()=>[d(m.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(m.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[d(m.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[d(m.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[d(m.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[d(m.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),f(Da,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),f(Gi,{open:i(e)},{"sidebar-nav-before":p(()=>[d(m.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[d(m.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),f(ma,null,{"page-top":p(()=>[d(m.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[d(m.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[d(m.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[d(m.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[d(m.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(m.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[d(m.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[d(m.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[d(m.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[d(m.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[d(m.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[d(m.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[d(m.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[d(m.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[d(m.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[d(m.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[d(m.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(m.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(m.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(m.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),f(ga),d(m.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),$(L,{key:1}))}}}),Wi=g(Ki,[["__scopeId","data-v-b2ec6e95"]]),Yi={Layout:Wi,enhanceApp:({app:n})=>{n.component("Badge",Yt)}},Xe=()=>{const n=[];document.querySelectorAll("img[data-zoomable]").forEach(e=>{n.push(e)}),document.querySelectorAll('img[src^="https://a.gkd.li/"]').forEach(e=>{n.push(e)});for(const e of n)e.getAttribute("zoom-inited")||(e.setAttribute("zoom-inited","true"),Wt(e,{background:"rgba(0,0,0,0.7)"}))},Xi={...Yi,setup(){let n=0;ne(()=>{Xe(),n=window.setInterval(Xe,3e3)}),ye(()=>{n&&window.clearInterval(n)})}};export{Xi as R,br as c,V as u};
|
|
4
|
-
function __vite__mapDeps(indexes) {
|
|
5
|
-
if (!__vite__mapDeps.viteFileDeps) {
|
|
6
|
-
__vite__mapDeps.viteFileDeps = []
|
|
7
|
-
}
|
|
8
|
-
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
|
|
9
|
-
}
|