import{g as _,p as S,aq as J,ar as de,j as P,k as s,as as K,at as ue,au as fe,x as D,av as ve,u as R,L as Y,f as y,aw as me,a5 as Q,V as C,N as X,a3 as z,ax as ge,c as Z,d as pe,n as ee,o as he,ay as xe,v as ae,az as ye,aA as be,a as te,aB as Ce,t as f,m as se,aC as ke,aD as Ve,aj as _e,a8 as Se,T as Pe,_ as ne,A as p,D as g,E as l,G as r,$ as w,J as u,B as $,K as k,F,H,I as G}from"./index-CZWOVMJZ.js";import{p as we,a as Te,b as Ee,c as T,d as Ae,g as Ie,h as Le,q as Me,r as We,V as E,l as U,j as M,i as Be}from"./VList-ChfyLBDv.js";import{V as W}from"./VAlert-BI-j2Rrz.js";import"./ssrBoot-C9XVkltt.js";const V=Symbol.for("vuetify:v-expansion-panel"),le=S({...D(),...fe()},"VExpansionPanelText"),B=_()({name:"VExpansionPanelText",props:le(),setup(e,a){let{slots:t}=a;const n=J(V);if(!n)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:i,onAfterLeave:c}=de(e,n.isSelected);return P(()=>s(we,{onAfterLeave:c},{default:()=>{var o;return[K(s("div",{class:["v-expansion-panel-text",e.class],style:e.style},[t.default&&i.value&&s("div",{class:"v-expansion-panel-text__wrapper"},[(o=t.default)==null?void 0:o.call(t)])]),[[ue,n.isSelected.value]])]}})),{}}}),ie=S({color:String,expandIcon:{type:z,default:"$expand"},collapseIcon:{type:z,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...D(),...X()},"VExpansionPanelTitle"),N=_()({name:"VExpansionPanelTitle",directives:{Ripple:ve},props:ie(),setup(e,a){let{slots:t}=a;const n=J(V);if(!n)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:i,backgroundColorStyles:c}=R(e,"color"),{dimensionStyles:o}=Y(e),d=y(()=>({collapseIcon:e.collapseIcon,disabled:n.disabled.value,expanded:n.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly})),b=y(()=>n.isSelected.value?e.collapseIcon:e.expandIcon);return P(()=>{var h;return K(s("button",{class:["v-expansion-panel-title",{"v-expansion-panel-title--active":n.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},i.value,e.class],style:[c.value,o.value,e.style],type:"button",tabindex:n.disabled.value?-1:void 0,disabled:n.disabled.value,"aria-expanded":n.isSelected.value,onClick:e.readonly?void 0:n.toggle},[s("span",{class:"v-expansion-panel-title__overlay"},null),(h=t.default)==null?void 0:h.call(t,d.value),!e.hideActions&&s(Q,{defaults:{VIcon:{icon:b.value}}},{default:()=>{var x;return[s("span",{class:"v-expansion-panel-title__icon"},[((x=t.actions)==null?void 0:x.call(t,d.value))??s(C,null,null)])]}})]),[[me("ripple"),e.ripple]])}),{}}}),oe=S({title:String,text:String,bgColor:String,...ae(),...xe(),...he(),...ee(),...ie(),...le()},"VExpansionPanel"),Ne=_()({name:"VExpansionPanel",props:oe(),emits:{"group:selected":e=>!0},setup(e,a){let{slots:t}=a;const n=ge(e,V),{backgroundColorClasses:i,backgroundColorStyles:c}=R(e,"bgColor"),{elevationClasses:o}=Z(e),{roundedClasses:d}=pe(e),b=y(()=>(n==null?void 0:n.disabled.value)||e.disabled),h=y(()=>n.group.items.value.reduce((v,m,L)=>(n.group.selected.value.includes(m.id)&&v.push(L),v),[])),x=y(()=>{const v=n.group.items.value.findIndex(m=>m.id===n.id);return!n.isSelected.value&&h.value.some(m=>m-v===1)}),I=y(()=>{const v=n.group.items.value.findIndex(m=>m.id===n.id);return!n.isSelected.value&&h.value.some(m=>m-v===-1)});return ye(V,n),P(()=>{const v=!!(t.text||e.text),m=!!(t.title||e.title),L=N.filterProps(e),ce=B.filterProps(e);return s(e.tag,{class:["v-expansion-panel",{"v-expansion-panel--active":n.isSelected.value,"v-expansion-panel--before-active":x.value,"v-expansion-panel--after-active":I.value,"v-expansion-panel--disabled":b.value},d.value,i.value,e.class],style:[c.value,e.style]},{default:()=>[s("div",{class:["v-expansion-panel__shadow",...o.value]},null),s(Q,{defaults:{VExpansionPanelTitle:{...L},VExpansionPanelText:{...ce}}},{default:()=>{var j;return[m&&s(N,{key:"title"},{default:()=>[t.title?t.title():e.title]}),v&&s(B,{key:"text"},{default:()=>[t.text?t.text():e.text]}),(j=t.default)==null?void 0:j.call(t)]}})]})}),{groupItem:n}}}),De=["default","accordion","inset","popout"],Re=S({flat:Boolean,...Ve(),...ke(oe(),["bgColor","collapseIcon","color","eager","elevation","expandIcon","focusable","hideActions","readonly","ripple","rounded","tile","static"]),...se(),...D(),...ee(),variant:{type:String,default:"default",validator:e=>De.includes(e)}},"VExpansionPanels"),je=_()({name:"VExpansionPanels",props:Re(),emits:{"update:modelValue":e=>!0},setup(e,a){let{slots:t}=a;const{next:n,prev:i}=be(e,V),{themeClasses:c}=te(e),o=y(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return Ce({VExpansionPanel:{bgColor:f(e,"bgColor"),collapseIcon:f(e,"collapseIcon"),color:f(e,"color"),eager:f(e,"eager"),elevation:f(e,"elevation"),expandIcon:f(e,"expandIcon"),focusable:f(e,"focusable"),hideActions:f(e,"hideActions"),readonly:f(e,"readonly"),ripple:f(e,"ripple"),rounded:f(e,"rounded"),static:f(e,"static")}}),P(()=>s(e.tag,{class:["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},c.value,o.value,e.class],style:e.style},{default:()=>{var d;return[(d=t.default)==null?void 0:d.call(t,{prev:i,next:n})]}})),{next:n,prev:i}}}),ze={actions:"button@2",article:"heading, paragraph",avatar:"avatar",button:"button",card:"image, heading","card-avatar":"image, list-item-avatar",chip:"chip","date-picker":"list-item, heading, divider, date-picker-options, date-picker-days, actions","date-picker-options":"text, avatar@2","date-picker-days":"avatar@28",divider:"divider",heading:"heading",image:"image","list-item":"text","list-item-avatar":"avatar, text","list-item-two-line":"sentences","list-item-avatar-two-line":"avatar, sentences","list-item-three-line":"paragraph","list-item-avatar-three-line":"avatar, paragraph",ossein:"ossein",paragraph:"text@3",sentences:"text@2",subtitle:"text",table:"table-heading, table-thead, table-tbody, table-tfoot","table-heading":"chip, text","table-thead":"heading@6","table-tbody":"table-row-divider@6","table-row-divider":"table-row, divider","table-row":"text@6","table-tfoot":"text@2, avatar@2",text:"text"};function $e(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return s("div",{class:["v-skeleton-loader__bone",`v-skeleton-loader__${e}`]},[a])}function O(e){const[a,t]=e.split("@");return Array.from({length:t}).map(()=>A(a))}function A(e){let a=[];if(!e)return a;const t=ze[e];if(e!==t){if(e.includes(","))return q(e);if(e.includes("@"))return O(e);t.includes(",")?a=q(t):t.includes("@")?a=O(t):t&&a.push(A(t))}return[$e(e,a)]}function q(e){return e.replace(/\s/g,"").split(",").map(A)}const Fe=S({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:"$vuetify.loading"},type:{type:[String,Array],default:"ossein"},...X(),...ae(),...se()},"VSkeletonLoader"),He=_()({name:"VSkeletonLoader",props:Fe(),setup(e,a){let{slots:t}=a;const{backgroundColorClasses:n,backgroundColorStyles:i}=R(f(e,"color")),{dimensionStyles:c}=Y(e),{elevationClasses:o}=Z(e),{themeClasses:d}=te(e),{t:b}=_e(),h=y(()=>A(Se(e.type).join(",")));return P(()=>{var v;const x=!t.default||e.loading,I=e.boilerplate||!x?{}:{ariaLive:"polite",ariaLabel:b(e.loadingText),role:"alert"};return s("div",Pe({class:["v-skeleton-loader",{"v-skeleton-loader--boilerplate":e.boilerplate},d.value,n.value,o.value],style:[i.value,x?c.value:{}]},I),[x?h.value:(v=t.default)==null?void 0:v.call(t)])}),{}}}),Ge={name:"CacheManager",data(){return{caches:[],loading:!1,serviceWorkerActive:!1,message:"",messageType:"info"}},mounted(){this.checkServiceWorker()},methods:{checkServiceWorker(){"serviceWorker"in navigator?navigator.serviceWorker.ready.then(()=>{this.serviceWorkerActive=!0,this.refreshCaches()}).catch(()=>{this.serviceWorkerActive=!1}):this.serviceWorkerActive=!1},async refreshCaches(){if(this.serviceWorkerActive){this.loading=!0,this.message="",this.caches=[];try{const e=await this.sendMessageToSW({type:"CACHE_KEYS"});for(const a of e.cacheNames){const t=await this.sendMessageToSW({type:"CACHE_CONTENT",cacheName:a});this.caches.push({name:a,urls:t.urls||[]})}}catch(e){this.showMessage("获取缓存信息失败: "+e.message,"error")}finally{this.loading=!1}}},async clearCache(e){this.loading=!0;try{(await this.sendMessageToSW({type:"CLEAR_CACHE",cacheName:e})).success?(this.showMessage(`已清除缓存: ${this.formatCacheName(e)}`,"success"),await this.refreshCaches()):this.showMessage("清除缓存失败","error")}catch(a){this.showMessage("清除缓存失败: "+a.message,"error")}finally{this.loading=!1}},async clearUrl(e,a){this.loading=!0;try{(await this.sendMessageToSW({type:"CLEAR_URL",cacheName:e,url:a})).success?(this.showMessage(`已从缓存中删除: ${this.getFileName(a)}`,"success"),await this.refreshCaches()):this.showMessage("删除缓存项失败","error")}catch(t){this.showMessage("删除缓存项失败: "+t.message,"error")}finally{this.loading=!1}},async clearAllCaches(){if(confirm("确定要清除所有缓存吗?这可能会导致应用需要重新下载资源。")){this.loading=!0;try{(await this.sendMessageToSW({type:"CLEAR_ALL_CACHES"})).success?(this.showMessage("已清除所有缓存","success"),await this.refreshCaches()):this.showMessage("清除所有缓存失败","error")}catch(e){this.showMessage("清除所有缓存失败: "+e.message,"error")}finally{this.loading=!1}}},sendMessageToSW(e){return new Promise((a,t)=>{if(!navigator.serviceWorker.controller){t(new Error("Service Worker 未控制页面"));return}const n=new MessageChannel;n.port1.onmessage=i=>{a(i.data)},navigator.serviceWorker.controller.postMessage(e,[n.port2]),setTimeout(()=>{t(new Error("Service Worker 响应超时"))},5e3)})},formatCacheName(e){return e.replace("workbox-precache-","预缓存-").replace("-cache","").replace("js","JS").replace("css","CSS").replace("html","HTML").replace("images","图片").replace("external-resources","外部资源").replace("cdn-cgi","CDN")},getFileName(e){try{const a=new URL(e),t=a.pathname.split("/");return t[t.length-1]||a.hostname}catch(a){return console.error("获取文件名失败:",a),e}},showMessage(e,a="info"){this.message=e,this.messageType=a,setTimeout(()=>{this.message===e&&(this.message="")},5e3)}}},Ue={class:"d-flex align-center"},Oe={class:"d-flex justify-end mb-2"};function qe(e,a,t,n,i,c){return g(),p(E,null,{default:l(()=>[s(Te,{class:"d-flex align-center"},{default:l(()=>[a[2]||(a[2]=r("span",null,"缓存管理",-1)),s(Ee),s(w,{color:"error",onClick:c.clearAllCaches,loading:i.loading},{default:l(()=>a[0]||(a[0]=[u(" 清除所有缓存 ")])),_:1},8,["onClick","loading"]),s(w,{icon:"",class:"ml-2",onClick:c.refreshCaches},{default:l(()=>[s(C,null,{default:l(()=>a[1]||(a[1]=[u("mdi-refresh")])),_:1})]),_:1},8,["onClick"])]),_:1}),s(T,null,{default:l(()=>[i.serviceWorkerActive?$("",!0):(g(),p(W,{key:0,type:"warning",class:"mb-4"},{default:l(()=>a[3]||(a[3]=[u(" Service Worker 未激活,缓存管理功能不可用。 ")])),_:1})),i.message?(g(),p(W,{key:1,type:i.messageType,class:"mb-4"},{default:l(()=>[u(k(i.message),1)]),_:1},8,["type"])):$("",!0),i.caches.length>0?(g(),p(je,{key:2},{default:l(()=>[(g(!0),F(H,null,G(i.caches,o=>(g(),p(Ne,{key:o.name},{default:l(()=>[s(N,null,{default:l(()=>[r("div",Ue,[r("span",null,k(c.formatCacheName(o.name)),1),s(Ae,{class:"ml-2",size:"small"},{default:l(()=>[u(k(o.urls.length)+" 个文件",1)]),_:2},1024)])]),_:2},1024),s(B,null,{default:l(()=>[r("div",Oe,[s(w,{color:"error",size:"small",onClick:d=>c.clearCache(o.name),loading:i.loading},{default:l(()=>a[4]||(a[4]=[u(" 清除此缓存 ")])),_:2},1032,["onClick","loading"])]),s(Ie,{lines:"two"},{default:l(()=>[(g(!0),F(H,null,G(o.urls,(d,b)=>(g(),p(Le,{key:b},{append:l(()=>[s(w,{icon:"",size:"small",color:"error",onClick:h=>c.clearUrl(o.name,d)},{default:l(()=>[s(C,null,{default:l(()=>a[5]||(a[5]=[u("mdi-delete")])),_:1})]),_:2},1032,["onClick"])]),default:l(()=>[s(Me,{class:"text-truncate"},{default:l(()=>[u(k(c.getFileName(d)),1)]),_:2},1024),s(We,{class:"text-truncate"},{default:l(()=>[u(k(d),1)]),_:2},1024)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):i.loading?(g(),p(He,{key:3,type:"article"})):(g(),p(W,{key:4,type:"info"},{default:l(()=>a[6]||(a[6]=[u(" 没有找到缓存数据。 ")])),_:1}))]),_:1})]),_:1})}const re=ne(Ge,[["render",qe]]),Je={name:"CacheManagementPage",components:{CacheManager:re},metaInfo:{title:"缓存管理"}},Ke={class:"d-flex align-center mb-6"},Ye={class:"d-flex align-center mb-2"},Qe={class:"d-flex align-center mb-2"};function Xe(e,a,t,n,i,c){const o=re;return g(),p(Be,null,{default:l(()=>[s(U,null,{default:l(()=>[s(M,{cols:"12"},{default:l(()=>[r("div",Ke,[s(C,{size:"x-large",color:"primary",class:"mr-3"},{default:l(()=>a[0]||(a[0]=[u("mdi-database-cog-outline")])),_:1}),a[1]||(a[1]=r("div",null,[r("h1",{class:"text-h4"},"缓存管理"),r("div",{class:"text-subtitle-1 text-grey"},"管理应用的本地缓存资源")],-1))]),s(E,{class:"mb-6",variant:"tonal",color:"info",density:"compact"},{default:l(()=>[s(T,{class:"d-flex align-center"},{default:l(()=>[s(C,{color:"info",class:"mr-2"},{default:l(()=>a[2]||(a[2]=[u("mdi-information-outline")])),_:1}),a[3]||(a[3]=r("span",null,"在这里您可以查看和管理应用的缓存文件。清除缓存可能会导致应用需要重新下载资源,但有助于解决某些显示问题。",-1))]),_:1})]),_:1}),s(U,null,{default:l(()=>[s(M,{cols:"12",md:"8"},{default:l(()=>[s(E,{class:"mb-4",variant:"tonal"},{default:l(()=>[s(T,null,{default:l(()=>[r("div",Ye,[s(C,{color:"primary",class:"mr-2"},{default:l(()=>a[4]||(a[4]=[u("mdi-information")])),_:1}),a[5]||(a[5]=r("span",{class:"text-h6"},"什么是缓存?",-1))]),a[6]||(a[6]=r("p",null,"缓存是浏览器在本地存储的网站资源副本,如图片、脚本和样式表等。这些缓存可以加快页面加载速度,减少数据使用,并在离线时提供基本功能。",-1))]),_:1})]),_:1})]),_:1}),s(M,{cols:"12",md:"4"},{default:l(()=>[s(E,{class:"mb-4",variant:"tonal"},{default:l(()=>[s(T,null,{default:l(()=>[r("div",Qe,[s(C,{color:"warning",class:"mr-2"},{default:l(()=>a[7]||(a[7]=[u("mdi-lightbulb-outline")])),_:1}),a[8]||(a[8]=r("span",{class:"text-h6"},"何时清除缓存?",-1))]),a[9]||(a[9]=r("ul",{class:"pl-4"},[r("li",null,"应用显示过时的内容"),r("li",null,"界面出现异常"),r("li",null,"应用功能不正常")],-1))]),_:1})]),_:1})]),_:1})]),_:1}),s(o)]),_:1})]),_:1})]),_:1})}const sa=ne(Je,[["render",Xe]]);export{sa as default};