@gkd-kit/inspect 0.0.1785940736532 → 0.0.1786441848080

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/dist/404.html +15 -15
  2. package/dist/assets/{LogPage-DKnn2lkQ.js → LogPage-5NLtQrql.js} +2 -2
  3. package/dist/assets/{LogPage-DKnn2lkQ.js.map → LogPage-5NLtQrql.js.map} +1 -1
  4. package/dist/assets/{SelectorPage-ggOaZQcC.js → SelectorPage-Ce-8Ey4j.js} +2 -2
  5. package/dist/assets/{SelectorPage-ggOaZQcC.js.map → SelectorPage-Ce-8Ey4j.js.map} +1 -1
  6. package/dist/assets/{SnapshotPage-BulIoz_i.js → SnapshotPage-B3wbMZe9.js} +4 -4
  7. package/dist/assets/{SnapshotPage-BulIoz_i.js.map → SnapshotPage-B3wbMZe9.js.map} +1 -1
  8. package/dist/assets/{TrackGraph-CG0Rauyt.js → TrackGraph-BQKddBFa.js} +2 -2
  9. package/dist/assets/{TrackGraph-CG0Rauyt.js.map → TrackGraph-BQKddBFa.js.map} +1 -1
  10. package/dist/assets/chunk-Cj_4bPuj.js +1 -1
  11. package/dist/assets/{dist-C8aq3WUa.js → dist-DyplxSMR.js} +2 -2
  12. package/dist/assets/{dist-C8aq3WUa.js.map → dist-DyplxSMR.js.map} +1 -1
  13. package/dist/assets/{index-Xtgyg3d3.js → index-DYFs5TsK.js} +6 -6
  14. package/dist/assets/{index-Xtgyg3d3.js.map → index-DYFs5TsK.js.map} +1 -1
  15. package/dist/assets/{selector-CxiYUfH8.js → selector-CCrKNqwU.js} +2 -2
  16. package/dist/assets/{selector-CxiYUfH8.js.map → selector-CCrKNqwU.js.map} +1 -1
  17. package/dist/assets/{sql-wasm-browser-D0MAxtwm.js → sql-wasm-browser-BOtwpKqg.js} +2 -2
  18. package/dist/assets/{sql-wasm-browser-D0MAxtwm.js.map → sql-wasm-browser-BOtwpKqg.js.map} +1 -1
  19. package/dist/assets/{sqlite.worker-CLB9_Act.js → worker-entry-sqlite.worker-bRrV1OFi.js} +2 -2
  20. package/dist/assets/worker-entry-sqlite.worker-bRrV1OFi.js.map +1 -0
  21. package/dist/index.html +15 -15
  22. package/package.json +1 -1
  23. package/dist/assets/sqlite.worker-CLB9_Act.js.map +0 -1
package/dist/404.html CHANGED
@@ -1,7 +1,7 @@
1
1
  <!doctype html>
2
2
  <html lang="zh">
3
3
  <head>
4
- <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/polyfills-DNsj-kdY.js"></script>
4
+ <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/polyfills-DNsj-kdY.js"></script>
5
5
 
6
6
  <meta charset="UTF-8" />
7
7
  <link
@@ -12,20 +12,20 @@
12
12
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
13
  <meta name="referrer" content="no-referrer" />
14
14
  <title>GKD</title>
15
- <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/index-Xtgyg3d3.js"></script>
16
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/preload-helper-BtVJa7tz.js">
17
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/runtime-core.esm-bundler-Bb-gaXwr.js">
18
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/discrete-BTrzVGvR.js">
19
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/buildMatchPatternFn-Bh60_8FV.js">
20
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/chunk-62oNxeRG.js">
21
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/localforage-WIQUL5H9.js">
22
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/log_url-DAv5mPIF.js">
23
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/Checkbox-BMccKg-D.js">
24
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/vue-router-BAMbWm35.js">
25
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/storage-DzFZkTy8.js">
26
- <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/check-ICe0_ZVN.js">
27
- <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/localforage-D6OXBwtH.css">
28
- <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/index-AOOj4TvX.css">
15
+ <script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/index-DYFs5TsK.js"></script>
16
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/preload-helper-BtVJa7tz.js">
17
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/runtime-core.esm-bundler-Bb-gaXwr.js">
18
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/discrete-BTrzVGvR.js">
19
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/buildMatchPatternFn-Bh60_8FV.js">
20
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/chunk-62oNxeRG.js">
21
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/localforage-WIQUL5H9.js">
22
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/log_url-DAv5mPIF.js">
23
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/Checkbox-BMccKg-D.js">
24
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/vue-router-BAMbWm35.js">
25
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/storage-DzFZkTy8.js">
26
+ <link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/check-ICe0_ZVN.js">
27
+ <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/localforage-D6OXBwtH.css">
28
+ <link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786441848080/files/dist/assets/index-AOOj4TvX.css">
29
29
  </head>
30
30
  <body>
31
31
  </body>
@@ -533,5 +533,5 @@ import{i as e}from"./chunk-62oNxeRG.js";import{A as t,B as n,Bt as r,C as i,Cn a
533
533
  border-top: 1px solid var(--n-tab-border-color);
534
534
  `),A(`tabs-pad`,`
535
535
  border-top: 1px solid var(--n-tab-border-color);
536
- `)])])])]),Xt=_t,Zt=Z({name:`Tabs`,props:Object.assign(Object.assign({},j.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:`click`},type:{type:String,default:`bar`},closable:Boolean,justifyContent:String,size:String,placement:{type:String,default:`top`},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),slots:Object,setup(e,{slots:t}){var n,i;let{mergedClsPrefixRef:o,inlineThemeDisabled:s,mergedComponentPropsRef:l}=c(e),u=j(`Tabs`,`-tabs`,Yt,zt,e,o),d=G(null),f=G(null),p=G(null),m=G(null),h=G(null),g=G(null),_=G(!0),v=G(!0),y=xe(e,[`labelSize`,`size`]),b=K(()=>{var e,t;return y.value?y.value:((t=(e=l==null?void 0:l.value)==null?void 0:e.Tabs)==null?void 0:t.size)||`medium`}),x=xe(e,[`activeName`,`value`]),S=G(x.value??e.defaultValue??(t.default?(i=(n=r(t.default())[0])==null?void 0:n.props)==null?void 0:i.name:null)),C=Je(x,S),w={id:0},T=K(()=>{if(!(!e.justifyContent||e.type===`card`))return{display:`flex`,justifyContent:e.justifyContent}});L(C,()=>{w.id=0,ae(),oe()});function D(){var e;let{value:t}=C;return t===null?null:(e=d.value)==null?void 0:e.querySelector(`[data-name="${t}"]`)}function O(t){if(e.type===`card`)return;let{value:n}=f;if(!n)return;let r=n.style.opacity===`0`;if(t){let i=`${o.value}-tabs-bar--disabled`,{barWidth:a,placement:s}=e;if(t.dataset.disabled===`true`?n.classList.add(i):n.classList.remove(i),[`top`,`bottom`].includes(s)){if(ie([`top`,`maxHeight`,`height`]),typeof a==`number`&&t.offsetWidth>=a){let e=Math.floor((t.offsetWidth-a)/2)+t.offsetLeft;n.style.left=`${e}px`,n.style.maxWidth=`${a}px`}else n.style.left=`${t.offsetLeft}px`,n.style.maxWidth=`${t.offsetWidth}px`;n.style.width=`8192px`,r&&(n.style.transition=`none`),n.offsetWidth,r&&(n.style.transition=``,n.style.opacity=`1`)}else{if(ie([`left`,`maxWidth`,`width`]),typeof a==`number`&&t.offsetHeight>=a){let e=Math.floor((t.offsetHeight-a)/2)+t.offsetTop;n.style.top=`${e}px`,n.style.maxHeight=`${a}px`}else n.style.top=`${t.offsetTop}px`,n.style.maxHeight=`${t.offsetHeight}px`;n.style.height=`8192px`,r&&(n.style.transition=`none`),n.offsetHeight,r&&(n.style.transition=``,n.style.opacity=`1`)}}}function ne(){if(e.type===`card`)return;let{value:t}=f;t&&(t.style.opacity=`0`)}function ie(e){let{value:t}=f;if(t)for(let n of e)t.style[n]=``}function ae(){if(e.type===`card`)return;let t=D();t?O(t):ne()}function oe(){var e;let t=(e=h.value)==null?void 0:e.$el;if(!t)return;let n=D();if(!n)return;let{scrollLeft:r,offsetWidth:i}=t,{offsetLeft:a,offsetWidth:o}=n;r>a?t.scrollTo({top:0,left:a,behavior:`smooth`}):a+o>r+i&&t.scrollTo({top:0,left:a+o-i,behavior:`smooth`})}let se=G(null),ce=0,le=null;function ue(e){let t=se.value;if(t){ce=e.getBoundingClientRect().height;let n=`${ce}px`,r=()=>{t.style.height=n,t.style.maxHeight=n};le?(r(),le(),le=null):le=r}}function de(e){let t=se.value;if(t){let n=e.getBoundingClientRect().height,r=()=>{document.body.offsetHeight,t.style.maxHeight=`${n}px`,t.style.height=`${Math.max(ce,n)}px`};le?(le(),le=null,r()):le=r}}function k(){let t=se.value;if(t){t.style.maxHeight=``,t.style.height=``;let{paneWrapperStyle:n}=e;if(typeof n==`string`)t.style.cssText=n;else if(n){let{maxHeight:e,height:r}=n;e!==void 0&&(t.style.maxHeight=e),r!==void 0&&(t.style.height=r)}}}let fe={value:[]},A=G(`next`);function pe(e){let t=C.value,n=`next`;for(let r of fe.value){if(r===t)break;if(r===e){n=`prev`;break}}A.value=n,me(e)}function me(t){let{onActiveNameChange:n,onUpdateValue:r,"onUpdate:value":i}=e;n&&re(n,t),r&&re(r,t),i&&re(i,t),S.value=t}function he(t){let{onClose:n}=e;n&&re(n,t)}let ge=!0;function _e(){let{value:e}=f;if(!e)return;ge||=!1;let t=`transition-disabled`;e.classList.add(t),ae(),e.classList.remove(t)}let ve=G(null);function M({transitionDisabled:e}){let t=d.value;if(!t)return;e&&t.classList.add(`transition-disabled`);let n=D();n&&ve.value&&(ve.value.style.width=`${n.offsetWidth}px`,ve.value.style.height=`${n.offsetHeight}px`,ve.value.style.transform=`translateX(${n.offsetLeft-a(getComputedStyle(t).paddingLeft)}px)`,e&&ve.value.offsetWidth),e&&t.classList.remove(`transition-disabled`)}L([C],()=>{e.type===`segment`&&Me(()=>{M({transitionDisabled:!1})})}),Le(()=>{e.type===`segment`&&M({transitionDisabled:!0})});let ye=0;function be(t){var n,r;if(t.contentRect.width===0&&t.contentRect.height===0||ye===t.contentRect.width)return;ye=t.contentRect.width;let{type:i}=e;if((i===`line`||i===`bar`)&&(ge||(n=e.justifyContent)!=null&&n.startsWith(`space`))&&_e(),i!==`segment`){let{placement:t}=e;Oe((t===`top`||t===`bottom`?(r=h.value)==null?void 0:r.$el:g.value)||null)}}let Se=Xt(be,64);L([()=>e.justifyContent,()=>e.size],()=>{Me(()=>{let{type:t}=e;(t===`line`||t===`bar`)&&_e()})});let Ce=G(!1);function Te(t){var n;let{target:r,contentRect:{width:i,height:a}}=t,o=r.parentElement.parentElement.offsetWidth,s=r.parentElement.parentElement.offsetHeight,{placement:c}=e;if(!Ce.value)c===`top`||c===`bottom`?o<i&&(Ce.value=!0):s<a&&(Ce.value=!0);else{let{value:e}=m;if(!e)return;c===`top`||c===`bottom`?o-i>e.$el.offsetWidth&&(Ce.value=!1):s-a>e.$el.offsetHeight&&(Ce.value=!1)}Oe(((n=h.value)==null?void 0:n.$el)||null)}let Ee=Xt(Te,64);function De(){let{onAdd:t}=e;t&&t(),Me(()=>{let e=D(),{value:t}=h;!e||!t||t.scrollTo({left:e.offsetLeft,top:0,behavior:`smooth`})})}function Oe(t){if(!t)return;let{placement:n}=e;if(n===`top`||n===`bottom`){let{scrollLeft:e,scrollWidth:n,offsetWidth:r}=t;_.value=e<=0,v.value=e+r>=n}else{let{scrollTop:e,scrollHeight:n,offsetHeight:r}=t;_.value=e<=0,v.value=e+r>=n}}let N=Xt(e=>{Oe(e.target)},64);Fe(Gt,{triggerRef:q(e,`trigger`),tabStyleRef:q(e,`tabStyle`),tabClassRef:q(e,`tabClass`),addTabStyleRef:q(e,`addTabStyle`),addTabClassRef:q(e,`addTabClass`),paneClassRef:q(e,`paneClass`),paneStyleRef:q(e,`paneStyle`),mergedClsPrefixRef:o,typeRef:q(e,`type`),closableRef:q(e,`closable`),valueRef:C,tabChangeIdRef:w,onBeforeLeaveRef:q(e,`onBeforeLeave`),activateTab:pe,handleClose:he,handleAdd:De}),we(()=>{ae(),oe()}),Ge(()=>{let{value:e}=p;if(!e)return;let{value:t}=o,n=`${t}-tabs-nav-scroll-wrapper--shadow-start`,r=`${t}-tabs-nav-scroll-wrapper--shadow-end`;_.value?e.classList.remove(n):e.classList.add(n),v.value?e.classList.remove(r):e.classList.add(r)});let ke={syncBarPosition:()=>{ae()}},Ae=()=>{M({transitionDisabled:!0})},je=K(()=>{let{value:t}=b,{type:n}=e,r=`${t}${{card:`Card`,bar:`Bar`,line:`Line`,segment:`Segment`}[n]}`,{self:{barColor:i,closeIconColor:a,closeIconColorHover:o,closeIconColorPressed:s,tabColor:c,tabBorderColor:l,paneTextColor:d,tabFontWeight:f,tabBorderRadius:p,tabFontWeightActive:m,colorSegment:h,fontWeightStrong:g,tabColorSegment:_,closeSize:v,closeIconSize:y,closeColorHover:x,closeColorPressed:S,closeBorderRadius:C,[E(`panePadding`,t)]:w,[E(`tabPadding`,r)]:T,[E(`tabPaddingVertical`,r)]:D,[E(`tabGap`,r)]:O,[E(`tabGap`,`${r}Vertical`)]:te,[E(`tabTextColor`,n)]:ne,[E(`tabTextColorActive`,n)]:re,[E(`tabTextColorHover`,n)]:ie,[E(`tabTextColorDisabled`,n)]:ae,[E(`tabFontSize`,t)]:oe},common:{cubicBezierEaseInOut:se}}=u.value;return{"--n-bezier":se,"--n-color-segment":h,"--n-bar-color":i,"--n-tab-font-size":oe,"--n-tab-text-color":ne,"--n-tab-text-color-active":re,"--n-tab-text-color-disabled":ae,"--n-tab-text-color-hover":ie,"--n-pane-text-color":d,"--n-tab-border-color":l,"--n-tab-border-radius":p,"--n-close-size":v,"--n-close-icon-size":y,"--n-close-color-hover":x,"--n-close-color-pressed":S,"--n-close-border-radius":C,"--n-close-icon-color":a,"--n-close-icon-color-hover":o,"--n-close-icon-color-pressed":s,"--n-tab-color":c,"--n-tab-font-weight":f,"--n-tab-font-weight-active":m,"--n-tab-padding":T,"--n-tab-padding-vertical":D,"--n-tab-gap":O,"--n-tab-gap-vertical":te,"--n-pane-padding-left":ee(w,`left`),"--n-pane-padding-right":ee(w,`right`),"--n-pane-padding-top":ee(w,`top`),"--n-pane-padding-bottom":ee(w,`bottom`),"--n-font-weight-strong":g,"--n-tab-color-segment":_}}),P=s?te(`tabs`,K(()=>`${b.value[0]}${e.type[0]}`),je,e):void 0;return Object.assign({mergedClsPrefix:o,mergedValue:C,renderedNames:new Set,segmentCapsuleElRef:ve,tabsPaneWrapperRef:se,tabsElRef:d,barElRef:f,addTabInstRef:m,xScrollInstRef:h,scrollWrapperElRef:p,addTabFixed:Ce,tabWrapperStyle:T,handleNavResize:Se,mergedSize:b,handleScroll:N,handleTabsResize:Ee,cssVars:s?void 0:je,themeClass:P==null?void 0:P.themeClass,animationDirection:A,renderNameListRef:fe,yScrollElRef:g,handleSegmentResize:Ae,onAnimationBeforeLeave:ue,onAnimationEnter:de,onAnimationAfterEnter:k,onRender:P==null?void 0:P.onRender},ke)},render(){let{mergedClsPrefix:e,type:t,placement:n,addTabFixed:i,addable:a,mergedSize:o,renderNameListRef:s,onRender:c,paneWrapperClass:l,paneWrapperStyle:u,$slots:{default:d,prefix:f,suffix:p}}=this;c==null||c();let m=d?r(d()).filter(e=>e.type.__TAB_PANE__===!0):[],h=d?r(d()).filter(e=>e.type.__TAB__===!0):[],g=!h.length,_=t===`card`,v=t===`segment`,y=!_&&!v&&this.justifyContent;s.value=[];let b=()=>{let t=Q(`div`,{style:this.tabWrapperStyle,class:`${e}-tabs-wrapper`},y?null:Q(`div`,{class:`${e}-tabs-scroll-padding`,style:n===`top`||n===`bottom`?{width:`${this.tabsPadding}px`}:{height:`${this.tabsPadding}px`}}),g?m.map((e,t)=>(s.value.push(e.props.name),tn(Q(Jt,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:t!==0&&(!y||y===`center`||y===`start`||y===`end`)}),e.children?{default:e.children.tab}:void 0)))):h.map((e,t)=>(s.value.push(e.props.name),tn(t!==0&&!y?en(e):e))),!i&&a&&_?$t(a,(g?m.length:h.length)!==0):null,y?null:Q(`div`,{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return Q(`div`,{ref:`tabsElRef`,class:`${e}-tabs-nav-scroll-content`},_&&a?Q(ge,{onResize:this.handleTabsResize},{default:()=>t}):t,_?Q(`div`,{class:`${e}-tabs-pad`}):null,_?null:Q(`div`,{ref:`barElRef`,class:`${e}-tabs-bar`}))},x=v?`top`:n;return Q(`div`,{class:[`${e}-tabs`,this.themeClass,`${e}-tabs--${t}-type`,`${e}-tabs--${o}-size`,y&&`${e}-tabs--flex`,`${e}-tabs--${x}`],style:this.cssVars},Q(`div`,{class:[`${e}-tabs-nav--${t}-type`,`${e}-tabs-nav--${x}`,`${e}-tabs-nav`]},C(f,t=>t&&Q(`div`,{class:`${e}-tabs-nav__prefix`},t)),v?Q(ge,{onResize:this.handleSegmentResize},{default:()=>Q(`div`,{class:`${e}-tabs-rail`,ref:`tabsElRef`},Q(`div`,{class:`${e}-tabs-capsule`,ref:`segmentCapsuleElRef`},Q(`div`,{class:`${e}-tabs-wrapper`},Q(`div`,{class:`${e}-tabs-tab`}))),g?m.map((e,t)=>(s.value.push(e.props.name),Q(Jt,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:t!==0}),e.children?{default:e.children.tab}:void 0))):h.map((e,t)=>(s.value.push(e.props.name),t===0?e:en(e))))}):Q(ge,{onResize:this.handleNavResize},{default:()=>Q(`div`,{class:`${e}-tabs-nav-scroll-wrapper`,ref:`scrollWrapperElRef`},[`top`,`bottom`].includes(x)?Q(mt,{ref:`xScrollInstRef`,onScroll:this.handleScroll},{default:b}):Q(`div`,{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:`yScrollElRef`},b()))}),i&&a&&_?$t(a,!0):null,C(p,t=>t&&Q(`div`,{class:`${e}-tabs-nav__suffix`},t))),g&&(this.animated&&(x===`top`||x===`bottom`)?Q(`div`,{ref:`tabsPaneWrapperRef`,style:u,class:[`${e}-tabs-pane-wrapper`,l]},Qt(m,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):Qt(m,this.mergedValue,this.renderedNames)))}});function Qt(e,t,n,r,i,a,o){let s=[];return e.forEach(e=>{let{name:r,displayDirective:i,"display-directive":a}=e.props,o=e=>i===e||a===e,c=t===r;if(e.key!==void 0&&(e.key=r),c||o(`show`)||o(`show:lazy`)&&n.has(r)){n.has(r)||n.add(r);let t=!o(`if`);s.push(t?Ve(e,[[le,c]]):e)}}),o?Q(me,{name:`${o}-transition`,onBeforeLeave:r,onEnter:i,onAfterEnter:a},{default:()=>s}):s}function $t(e,t){return Q(Jt,{ref:`addTabInstRef`,key:`__addable`,name:`__addable`,internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e==`object`&&e.disabled})}function en(e){let t=He(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function tn(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes(`internalLeftPadded`)||e.dynamicProps.push(`internalLeftPadded`):e.dynamicProps=[`internalLeftPadded`],e}var nn=Z({name:`VirtualList`,props:{scrollbarProps:Object,items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:`div`},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:`key`},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){let t=G(null),n=G(null);function r(){let{value:e}=t;e&&e.sync()}function i(t){var n;r(),(n=e.onScroll)==null||n.call(e,t)}function a(t){var n;r(),(n=e.onResize)==null||n.call(e,t)}function o(t){var n;(n=e.onWheel)==null||n.call(e,t)}function s(e,t){var r,i;typeof e==`number`?(r=n.value)==null||r.scrollTo(e,t??0):(i=n.value)==null||i.scrollTo(e)}function c(){var e;return(e=n.value)==null?void 0:e.listElRef}function l(){var e;return(e=n.value)==null?void 0:e.itemsElRef}return{scrollTo:s,scrollbarInstRef:t,virtualListInstRef:n,getScrollContainer:c,getScrollContent:l,handleScroll:i,handleResize:a,handleWheel:o}},render(){return Q(t,Object.assign({},this.scrollbarProps,{ref:`scrollbarInstRef`,container:this.getScrollContainer,content:this.getScrollContent}),{default:()=>Q(Oe,{ref:`virtualListInstRef`,showScrollbar:!1,items:this.items,itemSize:this.itemSize,itemResizable:this.itemResizable,itemsStyle:this.itemsStyle,visibleItemsTag:this.visibleItemsTag,visibleItemsProps:this.visibleItemsProps,ignoreItemResize:this.ignoreItemResize,keyField:this.keyField,defaultScrollKey:this.defaultScrollKey,defaultScrollIndex:this.defaultScrollIndex,paddingTop:this.paddingTop,paddingBottom:this.paddingBottom,onScroll:this.handleScroll,onResize:this.handleResize,onWheel:this.handleWheel},{default:({item:e,index:t})=>{var n,r;return(r=(n=this.$slots).default)==null?void 0:r.call(n,{item:e,index:t})}})})}}),rn=1e4,an=e=>{if(typeof e!=`object`||!e)return 0;if(Array.isArray(e))return e.length<=1e4?e.length:void 0;let t=0;for(let n in e)if(Object.hasOwn(e,n)&&(t++,t>1e4))return;return t},on=e=>typeof e==`object`&&!!e&&an(e)==null,sn=e=>{if(typeof e!=`object`||!e)return!1;let t=[{value:e,depth:0,pathSize:0}],n=new WeakSet,r=0;for(;t.length;){let e=t.pop();if(!(!e||n.has(e.value))){if(e.depth>=128)return!0;if(n.add(e.value),Array.isArray(e.value)){if(r+=e.value.length,r>1e5)return!0;for(let n=0;n<e.value.length;n++){let r=e.value[n],i=e.pathSize+String(n).length+1;if(i>4096)return!0;typeof r==`object`&&r&&t.push({value:r,depth:e.depth+1,pathSize:i})}continue}for(let n in e.value){if(!Object.hasOwn(e.value,n))continue;if(n.length>256||(r++,r>1e5))return!0;let i=e.pathSize+n.length+1;if(i>4096)return!0;let a=e.value[n];typeof a==`object`&&a&&t.push({value:a,depth:e.depth+1,pathSize:i})}}}return!1},cn=e=>e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`,ln=e=>cn(e)?!0:Array.isArray(e)?e.every(cn):typeof e==`object`&&!!e&&Object.keys(e).length==0,un=e=>{if(typeof e!=`object`||!e||on(e))return;let t=Object.entries(e);if(!(t.length==0||!t.every(([,e])=>ln(e))))return t.map(([e,t])=>({key:e,value:t}))},dn=e=>JSON.stringify(e)??String(e),fn=(e,t)=>{if(sn(e))return t;try{return JSON.stringify(e,null,2)??t}catch{return t}},pn=()=>({matchCase:!1,wholeWord:!1,useRegex:!1}),mn=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),hn=(e,t,n=!0)=>{let r=e.trim();if(!r)return;let i=t.useRegex?r:mn(r);if(t.wholeWord){let e=`[\\p{L}\\p{N}_]`;i=`(?<!${e})(?:${i})(?!${e})`}try{return new RegExp(i,`${n?`g`:``}${t.matchCase?``:`i`}u`)}catch{return}},gn=(e,t)=>!e.trim()||!t.useRegex||!!hn(e,t),_n=(e,t,n)=>{let r=hn(t,n);if(!r)return[];let i=[],a;for(;a=r.exec(e);)a[0].length?i.push({start:a.index,end:a.index+a[0].length}):r.lastIndex++;return i},vn=(e,t,n)=>{let r=hn(t,n);if(!r)return 0;let i=0,a;for(;a=r.exec(e);)a[0].length?i++:r.lastIndex++;return i},yn=(e,t,n)=>e.split(/\r\n|\n|\r/).reduce((e,r)=>e+vn(r,t,n),0),bn=(e,t,n)=>{let r=hn(t,n,!1);return(r==null?void 0:r.test(e))||!1},xn=e=>e.split(/\r\n|\n|\r/).map((e,t)=>({key:t,number:t+1,text:e})),[Sn,Cn]=de(e=>{let t=Y(``),n=Y(-1),r=We(pn()),i=Y(!1),a=Y(),o=Y(),s=Y(0),c=Y(600),l=Y(),u=Y(),d=K(()=>xn(e.value.value)),f=K(()=>t.value.trim()),p=K(()=>yn(e.value.value,t.value,r)),m=K(()=>p.value?Math.min(Math.max(n.value,0),p.value-1)+1:0),h=K(()=>!gn(t.value,r)),g=K(()=>Math.max(Math.floor(s.value/20)-8,0)),_=K(()=>Math.min(Math.ceil((s.value+c.value)/20)+8,d.value.length)),v=K(()=>d.value.slice(g.value,_.value)),y=K(()=>d.value.length*20);ve(o,e=>{var t;let n=(t=e[0])==null?void 0:t.contentRect.height;n&&(c.value=n)});let b=e=>{!f.value||!p.value||(n.value=((n.value>=0?n.value:0)+e+p.value)%p.value)},x=e=>{b(e.shiftKey?-1:1)},S=()=>{var e;s.value=((e=o.value)==null?void 0:e.scrollTop)||0},C=e=>{e instanceof HTMLElement&&(u.value=e)},w=e=>{if(!f.value)return[{text:e.text||` `,match:!1,active:!1}];let t=[],n=_n(e.text,f.value,r),i=0;return n.forEach((n,r)=>{var a;n.start>i&&t.push({text:e.text.slice(i,n.start),match:!1,active:!1}),t.push({text:e.text.slice(n.start,n.end),match:!0,active:((a=l.value)==null?void 0:a.lineKey)==e.key&&l.value.rangeIndex==r}),i=n.end}),i<e.text.length&&t.push({text:e.text.slice(i),match:!1,active:!1}),t.length?t:[{text:e.text||` `,match:!1,active:!1}]},T=async()=>{await navigator.clipboard.writeText(e.value.value),_e.success(`已复制当前文件内容`)};return L(e.value,()=>{t.value=``,n.value=-1}),L([e.value,i],async()=>{var e,t;s.value=0,await Me(),(e=o.value)==null||e.scrollTo({top:0}),(t=a.value)==null||t.scrollTo({index:0})}),L([t,()=>r.matchCase,()=>r.wholeWord,()=>r.useRegex,p],([e,t,r,i,a],o)=>{if(!e.trim()||!a){n.value=-1;return}(!o||e!=o[0]||t!=o[1]||r!=o[2]||i!=o[3]||n.value<0||n.value>=a)&&(n.value=0)},{immediate:!0}),L([f,()=>r.matchCase,()=>r.wholeWord,()=>r.useRegex,n],async([e,,,,t])=>{var n,i;if(l.value=void 0,u.value=void 0,!e||t<0)return;let c=t,f=-1;for(let t=0;t<d.value.length;t++){let n=d.value[t];if(!n)continue;let i=_n(n.text,e,r);if(c<i.length){f=t,l.value={lineKey:n.key,rangeIndex:c};break}c-=i.length}f<0||(s.value=f*20,await Me(),(n=o.value)==null||n.scrollTo({top:s.value}),(i=a.value)==null||i.scrollTo({index:f}),await Me(),requestAnimationFrame(()=>{var e;(e=u.value)==null||e.scrollIntoView({block:`nearest`,inline:`nearest`})}))},{flush:`post`}),{...e,query:t,resultIndex:n,searchOptions:r,wrap:i,virtualList:a,scrollContainer:o,lineHeight:20,lines:d,visibleStart:g,visibleLines:v,virtualHeight:y,normalizedQuery:f,matchCount:p,displayedResultIndex:m,invalidRegex:h,selectRelativeResult:b,handleSearchEnter:x,handleScroll:S,setActiveMatchElement:C,getLineSegments:w,copyText:T}}),wn=Sn,Tn=()=>{let e=Cn();if(!e)throw Error(`TextViewer 子组件必须在 TextViewer 内部使用`);return e},En=Z({__name:`CopyButton`,setup(e){let{copyable:t,copyText:n}=Tn();return(e,r)=>{let a=qe(`SvgIcon`),o=i;return B(t)?(F(),z(o,{key:0,quaternary:``,circle:``,size:`small`,class:`absolute right-16px top-8px z-3 border border-[#e2e8f0] bg-white/92 shadow-[0_1px_3px_rgb(15_23_42_/_12%)] backdrop-blur-4px`,title:`复制当前文件内容`,"aria-label":`复制当前文件内容`,onClick:B(n)},{icon:I(()=>[H(a,{name:`copy`})]),_:1},8,[`onClick`])):V(``,!0)}}}),Dn={name:`text-viewer-search`,class:`w-520px max-w-full min-w-0 flex flex-[0_1_520px] items-center gap-6px`},On=[`title`],kn=[`disabled`],An=[`disabled`],jn={name:`text-viewer-search-options`,class:`flex items-center gap-2px`},Mn=[`aria-pressed`],Nn=[`aria-pressed`],Pn=[`aria-pressed`],Fn=Z({__name:`SearchBar`,setup(e){let{query:t,searchOptions:n,searchPlaceholder:r,normalizedQuery:i,matchCount:a,displayedResultIndex:o,invalidRegex:s,selectRelativeResult:c,handleSearchEnter:l}=Tn();return(e,u)=>{let d=qe(`SvgIcon`),f=tt;return F(),J(`div`,Dn,[X(`div`,{name:`text-viewer-navigation`,class:R([`w-116px min-w-116px flex items-center justify-between gap-2px`,B(i)?`visible`:`invisible`])},[X(`span`,{class:`w-62px overflow-hidden text-right text-ellipsis whitespace-nowrap text-12px text-[#64748b]`,title:`第 ${B(o).toLocaleString()} 处,共 ${B(a).toLocaleString()} 处`},P(B(o).toLocaleString())+` / `+P(B(a).toLocaleString()),9,On),X(`button`,{type:`button`,class:`inline-grid h-22px w-24px cursor-pointer place-items-center rounded-3px border-0 bg-transparent p-0 leading-22px text-[#475569] enabled:hover:bg-[#e2e8f0] disabled:cursor-default disabled:opacity-40 focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,disabled:!B(a),"aria-label":`上一个匹配项`,title:`上一个匹配项 (Shift+Enter)`,onMousedown:u[0]||=M(()=>{},[`prevent`]),onClick:u[1]||=e=>B(c)(-1)},[H(d,{name:`arrow`,class:`h-16px w-16px rotate-180`})],40,kn),X(`button`,{type:`button`,class:`inline-grid h-22px w-24px cursor-pointer place-items-center rounded-3px border-0 bg-transparent p-0 leading-22px text-[#475569] enabled:hover:bg-[#e2e8f0] disabled:cursor-default disabled:opacity-40 focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,disabled:!B(a),"aria-label":`下一个匹配项`,title:`下一个匹配项 (Enter)`,onMousedown:u[2]||=M(()=>{},[`prevent`]),onClick:u[3]||=e=>B(c)(1)},[H(d,{name:`arrow`,class:`h-16px w-16px`})],40,An)],2),H(f,{value:B(t),"onUpdate:value":u[10]||=e=>N(t)?t.value=e:null,clearable:``,size:`small`,status:B(s)?`error`:void 0,placeholder:B(r),class:`min-w-0 flex-1`,onKeydown:oe(M(B(l),[`prevent`]),[`enter`])},{suffix:I(()=>[X(`div`,jn,[X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,B(n).matchCase?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":B(n).matchCase,"aria-label":`区分大小写`,title:`区分大小写`,onMousedown:u[4]||=M(()=>{},[`prevent`]),onClick:u[5]||=e=>B(n).matchCase=!B(n).matchCase},` Aa `,42,Mn),X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px underline [text-underline-offset:2px] focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,B(n).wholeWord?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":B(n).wholeWord,"aria-label":`全词匹配`,title:`全词匹配`,onMousedown:u[6]||=M(()=>{},[`prevent`]),onClick:u[7]||=e=>B(n).wholeWord=!B(n).wholeWord},` ab `,42,Nn),X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,B(n).useRegex?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":B(n).useRegex,"aria-label":`使用正则表达式`,title:`使用正则表达式`,onMousedown:u[8]||=M(()=>{},[`prevent`]),onClick:u[9]||=e=>B(n).useRegex=!B(n).useRegex},` .* `,42,Pn)])]),_:1},8,[`value`,`status`,`placeholder`,`onKeydown`])])}}}),In={class:`sticky left-0 z-1 box-border select-none border-r border-[#e5e7eb] bg-[#f8fafc] px-10px text-right text-[#94a3b8]`},Ln=[`data-active`],Rn=Z({__name:`TextLine`,props:{line:{}},setup(e){let t=e,{wrap:n,getLineSegments:r,setActiveMatchElement:i}=Tn(),a=K(()=>r(t.line));return(t,r)=>(F(),J(`div`,{name:`text-viewer-line`,class:R([`grid min-h-20px min-w-full leading-20px`,B(n)?`w-full grid-cols-[64px_minmax(0,1fr)]`:`w-max grid-cols-[64px_max-content]`])},[X(`span`,In,P(e.line.number),1),X(`code`,{class:R([`box-border min-w-0 px-10px [font:inherit] [tab-size:2]`,B(n)?`whitespace-pre-wrap [overflow-wrap:anywhere]`:`whitespace-pre`])},[(F(!0),J(W,null,Ie(B(a),(e,t)=>(F(),J(W,{key:t},[e.match?(F(),J(`mark`,{key:0,ref_for:!0,ref:e.active?B(i):void 0,name:`text-viewer-match`,"data-active":e.active?``:void 0,class:R([`rounded-2px text-inherit`,e.active?`bg-[#fb923c] text-[#7c2d12]`:`bg-[#fde68a]`])},P(e.text),11,Ln)):(F(),J(W,{key:1},[U(P(e.text),1)],64))],64))),128))],2)],2))}}),zn={name:`text-viewer-viewport`,class:`h-full min-h-0 min-w-0`},Bn=Z({__name:`Viewport`,setup(e){let{wrap:t,virtualList:n,scrollContainer:r,lineHeight:i,lines:a,visibleStart:o,visibleLines:s,virtualHeight:c,handleScroll:l}=Tn();return(e,u)=>{let d=nn;return F(),J(`div`,zn,[B(t)?(F(),z(d,{key:0,ref_key:`virtualList`,ref:n,items:B(a),"item-size":B(i),"item-resizable":``,keyField:`key`,class:`h-full min-h-0 min-w-0 rounded-4px border border-[#e5e7eb] bg-white font-mono text-13px leading-20px`},{default:I(({item:e})=>[H(Rn,{line:e},null,8,[`line`])]),_:1},8,[`items`,`item-size`])):(F(),J(`div`,{key:1,ref_key:`scrollContainer`,ref:r,class:`h-full min-h-0 min-w-0 overflow-auto rounded-4px border border-[#e5e7eb] bg-white font-mono text-13px leading-20px`,onScroll:u[0]||=(...e)=>B(l)&&B(l)(...e)},[X(`div`,{name:`text-viewer-spacer`,class:`relative min-w-full`,style:Pe({height:`${B(c)}px`})},[X(`div`,{name:`text-viewer-visible`,class:`absolute left-0 top-0 min-w-full w-max`,style:Pe({transform:`translateY(${B(o)*B(i)}px)`})},[(F(!0),J(W,null,Ie(B(s),e=>(F(),z(Rn,{key:e.key,line:e},null,8,[`line`]))),128))],4)],4)],544))])}}}),Vn={name:`text-viewer`,class:`min-h-0 min-w-0 flex flex-1 flex-col gap-8px`},Hn={name:`text-viewer-toolbar`,class:`min-h-28px min-w-0 flex items-center gap-10px`},Un={name:`text-viewer-content`,class:`relative min-h-0 min-w-0 flex-1`},Wn=Z({__name:`TextViewer`,props:{value:{},searchPlaceholder:{default:`搜索`},allowWrap:{type:Boolean,default:!1},copyable:{type:Boolean,default:!1}},setup(e){let t=e,{allowWrap:n,wrap:r}=wn({value:q(t,`value`),searchPlaceholder:q(t,`searchPlaceholder`),allowWrap:q(t,`allowWrap`),copyable:q(t,`copyable`)});return(e,t)=>{let i=ot;return F(),J(`div`,Vn,[X(`div`,Hn,[Re(e.$slots,`toolbar-start`),t[2]||=X(`div`,{name:`text-viewer-toolbar-spacer`,class:`min-w-0 flex-1`},null,-1),H(Fn),B(n)?(F(),z(i,{key:0,checked:B(r),"onUpdate:checked":t[0]||=e=>N(r)?r.value=e:null},{default:I(()=>[...t[1]||=[U(` 自动换行 `,-1)]]),_:1},8,[`checked`])):V(``,!0)]),X(`div`,Un,[H(Bn),H(En)])])}}}),Gn={name:`raw-json-preview`,class:`h-full`},Kn=Z({__name:`RawJsonPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>fn(t.value,t.raw));return(e,t)=>(F(),J(`div`,Gn,[H(Wn,{value:B(n),"search-placeholder":`搜索原始 JSON`,class:`h-full`},null,8,[`value`])]))}}),qn={name:`text-search`,class:`w-full min-w-0 flex items-center gap-6px`},Jn={name:`text-search-options`,class:`flex items-center gap-2px`},Yn=[`aria-pressed`],Xn=[`aria-pressed`],Zn=[`aria-pressed`],Qn=Z({__name:`TextSearchInput`,props:ze({placeholder:{default:`搜索`},size:{default:`medium`}},{modelValue:{required:!0},modelModifiers:{},matchCase:{type:Boolean,default:!1},matchCaseModifiers:{},wholeWord:{type:Boolean,default:!1},wholeWordModifiers:{},useRegex:{type:Boolean,default:!1},useRegexModifiers:{}}),emits:[`update:modelValue`,`update:matchCase`,`update:wholeWord`,`update:useRegex`],setup(e){let t=e,n=Be(e,`modelValue`),r=Be(e,`matchCase`),i=Be(e,`wholeWord`),a=Be(e,`useRegex`),o=K(()=>!gn(n.value,{matchCase:r.value,wholeWord:i.value,useRegex:a.value}));return(e,s)=>{let c=tt;return F(),J(`div`,qn,[H(c,{value:n.value,"onUpdate:value":s[6]||=e=>n.value=e,clearable:``,size:t.size,status:B(o)?`error`:void 0,placeholder:t.placeholder,class:`min-w-0 flex-1`},{suffix:I(()=>[X(`div`,Jn,[X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,r.value?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":r.value,"aria-label":`区分大小写`,title:`区分大小写`,onMousedown:s[0]||=M(()=>{},[`prevent`]),onClick:s[1]||=e=>r.value=!r.value},` Aa `,42,Yn),X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px underline [text-underline-offset:2px] focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,i.value?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":i.value,"aria-label":`全词匹配`,title:`全词匹配`,onMousedown:s[2]||=M(()=>{},[`prevent`]),onClick:s[3]||=e=>i.value=!i.value},` ab `,42,Xn),X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,a.value?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":a.value,"aria-label":`使用正则表达式`,title:`使用正则表达式`,onMousedown:s[4]||=M(()=>{},[`prevent`]),onClick:s[5]||=e=>a.value=!a.value},` .* `,42,Zn)])]),_:1},8,[`value`,`size`,`status`,`placeholder`])])}}}),$n={name:`apps-preview`,class:`h-full min-h-0 flex flex-col gap-12px`},er={name:`apps-overview`,class:`flex gap-12px`},tr={name:`apps-users-layout`,class:`h-full min-h-0 flex gap-12px`},nr={name:`user-list`,"aria-label":`设备用户`,class:`w-220px min-w-220px overflow-auto pr-2px`},rr=[`onClick`],ir={class:`max-w-full flex items-center gap-6px font-600`},ar={class:`mt-3px text-12px text-[#64748b]`},or={class:`mt-8px text-12px text-[#64748b]`},sr={key:0,name:`user-apps`,class:`min-h-0 min-w-0 flex flex-1 flex-col gap-10px`},cr={name:`user-apps-header`,class:`min-w-0 flex items-center gap-16px`},lr={name:`selected-user-title`,class:`min-w-150px flex flex-col font-600`},ur={class:`text-12px text-[#64748b]`},dr=50,fr=Z({__name:`AppsPreview`,props:{data:{},value:{},raw:{}},setup(e){var t;let n=e,r=Y((t=n.data.users[0])==null?void 0:t.id);L(()=>n.data,e=>{var t;return r.value=(t=e.users[0])==null?void 0:t.id});let i=K(()=>n.data.users.find(e=>e.id==r.value)||n.data.users[0]),a=Y(``),o=We(pn()),s=Y(1),c=K(()=>{var e;let t=((e=i.value)==null?void 0:e.apps)||[],n=a.value.trim();return n?t.filter(e=>[e.name,e.id,e.versionName||``,e.versionCode==null?``:String(e.versionCode)].some(e=>bn(e,n,o))):t});L([r,c],()=>s.value=1);let l=K(()=>{let e=(s.value-1)*dr;return c.value.slice(e,e+dr)}),u=[{key:`name`,title:`应用名称`},{key:`id`,title:`包名`},{key:`version`,title:`版本`,render(e){var t;return e.versionName&&e.versionCode!=null?`${e.versionName} (${e.versionCode})`:e.versionName||((t=e.versionCode)==null?void 0:t.toString())||`-`}},{key:`isSystem`,title:`类型`,render(e){return e.isSystem==null?`-`:H(Ye,{size:`small`,type:e.isSystem?`info`:`default`},{default:()=>[e.isSystem?`系统应用`:`用户应用`]})}},{key:`state`,title:`状态`,render(e){let t=[e.enabled===!1?`已停用`:void 0,e.hidden?`已隐藏`:void 0].filter(Boolean);return t.length?t.join(` · `):`正常`}}];return(t,n)=>{let d=Wt,f=Ye,p=Ee,m=Ze,h=Xe,g=qt,_=Zt;return F(),J(`div`,$n,[X(`div`,er,[H(d,{label:`设备用户`,value:e.data.users.length,class:`min-w-140px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`]),H(d,{label:`应用安装记录`,value:e.data.totalApps,class:`min-w-140px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])]),H(_,{type:`line`,animated:``,class:`h-full min-h-0 [&_.n-tab-pane]:h-full [&_.n-tab-pane]:min-h-0 [&_.n-tabs-pane-wrapper]:h-full [&_.n-tabs-pane-wrapper]:min-h-0`},{default:I(()=>[H(g,{name:`users`,tab:`按用户查看`},{default:I(()=>[X(`div`,tr,[X(`aside`,nr,[(F(!0),J(W,null,Ie(e.data.users,(e,t)=>(F(),J(`button`,{key:e.id,type:`button`,class:R([`relative w-full flex cursor-pointer flex-col items-start rounded-6px border px-12px py-10px text-left text-inherit`,[t?`mt-6px`:``,e.id==B(r)?`border-[#bbf7d0] bg-[#f0fdf4]`:`border-transparent bg-transparent hover:bg-[#f8fafc]`]]),onClick:t=>r.value=e.id},[X(`span`,ir,[U(P(e.name)+` `,1),e.isCurrent?(F(),z(f,{key:0,size:`tiny`,type:`success`},{default:I(()=>[...n[5]||=[U(` 当前 `,-1)]]),_:1})):V(``,!0)]),X(`span`,ar,` 用户 `+P(e.id),1),X(`span`,or,P(e.apps.length)+` 个应用 `,1)],10,rr))),128))]),B(i)?(F(),J(`section`,sr,[X(`header`,cr,[X(`div`,lr,[X(`span`,null,P(B(i).name),1),X(`span`,ur,` 用户 `+P(B(i).id)+` · `+P(B(i).apps.length)+` 个应用 `,1)]),H(Qn,{modelValue:B(a),"onUpdate:modelValue":n[0]||=e=>N(a)?a.value=e:null,"match-case":B(o).matchCase,"onUpdate:matchCase":n[1]||=e=>B(o).matchCase=e,"whole-word":B(o).wholeWord,"onUpdate:wholeWord":n[2]||=e=>B(o).wholeWord=e,"use-regex":B(o).useRegex,"onUpdate:useRegex":n[3]||=e=>B(o).useRegex=e,placeholder:`搜索应用名称、包名或版本`,class:`ml-auto min-w-320px w-50% max-w-460px`},null,8,[`modelValue`,`match-case`,`whole-word`,`use-regex`])]),B(l).length==0?(F(),z(p,{key:0,description:B(a).trim()?`没有匹配的应用`:`该用户没有应用记录`,class:`min-h-0 flex-1`},null,8,[`description`])):(F(),z(m,{key:1,striped:``,columns:u,data:B(l),pagination:!1,rowKey:e=>e.id,class:`min-h-0 flex-1 [&_.n-data-table-wrapper]:h-full`},null,8,[`data`,`rowKey`])),B(c).length>dr?(F(),z(h,{key:2,page:B(s),"onUpdate:page":n[4]||=e=>N(s)?s.value=e:null,pageSize:dr,itemCount:B(c).length,class:`flex-none justify-end`},null,8,[`page`,`itemCount`])):V(``,!0)])):V(``,!0)])]),_:1}),H(g,{name:`raw`,tab:`原始 JSON`},{default:I(()=>[H(Kn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})])}}}),pr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),mr=e=>typeof e==`number`&&Number.isSafeInteger(e)?e:void 0,hr=e=>typeof e==`number`&&Number.isFinite(e)?e:void 0,gr=e=>typeof e==`string`?e:void 0,_r=e=>typeof e==`boolean`?e:void 0,vr=e=>{if(!pr(e)||!Array.isArray(e.apps)||e.apps.length>1e4||Array.isArray(e.otherUsers)&&e.otherUsers.length>1e4)return;let t=mr(e.userId)??0,n=new Map,r=(e,t,r=!1)=>{let i=n.get(e);if(i)return i.isCurrent||=r,i;let a={id:e,name:t,isCurrent:r,apps:[]};return n.set(e,a),a};r(t,`当前用户`,!0),Array.isArray(e.otherUsers)&&e.otherUsers.forEach(e=>{if(!pr(e))return;let n=mr(e.id);n!=null&&r(n,typeof e.name==`string`&&e.name.trim()?e.name:`用户 ${n}`,n==t)});let i=0;return e.apps.forEach(e=>{if(!pr(e)||typeof e.id!=`string`||typeof e.name!=`string`)return;let n=mr(e.userId)??t,a=r(n,n==t?`当前用户`:`用户 ${n}`,n==t),o={id:e.id,name:e.name,userId:n},s=hr(e.versionCode),c=gr(e.versionName),l=_r(e.isSystem),u=_r(e.hidden),d=_r(e.enabled);s!=null&&(o.versionCode=s),c!=null&&(o.versionName=c),l!=null&&(o.isSystem=l),u!=null&&(o.hidden=u),d!=null&&(o.enabled=d),a.apps.push(o),i++}),{users:[...n.values()].sort((e,t)=>e.isCurrent==t.isCurrent?e.id-t.id:e.isCurrent?-1:1),totalApps:i}},yr={name:`json-basic-table`,class:`mb-10px mt-6px`},br=Z({__name:`JsonBasicTable`,props:{rows:{},indexed:{type:Boolean,default:!1}},setup(e){let t=e,n=K(()=>[{key:`key`,title:t.indexed?`索引`:`键`,width:220,ellipsis:{tooltip:!0}},{key:`value`,title:`值`,render(e){return H(`code`,{class:`whitespace-pre-wrap [overflow-wrap:anywhere]`},[dn(e.value)])}}]),r=K(()=>t.rows.length>200?{pageSize:200,showSizePicker:!1}:!1),i=e=>e.key;return(t,a)=>{let o=Ze;return F(),J(`div`,yr,[H(o,{striped:``,size:`small`,columns:B(n),data:e.rows,rowKey:i,pagination:B(r)},null,8,[`columns`,`data`,`pagination`])])}}}),xr={flex:``,"flex-col":``,"gap-10px":``,"h-full":``},Sr={name:`json-structure-scroll`,class:`min-h-0 flex-1 overflow-auto px-4px pb-24px pt-8px font-mono text-13px`},Cr={key:1,name:`json-search-results`,class:`flex flex-col gap-6px`},wr={class:`text-[#7c3aed]`},Tr={class:`mt-4px text-[#374151] [overflow-wrap:anywhere]`},Er=Z({__name:`JsonPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>sn(t.value)),r=e=>{if(Array.isArray(e))return`Array(${e.length})`;if(e&&typeof e==`object`){let t=an(e);return t==null?`Object(>${rn})`:`Object(${t})`}return typeof e==`string`?JSON.stringify(e):String(e)},a=Z({name:`JsonNode`,props:{value:{type:null,required:!0},name:{type:String,required:!0},depth:{type:Number,default:0}},setup(e){let t=G(e.depth==0);return()=>{let n=on(e.value),o=e.value!=null&&typeof e.value==`object`&&!n,s=o?Object.entries(e.value):[],c=o?un(e.value):void 0;return H(`div`,Ne({name:`json-node`},{class:`block`}),[H(`div`,Ne({name:`json-node-line`},{class:`min-h-28px flex items-center gap-6px`}),[o?H(i,{quaternary:!0,size:`tiny`,class:`w-24px min-w-24px font-inherit`,onClick:()=>t.value=!t.value},{default:()=>[t.value?`−`:`+`]}):H(`span`,{class:`inline-block w-24px`},null),H(`span`,{class:`text-[#7c3aed]`},[e.name]),H(`span`,{class:`text-[#6b7280]`},[U(`:`)]),H(`span`,{class:o?`text-[#6b7280]`:`text-[#0f766e] [overflow-wrap:anywhere]`},[r(e.value)]),n?H(`span`,{class:`text-[#b45309]`},[U(`结构过大,请切换到原始 JSON 查看`)]):null]),o&&t.value?H(`div`,Ne({name:`json-children`},{class:`ml-15px border-l border-[#e5e7eb] pl-10px`}),[c?H(br,{rows:c,indexed:Array.isArray(e.value)},null):s.map(([t,n])=>H(a,{key:t,name:t,value:n,depth:e.depth+1},null))]):null])}}}),o=Y(``),s=We(pn()),c=K(()=>{let e=o.value.trim();if(!e||n.value)return[];let i=[],a=[{value:t.value,path:``}];for(;a.length&&i.length<200;){let t=a.pop();if(!t)break;let{value:n,path:o}=t;if(typeof n==`object`&&n){if(on(n))continue;let t=Object.entries(n);for(let n=t.length-1;n>=0;n--){let[c,l]=t[n],u=o?`${o}.${c}`:c;if(bn(c,e,s)&&(i.push({path:u,value:r(l)}),i.length>=200))break;a.push({value:l,path:u})}continue}let c=r(n);bn(c,e,s)&&i.push({path:o||`$`,value:c})}return i});return(t,r)=>{let i=Ct,l=Ee,u=qt,d=Zt;return F(),z(d,{type:`line`,animated:``,class:`h-full [&_.n-tab-pane]:h-full [&_.n-tab-pane]:min-h-0 [&_.n-tabs-pane-wrapper]:h-full [&_.n-tabs-pane-wrapper]:min-h-0`},{default:I(()=>[H(u,{name:`structured`,tab:`结构化`},{default:I(()=>[X(`div`,xr,[H(Qn,{modelValue:B(o),"onUpdate:modelValue":r[0]||=e=>N(o)?o.value=e:null,"match-case":B(s).matchCase,"onUpdate:matchCase":r[1]||=e=>B(s).matchCase=e,"whole-word":B(s).wholeWord,"onUpdate:wholeWord":r[2]||=e=>B(s).wholeWord=e,"use-regex":B(s).useRegex,"onUpdate:useRegex":r[3]||=e=>B(s).useRegex=e,placeholder:`搜索键或值,最多展示 200 条结果`},null,8,[`modelValue`,`match-case`,`whole-word`,`use-regex`]),X(`div`,Sr,[B(n)?(F(),z(i,{key:0,type:`warning`,title:`JSON 结构过大`},{default:I(()=>[...r[4]||=[U(` 为避免占用过多内存,请切换到“原始 JSON”查看和搜索。 `,-1)]]),_:1})):B(o).trim()?(F(),J(W,{key:1},[B(c).length==0?(F(),z(l,{key:0,description:`没有匹配项`})):(F(),J(`div`,Cr,[(F(!0),J(W,null,Ie(B(c),e=>(F(),J(`div`,{key:`${e.path}:${e.value}`,name:`json-search-item`,class:`rounded-4px border border-[#e5e7eb] px-10px py-8px`},[X(`div`,wr,P(e.path),1),X(`div`,Tr,P(e.value),1)]))),128))]))],64)):(F(),z(B(a),{key:2,name:`$`,value:e.value,depth:0},null,8,[`value`]))])])]),_:1}),H(u,{name:`raw`,tab:`原始 JSON`},{default:I(()=>[H(Kn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})}}}),Dr=async(e,t)=>{var n;let r=(n=e.body)==null?void 0:n.getReader();if(!r){let n=await e.arrayBuffer();if(n.byteLength>t)throw Error(`响应内容超过大小限制`);return n}let i=[],a=0;for(;;){let{done:e,value:n}=await r.read();if(e)break;if(a+=n.byteLength,a>t)throw await r.cancel(`响应内容超过大小限制`),Error(`响应内容超过大小限制`);i.push(n)}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.byteLength;return o.buffer},Or=e=>{if(typeof e==`string`)try{let t=new URL(e);if(t.protocol==`http:`||t.protocol==`https:`)return t.href}catch{}},kr={name:`subscription-preview`,class:`h-full min-h-0 flex flex-col gap-12px`},Ar=[`href`],jr=[`href`],Mr={name:`subscription-stats`,class:`flex flex-wrap gap-12px`},Nr={name:`subscription-tab-body`,class:`h-full min-h-0 flex flex-col gap-10px`},Pr={name:`app-id`,class:`mb-10px text-[#6b7280]`},Fr={name:`subscription-global-groups`,class:`min-h-0 flex flex-col gap-10px overflow-auto`},Ir={key:0,class:`mb-10px text-[#6b7280]`};function Lr(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Ke(e)}var Rr=50,zr=Z({__name:`SubscriptionPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>Or(t.value.updateUrl)),r=K(()=>Or(t.value.supportUri)),i=e=>e==null?[]:Array.isArray(e)?e:[e],a=K(()=>t.value.apps||[]),o=K(()=>t.value.globalGroups||[]),s=K(()=>t.value.categories||[]),c=K(()=>{let e=0,t=0;for(let n of a.value){e+=n.groups.length;for(let e of n.groups)t+=i(e.rules).length}let n=0;for(let e of o.value)n+=i(e.rules).length;return{apps:a.value.length,appGroups:e,appRules:t,globalGroups:o.value.length,globalRules:n,categories:s.value.length}}),l=Y(``),u=We(pn()),d=Y(1),f=K(()=>{let e=l.value.trim();return e?a.value.filter(t=>bn(t.id,e,u)||bn(t.name||``,e,u)):a.value});L(f,()=>d.value=1);let p=K(()=>{let e=(d.value-1)*Rr;return f.value.slice(e,e+Rr)}),m=(e,t)=>typeof e==`string`?`规则 ${t+1}`:e&&typeof e==`object`?String(e.name||`规则 ${t+1}`):`规则 ${t+1}`,h=e=>{let t;return H($e,{accordion:!0},Lr(t=i(e.rules).map((e,t)=>H(Qe,{key:t,name:t,title:m(e,t)},{default:()=>[H(`pre`,{class:`m-0 whitespace-pre-wrap rounded-4px border border-[#e5e7eb] bg-[#fafafa] p-10px font-mono text-12px [overflow-wrap:anywhere]`},[JSON.stringify(e,null,2)])]})))?t:{default:()=>[t]})},g=e=>H(`div`,Ne({name:`subscription-groups`},{class:`flex flex-col gap-10px`}),[e.groups.map(e=>H(D,{key:e.key,size:`small`,title:`${e.name} · #${e.key}`},{default:()=>[e.desc?H(`div`,{class:`mb-10px text-[#6b7280]`},[e.desc]):null,h(e)]}))]),_=[{key:`key`,title:`Key`,width:100},{key:`name`,title:`名称`},{key:`enable`,title:`默认状态`,width:140,render(e){return e.enable==null?`跟随规则组`:e.enable?`启用`:`禁用`}}];return(t,i)=>{let m=Mt,v=At,y=Wt,b=Ee,x=Qe,S=$e,C=Xe,w=qt,T=D,E=Ze,O=Zt;return F(),J(`div`,kr,[H(v,{bordered:``,size:`small`,column:3,labelPlacement:`left`},{default:I(()=>[H(m,{label:`名称`},{default:I(()=>[U(P(e.value.name),1)]),_:1}),H(m,{label:`ID`},{default:I(()=>[U(P(e.value.id),1)]),_:1}),H(m,{label:`版本`},{default:I(()=>[U(P(e.value.version),1)]),_:1}),e.value.author?(F(),z(m,{key:0,label:`作者`},{default:I(()=>[U(P(e.value.author),1)]),_:1})):V(``,!0),B(n)?(F(),z(m,{key:1,label:`更新地址`},{default:I(()=>[X(`a`,{href:B(n),target:`_blank`,rel:`noopener noreferrer`},P(e.value.updateUrl),9,Ar)]),_:1})):V(``,!0),B(r)?(F(),z(m,{key:2,label:`反馈地址`},{default:I(()=>[X(`a`,{href:B(r),target:`_blank`,rel:`noopener noreferrer`},P(e.value.supportUri),9,jr)]),_:1})):V(``,!0)]),_:1}),X(`div`,Mr,[B(c).apps?(F(),z(y,{key:0,label:`应用`,value:B(c).apps,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).appGroups?(F(),z(y,{key:1,label:`应用规则组`,value:B(c).appGroups,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).appRules?(F(),z(y,{key:2,label:`应用规则`,value:B(c).appRules,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).globalGroups?(F(),z(y,{key:3,label:`全局规则组`,value:B(c).globalGroups,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).globalRules?(F(),z(y,{key:4,label:`全局规则`,value:B(c).globalRules,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).categories?(F(),z(y,{key:5,label:`分类`,value:B(c).categories,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0)]),H(O,{type:`line`,animated:``,class:`h-full min-h-0 [&_.n-tab-pane]:h-full [&_.n-tab-pane]:min-h-0 [&_.n-tabs-pane-wrapper]:h-full [&_.n-tabs-pane-wrapper]:min-h-0`},{default:I(()=>[B(a).length?(F(),z(w,{key:0,name:`apps`,tab:`应用规则`},{default:I(()=>[X(`div`,Nr,[H(Qn,{modelValue:B(l),"onUpdate:modelValue":i[0]||=e=>N(l)?l.value=e:null,"match-case":B(u).matchCase,"onUpdate:matchCase":i[1]||=e=>B(u).matchCase=e,"whole-word":B(u).wholeWord,"onUpdate:wholeWord":i[2]||=e=>B(u).wholeWord=e,"use-regex":B(u).useRegex,"onUpdate:useRegex":i[3]||=e=>B(u).useRegex=e,placeholder:`搜索应用名称或包名`},null,8,[`modelValue`,`match-case`,`whole-word`,`use-regex`]),B(p).length==0?(F(),z(b,{key:0,description:`没有匹配的应用`})):(F(),z(S,{key:1,accordion:``,class:`min-h-0 flex-1 overflow-auto`},{default:I(()=>[(F(!0),J(W,null,Ie(B(p),e=>(F(),z(x,{key:e.id,name:e.id,title:`${e.name||e.id} · ${e.groups.length} 个规则组`},{default:I(()=>[X(`div`,Pr,P(e.id),1),(F(),z(Ae(()=>g(e))))]),_:2},1032,[`name`,`title`]))),128))]),_:1})),B(f).length>Rr?(F(),z(C,{key:2,page:B(d),"onUpdate:page":i[4]||=e=>N(d)?d.value=e:null,pageSize:Rr,itemCount:B(f).length},null,8,[`page`,`itemCount`])):V(``,!0)])]),_:1})):V(``,!0),B(o).length?(F(),z(w,{key:1,name:`global`,tab:`全局规则`},{default:I(()=>[X(`div`,Fr,[(F(!0),J(W,null,Ie(B(o),e=>(F(),z(T,{key:e.key,size:`small`,title:`${e.name} · #${e.key}`},{default:I(()=>[e.desc?(F(),J(`div`,Ir,P(e.desc),1)):V(``,!0),(F(),z(Ae(()=>h(e))))]),_:2},1032,[`title`]))),128))])]),_:1})):V(``,!0),B(s).length?(F(),z(w,{key:2,name:`categories`,tab:`分类`},{default:I(()=>[H(E,{striped:``,columns:_,data:B(s),pagination:!1},null,8,[`data`])]),_:1})):V(``,!0),H(w,{name:`raw`,tab:`原始 JSON`},{default:I(()=>[H(Kn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})])}}}),Br=new Set([`ctime`,`mtime`]),Vr=new Set([`snapshot`,`subs_config`]),Hr=new Set([`app_visit_log`,`subs_config`]),Ur=(e,t)=>{let n=t.toLowerCase();return n==`app_id`||e.toLowerCase()==`app_visit_log`&&n==`id`},Wr=(e,t)=>t.toLowerCase()==`subs_id`&&Hr.has(e.toLowerCase()),Gr=(e,t,n)=>{let r=t.toLowerCase();if(!(Br.has(r)||r==`id`&&Vr.has(e.toLowerCase()))||typeof n!=`number`&&typeof n!=`string`)return;let i=Number(n);if(!Number.isFinite(i))return;let a=Math.abs(i)<1e11?i*1e3:i,o=new Date(a);if(!Number.isNaN(o.getTime()))return o},Kr=(e,t=2)=>e.toString().padStart(t,`0`),qr=e=>`${e.getFullYear()}-${Kr(e.getMonth()+1)}-${Kr(e.getDate())} ${Kr(e.getHours())}:${Kr(e.getMinutes())}:${Kr(e.getSeconds())}.${Kr(e.getMilliseconds(),3)}`,Jr={key:2,name:`sqlite-layout`,class:`h-full min-h-0 flex gap-12px`},Yr={name:`sqlite-table-list`,class:`w-250px min-w-250px flex flex-col gap-8px border-r border-[#e5e7eb] pr-10px`},Xr={name:`sqlite-table-scroll`,class:`min-h-0 overflow-auto`},Zr={class:`flex-1 overflow-hidden text-left text-ellipsis leading-20px`},Qr={key:0,name:`sqlite-table-content`,class:`h-full min-h-0 min-w-0 flex-1`},$r={name:`sqlite-data-pane`,class:`h-full min-h-0 flex flex-col items-end gap-10px`},ei={name:`sqlite-data-table-scroll`,class:`w-full min-h-0 flex-1 overflow-auto`},ti={name:`sqlite-schema`,class:`box-border m-0 h-full overflow-auto whitespace-pre-wrap rounded-4px border border-[#e5e7eb] bg-[#fafafa] p-12px`},ni=100,ri=Z({__name:`SqlitePreview`,props:{database:{},wal:{},appNames:{},subscriptionNames:{}},setup(e){let t=e,n=Y(!0),r=Y(!1),a=Y(``),o=Y(``),s=Y([]),c=Y(``),l=Y(1),u=Y([]),d=Y([]),f=Y(``),p=We(pn()),m=new Worker(new URL(`https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1785940736532/files/dist/assets/sqlite.worker-CLB9_Act.js`,``+import.meta.url),{type:`module`}),h=1,g=0,_=new Map;m.onmessage=e=>{let t=e.data,n=_.get(t.id);n&&(_.delete(t.id),t.ok?n.resolve(t.result):n.reject(Error(t.error)))},m.onerror=e=>{let t=Error(e.message||`SQLite Worker 运行失败`);for(let e of _.values())e.reject(t);_.clear()};let v=(e,t=[])=>{let n=h++;return new Promise((r,i)=>{_.set(n,{resolve:e=>r(e),reject:i}),m.postMessage({...e,id:n},t)})},y=K(()=>s.value.find(e=>e.name==c.value)),b=K(()=>{let e=f.value.trim();return e?s.value.filter(t=>bn(t.name,e,p)):s.value}),x=async()=>{if(!c.value)return;let e=++g,t=c.value,n=l.value;r.value=!0,o.value=``;try{let r=await v({type:`page`,table:t,page:n,pageSize:ni});if(e!=g||t!=c.value||n!=l.value)return;u.value=r.columns,d.value=r.rows}catch(t){if(e!=g)return;o.value=t instanceof Error?t.message:String(t)}finally{e==g&&(r.value=!1)}};L(c,()=>{l.value==1?x():l.value=1}),L(l,x),Le(async()=>{n.value=!0,a.value=``;try{var e;let n=t.database,r=t.wal,i=[n.buffer];r&&i.push(r.buffer);let a=await v({type:`open`,database:n,wal:r},i);s.value=a.tables,c.value=((e=a.tables[0])==null?void 0:e.name)||``}catch(e){a.value=e instanceof Error?e.message:String(e)}finally{n.value=!1}}),ke(()=>{m.terminate();for(let e of _.values())e.reject(Error(`组件已卸载`));_.clear()});let S=(e,n,r)=>{if(r==null)return H(`span`,{class:`italic text-[#9ca3af]`},[U(`NULL`)]);if(typeof r==`object`)return H(Ye,{size:`small`},{default:()=>[`BLOB · ${r.byteLength} bytes`]});if(Ur(e,n)&&typeof r==`string`){var i;let e=(i=t.appNames)==null?void 0:i[r];if(e)return H(`span`,{class:`whitespace-pre`,title:r},[e])}if(Wr(e,n)&&(typeof r==`number`||typeof r==`string`)){var a;let e=(a=t.subscriptionNames)==null?void 0:a[String(r)];if(e)return H(`span`,{class:`whitespace-pre`,title:String(r)},[e])}let o=Gr(e,n,r);return o?H(`span`,{class:`whitespace-nowrap tabular-nums`,title:String(r)},[qr(o)]):H(`span`,{class:`whitespace-pre`},[String(r)])},C=K(()=>u.value.map(e=>({key:e,title:e,render(t){return S(c.value,e,t[e]??null)}}))),w=K(()=>d.value.map((e,t)=>{let n={__rowIndex:t};return u.value.forEach((t,r)=>{n[t]=e[r]??null}),n}));return(e,t)=>{let u=Ct,d=Ee,m=Ye,h=i,g=Ze,_=Xe,v=qt,x=Zt,S=Ht;return F(),z(S,{show:B(n),class:`h-full min-h-0 [&_.n-spin-content]:h-full [&_.n-spin-content]:min-h-0`},{default:I(()=>[B(a)?(F(),z(u,{key:0,type:`error`,title:`数据库无法预览`},{default:I(()=>[U(P(B(a)),1)]),_:1})):!B(n)&&B(s).length==0?(F(),z(d,{key:1,description:`数据库中没有可展示的数据表`})):(F(),J(`div`,Jr,[X(`aside`,Yr,[H(Qn,{modelValue:B(f),"onUpdate:modelValue":t[0]||=e=>N(f)?f.value=e:null,"match-case":B(p).matchCase,"onUpdate:matchCase":t[1]||=e=>B(p).matchCase=e,"whole-word":B(p).wholeWord,"onUpdate:wholeWord":t[2]||=e=>B(p).wholeWord=e,"use-regex":B(p).useRegex,"onUpdate:useRegex":t[3]||=e=>B(p).useRegex=e,placeholder:`搜索数据表`},null,8,[`modelValue`,`match-case`,`whole-word`,`use-regex`]),X(`div`,Xr,[(F(!0),J(W,null,Ie(B(b),e=>(F(),z(h,{key:e.name,block:``,text:``,type:e.name==B(c)?`primary`:`default`,class:`h-34px justify-between px-6px`,onClick:t=>c.value=e.name},{default:I(()=>[X(`span`,Zr,P(e.name),1),H(m,{size:`small`,bordered:!1},{default:I(()=>[U(P(e.count??`?`),1)]),_:2},1024)]),_:2},1032,[`type`,`onClick`]))),128))])]),B(y)?(F(),J(`section`,Qr,[H(x,{type:`line`,animated:``,class:`h-full min-h-0 min-w-0 flex-1 [&_.n-tab-pane]:h-full [&_.n-tab-pane]:min-h-0 [&_.n-tab-pane]:min-w-0 [&_.n-tab-pane]:flex-1 [&_.n-tabs-pane-wrapper]:h-full [&_.n-tabs-pane-wrapper]:min-h-0 [&_.n-tabs-pane-wrapper]:min-w-0 [&_.n-tabs-pane-wrapper]:flex-1`},{default:I(()=>[H(v,{name:`data`,tab:B(y).count==null?`数据`:`数据 · ${B(y).count}`},{default:I(()=>[X(`div`,$r,[B(o)?(F(),z(u,{key:0,type:`warning`,title:`当前数据表无法读取`,class:`w-full flex-none`},{default:I(()=>[U(P(B(o)),1)]),_:1})):V(``,!0),X(`div`,ei,[H(g,{striped:``,"table-layout":`auto`,loading:B(r),columns:B(C),data:B(w),pagination:!1,rowKey:e=>Number(e.__rowIndex),size:`small`,class:`w-full [&_.n-data-table-table]:min-w-full [&_.n-data-table-table]:w-max [&_.n-data-table-th]:whitespace-nowrap`},null,8,[`loading`,`columns`,`data`,`rowKey`])]),B(y).count!=null&&B(y).count>ni?(F(),z(_,{key:1,page:B(l),"onUpdate:page":t[4]||=e=>N(l)?l.value=e:null,pageSize:ni,itemCount:B(y).count},null,8,[`page`,`itemCount`])):V(``,!0)])]),_:1},8,[`tab`]),H(v,{name:`schema`,tab:`表结构`},{default:I(()=>[X(`pre`,ti,P(B(y).sql),1)]),_:1})]),_:1})])):V(``,!0)]))]),_:1},8,[`show`])}}}),ii=e=>typeof e==`object`&&!!e&&!Array.isArray(e),ai=e=>{if(!ii(e)||!Array.isArray(e.apps))return{};let t=[];return e.apps.forEach(e=>{ii(e)&&(typeof e.id!=`string`||typeof e.name!=`string`||t.push([e.id,e.name]))}),Object.fromEntries(t)},oi=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`number`&&Number.isSafeInteger(t.id)&&typeof t.name==`string`&&t.name.length>0},si=e=>{if(oi(e))return[String(e.id),e.name]},ci=101010256,li=33639248,ui=22,di=65535,fi=(e,t)=>{if(e.byteLength<ui)throw Error(`不是有效的 ZIP 文件`);let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=Math.max(0,e.byteLength-ui-di),i=-1;for(let t=e.byteLength-ui;t>=r;t--)if(n.getUint32(t,!0)==ci&&t+ui+n.getUint16(t+20,!0)==e.byteLength){i=t;break}if(i<0)throw Error(`不是有效的 ZIP 文件`);let a=n.getUint16(i+4,!0),o=n.getUint16(i+6,!0),s=n.getUint16(i+8,!0),c=n.getUint16(i+10,!0),l=n.getUint32(i+12,!0),u=n.getUint32(i+16,!0);if(a!=0||o!=0||s!=c||c==65535||l==4294967295||u==4294967295)throw Error(`不支持分卷或 ZIP64 日志包`);if(c>t.maxEntries)throw Error(`ZIP 内条目数量不能超过 ${t.maxEntries}`);if(u>i||l>i-u||u+l!=i)throw Error(`ZIP 中央目录损坏`);let d=u,f=0,p=0;for(;d<i;){if(d+46>i||n.getUint32(d,!0)!=li)throw Error(`ZIP 中央目录损坏`);let e=n.getUint32(d+20,!0),r=n.getUint32(d+24,!0);if(e==4294967295||r==4294967295)throw Error(`不支持 ZIP64 日志包`);let a=n.getUint16(d+28,!0);if(a>t.maxEntryNameSize)throw Error(`ZIP 条目路径过长`);let o=n.getUint16(d+30,!0),s=n.getUint16(d+32,!0),c=d+46+a+o+s;if(c>i)throw Error(`ZIP 中央目录损坏`);if(f++,f>t.maxEntries)throw Error(`ZIP 内条目数量不能超过 ${t.maxEntries}`);if(p+=r,!Number.isSafeInteger(p)||p>t.maxUncompressedSize)throw Error(`ZIP 解压后总大小超过限制`);d=c}if(f!=c||d!=i)throw Error(`ZIP 中央目录条目数量不一致`);return{entryCount:c,totalUncompressedSize:p}},pi=50*1024*1024,mi=200*1024*1024,hi=2e3,gi=20*1024*1024,_i=2*1024*1024,vi=100*1024*1024,yi=5e5,bi=1024,xi=new Set([`.log`,`.txt`,`.sql`,`.xml`,`.md`,`.yaml`,`.yml`,`.csv`]),Si=new Set([`.db`,`.sqlite`,`.sqlite3`]),Ci=e=>{let t=e.split(`/`).at(-1)||e,n=t.lastIndexOf(`.`);return n>=0?t.slice(n).toLowerCase():``},wi=e=>{let t=e.toLowerCase();if(t.endsWith(`-wal`)||t.endsWith(`-shm`))return`database-sidecar`;let n=Ci(e);return n==`.json`?`json`:Si.has(n)?`database`:xi.has(n)?`text`:`binary`},Ti=e=>e.extension==`.log`?0:e.kind==`text`?1:e.kind==`json`?2:e.kind==`database`?3:4,Ei=e=>e.entries.filter(e=>e.kind==`text`||e.kind==`json`||e.kind==`database`).toSorted((e,t)=>Ti(e)-Ti(t))[0],Di=async(e,t)=>{let n=e instanceof Blob?e.size:e.byteLength;if(n>52428800)throw Error(`ZIP 文件不能超过 ${$(pi)}`);let r=e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e),i=fi(r,{maxEntries:hi,maxEntryNameSize:bi,maxUncompressedSize:mi}),a=await dt(r),o=Object.values(a.files).filter(e=>!e.dir);if(o.length>2e3)throw Error(`ZIP 内文件数量不能超过 ${hi}`);let s=0,c={total:0,sizes:new Map},l=o.map(e=>{var t;let n=e;if(n.unsafeOriginalName&&n.unsafeOriginalName.replaceAll(`\\`,`/`)!=n.name)throw Error(`ZIP 包含不安全路径: ${n.unsafeOriginalName}`);let r=((t=n._data)==null?void 0:t.uncompressedSize)||0;s+=r;let i=n.name.replaceAll(`\\`,`/`).replace(/^\/+/,``),a=i.split(`/`);if(i.length>1024||a.length>64||a.some(e=>!e||e.length>255))throw Error(`ZIP 条目路径超出预览限制: ${i}`);return{path:i,name:i.split(`/`).at(-1)||i,extension:Ci(i),size:r,kind:wi(i),file:e,readBudget:c}});if(s>209715200)throw Error(`ZIP 解压后总大小不能超过 ${$(mi)}`);if(s!=i.totalUncompressedSize)throw Error(`ZIP 中央目录大小信息不一致`);let u=new Set(l.map(e=>e.path));for(let e of l){let t=e.path.split(`/`),n=t[0];for(let e=1;e<t.length;e++){if(u.has(n))throw Error(`ZIP 同时包含文件及其子路径: ${n}`);n+=`/${t[e]}`}}return l.sort((e,t)=>e.path.localeCompare(t.path,`zh-CN`)),{name:t,compressedSize:n,uncompressedSize:s,entries:l,entryMap:new Map(l.map(e=>[e.path,e]))}},Oi=new WeakMap,ki=new WeakMap,Ai=async(e,t=gi)=>{if(e.size>t)throw Error(`${e.name} 超过可预览上限 ${$(t)}`);let n=e.readBudget.sizes.get(e.path);return new Promise((r,i)=>{let a=[],o=0,s=!1,c=e.file.internalStream(`uint8array`),l=e=>{s||(s=!0,c.pause(),i(e instanceof Error?e:Error(String(e))))};c.on(`data`,r=>{if(!s){if(o+r.byteLength>t){l(Error(`${e.name} 超过可预览上限 ${$(t)}`));return}if(n==null&&e.readBudget.total+r.byteLength>209715200){l(Error(`ZIP 实际解压大小超过可预览上限`));return}o+=r.byteLength,n??(e.readBudget.total+=r.byteLength),a.push(r)}}).on(`error`,l).on(`end`,()=>{if(s)return;s=!0;let t=new Uint8Array(o),i=0;for(let e of a)t.set(e,i),i+=e.byteLength;n??e.readBudget.sizes.set(e.path,o),r(t)}).resume()})},ji=(e,t=gi)=>{var n;let r=(n=ki.get(e.file))==null?void 0:n.get(t);if(r)return Promise.reject(r);let i=Oi.get(e.file);i||(i=new Map,Oi.set(e.file,i));let a=i.get(t);return a||(a=Ai(e,t),i.set(t,a),a.then(()=>i==null?void 0:i.delete(t),n=>{i==null||i.delete(t);let r=ki.get(e.file);r||(r=new Map,ki.set(e.file,r)),r.set(t,n instanceof Error?n:Error(String(n)))})),a},Mi=async(e,t)=>{let n=e.entryMap.get(`${t.path}-wal`),r=e.entryMap.get(`${t.path}-shm`);if(t.size+((n==null?void 0:n.size)||0)+((r==null?void 0:r.size)||0)>104857600)throw Error(`数据库文件组超过可预览上限 ${$(vi)}`);let i=await ji(t,vi);return{database:i,wal:n?await ji(n,vi-i.byteLength):void 0,walEntry:n,shmEntry:r}},Ni=e=>{let t=new TextDecoder().decode(e),n=1;for(let e=0;e<t.length;e++)if((t.charCodeAt(e)==10||t.charCodeAt(e)==13&&t.charCodeAt(e+1)!=10)&&n++,n>5e5)throw Error(`文本行数不能超过 ${yi}`);return t},Pi=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Fi=1e4,Ii=new WeakMap,Li=e=>{let t=Ii.get(e);return t||(t=(async()=>{let t=e.entries.find(e=>{let t=e.path.toLowerCase();return t==`apps.json`||t.endsWith(`/apps.json`)});if(!t)return{};try{let e=Ni(await ji(t,_i));return ai(JSON.parse(e))}catch{return{}}})(),Ii.set(e,t),t)},Ri=new WeakMap,zi=e=>{let t=Ri.get(e);return t||(t=(async()=>{let t=e.entries.filter(e=>/^subscription\/[^/]+\.json$/i.test(e.path)),n=[];for(let e of t)try{let t=Ni(await ji(e,_i)),r=si(JSON.parse(t));r&&n.push(r)}catch{}return Object.fromEntries(n.filter(e=>e!=null))})(),Ri.set(e,t),t)},Bi=e=>{if(!Pi(e)||typeof e.id!=`number`||!Number.isSafeInteger(e.id)||typeof e.name!=`string`||typeof e.version!=`number`||!Number.isSafeInteger(e.version)||![`apps`,`globalGroups`,`categories`].every(t=>e[t]==null||Array.isArray(e[t])))return!1;let t=Array.isArray(e.apps)?e.apps:[],n=Array.isArray(e.globalGroups)?e.globalGroups:[],r=Array.isArray(e.categories)?e.categories:[];if(t.length>Fi||n.length>Fi||r.length>Fi||!r.every(Pi))return!1;let i=t.length+n.length+r.length,a=e=>{let t=e.rules;return i+=Array.isArray(t)?t.length:t==null?0:1,i<=Fi};for(let e of t){if(!Pi(e)||typeof e.id!=`string`||!Array.isArray(e.groups)||(i+=e.groups.length,i>Fi))return!1;for(let t of e.groups)if(!Pi(t)||!a(t))return!1}for(let e of n)if(!Pi(e)||!a(e))return!1;return!0},Vi=(e,t)=>Bi(t)&&(e.path.toLowerCase().startsWith(`subscription/`)||[`apps`,`globalGroups`,`categories`].some(e=>e in t)),$=e=>{if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KiB`,`MiB`,`GiB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;let i=r==0||n>=100?0:n>=10?1:2;return`${n.toFixed(i)} ${t[r]}`},Hi=e(ut(),1),Ui=10080*60*1e3,Wi=Hi.default.createInstance({name:`gkd-inspect-log`,storeName:`remote_logs`,version:1,driver:Hi.default.INDEXEDDB}),Gi=(e,t=Date.now())=>{if(!e||typeof e!=`object`)return!1;let n=e;return n.version==1&&typeof n.cachedAt==`number`&&Number.isFinite(n.cachedAt)&&typeof n.expiresAt==`number`&&Number.isFinite(n.expiresAt)&&n.expiresAt>t&&typeof n.name==`string`&&n.data instanceof ArrayBuffer},Ki=async e=>{try{await Wi.removeItem(e)}catch{}},qi=async e=>{try{let t=await Wi.getItem(e);if(Gi(t))return t;t&&await Wi.removeItem(e)}catch{}},Ji=async(e,t,n)=>{let r=Date.now();try{let i=[];for(let t of await Wi.keys()){let n=await Wi.getItem(t);Gi(n,r)?t!=e&&i.push({key:t,value:n}):await Wi.removeItem(t)}i.sort((e,t)=>e.value.cachedAt-t.value.cachedAt);let a=i.reduce((e,t)=>e+t.value.data.byteLength,n.byteLength);for(;i.length>=10||a>209715200;){let e=i.shift();if(!e)break;a-=e.value.data.byteLength,await Wi.removeItem(e.key)}await Wi.setItem(e,{version:1,cachedAt:r,expiresAt:r+Ui,name:t,data:n})}catch{}},Yi={name:`log-page`,"page-size":``,class:`box-border flex min-h-700px min-w-1200px flex-col gap-10px bg-[#f8fafc] p-10px`},Xi={name:`log-toolbar`,class:`h-42px flex items-center gap-10px`},Zi={key:1,name:`log-workspace`,class:`flex min-h-0 flex-1 gap-10px`},Qi={key:0,name:`archive-meta-content`,class:`min-w-0 flex-1`},$i=[`title`],ea={name:`archive-stats`,class:`mt-3px text-12px text-[#64748b]`},ta=[`aria-expanded`,`aria-label`,`title`],na={name:`log-preview-panel`,class:`box-border flex min-h-0 min-w-0 flex-1 flex-col rounded-6px border border-[#e2e8f0] bg-white`},ra={key:0,name:`preview-header`,class:`box-border min-h-52px flex items-center gap-10px border-b border-[#e5e7eb] px-12px py-8px [&>:first-child]:flex-1`},ia={"min-w-0":``},aa=[`title`],oa={name:`preview-size`,class:`mt-3px text-12px text-[#64748b]`},sa={name:`preview-body`,class:`min-h-0 flex-1 p-12px`},ca={key:2,name:`text-preview-wrapper`,class:`h-full min-h-0 flex flex-col gap-8px`},la={key:0,name:`text-preview-file-meta`,class:`min-w-0 max-w-260px flex-[0_1_260px] text-left`},ua=[`title`],da={name:`preview-size`,class:`mt-3px text-12px text-[#64748b]`},fa={key:2,name:`log-empty-state`,class:`grid min-h-0 flex-1 place-items-center`},pa={name:`drop-title`,class:`text-20px font-600`},ma=Z({__name:`LogPage`,setup(e){let t=ct(),n=st(),r=Y(),a=Y(``),o=Y(!1),s=Y(!1),c=Y(``),l=Y(``),u=Y(`none`),d=Y(``),f=Y(),p=Y(),m=Y(``),h=Y(),g=Y(),_=Y({}),v=Y({}),y=Y(),b=Y(!1),x=0,S=0,C,w=K(()=>{var e;return(e=r.value)==null?void 0:e.entryMap.get(a.value)}),T=()=>{u.value=`none`,d.value=``,f.value=void 0,p.value=void 0,m.value=``,h.value=void 0,g.value=void 0,_.value={},v.value={}},E=async e=>{let t=++S;if(c.value=``,T(),e){a.value=e.path,s.value=!0;try{if(e.kind==`database`){if(!r.value)return;let[n,i,a]=await Promise.all([Mi(r.value,e),Li(r.value),zi(r.value)]);if(t!=S)return;h.value=Ue(n.database),g.value=n.wal?Ue(n.wal):void 0,_.value=Ue(i),v.value=Ue(a),u.value=`database`;return}if(e.kind==`text`){let n=await ji(e);if(t!=S)return;d.value=Ni(n),u.value=`text`;return}if(e.kind==`json`){let n=Ni(await ji(e,_i));if(t!=S)return;d.value=n;try{let t=JSON.parse(n);f.value=t;let r=sn(t),i=e.path.toLowerCase().split(`/`).at(-1)==`apps.json`&&!r?vr(t):void 0;i?(p.value=Ue(i),u.value=`apps`):!r&&Vi(e,t)?u.value=`subscription`:u.value=`json`}catch(e){m.value=e instanceof Error?e.message:String(e),u.value=`invalid-json`}return}u.value=`unsupported`}catch(e){if(t!=S)return;c.value=e instanceof Error?e.message:String(e),u.value=`unsupported`}finally{t==S&&(s.value=!1)}}},D=async(e,t,n=++x)=>{S++,o.value=!0,c.value=``,T(),r.value=void 0,a.value=``;try{let i=await Di(e,t||`log.zip`);if(n!=x)return;r.value=i;let a=Ei(i);return a&&await E(a),n==x}catch(e){return n==x?(c.value=e instanceof Error?e.message:String(e),!1):void 0}finally{n==x&&(o.value=!1)}},O=(e,t)=>{var n,r,i;let a=e.headers.get(`content-disposition`)||``,o=(n=a.match(/filename\*=UTF-8''([^;]+)/i))==null?void 0:n[1],s=(r=a.match(/filename="?([^";]+)"?/i))==null?void 0:r[1],c=o||s;if(c)try{return decodeURIComponent(c)}catch{return c}if((i=t.name)!=null&&i.toLowerCase().endsWith(`.zip`))return t.name;try{let n=new URL(e.url||t.url).pathname.split(`/`).filter(Boolean).at(-1);if(n)return decodeURIComponent(n)}catch{}return`log.zip`},ee=async(e,t,n)=>{let r=await qi(e.url);if(t!=x)return;if(r){if(await D(r.data,r.name,t)||t!=x)return;await Ki(e.url),o.value=!0,c.value=``}let i=!1,a;try{a=await ft(e.url,{credentials:`omit`,signal:n.signal},e=>({...e,anonymous:!0,onprogress(t){var r;(r=e.onprogress)==null||r.call(t,t),t.loaded>52428800&&(i=!0,n.abort())}}))}catch(e){throw i?Error(`ZIP 文件不能超过 ${$(pi)}`,{cause:e}):e}if(!a.ok)throw Error(`HTTP ${a.status}`);if(Number(a.headers.get(`content-length`)||0)>52428800)throw Error(`ZIP 文件不能超过 ${$(pi)}`);let s;try{s=await Dr(a,pi)}catch(e){throw e instanceof Error&&e.message==`响应内容超过大小限制`?Error(`ZIP 文件不能超过 ${$(pi)}`,{cause:e}):e}if(t!=x)return;let l=O(a,e);await D(s,l,t)&&Ji(e.url,l,s)},te=()=>t.path==`/log`?at(t.query.url):rt(t.params.pathMatch),ne=async()=>{C==null||C.abort();let e=new AbortController;C=e;let t=te(),n=++x;if(S++,r.value=void 0,a.value=``,T(),c.value=``,!t){o.value=!1,l.value=``;return}l.value=t.url,o.value=!0;try{await ee(t,n,e)}catch(e){if(n!=x)return;c.value=e instanceof Error?e.message:String(e),o.value=!1}};L(()=>t.fullPath,ne,{immediate:!0});let re=async()=>{let e=nt(l.value);if(!e){_e.warning(`请输入有效的 HTTP/HTTPS 链接`);return}n.resolve(e).fullPath==t.fullPath?await ne():await n.push(e)},ie=async e=>{let r=e.find(e=>e.name.toLowerCase().endsWith(`.zip`));r&&(C==null||C.abort(),C=void 0,x++,t.fullPath!=`/log`&&await n.replace(`/log`),l.value=``,await D(r,r.name))},ae=()=>{var e;return(e=y.value)==null?void 0:e.click()},se=()=>{let e=y.value;if(!e)return;let t=[...e.files||[]];e.value=``,ie(t)};pe(document.body,`dragover`,e=>e.preventDefault()),pe(document.body,`drop`,e=>{e.preventDefault();let t=lt(e);if(!t.some(e=>e.name.toLowerCase().endsWith(`.zip`))){_e.warning(`请拖入 ZIP 文件`);return}ie(t)});let ce=K(()=>{var e;let t=[],n=new Map;for(let i of((e=r.value)==null?void 0:e.entries)||[]){let e=i.path.split(`/`).filter(Boolean),r=t,a=``;e.forEach((t,o)=>{a=a?`${a}/${t}`:t;let s=n.get(a);if(!s){let c=o==e.length-1;s={key:a,label:t,path:c?i.path:void 0,isFile:c,children:c?void 0:[]},n.set(a,s),r.push(s)}r=s.children||[]})}return t}),le=e=>{var t;let n=String(e[0]||``),i=(t=r.value)==null?void 0:t.entryMap.get(n);i&&E(i)};return(e,t)=>{let n=i,x=qe(`RouterLink`),S=tt,C=De,T=Ct,E=qe(`SvgIcon`),D=et,O=Ht,ee=Ee;return F(),J(`div`,Yi,[X(`header`,Xi,[H(x,{to:`/`,flex:``,"items-center":``},{default:I(()=>[H(n,{quaternary:``},{default:I(()=>[...t[3]||=[U(`返回首页`,-1)]]),_:1})]),_:1}),t[6]||=X(`div`,{name:`log-title`,class:`flex-none text-18px font-600`},` 日志包查看器 `,-1),H(C,{class:`ml-auto min-w-420px max-w-720px`},{default:I(()=>[H(S,{value:B(l),"onUpdate:value":t[0]||=e=>N(l)?l.value=e:null,clearable:``,placeholder:`粘贴 GitHub、f.gkd.li 或其他 ZIP 链接`,onKeyup:oe(re,[`enter`])},null,8,[`value`]),H(n,{type:`primary`,loading:B(o),onClick:re},{default:I(()=>[...t[4]||=[U(` 加载链接 `,-1)]]),_:1},8,[`loading`])]),_:1}),H(n,{disabled:B(o),onClick:ae},{default:I(()=>[...t[5]||=[U(` 选择本地 ZIP `,-1)]]),_:1},8,[`disabled`]),X(`input`,{ref_key:`localFileInput`,ref:y,hidden:``,type:`file`,accept:`.zip,application/zip`,onChange:se},null,544)]),B(c)?(F(),z(T,{key:0,type:`error`,closable:``,onClose:t[1]||=e=>c.value=``},{default:I(()=>[U(P(B(c)),1)]),_:1})):V(``,!0),B(r)?(F(),J(`main`,Zi,[X(`aside`,{name:`log-file-panel`,class:R([`box-border flex min-h-0 flex-col rounded-6px border border-[#e2e8f0] bg-white transition-[width,min-width] duration-180 ease`,B(b)?`w-44px min-w-44px`:`w-300px min-w-300px`])},[X(`div`,{name:`archive-meta`,class:R([`flex min-w-0 items-start gap-8px`,B(b)?`justify-center border-b-0 p-8px`:`border-b border-[#e5e7eb] p-12px`])},[B(b)?V(``,!0):(F(),J(`div`,Qi,[X(`div`,{name:`archive-name`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(r).name},P(B(r).name),9,$i),X(`div`,ea,P(B(r).entries.length)+` 个文件 · `+P(B($)(B(r).uncompressedSize)),1)])),X(`button`,{type:`button`,class:`inline-grid h-26px w-26px flex-none cursor-pointer place-items-center rounded-4px border-0 bg-transparent p-0 text-[#64748b] hover:bg-[#e2e8f0] hover:text-[#0f172a] focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,"aria-expanded":!B(b),"aria-label":B(b)?`展开文件列表`:`收起文件列表`,title:B(b)?`展开文件列表`:`收起文件列表`,onClick:t[2]||=e=>b.value=!B(b)},[H(E,{name:`arrow`,class:R([`h-17px w-17px transition-transform duration-180 ease`,B(b)?`-rotate-90`:`rotate-90`])},null,8,[`class`])],8,ta)],2),B(b)?V(``,!0):(F(),z(D,{key:0,blockLine:``,virtualScroll:``,defaultExpandAll:``,data:B(ce),selectedKeys:B(a)?[B(a)]:[],class:`min-h-0 flex-1 p-8px`,"onUpdate:selectedKeys":le},null,8,[`data`,`selectedKeys`]))],2),X(`section`,na,[B(w)&&B(w).kind!=`text`&&B(u)!=`invalid-json`?(F(),J(`div`,ra,[X(`div`,ia,[X(`div`,{name:`preview-path`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(w).path},P(B(w).path),9,aa),X(`div`,oa,P(B($)(B(w).size)),1)])])):V(``,!0),X(`div`,sa,[B(s)?(F(),z(O,{key:0,show:``,class:`h-full w-full`})):B(u)==`none`?(F(),z(ee,{key:1,description:`该日志包没有可预览内容`})):B(u)==`text`||B(u)==`invalid-json`?(F(),J(`div`,ca,[B(u)==`invalid-json`?(F(),z(T,{key:0,type:`warning`,title:`JSON 解析失败,以下为原始内容`,class:`flex-none`},{default:I(()=>[U(P(B(m)),1)]),_:1})):V(``,!0),H(Wn,{value:B(d),"search-placeholder":`搜索当前文件`,"allow-wrap":``,copyable:``},{"toolbar-start":I(()=>[B(w)?(F(),J(`div`,la,[X(`div`,{name:`preview-path`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(w).path},P(B(w).path),9,ua),X(`div`,da,P(B($)(B(w).size)),1)])):V(``,!0)]),_:1},8,[`value`])])):B(u)==`json`?(F(),z(Er,{key:B(a),value:B(f),raw:B(d)},null,8,[`value`,`raw`])):B(u)==`apps`&&B(p)?(F(),z(fr,{key:B(a),data:B(p),value:B(f),raw:B(d)},null,8,[`data`,`value`,`raw`])):B(u)==`subscription`&&B(Bi)(B(f))?(F(),z(zr,{key:B(a),value:B(f),raw:B(d)},null,8,[`value`,`raw`])):B(u)==`database`&&B(h)?(F(),z(ri,{key:B(a),database:B(h),wal:B(g),"app-names":B(_),"subscription-names":B(v)},null,8,[`database`,`wal`,`app-names`,`subscription-names`])):(F(),z(ee,{key:7,description:`该文件不支持预览`}))])])])):(F(),J(`main`,fa,[H(O,{show:B(o)},{default:I(()=>[X(`div`,{name:`drop-zone`,class:`box-border h-300px w-620px flex cursor-pointer flex-col items-center justify-center rounded-12px border-2 border-[#94a3b8] border-dashed bg-white transition-colors duration-200 hover:border-[#18a058]`,onClick:ae},[H(E,{name:`import`,class:`mb-18px h-48px w-48px`}),X(`div`,pa,P(B(o)?`正在下载并解析日志包…`:`拖拽 ZIP 到这里`),1),t[7]||=X(`div`,{name:`drop-description`,class:`mt-8px text-[#64748b]`},` 或点击选择本地 ZIP 文件 `,-1),t[8]||=X(`div`,{name:`privacy-tip`,class:`mt-24px text-12px text-[#94a3b8]`},` 文件只在当前浏览器中解析,不会上传;远程日志会在本机缓存最多 7 天 `,-1)])]),_:1},8,[`show`])]))])}}});export{ma as default};
537
- //# sourceMappingURL=LogPage-DKnn2lkQ.js.map
536
+ `)])])])]),Xt=_t,Zt=Z({name:`Tabs`,props:Object.assign(Object.assign({},j.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:`click`},type:{type:String,default:`bar`},closable:Boolean,justifyContent:String,size:String,placement:{type:String,default:`top`},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),slots:Object,setup(e,{slots:t}){var n,i;let{mergedClsPrefixRef:o,inlineThemeDisabled:s,mergedComponentPropsRef:l}=c(e),u=j(`Tabs`,`-tabs`,Yt,zt,e,o),d=G(null),f=G(null),p=G(null),m=G(null),h=G(null),g=G(null),_=G(!0),v=G(!0),y=xe(e,[`labelSize`,`size`]),b=K(()=>{var e,t;return y.value?y.value:((t=(e=l==null?void 0:l.value)==null?void 0:e.Tabs)==null?void 0:t.size)||`medium`}),x=xe(e,[`activeName`,`value`]),S=G(x.value??e.defaultValue??(t.default?(i=(n=r(t.default())[0])==null?void 0:n.props)==null?void 0:i.name:null)),C=Je(x,S),w={id:0},T=K(()=>{if(!(!e.justifyContent||e.type===`card`))return{display:`flex`,justifyContent:e.justifyContent}});L(C,()=>{w.id=0,ae(),oe()});function D(){var e;let{value:t}=C;return t===null?null:(e=d.value)==null?void 0:e.querySelector(`[data-name="${t}"]`)}function O(t){if(e.type===`card`)return;let{value:n}=f;if(!n)return;let r=n.style.opacity===`0`;if(t){let i=`${o.value}-tabs-bar--disabled`,{barWidth:a,placement:s}=e;if(t.dataset.disabled===`true`?n.classList.add(i):n.classList.remove(i),[`top`,`bottom`].includes(s)){if(ie([`top`,`maxHeight`,`height`]),typeof a==`number`&&t.offsetWidth>=a){let e=Math.floor((t.offsetWidth-a)/2)+t.offsetLeft;n.style.left=`${e}px`,n.style.maxWidth=`${a}px`}else n.style.left=`${t.offsetLeft}px`,n.style.maxWidth=`${t.offsetWidth}px`;n.style.width=`8192px`,r&&(n.style.transition=`none`),n.offsetWidth,r&&(n.style.transition=``,n.style.opacity=`1`)}else{if(ie([`left`,`maxWidth`,`width`]),typeof a==`number`&&t.offsetHeight>=a){let e=Math.floor((t.offsetHeight-a)/2)+t.offsetTop;n.style.top=`${e}px`,n.style.maxHeight=`${a}px`}else n.style.top=`${t.offsetTop}px`,n.style.maxHeight=`${t.offsetHeight}px`;n.style.height=`8192px`,r&&(n.style.transition=`none`),n.offsetHeight,r&&(n.style.transition=``,n.style.opacity=`1`)}}}function ne(){if(e.type===`card`)return;let{value:t}=f;t&&(t.style.opacity=`0`)}function ie(e){let{value:t}=f;if(t)for(let n of e)t.style[n]=``}function ae(){if(e.type===`card`)return;let t=D();t?O(t):ne()}function oe(){var e;let t=(e=h.value)==null?void 0:e.$el;if(!t)return;let n=D();if(!n)return;let{scrollLeft:r,offsetWidth:i}=t,{offsetLeft:a,offsetWidth:o}=n;r>a?t.scrollTo({top:0,left:a,behavior:`smooth`}):a+o>r+i&&t.scrollTo({top:0,left:a+o-i,behavior:`smooth`})}let se=G(null),ce=0,le=null;function ue(e){let t=se.value;if(t){ce=e.getBoundingClientRect().height;let n=`${ce}px`,r=()=>{t.style.height=n,t.style.maxHeight=n};le?(r(),le(),le=null):le=r}}function de(e){let t=se.value;if(t){let n=e.getBoundingClientRect().height,r=()=>{document.body.offsetHeight,t.style.maxHeight=`${n}px`,t.style.height=`${Math.max(ce,n)}px`};le?(le(),le=null,r()):le=r}}function k(){let t=se.value;if(t){t.style.maxHeight=``,t.style.height=``;let{paneWrapperStyle:n}=e;if(typeof n==`string`)t.style.cssText=n;else if(n){let{maxHeight:e,height:r}=n;e!==void 0&&(t.style.maxHeight=e),r!==void 0&&(t.style.height=r)}}}let fe={value:[]},A=G(`next`);function pe(e){let t=C.value,n=`next`;for(let r of fe.value){if(r===t)break;if(r===e){n=`prev`;break}}A.value=n,me(e)}function me(t){let{onActiveNameChange:n,onUpdateValue:r,"onUpdate:value":i}=e;n&&re(n,t),r&&re(r,t),i&&re(i,t),S.value=t}function he(t){let{onClose:n}=e;n&&re(n,t)}let ge=!0;function _e(){let{value:e}=f;if(!e)return;ge||=!1;let t=`transition-disabled`;e.classList.add(t),ae(),e.classList.remove(t)}let ve=G(null);function M({transitionDisabled:e}){let t=d.value;if(!t)return;e&&t.classList.add(`transition-disabled`);let n=D();n&&ve.value&&(ve.value.style.width=`${n.offsetWidth}px`,ve.value.style.height=`${n.offsetHeight}px`,ve.value.style.transform=`translateX(${n.offsetLeft-a(getComputedStyle(t).paddingLeft)}px)`,e&&ve.value.offsetWidth),e&&t.classList.remove(`transition-disabled`)}L([C],()=>{e.type===`segment`&&Me(()=>{M({transitionDisabled:!1})})}),Le(()=>{e.type===`segment`&&M({transitionDisabled:!0})});let ye=0;function be(t){var n,r;if(t.contentRect.width===0&&t.contentRect.height===0||ye===t.contentRect.width)return;ye=t.contentRect.width;let{type:i}=e;if((i===`line`||i===`bar`)&&(ge||(n=e.justifyContent)!=null&&n.startsWith(`space`))&&_e(),i!==`segment`){let{placement:t}=e;Oe((t===`top`||t===`bottom`?(r=h.value)==null?void 0:r.$el:g.value)||null)}}let Se=Xt(be,64);L([()=>e.justifyContent,()=>e.size],()=>{Me(()=>{let{type:t}=e;(t===`line`||t===`bar`)&&_e()})});let Ce=G(!1);function Te(t){var n;let{target:r,contentRect:{width:i,height:a}}=t,o=r.parentElement.parentElement.offsetWidth,s=r.parentElement.parentElement.offsetHeight,{placement:c}=e;if(!Ce.value)c===`top`||c===`bottom`?o<i&&(Ce.value=!0):s<a&&(Ce.value=!0);else{let{value:e}=m;if(!e)return;c===`top`||c===`bottom`?o-i>e.$el.offsetWidth&&(Ce.value=!1):s-a>e.$el.offsetHeight&&(Ce.value=!1)}Oe(((n=h.value)==null?void 0:n.$el)||null)}let Ee=Xt(Te,64);function De(){let{onAdd:t}=e;t&&t(),Me(()=>{let e=D(),{value:t}=h;!e||!t||t.scrollTo({left:e.offsetLeft,top:0,behavior:`smooth`})})}function Oe(t){if(!t)return;let{placement:n}=e;if(n===`top`||n===`bottom`){let{scrollLeft:e,scrollWidth:n,offsetWidth:r}=t;_.value=e<=0,v.value=e+r>=n}else{let{scrollTop:e,scrollHeight:n,offsetHeight:r}=t;_.value=e<=0,v.value=e+r>=n}}let N=Xt(e=>{Oe(e.target)},64);Fe(Gt,{triggerRef:q(e,`trigger`),tabStyleRef:q(e,`tabStyle`),tabClassRef:q(e,`tabClass`),addTabStyleRef:q(e,`addTabStyle`),addTabClassRef:q(e,`addTabClass`),paneClassRef:q(e,`paneClass`),paneStyleRef:q(e,`paneStyle`),mergedClsPrefixRef:o,typeRef:q(e,`type`),closableRef:q(e,`closable`),valueRef:C,tabChangeIdRef:w,onBeforeLeaveRef:q(e,`onBeforeLeave`),activateTab:pe,handleClose:he,handleAdd:De}),we(()=>{ae(),oe()}),Ge(()=>{let{value:e}=p;if(!e)return;let{value:t}=o,n=`${t}-tabs-nav-scroll-wrapper--shadow-start`,r=`${t}-tabs-nav-scroll-wrapper--shadow-end`;_.value?e.classList.remove(n):e.classList.add(n),v.value?e.classList.remove(r):e.classList.add(r)});let ke={syncBarPosition:()=>{ae()}},Ae=()=>{M({transitionDisabled:!0})},je=K(()=>{let{value:t}=b,{type:n}=e,r=`${t}${{card:`Card`,bar:`Bar`,line:`Line`,segment:`Segment`}[n]}`,{self:{barColor:i,closeIconColor:a,closeIconColorHover:o,closeIconColorPressed:s,tabColor:c,tabBorderColor:l,paneTextColor:d,tabFontWeight:f,tabBorderRadius:p,tabFontWeightActive:m,colorSegment:h,fontWeightStrong:g,tabColorSegment:_,closeSize:v,closeIconSize:y,closeColorHover:x,closeColorPressed:S,closeBorderRadius:C,[E(`panePadding`,t)]:w,[E(`tabPadding`,r)]:T,[E(`tabPaddingVertical`,r)]:D,[E(`tabGap`,r)]:O,[E(`tabGap`,`${r}Vertical`)]:te,[E(`tabTextColor`,n)]:ne,[E(`tabTextColorActive`,n)]:re,[E(`tabTextColorHover`,n)]:ie,[E(`tabTextColorDisabled`,n)]:ae,[E(`tabFontSize`,t)]:oe},common:{cubicBezierEaseInOut:se}}=u.value;return{"--n-bezier":se,"--n-color-segment":h,"--n-bar-color":i,"--n-tab-font-size":oe,"--n-tab-text-color":ne,"--n-tab-text-color-active":re,"--n-tab-text-color-disabled":ae,"--n-tab-text-color-hover":ie,"--n-pane-text-color":d,"--n-tab-border-color":l,"--n-tab-border-radius":p,"--n-close-size":v,"--n-close-icon-size":y,"--n-close-color-hover":x,"--n-close-color-pressed":S,"--n-close-border-radius":C,"--n-close-icon-color":a,"--n-close-icon-color-hover":o,"--n-close-icon-color-pressed":s,"--n-tab-color":c,"--n-tab-font-weight":f,"--n-tab-font-weight-active":m,"--n-tab-padding":T,"--n-tab-padding-vertical":D,"--n-tab-gap":O,"--n-tab-gap-vertical":te,"--n-pane-padding-left":ee(w,`left`),"--n-pane-padding-right":ee(w,`right`),"--n-pane-padding-top":ee(w,`top`),"--n-pane-padding-bottom":ee(w,`bottom`),"--n-font-weight-strong":g,"--n-tab-color-segment":_}}),P=s?te(`tabs`,K(()=>`${b.value[0]}${e.type[0]}`),je,e):void 0;return Object.assign({mergedClsPrefix:o,mergedValue:C,renderedNames:new Set,segmentCapsuleElRef:ve,tabsPaneWrapperRef:se,tabsElRef:d,barElRef:f,addTabInstRef:m,xScrollInstRef:h,scrollWrapperElRef:p,addTabFixed:Ce,tabWrapperStyle:T,handleNavResize:Se,mergedSize:b,handleScroll:N,handleTabsResize:Ee,cssVars:s?void 0:je,themeClass:P==null?void 0:P.themeClass,animationDirection:A,renderNameListRef:fe,yScrollElRef:g,handleSegmentResize:Ae,onAnimationBeforeLeave:ue,onAnimationEnter:de,onAnimationAfterEnter:k,onRender:P==null?void 0:P.onRender},ke)},render(){let{mergedClsPrefix:e,type:t,placement:n,addTabFixed:i,addable:a,mergedSize:o,renderNameListRef:s,onRender:c,paneWrapperClass:l,paneWrapperStyle:u,$slots:{default:d,prefix:f,suffix:p}}=this;c==null||c();let m=d?r(d()).filter(e=>e.type.__TAB_PANE__===!0):[],h=d?r(d()).filter(e=>e.type.__TAB__===!0):[],g=!h.length,_=t===`card`,v=t===`segment`,y=!_&&!v&&this.justifyContent;s.value=[];let b=()=>{let t=Q(`div`,{style:this.tabWrapperStyle,class:`${e}-tabs-wrapper`},y?null:Q(`div`,{class:`${e}-tabs-scroll-padding`,style:n===`top`||n===`bottom`?{width:`${this.tabsPadding}px`}:{height:`${this.tabsPadding}px`}}),g?m.map((e,t)=>(s.value.push(e.props.name),tn(Q(Jt,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:t!==0&&(!y||y===`center`||y===`start`||y===`end`)}),e.children?{default:e.children.tab}:void 0)))):h.map((e,t)=>(s.value.push(e.props.name),tn(t!==0&&!y?en(e):e))),!i&&a&&_?$t(a,(g?m.length:h.length)!==0):null,y?null:Q(`div`,{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return Q(`div`,{ref:`tabsElRef`,class:`${e}-tabs-nav-scroll-content`},_&&a?Q(ge,{onResize:this.handleTabsResize},{default:()=>t}):t,_?Q(`div`,{class:`${e}-tabs-pad`}):null,_?null:Q(`div`,{ref:`barElRef`,class:`${e}-tabs-bar`}))},x=v?`top`:n;return Q(`div`,{class:[`${e}-tabs`,this.themeClass,`${e}-tabs--${t}-type`,`${e}-tabs--${o}-size`,y&&`${e}-tabs--flex`,`${e}-tabs--${x}`],style:this.cssVars},Q(`div`,{class:[`${e}-tabs-nav--${t}-type`,`${e}-tabs-nav--${x}`,`${e}-tabs-nav`]},C(f,t=>t&&Q(`div`,{class:`${e}-tabs-nav__prefix`},t)),v?Q(ge,{onResize:this.handleSegmentResize},{default:()=>Q(`div`,{class:`${e}-tabs-rail`,ref:`tabsElRef`},Q(`div`,{class:`${e}-tabs-capsule`,ref:`segmentCapsuleElRef`},Q(`div`,{class:`${e}-tabs-wrapper`},Q(`div`,{class:`${e}-tabs-tab`}))),g?m.map((e,t)=>(s.value.push(e.props.name),Q(Jt,Object.assign({},e.props,{internalCreatedByPane:!0,internalLeftPadded:t!==0}),e.children?{default:e.children.tab}:void 0))):h.map((e,t)=>(s.value.push(e.props.name),t===0?e:en(e))))}):Q(ge,{onResize:this.handleNavResize},{default:()=>Q(`div`,{class:`${e}-tabs-nav-scroll-wrapper`,ref:`scrollWrapperElRef`},[`top`,`bottom`].includes(x)?Q(mt,{ref:`xScrollInstRef`,onScroll:this.handleScroll},{default:b}):Q(`div`,{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:`yScrollElRef`},b()))}),i&&a&&_?$t(a,!0):null,C(p,t=>t&&Q(`div`,{class:`${e}-tabs-nav__suffix`},t))),g&&(this.animated&&(x===`top`||x===`bottom`)?Q(`div`,{ref:`tabsPaneWrapperRef`,style:u,class:[`${e}-tabs-pane-wrapper`,l]},Qt(m,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):Qt(m,this.mergedValue,this.renderedNames)))}});function Qt(e,t,n,r,i,a,o){let s=[];return e.forEach(e=>{let{name:r,displayDirective:i,"display-directive":a}=e.props,o=e=>i===e||a===e,c=t===r;if(e.key!==void 0&&(e.key=r),c||o(`show`)||o(`show:lazy`)&&n.has(r)){n.has(r)||n.add(r);let t=!o(`if`);s.push(t?Ve(e,[[le,c]]):e)}}),o?Q(me,{name:`${o}-transition`,onBeforeLeave:r,onEnter:i,onAfterEnter:a},{default:()=>s}):s}function $t(e,t){return Q(Jt,{ref:`addTabInstRef`,key:`__addable`,name:`__addable`,internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e==`object`&&e.disabled})}function en(e){let t=He(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function tn(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes(`internalLeftPadded`)||e.dynamicProps.push(`internalLeftPadded`):e.dynamicProps=[`internalLeftPadded`],e}var nn=Z({name:`VirtualList`,props:{scrollbarProps:Object,items:{type:Array,default:()=>[]},itemSize:{type:Number,required:!0},itemResizable:Boolean,itemsStyle:[String,Object],visibleItemsTag:{type:[String,Object],default:`div`},visibleItemsProps:Object,ignoreItemResize:Boolean,onScroll:Function,onWheel:Function,onResize:Function,defaultScrollKey:[Number,String],defaultScrollIndex:Number,keyField:{type:String,default:`key`},paddingTop:{type:[Number,String],default:0},paddingBottom:{type:[Number,String],default:0}},setup(e){let t=G(null),n=G(null);function r(){let{value:e}=t;e&&e.sync()}function i(t){var n;r(),(n=e.onScroll)==null||n.call(e,t)}function a(t){var n;r(),(n=e.onResize)==null||n.call(e,t)}function o(t){var n;(n=e.onWheel)==null||n.call(e,t)}function s(e,t){var r,i;typeof e==`number`?(r=n.value)==null||r.scrollTo(e,t??0):(i=n.value)==null||i.scrollTo(e)}function c(){var e;return(e=n.value)==null?void 0:e.listElRef}function l(){var e;return(e=n.value)==null?void 0:e.itemsElRef}return{scrollTo:s,scrollbarInstRef:t,virtualListInstRef:n,getScrollContainer:c,getScrollContent:l,handleScroll:i,handleResize:a,handleWheel:o}},render(){return Q(t,Object.assign({},this.scrollbarProps,{ref:`scrollbarInstRef`,container:this.getScrollContainer,content:this.getScrollContent}),{default:()=>Q(Oe,{ref:`virtualListInstRef`,showScrollbar:!1,items:this.items,itemSize:this.itemSize,itemResizable:this.itemResizable,itemsStyle:this.itemsStyle,visibleItemsTag:this.visibleItemsTag,visibleItemsProps:this.visibleItemsProps,ignoreItemResize:this.ignoreItemResize,keyField:this.keyField,defaultScrollKey:this.defaultScrollKey,defaultScrollIndex:this.defaultScrollIndex,paddingTop:this.paddingTop,paddingBottom:this.paddingBottom,onScroll:this.handleScroll,onResize:this.handleResize,onWheel:this.handleWheel},{default:({item:e,index:t})=>{var n,r;return(r=(n=this.$slots).default)==null?void 0:r.call(n,{item:e,index:t})}})})}}),rn=1e4,an=e=>{if(typeof e!=`object`||!e)return 0;if(Array.isArray(e))return e.length<=1e4?e.length:void 0;let t=0;for(let n in e)if(Object.hasOwn(e,n)&&(t++,t>1e4))return;return t},on=e=>typeof e==`object`&&!!e&&an(e)==null,sn=e=>{if(typeof e!=`object`||!e)return!1;let t=[{value:e,depth:0,pathSize:0}],n=new WeakSet,r=0;for(;t.length;){let e=t.pop();if(!(!e||n.has(e.value))){if(e.depth>=128)return!0;if(n.add(e.value),Array.isArray(e.value)){if(r+=e.value.length,r>1e5)return!0;for(let n=0;n<e.value.length;n++){let r=e.value[n],i=e.pathSize+String(n).length+1;if(i>4096)return!0;typeof r==`object`&&r&&t.push({value:r,depth:e.depth+1,pathSize:i})}continue}for(let n in e.value){if(!Object.hasOwn(e.value,n))continue;if(n.length>256||(r++,r>1e5))return!0;let i=e.pathSize+n.length+1;if(i>4096)return!0;let a=e.value[n];typeof a==`object`&&a&&t.push({value:a,depth:e.depth+1,pathSize:i})}}}return!1},cn=e=>e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`,ln=e=>cn(e)?!0:Array.isArray(e)?e.every(cn):typeof e==`object`&&!!e&&Object.keys(e).length==0,un=e=>{if(typeof e!=`object`||!e||on(e))return;let t=Object.entries(e);if(!(t.length==0||!t.every(([,e])=>ln(e))))return t.map(([e,t])=>({key:e,value:t}))},dn=e=>JSON.stringify(e)??String(e),fn=(e,t)=>{if(sn(e))return t;try{return JSON.stringify(e,null,2)??t}catch{return t}},pn=()=>({matchCase:!1,wholeWord:!1,useRegex:!1}),mn=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),hn=(e,t,n=!0)=>{let r=e.trim();if(!r)return;let i=t.useRegex?r:mn(r);if(t.wholeWord){let e=`[\\p{L}\\p{N}_]`;i=`(?<!${e})(?:${i})(?!${e})`}try{return new RegExp(i,`${n?`g`:``}${t.matchCase?``:`i`}u`)}catch{return}},gn=(e,t)=>!e.trim()||!t.useRegex||!!hn(e,t),_n=(e,t,n)=>{let r=hn(t,n);if(!r)return[];let i=[],a;for(;a=r.exec(e);)a[0].length?i.push({start:a.index,end:a.index+a[0].length}):r.lastIndex++;return i},vn=(e,t,n)=>{let r=hn(t,n);if(!r)return 0;let i=0,a;for(;a=r.exec(e);)a[0].length?i++:r.lastIndex++;return i},yn=(e,t,n)=>e.split(/\r\n|\n|\r/).reduce((e,r)=>e+vn(r,t,n),0),bn=(e,t,n)=>{let r=hn(t,n,!1);return(r==null?void 0:r.test(e))||!1},xn=e=>e.split(/\r\n|\n|\r/).map((e,t)=>({key:t,number:t+1,text:e})),[Sn,Cn]=de(e=>{let t=Y(``),n=Y(-1),r=We(pn()),i=Y(!1),a=Y(),o=Y(),s=Y(0),c=Y(600),l=Y(),u=Y(),d=K(()=>xn(e.value.value)),f=K(()=>t.value.trim()),p=K(()=>yn(e.value.value,t.value,r)),m=K(()=>p.value?Math.min(Math.max(n.value,0),p.value-1)+1:0),h=K(()=>!gn(t.value,r)),g=K(()=>Math.max(Math.floor(s.value/20)-8,0)),_=K(()=>Math.min(Math.ceil((s.value+c.value)/20)+8,d.value.length)),v=K(()=>d.value.slice(g.value,_.value)),y=K(()=>d.value.length*20);ve(o,e=>{var t;let n=(t=e[0])==null?void 0:t.contentRect.height;n&&(c.value=n)});let b=e=>{!f.value||!p.value||(n.value=((n.value>=0?n.value:0)+e+p.value)%p.value)},x=e=>{b(e.shiftKey?-1:1)},S=()=>{var e;s.value=((e=o.value)==null?void 0:e.scrollTop)||0},C=e=>{e instanceof HTMLElement&&(u.value=e)},w=e=>{if(!f.value)return[{text:e.text||` `,match:!1,active:!1}];let t=[],n=_n(e.text,f.value,r),i=0;return n.forEach((n,r)=>{var a;n.start>i&&t.push({text:e.text.slice(i,n.start),match:!1,active:!1}),t.push({text:e.text.slice(n.start,n.end),match:!0,active:((a=l.value)==null?void 0:a.lineKey)==e.key&&l.value.rangeIndex==r}),i=n.end}),i<e.text.length&&t.push({text:e.text.slice(i),match:!1,active:!1}),t.length?t:[{text:e.text||` `,match:!1,active:!1}]},T=async()=>{await navigator.clipboard.writeText(e.value.value),_e.success(`已复制当前文件内容`)};return L(e.value,()=>{t.value=``,n.value=-1}),L([e.value,i],async()=>{var e,t;s.value=0,await Me(),(e=o.value)==null||e.scrollTo({top:0}),(t=a.value)==null||t.scrollTo({index:0})}),L([t,()=>r.matchCase,()=>r.wholeWord,()=>r.useRegex,p],([e,t,r,i,a],o)=>{if(!e.trim()||!a){n.value=-1;return}(!o||e!=o[0]||t!=o[1]||r!=o[2]||i!=o[3]||n.value<0||n.value>=a)&&(n.value=0)},{immediate:!0}),L([f,()=>r.matchCase,()=>r.wholeWord,()=>r.useRegex,n],async([e,,,,t])=>{var n,i;if(l.value=void 0,u.value=void 0,!e||t<0)return;let c=t,f=-1;for(let t=0;t<d.value.length;t++){let n=d.value[t];if(!n)continue;let i=_n(n.text,e,r);if(c<i.length){f=t,l.value={lineKey:n.key,rangeIndex:c};break}c-=i.length}f<0||(s.value=f*20,await Me(),(n=o.value)==null||n.scrollTo({top:s.value}),(i=a.value)==null||i.scrollTo({index:f}),await Me(),requestAnimationFrame(()=>{var e;(e=u.value)==null||e.scrollIntoView({block:`nearest`,inline:`nearest`})}))},{flush:`post`}),{...e,query:t,resultIndex:n,searchOptions:r,wrap:i,virtualList:a,scrollContainer:o,lineHeight:20,lines:d,visibleStart:g,visibleLines:v,virtualHeight:y,normalizedQuery:f,matchCount:p,displayedResultIndex:m,invalidRegex:h,selectRelativeResult:b,handleSearchEnter:x,handleScroll:S,setActiveMatchElement:C,getLineSegments:w,copyText:T}}),wn=Sn,Tn=()=>{let e=Cn();if(!e)throw Error(`TextViewer 子组件必须在 TextViewer 内部使用`);return e},En=Z({__name:`CopyButton`,setup(e){let{copyable:t,copyText:n}=Tn();return(e,r)=>{let a=qe(`SvgIcon`),o=i;return B(t)?(F(),z(o,{key:0,quaternary:``,circle:``,size:`small`,class:`absolute right-16px top-8px z-3 border border-[#e2e8f0] bg-white/92 shadow-[0_1px_3px_rgb(15_23_42_/_12%)] backdrop-blur-4px`,title:`复制当前文件内容`,"aria-label":`复制当前文件内容`,onClick:B(n)},{icon:I(()=>[H(a,{name:`copy`})]),_:1},8,[`onClick`])):V(``,!0)}}}),Dn={name:`text-viewer-search`,class:`w-520px max-w-full min-w-0 flex flex-[0_1_520px] items-center gap-6px`},On=[`title`],kn=[`disabled`],An=[`disabled`],jn={name:`text-viewer-search-options`,class:`flex items-center gap-2px`},Mn=[`aria-pressed`],Nn=[`aria-pressed`],Pn=[`aria-pressed`],Fn=Z({__name:`SearchBar`,setup(e){let{query:t,searchOptions:n,searchPlaceholder:r,normalizedQuery:i,matchCount:a,displayedResultIndex:o,invalidRegex:s,selectRelativeResult:c,handleSearchEnter:l}=Tn();return(e,u)=>{let d=qe(`SvgIcon`),f=tt;return F(),J(`div`,Dn,[X(`div`,{name:`text-viewer-navigation`,class:R([`w-116px min-w-116px flex items-center justify-between gap-2px`,B(i)?`visible`:`invisible`])},[X(`span`,{class:`w-62px overflow-hidden text-right text-ellipsis whitespace-nowrap text-12px text-[#64748b]`,title:`第 ${B(o).toLocaleString()} 处,共 ${B(a).toLocaleString()} 处`},P(B(o).toLocaleString())+` / `+P(B(a).toLocaleString()),9,On),X(`button`,{type:`button`,class:`inline-grid h-22px w-24px cursor-pointer place-items-center rounded-3px border-0 bg-transparent p-0 leading-22px text-[#475569] enabled:hover:bg-[#e2e8f0] disabled:cursor-default disabled:opacity-40 focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,disabled:!B(a),"aria-label":`上一个匹配项`,title:`上一个匹配项 (Shift+Enter)`,onMousedown:u[0]||=M(()=>{},[`prevent`]),onClick:u[1]||=e=>B(c)(-1)},[H(d,{name:`arrow`,class:`h-16px w-16px rotate-180`})],40,kn),X(`button`,{type:`button`,class:`inline-grid h-22px w-24px cursor-pointer place-items-center rounded-3px border-0 bg-transparent p-0 leading-22px text-[#475569] enabled:hover:bg-[#e2e8f0] disabled:cursor-default disabled:opacity-40 focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,disabled:!B(a),"aria-label":`下一个匹配项`,title:`下一个匹配项 (Enter)`,onMousedown:u[2]||=M(()=>{},[`prevent`]),onClick:u[3]||=e=>B(c)(1)},[H(d,{name:`arrow`,class:`h-16px w-16px`})],40,An)],2),H(f,{value:B(t),"onUpdate:value":u[10]||=e=>N(t)?t.value=e:null,clearable:``,size:`small`,status:B(s)?`error`:void 0,placeholder:B(r),class:`min-w-0 flex-1`,onKeydown:oe(M(B(l),[`prevent`]),[`enter`])},{suffix:I(()=>[X(`div`,jn,[X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,B(n).matchCase?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":B(n).matchCase,"aria-label":`区分大小写`,title:`区分大小写`,onMousedown:u[4]||=M(()=>{},[`prevent`]),onClick:u[5]||=e=>B(n).matchCase=!B(n).matchCase},` Aa `,42,Mn),X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px underline [text-underline-offset:2px] focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,B(n).wholeWord?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":B(n).wholeWord,"aria-label":`全词匹配`,title:`全词匹配`,onMousedown:u[6]||=M(()=>{},[`prevent`]),onClick:u[7]||=e=>B(n).wholeWord=!B(n).wholeWord},` ab `,42,Nn),X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,B(n).useRegex?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":B(n).useRegex,"aria-label":`使用正则表达式`,title:`使用正则表达式`,onMousedown:u[8]||=M(()=>{},[`prevent`]),onClick:u[9]||=e=>B(n).useRegex=!B(n).useRegex},` .* `,42,Pn)])]),_:1},8,[`value`,`status`,`placeholder`,`onKeydown`])])}}}),In={class:`sticky left-0 z-1 box-border select-none border-r border-[#e5e7eb] bg-[#f8fafc] px-10px text-right text-[#94a3b8]`},Ln=[`data-active`],Rn=Z({__name:`TextLine`,props:{line:{}},setup(e){let t=e,{wrap:n,getLineSegments:r,setActiveMatchElement:i}=Tn(),a=K(()=>r(t.line));return(t,r)=>(F(),J(`div`,{name:`text-viewer-line`,class:R([`grid min-h-20px min-w-full leading-20px`,B(n)?`w-full grid-cols-[64px_minmax(0,1fr)]`:`w-max grid-cols-[64px_max-content]`])},[X(`span`,In,P(e.line.number),1),X(`code`,{class:R([`box-border min-w-0 px-10px [font:inherit] [tab-size:2]`,B(n)?`whitespace-pre-wrap [overflow-wrap:anywhere]`:`whitespace-pre`])},[(F(!0),J(W,null,Ie(B(a),(e,t)=>(F(),J(W,{key:t},[e.match?(F(),J(`mark`,{key:0,ref_for:!0,ref:e.active?B(i):void 0,name:`text-viewer-match`,"data-active":e.active?``:void 0,class:R([`rounded-2px text-inherit`,e.active?`bg-[#fb923c] text-[#7c2d12]`:`bg-[#fde68a]`])},P(e.text),11,Ln)):(F(),J(W,{key:1},[U(P(e.text),1)],64))],64))),128))],2)],2))}}),zn={name:`text-viewer-viewport`,class:`h-full min-h-0 min-w-0`},Bn=Z({__name:`Viewport`,setup(e){let{wrap:t,virtualList:n,scrollContainer:r,lineHeight:i,lines:a,visibleStart:o,visibleLines:s,virtualHeight:c,handleScroll:l}=Tn();return(e,u)=>{let d=nn;return F(),J(`div`,zn,[B(t)?(F(),z(d,{key:0,ref_key:`virtualList`,ref:n,items:B(a),"item-size":B(i),"item-resizable":``,keyField:`key`,class:`h-full min-h-0 min-w-0 rounded-4px border border-[#e5e7eb] bg-white font-mono text-13px leading-20px`},{default:I(({item:e})=>[H(Rn,{line:e},null,8,[`line`])]),_:1},8,[`items`,`item-size`])):(F(),J(`div`,{key:1,ref_key:`scrollContainer`,ref:r,class:`h-full min-h-0 min-w-0 overflow-auto rounded-4px border border-[#e5e7eb] bg-white font-mono text-13px leading-20px`,onScroll:u[0]||=(...e)=>B(l)&&B(l)(...e)},[X(`div`,{name:`text-viewer-spacer`,class:`relative min-w-full`,style:Pe({height:`${B(c)}px`})},[X(`div`,{name:`text-viewer-visible`,class:`absolute left-0 top-0 min-w-full w-max`,style:Pe({transform:`translateY(${B(o)*B(i)}px)`})},[(F(!0),J(W,null,Ie(B(s),e=>(F(),z(Rn,{key:e.key,line:e},null,8,[`line`]))),128))],4)],4)],544))])}}}),Vn={name:`text-viewer`,class:`min-h-0 min-w-0 flex flex-1 flex-col gap-8px`},Hn={name:`text-viewer-toolbar`,class:`min-h-28px min-w-0 flex items-center gap-10px`},Un={name:`text-viewer-content`,class:`relative min-h-0 min-w-0 flex-1`},Wn=Z({__name:`TextViewer`,props:{value:{},searchPlaceholder:{default:`搜索`},allowWrap:{type:Boolean,default:!1},copyable:{type:Boolean,default:!1}},setup(e){let t=e,{allowWrap:n,wrap:r}=wn({value:q(t,`value`),searchPlaceholder:q(t,`searchPlaceholder`),allowWrap:q(t,`allowWrap`),copyable:q(t,`copyable`)});return(e,t)=>{let i=ot;return F(),J(`div`,Vn,[X(`div`,Hn,[Re(e.$slots,`toolbar-start`),t[2]||=X(`div`,{name:`text-viewer-toolbar-spacer`,class:`min-w-0 flex-1`},null,-1),H(Fn),B(n)?(F(),z(i,{key:0,checked:B(r),"onUpdate:checked":t[0]||=e=>N(r)?r.value=e:null},{default:I(()=>[...t[1]||=[U(` 自动换行 `,-1)]]),_:1},8,[`checked`])):V(``,!0)]),X(`div`,Un,[H(Bn),H(En)])])}}}),Gn={name:`raw-json-preview`,class:`h-full`},Kn=Z({__name:`RawJsonPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>fn(t.value,t.raw));return(e,t)=>(F(),J(`div`,Gn,[H(Wn,{value:B(n),"search-placeholder":`搜索原始 JSON`,class:`h-full`},null,8,[`value`])]))}}),qn={name:`text-search`,class:`w-full min-w-0 flex items-center gap-6px`},Jn={name:`text-search-options`,class:`flex items-center gap-2px`},Yn=[`aria-pressed`],Xn=[`aria-pressed`],Zn=[`aria-pressed`],Qn=Z({__name:`TextSearchInput`,props:ze({placeholder:{default:`搜索`},size:{default:`medium`}},{modelValue:{required:!0},modelModifiers:{},matchCase:{type:Boolean,default:!1},matchCaseModifiers:{},wholeWord:{type:Boolean,default:!1},wholeWordModifiers:{},useRegex:{type:Boolean,default:!1},useRegexModifiers:{}}),emits:[`update:modelValue`,`update:matchCase`,`update:wholeWord`,`update:useRegex`],setup(e){let t=e,n=Be(e,`modelValue`),r=Be(e,`matchCase`),i=Be(e,`wholeWord`),a=Be(e,`useRegex`),o=K(()=>!gn(n.value,{matchCase:r.value,wholeWord:i.value,useRegex:a.value}));return(e,s)=>{let c=tt;return F(),J(`div`,qn,[H(c,{value:n.value,"onUpdate:value":s[6]||=e=>n.value=e,clearable:``,size:t.size,status:B(o)?`error`:void 0,placeholder:t.placeholder,class:`min-w-0 flex-1`},{suffix:I(()=>[X(`div`,Jn,[X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,r.value?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":r.value,"aria-label":`区分大小写`,title:`区分大小写`,onMousedown:s[0]||=M(()=>{},[`prevent`]),onClick:s[1]||=e=>r.value=!r.value},` Aa `,42,Yn),X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px underline [text-underline-offset:2px] focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,i.value?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":i.value,"aria-label":`全词匹配`,title:`全词匹配`,onMousedown:s[2]||=M(()=>{},[`prevent`]),onClick:s[3]||=e=>i.value=!i.value},` ab `,42,Xn),X(`button`,{type:`button`,class:R([`inline-grid h-22px w-26px cursor-pointer place-items-center rounded-3px border-0 p-0 font-mono text-12px leading-22px focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,a.value?`bg-[#dbeafe] text-[#1d4ed8]`:`bg-transparent text-[#475569] hover:bg-[#e2e8f0]`]),"aria-pressed":a.value,"aria-label":`使用正则表达式`,title:`使用正则表达式`,onMousedown:s[4]||=M(()=>{},[`prevent`]),onClick:s[5]||=e=>a.value=!a.value},` .* `,42,Zn)])]),_:1},8,[`value`,`size`,`status`,`placeholder`])])}}}),$n={name:`apps-preview`,class:`h-full min-h-0 flex flex-col gap-12px`},er={name:`apps-overview`,class:`flex gap-12px`},tr={name:`apps-users-layout`,class:`h-full min-h-0 flex gap-12px`},nr={name:`user-list`,"aria-label":`设备用户`,class:`w-220px min-w-220px overflow-auto pr-2px`},rr=[`onClick`],ir={class:`max-w-full flex items-center gap-6px font-600`},ar={class:`mt-3px text-12px text-[#64748b]`},or={class:`mt-8px text-12px text-[#64748b]`},sr={key:0,name:`user-apps`,class:`min-h-0 min-w-0 flex flex-1 flex-col gap-10px`},cr={name:`user-apps-header`,class:`min-w-0 flex items-center gap-16px`},lr={name:`selected-user-title`,class:`min-w-150px flex flex-col font-600`},ur={class:`text-12px text-[#64748b]`},dr=50,fr=Z({__name:`AppsPreview`,props:{data:{},value:{},raw:{}},setup(e){var t;let n=e,r=Y((t=n.data.users[0])==null?void 0:t.id);L(()=>n.data,e=>{var t;return r.value=(t=e.users[0])==null?void 0:t.id});let i=K(()=>n.data.users.find(e=>e.id==r.value)||n.data.users[0]),a=Y(``),o=We(pn()),s=Y(1),c=K(()=>{var e;let t=((e=i.value)==null?void 0:e.apps)||[],n=a.value.trim();return n?t.filter(e=>[e.name,e.id,e.versionName||``,e.versionCode==null?``:String(e.versionCode)].some(e=>bn(e,n,o))):t});L([r,c],()=>s.value=1);let l=K(()=>{let e=(s.value-1)*dr;return c.value.slice(e,e+dr)}),u=[{key:`name`,title:`应用名称`},{key:`id`,title:`包名`},{key:`version`,title:`版本`,render(e){var t;return e.versionName&&e.versionCode!=null?`${e.versionName} (${e.versionCode})`:e.versionName||((t=e.versionCode)==null?void 0:t.toString())||`-`}},{key:`isSystem`,title:`类型`,render(e){return e.isSystem==null?`-`:H(Ye,{size:`small`,type:e.isSystem?`info`:`default`},{default:()=>[e.isSystem?`系统应用`:`用户应用`]})}},{key:`state`,title:`状态`,render(e){let t=[e.enabled===!1?`已停用`:void 0,e.hidden?`已隐藏`:void 0].filter(Boolean);return t.length?t.join(` · `):`正常`}}];return(t,n)=>{let d=Wt,f=Ye,p=Ee,m=Ze,h=Xe,g=qt,_=Zt;return F(),J(`div`,$n,[X(`div`,er,[H(d,{label:`设备用户`,value:e.data.users.length,class:`min-w-140px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`]),H(d,{label:`应用安装记录`,value:e.data.totalApps,class:`min-w-140px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])]),H(_,{type:`line`,animated:``,class:`h-full min-h-0 [&_.n-tab-pane]:h-full [&_.n-tab-pane]:min-h-0 [&_.n-tabs-pane-wrapper]:h-full [&_.n-tabs-pane-wrapper]:min-h-0`},{default:I(()=>[H(g,{name:`users`,tab:`按用户查看`},{default:I(()=>[X(`div`,tr,[X(`aside`,nr,[(F(!0),J(W,null,Ie(e.data.users,(e,t)=>(F(),J(`button`,{key:e.id,type:`button`,class:R([`relative w-full flex cursor-pointer flex-col items-start rounded-6px border px-12px py-10px text-left text-inherit`,[t?`mt-6px`:``,e.id==B(r)?`border-[#bbf7d0] bg-[#f0fdf4]`:`border-transparent bg-transparent hover:bg-[#f8fafc]`]]),onClick:t=>r.value=e.id},[X(`span`,ir,[U(P(e.name)+` `,1),e.isCurrent?(F(),z(f,{key:0,size:`tiny`,type:`success`},{default:I(()=>[...n[5]||=[U(` 当前 `,-1)]]),_:1})):V(``,!0)]),X(`span`,ar,` 用户 `+P(e.id),1),X(`span`,or,P(e.apps.length)+` 个应用 `,1)],10,rr))),128))]),B(i)?(F(),J(`section`,sr,[X(`header`,cr,[X(`div`,lr,[X(`span`,null,P(B(i).name),1),X(`span`,ur,` 用户 `+P(B(i).id)+` · `+P(B(i).apps.length)+` 个应用 `,1)]),H(Qn,{modelValue:B(a),"onUpdate:modelValue":n[0]||=e=>N(a)?a.value=e:null,"match-case":B(o).matchCase,"onUpdate:matchCase":n[1]||=e=>B(o).matchCase=e,"whole-word":B(o).wholeWord,"onUpdate:wholeWord":n[2]||=e=>B(o).wholeWord=e,"use-regex":B(o).useRegex,"onUpdate:useRegex":n[3]||=e=>B(o).useRegex=e,placeholder:`搜索应用名称、包名或版本`,class:`ml-auto min-w-320px w-50% max-w-460px`},null,8,[`modelValue`,`match-case`,`whole-word`,`use-regex`])]),B(l).length==0?(F(),z(p,{key:0,description:B(a).trim()?`没有匹配的应用`:`该用户没有应用记录`,class:`min-h-0 flex-1`},null,8,[`description`])):(F(),z(m,{key:1,striped:``,columns:u,data:B(l),pagination:!1,rowKey:e=>e.id,class:`min-h-0 flex-1 [&_.n-data-table-wrapper]:h-full`},null,8,[`data`,`rowKey`])),B(c).length>dr?(F(),z(h,{key:2,page:B(s),"onUpdate:page":n[4]||=e=>N(s)?s.value=e:null,pageSize:dr,itemCount:B(c).length,class:`flex-none justify-end`},null,8,[`page`,`itemCount`])):V(``,!0)])):V(``,!0)])]),_:1}),H(g,{name:`raw`,tab:`原始 JSON`},{default:I(()=>[H(Kn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})])}}}),pr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),mr=e=>typeof e==`number`&&Number.isSafeInteger(e)?e:void 0,hr=e=>typeof e==`number`&&Number.isFinite(e)?e:void 0,gr=e=>typeof e==`string`?e:void 0,_r=e=>typeof e==`boolean`?e:void 0,vr=e=>{if(!pr(e)||!Array.isArray(e.apps)||e.apps.length>1e4||Array.isArray(e.otherUsers)&&e.otherUsers.length>1e4)return;let t=mr(e.userId)??0,n=new Map,r=(e,t,r=!1)=>{let i=n.get(e);if(i)return i.isCurrent||=r,i;let a={id:e,name:t,isCurrent:r,apps:[]};return n.set(e,a),a};r(t,`当前用户`,!0),Array.isArray(e.otherUsers)&&e.otherUsers.forEach(e=>{if(!pr(e))return;let n=mr(e.id);n!=null&&r(n,typeof e.name==`string`&&e.name.trim()?e.name:`用户 ${n}`,n==t)});let i=0;return e.apps.forEach(e=>{if(!pr(e)||typeof e.id!=`string`||typeof e.name!=`string`)return;let n=mr(e.userId)??t,a=r(n,n==t?`当前用户`:`用户 ${n}`,n==t),o={id:e.id,name:e.name,userId:n},s=hr(e.versionCode),c=gr(e.versionName),l=_r(e.isSystem),u=_r(e.hidden),d=_r(e.enabled);s!=null&&(o.versionCode=s),c!=null&&(o.versionName=c),l!=null&&(o.isSystem=l),u!=null&&(o.hidden=u),d!=null&&(o.enabled=d),a.apps.push(o),i++}),{users:[...n.values()].sort((e,t)=>e.isCurrent==t.isCurrent?e.id-t.id:e.isCurrent?-1:1),totalApps:i}},yr={name:`json-basic-table`,class:`mb-10px mt-6px`},br=Z({__name:`JsonBasicTable`,props:{rows:{},indexed:{type:Boolean,default:!1}},setup(e){let t=e,n=K(()=>[{key:`key`,title:t.indexed?`索引`:`键`,width:220,ellipsis:{tooltip:!0}},{key:`value`,title:`值`,render(e){return H(`code`,{class:`whitespace-pre-wrap [overflow-wrap:anywhere]`},[dn(e.value)])}}]),r=K(()=>t.rows.length>200?{pageSize:200,showSizePicker:!1}:!1),i=e=>e.key;return(t,a)=>{let o=Ze;return F(),J(`div`,yr,[H(o,{striped:``,size:`small`,columns:B(n),data:e.rows,rowKey:i,pagination:B(r)},null,8,[`columns`,`data`,`pagination`])])}}}),xr={flex:``,"flex-col":``,"gap-10px":``,"h-full":``},Sr={name:`json-structure-scroll`,class:`min-h-0 flex-1 overflow-auto px-4px pb-24px pt-8px font-mono text-13px`},Cr={key:1,name:`json-search-results`,class:`flex flex-col gap-6px`},wr={class:`text-[#7c3aed]`},Tr={class:`mt-4px text-[#374151] [overflow-wrap:anywhere]`},Er=Z({__name:`JsonPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>sn(t.value)),r=e=>{if(Array.isArray(e))return`Array(${e.length})`;if(e&&typeof e==`object`){let t=an(e);return t==null?`Object(>${rn})`:`Object(${t})`}return typeof e==`string`?JSON.stringify(e):String(e)},a=Z({name:`JsonNode`,props:{value:{type:null,required:!0},name:{type:String,required:!0},depth:{type:Number,default:0}},setup(e){let t=G(e.depth==0);return()=>{let n=on(e.value),o=e.value!=null&&typeof e.value==`object`&&!n,s=o?Object.entries(e.value):[],c=o?un(e.value):void 0;return H(`div`,Ne({name:`json-node`},{class:`block`}),[H(`div`,Ne({name:`json-node-line`},{class:`min-h-28px flex items-center gap-6px`}),[o?H(i,{quaternary:!0,size:`tiny`,class:`w-24px min-w-24px font-inherit`,onClick:()=>t.value=!t.value},{default:()=>[t.value?`−`:`+`]}):H(`span`,{class:`inline-block w-24px`},null),H(`span`,{class:`text-[#7c3aed]`},[e.name]),H(`span`,{class:`text-[#6b7280]`},[U(`:`)]),H(`span`,{class:o?`text-[#6b7280]`:`text-[#0f766e] [overflow-wrap:anywhere]`},[r(e.value)]),n?H(`span`,{class:`text-[#b45309]`},[U(`结构过大,请切换到原始 JSON 查看`)]):null]),o&&t.value?H(`div`,Ne({name:`json-children`},{class:`ml-15px border-l border-[#e5e7eb] pl-10px`}),[c?H(br,{rows:c,indexed:Array.isArray(e.value)},null):s.map(([t,n])=>H(a,{key:t,name:t,value:n,depth:e.depth+1},null))]):null])}}}),o=Y(``),s=We(pn()),c=K(()=>{let e=o.value.trim();if(!e||n.value)return[];let i=[],a=[{value:t.value,path:``}];for(;a.length&&i.length<200;){let t=a.pop();if(!t)break;let{value:n,path:o}=t;if(typeof n==`object`&&n){if(on(n))continue;let t=Object.entries(n);for(let n=t.length-1;n>=0;n--){let[c,l]=t[n],u=o?`${o}.${c}`:c;if(bn(c,e,s)&&(i.push({path:u,value:r(l)}),i.length>=200))break;a.push({value:l,path:u})}continue}let c=r(n);bn(c,e,s)&&i.push({path:o||`$`,value:c})}return i});return(t,r)=>{let i=Ct,l=Ee,u=qt,d=Zt;return F(),z(d,{type:`line`,animated:``,class:`h-full [&_.n-tab-pane]:h-full [&_.n-tab-pane]:min-h-0 [&_.n-tabs-pane-wrapper]:h-full [&_.n-tabs-pane-wrapper]:min-h-0`},{default:I(()=>[H(u,{name:`structured`,tab:`结构化`},{default:I(()=>[X(`div`,xr,[H(Qn,{modelValue:B(o),"onUpdate:modelValue":r[0]||=e=>N(o)?o.value=e:null,"match-case":B(s).matchCase,"onUpdate:matchCase":r[1]||=e=>B(s).matchCase=e,"whole-word":B(s).wholeWord,"onUpdate:wholeWord":r[2]||=e=>B(s).wholeWord=e,"use-regex":B(s).useRegex,"onUpdate:useRegex":r[3]||=e=>B(s).useRegex=e,placeholder:`搜索键或值,最多展示 200 条结果`},null,8,[`modelValue`,`match-case`,`whole-word`,`use-regex`]),X(`div`,Sr,[B(n)?(F(),z(i,{key:0,type:`warning`,title:`JSON 结构过大`},{default:I(()=>[...r[4]||=[U(` 为避免占用过多内存,请切换到“原始 JSON”查看和搜索。 `,-1)]]),_:1})):B(o).trim()?(F(),J(W,{key:1},[B(c).length==0?(F(),z(l,{key:0,description:`没有匹配项`})):(F(),J(`div`,Cr,[(F(!0),J(W,null,Ie(B(c),e=>(F(),J(`div`,{key:`${e.path}:${e.value}`,name:`json-search-item`,class:`rounded-4px border border-[#e5e7eb] px-10px py-8px`},[X(`div`,wr,P(e.path),1),X(`div`,Tr,P(e.value),1)]))),128))]))],64)):(F(),z(B(a),{key:2,name:`$`,value:e.value,depth:0},null,8,[`value`]))])])]),_:1}),H(u,{name:`raw`,tab:`原始 JSON`},{default:I(()=>[H(Kn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})}}}),Dr=async(e,t)=>{var n;let r=(n=e.body)==null?void 0:n.getReader();if(!r){let n=await e.arrayBuffer();if(n.byteLength>t)throw Error(`响应内容超过大小限制`);return n}let i=[],a=0;for(;;){let{done:e,value:n}=await r.read();if(e)break;if(a+=n.byteLength,a>t)throw await r.cancel(`响应内容超过大小限制`),Error(`响应内容超过大小限制`);i.push(n)}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.byteLength;return o.buffer},Or=e=>{if(typeof e==`string`)try{let t=new URL(e);if(t.protocol==`http:`||t.protocol==`https:`)return t.href}catch{}},kr={name:`subscription-preview`,class:`h-full min-h-0 flex flex-col gap-12px`},Ar=[`href`],jr=[`href`],Mr={name:`subscription-stats`,class:`flex flex-wrap gap-12px`},Nr={name:`subscription-tab-body`,class:`h-full min-h-0 flex flex-col gap-10px`},Pr={name:`app-id`,class:`mb-10px text-[#6b7280]`},Fr={name:`subscription-global-groups`,class:`min-h-0 flex flex-col gap-10px overflow-auto`},Ir={key:0,class:`mb-10px text-[#6b7280]`};function Lr(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Ke(e)}var Rr=50,zr=Z({__name:`SubscriptionPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>Or(t.value.updateUrl)),r=K(()=>Or(t.value.supportUri)),i=e=>e==null?[]:Array.isArray(e)?e:[e],a=K(()=>t.value.apps||[]),o=K(()=>t.value.globalGroups||[]),s=K(()=>t.value.categories||[]),c=K(()=>{let e=0,t=0;for(let n of a.value){e+=n.groups.length;for(let e of n.groups)t+=i(e.rules).length}let n=0;for(let e of o.value)n+=i(e.rules).length;return{apps:a.value.length,appGroups:e,appRules:t,globalGroups:o.value.length,globalRules:n,categories:s.value.length}}),l=Y(``),u=We(pn()),d=Y(1),f=K(()=>{let e=l.value.trim();return e?a.value.filter(t=>bn(t.id,e,u)||bn(t.name||``,e,u)):a.value});L(f,()=>d.value=1);let p=K(()=>{let e=(d.value-1)*Rr;return f.value.slice(e,e+Rr)}),m=(e,t)=>typeof e==`string`?`规则 ${t+1}`:e&&typeof e==`object`?String(e.name||`规则 ${t+1}`):`规则 ${t+1}`,h=e=>{let t;return H($e,{accordion:!0},Lr(t=i(e.rules).map((e,t)=>H(Qe,{key:t,name:t,title:m(e,t)},{default:()=>[H(`pre`,{class:`m-0 whitespace-pre-wrap rounded-4px border border-[#e5e7eb] bg-[#fafafa] p-10px font-mono text-12px [overflow-wrap:anywhere]`},[JSON.stringify(e,null,2)])]})))?t:{default:()=>[t]})},g=e=>H(`div`,Ne({name:`subscription-groups`},{class:`flex flex-col gap-10px`}),[e.groups.map(e=>H(D,{key:e.key,size:`small`,title:`${e.name} · #${e.key}`},{default:()=>[e.desc?H(`div`,{class:`mb-10px text-[#6b7280]`},[e.desc]):null,h(e)]}))]),_=[{key:`key`,title:`Key`,width:100},{key:`name`,title:`名称`},{key:`enable`,title:`默认状态`,width:140,render(e){return e.enable==null?`跟随规则组`:e.enable?`启用`:`禁用`}}];return(t,i)=>{let m=Mt,v=At,y=Wt,b=Ee,x=Qe,S=$e,C=Xe,w=qt,T=D,E=Ze,O=Zt;return F(),J(`div`,kr,[H(v,{bordered:``,size:`small`,column:3,labelPlacement:`left`},{default:I(()=>[H(m,{label:`名称`},{default:I(()=>[U(P(e.value.name),1)]),_:1}),H(m,{label:`ID`},{default:I(()=>[U(P(e.value.id),1)]),_:1}),H(m,{label:`版本`},{default:I(()=>[U(P(e.value.version),1)]),_:1}),e.value.author?(F(),z(m,{key:0,label:`作者`},{default:I(()=>[U(P(e.value.author),1)]),_:1})):V(``,!0),B(n)?(F(),z(m,{key:1,label:`更新地址`},{default:I(()=>[X(`a`,{href:B(n),target:`_blank`,rel:`noopener noreferrer`},P(e.value.updateUrl),9,Ar)]),_:1})):V(``,!0),B(r)?(F(),z(m,{key:2,label:`反馈地址`},{default:I(()=>[X(`a`,{href:B(r),target:`_blank`,rel:`noopener noreferrer`},P(e.value.supportUri),9,jr)]),_:1})):V(``,!0)]),_:1}),X(`div`,Mr,[B(c).apps?(F(),z(y,{key:0,label:`应用`,value:B(c).apps,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).appGroups?(F(),z(y,{key:1,label:`应用规则组`,value:B(c).appGroups,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).appRules?(F(),z(y,{key:2,label:`应用规则`,value:B(c).appRules,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).globalGroups?(F(),z(y,{key:3,label:`全局规则组`,value:B(c).globalGroups,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).globalRules?(F(),z(y,{key:4,label:`全局规则`,value:B(c).globalRules,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0),B(c).categories?(F(),z(y,{key:5,label:`分类`,value:B(c).categories,class:`min-w-120px rounded-6px border border-[#e5e7eb] bg-[#fafafa] px-14px py-10px`},null,8,[`value`])):V(``,!0)]),H(O,{type:`line`,animated:``,class:`h-full min-h-0 [&_.n-tab-pane]:h-full [&_.n-tab-pane]:min-h-0 [&_.n-tabs-pane-wrapper]:h-full [&_.n-tabs-pane-wrapper]:min-h-0`},{default:I(()=>[B(a).length?(F(),z(w,{key:0,name:`apps`,tab:`应用规则`},{default:I(()=>[X(`div`,Nr,[H(Qn,{modelValue:B(l),"onUpdate:modelValue":i[0]||=e=>N(l)?l.value=e:null,"match-case":B(u).matchCase,"onUpdate:matchCase":i[1]||=e=>B(u).matchCase=e,"whole-word":B(u).wholeWord,"onUpdate:wholeWord":i[2]||=e=>B(u).wholeWord=e,"use-regex":B(u).useRegex,"onUpdate:useRegex":i[3]||=e=>B(u).useRegex=e,placeholder:`搜索应用名称或包名`},null,8,[`modelValue`,`match-case`,`whole-word`,`use-regex`]),B(p).length==0?(F(),z(b,{key:0,description:`没有匹配的应用`})):(F(),z(S,{key:1,accordion:``,class:`min-h-0 flex-1 overflow-auto`},{default:I(()=>[(F(!0),J(W,null,Ie(B(p),e=>(F(),z(x,{key:e.id,name:e.id,title:`${e.name||e.id} · ${e.groups.length} 个规则组`},{default:I(()=>[X(`div`,Pr,P(e.id),1),(F(),z(Ae(()=>g(e))))]),_:2},1032,[`name`,`title`]))),128))]),_:1})),B(f).length>Rr?(F(),z(C,{key:2,page:B(d),"onUpdate:page":i[4]||=e=>N(d)?d.value=e:null,pageSize:Rr,itemCount:B(f).length},null,8,[`page`,`itemCount`])):V(``,!0)])]),_:1})):V(``,!0),B(o).length?(F(),z(w,{key:1,name:`global`,tab:`全局规则`},{default:I(()=>[X(`div`,Fr,[(F(!0),J(W,null,Ie(B(o),e=>(F(),z(T,{key:e.key,size:`small`,title:`${e.name} · #${e.key}`},{default:I(()=>[e.desc?(F(),J(`div`,Ir,P(e.desc),1)):V(``,!0),(F(),z(Ae(()=>h(e))))]),_:2},1032,[`title`]))),128))])]),_:1})):V(``,!0),B(s).length?(F(),z(w,{key:2,name:`categories`,tab:`分类`},{default:I(()=>[H(E,{striped:``,columns:_,data:B(s),pagination:!1},null,8,[`data`])]),_:1})):V(``,!0),H(w,{name:`raw`,tab:`原始 JSON`},{default:I(()=>[H(Kn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})])}}}),Br=new Set([`ctime`,`mtime`]),Vr=new Set([`snapshot`,`subs_config`]),Hr=new Set([`app_visit_log`,`subs_config`]),Ur=(e,t)=>{let n=t.toLowerCase();return n==`app_id`||e.toLowerCase()==`app_visit_log`&&n==`id`},Wr=(e,t)=>t.toLowerCase()==`subs_id`&&Hr.has(e.toLowerCase()),Gr=(e,t,n)=>{let r=t.toLowerCase();if(!(Br.has(r)||r==`id`&&Vr.has(e.toLowerCase()))||typeof n!=`number`&&typeof n!=`string`)return;let i=Number(n);if(!Number.isFinite(i))return;let a=Math.abs(i)<1e11?i*1e3:i,o=new Date(a);if(!Number.isNaN(o.getTime()))return o},Kr=(e,t=2)=>e.toString().padStart(t,`0`),qr=e=>`${e.getFullYear()}-${Kr(e.getMonth()+1)}-${Kr(e.getDate())} ${Kr(e.getHours())}:${Kr(e.getMinutes())}:${Kr(e.getSeconds())}.${Kr(e.getMilliseconds(),3)}`,Jr={key:2,name:`sqlite-layout`,class:`h-full min-h-0 flex gap-12px`},Yr={name:`sqlite-table-list`,class:`w-250px min-w-250px flex flex-col gap-8px border-r border-[#e5e7eb] pr-10px`},Xr={name:`sqlite-table-scroll`,class:`min-h-0 overflow-auto`},Zr={class:`flex-1 overflow-hidden text-left text-ellipsis leading-20px`},Qr={key:0,name:`sqlite-table-content`,class:`h-full min-h-0 min-w-0 flex-1`},$r={name:`sqlite-data-pane`,class:`h-full min-h-0 flex flex-col items-end gap-10px`},ei={name:`sqlite-data-table-scroll`,class:`w-full min-h-0 flex-1 overflow-auto`},ti={name:`sqlite-schema`,class:`box-border m-0 h-full overflow-auto whitespace-pre-wrap rounded-4px border border-[#e5e7eb] bg-[#fafafa] p-12px`},ni=100,ri=Z({__name:`SqlitePreview`,props:{database:{},wal:{},appNames:{},subscriptionNames:{}},setup(e){let t=e,n=Y(!0),r=Y(!1),a=Y(``),o=Y(``),s=Y([]),c=Y(``),l=Y(1),u=Y([]),d=Y([]),f=Y(``),p=We(pn()),m=new Worker(new URL(``+globalThis.location.origin+`/assets/worker-entry-sqlite.worker-bRrV1OFi.js`,``+import.meta.url),{type:`module`}),h=1,g=0,_=new Map;m.onmessage=e=>{let t=e.data,n=_.get(t.id);n&&(_.delete(t.id),t.ok?n.resolve(t.result):n.reject(Error(t.error)))},m.onerror=e=>{let t=Error(e.message||`SQLite Worker 运行失败`);for(let e of _.values())e.reject(t);_.clear()};let v=(e,t=[])=>{let n=h++;return new Promise((r,i)=>{_.set(n,{resolve:e=>r(e),reject:i}),m.postMessage({...e,id:n},t)})},y=K(()=>s.value.find(e=>e.name==c.value)),b=K(()=>{let e=f.value.trim();return e?s.value.filter(t=>bn(t.name,e,p)):s.value}),x=async()=>{if(!c.value)return;let e=++g,t=c.value,n=l.value;r.value=!0,o.value=``;try{let r=await v({type:`page`,table:t,page:n,pageSize:ni});if(e!=g||t!=c.value||n!=l.value)return;u.value=r.columns,d.value=r.rows}catch(t){if(e!=g)return;o.value=t instanceof Error?t.message:String(t)}finally{e==g&&(r.value=!1)}};L(c,()=>{l.value==1?x():l.value=1}),L(l,x),Le(async()=>{n.value=!0,a.value=``;try{var e;let n=t.database,r=t.wal,i=[n.buffer];r&&i.push(r.buffer);let a=await v({type:`open`,database:n,wal:r},i);s.value=a.tables,c.value=((e=a.tables[0])==null?void 0:e.name)||``}catch(e){a.value=e instanceof Error?e.message:String(e)}finally{n.value=!1}}),ke(()=>{m.terminate();for(let e of _.values())e.reject(Error(`组件已卸载`));_.clear()});let S=(e,n,r)=>{if(r==null)return H(`span`,{class:`italic text-[#9ca3af]`},[U(`NULL`)]);if(typeof r==`object`)return H(Ye,{size:`small`},{default:()=>[`BLOB · ${r.byteLength} bytes`]});if(Ur(e,n)&&typeof r==`string`){var i;let e=(i=t.appNames)==null?void 0:i[r];if(e)return H(`span`,{class:`whitespace-pre`,title:r},[e])}if(Wr(e,n)&&(typeof r==`number`||typeof r==`string`)){var a;let e=(a=t.subscriptionNames)==null?void 0:a[String(r)];if(e)return H(`span`,{class:`whitespace-pre`,title:String(r)},[e])}let o=Gr(e,n,r);return o?H(`span`,{class:`whitespace-nowrap tabular-nums`,title:String(r)},[qr(o)]):H(`span`,{class:`whitespace-pre`},[String(r)])},C=K(()=>u.value.map(e=>({key:e,title:e,render(t){return S(c.value,e,t[e]??null)}}))),w=K(()=>d.value.map((e,t)=>{let n={__rowIndex:t};return u.value.forEach((t,r)=>{n[t]=e[r]??null}),n}));return(e,t)=>{let u=Ct,d=Ee,m=Ye,h=i,g=Ze,_=Xe,v=qt,x=Zt,S=Ht;return F(),z(S,{show:B(n),class:`h-full min-h-0 [&_.n-spin-content]:h-full [&_.n-spin-content]:min-h-0`},{default:I(()=>[B(a)?(F(),z(u,{key:0,type:`error`,title:`数据库无法预览`},{default:I(()=>[U(P(B(a)),1)]),_:1})):!B(n)&&B(s).length==0?(F(),z(d,{key:1,description:`数据库中没有可展示的数据表`})):(F(),J(`div`,Jr,[X(`aside`,Yr,[H(Qn,{modelValue:B(f),"onUpdate:modelValue":t[0]||=e=>N(f)?f.value=e:null,"match-case":B(p).matchCase,"onUpdate:matchCase":t[1]||=e=>B(p).matchCase=e,"whole-word":B(p).wholeWord,"onUpdate:wholeWord":t[2]||=e=>B(p).wholeWord=e,"use-regex":B(p).useRegex,"onUpdate:useRegex":t[3]||=e=>B(p).useRegex=e,placeholder:`搜索数据表`},null,8,[`modelValue`,`match-case`,`whole-word`,`use-regex`]),X(`div`,Xr,[(F(!0),J(W,null,Ie(B(b),e=>(F(),z(h,{key:e.name,block:``,text:``,type:e.name==B(c)?`primary`:`default`,class:`h-34px justify-between px-6px`,onClick:t=>c.value=e.name},{default:I(()=>[X(`span`,Zr,P(e.name),1),H(m,{size:`small`,bordered:!1},{default:I(()=>[U(P(e.count??`?`),1)]),_:2},1024)]),_:2},1032,[`type`,`onClick`]))),128))])]),B(y)?(F(),J(`section`,Qr,[H(x,{type:`line`,animated:``,class:`h-full min-h-0 min-w-0 flex-1 [&_.n-tab-pane]:h-full [&_.n-tab-pane]:min-h-0 [&_.n-tab-pane]:min-w-0 [&_.n-tab-pane]:flex-1 [&_.n-tabs-pane-wrapper]:h-full [&_.n-tabs-pane-wrapper]:min-h-0 [&_.n-tabs-pane-wrapper]:min-w-0 [&_.n-tabs-pane-wrapper]:flex-1`},{default:I(()=>[H(v,{name:`data`,tab:B(y).count==null?`数据`:`数据 · ${B(y).count}`},{default:I(()=>[X(`div`,$r,[B(o)?(F(),z(u,{key:0,type:`warning`,title:`当前数据表无法读取`,class:`w-full flex-none`},{default:I(()=>[U(P(B(o)),1)]),_:1})):V(``,!0),X(`div`,ei,[H(g,{striped:``,"table-layout":`auto`,loading:B(r),columns:B(C),data:B(w),pagination:!1,rowKey:e=>Number(e.__rowIndex),size:`small`,class:`w-full [&_.n-data-table-table]:min-w-full [&_.n-data-table-table]:w-max [&_.n-data-table-th]:whitespace-nowrap`},null,8,[`loading`,`columns`,`data`,`rowKey`])]),B(y).count!=null&&B(y).count>ni?(F(),z(_,{key:1,page:B(l),"onUpdate:page":t[4]||=e=>N(l)?l.value=e:null,pageSize:ni,itemCount:B(y).count},null,8,[`page`,`itemCount`])):V(``,!0)])]),_:1},8,[`tab`]),H(v,{name:`schema`,tab:`表结构`},{default:I(()=>[X(`pre`,ti,P(B(y).sql),1)]),_:1})]),_:1})])):V(``,!0)]))]),_:1},8,[`show`])}}}),ii=e=>typeof e==`object`&&!!e&&!Array.isArray(e),ai=e=>{if(!ii(e)||!Array.isArray(e.apps))return{};let t=[];return e.apps.forEach(e=>{ii(e)&&(typeof e.id!=`string`||typeof e.name!=`string`||t.push([e.id,e.name]))}),Object.fromEntries(t)},oi=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`number`&&Number.isSafeInteger(t.id)&&typeof t.name==`string`&&t.name.length>0},si=e=>{if(oi(e))return[String(e.id),e.name]},ci=101010256,li=33639248,ui=22,di=65535,fi=(e,t)=>{if(e.byteLength<ui)throw Error(`不是有效的 ZIP 文件`);let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=Math.max(0,e.byteLength-ui-di),i=-1;for(let t=e.byteLength-ui;t>=r;t--)if(n.getUint32(t,!0)==ci&&t+ui+n.getUint16(t+20,!0)==e.byteLength){i=t;break}if(i<0)throw Error(`不是有效的 ZIP 文件`);let a=n.getUint16(i+4,!0),o=n.getUint16(i+6,!0),s=n.getUint16(i+8,!0),c=n.getUint16(i+10,!0),l=n.getUint32(i+12,!0),u=n.getUint32(i+16,!0);if(a!=0||o!=0||s!=c||c==65535||l==4294967295||u==4294967295)throw Error(`不支持分卷或 ZIP64 日志包`);if(c>t.maxEntries)throw Error(`ZIP 内条目数量不能超过 ${t.maxEntries}`);if(u>i||l>i-u||u+l!=i)throw Error(`ZIP 中央目录损坏`);let d=u,f=0,p=0;for(;d<i;){if(d+46>i||n.getUint32(d,!0)!=li)throw Error(`ZIP 中央目录损坏`);let e=n.getUint32(d+20,!0),r=n.getUint32(d+24,!0);if(e==4294967295||r==4294967295)throw Error(`不支持 ZIP64 日志包`);let a=n.getUint16(d+28,!0);if(a>t.maxEntryNameSize)throw Error(`ZIP 条目路径过长`);let o=n.getUint16(d+30,!0),s=n.getUint16(d+32,!0),c=d+46+a+o+s;if(c>i)throw Error(`ZIP 中央目录损坏`);if(f++,f>t.maxEntries)throw Error(`ZIP 内条目数量不能超过 ${t.maxEntries}`);if(p+=r,!Number.isSafeInteger(p)||p>t.maxUncompressedSize)throw Error(`ZIP 解压后总大小超过限制`);d=c}if(f!=c||d!=i)throw Error(`ZIP 中央目录条目数量不一致`);return{entryCount:c,totalUncompressedSize:p}},pi=50*1024*1024,mi=200*1024*1024,hi=2e3,gi=20*1024*1024,_i=2*1024*1024,vi=100*1024*1024,yi=5e5,bi=1024,xi=new Set([`.log`,`.txt`,`.sql`,`.xml`,`.md`,`.yaml`,`.yml`,`.csv`]),Si=new Set([`.db`,`.sqlite`,`.sqlite3`]),Ci=e=>{let t=e.split(`/`).at(-1)||e,n=t.lastIndexOf(`.`);return n>=0?t.slice(n).toLowerCase():``},wi=e=>{let t=e.toLowerCase();if(t.endsWith(`-wal`)||t.endsWith(`-shm`))return`database-sidecar`;let n=Ci(e);return n==`.json`?`json`:Si.has(n)?`database`:xi.has(n)?`text`:`binary`},Ti=e=>e.extension==`.log`?0:e.kind==`text`?1:e.kind==`json`?2:e.kind==`database`?3:4,Ei=e=>e.entries.filter(e=>e.kind==`text`||e.kind==`json`||e.kind==`database`).toSorted((e,t)=>Ti(e)-Ti(t))[0],Di=async(e,t)=>{let n=e instanceof Blob?e.size:e.byteLength;if(n>52428800)throw Error(`ZIP 文件不能超过 ${$(pi)}`);let r=e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e),i=fi(r,{maxEntries:hi,maxEntryNameSize:bi,maxUncompressedSize:mi}),a=await dt(r),o=Object.values(a.files).filter(e=>!e.dir);if(o.length>2e3)throw Error(`ZIP 内文件数量不能超过 ${hi}`);let s=0,c={total:0,sizes:new Map},l=o.map(e=>{var t;let n=e;if(n.unsafeOriginalName&&n.unsafeOriginalName.replaceAll(`\\`,`/`)!=n.name)throw Error(`ZIP 包含不安全路径: ${n.unsafeOriginalName}`);let r=((t=n._data)==null?void 0:t.uncompressedSize)||0;s+=r;let i=n.name.replaceAll(`\\`,`/`).replace(/^\/+/,``),a=i.split(`/`);if(i.length>1024||a.length>64||a.some(e=>!e||e.length>255))throw Error(`ZIP 条目路径超出预览限制: ${i}`);return{path:i,name:i.split(`/`).at(-1)||i,extension:Ci(i),size:r,kind:wi(i),file:e,readBudget:c}});if(s>209715200)throw Error(`ZIP 解压后总大小不能超过 ${$(mi)}`);if(s!=i.totalUncompressedSize)throw Error(`ZIP 中央目录大小信息不一致`);let u=new Set(l.map(e=>e.path));for(let e of l){let t=e.path.split(`/`),n=t[0];for(let e=1;e<t.length;e++){if(u.has(n))throw Error(`ZIP 同时包含文件及其子路径: ${n}`);n+=`/${t[e]}`}}return l.sort((e,t)=>e.path.localeCompare(t.path,`zh-CN`)),{name:t,compressedSize:n,uncompressedSize:s,entries:l,entryMap:new Map(l.map(e=>[e.path,e]))}},Oi=new WeakMap,ki=new WeakMap,Ai=async(e,t=gi)=>{if(e.size>t)throw Error(`${e.name} 超过可预览上限 ${$(t)}`);let n=e.readBudget.sizes.get(e.path);return new Promise((r,i)=>{let a=[],o=0,s=!1,c=e.file.internalStream(`uint8array`),l=e=>{s||(s=!0,c.pause(),i(e instanceof Error?e:Error(String(e))))};c.on(`data`,r=>{if(!s){if(o+r.byteLength>t){l(Error(`${e.name} 超过可预览上限 ${$(t)}`));return}if(n==null&&e.readBudget.total+r.byteLength>209715200){l(Error(`ZIP 实际解压大小超过可预览上限`));return}o+=r.byteLength,n??(e.readBudget.total+=r.byteLength),a.push(r)}}).on(`error`,l).on(`end`,()=>{if(s)return;s=!0;let t=new Uint8Array(o),i=0;for(let e of a)t.set(e,i),i+=e.byteLength;n??e.readBudget.sizes.set(e.path,o),r(t)}).resume()})},ji=(e,t=gi)=>{var n;let r=(n=ki.get(e.file))==null?void 0:n.get(t);if(r)return Promise.reject(r);let i=Oi.get(e.file);i||(i=new Map,Oi.set(e.file,i));let a=i.get(t);return a||(a=Ai(e,t),i.set(t,a),a.then(()=>i==null?void 0:i.delete(t),n=>{i==null||i.delete(t);let r=ki.get(e.file);r||(r=new Map,ki.set(e.file,r)),r.set(t,n instanceof Error?n:Error(String(n)))})),a},Mi=async(e,t)=>{let n=e.entryMap.get(`${t.path}-wal`),r=e.entryMap.get(`${t.path}-shm`);if(t.size+((n==null?void 0:n.size)||0)+((r==null?void 0:r.size)||0)>104857600)throw Error(`数据库文件组超过可预览上限 ${$(vi)}`);let i=await ji(t,vi);return{database:i,wal:n?await ji(n,vi-i.byteLength):void 0,walEntry:n,shmEntry:r}},Ni=e=>{let t=new TextDecoder().decode(e),n=1;for(let e=0;e<t.length;e++)if((t.charCodeAt(e)==10||t.charCodeAt(e)==13&&t.charCodeAt(e+1)!=10)&&n++,n>5e5)throw Error(`文本行数不能超过 ${yi}`);return t},Pi=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Fi=1e4,Ii=new WeakMap,Li=e=>{let t=Ii.get(e);return t||(t=(async()=>{let t=e.entries.find(e=>{let t=e.path.toLowerCase();return t==`apps.json`||t.endsWith(`/apps.json`)});if(!t)return{};try{let e=Ni(await ji(t,_i));return ai(JSON.parse(e))}catch{return{}}})(),Ii.set(e,t),t)},Ri=new WeakMap,zi=e=>{let t=Ri.get(e);return t||(t=(async()=>{let t=e.entries.filter(e=>/^subscription\/[^/]+\.json$/i.test(e.path)),n=[];for(let e of t)try{let t=Ni(await ji(e,_i)),r=si(JSON.parse(t));r&&n.push(r)}catch{}return Object.fromEntries(n.filter(e=>e!=null))})(),Ri.set(e,t),t)},Bi=e=>{if(!Pi(e)||typeof e.id!=`number`||!Number.isSafeInteger(e.id)||typeof e.name!=`string`||typeof e.version!=`number`||!Number.isSafeInteger(e.version)||![`apps`,`globalGroups`,`categories`].every(t=>e[t]==null||Array.isArray(e[t])))return!1;let t=Array.isArray(e.apps)?e.apps:[],n=Array.isArray(e.globalGroups)?e.globalGroups:[],r=Array.isArray(e.categories)?e.categories:[];if(t.length>Fi||n.length>Fi||r.length>Fi||!r.every(Pi))return!1;let i=t.length+n.length+r.length,a=e=>{let t=e.rules;return i+=Array.isArray(t)?t.length:t==null?0:1,i<=Fi};for(let e of t){if(!Pi(e)||typeof e.id!=`string`||!Array.isArray(e.groups)||(i+=e.groups.length,i>Fi))return!1;for(let t of e.groups)if(!Pi(t)||!a(t))return!1}for(let e of n)if(!Pi(e)||!a(e))return!1;return!0},Vi=(e,t)=>Bi(t)&&(e.path.toLowerCase().startsWith(`subscription/`)||[`apps`,`globalGroups`,`categories`].some(e=>e in t)),$=e=>{if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KiB`,`MiB`,`GiB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;let i=r==0||n>=100?0:n>=10?1:2;return`${n.toFixed(i)} ${t[r]}`},Hi=e(ut(),1),Ui=10080*60*1e3,Wi=Hi.default.createInstance({name:`gkd-inspect-log`,storeName:`remote_logs`,version:1,driver:Hi.default.INDEXEDDB}),Gi=(e,t=Date.now())=>{if(!e||typeof e!=`object`)return!1;let n=e;return n.version==1&&typeof n.cachedAt==`number`&&Number.isFinite(n.cachedAt)&&typeof n.expiresAt==`number`&&Number.isFinite(n.expiresAt)&&n.expiresAt>t&&typeof n.name==`string`&&n.data instanceof ArrayBuffer},Ki=async e=>{try{await Wi.removeItem(e)}catch{}},qi=async e=>{try{let t=await Wi.getItem(e);if(Gi(t))return t;t&&await Wi.removeItem(e)}catch{}},Ji=async(e,t,n)=>{let r=Date.now();try{let i=[];for(let t of await Wi.keys()){let n=await Wi.getItem(t);Gi(n,r)?t!=e&&i.push({key:t,value:n}):await Wi.removeItem(t)}i.sort((e,t)=>e.value.cachedAt-t.value.cachedAt);let a=i.reduce((e,t)=>e+t.value.data.byteLength,n.byteLength);for(;i.length>=10||a>209715200;){let e=i.shift();if(!e)break;a-=e.value.data.byteLength,await Wi.removeItem(e.key)}await Wi.setItem(e,{version:1,cachedAt:r,expiresAt:r+Ui,name:t,data:n})}catch{}},Yi={name:`log-page`,"page-size":``,class:`box-border flex min-h-700px min-w-1200px flex-col gap-10px bg-[#f8fafc] p-10px`},Xi={name:`log-toolbar`,class:`h-42px flex items-center gap-10px`},Zi={key:1,name:`log-workspace`,class:`flex min-h-0 flex-1 gap-10px`},Qi={key:0,name:`archive-meta-content`,class:`min-w-0 flex-1`},$i=[`title`],ea={name:`archive-stats`,class:`mt-3px text-12px text-[#64748b]`},ta=[`aria-expanded`,`aria-label`,`title`],na={name:`log-preview-panel`,class:`box-border flex min-h-0 min-w-0 flex-1 flex-col rounded-6px border border-[#e2e8f0] bg-white`},ra={key:0,name:`preview-header`,class:`box-border min-h-52px flex items-center gap-10px border-b border-[#e5e7eb] px-12px py-8px [&>:first-child]:flex-1`},ia={"min-w-0":``},aa=[`title`],oa={name:`preview-size`,class:`mt-3px text-12px text-[#64748b]`},sa={name:`preview-body`,class:`min-h-0 flex-1 p-12px`},ca={key:2,name:`text-preview-wrapper`,class:`h-full min-h-0 flex flex-col gap-8px`},la={key:0,name:`text-preview-file-meta`,class:`min-w-0 max-w-260px flex-[0_1_260px] text-left`},ua=[`title`],da={name:`preview-size`,class:`mt-3px text-12px text-[#64748b]`},fa={key:2,name:`log-empty-state`,class:`grid min-h-0 flex-1 place-items-center`},pa={name:`drop-title`,class:`text-20px font-600`},ma=Z({__name:`LogPage`,setup(e){let t=ct(),n=st(),r=Y(),a=Y(``),o=Y(!1),s=Y(!1),c=Y(``),l=Y(``),u=Y(`none`),d=Y(``),f=Y(),p=Y(),m=Y(``),h=Y(),g=Y(),_=Y({}),v=Y({}),y=Y(),b=Y(!1),x=0,S=0,C,w=K(()=>{var e;return(e=r.value)==null?void 0:e.entryMap.get(a.value)}),T=()=>{u.value=`none`,d.value=``,f.value=void 0,p.value=void 0,m.value=``,h.value=void 0,g.value=void 0,_.value={},v.value={}},E=async e=>{let t=++S;if(c.value=``,T(),e){a.value=e.path,s.value=!0;try{if(e.kind==`database`){if(!r.value)return;let[n,i,a]=await Promise.all([Mi(r.value,e),Li(r.value),zi(r.value)]);if(t!=S)return;h.value=Ue(n.database),g.value=n.wal?Ue(n.wal):void 0,_.value=Ue(i),v.value=Ue(a),u.value=`database`;return}if(e.kind==`text`){let n=await ji(e);if(t!=S)return;d.value=Ni(n),u.value=`text`;return}if(e.kind==`json`){let n=Ni(await ji(e,_i));if(t!=S)return;d.value=n;try{let t=JSON.parse(n);f.value=t;let r=sn(t),i=e.path.toLowerCase().split(`/`).at(-1)==`apps.json`&&!r?vr(t):void 0;i?(p.value=Ue(i),u.value=`apps`):!r&&Vi(e,t)?u.value=`subscription`:u.value=`json`}catch(e){m.value=e instanceof Error?e.message:String(e),u.value=`invalid-json`}return}u.value=`unsupported`}catch(e){if(t!=S)return;c.value=e instanceof Error?e.message:String(e),u.value=`unsupported`}finally{t==S&&(s.value=!1)}}},D=async(e,t,n=++x)=>{S++,o.value=!0,c.value=``,T(),r.value=void 0,a.value=``;try{let i=await Di(e,t||`log.zip`);if(n!=x)return;r.value=i;let a=Ei(i);return a&&await E(a),n==x}catch(e){return n==x?(c.value=e instanceof Error?e.message:String(e),!1):void 0}finally{n==x&&(o.value=!1)}},O=(e,t)=>{var n,r,i;let a=e.headers.get(`content-disposition`)||``,o=(n=a.match(/filename\*=UTF-8''([^;]+)/i))==null?void 0:n[1],s=(r=a.match(/filename="?([^";]+)"?/i))==null?void 0:r[1],c=o||s;if(c)try{return decodeURIComponent(c)}catch{return c}if((i=t.name)!=null&&i.toLowerCase().endsWith(`.zip`))return t.name;try{let n=new URL(e.url||t.url).pathname.split(`/`).filter(Boolean).at(-1);if(n)return decodeURIComponent(n)}catch{}return`log.zip`},ee=async(e,t,n)=>{let r=await qi(e.url);if(t!=x)return;if(r){if(await D(r.data,r.name,t)||t!=x)return;await Ki(e.url),o.value=!0,c.value=``}let i=!1,a;try{a=await ft(e.url,{credentials:`omit`,signal:n.signal},e=>({...e,anonymous:!0,onprogress(t){var r;(r=e.onprogress)==null||r.call(t,t),t.loaded>52428800&&(i=!0,n.abort())}}))}catch(e){throw i?Error(`ZIP 文件不能超过 ${$(pi)}`,{cause:e}):e}if(!a.ok)throw Error(`HTTP ${a.status}`);if(Number(a.headers.get(`content-length`)||0)>52428800)throw Error(`ZIP 文件不能超过 ${$(pi)}`);let s;try{s=await Dr(a,pi)}catch(e){throw e instanceof Error&&e.message==`响应内容超过大小限制`?Error(`ZIP 文件不能超过 ${$(pi)}`,{cause:e}):e}if(t!=x)return;let l=O(a,e);await D(s,l,t)&&Ji(e.url,l,s)},te=()=>t.path==`/log`?at(t.query.url):rt(t.params.pathMatch),ne=async()=>{C==null||C.abort();let e=new AbortController;C=e;let t=te(),n=++x;if(S++,r.value=void 0,a.value=``,T(),c.value=``,!t){o.value=!1,l.value=``;return}l.value=t.url,o.value=!0;try{await ee(t,n,e)}catch(e){if(n!=x)return;c.value=e instanceof Error?e.message:String(e),o.value=!1}};L(()=>t.fullPath,ne,{immediate:!0});let re=async()=>{let e=nt(l.value);if(!e){_e.warning(`请输入有效的 HTTP/HTTPS 链接`);return}n.resolve(e).fullPath==t.fullPath?await ne():await n.push(e)},ie=async e=>{let r=e.find(e=>e.name.toLowerCase().endsWith(`.zip`));r&&(C==null||C.abort(),C=void 0,x++,t.fullPath!=`/log`&&await n.replace(`/log`),l.value=``,await D(r,r.name))},ae=()=>{var e;return(e=y.value)==null?void 0:e.click()},se=()=>{let e=y.value;if(!e)return;let t=[...e.files||[]];e.value=``,ie(t)};pe(document.body,`dragover`,e=>e.preventDefault()),pe(document.body,`drop`,e=>{e.preventDefault();let t=lt(e);if(!t.some(e=>e.name.toLowerCase().endsWith(`.zip`))){_e.warning(`请拖入 ZIP 文件`);return}ie(t)});let ce=K(()=>{var e;let t=[],n=new Map;for(let i of((e=r.value)==null?void 0:e.entries)||[]){let e=i.path.split(`/`).filter(Boolean),r=t,a=``;e.forEach((t,o)=>{a=a?`${a}/${t}`:t;let s=n.get(a);if(!s){let c=o==e.length-1;s={key:a,label:t,path:c?i.path:void 0,isFile:c,children:c?void 0:[]},n.set(a,s),r.push(s)}r=s.children||[]})}return t}),le=e=>{var t;let n=String(e[0]||``),i=(t=r.value)==null?void 0:t.entryMap.get(n);i&&E(i)};return(e,t)=>{let n=i,x=qe(`RouterLink`),S=tt,C=De,T=Ct,E=qe(`SvgIcon`),D=et,O=Ht,ee=Ee;return F(),J(`div`,Yi,[X(`header`,Xi,[H(x,{to:`/`,flex:``,"items-center":``},{default:I(()=>[H(n,{quaternary:``},{default:I(()=>[...t[3]||=[U(`返回首页`,-1)]]),_:1})]),_:1}),t[6]||=X(`div`,{name:`log-title`,class:`flex-none text-18px font-600`},` 日志包查看器 `,-1),H(C,{class:`ml-auto min-w-420px max-w-720px`},{default:I(()=>[H(S,{value:B(l),"onUpdate:value":t[0]||=e=>N(l)?l.value=e:null,clearable:``,placeholder:`粘贴 GitHub、f.gkd.li 或其他 ZIP 链接`,onKeyup:oe(re,[`enter`])},null,8,[`value`]),H(n,{type:`primary`,loading:B(o),onClick:re},{default:I(()=>[...t[4]||=[U(` 加载链接 `,-1)]]),_:1},8,[`loading`])]),_:1}),H(n,{disabled:B(o),onClick:ae},{default:I(()=>[...t[5]||=[U(` 选择本地 ZIP `,-1)]]),_:1},8,[`disabled`]),X(`input`,{ref_key:`localFileInput`,ref:y,hidden:``,type:`file`,accept:`.zip,application/zip`,onChange:se},null,544)]),B(c)?(F(),z(T,{key:0,type:`error`,closable:``,onClose:t[1]||=e=>c.value=``},{default:I(()=>[U(P(B(c)),1)]),_:1})):V(``,!0),B(r)?(F(),J(`main`,Zi,[X(`aside`,{name:`log-file-panel`,class:R([`box-border flex min-h-0 flex-col rounded-6px border border-[#e2e8f0] bg-white transition-[width,min-width] duration-180 ease`,B(b)?`w-44px min-w-44px`:`w-300px min-w-300px`])},[X(`div`,{name:`archive-meta`,class:R([`flex min-w-0 items-start gap-8px`,B(b)?`justify-center border-b-0 p-8px`:`border-b border-[#e5e7eb] p-12px`])},[B(b)?V(``,!0):(F(),J(`div`,Qi,[X(`div`,{name:`archive-name`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(r).name},P(B(r).name),9,$i),X(`div`,ea,P(B(r).entries.length)+` 个文件 · `+P(B($)(B(r).uncompressedSize)),1)])),X(`button`,{type:`button`,class:`inline-grid h-26px w-26px flex-none cursor-pointer place-items-center rounded-4px border-0 bg-transparent p-0 text-[#64748b] hover:bg-[#e2e8f0] hover:text-[#0f172a] focus-visible:outline focus-visible:outline-1 focus-visible:outline-[#2563eb] focus-visible:outline-offset-1`,"aria-expanded":!B(b),"aria-label":B(b)?`展开文件列表`:`收起文件列表`,title:B(b)?`展开文件列表`:`收起文件列表`,onClick:t[2]||=e=>b.value=!B(b)},[H(E,{name:`arrow`,class:R([`h-17px w-17px transition-transform duration-180 ease`,B(b)?`-rotate-90`:`rotate-90`])},null,8,[`class`])],8,ta)],2),B(b)?V(``,!0):(F(),z(D,{key:0,blockLine:``,virtualScroll:``,defaultExpandAll:``,data:B(ce),selectedKeys:B(a)?[B(a)]:[],class:`min-h-0 flex-1 p-8px`,"onUpdate:selectedKeys":le},null,8,[`data`,`selectedKeys`]))],2),X(`section`,na,[B(w)&&B(w).kind!=`text`&&B(u)!=`invalid-json`?(F(),J(`div`,ra,[X(`div`,ia,[X(`div`,{name:`preview-path`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(w).path},P(B(w).path),9,aa),X(`div`,oa,P(B($)(B(w).size)),1)])])):V(``,!0),X(`div`,sa,[B(s)?(F(),z(O,{key:0,show:``,class:`h-full w-full`})):B(u)==`none`?(F(),z(ee,{key:1,description:`该日志包没有可预览内容`})):B(u)==`text`||B(u)==`invalid-json`?(F(),J(`div`,ca,[B(u)==`invalid-json`?(F(),z(T,{key:0,type:`warning`,title:`JSON 解析失败,以下为原始内容`,class:`flex-none`},{default:I(()=>[U(P(B(m)),1)]),_:1})):V(``,!0),H(Wn,{value:B(d),"search-placeholder":`搜索当前文件`,"allow-wrap":``,copyable:``},{"toolbar-start":I(()=>[B(w)?(F(),J(`div`,la,[X(`div`,{name:`preview-path`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(w).path},P(B(w).path),9,ua),X(`div`,da,P(B($)(B(w).size)),1)])):V(``,!0)]),_:1},8,[`value`])])):B(u)==`json`?(F(),z(Er,{key:B(a),value:B(f),raw:B(d)},null,8,[`value`,`raw`])):B(u)==`apps`&&B(p)?(F(),z(fr,{key:B(a),data:B(p),value:B(f),raw:B(d)},null,8,[`data`,`value`,`raw`])):B(u)==`subscription`&&B(Bi)(B(f))?(F(),z(zr,{key:B(a),value:B(f),raw:B(d)},null,8,[`value`,`raw`])):B(u)==`database`&&B(h)?(F(),z(ri,{key:B(a),database:B(h),wal:B(g),"app-names":B(_),"subscription-names":B(v)},null,8,[`database`,`wal`,`app-names`,`subscription-names`])):(F(),z(ee,{key:7,description:`该文件不支持预览`}))])])])):(F(),J(`main`,fa,[H(O,{show:B(o)},{default:I(()=>[X(`div`,{name:`drop-zone`,class:`box-border h-300px w-620px flex cursor-pointer flex-col items-center justify-center rounded-12px border-2 border-[#94a3b8] border-dashed bg-white transition-colors duration-200 hover:border-[#18a058]`,onClick:ae},[H(E,{name:`import`,class:`mb-18px h-48px w-48px`}),X(`div`,pa,P(B(o)?`正在下载并解析日志包…`:`拖拽 ZIP 到这里`),1),t[7]||=X(`div`,{name:`drop-description`,class:`mt-8px text-[#64748b]`},` 或点击选择本地 ZIP 文件 `,-1),t[8]||=X(`div`,{name:`privacy-tip`,class:`mt-24px text-12px text-[#94a3b8]`},` 文件只在当前浏览器中解析,不会上传;远程日志会在本机缓存最多 7 天 `,-1)])]),_:1},8,[`show`])]))])}}});export{ma as default};
537
+ //# sourceMappingURL=LogPage-5NLtQrql.js.map