mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2025-07-03 01:39:22 +00:00
2 lines
7.7 KiB
JavaScript
2 lines
7.7 KiB
JavaScript
import{a as C,o as z}from"./index-Cl3GR-i0.js";import{g as H,p as _,j as E,k as i,n as $,x as L,u as J,b as Y,c as G,d as Q,a as X,al as Z,s as T,f as m,b0 as ee,aC as te,a4 as P,l as N,bi as ae,m as le,o as se,v as re,y as oe,R as p,r as F,bB as ne,a9 as R,ad as ie,bj as ue,a7 as ce,t as I,h as ve,w as de,N as me,i as ge,Y as K,q as fe}from"./index-r56lto60.js";const M=_({text:String,...L(),...$()},"VToolbarTitle"),W=H()({name:"VToolbarTitle",props:M(),setup(e,a){let{slots:t}=a;return E(()=>{const o=!!(t.default||t.text||e.text);return i(e.tag,{class:["v-toolbar-title",e.class],style:e.style},{default:()=>{var s;return[o&&i("div",{class:"v-toolbar-title__placeholder"},[t.text?t.text():e.text,(s=t.default)==null?void 0:s.call(t)])]}})}),{}}}),he=[null,"prominent","default","comfortable","compact"],q=_({absolute:Boolean,collapse:Boolean,color:String,density:{type:String,default:"default",validator:e=>he.includes(e)},extended:Boolean,extensionHeight:{type:[Number,String],default:48},flat:Boolean,floating:Boolean,height:{type:[Number,String],default:64},image:String,title:String,...oe(),...L(),...re(),...se(),...$({tag:"header"}),...le()},"VToolbar"),A=H()({name:"VToolbar",props:q(),setup(e,a){var f;let{slots:t}=a;const{backgroundColorClasses:o,backgroundColorStyles:s}=J(()=>e.color),{borderClasses:l}=Y(e),{elevationClasses:u}=G(e),{roundedClasses:c}=Q(e),{themeClasses:h}=X(e),{rtlClasses:x}=Z(),v=T(!!(e.extended||(f=t.extension)!=null&&f.call(t))),d=m(()=>parseInt(Number(e.height)+(e.density==="prominent"?Number(e.height):0)-(e.density==="comfortable"?8:0)-(e.density==="compact"?16:0),10)),y=m(()=>v.value?parseInt(Number(e.extensionHeight)+(e.density==="prominent"?Number(e.extensionHeight):0)-(e.density==="comfortable"?4:0)-(e.density==="compact"?8:0),10):0);return ee({VBtn:{variant:"text"}}),E(()=>{var V;const n=!!(e.title||t.title),g=!!(t.image||e.image),S=(V=t.extension)==null?void 0:V.call(t);return v.value=!!(e.extended||S),i(e.tag,{class:["v-toolbar",{"v-toolbar--absolute":e.absolute,"v-toolbar--collapse":e.collapse,"v-toolbar--flat":e.flat,"v-toolbar--floating":e.floating,[`v-toolbar--density-${e.density}`]:!0},o.value,l.value,u.value,c.value,h.value,x.value,e.class],style:[s.value,e.style]},{default:()=>[g&&i("div",{key:"image",class:"v-toolbar__image"},[t.image?i(P,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},t.image):i(te,{key:"image-img",cover:!0,src:e.image},null)]),i(P,{defaults:{VTabs:{height:N(d.value)}}},{default:()=>{var r,b,k;return[i("div",{class:"v-toolbar__content",style:{height:N(d.value)}},[t.prepend&&i("div",{class:"v-toolbar__prepend"},[(r=t.prepend)==null?void 0:r.call(t)]),n&&i(W,{key:"title",text:e.title},{text:t.title}),(b=t.default)==null?void 0:b.call(t),t.append&&i("div",{class:"v-toolbar__append"},[(k=t.append)==null?void 0:k.call(t)])])]}}),i(P,{defaults:{VTabs:{height:N(y.value)}}},{default:()=>[i(ae,null,{default:()=>[v.value&&i("div",{class:"v-toolbar__extension",style:{height:N(y.value)}},[S])]})]})]})}),{contentHeight:d,extensionHeight:y}}}),be="ClassworksDB",ye=2,U=()=>{const e={Accept:"application/json"},a=p("server.siteKey");return a&&(e["x-site-key"]=a),e},j=async()=>z(be,ye,{upgrade(e){e.objectStoreNames.contains("kv")||e.createObjectStore("kv"),e.objectStoreNames.contains("system")||e.createObjectStore("system")}}),w={local:{async loadData(e){try{const t=await(await j()).get("kv",e);return t?D(JSON.parse(t)):B("数据不存在","NOT_FOUND")}catch(a){return B("读取本地数据失败:"+a)}},async saveData(e,a){try{return await(await j()).put("kv",JSON.stringify(e),a),D(!0,"保存成功")}catch(t){return B("保存本地数据失败:"+t)}}},server:{async loadData(e){var a,t,o;try{const s=p("server.domain"),l=p("device.uuid"),u=await C.get(`${s}/${l}/${e}`,{headers:U()});return D(u.data)}catch(s){return((a=s.response)==null?void 0:a.status)===404?B("数据不存在","NOT_FOUND"):B(((o=(t=s.response)==null?void 0:t.data)==null?void 0:o.message)||"服务器连接失败","NETWORK_ERROR")}},async saveData(e,a){var t,o;try{const s=p("server.domain"),l=p("device.uuid");return await C.post(`${s}/${l}/${e}`,a,{headers:U()}),D(!0)}catch(s){return B(((o=(t=s.response)==null?void 0:t.data)==null?void 0:o.message)||"保存失败","SAVE_ERROR")}}}},D=(e,a=null)=>e,B=(e,a="UNKNOWN_ERROR")=>({success:!1,error:{code:a,message:e}}),ke={loadData:async e=>{const a=p("server.provider");return a==="kv-server"||a==="classworkscloud"?w.server.loadData(e):w.local.loadData(e)},saveData:async(e,a)=>{const t=p("server.provider");return t==="kv-server"||t==="classworkscloud"?w.server.saveData(e,a):w.local.saveData(e,a)}},Se=_({scrollTarget:{type:String},scrollThreshold:{type:[String,Number],default:300}},"scroll");function Te(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{canScroll:t}=a;let o=0,s=0;const l=F(null),u=T(0),c=T(0),h=T(0),x=T(!1),v=T(!1),d=m(()=>Number(e.scrollThreshold)),y=m(()=>ne((d.value-u.value)/d.value||0)),f=()=>{const n=l.value;if(!n||t&&!t.value)return;o=u.value,u.value="window"in n?n.pageYOffset:n.scrollTop;const g=n instanceof Window?document.documentElement.scrollHeight:n.scrollHeight;if(s!==g){s=g;return}v.value=u.value<o,h.value=Math.abs(u.value-d.value)};return R(v,()=>{c.value=c.value||u.value}),R(x,()=>{c.value=0}),ie(()=>{R(()=>e.scrollTarget,n=>{var S;const g=n?document.querySelector(n):window;g&&g!==l.value&&((S=l.value)==null||S.removeEventListener("scroll",f),l.value=g,l.value.addEventListener("scroll",f,{passive:!0}))},{immediate:!0})}),ue(()=>{var n;(n=l.value)==null||n.removeEventListener("scroll",f)}),t&&R(t,f,{immediate:!0}),{scrollThreshold:d,currentScroll:u,currentThreshold:h,isScrollActive:x,scrollRatio:y,isScrollingUp:v,savedScroll:c}}const pe=_({scrollBehavior:String,modelValue:{type:Boolean,default:!0},location:{type:String,default:"top",validator:e=>["top","bottom"].includes(e)},...q(),...fe(),...Se(),height:{type:[Number,String],default:64}},"VAppBar"),Ve=H()({name:"VAppBar",props:pe(),emits:{"update:modelValue":e=>!0},setup(e,a){let{slots:t}=a;const o=F(),s=ce(e,"modelValue"),l=m(()=>{var b;const r=new Set(((b=e.scrollBehavior)==null?void 0:b.split(" "))??[]);return{hide:r.has("hide"),fullyHide:r.has("fully-hide"),inverted:r.has("inverted"),collapse:r.has("collapse"),elevate:r.has("elevate"),fadeImage:r.has("fade-image")}}),u=m(()=>{const r=l.value;return r.hide||r.fullyHide||r.inverted||r.collapse||r.elevate||r.fadeImage||!s.value}),{currentScroll:c,scrollThreshold:h,isScrollingUp:x,scrollRatio:v}=Te(e,{canScroll:u}),d=I(()=>l.value.hide||l.value.fullyHide),y=m(()=>e.collapse||l.value.collapse&&(l.value.inverted?v.value>0:v.value===0)),f=m(()=>e.flat||l.value.fullyHide&&!s.value||l.value.elevate&&(l.value.inverted?c.value>0:c.value===0)),n=m(()=>l.value.fadeImage?l.value.inverted?1-v.value:v.value:void 0),g=m(()=>{var k,O;if(l.value.hide&&l.value.inverted)return 0;const r=((k=o.value)==null?void 0:k.contentHeight)??0,b=((O=o.value)==null?void 0:O.extensionHeight)??0;return d.value?c.value<h.value||l.value.fullyHide?r+b:r:r+b});ve(()=>!!e.scrollBehavior,()=>{de(()=>{d.value?l.value.inverted?s.value=c.value>h.value:s.value=x.value||c.value<h.value:s.value=!0})});const{ssrBootStyles:S}=me(),{layoutItemStyles:V}=ge({id:e.name,order:m(()=>parseInt(e.order,10)),position:I(()=>e.location),layoutSize:g,elementSize:T(void 0),active:s,absolute:I(()=>e.absolute)});return E(()=>{const r=A.filterProps(e);return i(A,K({ref:o,class:["v-app-bar",{"v-app-bar--bottom":e.location==="bottom"},e.class],style:[{...V.value,"--v-toolbar-image-opacity":n.value,height:void 0,...S.value},e.style]},r,{collapse:y.value,flat:f.value}),t)}),{}}}),Ne=H()({name:"VAppBarTitle",props:M(),setup(e,a){let{slots:t}=a;return E(()=>i(W,K(e,{class:"v-app-bar-title"}),t)),{}}});export{Ne as V,Ve as a,A as b,W as c,ke as d};
|