@gkd-kit/inspect 0.0.1786453727682 → 0.0.1786456238136
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/404.html +15 -15
- package/dist/assets/{LogPage-DkjdTknn.js → LogPage-MFWJOsmV.js} +2 -2
- package/dist/assets/LogPage-MFWJOsmV.js.map +1 -0
- package/dist/assets/{SelectorPage-BvzYpPm9.js → SelectorPage-DY7F7j7k.js} +2 -2
- package/dist/assets/{SelectorPage-BvzYpPm9.js.map → SelectorPage-DY7F7j7k.js.map} +1 -1
- package/dist/assets/{SnapshotPage-Dzw64EZg.js → SnapshotPage-CPpVZr0Y.js} +4 -4
- package/dist/assets/{SnapshotPage-Dzw64EZg.js.map → SnapshotPage-CPpVZr0Y.js.map} +1 -1
- package/dist/assets/{TrackGraph-DDcMtbxp.js → TrackGraph-BpFP3UnY.js} +2 -2
- package/dist/assets/{TrackGraph-DDcMtbxp.js.map → TrackGraph-BpFP3UnY.js.map} +1 -1
- package/dist/assets/chunk-Cj_4bPuj.js +1 -1
- package/dist/assets/{dist-D5FHO9SH.js → dist-C9tJZXEA.js} +2 -2
- package/dist/assets/{dist-D5FHO9SH.js.map → dist-C9tJZXEA.js.map} +1 -1
- package/dist/assets/{index-2dYRmivN.css → index-4xuY-9Kk.css} +1 -1
- package/dist/assets/{index-BJSt_46M.js → index-BuLNtrdE.js} +6 -6
- package/dist/assets/{index-BJSt_46M.js.map → index-BuLNtrdE.js.map} +1 -1
- package/dist/assets/{selector-BGUlRDxb.js → selector-X1LgfmUe.js} +2 -2
- package/dist/assets/{selector-BGUlRDxb.js.map → selector-X1LgfmUe.js.map} +1 -1
- package/dist/assets/{sql-wasm-browser-BIw__vUr.js → sql-wasm-browser-BKcMXFDD.js} +2 -2
- package/dist/assets/{sql-wasm-browser-BIw__vUr.js.map → sql-wasm-browser-BKcMXFDD.js.map} +1 -1
- package/dist/assets/{worker-entry-sqlite.worker-Cim6YgkU.js → worker-entry-sqlite.worker-DHIt96J_.js} +2 -2
- package/dist/assets/{worker-entry-sqlite.worker-Cim6YgkU.js.map → worker-entry-sqlite.worker-DHIt96J_.js.map} +1 -1
- package/dist/index.html +15 -15
- package/package.json +1 -1
- package/dist/assets/LogPage-DkjdTknn.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.
|
|
4
|
+
<script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/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.
|
|
16
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
17
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
18
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
19
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
20
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
21
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
22
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
23
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
24
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
25
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
26
|
-
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
27
|
-
<link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
28
|
-
<link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.
|
|
15
|
+
<script type="module" crossorigin src="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/index-BuLNtrdE.js"></script>
|
|
16
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/preload-helper-BtVJa7tz.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/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.1786456238136/files/dist/assets/discrete-BTrzVGvR.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/buildMatchPatternFn-Bh60_8FV.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/chunk-62oNxeRG.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/localforage-WIQUL5H9.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/log_url-DAv5mPIF.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/Checkbox-BMccKg-D.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/vue-router-BAMbWm35.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/storage-DzFZkTy8.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/check-ICe0_ZVN.js">
|
|
27
|
+
<link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/localforage-D6OXBwtH.css">
|
|
28
|
+
<link rel="stylesheet" crossorigin href="https://registry.npmmirror.com/@gkd-kit/inspect/0.0.1786456238136/files/dist/assets/index-4xuY-9Kk.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
|
`),j(`tabs-pad`,`
|
|
535
535
|
border-top: 1px solid var(--n-tab-border-color);
|
|
536
|
-
`)])])])]),Zt=vt,Qt=Z({name:`Tabs`,props:Object.assign(Object.assign({},he.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=he(`Tabs`,`-tabs`,Xt,Bt,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=be(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=be(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,k=null;function le(e){let t=se.value;if(t){ce=e.getBoundingClientRect().height;let n=`${ce}px`,r=()=>{t.style.height=n,t.style.maxHeight=n};k?(r(),k(),k=null):k=r}}function ue(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`};k?(k(),k=null,r()):k=r}}function A(){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 de={value:[]},j=G(`next`);function fe(e){let t=C.value,n=`next`;for(let r of de.value){if(r===t)break;if(r===e){n=`prev`;break}}j.value=n,pe(e)}function pe(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 me(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 N=0;function ye(t){var n,r;if(t.contentRect.width===0&&t.contentRect.height===0||N===t.contentRect.width)return;N=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;De((t===`top`||t===`bottom`?(r=h.value)==null?void 0:r.$el:g.value)||null)}}let xe=Zt(ye,64);L([()=>e.justifyContent,()=>e.size],()=>{Me(()=>{let{type:t}=e;(t===`line`||t===`bar`)&&_e()})});let Se=G(!1);function we(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(!Se.value)c===`top`||c===`bottom`?o<i&&(Se.value=!0):s<a&&(Se.value=!0);else{let{value:e}=m;if(!e)return;c===`top`||c===`bottom`?o-i>e.$el.offsetWidth&&(Se.value=!1):s-a>e.$el.offsetHeight&&(Se.value=!1)}De(((n=h.value)==null?void 0:n.$el)||null)}let Te=Zt(we,64);function Ee(){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 De(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 Oe=Zt(e=>{De(e.target)},64);Fe(Kt,{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:fe,handleClose:me,handleAdd:Ee}),Ce(()=>{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:Se,tabWrapperStyle:T,handleNavResize:xe,mergedSize:b,handleScroll:Oe,handleTabsResize:Te,cssVars:s?void 0:je,themeClass:P==null?void 0:P.themeClass,animationDirection:j,renderNameListRef:de,yScrollElRef:g,handleSegmentResize:Ae,onAnimationBeforeLeave:le,onAnimationEnter:ue,onAnimationAfterEnter:A,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),nn(Q(Yt,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),nn(t!==0&&!y?tn(e):e))),!i&&a&&_?en(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(Yt,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:tn(e))))}):Q(ge,{onResize:this.handleNavResize},{default:()=>Q(`div`,{class:`${e}-tabs-nav-scroll-wrapper`,ref:`scrollWrapperElRef`},[`top`,`bottom`].includes(x)?Q(ht,{ref:`xScrollInstRef`,onScroll:this.handleScroll},{default:b}):Q(`div`,{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:`yScrollElRef`},b()))}),i&&a&&_?en(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]},$t(m,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):$t(m,this.mergedValue,this.renderedNames)))}});function $t(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,[[k,c]]):e)}}),o?Q(pe,{name:`${o}-transition`,onBeforeLeave:r,onEnter:i,onAfterEnter:a},{default:()=>s}):s}function en(e,t){return Q(Yt,{ref:`addTabInstRef`,key:`__addable`,name:`__addable`,internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e==`object`&&e.disabled})}function tn(e){let t=He(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function nn(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes(`internalLeftPadded`)||e.dynamicProps.push(`internalLeftPadded`):e.dynamicProps=[`internalLeftPadded`],e}var rn=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(De,{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})}})})}}),an=1e4,on=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},sn=e=>typeof e==`object`&&!!e&&on(e)==null,cn=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},ln=e=>e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`,un=e=>ln(e)?!0:Array.isArray(e)?e.every(ln):typeof e==`object`&&!!e&&Object.keys(e).length==0,dn=e=>{if(typeof e!=`object`||!e||sn(e))return;let t=Object.entries(e);if(!(t.length==0||!t.every(([,e])=>un(e))))return t.map(([e,t])=>({key:e,value:t}))},fn=e=>JSON.stringify(e)??String(e),pn=(e,t)=>{if(cn(e))return t;try{return JSON.stringify(e,null,2)??t}catch{return t}},mn=()=>({matchCase:!1,wholeWord:!1,useRegex:!1}),hn=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),gn=(e,t,n=!0)=>{let r=e.trim();if(!r)return;let i=t.useRegex?r:hn(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}},_n=(e,t)=>!e.trim()||!t.useRegex||!!gn(e,t),vn=(e,t,n)=>{let r=gn(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},yn=(e,t,n)=>{let r=gn(t,n);if(!r)return 0;let i=0,a;for(;a=r.exec(e);)a[0].length?i++:r.lastIndex++;return i},bn=(e,t,n)=>e.split(/\r\n|\n|\r/).reduce((e,r)=>e+yn(r,t,n),0),xn=(e,t,n)=>{let r=gn(t,n,!1);return(r==null?void 0:r.test(e))||!1},Sn=e=>e.split(/\r\n|\n|\r/).map((e,t)=>({key:t,number:t+1,text:e})),[Cn,wn]=ue(e=>{let t=Y(``),n=Y(-1),r=We(mn()),i=Y(!1),a=Y(),o=Y(),s=Y(0),c=Y(600),l=Y(),u=Y(),d=K(()=>Sn(e.value.value)),f=K(()=>t.value.trim()),p=K(()=>bn(e.value.value,t.value,r)),m=K(()=>p.value?Math.min(Math.max(n.value,0),p.value-1)+1:0),h=K(()=>!_n(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=vn(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=vn(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}}),Tn=Cn,En=()=>{let e=wn();if(!e)throw Error(`TextViewer 子组件必须在 TextViewer 内部使用`);return e},Dn=Z({__name:`CopyButton`,setup(e){let{copyable:t,copyText:n}=En();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)}}}),On={name:`text-viewer-search`,class:`w-520px max-w-full min-w-0 flex flex-[0_1_520px] items-center gap-6px`},kn=[`title`],An=[`disabled`],jn=[`disabled`],Mn={name:`text-viewer-search-options`,class:`flex items-center gap-2px`},Nn=[`aria-pressed`],Pn=[`aria-pressed`],Fn=[`aria-pressed`],In=Z({__name:`SearchBar`,setup(e){let{query:t,searchOptions:n,searchPlaceholder:r,normalizedQuery:i,matchCount:a,displayedResultIndex:o,invalidRegex:s,selectRelativeResult:c,handleSearchEnter:l}=En();return(e,u)=>{let d=qe(`SvgIcon`),f=nt;return F(),J(`div`,On,[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,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:`上一个匹配项 (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,An),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,jn)],2),H(f,{value:B(t),"onUpdate:value":u[10]||=e=>Oe(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`,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 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,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 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,Pn),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,Fn)])]),_:1},8,[`value`,`status`,`placeholder`,`onKeydown`])])}}}),Ln={class:`sticky left-0 z-1 box-border select-none border-r border-[#e5e7eb] bg-[#f8fafc] px-10px text-right text-[#94a3b8]`},Rn=[`data-active`],zn=Z({__name:`TextLine`,props:{line:{}},setup(e){let t=e,{wrap:n,getLineSegments:r,setActiveMatchElement:i}=En(),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`,Ln,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,Rn)):(F(),J(W,{key:1},[U(P(e.text),1)],64))],64))),128))],2)],2))}}),Bn={name:`text-viewer-viewport`,class:`h-full min-h-0 min-w-0`},Vn=Z({__name:`Viewport`,setup(e){let{wrap:t,virtualList:n,scrollContainer:r,lineHeight:i,lines:a,visibleStart:o,visibleLines:s,virtualHeight:c,handleScroll:l}=En();return(e,u)=>{let d=rn;return F(),J(`div`,Bn,[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(zn,{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(zn,{key:e.key,line:e},null,8,[`line`]))),128))],4)],4)],544))])}}}),Hn={name:`text-viewer`,class:`min-h-0 min-w-0 flex flex-1 flex-col gap-8px`},Un={name:`text-viewer-toolbar`,class:`min-h-28px min-w-0 flex items-center gap-10px`},Wn={name:`text-viewer-content`,class:`relative min-h-0 min-w-0 flex-1`},Gn=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}=Tn({value:q(t,`value`),searchPlaceholder:q(t,`searchPlaceholder`),allowWrap:q(t,`allowWrap`),copyable:q(t,`copyable`)});return(e,t)=>{let i=st;return F(),J(`div`,Hn,[X(`div`,Un,[Re(e.$slots,`toolbar-start`),t[2]||=X(`div`,{name:`text-viewer-toolbar-spacer`,class:`min-w-0 flex-1`},null,-1),H(In),B(n)?(F(),z(i,{key:0,checked:B(r),"onUpdate:checked":t[0]||=e=>Oe(r)?r.value=e:null},{default:I(()=>[...t[1]||=[U(` 自动换行 `,-1)]]),_:1},8,[`checked`])):V(``,!0)]),X(`div`,Wn,[H(Vn),H(Dn)])])}}}),Kn={name:`raw-json-preview`,class:`h-full`},qn=Z({__name:`RawJsonPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>pn(t.value,t.raw));return(e,t)=>(F(),J(`div`,Kn,[H(Gn,{value:B(n),"search-placeholder":`搜索原始 JSON`,class:`h-full`},null,8,[`value`])]))}}),Jn={name:`text-search`,class:`w-full min-w-0 flex items-center gap-6px`},Yn={name:`text-search-options`,class:`flex items-center gap-2px`},Xn=[`aria-pressed`],Zn=[`aria-pressed`],Qn=[`aria-pressed`],$n=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(()=>!_n(n.value,{matchCase:r.value,wholeWord:i.value,useRegex:a.value}));return(e,s)=>{let c=nt;return F(),J(`div`,Jn,[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`,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 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,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 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,Zn),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,Qn)])]),_:1},8,[`value`,`size`,`status`,`placeholder`])])}}}),er={name:`apps-preview`,class:`h-full min-h-0 flex flex-col gap-12px`},tr={name:`apps-overview`,class:`flex gap-12px`},nr={name:`apps-users-layout`,class:`h-full min-h-0 flex gap-12px`},rr={name:`user-list`,"aria-label":`设备用户`,class:`w-220px min-w-220px overflow-auto pr-2px`},ir=[`onClick`],ar={class:`max-w-full flex items-center gap-6px font-600`},or={class:`mt-3px text-12px text-[#64748b]`},sr={class:`mt-8px text-12px text-[#64748b]`},cr={key:0,name:`user-apps`,class:`min-h-0 min-w-0 flex flex-1 flex-col gap-10px`},lr={name:`user-apps-header`,class:`min-w-0 flex items-center gap-16px`},ur={name:`selected-user-title`,class:`min-w-150px flex flex-col font-600`},dr={class:`text-12px text-[#64748b]`},fr=50,pr=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(mn()),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=>xn(e,n,o))):t});L([r,c],()=>s.value=1);let l=K(()=>{let e=(s.value-1)*fr;return c.value.slice(e,e+fr)}),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=Gt,f=Ye,p=Te,m=Xe,h=Ze,g=Jt,_=Qt;return F(),J(`div`,er,[X(`div`,tr,[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`,nr,[X(`aside`,rr,[(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`,ar,[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`,or,` 用户 `+P(e.id),1),X(`span`,sr,P(e.apps.length)+` 个应用 `,1)],10,ir))),128))]),B(i)?(F(),J(`section`,cr,[X(`header`,lr,[X(`div`,ur,[X(`span`,null,P(B(i).name),1),X(`span`,dr,` 用户 `+P(B(i).id)+` · `+P(B(i).apps.length)+` 个应用 `,1)]),H($n,{modelValue:B(a),"onUpdate:modelValue":n[0]||=e=>Oe(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>fr?(F(),z(h,{key:2,page:B(s),"onUpdate:page":n[4]||=e=>Oe(s)?s.value=e:null,pageSize:fr,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(qn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})])}}}),mr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),hr=e=>typeof e==`number`&&Number.isSafeInteger(e)?e:void 0,gr=e=>typeof e==`number`&&Number.isFinite(e)?e:void 0,_r=e=>typeof e==`string`?e:void 0,vr=e=>typeof e==`boolean`?e:void 0,yr=e=>{if(!mr(e)||!Array.isArray(e.apps)||e.apps.length>1e4||Array.isArray(e.otherUsers)&&e.otherUsers.length>1e4)return;let t=hr(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(!mr(e))return;let n=hr(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(!mr(e)||typeof e.id!=`string`||typeof e.name!=`string`)return;let n=hr(e.userId)??t,a=r(n,n==t?`当前用户`:`用户 ${n}`,n==t),o={id:e.id,name:e.name,userId:n},s=gr(e.versionCode),c=_r(e.versionName),l=vr(e.isSystem),u=vr(e.hidden),d=vr(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}},br={name:`json-basic-table`,class:`mb-10px mt-6px`},xr=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]`},[fn(e.value)])}}]),r=K(()=>t.rows.length>200?{pageSize:200,showSizePicker:!1}:!1),i=e=>e.key;return(t,a)=>{let o=Xe;return F(),J(`div`,br,[H(o,{striped:``,size:`small`,columns:B(n),data:e.rows,rowKey:i,pagination:B(r)},null,8,[`columns`,`data`,`pagination`])])}}}),Sr={flex:``,"flex-col":``,"gap-10px":``,"h-full":``},Cr={name:`json-structure-scroll`,class:`min-h-0 flex-1 overflow-auto px-4px pb-24px pt-8px font-mono text-13px`},wr={key:1,name:`json-search-results`,class:`flex flex-col gap-6px`},Tr={class:`text-[#7c3aed]`},Er={class:`mt-4px text-[#374151] [overflow-wrap:anywhere]`},Dr=Z({__name:`JsonPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>cn(t.value)),r=e=>{if(Array.isArray(e))return`Array(${e.length})`;if(e&&typeof e==`object`){let t=on(e);return t==null?`Object(>${an})`:`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=sn(e.value),o=e.value!=null&&typeof e.value==`object`&&!n,s=o?Object.entries(e.value):[],c=o?dn(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(xr,{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(mn()),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(sn(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(xn(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);xn(c,e,s)&&i.push({path:o||`$`,value:c})}return i});return(t,r)=>{let i=wt,l=Te,u=Jt,d=Qt;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`,Sr,[H($n,{modelValue:B(o),"onUpdate:modelValue":r[0]||=e=>Oe(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`,Cr,[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`,wr,[(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`,Tr,P(e.path),1),X(`div`,Er,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(qn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})}}}),Or=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},kr=e=>{if(typeof e==`string`)try{let t=new URL(e);if(t.protocol==`http:`||t.protocol==`https:`)return t.href}catch{}},Ar={name:`subscription-preview`,class:`h-full min-h-0 flex flex-col gap-12px`},jr=[`href`],Mr=[`href`],Nr={name:`subscription-stats`,class:`flex flex-wrap gap-12px`},Pr={name:`subscription-tab-body`,class:`h-full min-h-0 flex flex-col gap-10px`},Fr={name:`app-id`,class:`mb-10px text-[#6b7280]`},Ir={name:`subscription-global-groups`,class:`min-h-0 flex flex-col gap-10px overflow-auto`},Lr={key:0,class:`mb-10px text-[#6b7280]`};function Rr(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Ke(e)}var zr=50,Br=Z({__name:`SubscriptionPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>kr(t.value.updateUrl)),r=K(()=>kr(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(mn()),d=Y(1),f=K(()=>{let e=l.value.trim();return e?a.value.filter(t=>xn(t.id,e,u)||xn(t.name||``,e,u)):a.value});L(f,()=>d.value=1);let p=K(()=>{let e=(d.value-1)*zr;return f.value.slice(e,e+zr)}),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(et,{accordion:!0},Rr(t=i(e.rules).map((e,t)=>H($e,{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=Nt,v=jt,y=Gt,b=Te,x=$e,S=et,C=Ze,w=Jt,T=D,E=Xe,O=Qt;return F(),J(`div`,Ar,[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,jr)]),_: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,Mr)]),_:1})):V(``,!0)]),_:1}),X(`div`,Nr,[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`,Pr,[H($n,{modelValue:B(l),"onUpdate:modelValue":i[0]||=e=>Oe(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`,Fr,P(e.id),1),(F(),z(Ae(()=>g(e))))]),_:2},1032,[`name`,`title`]))),128))]),_:1})),B(f).length>zr?(F(),z(C,{key:2,page:B(d),"onUpdate:page":i[4]||=e=>Oe(d)?d.value=e:null,pageSize:zr,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`,Ir,[(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`,Lr,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(qn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})])}}}),Vr=new Set([`ctime`,`mtime`]),Hr=new Set([`id`,`ctime`,`mtime`]),Ur=new Set([`snapshot`,`subs_config`]),Wr=new Set([`app_visit_log`,`subs_config`]),Gr=e=>Hr.has(e.toLowerCase()),Kr=(e,t)=>{let n=t.toLowerCase();return n==`app_id`||e.toLowerCase()==`app_visit_log`&&n==`id`},qr=(e,t)=>t.toLowerCase()==`subs_id`&&Wr.has(e.toLowerCase()),Jr=(e,t,n)=>{let r=t.toLowerCase();if(!(Vr.has(r)||r==`id`&&Ur.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},Yr=(e,t=2)=>e.toString().padStart(t,`0`),Xr=e=>`${e.getFullYear()}-${Yr(e.getMonth()+1)}-${Yr(e.getDate())} ${Yr(e.getHours())}:${Yr(e.getMinutes())}:${Yr(e.getSeconds())}.${Yr(e.getMilliseconds(),3)}`,Zr=64,Qr=16,$r=19,ei=(e,t)=>Math.max(...e.split(/\r\n|\r|\n/).map(t)),ti=({title:e,values:t,sortable:n,measureText:r})=>{let i=r(e)+Qr+(n?$r:0),a=Math.max(0,...t.map(e=>ei(e,r)+Qr));return Math.ceil(Math.max(Zr,i,a))},ni=(e,t)=>Math.ceil(Math.max(e,t+Qr)),ri=e=>e.reduce((e,t)=>e+t,0),ii={key:2,name:`sqlite-layout`,class:`h-full min-h-0 flex gap-12px`},ai={name:`sqlite-table-list`,class:`w-250px min-w-250px flex flex-col gap-8px border-r border-[#e5e7eb] pr-10px`},oi={name:`sqlite-table-scroll`,class:`min-h-0 overflow-auto`},si={class:`flex-1 overflow-hidden text-left text-ellipsis leading-20px`},ci={key:0,name:`sqlite-table-content`,class:`h-full min-h-0 min-w-0 flex-1`},li={name:`sqlite-data-pane`,class:`h-full min-h-0 flex flex-col items-end gap-10px`},ui={name:`sqlite-data-table-scroll`,class:`w-full min-h-0 flex-1`},di={name:`sqlite-schema`,class:`box-border m-0 h-full overflow-auto whitespace-pre-wrap rounded-4px border border-[#e5e7eb] bg-[#fafafa] p-12px`},fi=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([]),u=Y([]),d=Y([]),f=Y(``),p=We(mn()),m=new Worker(new URL(``+globalThis.location.origin+`/assets/worker-entry-sqlite.worker-Cim6YgkU.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=>xn(t.name,e,p)):s.value}),x,S=e=>{if(x===void 0&&(x=document.createElement(`canvas`).getContext(`2d`),x)){let{fontFamily:e,fontSize:t}=getComputedStyle(document.body);x.font=`${t} ${e}`}return(x==null?void 0:x.measureText(e).width)??Array.from(e).length*8};L(c,async()=>{if(!c.value)return;let e=++g,t=c.value;r.value=!0,o.value=``;try{let n=await v({type:`data`,table:t});if(e!=g||t!=c.value)return;u.value=n.columns.map(e=>ti({title:e,values:[],sortable:Gr(e),measureText:S})),l.value=n.columns,d.value=n.rows}catch(t){if(e!=g)return;o.value=t instanceof Error?t.message:String(t)}finally{e==g&&(r.value=!1)}}),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 C=(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(Kr(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(qr(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=Jr(e,n,r);return o?H(`span`,{class:`whitespace-nowrap tabular-nums`,title:String(r)},[Xr(o)]):H(`span`,{class:`whitespace-pre`},[String(r)])},w=K(()=>{let e=c.value;return l.value.map((t,n)=>({key:t,title:t,width:u.value[n],sorter:Gr(t)?`default`:void 0,render(r){return Ve(H(`span`,{class:`inline-block w-max`},[C(e,t,r[t]??null)]),[[Qe,t=>{if(e!=c.value)return;let r=u.value[n];if(r==null)return;let i=ni(r,t.width);if(i==r)return;let a=[...u.value];a[n]=i,u.value=a}]])}}))}),T=K(()=>ri(u.value)),E=K(()=>d.value.map((e,t)=>{let n={__rowIndex:t};return l.value.forEach((t,r)=>{n[t]=e[r]??null}),n}));return(e,t)=>{let l=wt,u=Te,d=Ye,m=i,h=Xe,g=Jt,_=Qt,v=Ut;return F(),z(v,{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(l,{key:0,type:`error`,title:`数据库无法预览`},{default:I(()=>[U(P(B(a)),1)]),_:1})):!B(n)&&B(s).length==0?(F(),z(u,{key:1,description:`数据库中没有可展示的数据表`})):(F(),J(`div`,ii,[X(`aside`,ai,[H($n,{modelValue:B(f),"onUpdate:modelValue":t[0]||=e=>Oe(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`,oi,[(F(!0),J(W,null,Ie(B(b),e=>(F(),z(m,{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`,si,P(e.name),1),H(d,{size:`small`,bordered:!1},{default:I(()=>[U(P(e.count??`?`),1)]),_:2},1024)]),_:2},1032,[`type`,`onClick`]))),128))])]),B(y)?(F(),J(`section`,ci,[H(_,{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(g,{name:`data`,tab:B(y).count==null?`数据`:`数据 · ${B(y).count}`},{default:I(()=>[X(`div`,li,[B(o)?(F(),z(l,{key:0,type:`warning`,title:`当前数据表无法读取`,class:`w-full flex-none`},{default:I(()=>[U(P(B(o)),1)]),_:1})):V(``,!0),X(`div`,ui,[H(h,{striped:``,"virtual-scroll":``,"flex-height":``,scrollX:B(T)||void 0,loading:B(r),columns:B(w),data:B(E),pagination:!1,rowKey:e=>Number(e.__rowIndex),size:`small`,class:`h-full w-full [&_.n-data-table-table]:min-w-full [&_.n-data-table-th]:whitespace-nowrap`},null,8,[`scrollX`,`loading`,`columns`,`data`,`rowKey`])])])]),_:1},8,[`tab`]),H(g,{name:`schema`,tab:`表结构`},{default:I(()=>[X(`pre`,di,P(B(y).sql),1)]),_:1})]),_:1})])):V(``,!0)]))]),_:1},8,[`show`])}}}),pi=e=>typeof e==`object`&&!!e&&!Array.isArray(e),mi=e=>{if(!pi(e)||!Array.isArray(e.apps))return{};let t=[];return e.apps.forEach(e=>{pi(e)&&(typeof e.id!=`string`||typeof e.name!=`string`||t.push([e.id,e.name]))}),Object.fromEntries(t)},hi=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},gi=e=>{if(hi(e))return[String(e.id),e.name]},_i=101010256,vi=33639248,yi=22,bi=65535,xi=(e,t)=>{if(e.byteLength<yi)throw Error(`不是有效的 ZIP 文件`);let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=Math.max(0,e.byteLength-yi-bi),i=-1;for(let t=e.byteLength-yi;t>=r;t--)if(n.getUint32(t,!0)==_i&&t+yi+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)!=vi)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}},Si=50*1024*1024,Ci=200*1024*1024,wi=2e3,Ti=20*1024*1024,Ei=2*1024*1024,Di=100*1024*1024,Oi=5e5,ki=1024,Ai=new Set([`.log`,`.txt`,`.sql`,`.xml`,`.md`,`.yaml`,`.yml`,`.csv`]),ji=new Set([`.db`,`.sqlite`,`.sqlite3`]),Mi=e=>{let t=e.split(`/`).at(-1)||e,n=t.lastIndexOf(`.`);return n>=0?t.slice(n).toLowerCase():``},Ni=e=>{let t=e.toLowerCase();if(t.endsWith(`-wal`)||t.endsWith(`-shm`))return`database-sidecar`;let n=Mi(e);return n==`.json`?`json`:ji.has(n)?`database`:Ai.has(n)?`text`:`binary`},Pi=e=>e.extension==`.log`?0:e.kind==`text`?1:e.kind==`json`?2:e.kind==`database`?3:4,Fi=e=>e.entries.filter(e=>e.kind==`text`||e.kind==`json`||e.kind==`database`).toSorted((e,t)=>Pi(e)-Pi(t))[0],Ii=async(e,t)=>{let n=e instanceof Blob?e.size:e.byteLength;if(n>52428800)throw Error(`ZIP 文件不能超过 ${$(Si)}`);let r=e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e),i=xi(r,{maxEntries:wi,maxEntryNameSize:ki,maxUncompressedSize:Ci}),a=await ft(r),o=Object.values(a.files).filter(e=>!e.dir);if(o.length>2e3)throw Error(`ZIP 内文件数量不能超过 ${wi}`);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:Mi(i),size:r,kind:Ni(i),file:e,readBudget:c}});if(s>209715200)throw Error(`ZIP 解压后总大小不能超过 ${$(Ci)}`);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]))}},Li=new WeakMap,Ri=new WeakMap,zi=async(e,t=Ti)=>{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()})},Bi=(e,t=Ti)=>{var n;let r=(n=Ri.get(e.file))==null?void 0:n.get(t);if(r)return Promise.reject(r);let i=Li.get(e.file);i||(i=new Map,Li.set(e.file,i));let a=i.get(t);return a||(a=zi(e,t),i.set(t,a),a.then(()=>i==null?void 0:i.delete(t),n=>{i==null||i.delete(t);let r=Ri.get(e.file);r||(r=new Map,Ri.set(e.file,r)),r.set(t,n instanceof Error?n:Error(String(n)))})),a},Vi=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(`数据库文件组超过可预览上限 ${$(Di)}`);let i=await Bi(t,Di);return{database:i,wal:n?await Bi(n,Di-i.byteLength):void 0,walEntry:n,shmEntry:r}},Hi=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(`文本行数不能超过 ${Oi}`);return t},Ui=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Wi=1e4,Gi=new WeakMap,Ki=e=>{let t=Gi.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=Hi(await Bi(t,Ei));return mi(JSON.parse(e))}catch{return{}}})(),Gi.set(e,t),t)},qi=new WeakMap,Ji=e=>{let t=qi.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=Hi(await Bi(e,Ei)),r=gi(JSON.parse(t));r&&n.push(r)}catch{}return Object.fromEntries(n.filter(e=>e!=null))})(),qi.set(e,t),t)},Yi=e=>{if(!Ui(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>Wi||n.length>Wi||r.length>Wi||!r.every(Ui))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<=Wi};for(let e of t){if(!Ui(e)||typeof e.id!=`string`||!Array.isArray(e.groups)||(i+=e.groups.length,i>Wi))return!1;for(let t of e.groups)if(!Ui(t)||!a(t))return!1}for(let e of n)if(!Ui(e)||!a(e))return!1;return!0},Xi=(e,t)=>Yi(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]}`},Zi=e(dt(),1),Qi=10080*60*1e3,$i=Zi.default.createInstance({name:`gkd-inspect-log`,storeName:`remote_logs`,version:1,driver:Zi.default.INDEXEDDB}),ea=(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},ta=async e=>{try{await $i.removeItem(e)}catch{}},na=async e=>{try{let t=await $i.getItem(e);if(ea(t))return t;t&&await $i.removeItem(e)}catch{}},ra=async(e,t,n)=>{let r=Date.now();try{let i=[];for(let t of await $i.keys()){let n=await $i.getItem(t);ea(n,r)?t!=e&&i.push({key:t,value:n}):await $i.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 $i.removeItem(e.key)}await $i.setItem(e,{version:1,cachedAt:r,expiresAt:r+Qi,name:t,data:n})}catch{}},ia={name:`log-page`,"page-size":``,class:`box-border flex min-h-700px min-w-1200px flex-col gap-10px bg-[#f8fafc] p-10px`},aa={name:`log-toolbar`,class:`h-42px flex items-center gap-10px`},oa={key:1,name:`log-workspace`,class:`flex min-h-0 flex-1 gap-10px`},sa={key:0,name:`archive-meta-content`,class:`min-w-0 flex-1`},ca=[`title`],la={name:`archive-stats`,class:`mt-3px text-12px text-[#64748b]`},ua=[`aria-expanded`,`aria-label`,`title`],da={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`},fa={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`},pa={"min-w-0":``},ma=[`title`],ha={name:`preview-size`,class:`mt-3px text-12px text-[#64748b]`},ga={name:`preview-body`,class:`min-h-0 flex-1 p-12px`},_a={key:2,name:`text-preview-wrapper`,class:`h-full min-h-0 flex flex-col gap-8px`},va={key:0,name:`text-preview-file-meta`,class:`min-w-0 max-w-260px flex-[0_1_260px] text-left`},ya=[`title`],ba={name:`preview-size`,class:`mt-3px text-12px text-[#64748b]`},xa={key:2,name:`log-empty-state`,class:`grid min-h-0 flex-1 place-items-center`},Sa={name:`drop-title`,class:`text-20px font-600`},Ca=Z({__name:`LogPage`,setup(e){let t=lt(),n=ct(),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([Vi(r.value,e),Ki(r.value),Ji(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 Bi(e);if(t!=S)return;d.value=Hi(n),u.value=`text`;return}if(e.kind==`json`){let n=Hi(await Bi(e,Ei));if(t!=S)return;d.value=n;try{let t=JSON.parse(n);f.value=t;let r=cn(t),i=e.path.toLowerCase().split(`/`).at(-1)==`apps.json`&&!r?yr(t):void 0;i?(p.value=Ue(i),u.value=`apps`):!r&&Xi(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 Ii(e,t||`log.zip`);if(n!=x)return;r.value=i;let a=Fi(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 na(e.url);if(t!=x)return;if(r){if(await D(r.data,r.name,t)||t!=x)return;await ta(e.url),o.value=!0,c.value=``}let i=!1,a;try{a=await pt(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 文件不能超过 ${$(Si)}`,{cause:e}):e}if(!a.ok)throw Error(`HTTP ${a.status}`);if(Number(a.headers.get(`content-length`)||0)>52428800)throw Error(`ZIP 文件不能超过 ${$(Si)}`);let s;try{s=await Or(a,Si)}catch(e){throw e instanceof Error&&e.message==`响应内容超过大小限制`?Error(`ZIP 文件不能超过 ${$(Si)}`,{cause:e}):e}if(t!=x)return;let l=O(a,e);await D(s,l,t)&&ra(e.url,l,s)},te=()=>t.path==`/log`?ot(t.query.url):it(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=rt(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)};fe(document.body,`dragover`,e=>e.preventDefault()),fe(document.body,`drop`,e=>{e.preventDefault();let t=ut(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}),k=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=nt,C=Ee,T=wt,E=qe(`SvgIcon`),D=tt,O=Ut,ee=Te;return F(),J(`div`,ia,[X(`header`,aa,[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=>Oe(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`,oa,[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`,sa,[X(`div`,{name:`archive-name`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(r).name},P(B(r).name),9,ca),X(`div`,la,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,ua)],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":k},null,8,[`data`,`selectedKeys`]))],2),X(`section`,da,[B(w)&&B(w).kind!=`text`&&B(u)!=`invalid-json`?(F(),J(`div`,fa,[X(`div`,pa,[X(`div`,{name:`preview-path`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(w).path},P(B(w).path),9,ma),X(`div`,ha,P(B($)(B(w).size)),1)])])):V(``,!0),X(`div`,ga,[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`,_a,[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(Gn,{value:B(d),"search-placeholder":`搜索当前文件`,"allow-wrap":``,copyable:``},{"toolbar-start":I(()=>[B(w)?(F(),J(`div`,va,[X(`div`,{name:`preview-path`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(w).path},P(B(w).path),9,ya),X(`div`,ba,P(B($)(B(w).size)),1)])):V(``,!0)]),_:1},8,[`value`])])):B(u)==`json`?(F(),z(Dr,{key:B(a),value:B(f),raw:B(d)},null,8,[`value`,`raw`])):B(u)==`apps`&&B(p)?(F(),z(pr,{key:B(a),data:B(p),value:B(f),raw:B(d)},null,8,[`data`,`value`,`raw`])):B(u)==`subscription`&&B(Yi)(B(f))?(F(),z(Br,{key:B(a),value:B(f),raw:B(d)},null,8,[`value`,`raw`])):B(u)==`database`&&B(h)?(F(),z(fi,{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`,xa,[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`,Sa,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{Ca as default};
|
|
537
|
-
//# sourceMappingURL=LogPage-
|
|
536
|
+
`)])])])]),Zt=vt,Qt=Z({name:`Tabs`,props:Object.assign(Object.assign({},he.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=he(`Tabs`,`-tabs`,Xt,Bt,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=be(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=be(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,k=null;function le(e){let t=se.value;if(t){ce=e.getBoundingClientRect().height;let n=`${ce}px`,r=()=>{t.style.height=n,t.style.maxHeight=n};k?(r(),k(),k=null):k=r}}function ue(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`};k?(k(),k=null,r()):k=r}}function A(){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 de={value:[]},j=G(`next`);function fe(e){let t=C.value,n=`next`;for(let r of de.value){if(r===t)break;if(r===e){n=`prev`;break}}j.value=n,pe(e)}function pe(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 me(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 N=0;function ye(t){var n,r;if(t.contentRect.width===0&&t.contentRect.height===0||N===t.contentRect.width)return;N=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;De((t===`top`||t===`bottom`?(r=h.value)==null?void 0:r.$el:g.value)||null)}}let xe=Zt(ye,64);L([()=>e.justifyContent,()=>e.size],()=>{Me(()=>{let{type:t}=e;(t===`line`||t===`bar`)&&_e()})});let Se=G(!1);function we(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(!Se.value)c===`top`||c===`bottom`?o<i&&(Se.value=!0):s<a&&(Se.value=!0);else{let{value:e}=m;if(!e)return;c===`top`||c===`bottom`?o-i>e.$el.offsetWidth&&(Se.value=!1):s-a>e.$el.offsetHeight&&(Se.value=!1)}De(((n=h.value)==null?void 0:n.$el)||null)}let Te=Zt(we,64);function Ee(){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 De(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 Oe=Zt(e=>{De(e.target)},64);Fe(Kt,{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:fe,handleClose:me,handleAdd:Ee}),Ce(()=>{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:Se,tabWrapperStyle:T,handleNavResize:xe,mergedSize:b,handleScroll:Oe,handleTabsResize:Te,cssVars:s?void 0:je,themeClass:P==null?void 0:P.themeClass,animationDirection:j,renderNameListRef:de,yScrollElRef:g,handleSegmentResize:Ae,onAnimationBeforeLeave:le,onAnimationEnter:ue,onAnimationAfterEnter:A,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),nn(Q(Yt,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),nn(t!==0&&!y?tn(e):e))),!i&&a&&_?en(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(Yt,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:tn(e))))}):Q(ge,{onResize:this.handleNavResize},{default:()=>Q(`div`,{class:`${e}-tabs-nav-scroll-wrapper`,ref:`scrollWrapperElRef`},[`top`,`bottom`].includes(x)?Q(ht,{ref:`xScrollInstRef`,onScroll:this.handleScroll},{default:b}):Q(`div`,{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:`yScrollElRef`},b()))}),i&&a&&_?en(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]},$t(m,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):$t(m,this.mergedValue,this.renderedNames)))}});function $t(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,[[k,c]]):e)}}),o?Q(pe,{name:`${o}-transition`,onBeforeLeave:r,onEnter:i,onAfterEnter:a},{default:()=>s}):s}function en(e,t){return Q(Yt,{ref:`addTabInstRef`,key:`__addable`,name:`__addable`,internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e==`object`&&e.disabled})}function tn(e){let t=He(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function nn(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes(`internalLeftPadded`)||e.dynamicProps.push(`internalLeftPadded`):e.dynamicProps=[`internalLeftPadded`],e}var rn=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(De,{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})}})})}}),an=1e4,on=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},sn=e=>typeof e==`object`&&!!e&&on(e)==null,cn=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},ln=e=>e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`,un=e=>ln(e)?!0:Array.isArray(e)?e.every(ln):typeof e==`object`&&!!e&&Object.keys(e).length==0,dn=e=>{if(typeof e!=`object`||!e||sn(e))return;let t=Object.entries(e);if(!(t.length==0||!t.every(([,e])=>un(e))))return t.map(([e,t])=>({key:e,value:t}))},fn=e=>JSON.stringify(e)??String(e),pn=(e,t)=>{if(cn(e))return t;try{return JSON.stringify(e,null,2)??t}catch{return t}},mn=()=>({matchCase:!1,wholeWord:!1,useRegex:!1}),hn=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),gn=(e,t,n=!0)=>{let r=e.trim();if(!r)return;let i=t.useRegex?r:hn(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}},_n=(e,t)=>!e.trim()||!t.useRegex||!!gn(e,t),vn=(e,t,n)=>{let r=gn(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},yn=(e,t,n)=>{let r=gn(t,n);if(!r)return 0;let i=0,a;for(;a=r.exec(e);)a[0].length?i++:r.lastIndex++;return i},bn=(e,t,n)=>e.split(/\r\n|\n|\r/).reduce((e,r)=>e+yn(r,t,n),0),xn=(e,t,n)=>{let r=gn(t,n,!1);return(r==null?void 0:r.test(e))||!1},Sn=e=>e.split(/\r\n|\n|\r/).map((e,t)=>({key:t,number:t+1,text:e})),[Cn,wn]=ue(e=>{let t=Y(``),n=Y(-1),r=We(mn()),i=Y(!1),a=Y(),o=Y(),s=Y(0),c=Y(600),l=Y(),u=Y(),d=K(()=>Sn(e.value.value)),f=K(()=>t.value.trim()),p=K(()=>bn(e.value.value,t.value,r)),m=K(()=>p.value?Math.min(Math.max(n.value,0),p.value-1)+1:0),h=K(()=>!_n(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=vn(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=vn(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}}),Tn=Cn,En=()=>{let e=wn();if(!e)throw Error(`TextViewer 子组件必须在 TextViewer 内部使用`);return e},Dn=Z({__name:`CopyButton`,setup(e){let{copyable:t,copyText:n}=En();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)}}}),On={name:`text-viewer-search`,class:`w-520px max-w-full min-w-0 flex flex-[0_1_520px] items-center gap-6px`},kn=[`title`],An=[`disabled`],jn=[`disabled`],Mn={name:`text-viewer-search-options`,class:`flex items-center gap-2px`},Nn=[`aria-pressed`],Pn=[`aria-pressed`],Fn=[`aria-pressed`],In=Z({__name:`SearchBar`,setup(e){let{query:t,searchOptions:n,searchPlaceholder:r,normalizedQuery:i,matchCount:a,displayedResultIndex:o,invalidRegex:s,selectRelativeResult:c,handleSearchEnter:l}=En();return(e,u)=>{let d=qe(`SvgIcon`),f=nt;return F(),J(`div`,On,[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,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:`上一个匹配项 (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,An),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,jn)],2),H(f,{value:B(t),"onUpdate:value":u[10]||=e=>Oe(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`,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 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,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 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,Pn),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,Fn)])]),_:1},8,[`value`,`status`,`placeholder`,`onKeydown`])])}}}),Ln={class:`sticky left-0 z-1 box-border select-none border-r border-[#e5e7eb] bg-[#f8fafc] px-10px text-right text-[#94a3b8]`},Rn=[`data-active`],zn=Z({__name:`TextLine`,props:{line:{}},setup(e){let t=e,{wrap:n,getLineSegments:r,setActiveMatchElement:i}=En(),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`,Ln,P(e.line.number),1),X(`span`,{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(`span`,{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,Rn)):(F(),J(W,{key:1},[U(P(e.text),1)],64))],64))),128))],2)],2))}}),Bn={name:`text-viewer-viewport`,class:`h-full min-h-0 min-w-0`},Vn=Z({__name:`Viewport`,setup(e){let{wrap:t,virtualList:n,scrollContainer:r,lineHeight:i,lines:a,visibleStart:o,visibleLines:s,virtualHeight:c,handleScroll:l}=En();return(e,u)=>{let d=rn;return F(),J(`div`,Bn,[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(zn,{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(zn,{key:e.key,line:e},null,8,[`line`]))),128))],4)],4)],544))])}}}),Hn={name:`text-viewer`,class:`min-h-0 min-w-0 flex flex-1 flex-col gap-8px`},Un={name:`text-viewer-toolbar`,class:`min-h-28px min-w-0 flex items-center gap-10px`},Wn={name:`text-viewer-content`,class:`relative min-h-0 min-w-0 flex-1`},Gn=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}=Tn({value:q(t,`value`),searchPlaceholder:q(t,`searchPlaceholder`),allowWrap:q(t,`allowWrap`),copyable:q(t,`copyable`)});return(e,t)=>{let i=st;return F(),J(`div`,Hn,[X(`div`,Un,[Re(e.$slots,`toolbar-start`),t[2]||=X(`div`,{name:`text-viewer-toolbar-spacer`,class:`min-w-0 flex-1`},null,-1),H(In),B(n)?(F(),z(i,{key:0,checked:B(r),"onUpdate:checked":t[0]||=e=>Oe(r)?r.value=e:null},{default:I(()=>[...t[1]||=[U(` 自动换行 `,-1)]]),_:1},8,[`checked`])):V(``,!0)]),X(`div`,Wn,[H(Vn),H(Dn)])])}}}),Kn={name:`raw-json-preview`,class:`h-full`},qn=Z({__name:`RawJsonPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>pn(t.value,t.raw));return(e,t)=>(F(),J(`div`,Kn,[H(Gn,{value:B(n),"search-placeholder":`搜索原始 JSON`,class:`h-full`},null,8,[`value`])]))}}),Jn={name:`text-search`,class:`w-full min-w-0 flex items-center gap-6px`},Yn={name:`text-search-options`,class:`flex items-center gap-2px`},Xn=[`aria-pressed`],Zn=[`aria-pressed`],Qn=[`aria-pressed`],$n=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(()=>!_n(n.value,{matchCase:r.value,wholeWord:i.value,useRegex:a.value}));return(e,s)=>{let c=nt;return F(),J(`div`,Jn,[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`,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 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,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 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,Zn),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,Qn)])]),_:1},8,[`value`,`size`,`status`,`placeholder`])])}}}),er={name:`apps-preview`,class:`h-full min-h-0 flex flex-col gap-12px`},tr={name:`apps-overview`,class:`flex gap-12px`},nr={name:`apps-users-layout`,class:`h-full min-h-0 flex gap-12px`},rr={name:`user-list`,"aria-label":`设备用户`,class:`w-220px min-w-220px overflow-auto pr-2px`},ir=[`onClick`],ar={class:`max-w-full flex items-center gap-6px font-600`},or={class:`mt-3px text-12px text-[#64748b]`},sr={class:`mt-8px text-12px text-[#64748b]`},cr={key:0,name:`user-apps`,class:`min-h-0 min-w-0 flex flex-1 flex-col gap-10px`},lr={name:`user-apps-header`,class:`min-w-0 flex items-center gap-16px`},ur={name:`selected-user-title`,class:`min-w-150px flex flex-col font-600`},dr={class:`text-12px text-[#64748b]`},fr=50,pr=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(mn()),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=>xn(e,n,o))):t});L([r,c],()=>s.value=1);let l=K(()=>{let e=(s.value-1)*fr;return c.value.slice(e,e+fr)}),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=Gt,f=Ye,p=Te,m=Xe,h=Ze,g=Jt,_=Qt;return F(),J(`div`,er,[X(`div`,tr,[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`,nr,[X(`div`,rr,[(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`,ar,[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`,or,` 用户 `+P(e.id),1),X(`span`,sr,P(e.apps.length)+` 个应用 `,1)],10,ir))),128))]),B(i)?(F(),J(`div`,cr,[X(`div`,lr,[X(`div`,ur,[X(`span`,null,P(B(i).name),1),X(`span`,dr,` 用户 `+P(B(i).id)+` · `+P(B(i).apps.length)+` 个应用 `,1)]),H($n,{modelValue:B(a),"onUpdate:modelValue":n[0]||=e=>Oe(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>fr?(F(),z(h,{key:2,page:B(s),"onUpdate:page":n[4]||=e=>Oe(s)?s.value=e:null,pageSize:fr,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(qn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})])}}}),mr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),hr=e=>typeof e==`number`&&Number.isSafeInteger(e)?e:void 0,gr=e=>typeof e==`number`&&Number.isFinite(e)?e:void 0,_r=e=>typeof e==`string`?e:void 0,vr=e=>typeof e==`boolean`?e:void 0,yr=e=>{if(!mr(e)||!Array.isArray(e.apps)||e.apps.length>1e4||Array.isArray(e.otherUsers)&&e.otherUsers.length>1e4)return;let t=hr(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(!mr(e))return;let n=hr(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(!mr(e)||typeof e.id!=`string`||typeof e.name!=`string`)return;let n=hr(e.userId)??t,a=r(n,n==t?`当前用户`:`用户 ${n}`,n==t),o={id:e.id,name:e.name,userId:n},s=gr(e.versionCode),c=_r(e.versionName),l=vr(e.isSystem),u=vr(e.hidden),d=vr(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}},br={name:`json-basic-table`,class:`mb-10px mt-6px`},xr=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(`span`,{class:`whitespace-pre-wrap font-mono [overflow-wrap:anywhere]`},[fn(e.value)])}}]),r=K(()=>t.rows.length>200?{pageSize:200,showSizePicker:!1}:!1),i=e=>e.key;return(t,a)=>{let o=Xe;return F(),J(`div`,br,[H(o,{striped:``,size:`small`,columns:B(n),data:e.rows,rowKey:i,pagination:B(r)},null,8,[`columns`,`data`,`pagination`])])}}}),Sr={flex:``,"flex-col":``,"gap-10px":``,"h-full":``},Cr={name:`json-structure-scroll`,class:`min-h-0 flex-1 overflow-auto px-4px pb-24px pt-8px font-mono text-13px`},wr={key:1,name:`json-search-results`,class:`flex flex-col gap-6px`},Tr={class:`text-[#7c3aed]`},Er={class:`mt-4px text-[#374151] [overflow-wrap:anywhere]`},Dr=Z({__name:`JsonPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>cn(t.value)),r=e=>{if(Array.isArray(e))return`Array(${e.length})`;if(e&&typeof e==`object`){let t=on(e);return t==null?`Object(>${an})`:`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=sn(e.value),o=e.value!=null&&typeof e.value==`object`&&!n,s=o?Object.entries(e.value):[],c=o?dn(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(xr,{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(mn()),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(sn(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(xn(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);xn(c,e,s)&&i.push({path:o||`$`,value:c})}return i});return(t,r)=>{let i=wt,l=Te,u=Jt,d=Qt;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`,Sr,[H($n,{modelValue:B(o),"onUpdate:modelValue":r[0]||=e=>Oe(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`,Cr,[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`,wr,[(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`,Tr,P(e.path),1),X(`div`,Er,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(qn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})}}}),Or=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},kr=e=>{if(typeof e==`string`)try{let t=new URL(e);if(t.protocol==`http:`||t.protocol==`https:`)return t.href}catch{}},Ar={name:`subscription-preview`,class:`h-full min-h-0 flex flex-col gap-12px`},jr=[`href`],Mr=[`href`],Nr={name:`subscription-stats`,class:`flex flex-wrap gap-12px`},Pr={name:`subscription-tab-body`,class:`h-full min-h-0 flex flex-col gap-10px`},Fr={name:`app-id`,class:`mb-10px text-[#6b7280]`},Ir={name:`subscription-global-groups`,class:`min-h-0 flex flex-col gap-10px overflow-auto`},Lr={key:0,class:`mb-10px text-[#6b7280]`};function Rr(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!Ke(e)}var zr=50,Br=Z({__name:`SubscriptionPreview`,props:{value:{},raw:{}},setup(e){let t=e,n=K(()=>kr(t.value.updateUrl)),r=K(()=>kr(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(mn()),d=Y(1),f=K(()=>{let e=l.value.trim();return e?a.value.filter(t=>xn(t.id,e,u)||xn(t.name||``,e,u)):a.value});L(f,()=>d.value=1);let p=K(()=>{let e=(d.value-1)*zr;return f.value.slice(e,e+zr)}),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(et,{accordion:!0},Rr(t=i(e.rules).map((e,t)=>H($e,{key:t,name:t,title:m(e,t)},{default:()=>[H(`div`,{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=Nt,v=jt,y=Gt,b=Te,x=$e,S=et,C=Ze,w=Jt,T=D,E=Xe,O=Qt;return F(),J(`div`,Ar,[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,jr)]),_: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,Mr)]),_:1})):V(``,!0)]),_:1}),X(`div`,Nr,[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`,Pr,[H($n,{modelValue:B(l),"onUpdate:modelValue":i[0]||=e=>Oe(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`,Fr,P(e.id),1),(F(),z(Ae(()=>g(e))))]),_:2},1032,[`name`,`title`]))),128))]),_:1})),B(f).length>zr?(F(),z(C,{key:2,page:B(d),"onUpdate:page":i[4]||=e=>Oe(d)?d.value=e:null,pageSize:zr,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`,Ir,[(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`,Lr,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(qn,{value:e.value,raw:e.raw},null,8,[`value`,`raw`])]),_:1})]),_:1})])}}}),Vr=new Set([`ctime`,`mtime`]),Hr=new Set([`id`,`ctime`,`mtime`]),Ur=new Set([`snapshot`,`subs_config`]),Wr=new Set([`app_visit_log`,`subs_config`]),Gr=e=>Hr.has(e.toLowerCase()),Kr=(e,t)=>{let n=t.toLowerCase();return n==`app_id`||e.toLowerCase()==`app_visit_log`&&n==`id`},qr=(e,t)=>t.toLowerCase()==`subs_id`&&Wr.has(e.toLowerCase()),Jr=(e,t,n)=>{let r=t.toLowerCase();if(!(Vr.has(r)||r==`id`&&Ur.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},Yr=(e,t=2)=>e.toString().padStart(t,`0`),Xr=e=>`${e.getFullYear()}-${Yr(e.getMonth()+1)}-${Yr(e.getDate())} ${Yr(e.getHours())}:${Yr(e.getMinutes())}:${Yr(e.getSeconds())}.${Yr(e.getMilliseconds(),3)}`,Zr=64,Qr=16,$r=19,ei=(e,t)=>Math.max(...e.split(/\r\n|\r|\n/).map(t)),ti=({title:e,values:t,sortable:n,measureText:r})=>{let i=r(e)+Qr+(n?$r:0),a=Math.max(0,...t.map(e=>ei(e,r)+Qr));return Math.ceil(Math.max(Zr,i,a))},ni=(e,t)=>Math.ceil(Math.max(e,t+Qr)),ri=e=>e.reduce((e,t)=>e+t,0),ii={key:2,name:`sqlite-layout`,class:`h-full min-h-0 flex gap-12px`},ai={name:`sqlite-table-list`,class:`w-250px min-w-250px flex flex-col gap-8px border-r border-[#e5e7eb] pr-10px`},oi={name:`sqlite-table-scroll`,class:`min-h-0 overflow-auto`},si={class:`flex-1 overflow-hidden text-left text-ellipsis leading-20px`},ci={key:0,name:`sqlite-table-content`,class:`h-full min-h-0 min-w-0 flex-1`},li={name:`sqlite-data-pane`,class:`h-full min-h-0 flex flex-col items-end gap-10px`},ui={name:`sqlite-data-table-scroll`,class:`w-full min-h-0 flex-1`},di=[`textContent`],fi=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([]),u=Y([]),d=Y([]),f=Y(``),p=We(mn()),m=new Worker(new URL(``+globalThis.location.origin+`/assets/worker-entry-sqlite.worker-DHIt96J_.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=>xn(t.name,e,p)):s.value}),x,S=e=>{if(x===void 0&&(x=document.createElement(`canvas`).getContext(`2d`),x)){let{fontFamily:e,fontSize:t}=getComputedStyle(document.body);x.font=`${t} ${e}`}return(x==null?void 0:x.measureText(e).width)??Array.from(e).length*8};L(c,async()=>{if(!c.value)return;let e=++g,t=c.value;r.value=!0,o.value=``;try{let n=await v({type:`data`,table:t});if(e!=g||t!=c.value)return;u.value=n.columns.map(e=>ti({title:e,values:[],sortable:Gr(e),measureText:S})),l.value=n.columns,d.value=n.rows}catch(t){if(e!=g)return;o.value=t instanceof Error?t.message:String(t)}finally{e==g&&(r.value=!1)}}),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 C=(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(Kr(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(qr(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=Jr(e,n,r);return o?H(`span`,{class:`whitespace-nowrap tabular-nums`,title:String(r)},[Xr(o)]):H(`span`,{class:`whitespace-pre`},[String(r)])},w=K(()=>{let e=c.value;return l.value.map((t,n)=>({key:t,title:t,width:u.value[n],sorter:Gr(t)?`default`:void 0,render(r){return Ve(H(`span`,{class:`inline-block w-max`},[C(e,t,r[t]??null)]),[[Qe,t=>{if(e!=c.value)return;let r=u.value[n];if(r==null)return;let i=ni(r,t.width);if(i==r)return;let a=[...u.value];a[n]=i,u.value=a}]])}}))}),T=K(()=>ri(u.value)),E=K(()=>d.value.map((e,t)=>{let n={__rowIndex:t};return l.value.forEach((t,r)=>{n[t]=e[r]??null}),n}));return(e,t)=>{let l=wt,u=Te,d=Ye,m=i,h=Xe,g=Jt,_=Qt,v=Ut;return F(),z(v,{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(l,{key:0,type:`error`,title:`数据库无法预览`},{default:I(()=>[U(P(B(a)),1)]),_:1})):!B(n)&&B(s).length==0?(F(),z(u,{key:1,description:`数据库中没有可展示的数据表`})):(F(),J(`div`,ii,[X(`div`,ai,[H($n,{modelValue:B(f),"onUpdate:modelValue":t[0]||=e=>Oe(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`,oi,[(F(!0),J(W,null,Ie(B(b),e=>(F(),z(m,{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`,si,P(e.name),1),H(d,{size:`small`,bordered:!1},{default:I(()=>[U(P(e.count??`?`),1)]),_:2},1024)]),_:2},1032,[`type`,`onClick`]))),128))])]),B(y)?(F(),J(`div`,ci,[H(_,{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(g,{name:`data`,tab:B(y).count==null?`数据`:`数据 · ${B(y).count}`},{default:I(()=>[X(`div`,li,[B(o)?(F(),z(l,{key:0,type:`warning`,title:`当前数据表无法读取`,class:`w-full flex-none`},{default:I(()=>[U(P(B(o)),1)]),_:1})):V(``,!0),X(`div`,ui,[H(h,{striped:``,"virtual-scroll":``,"flex-height":``,scrollX:B(T)||void 0,loading:B(r),columns:B(w),data:B(E),pagination:!1,rowKey:e=>Number(e.__rowIndex),size:`small`,class:`h-full w-full [&_.n-data-table-table]:min-w-full [&_.n-data-table-th]:whitespace-nowrap`},null,8,[`scrollX`,`loading`,`columns`,`data`,`rowKey`])])])]),_:1},8,[`tab`]),H(g,{name:`schema`,tab:`表结构`},{default:I(()=>[X(`div`,{name:`sqlite-schema`,class:`box-border m-0 h-full overflow-auto whitespace-pre-wrap rounded-4px border border-[#e5e7eb] bg-[#fafafa] p-12px font-mono`,textContent:P(B(y).sql)},null,8,di)]),_:1})]),_:1})])):V(``,!0)]))]),_:1},8,[`show`])}}}),pi=e=>typeof e==`object`&&!!e&&!Array.isArray(e),mi=e=>{if(!pi(e)||!Array.isArray(e.apps))return{};let t=[];return e.apps.forEach(e=>{pi(e)&&(typeof e.id!=`string`||typeof e.name!=`string`||t.push([e.id,e.name]))}),Object.fromEntries(t)},hi=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},gi=e=>{if(hi(e))return[String(e.id),e.name]},_i=101010256,vi=33639248,yi=22,bi=65535,xi=(e,t)=>{if(e.byteLength<yi)throw Error(`不是有效的 ZIP 文件`);let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=Math.max(0,e.byteLength-yi-bi),i=-1;for(let t=e.byteLength-yi;t>=r;t--)if(n.getUint32(t,!0)==_i&&t+yi+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)!=vi)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}},Si=50*1024*1024,Ci=200*1024*1024,wi=2e3,Ti=20*1024*1024,Ei=2*1024*1024,Di=100*1024*1024,Oi=5e5,ki=1024,Ai=new Set([`.log`,`.txt`,`.sql`,`.xml`,`.md`,`.yaml`,`.yml`,`.csv`]),ji=new Set([`.db`,`.sqlite`,`.sqlite3`]),Mi=e=>{let t=e.split(`/`).at(-1)||e,n=t.lastIndexOf(`.`);return n>=0?t.slice(n).toLowerCase():``},Ni=e=>{let t=e.toLowerCase();if(t.endsWith(`-wal`)||t.endsWith(`-shm`))return`database-sidecar`;let n=Mi(e);return n==`.json`?`json`:ji.has(n)?`database`:Ai.has(n)?`text`:`binary`},Pi=e=>e.extension==`.log`?0:e.kind==`text`?1:e.kind==`json`?2:e.kind==`database`?3:4,Fi=e=>e.entries.filter(e=>e.kind==`text`||e.kind==`json`||e.kind==`database`).toSorted((e,t)=>Pi(e)-Pi(t))[0],Ii=async(e,t)=>{let n=e instanceof Blob?e.size:e.byteLength;if(n>52428800)throw Error(`ZIP 文件不能超过 ${$(Si)}`);let r=e instanceof Blob?new Uint8Array(await e.arrayBuffer()):e instanceof Uint8Array?e:new Uint8Array(e),i=xi(r,{maxEntries:wi,maxEntryNameSize:ki,maxUncompressedSize:Ci}),a=await ft(r),o=Object.values(a.files).filter(e=>!e.dir);if(o.length>2e3)throw Error(`ZIP 内文件数量不能超过 ${wi}`);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:Mi(i),size:r,kind:Ni(i),file:e,readBudget:c}});if(s>209715200)throw Error(`ZIP 解压后总大小不能超过 ${$(Ci)}`);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]))}},Li=new WeakMap,Ri=new WeakMap,zi=async(e,t=Ti)=>{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()})},Bi=(e,t=Ti)=>{var n;let r=(n=Ri.get(e.file))==null?void 0:n.get(t);if(r)return Promise.reject(r);let i=Li.get(e.file);i||(i=new Map,Li.set(e.file,i));let a=i.get(t);return a||(a=zi(e,t),i.set(t,a),a.then(()=>i==null?void 0:i.delete(t),n=>{i==null||i.delete(t);let r=Ri.get(e.file);r||(r=new Map,Ri.set(e.file,r)),r.set(t,n instanceof Error?n:Error(String(n)))})),a},Vi=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(`数据库文件组超过可预览上限 ${$(Di)}`);let i=await Bi(t,Di);return{database:i,wal:n?await Bi(n,Di-i.byteLength):void 0,walEntry:n,shmEntry:r}},Hi=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(`文本行数不能超过 ${Oi}`);return t},Ui=e=>typeof e==`object`&&!!e&&!Array.isArray(e),Wi=1e4,Gi=new WeakMap,Ki=e=>{let t=Gi.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=Hi(await Bi(t,Ei));return mi(JSON.parse(e))}catch{return{}}})(),Gi.set(e,t),t)},qi=new WeakMap,Ji=e=>{let t=qi.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=Hi(await Bi(e,Ei)),r=gi(JSON.parse(t));r&&n.push(r)}catch{}return Object.fromEntries(n.filter(e=>e!=null))})(),qi.set(e,t),t)},Yi=e=>{if(!Ui(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>Wi||n.length>Wi||r.length>Wi||!r.every(Ui))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<=Wi};for(let e of t){if(!Ui(e)||typeof e.id!=`string`||!Array.isArray(e.groups)||(i+=e.groups.length,i>Wi))return!1;for(let t of e.groups)if(!Ui(t)||!a(t))return!1}for(let e of n)if(!Ui(e)||!a(e))return!1;return!0},Xi=(e,t)=>Yi(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]}`},Zi=e(dt(),1),Qi=10080*60*1e3,$i=Zi.default.createInstance({name:`gkd-inspect-log`,storeName:`remote_logs`,version:1,driver:Zi.default.INDEXEDDB}),ea=(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},ta=async e=>{try{await $i.removeItem(e)}catch{}},na=async e=>{try{let t=await $i.getItem(e);if(ea(t))return t;t&&await $i.removeItem(e)}catch{}},ra=async(e,t,n)=>{let r=Date.now();try{let i=[];for(let t of await $i.keys()){let n=await $i.getItem(t);ea(n,r)?t!=e&&i.push({key:t,value:n}):await $i.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 $i.removeItem(e.key)}await $i.setItem(e,{version:1,cachedAt:r,expiresAt:r+Qi,name:t,data:n})}catch{}},ia={name:`log-page`,"page-size":``,class:`box-border flex min-h-700px min-w-1200px flex-col gap-10px bg-[#f8fafc] p-10px`},aa={name:`log-toolbar`,class:`h-42px flex items-center gap-10px`},oa={key:1,name:`log-workspace`,class:`flex min-h-0 flex-1 gap-10px`},sa={key:0,name:`archive-meta-content`,class:`min-w-0 flex-1`},ca=[`title`],la={name:`archive-stats`,class:`mt-3px text-12px text-[#64748b]`},ua=[`aria-expanded`,`aria-label`,`title`],da={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`},fa={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`},pa={"min-w-0":``},ma=[`title`],ha={name:`preview-size`,class:`mt-3px text-12px text-[#64748b]`},ga={name:`preview-body`,class:`min-h-0 flex-1 p-12px`},_a={key:2,name:`text-preview-wrapper`,class:`h-full min-h-0 flex flex-col gap-8px`},va={key:0,name:`text-preview-file-meta`,class:`min-w-0 max-w-260px flex-[0_1_260px] text-left`},ya=[`title`],ba={name:`preview-size`,class:`mt-3px text-12px text-[#64748b]`},xa={key:2,name:`log-empty-state`,class:`grid min-h-0 flex-1 place-items-center`},Sa={name:`drop-title`,class:`text-20px font-600`},Ca=Z({__name:`LogPage`,setup(e){let t=lt(),n=ct(),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([Vi(r.value,e),Ki(r.value),Ji(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 Bi(e);if(t!=S)return;d.value=Hi(n),u.value=`text`;return}if(e.kind==`json`){let n=Hi(await Bi(e,Ei));if(t!=S)return;d.value=n;try{let t=JSON.parse(n);f.value=t;let r=cn(t),i=e.path.toLowerCase().split(`/`).at(-1)==`apps.json`&&!r?yr(t):void 0;i?(p.value=Ue(i),u.value=`apps`):!r&&Xi(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 Ii(e,t||`log.zip`);if(n!=x)return;r.value=i;let a=Fi(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 na(e.url);if(t!=x)return;if(r){if(await D(r.data,r.name,t)||t!=x)return;await ta(e.url),o.value=!0,c.value=``}let i=!1,a;try{a=await pt(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 文件不能超过 ${$(Si)}`,{cause:e}):e}if(!a.ok)throw Error(`HTTP ${a.status}`);if(Number(a.headers.get(`content-length`)||0)>52428800)throw Error(`ZIP 文件不能超过 ${$(Si)}`);let s;try{s=await Or(a,Si)}catch(e){throw e instanceof Error&&e.message==`响应内容超过大小限制`?Error(`ZIP 文件不能超过 ${$(Si)}`,{cause:e}):e}if(t!=x)return;let l=O(a,e);await D(s,l,t)&&ra(e.url,l,s)},te=()=>t.path==`/log`?ot(t.query.url):it(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=rt(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)};fe(document.body,`dragover`,e=>e.preventDefault()),fe(document.body,`drop`,e=>{e.preventDefault();let t=ut(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}),k=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=nt,C=Ee,T=wt,E=qe(`SvgIcon`),D=tt,O=Ut,ee=Te;return F(),J(`div`,ia,[X(`div`,aa,[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=>Oe(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(`div`,oa,[X(`div`,{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`,sa,[X(`div`,{name:`archive-name`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(r).name},P(B(r).name),9,ca),X(`div`,la,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,ua)],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":k},null,8,[`data`,`selectedKeys`]))],2),X(`div`,da,[B(w)&&B(w).kind!=`text`&&B(u)!=`invalid-json`?(F(),J(`div`,fa,[X(`div`,pa,[X(`div`,{name:`preview-path`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(w).path},P(B(w).path),9,ma),X(`div`,ha,P(B($)(B(w).size)),1)])])):V(``,!0),X(`div`,ga,[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`,_a,[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(Gn,{value:B(d),"search-placeholder":`搜索当前文件`,"allow-wrap":``,copyable:``},{"toolbar-start":I(()=>[B(w)?(F(),J(`div`,va,[X(`div`,{name:`preview-path`,class:`overflow-hidden text-ellipsis whitespace-nowrap font-600`,title:B(w).path},P(B(w).path),9,ya),X(`div`,ba,P(B($)(B(w).size)),1)])):V(``,!0)]),_:1},8,[`value`])])):B(u)==`json`?(F(),z(Dr,{key:B(a),value:B(f),raw:B(d)},null,8,[`value`,`raw`])):B(u)==`apps`&&B(p)?(F(),z(pr,{key:B(a),data:B(p),value:B(f),raw:B(d)},null,8,[`data`,`value`,`raw`])):B(u)==`subscription`&&B(Yi)(B(f))?(F(),z(Br,{key:B(a),value:B(f),raw:B(d)},null,8,[`value`,`raw`])):B(u)==`database`&&B(h)?(F(),z(fi,{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(`div`,xa,[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`,Sa,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{Ca as default};
|
|
537
|
+
//# sourceMappingURL=LogPage-MFWJOsmV.js.map
|